Commit graph

5111 commits

Author SHA1 Message Date
Johannes Altmanninger
368017905e builtin commandline: -x for expanded tokens, supplanting -o
Issue #10194 reports Cobra completions do

    set -l args (commandline -opc)
    eval $args[1] __complete $args[2..] (commandline -ct | string escape)

The intent behind "eval" is to expand variables and tildes in "$args".
Fair enough. Several of our own completions do the same, see the next commit.

The problem with "commandline -o" + "eval" is that the former already
removes quotes that are  relevant for "eval". This becomes a problem if $args
contains quoted () or {}, for example this command will wrongly execute a
command substituion:

    git --work-tree='(launch-missiles)' <TAB>

It is possible to escape the string the tokens before running eval, but
then there will be no expansion of variables etc.  The problem is that
"commandline -o" only unescapes tokens so they end up in a weird state
somewhere in-between what the user typed and the expanded version.

Remove the need for "eval" by introducing "commandline -x" which expands
things like variables and braces. This enables custom completion scripts to
be aware of shell variables without eval, see the added test for completions
to "make -C $var/some/dir ".

This means that essentially all third party scripts should migrate from
"commandline -o" to "commandline -x". For example

    set -l tokens
    if commandline -x >/dev/null 2>&1
        set tokens (commandline -xpc)
    else
        set tokens (commandline -opc)
    end

