Releases: hedning/nix-bash-completions
0.6.8
v0.6.7
v0.6
bash: v0.6, zsh: 0.3.6
The quest for an awesome completion system continues.
The main bulk of changes apply to both ZSH and Bash, with explicit notes otherwise.
-I/--include support
Attribute path completion now takes -I and --include into account. This makes completion work correctly when doing things like this:
nix-shell -I nixpkgs=. --packages <tab>When the completion system executes any nix code it will first resolve all URLS in the NIX_PATH, and in -I input, to a local store path if present. This protects against triggering an intrusive download while completing. channel: syntax is correctly translated to its https:// form and resolved to a cache too.
--arg and --argstr support
Argument names are now offered as completions using builtins.functionArgs. Names already supplied on the command line is excluded from completions.
Attribute path completion will also take --arg and --argstr into account, which means things like this work:
nix-instantiate --eval default.nix --argstr bar foo -A <tab>If the content of default.nix is {bar}: {foo = bar;} then completing will result in foo.
--expr and -E support
Attribute path completion now works for --expr input, including argument name completion.
Note, URLs in the expression body is not yet resolved to a local cache so might trigger a download. This should ideally be fixed.
In ZSH --expr now behaves properly, allowing completion of options after it has been entered (bash already did the correct thing here).
Other small fixes and improvements
- Most arguments which expects a
.nixfile will now only offer up those and directories, reducing clutter --filewill now complete more than once, the last one being used to generate attribute matches. In ZSH this allows aliasingnix-envtonix-env -f '<nixpkgs>'while still getting further--filecompletion which can be used to override the default.- nix-env now offer
--filecompletion together with main operation completion by default. This is a compromise between discover-ability of main operations and the want to specify common options quickly. --add-rootwill now off up/nix/var/nix/gcroots/by default, if--indirectis specified it will give normal directory completion.- Add missing
--helpand--versioncompletion to many commands - nix-env:
--filter-systemwill complete possible systems. - nix-instantiate:
--find-filewill no longer offer misleading file completion
And a bunch of other small changes and fixes.
v0.5
New features:
- Attribute completion for cached repos specified with an url, eg.
nix-build channel:nixos-17.09 -A .... This is somewhat untested on 1.12 as nix on my machine refuses to download any repos due to lack of signatures. --include|-Icompletion for all compatible commands. (onlynixtakes the includes into account when completing attribute paths though)- All file like completion now should work sanely, ie. just like
lsand similar commands nix-env --option: now offers up options
Bug fixes:
- nix: fixed a bug where all options would expect arguments incorrectly
nix-store: --deletecan takes file argumentsnix-shell --packagesshould now correctly offer up options after-phave been specified- nix-env:
--installand others will now offer up files when entering a nix type path (ie../,~/,/)
Plus some other small fixes.
v0.4
v0.3
Some bug fixes and improvements:
- All commands should now complete attribute paths when supplying
'<nixpkgs>as file input - nix-env:
-Aonly worked for-i/--install, now works for all main operations - nix-env will now only complete main operations until one has been supplied
- nix-env --switch-generation will now complete generations
- nix-channel: completes channel names properly now
And a few other minor improvements.