Commit graph

22 commits

Author SHA1 Message Date
Mahmoud Al-Qudsi
db92109db5 Support top-level completion of user-installed cargo subcommands
This expands completions of `cargo^I` to list any commands named `cargo-xxx` as
cargo subcommands invokable as `cargo xxx` in addition to the default oob
subcommands cargo ships with.

(This is very similar to how git allows users to shim their own subcommands.)

NOTE: This would stay even after cargo someday moves to clap and generates or
even ships/installs an official machine-generated `cargo.fish` completions
script.
2022-09-01 12:22:31 -05:00
Weihang Lo
b796716901 Remove non-existing cargo subcommand
The old way of generating cargo completions no longer work, so we need
to manually maintain the completions until clap completions support[1].

[1]: https://github.com/clap-rs/clap/issues/3166
2022-08-31 17:35:52 -05:00
Alexander Sieg
7d34908baa Complete cargo subcommands without description
Cargo subcommand extensions don't provide a description in `cargo --list`,
the regex used to filter this list ignored lines without a description.
This change fixes that.
2021-12-04 10:31:11 +01:00
Ian Chamberlain
3773baf1f3 Use cargo run --example to get list of examples
This behavior matches the way completions are found for `cargo run`,
`cargo test`, etc., and is more robust and correct compared to looking
at filenames.
2021-11-16 07:15:08 +01:00
Collin Styles
7d5c64a731 Fix completions to cargo's --example option on macOS
The completions for the `--example` option are generated using `find`.
The `find` utility on macOS will produce the following output when the
path argument has a trailing slash:

```
~/bat $ find ./examples/
./examples/
./examples//cat.rs
./examples//advanced.rs
./examples//simple.rs
./examples//list_syntaxes_and_themes.rs
./examples//yaml.rs
```

And will produce this output if the path does NOT have a trailing slash:

```
~/bat $ find ./examples
./examples
./examples/cat.rs
./examples/advanced.rs
./examples/simple.rs
./examples/list_syntaxes_and_themes.rs
./examples/yaml.rs
```

The extra slash after `examples` ends up in the completion suggestions
which is incorrect:

```
~/bat $ cargo run --example <TAB>
/advanced  /cat  /list_syntaxes_and_themes  /simple  /yaml
```

Unlike on my Linux box where `find` doesn't output the trailing slash:

```
~/bat $ cargo run --example <TAB>
advanced  cat  inputs  list_syntaxes_and_themes  simple  yaml
```

Importantly, I get the same (correct) output on Linux even without the
trailing slash in the path argument to `find`.
2021-06-15 21:22:44 +08:00
Olivier FAURE
211f8bc894
Write new completion file for cargo (#7839) 2021-03-20 21:44:38 +01:00
Ivan Tham
c5343a538f Add cargo abbr completions 2020-12-21 23:05:31 +01:00
Mahmoud Al-Qudsi
326fd8d750 [cargo] Add dynamic --package completions
[ci skip]
2020-09-03 13:41:37 -05:00
Mahmoud Al-Qudsi
0d3f4db33a [cargo] Use filesystem for --example completions
`cargo run --example` no longer lists examples and never listed examples
that were not built.
2020-08-29 17:06:33 -05:00
Johannes Altmanninger
9c327b19a6 Fix extra or missing newlines at end of file in our fish scripts
New fish_indent does that too, so this will make any future reformatting
diffs smaller.

Done using either of:

	perl -pi -e 'undef $/; s/\n*$/\n/' share/**.fish
	kak -n -f '<a-/>\n*<ret>d' share/**.fish
2020-08-09 23:53:46 +02:00
Johannes Altmanninger
c54ee22c46 Refactor: remove unnecessary exports 2020-05-19 21:15:11 +02:00
Fabian Homborg
9367d4ff71 Reindent functions to remove useless quotes
This does not include checks/function.fish because that currently
includes a "; end" in a message that indent would remove, breaking the test.
2020-03-09 19:46:43 +01:00
Johannes Altmanninger
27e88adcd5 Re-fix cargo completions
Using a local variable means we have to expand it when loading the
completion.  With this approach, the content of the variable will be
expanded, so escape it.
2020-03-07 19:54:50 +01:00
Fabian Homborg
db62953e0f completions/cargo: Add remaining bits of #6717
A nicer variable scope and no more erasing completions.

[ci skip]
2020-03-07 19:38:23 +01:00
Mahmoud Al-Qudsi
4a3ffe741c Partilaly revert 0b7bbb5654
The changes to the `cargo` completions resulted in screenfuls of junk
being dumped to the tty on `cargo pu<TAB>`.
2020-03-07 08:44:00 -06:00
Jason Nader
0b7bbb5654 cleanup completions: localise/erase vars where possible
[skip-ci]
2020-02-23 11:10:32 +01:00
Mahmoud Al-Qudsi
9bf5dfd738 Further enrich cargo completions
* Replace multiple calls to `tail` and `string` with a single `string
  replace` execution
* Dynamically generate list of available benches, bins, and tests for
  `--bench`, `--bin`, and `--test` switches

[ci skip]
2020-02-04 18:12:02 -06:00
Mahmoud Al-Qudsi
8f4797a38b Update cargo completions to use dynamic --example options
[ci skip]
2020-02-03 13:48:11 -06:00
Fabian Homborg
ce245704d7 Reformat completion scripts
These were excluded from style.fish
2019-05-05 12:53:09 +02:00
Tang King Fai
0e6cc13d0d Update cargo completion (#5172)
* Update cargo completion

* Show sub-command's description for completion
2018-09-07 15:29:48 +02:00
mathbunnyru
7a80610300 Delete trailing spaces 2017-01-15 14:57:21 -08:00
Bheesham Persaud
46fbfaaa83 Add cargo and rustc completion.
rustc.fish makes heavy use of the `string` commands.
2015-10-26 21:39:16 -04:00