Since this is mainly used for completions, the expansion skips command
substitutions.  They are passed through as-is (instead of cancelling or
expanding to nothing) to make custom completion scripts work reasonably well
in the common case. Of course there are cases where we would want to expand
command substitutions here, so I'm not sure.
2024-01-27 09:28:06 +01:00
Daniel Bretoi
c78750499d
Dynamic Completion for Justfile Recipes (#10244)
* Create just.fish

justfile completions for tasks similar to make completions for targets

* no need for the match at all
2024-01-22 20:13:10 +01:00
Asuka Minato
0f97111290
add more strace completion (#10227)
* Update strace.fish

* Update strace.fish

* upper case
2024-01-22 20:12:43 +01:00
Mark Huang
65cf6ada56 completions for apt and apt-get 2024-01-21 14:21:44 +01:00
Fabian Boehm
423829a634 Rename existing cache files
We're already moving them, we can remove the awkward dot that hides
them, and while we're doing that remove the useless $USER as well.

Most systems will have only one of these files - it's rare to run a
second package manager (especially for anything more than
bootstrapping a container).
2024-01-21 14:18:50 +01:00
Fabian Boehm
a66fa5262e Cache ykman completions
Also 140ms
2024-01-21 14:18:50 +01:00
Fabian Boehm
b4d9189fd3 Cache pip{,2,3,env} completions
These take a *lot* of time - `pip3` takes 180ms, `pipenv` takes 320ms
on my system.

Note that this removes a number of obsolete workarounds - pip's was
fixed in 2017 (and pip2 is less and less of a thing), pipenv's change
was in 2019.

Since these are packaging tools with access to the internet they
should really be kept up-to-date, so it is unlikely someone still uses
these old versions.
2024-01-21 14:18:50 +01:00
Fabian Boehm
e5b2c3e4be Add helper to cache | source completions
We have a lot of completions that look like

```fish
pip completion --fish 2>/dev/null | source
```

That's *fine*, upstream gives us some support.

However, the scripts they provide change very rarely, usually not even
every release, and so running them again for every shell is extremely
wasteful.

In particular the python tools are very slow, `pip completion --fish`
takes about 180ms on my system with a hot cache, which is quite
noticeable.

So what we do is we run them once, store them in a file in our cache
directory, and then serve from that.

We store the mtime of the command we ran, and compare against that for
future runs. If the mtime differs - so if the command was up or
downgraded, we run it again.
2024-01-21 14:18:50 +01:00
Fabian Boehm
7e087d8eda __fish_make_cache_dir: Create fish subdir and optionally deeper
This will move all current cache uses to e.g. ~/.cache/fish/

That's better anyway because it makes it easier to remove.

Also it allows supplying a subdir so you can do `__fish_make_cache_dir
completions`
to get ~/.cache/fish/completions.
2024-01-21 14:18:50 +01:00
Johannes Altmanninger
5dfcfa336b edit_command_buffer: if aliasee is a recognized editor, pass cursor position too
If I alias "e" to "emacsclient" it will probably accept the same options.
Let's dereference the alias so we can detect support for passing the cursor
position in more cases.

This does not solve the problem for recursive cases (e.g. alias of another
alias). If we want to handle that we would need cycle detection.
2024-01-21 09:39:59 +01:00
Paul Ouellette
2cb60bed10 Remove share/completions/highlight.fish
Highlight ships its own completion script:
https://gitlab.com/saalen/highlight/-/blob/master/sh-completion/highlight.fish
2024-01-20 11:39:48 +01:00
Ikko Eltociear Ashimine
1e925857f0 Update iwctl.fish
colum -> column
2024-01-18 19:34:30 +01:00
Himadri Bhattacharjee
5389d84285 shorten long descriptions for the cargo command 2024-01-16 22:16:36 +01:00
Peter Collingbourne
0b3e9609f1 completions/fastboot: declare -s as taking an argument, add argument completions 2024-01-12 20:45:56 +01:00
Fabian Boehm
23a8967ecb fish_config: Fix on python < 3.12 if not on Windows 2024-01-12 18:42:55 +01:00
ahaoboy
8009469f8f Add support for the Windows MSYS environment. 2024-01-12 17:55:49 +01:00
yinm
b583145a00 Shorten long descriptions 2024-01-12 17:53:49 +01:00
Johannes Altmanninger
57d7c46d22 completions: fix some completions to not look at other commands on the command line 2024-01-07 19:04:54 +01:00
Johannes Altmanninger
d71aae7d3b completions/ip: remove obsolete workaround
This workaround already exists in core completion machinery.
2024-01-07 19:04:54 +01:00
Fabian Boehm
16c2c14fb4 Restyle 2024-01-07 15:13:34 +01:00
Johannes Altmanninger
f42b7d30b3 completions/ant: don't look at tokens from adjacent commands 2024-01-06 08:44:23 +01:00
Josef Litoš
ee837f254b feat: adb completion cleared of awk 2024-01-04 16:13:03 +01:00
Damien Picard
4f3e7ddef0 Completions: fix Blender completions when it prints to stderr
Some of the completions recently introduced called Blender itself to query some
arguments, and Blender sometimes prints messages to stderr. This output was not
filtered, resulting in the shell printing irrelevant messages during completion.
2024-01-04 16:11:51 +01:00
Nethum Lamahewage
a36ff7d143 history: fix deleting last entry 2024-01-04 16:10:08 +01:00
David Adam
c10d00599b completions/ninja: add --verbose option 2024-01-03 23:17:55 +08:00
Fabian Boehm
b895cf49ca umask: Correctly handle empty symbolic value
Simple return/echo confusion.

Fixes #10177
2023-12-31 19:39:23 +01:00
David Adam
850c57bbb3 completions/funced: clarify -i description
Work on #10053.
2023-12-31 23:04:19 +08:00
jydeng
b9b850f286 add more subcommands for apt (#10100) 2023-12-31 23:00:15 +08:00
David Adam
31eb429add themes/Nord: include license tag 2023-12-31 12:54:31 +08:00
Fabian Boehm
4c1e25b141 fish_git_prompt: Add separator even if state is empty
This would leave off the separator if the repo was just bare or had
upstream difference, but no status (e.g. dirty) applied.

Fixes #10175
2023-12-30 19:38:22 +01:00
Damien Picard
9132684617 completions: improve Blender completions
- Replace short options with old-style options: even though they are
  single-letter, Blender's options cannot be combined.
- Add comments to separate blocks of options, mirroring Blender's help message.
- Add missing options: render-frame, python-use-system-env, register-allusers,
  unregister, unregister-allusers.
- Remove options: debug-gpu-disable-ssbo, debug-gpu-renderdoc, -R.
- Fix typos:
  - debug-depsgraph-eval (was -evel)
  - debug-depsgraph-pretty (was -time)
  - app-template (was open-last)
- Update output formats:
  - Add descriptions.
  - Add HDR, TIFF, OpenEXR, OpenEXR Multilayer, FFmpeg, Cineon, DPX, JPEG 2000,
    and WebP, which are optional but generally available.
  - Remove IRIZ, which is no longer available.
- Fix arguments for --use-extension: they should be 0 or 1, not true or false.
- Make env-system-* options require a parameter.
- Improve --add-ons by querying the list of add-ons inside Blender rather than a
  hardcoded path. This is because Blender's add-on modules may come from many
  different paths which depend on platform.
- Fix __blender_echo_input_file_name, by relying on extension.
- Fix listing of scene datablocks inside Blend file.
- Add listing of Python text datablocks to execute inside Blend file.

Closes #10150
2023-12-30 16:20:39 +01:00
Amy Grace
6fe4e3d8a9 completions: add xxd
Closes #10137

(cherry picked from commit 36ed2b79c2)
2023-12-30 10:18:59 +01:00
Grzegorz Milka
c369080963 Add git stash push completions
Closes #10147

(cherry picked from commit 03198b7fd3)
2023-12-30 10:09:48 +01:00
tangowithfoxtrot
cf98b27544 add completions for bws
Closes #10165

(cherry picked from commit 7370e38069)
2023-12-30 09:33:05 +01:00
Eric N. Vander Weele
48ef682cad themes: Synchronize Nord theme in adherence to color palette guidelines
Adhere as best as possible to the style guidelines at
https://www.nordtheme.com/docs/colors-and-palettes. Some adaptations were made
so that `functions <function>` is also syntax highlighted per the upstream
recommendations.

Additionally, the theme file has been reordered to follow the order of variables
defined in interactive syntax-highlighting-variables documentation.
2023-12-28 13:36:41 -08:00
Johannes Altmanninger
81c8cd1b61 completions: use POSIX character classes with sed
\s and \S are not supported BSD sed.

Fixes #10163
2023-12-27 17:11:01 +01:00
Fabian Boehm
b1a1a3b0a7 prompt_pwd: Fix missing --
Fixes #10169
2023-12-25 18:46:23 +01:00
Rudolf Lovrenčić
2e89e0c205 Add object files to ninja completions
When working on a C or C++ projects, it is often handy to compile a
single file (e.g. large refactoring where many files fail to compile so
compiling a single file results in less compiler errors making the compiler
output significantly easier to read and navigate). Current completion offers
only ninja targets which are usually just top level binaries. This commit makes
object files and library files to be offered in the ninja completion.

The change is inspired by the zsh ninja completion [1], but aims to reduce noise
by only matching for entries ending in ".o", ".so" or ".a".

[1] c828f06e08/src/zsh/_ninja (L30)
2023-12-17 20:50:41 -08:00
sigmaSd
df3c5ab402 use a better method 2023-12-17 20:39:58 -08:00
sigmaSd
f924f06df7 fix deno task completion for jsonc 2023-12-17 20:39:58 -08:00
Johannes Altmanninger
b83f3b0e98 __fish_anypager: prefer less over other pagers
This is our traditional behavior; "man" and "git" do the same.
2023-12-17 17:12:13 +01:00
Amy Grace
00ffc397b4
completions: add rename (#10136)
* completions: add rename

* add completions for other versions of `rename`
2023-12-10 21:40:38 +01:00
Amy Grace
b7a85fe172
completions: add smerge (Sublime Merge CLI tool) (#10135)
* completions: add smerge (Sublime Merge CLI tool)

* completions: add `-o` (and file completion) to `smerge mergetool`
2023-12-10 11:50:22 +01:00
Amy Grace
d1a906026a completions: add BSD calendar 2023-12-10 11:49:34 +01:00
Ivan Kovnatsky
8c36c21e2e
Add git branch --[no-,contains] completions (#10133)
* Add `git branch --[no-,contains]` completions

* Add __fish_git_commits as an argument
2023-12-10 11:41:58 +01:00
SanskritFritz
684f44bca3 Tab completions for ncdu completed 2023-12-10 11:41:26 +01:00
Nater0214
ca705fcbb5 completions: add airmon-ng 2023-12-10 11:40:53 +01:00
NextAlone
382005c33e
completion(usbip): support ipv6 (#10113)
* completion(usbip): support ipv6

Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>

* completion(usbip): use fish string match

Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>

* fix: support --remote and -r both

Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>

---------

Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>
2023-12-10 11:40:17 +01:00
Fabian Boehm
a2d0016cc1 completions/git: Disable log signatures
Fixes #10144
2023-12-10 10:41:03 +01:00
Fabian Boehm
dbdef5d267 vi-bindings: Make "/" open pager and go to insert mode
Fixes #10141
2023-12-10 10:37:05 +01:00
Johannes Altmanninger
3842d03473 Reformat fish files 2023-12-06 09:33:05 +01:00
Christian Fersch
1980a22522
git completion: Handle aliases referencing other aliases (#9992) 2023-11-24 17:03:02 +01:00
Husam Harazi
3c814bf53d
Add wpctl completions (#10043)
* Add wpctl completions

* Reviewed comments
2023-11-24 16:59:01 +01:00
Asuka Minato
9f9accf203
Update tar.fish (#10079)
* Update tar.fish

* add more long options

* add more options
2023-11-24 16:58:32 +01:00
Fabian Boehm
ed489d0d52 Add __fish_anypager helper
This makes it easier to get *any pager* in the number of places we do.

Unfortunately:

1. It can't just execute the pager because that might block
2. We can't really set the necessary options for less here
   so they still need to be set outside.

This

Fixes #10074

by falling back to `cat` in that case. We could also decide to abort
instead of using a non-pager, but for history that's probably fine.
2023-11-20 17:16:35 +01:00
Nater0214
1a42c97f75 completions: add checkinstall 2023-11-19 09:42:37 -08:00
ridiculousfish
c38a7e4f84 Revert "completions: add chezmoi completions"
This reverts commit ee2c0c4a4c.

chezmoi installs completions to vendor_completions.d - unclear if we want to
ship this.
2023-11-18 18:56:55 -08:00
Jasmin Oster
ee2c0c4a4c completions: add chezmoi completions 2023-11-18 18:54:03 -08:00
Dmitriy Shishkov
bd4adf86f4 Replaced double quotation marks with single in dnf.fish completions 2023-11-12 18:35:49 +01:00
exploide
a390e36e9d completions: improved netcat completions
- fixed a copy and paste error from 7b8684e
- enhanced ncat completions
2023-11-10 15:43:39 +01:00
Fabian Boehm
676da369b4 completions/dnf: Remove "offline-upgrade upgrade"
Fixes #10081
2023-11-07 17:48:54 +01:00
Nicholas Rodrigues Lordello
93b3a0c1f5 Additional checks for -F support 2023-11-07 17:45:45 +01:00
Nicholas Rodrigues Lordello
5cf36bf3f8 ls No Longer Sets LS_COLORS 2023-11-07 17:45:45 +01:00
Wadii Hajji
3f7fdd5693 fix(git): add force-if-includes completion 2023-11-06 20:29:29 +01:00
Asuka Minato
754e81afa3 Update find.fish
add -D and -nowarn
2023-11-06 20:27:01 +01:00
Kid
84e6344c91 Add --verbose completion to fish_key_reader
This was missing from #8467.
2023-11-06 20:21:01 +01:00
Fabian Boehm
e494e15574 funcsave: Always use local $funcdir
This abused default scope
2023-10-19 22:36:58 +02:00
Nunzio Cicone
85deb76c5f update entr completions 2023-10-18 19:09:39 +02:00
exploide
5d0efbf2e8 completions: added userdel from shadow-utils 2023-10-18 19:08:50 +02:00
NextAlone
7250e6fa6a
completion(loginctl): fix sessions with ssh or other states (#10038)
Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com>
2023-10-18 18:36:54 +02:00
ridiculousfish
7fa3dd1747 Refresh and fix some web config bugs
Refresh some stale CSS, improve some rendering, and fix some bugs.

Some of the CSS no longer applied. Remove the bright red X in history
and use a tamer color. Fix the prev/next paginator buttons from moving
for large paginations. Fix the calculation about disabling prev/next.
2023-10-15 13:00:26 -07:00
ridiculousfish
57335ebb02 Reformat colorutils.js using Prettier 2023-10-08 12:27:39 -07:00
ridiculousfish
98018753e5 Replace references to angular with alpine
Updates our license references.
2023-10-08 12:25:43 -07:00
ridiculousfish
5e06e80136 Remove angular "partials"
These are no longer used as we are fully on Alpine.js
2023-10-08 12:22:56 -07:00
Fabian Boehm
c4ca1a68d3
Add a clear-screen bind function to clear the screen (#10044)
This can be bound like `bind \cl clear-screen`, and is, by default

In contrast to the current way it doesn't need the external `clear`
command that was always awkward.

Also it will clear the screen and first draw the old prompt to remove
flicker.
Then it will immediately trigger a repaint, so the prompt will be overwritten.
2023-10-08 11:41:30 +02:00
Mathijs Henquet
a809672412
Fix out of scope opt variable (#10020)
* Fix out of scope opt variable

* Update ls.fish
2023-10-07 18:00:17 +02:00
Fabian Boehm
098b7093da fish_config: Fix save with variable with multiple values
Your basic quoting problem, regressed in 3.6.0
2023-10-06 22:15:35 +02:00
Fabian Boehm
f8e38819a5 open: Don't run xdg-open in the background
This was introduced as a workaround to #7215 - xdg-open's generic path
wouldn't background graphical apps.

This has been fixed a month ago in xdg-open, so we can stop doing it.

The good news is this also allows terminal apps to be used again, so
it

Fixes #10045
2023-10-04 15:57:32 +02:00
Xiretza
0cdf801d0b completions/pacman: fix -Qp completing packages, not files
--file/-p makes -Q interpret the command line argument as a package file
rather than a package name.
2023-10-01 08:46:33 +02:00
Kevin F. Konrad
269c9c3f0c
add completions for crc and oc (#10034) 2023-10-01 08:38:27 +02:00
Roland Fredenhagen
e6bef40c22
completions: add watchexec (#10027)
* completions: add watchexec

* review
2023-10-01 08:37:42 +02:00
Fabian Boehm
9fa70d3ace Remove two calls to builtin realpath
path was added in 3.4, it's old enough that we can use it now.
2023-09-29 16:47:00 +02:00
Charlotte
7c5777a82a completions/pkill: use locals. 2023-09-27 19:53:17 +02:00
NextAlone
3bcde90a88
completion(loginctl): complete sessions, users, seats (#10023)
* completion(loginctl): complete sessions, users, seats
* fix: rename functions and use builtin to parse strings
* fix: duplicate commands
2023-09-23 22:49:43 +02:00
Fabian Boehm
e682ffaf11 Add doctl completion
Just calling a generation thing
2023-09-23 15:09:59 +02:00
Fabian Boehm
2cf22596e7 Disable reflow handling for WezTerm too
Seems to work fine
2023-09-22 17:13:28 +02:00
Fabian Boehm
b03327f5d2 __fish_complete_command: Fix --foo= logic
This was already supposed to handle `--foo=bar<TAB>` cases, except it
printed the `--foo=` again, causing fish to take that as part of the
token.

See #9538 for a similar thing with __fish_complete_directories.

Fixes #10011
2023-09-10 18:16:41 +02:00
Fabian Boehm
fc95eca257 share/config.fish: Skip __fish_set_locale if $LANG is already set
This is the most common and sensible env var, we check it outside,
so we can skip loading the function at all if we already know it's not
gonna do anything.

This is done on every startup of every single fish, and it saves ~0.2ms.
2023-09-09 15:53:20 +02:00
Marcelo Mendes Spessoto Junior
7534572d99 Shortening node.fish completions
Signed-off-by: Marcelo Mendes Spessoto Junior <marcelospe@shinji.linux.ime.usp.br>
2023-09-09 08:31:19 +02:00
Jason Nader
d6e234c60c
completions: add ibmcloud (#10004)
* completions: add ibmcloud

* Update ibmcloud.fish
2023-09-09 08:30:16 +02:00
Asuka Minato
3bf80b2374
add gcc completion for link lib (#10007)
* add completion for lib

* use path basename && use -a
2023-09-09 08:29:39 +02:00
Fabian Boehm
180692fb29 completion: Set up wrapping for gw/gradlew
These were set up as commands in the actual gradle completions, but
they would never be loaded.
2023-09-07 08:06:55 +02:00
Xiretza
fff320b56b completions: make: respect line continuations in recipes
Without this, a recipe containing a trailing backslash followed by a line not
beginning with tab (like any non-continued recipe lines would) would result in
the continuation showing up in completions.

Whenever a line ends in a backslash, consider the next line invalid as a target.

Regex explanation:

^([^#]*[^#\\])? -- optional prefix not containing comment character and not
                   ending in backslash
(\\\\)*\\$      -- 2n+1 backslashes at end of line (handles escaped backslashes)
2023-09-05 11:40:05 +02:00
Fabian Boehm
dcebffb9e7 funced: Note --wait
See #9999
2023-09-05 09:19:21 +02:00
ghostflyby
33ec25da8a completion for macOS java_home 2023-09-01 10:27:18 -07:00
Fabian Boehm
b54faf9469 webconfig: Fix box shadow in dark mode
This changed from a separate div to directly on the body
2023-08-29 14:29:20 +02:00
Fabian Boehm
209af84a37 webconfig: Make prompt selectable 2023-08-29 14:29:20 +02:00
Fabian Boehm
5e6f187ca6
Merge branch 'master' into rewrite/webconfig-to-alpinejs 2023-08-29 14:25:02 +02:00
Yuntao Zhao
9d0d16686e
Improve completion for rpm-ostree (#9910)
* Some temporary change until compose - commit

* First draft

* Fix an error that prints double completion

* Fix completion errors. Add rpm-ostree alias.

Fix cimpletion where it trigger by multiple commands.
Add update and remove, which are aliases for upgrade and uninstall.

* Remove -r when it is unnecessary

Some command need path completion for arguments no matter what,
which makes -r flag useless

* Remove -x for compose image
-x does not block the path anyway

* Add missing short otpion in compose image

Revert the last change to block -l completion

* Fix description

Fix multiple description.
2023-08-26 15:05:52 +02:00
Jason Nader
f6123d235c scp completions: fix path escaping 2023-08-26 15:04:48 +02:00
Fabian Boehm
5b1ff9459a sample_prompts/scales: Silence one last git call
Fixes #9975
2023-08-23 19:15:05 +02:00
Fabian Boehm
81cd035950 print_apt_packages: Go back to apt-cache for non-installed packages
Unfortunately, /var/lib/dpkg/status on recent-ish Debian versions at
least only contains the *installed* packages, rendering this solution
broken.

What we do instead is:

1. Remove a useless newline from each package, so our limit would now
let more full package data sets through
2. Increase the limit by 5x

This yields a completion that runs in ~800ms instead of ~700ms on a
raspberry pi, but gives ~10x the candidates, compared to the old
apt-cache version.

This partially reverts 96deaae7d8
2023-08-22 22:17:22 +02:00
figurantpp
6473a9c763 Shortens rsync completion description 2023-08-21 17:51:15 +02:00
figurantpp
5a934e7ae3 Removed type declarations from node descriptions 2023-08-21 17:51:15 +02:00
ysthakur
0f19d7118b
Replace more escapes with quotes in man parser (#9961)
* Replace \(aq with "'" in man parser

* Also replace oq, dq, lq, and rq
2023-08-19 17:10:22 +02:00
Roland Fredenhagen
556bee6893
completions/iwctl: Show network details in completion (#9960)
* completions/iwctl: Show network details in completion

* apply review comments
2023-08-19 17:08:54 +02:00
Axlefublr
fd68aca6ea
fix __fish_list_current_token not recognizing ~ as $HOME (#9954)
* fix __fish_list_current_token not recognizing ~ as $HOME

* right. it was supposed to be $HOME. lol.
2023-08-16 22:05:59 +02:00
Fabian Boehm
1166424eeb Replace some uses of __fish_complete_list 2023-08-16 21:58:07 +02:00
Fabian Boehm
ec42c2ecec completions/exif: Remove use of eval 2023-08-16 21:58:07 +02:00
Fabian Boehm
1dc65a694d completions/read: Remove long-removed "--mode-name" flag
Disabled in c6093ad782 (in 2.7.0)
2023-08-15 18:34:41 +02:00
Gregory Anders
69ef51f417 Enable PWD reporting for iTerm2 2023-08-14 18:09:12 +02:00
Roland Fredenhagen
408ab86090
Add iwctl completions (#9932)
* Add iwctl completions

* review-comments

* options
2023-08-10 19:35:27 +02:00
Emily Grace Seville
f9d21cc21d
Add horcrux completion (#9922)
* feat(completions): horcrux

* feat(changelog): mention completion

* fix(completion): condition for -n
2023-08-09 17:30:34 +02:00
Gabriel Górski
21ddfabb8d
Simplify and fix __fish_is_zfs_feature_enabled (#9939)
* Simplify and fix `__fish_is_zfs_feature_enabled`

Previously `__fish_is_zfs_feature_enabled` was doing
`<whitespace>$queried_feature<whitespace>` pattern matching which
was skipping the state part expected in the follow-up checking code.

Passing the dataset/snapshot in a `target` argument is pointless. As
none of the existing code attempts to do this plus it is also a
private function (`__` prefix), rename of the argument and removal
of extra text replacement should not be considered a breaking change.

* Changed the `&& \` into `|| return`

* Run `fish_indent`
2023-08-09 17:28:01 +02:00
AsukaMinato
9a9e133b18
add gcc completion lm lz lrt (#9919)
add some gcc completion options
2023-07-29 10:52:23 +08:00
AsukaMinato
2110b36426 more gcc -O completion
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
2023-07-27 17:44:41 +02:00
Emily Grace Seville
6ce2ffbbb0
Add Krita completions (#9903)
* feat(completions): support Krita

* feat(completions): support summary options for Krita

* feat(completions): support remaining options for Krita

* feat(completions): remove debug instructions

* feat(completions): hide completions for sizes for Krita

* feat(completions): fix Krita

* feat(changelog): mention new completion

* fix(completions): refactor Krita

* fix(completion): reformat

* feat(completion): dynamically generate workspace list

* fix(completion): refactor

* fix(completion): krita

* fix(completions): use printf
2023-07-27 17:43:51 +02:00
Emily Grace Seville
8d3885b9cb
Add Blender completions (#9905) 2023-07-27 17:42:55 +02:00
Fabian Boehm
ed881bcdd8 Make default theme use named colors only
This gives us the biggest chance that these are *visible* in the
terminal, which allows people to choose something nicer.

It changes two colors - the autosuggestion and the pager
description (i.e. the completion descriptions in the pager).

In a bunch of terminals I've tested these are pretty similar - for the
most part brblack for the suggestions is a bit brighter than 555, and
yellow for the descriptions is less blue
than the original.

We could also make the descriptions brblack, but that's for later.

Technically we are a bit naughty in having a few foreground and
background pairs that might not be visible,
but there's nothing we can do if someone makes white invisible on brblack.

Fixes #9913
Fixes #3443
2023-07-25 16:42:24 +02:00
EmilySeville7cfg
2bc605625e feat(completions): gimp support 2023-07-23 15:09:35 -07:00
Fabian Boehm
5f26c56ed5 completions/pactl: Fix matching objects
This didn't work for something like `pactl set-card-profile foo
<TAB>`,
because it didn't allow for the card name, as it would just print the
index again and again.
2023-07-19 18:13:40 +02:00
Fabian Boehm
bfd97adbda completions/rclone: Add version parsing
This had a weird, unnecessary and terrible backwards-incompatibility
in how you get the completions out.

I do not like it but I am in a good enough mood to work around it.

See #9878.
2023-07-15 14:25:41 +02:00
Fabian Boehm
493cbeb84c completions/git: Trim with the regex
This gives us another few percent.

It's not *technically* the same because `trim` would remove a run of
quotes, but that would be wrong anyway.
2023-07-13 18:05:55 +02:00
Fabian Boehm
dd26611c0f completions/git: Move some variables to the v1 path
No longer used elsewhere
2023-07-13 16:51:16 +02:00
Fabian Boehm
7f76f75966 completions/git: Add fast path for untracked files
It's super easy to get a lot of these and they'll otherwise slow down
the completions a lot.

This makes `git add <TAB>` ~5-6x faster with about 4000 untracked
files (a copy of the fish build directory). It goes from 1.5 seconds to
250ms.

This is just for the git >= 2.11 path, but the other one would require
more checking and since git 2.11 is almost 7 years old now that's not
worth it.
2023-07-13 16:46:22 +02:00
Fabian Boehm
1f1975689e completions/git: Don't check commandline so much
This just caches some checks, speeding up `git add ` completions by
~33% with 4000 matching files.
2023-07-13 16:31:33 +02:00
Fabian Boehm
2b0e3ba3b8 __fish_print_hostnames: Fix regex
This used `]` when it should have been `}`, which made the regex nonsensical

Broken since 94c12d84e2 in 2016
2023-07-11 20:50:56 +02:00
Fabian Boehm
1a11cee559 functions/cd: Optimize check for too many args
This ran two `test`s a `count` and one `echo`, which is a bit wasteful.

So instead, for the common case where you pass one argument, this will
run one `set -q`.

This can save off ~160 microseconds for each ordinary `cd`, which
speeds it up by a factor of ~2 (so 1000 runs of cd might take 260ms
instead of 550ms).

Ideally the cd function would just be incorporated into the builtin,
but that's a bigger change.
2023-07-11 18:01:29 +02:00
pd
ac2810e9ef Fix rclone autocompletion script sourcing issue in fish shell 2023-07-07 21:34:12 +02:00
may
e3e7ab77ad add stash completions to git show and git diff 2023-07-05 10:53:17 +08:00
Johannes Altmanninger
052823c120 history pager: delete selected history entry with Shift-Delete
After accidentally running a command that includes a pasted password, I want
to delete command from history. Today we need to recall or type (part of)
that command and type "history delete".  Let's maybe add a shortcut to do
this from the history pager.

The current shortcut is Shift+Delete. I don't think that's very discoverable,
maybe we should use Delete instead (but only if the cursor is at the end of
the commandline, otherwise delete a char).

Closes #9454
2023-07-04 18:42:11 +02:00
David Adam
472d7efe34 completions/status: add basename and dirname 2023-07-04 23:32:39 +08:00
Francois Laithier
a7ac92f62f Use __fish_complete_directories to help complete dirs only 2023-07-01 11:01:36 -07:00
Francois Laithier
911a5a97a8 Add completion option for curl
Add missing completion for curl's `--output-dir` option
2023-07-01 11:01:36 -07:00
Fabian Boehm
b043a1c35f completions/help: Add custom-prompt 2023-06-28 16:13:20 +02:00
Fabian Boehm
c385027eca
docs: Add "Writing your own prompt" doc (#9841)
* docs: Add "Writing your own prompt" doc

* Remove a space from the "output"

* some teensy adjustments

* Address feedback

* envvar one more PWD

* More html warning
2023-06-20 19:43:09 +02:00
Fabian Boehm
0cfdc90551 completions/unzip: Dangit FreeBSD
No "--help" and the man page doesn't mention "-h".
2023-06-18 21:27:29 +02:00
AsukaMinato
bab8fb9517
Add i o for unzip (#9850)
* add -I -O for unzip

* for different distroes.

* avoid grep
2023-06-18 21:04:43 +02:00
Fabian Boehm
38ac21ba5e alias: Escape the function name when replacing
Fixes #8720
2023-06-17 07:46:07 +02:00
Fabian Boehm
4e3b3b3b0a share/config.fish: Quit if job expansion hack errors
This prevents something like `fg %5` to foreground the first job if
there is no fifth.

Fixes #9835
2023-06-10 15:36:36 +02:00
Fabian Boehm
65769bf8c8 history: Allow deleting ranges
This allows giving a range like "5..7".

It works in combination with more (including overlapping) ranges or
single indices.

Fixes #9736
2023-06-10 15:35:40 +02:00
Andre Eckardt
cbf9a3bbbd improved print CSS for fish_config
This commit introduces a fishconfig_print.css that contains special CSS styles that only apply when printing the fishconfig page. This is especially useful when the user wants to print out the key bindings.
2023-06-10 09:47:01 +02:00
Fabian Boehm
516b8da302 Allow disabling focus reporting 2023-06-10 07:25:20 +02:00
Amy Grace
4c9fa511e8 Force use of macOS's builtin manpath
Prevent a useless warning msg if Homebrew's `man-db` is installed and configured
2023-06-06 13:12:30 -05:00
Fabian Boehm
946ecf235c Restyle fishscript and python 2023-06-01 18:20:19 +02:00
Fabian Boehm
81d91f1038 create_manpage_completions: Really ignore bundle/cargo 2023-06-01 18:17:47 +02:00
may
d19a08cd8c
update npm completions (#9800)
* update npm install completions

* update npm uninstall

* init npm dep rewrite

+ init npm

* npm uninstall complete global packages

* add npm pack completions

* add npm publish completions

* add npm init completions

* add missing commands, remove outdated, add missing aliases

* add npm audit completions

* implement requested changes

* rename __yarn_ to __npm_

* add missing commands / aliases

* slightly less verbose options, reword dry-run description (meh)

* more commands and options

* add and update completions for several commands

* access, adduser, bugs, ci, config, cache
* dedupe, deprecate, dist-tag, diff, docs, doctor
* edit, exec, explain, explore, find-dupes, fund
* hooks, help-search, install, ls, publish, search
* version, view

* more commands, fixes

* fish_indent

* remove most aliases from command suggestions

* add most other commands

* npm help, --help

* minor fixes

* remove npm builtin completion, new install option, fish_indent

* add completions for npm set, npm get
2023-05-30 11:22:18 +02:00
may
6b1e6dd179
add completions for git update-index (#9759)
* add git update-index completions

* remove todo

* fix leftover from copying lines

* improve and shorten
2023-05-30 11:21:00 +02:00
Kevin F. Konrad
ffb6168221 implement completion for age and age-keygen 2023-05-27 11:15:37 -07:00
Fabian Boehm
2eba6845c2 create_manpage_completions: Use raw strings for backslashes
python 3.12 emits a SyntaxWarning for invalid escape sequences.

Fixes #9814
2023-05-26 14:01:52 +02:00
David Adam
4e13b1b5d5 Licensing: note MIT licensing status of Dracula theme 2023-05-25 21:30:30 +08:00
Wenhao Ho
201610151f feat: sync the dracula official theme
Signed-off-by: Wenhao Ho <wh.ho@outlook.com>
2023-05-23 20:47:01 +08:00
Fabian Boehm
aac30367bf completions/systemctl: Add some missing commands
Fixes #9804
2023-05-21 10:02:26 +02:00
Fabian Boehm
1ed31579f2 create_manpage_completions: Remove one more groff thing
This came up in the irb man page:

```
.Pp
.It Fl W
Same as `ruby -W' .
.Pp
```
2023-05-12 18:32:08 +02:00
Fabian Boehm
e09f7e4e4d create_manpage_completions: Skip more prefixes
This also skips the 192 git- and 64 npm- pages that

1. have better completions already (for the most part)
2. don't have the same name as a command typically in $PATH

In doing so it reduces the runtime on my system from 9s to 7s. Granted
I have all of these, so that's the best case.
2023-05-12 17:57:29 +02:00
Fabian Boehm
5f672ece84 create_manpage_completions: Also clear already_output_completions
Prevents issues if we try to read a manpage twice - in which case we
could fall back to another parser, creating different results.

Fixes #9787
2023-05-12 16:35:05 +02:00
Fabian Boehm
d855725965 completions/dnf: Use lowercase queryformat
See de9c5c5b59

Fixes #9783
2023-05-08 18:34:02 +02:00
Rocka
c21e13e62e completions: fix qdbus Q_NOREPLY method completion 2023-05-07 14:34:03 -07:00
Mahmoud Al-Qudsi
220ffaeb65 Add completions for builtin disown
It completes identical to `fg` and `bg` w/ this change. I'm not aware of any
reason why it shouldn't, but feel free to enlighten me if I've missed something.

[ci skip]
2023-05-05 16:08:58 -05:00
Mahmoud Al-Qudsi
4f5cef446a apt.fish: Fix compatibility with newer versions of Debian/Ubuntu
Why drop support for `awk -e`? Linux sees so much needless churn!
2023-05-03 21:27:46 -05:00
Fabian Boehm
0963e6769e completions/wvdial: Use path 2023-04-29 16:15:13 +02:00
Fabian Boehm
2f997ba8a2 Remove a useless sort 2023-04-29 16:15:07 +02:00
Fabian Boehm
32715ee504 completions/sv: Use path 2023-04-29 15:58:52 +02:00
Fabian Boehm
d2165ca7e9 Use path basename 2023-04-26 19:38:10 +02:00
Kid
93dc8485dd Remove kitty completion in favor of official integration 2023-04-25 19:28:55 +08:00
Yuntao Zhao
20b500dce8
Add rpm-ostree completion (#9669)
* Add rpm-ostree completion

Add basic command completion for rpm-ostree. This should improve the
user experience for fish users using rpm-ostree.

* Shorten rpm-ostree descriptions

---------

Co-authored-by: Mahmoud Al-Qudsi <mqudsi@neosmart.net>
2023-04-23 12:55:00 -05:00
Jannik Vieten
480133bcc8
Improve jq completions and add gojq completions
* completions: updated jq completions

* completions: added completions for gojq

* Shorten jq completion descriptions

* Update gojq.fish

Capitalize first letter of descriptions to match other completions.

---------

Co-authored-by: Mahmoud Al-Qudsi <mqudsi@neosmart.net>
2023-04-23 12:35:41 -05:00
exploide
30ae715183 completions: added ip neigh completions 2023-04-23 17:48:58 +08:00
may
beca70458b add recent commits to completion for git switch --detach 2023-04-21 07:44:50 +02:00
AsukaMinato
f5e063a462
add-qjsc-fish (#9731)
* add-qjsc-fish

* fix -o qjsc.fish
2023-04-19 19:21:55 +02:00
Fabian Boehm
db5c9badad completions/git: Escape custom command names
This can be triggered by having a custom git command in e.g.
`/mnt/c/Program Files (x86)/foo/`.

Fixes #9738
2023-04-18 20:40:14 +02:00
Jan Tojnar
9e223577aa Fix composer require completion
When no development dependencies are installed, the completion would crash with:

    KeyError: 'require-dev'
2023-04-12 21:05:23 +02:00
Paweł Piątkowski
bda9d57417 Ansible completion: fix typo in --limit-hosts 2023-04-12 16:52:13 +02:00
Eric N. Vander Weele
fdd4bcf718 completions/git: Allow switch to complete remote branches
While it is true that `git switch <remote-branch>` errors to disallow a detached
head without the `-d` option, it is valid to use any starting point (commit or
reference) in conjunction with the `-c` option. Additionally, the starting point
can occur before any option.

This enables the following completions:

* `git switch -c <local-name> <any-branch>`
* `git switch <any-branch> -c <local-name>`
* `git switch -d <any-starting-point>`
* `git switch <any-branch> -d`

The trade-off is this does allow for `git switch <remote-branch>` to be
completed with an error.

Note that this logically reverts 7e3d3cc30f.
2023-04-10 17:04:34 +02:00
AsukaMinato
8a0510a2f2 add qjs completion 2023-04-10 11:02:43 +02:00
AsukaMinato
36e4b0ff30
add completion for ar (#9720)
* add completion for ar

* clean the function

* update CHANGELOG
2023-04-10 11:01:47 +02:00
abp
bbe2a2ba9b completions: Shortened descriptions
- Mainly work is done on gcc
- Some duplicated removed elsewhere
2023-04-09 11:33:23 -07:00
Miha Filej
b5bfff9cac
completions/mix: Add options for phx.new in 1.7.2 (#9706) 2023-04-04 07:41:11 -05:00
Marcin Wojnarowski
0f1ef34736
Fix adb path completion (#9707)
Support paths with spaces.
2023-04-03 22:06:15 -05:00
BrewingWeasel
d9c1fb5d51 fix E not moving cursor at end of word in VI mode 2023-04-01 10:04:28 -07:00
Robert Szulist
9bd1dc14e5
Add Zabbix completions (#9647)
Add Zabbix completions
2023-03-31 22:13:40 -05:00
Fabian Boehm
43e8bb4532 fish_vi_cursor: Don't call __fish_cursor_konsole anymore
This hasn't been used for years.
2023-03-31 20:07:54 +02:00
Fabian Boehm
e45bddcbb1 __fish_cursor_xterm: Ignore unknown cursor settings
This prevents leaking the escape sequence by printing nonsense, and it
also allows disabling cursor setting by just setting the variable to
e.g. empty.

And if we ever added any shapes, it would allow them to be used on new
fish and ignored on old

Fixes #9698
2023-03-31 20:07:54 +02:00
Fabian Boehm
bc04abe3ec completions/git: Don't take options for --{force-,}create
We do the same for checkout -b.

Fixes #9692
2023-03-28 17:20:45 +02:00
Fabian Boehm
c39780fefb __fish_complete_directories: Remove --foo= from token
Otherwise this would complete

`git --exec-path=foo`, by running `complete -C"'' --exec-path=foo"`,

which would print "--exec-path=foo", and so it would end as

`git --exec-path=--exec-path=foo` because the "replaces token" bit was
lost.

I'm not sure how to solve it cleanly - maybe an additional option to
`complete`?

Anyway, for now this
Fixes #9538.
2023-03-27 22:57:34 +02:00
Fabian Boehm
563b4d2372 completions/git: Complete branches for --set-upstream-to
See #9538
2023-03-27 22:57:34 +02:00
Emily Grace Seville
ba7785856e Add md-to-clip completion
- https://github.com/command-line-interface-pages/v2-tooling/tree/main/md-to-clip
2023-03-27 17:29:53 +02:00
Chris Wendt
3a72d098e2
Use stack's dynamic completions (#9681)
* Use dynamic completions for stack

* Pass the plain command
2023-03-27 17:29:14 +02:00
NextAlone
45b6622986
completion/ssh-copy-id: add completion (#9675)
Add completions for ssh-copy-id.

Refactored __ssh_history_completions into its own file for autoloading across completions.
2023-03-22 12:24:18 -05:00
NextAlone
ff34c1a573
completion/git: complete tags for force option (#9678) 2023-03-22 11:07:18 -05:00
sigmaSd
860de8aa8f minor cleanup 2023-03-22 11:00:59 -05:00
sigmaSd
b95085609e deno task take one argument max 2023-03-22 11:00:59 -05:00
sigmaSd
93bf4e1187 Update deno task completions to handle deno.jsonc and package.json 2023-03-22 11:00:59 -05:00
NextAlone
da3323bbc2 completion/adb: add execout and complete props
Signed-off-by: NextAlone <12210746+NextAlone@users.noreply.github.com>
2023-03-21 22:20:36 -05:00
Quinten Roets
f5506803d7
fish_vi_cursor: add new variable for external cursor mode (#9565)
* add new variable for external cursor mode

* fix backwards compatibility

* add documentation

* document change in changelog
2023-03-14 10:50:20 +01:00
lengyijun
aa65856ee0 Fixes #8924 via __fish_complete_suffix overhaul
Before:
* hand write arg parse
* only accepts one suffix

After:
* use `arg_parse` to parse args
* accepts multi suffixes

Closes #9611.
2023-03-12 22:07:44 -05:00
Shun Sakai
1a7e3024cc
Update completions for pandoc (#9651)
- Change completions for input formats, output formats and highlight
  styles to dynamically complete
- Add more valid PDF engines
2023-03-10 16:44:03 -06:00
NextAlone
f0c5484eda
completions/adb: unroot and optimize devices show (#9650)
* completions/adb: add unroot command

Signed-off-by: NextAlone <12210746+NextAlone@users.noreply.github.com>

* completions/adb: use product and model both to show device

Signed-off-by: NextAlone <12210746+NextAlone@users.noreply.github.com>

---------

Signed-off-by: NextAlone <12210746+NextAlone@users.noreply.github.com>
2023-03-10 16:42:54 -06:00
sigmaSd
307c58dd07
Add completions for deno task subcommand (#9618)
[ci skip]
2023-03-05 13:43:38 -06:00
Agatha Lovelace
e32e6daced support prepending please instead of sudo/doas 2023-03-05 12:49:27 +01:00