dotnet-enable-autocomplete
1
总安装量
2
周安装量
#46014
全站排名
安装命令
npx skills add https://github.com/im5tu/dotnet-skills --skill dotnet-enable-autocomplete
Agent 安装分布
claude-code
2
opencode
1
kimi-cli
1
droid
1
codex
1
antigravity
1
Skill 文档
.NET CLI Tab Completion
Enable tab autocomplete for the dotnet CLI in your preferred shell.
Steps
-
Determine .NET version (CRITICAL – commands differ by version)
dotnet sdk check- Parse output to identify installed SDK versions
- .NET 10+: Uses
dotnet completions script <shell>(native completions) - Pre-.NET 10: Uses
dotnet complete --position(dynamic completions)
-
Ask user which shells they use, allowing multi-select:
- PowerShell
- bash
- zsh
- fish
- nushell
For each user shell:
-
Detect profile file location based on shell:
Shell Profile Path PowerShell $PROFILEbash ~/.bashrczsh ~/.zshrcfish ~/.config/fish/config.fishnushell ~/.config/nushell/config.nu -
Check if completion already configured
- Read the profile file
- Search for existing dotnet completion setup
- If found, inform user and ask if they want to replace it
-
Append completion script to profile based on .NET version and shell
-
Inform user to restart their shell or source the profile
Completion Scripts
.NET 10+ (Native Completions)
PowerShell:
dotnet completions script pwsh | Out-String | Invoke-Expression
bash:
eval "$(dotnet completions script bash)"
zsh:
eval "$(dotnet completions script zsh)"
fish:
dotnet completions script fish | source
nushell: See .NET CLI docs for config.nu setup.
Pre-.NET 10 (Dynamic Completions)
PowerShell:
# dotnet CLI tab completion
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
bash:
# dotnet CLI tab completion
_dotnet_bash_complete() {
local cur="${COMP_WORDS[COMP_CWORD]}"
local IFS=$'\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:
# dotnet CLI tab completion
_dotnet_zsh_complete() {
local completions=("$(dotnet complete --position ${CURSOR} "${BUFFER}" 2>/dev/null)")
reply=("${(ps:\n:)completions}")
}
compctl -K _dotnet_zsh_complete dotnet
fish:
# dotnet CLI tab completion
complete -f -c dotnet -a "(dotnet complete --position (commandline -cp) (commandline -op))"
nushell:
# Add to external_completer in config.nu
let external_completer = {|spans|
match $spans.0 {
dotnet => (
dotnet complete (
$spans | skip 1 | str join " "
) | lines
)
}
}
Error Handling
- If
dotnet sdk checkfails: Ensure .NET SDK is installed - If profile file doesn’t exist: Create it with the completion script
- If profile file is read-only: Warn user and provide script to add manually
Notes
- .NET 10+ provides native
dotnet completionscommand - Pre-.NET 10 uses
dotnet completewith dynamic scripts - Always back up profile before modifying
- User must restart shell or source profile for changes to take effect