Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI auto completion #609

Open
octref opened this issue Oct 11, 2016 · 22 comments
Open

CLI auto completion #609

octref opened this issue Oct 11, 2016 · 22 comments

Comments

@octref
Copy link

octref commented Oct 11, 2016

Something npm has always bugged me is auto completion.

It requires putting source <(npm completion) to my zshrc, which is extremely slow and seldom outputs useful completion.

A few examples yarn could do:

letting yarn <Tab> outputs all commands:

install -- install package
remove  -- remove package
...other commands

letting each flag output useful information:
yarn install -<Tab>

-g -- install package globally
-S -- install package and save as dependency

letting yarn install <Tab> prompt a list of cached packages:
yarn install r<Tab>

react@0.14
redux@3.0

letting yarn rm <Tab> list packages installed locally
yarn rm r<Tab>

react@0.14
redux@3.0

Thanks for the good work!

@mikelnrd
Copy link

Hi I came here to suggest an auto-completion feature for yarn. Saw this so thought I'd comment here to flag my interest. Yarn like npm has a lot of commands and I often use npm's auto-completion. Would help people switching to yarn.

@cjk
Copy link

cjk commented Jan 26, 2017

There is yarn-completions

There is also a completion-plugin for oh-my-zsh.

@Matmo10
Copy link

Matmo10 commented Feb 6, 2017

@cjk How does that even work?

I installed yarn-completions - didn't work. Realized it's actually some kind of plugin for tabtab, so I installed that. Still doesn't work. Re-sourced my bash profile. Still doesn't work. Is there really more configuration required?

It'd be really nice to have this functionality included in yarn itself.

@Ionaru
Copy link

Ionaru commented Feb 8, 2017

@cjk yarn-completions works great, thanks for the suggestion!

It would be very useful to include that plugin into Yarn itself

@wavded
Copy link

wavded commented Apr 14, 2017

@Matmo10 did you ever get completions working?

@Matmo10
Copy link

Matmo10 commented Apr 14, 2017

@wavded Yep (mklabs/yarn-completions#8)

@dsifford
Copy link

Didn't see @Matmo10's comment unfortunately.

I spent the day today writing a pretty feature-complete bash completion, including computed autocomplete for scripts, local and global package names, and more.

If anybody is still in the market for it, you can find it here. https://github.com/dsifford/yarn-completion

Maintainer: If this is something you'd like for me to PR into this project directly, I'd be glad to do that as well.

Thanks 👍

@pesho
Copy link
Contributor

pesho commented Apr 16, 2017

Didn't see @Matmo10's comment unfortunately.

I'm thankful for that, because your solution is much better 👍

@dsifford
Copy link

@pesho Thanks! Glad to hear you like it 😄

@dsifford
Copy link

FYI: just pushed an update which makes the completions feature-complete up to yarn v0.24.4 https://github.com/dsifford/yarn-completion/releases/tag/v0.3.0

@OliverJAsh
Copy link

For zsh users, the zsh-completions package (installable via brew) also has Yarn completions: https://github.com/zsh-users/zsh-completions/blob/6a2895b7f5832f006f602271aee102df46d6c965/src/_yarn

@evgenymarkov
Copy link

Please make developers happier! Include completions developed by @dsifford to official package. Npm has command npm completion many years.

@ninrod
Copy link

ninrod commented May 28, 2018

Yes please do.

@SpainTrain
Copy link

Maintainers: This issue is labeled "needs discussion". Is it possible to provide direction on what needs to be discussed for this to become a first-class feature of yarn? Or is the required discussion regarding whether it should be part of yarn? Thanks!

@danielo515
Copy link

Yes, I would love to discuss this a bit more... or get it implemented. I don't understand why it is missing

@lararosekelley
Copy link

Any update on the status of this?

@hedefalk
Copy link

hedefalk commented Jul 9, 2019

Is any of the suggestions above working good for zsh? Seemed to be bash specific…?

I still lean on npm to just help me with my own scripts in package.json. Hate to have cat package.json just to remind myself all the time…

~/d/p/kb-frontend ❯❯❯ npm run   [tab hit]                                                           ⏎ master ✭
backend                clean                  deploy-master-to-prod  undo-rolluot
build                  db                     dev

@dsifford
Copy link

@hedefalk https://github.com/zsh-users/zsh-completions/blob/master/src/_yarn

@sdc224
Copy link

sdc224 commented Jul 7, 2020

Guys any update on this? Any way to integrate autocomplete inside yarn?

@vhscom
Copy link

vhscom commented Jan 5, 2022

I found a workaround:

npm-cli-completions

😅

@airtonix
Copy link

guys we can close this finally, every one has moved to pnpm since yarn is a dead project.

sangaline added a commit to Sindri-Labs/sindri-js that referenced this issue Apr 1, 2024
This was inspired by wanting to add tab completion inside the development
container for our miscellaneous development scripts. Reading through the issue
on it (yarnpkg/yarn#609), it really drove home the fact that yarn v1 is
unmaintained and slowly dying. In the meantime, npm has more than caught up
with the main innovations that yarn originally introduced while yarn v3 has
made extremely opinionated choices around PnP, package patching, etc. that I
disagree with. I've always really liked pnpm too, but their linking strategy
with the global store doesn't really adapt well to the docker volume mount
approach we use here.

This PR switches us over to using vanilla npm as the package manager. The
changes are fairly straightforward from a developer perspective. You mainly do
`npm run <script>` instead of `yarn <script>` and expect the lock file changes
to be in `package-lock.json` insted of `yarn.lock`. The canonical forms for
some other commands are different, but npm provides aliases that make the yarn
forms work for the most common stuff: `npm install --save-dev <package>` is
canonical but `npm add -D <package>` works, `npm uninstall <package>` and `npm
remove <package>` both work, etc. I additionally added tab completion in the
docker container, so you can tab complete any of the npm commands/arguments
including our own scripts.

Merges #100

LGTM given by: @jason-sindri
@ChromeQ
Copy link

ChromeQ commented Aug 8, 2024

There is another alternative which I've been using a few years - https://github.com/romainberger/yarn-completion

Install globally and add bash file to somewhere like bash_completions and adjust the instructions as required.

If you run into yarn-complete: command not found then follow my instruction on romainberger/yarn-completion#1

One other minor bug is it doesn't work well with scripts with a : in it, such as lint:fix or build:ios/build/android etc
This problem is outlined in romainberger/yarn-completion#2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests