Autocomplete für die dotnet CLI
Nutzt man häufig die dotnet CLI vermisst man recht schnell die Vorschläge welche man bekommt, wenn man TAB
drückt. Ab Version 2.0 der CLI wurde diese Feature hinzugefügt. Leider funktioniert das ganze nicht ohne weiteres. Welche Schritte nötig sind wird im Folgenden aufgezeigt.
Beispiele
Diese Tabelle zeigt Beispiele auf was man von der Funktion erwarten darf:
dotnet a⇥
wird zu dotnet add
weil add
das erste Kommando ist, alphabetisch.
dotnet add p⇥
wird zu dotnet add --help
weil auch Teile Treffer erhalten, --help
ist alphabetisch der erste Treffer mit einem "p".
dotnet add p⇥⇥
wird zu dotnet add package
da ein weiterer Druck auf TAB
den nächsten Treffer bringt.
dotnet add package Microsoft⇥
wird zu dotnet add package Microsoft.ApplicationInsights.Web
weil Ergebnisse alphabetisch ausgegeben werden.
dotnet remove reference ⇥
wird zu dotnet remove reference ..\..\src\Sample\Sample.csproj
weil auch Projektdateien berücksichtigt werden.
Einrichtung
Powershell
In das PowerShell Profil wird der Inhalt von register-completions.ps1 eingefügt:
notepad $PROFILE
Inhalt der Datei bei Erstellung des Posts:
# PowerShell parameter completion shim for the dotnet CLI
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($commandName, $wordToComplete, $cursorPosition)
dotnet complete --position $cursorPosition "$wordToComplete" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
Bash
Für die Einrichtung in der Bash wird die .bashrc
um den Inhalt dieser Datei erweitert register-completions.bash.
Inhalt der Datei bei Erstellung des Posts:
# bash parameter completion for the dotnet CLI
_dotnet_bash_complete()
{
local word=${COMP_WORDS[COMP_CWORD]}
local completions=("$(dotnet complete --position ${COMP_POINT} "${COMP_LINE}")")
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
}
complete -f -F _dotnet_bash_complete dotnet
Quellen
Text und Inhalt wurde mit Informationen der folgenden Seiten erstellt: