Commit graph

2386 commits

Author SHA1 Message Date
Mahmoud Al-Qudsi
086d088e1b Fix scp completions to support bidirectional transfer
Also hardcode standard /bin/ls to avoid issues with `ls` aliases on the
target, and inherit the (improved) list of remotes from `ssh`.
2018-06-04 07:32:21 -05:00
Mahmoud Al-Qudsi
c8c3265cb8 Fix completions for service
I'm not sure what was up with the old completions,
`$__fish_service_commands` is not set anywhere and completions for the
command (not the service) were not being generated on my machine.
2018-06-04 07:32:21 -05:00
Mahmoud Al-Qudsi
fd14e459cf Add completions for xsv 2018-06-04 07:32:21 -05:00
Mahmoud Al-Qudsi
f6a1bc1489 Fix unzip completions for non Info-ZIP versions
macOS and (AFAICT) most Linux distributions ship with the Info-ZIP
version of unzip, which has the `unzip -h` flag; but other
implementations of unzip do not necessarily have it (i.e. FreeBSD).

`unzip` under FreeBSD does not support `unzip -h`. Under both Linux and
FreeBSD, `unzip -v` presents the list of options, though. Using this
instead of `unzip -h` to detect the Debian-patched version of the
Info-ZIP unzip program.
2018-06-03 14:57:11 -05:00
kewl fft
ebc5e18956 add xclip support for clipboard copy and paste functions 2018-06-03 00:39:07 +02:00
Fabian Homborg
39905d4135 Skip fish_vi_cursor when not interactive
This prints an escape sequence, so it can break scp or similar when
someone has an unqualified

    fish_vi_key_bindings

in config.fish and happens to run a terminal that can set the cursor.
2018-06-01 20:26:54 +02:00
Fabian Homborg
44d68f99ea [completions/gcc] Improve wording
These completions are apparently based on an auto-generated version,
so there's a whole bunch of rewording to be done here.

Also for some reason some of the options are mentioned more than once?
2018-06-01 20:16:23 +02:00
Fabian Homborg
fa8248f170 [completions/git] Don't run __fish_git_refs twice for "log"
That's already included in `__fish_git_ranges`, so we don't need to do
it again.

