Jak włączyć uzupełnianie kart dla interfejsu wiersza polecenia platformy .NET
Ten artykuł dotyczy: ✔️ zestaw .NET Core 2.1 SDK i nowsze wersje
W tym artykule opisano sposób konfigurowania uzupełniania kart dla pięciu powłok: PowerShell, Bash, zsh, fish i nushell. W przypadku innych powłok zapoznaj się z dokumentacją dotyczącą konfigurowania uzupełniania kart.
Po skonfigurowaniu ukończenie karty dla interfejsu wiersza polecenia platformy .NET jest wyzwalane przez wprowadzenie dotnet
polecenia w powłoce, a następnie naciśnięcie klawisza Tab . Bieżący wiersz polecenia jest wysyłany do dotnet complete
polecenia, a wyniki są przetwarzane przez powłokę. Wyniki można przetestować bez włączania uzupełniania kart, wysyłając coś bezpośrednio do dotnet complete
polecenia. Na przykład:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Jeśli to polecenie nie działa, upewnij się, że jest zainstalowany zestaw .NET Core 2.0 SDK lub nowszy. Jeśli jest on zainstalowany, ale to polecenie nadal nie działa, upewnij się, że dotnet
polecenie jest rozpoznawane jako wersja zestawu .NET Core 2.0 SDK lub nowszego. dotnet --version
Użyj polecenia , aby zobaczyć, jaka wersja bieżącej dotnet
ścieżki jest rozpoznawana. Aby uzyskać więcej informacji, zobacz Wybieranie wersji platformy .NET do użycia.
Przykłady
Oto kilka przykładów tego, co zapewnia uzupełnianie kart:
Dane wejściowe | Staje się | Ponieważ |
---|---|---|
dotnet a⇥ |
dotnet add |
add jest pierwszym podpolecenia, alfabetycznie. |
dotnet add p⇥ |
dotnet add --help |
Uzupełnianie tabulacji pasuje do podciągów i --help jest najpierw alfabetycznie. |
dotnet add p⇥⇥ |
dotnet add package |
Naciśnięcie klawisza Tab po raz drugi powoduje wyświetlenie następnej sugestii. |
dotnet add package Microsoft⇥ |
dotnet add package Microsoft.ApplicationInsights.Web |
Wyniki są zwracane alfabetycznie. |
dotnet remove reference ⇥ |
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Uzupełnianie kart jest uwzględniane w pliku projektu. |
PowerShell
Aby dodać uzupełnianie kart do programu PowerShell dla interfejsu wiersza polecenia platformy .NET, utwórz lub edytuj profil przechowywany w zmiennej $PROFILE
. Aby uzyskać więcej informacji, zobacz Jak utworzyć profil i profile i zasady wykonywania.
Dodaj następujący kod do profilu:
# PowerShell parameter completion shim for the dotnet CLI
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
bash
Aby dodać uzupełnianie karty do powłoki bash dla interfejsu wiersza polecenia platformy .NET, dodaj następujący kod do .bashrc
pliku:
# bash parameter completion for the dotnet CLI
function _dotnet_bash_complete()
{
local cur="${COMP_WORDS[COMP_CWORD]}" IFS=$'\n' # On Windows you may need to use use IFS=$'\r\n'
local candidates
read -d '' -ra candidates < <(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}" 2>/dev/null)
read -d '' -ra COMPREPLY < <(compgen -W "${candidates[*]:-}" -- "$cur")
}
complete -f -F _dotnet_bash_complete dotnet
zsh
Aby dodać uzupełnianie karty do powłoki zsh dla interfejsu wiersza polecenia platformy .NET, dodaj następujący kod do .zshrc
pliku:
# zsh parameter completion for the dotnet CLI
_dotnet_zsh_complete()
{
local completions=("$(dotnet complete "$words")")
# If the completion list is empty, just continue with filename selection
if [ -z "$completions" ]
then
_arguments '*::arguments: _normal'
return
fi
# This is not a variable assignment, don't remove spaces!
_values = "${(ps:\n:)completions}"
}
compdef _dotnet_zsh_complete dotnet
Ryb
Aby dodać uzupełnianie kart do powłoki ryb dla interfejsu wiersza polecenia platformy .NET, dodaj następujący kod do config.fish
pliku:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Aby dodać uzupełnianie karty do programu NuShell dla interfejsu config.nu
wiersza polecenia platformy .NET, dodaj następujący kod na początku pliku:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Następnie w rekordzie config
znajdź sekcję completions
i dodaj zdefiniowaną external_completer
wcześniej sekcję do external
elementu :
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}