-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Description
Type of issue
Typo
Description
This page needs content about the new built-in tab completion scripts for shells: https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview3/sdk.md#native-shell-completion-scripts
We should lean into these over the older, dynamic completions as they are much faster.
> dotnet completions generate [SHELL]
... lots of shell-specific script emitted here...
The shell argument is one of the following shell names:
- bash
- fish
- nushell
- pwsh
- zsh
If no shell is specified, we will try to infer the correct shell from the current execution environment -
- if Windows, default to pwsh
- otherwise, see if the file name of the SHELL environment variable matches any of the shells above
Capabilities
The primary reason to do this is speed. Native shell completions are much faster than dynamic, dotnet-provided completions.
We have differing levels of support/capabilities for each shell in this release:
hybrid means that we generate shell-specific shims that are fast for the 'static' parts of the CLI grammar, but for dynamic parts of the grammar (NuGet Package Ids, etc) we ask the dotnet CLI for dynamic completions
dynamic means that all completions go through the full dotnet CLI, so completions may be slower
| shell | completion type | support for descriptions in tab completions |
|---|---|---|
| bash | hybrid | no |
| fish | dynamic | no |
| nushell | dynamic | no |
| powershell | hybrid | yes |
| zsh | hybrid | yes |
We'll want to document shell-specific examples of including these generation+registration scripts in each shell's equivalent of the $PROFILE.
For example, for powershell this might look something like adding this to your $PROFILE:
dotnet completions script pwsh | out-String | Invoke-Expression -ErrorAction SilentlyContinuePage URL
https://learn.microsoft.com/en-us/dotnet/core/tools/enable-tab-autocomplete
Content source URL
https://github.com/dotnet/docs/blob/main/docs/core/tools/enable-tab-autocomplete.md
Document Version Independent Id
f30f63dc-0d90-7dba-ef39-b0148c637c1a
Platform Id
d808fba8-f906-9fc9-f8fd-8fe8bca5bdf8
Article author
Metadata
- ID: 341f0255-aa31-8e76-9b17-1232b7a910a9
- PlatformId: d808fba8-f906-9fc9-f8fd-8fe8bca5bdf8
- Service: dotnet-fundamentals