Mentioned in #4117.
2018-05-30 18:10:52 +02:00
Fabian Homborg
0f4126c115 Silence winch handler
Fixes #4876.
2018-05-29 18:40:29 +02:00
Gustaf Johansson
23eb63eb2f completions: [git] Added git help completions
This patch adds completions for the help subcommand of git.
2018-05-28 12:15:19 +02:00
Luca Weiss
c1af560753 pacman: Recognize *.pkg.tar as valid package extension (#5005)
* pacman: Recognize *.pkg.tar as valid package extension
2018-05-26 15:41:46 -07:00
Mahmoud Al-Qudsi
b7db397f61 Fix zfs completions under FreeBSD
Under FreeBSD, as annoying as it is, switches must directly follow the
command or subcommand in question, and cannot come after actual payload
argument. Calling `zpool get all -H` instead of `zpool get -H all`
caused error messages to be spewed to the console under FreeBSD when
simply completing `zfs <TAB>`, this should fix that. The change should
also be compatible with other operating systems (namely Linux) that
don't have this requirement, as they (generally) allow arguments to come
before _or_ after the primary non-switch argument (though I do not have
access to a zfs-enabled Linux machine to test this).
2018-05-26 12:20:04 -05:00
Mahmoud Al-Qudsi
46bd0e66b6 fixup! Clean up completions a little bit
Reverts some changes that broke sudo completions, and adds comments
clarifying the purpose behind sudo completions.

Closes #5004.
2018-05-22 17:44:52 -05:00
Mahmoud Al-Qudsi
6401906288 Fix missing -- in string match in __fish_complete_suffix
Caused completion to fail when current token begins with -
2018-05-22 09:59:16 -05:00
Mahmoud Al-Qudsi
7d33372d20 Fix __fish_complete_suffix behavior per __fish_complete_directories test 2018-05-20 14:35:52 -05:00
Mahmoud Al-Qudsi
0a337a9d8e Clean up completions a little bit 2018-05-20 14:07:56 -05:00
Mahmoud Al-Qudsi
fd4b3f2c26 Fix __fish_complete_directories test failure
The `sort -u` was applied only conditionally in __fish_complete_suffix,
now applied universally at the final step.
2018-05-20 13:50:28 -05:00
Mahmoud Al-Qudsi
4be4932786 Fix unzip completions directory completion 2018-05-20 12:33:41 -05:00
Mahmoud Al-Qudsi
beac145e75 Support expansions in directory completions as well
Also fixes some issues with duplicate results in __fish_complete_suffix.
2018-05-20 12:30:07 -05:00
Mahmoud Al-Qudsi
5bd121bd6d Fix unzip completions for non-Linux platforms 2018-05-20 12:04:22 -05:00
Alexander Skwar
9401d3a6d5 Fix fish-shell issue #4996: open -a works now on non-english installs 2018-05-20 21:14:10 +08:00
Alexander Skwar
e6aacd6167 Fix fish-shell issue #4993 - support pathname completion for open -a command. 2018-05-20 21:14:10 +08:00
Mahmoud Al-Qudsi
9ddba0116f Add completions for unzip 2018-05-20 01:22:16 -05:00
Mahmoud Al-Qudsi
ec14507723 Add function to retrieve first token
This should probably be updated to use argparse at some point?
2018-05-20 01:21:03 -05:00
Mahmoud Al-Qudsi
332e17e8e8 Support [*{}~$] in completions with __fish_complete_suffix
Previously, trying to complete a token with any of these
expansion-related characters would cause the completion to return no
results, as it would emit expanded values which weren't matched by the
autocompleter.
2018-05-20 00:38:17 -05:00
Mahmoud Al-Qudsi
4974ecfc32 Block pseudo/meta arguments from ./configure completions
Also finishes faster.
2018-05-17 23:36:56 -05:00
Mahmoud Al-Qudsi
4b78c92652 Optimize structure/layout of __fish_print_packages
Move XDG_CACHE_HOME logic below package providers that don't use the
cache.
2018-05-17 22:21:19 -05:00
Mahmoud Al-Qudsi
1c4940c04c Make sudo completions _much_ smarter
Now dynamically generating completions for the target of the `sudo`
command, where possible.
2018-05-17 20:19:31 -05:00
Fabian Homborg
560985cdee Remove test invocations with implicit -n tests
This is something we would like to remove - #2037.
2018-05-17 13:24:26 +02:00
Mahmoud Al-Qudsi
18a163dc24 Simplify argument completions for ttx and meson 2018-05-13 20:00:58 -05:00
Mahmoud Al-Qudsi
e197e57a7f Clarify ttx completion file table naming case sensitivity 2018-05-13 14:05:57 -05:00
Mahmoud Al-Qudsi
1bdf61cb20 Add completions for meson build system 2018-05-13 13:59:03 -05:00
Mahmoud Al-Qudsi
20395339a4 Fix python{,2,3} argument completions
Only the first non-switch parameter to python must be a .py file, but
everything thereafter is "just another argument". This enables file
completions for 2nd+ arguments.
2018-05-12 23:40:40 -05:00
Mahmoud Al-Qudsi
5f1168002e Complete current commandline token with __fish_complete_directories if
Akin to __fish_complete_suffix, __fish_complete_directories now attempts
to complete the current commandline token if no token is explicitly
passed in as an argument.
2018-05-12 14:06:03 -05:00
Mahmoud Al-Qudsi
82c8abc4dc Add completions for ttx 2018-05-12 14:06:03 -05:00
Fabian Homborg
84fe46e763 [make completions] Reenable files if token contains "="
Fixes #4967.
2018-05-12 18:52:51 +02:00
Fabian Homborg
feb6e9c90b Make DEFAULT_PROMPT and DEFAULT_TITLE work without functions
The prompt is a fallback that is overridden via a function file
anyway.

Do that with the title as well, so we can use just builtins.

This removes error messages when $fish_function_path is borked.
2018-05-12 13:53:45 +02:00
Fabian Homborg
ef66b99721 Remove some dead code
This was a remnant from us checking `string length`. Now that we check
if the variable is set, this code does nothing.
2018-05-12 13:48:32 +02:00
Fabian Homborg
a4f55d95d4 Detect GNU make via "--version"
Turns out that `make -pn` actually takes a while - about 300ms on
fish's makefile.

That's quite a bit of time just to throw away the output and use the
exit code.

So we just check for "GNU" in the version string.

It would be nice to just _do_ the completion and fall back on the
BSD-style if it doesn't work, but that is tricky to do with the pipe
to `awk` - the awk expression actually does not fail if `make` does
not print output.

And I don't know enough about awk to change that.
2018-05-11 16:16:14 +02:00
Fabian Homborg
9929acd9d8 Revert "Use git ls-files to generate completions for git"
While this is a bit faster (mostly because it needs less processing on fish's side),
it lacks the neat description bit and the ":/" stuff doesn't work.

The boost is also not large in absolute terms (a few milliseconds).

This reverts commit 1f8e4dad9f.
2018-05-11 16:00:45 +02:00
Mahmoud Al-Qudsi
1f8e4dad9f Use git ls-files to generate completions for git
This uses the same logic that git uses to determine the satus of files
and doesn't require any parsing on our end. Brings in support for
relative paths (such as `git add ../f<TAB>`). Should be faster and more
reliable than manually parsing porcelain status.

This doesn't support as many cases as the old `__git_ls_files` function
did (e.g. `renamed` is not supported, nor is `added`), both of which
_can_ be implemented on top of the new logic - but neither of which were
actually being used, anyway.

Usefulness is decreased by #4970, speed still bottlenecked by #4969.

cc @faho
2018-05-10 14:04:20 -05:00
Fabian Homborg
ceddd1e684 Restore . alias for source
The breakage is just too annoying.

This reverts 55bef3cd2e.
2018-05-09 16:51:52 +02:00
Fabian Homborg
1e3d26f744 [git completions] Remove impossible error message
We already read the rest into a "_" garbage variable.
2018-05-08 23:16:39 +02:00
Fabian Homborg
183b7f7017 [git completions] Complete deleted files after "--" for "reset" 2018-05-08 23:16:10 +02:00
Fabian Homborg
39e3c3c0b1 [git completions] Readd "unique remote branches"
This is based on what the official git completions do, and it's quite
fast.

Also only complete files after a "--" separator for `checkout`.

Fixes #4858.
2018-05-08 23:14:49 +02:00
Fabian Homborg
34fc390e13 [git completions] Shorten commit SHA ourselves
This is much quicker - on the order of 100ms vs 50ms.

We shorten to 10 characters, which is statistically suitable - 3 out
of 600k commits in the linux kernel need 11 characters.
2018-05-08 23:12:13 +02:00
Fabian Homborg
88b688c544 [hg prompt] Use hg status -q
For some reason, `hg status -q` prints the exact same output as `hg
status`, but about 20% faster.
2018-05-08 22:52:16 +02:00
Mahmoud Al-Qudsi
91f75d84d3 Completions for optipng 2018-05-06 18:55:12 -05:00
Mahmoud Al-Qudsi
6dc74d3b6c New helper functions __fish_is_first_arg and __fish_prev_arg_in
For usage in completion scripts.

Unlike `__fish_is_first_token` (which is probably not correctly named),
`__fish_is_first_arg` returns true regardless of whether existing tokens start with `-`
or not, to be used when an arg cannot be used with any other argument.

`__fish_prev_arg_in` is similar to `__fish_seen_...` but it explicitly
tests the preceding token only, for arguments that take only a single
parameter.
2018-05-06 18:55:12 -05:00
Luc J. Bourhis
d652b9b606 Use --tool-help to find available tools for difftool/mergetool 2018-05-06 13:12:42 -07:00