diff --git a/powershell_completions.go b/powershell_completions.go index 55195193..092912ed 100644 --- a/powershell_completions.go +++ b/powershell_completions.go @@ -278,8 +278,17 @@ filter __%[1]s_escapeStringWithSpecialChars { } } +# Enumerate the cmds for %[1]s (set by System.Environment) +$available%[2]s = Get-Command -Name '%[1]s' -All -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Definition -ErrorAction SilentlyContinue -Register-ArgumentCompleter -CommandName '%[1]s' -ScriptBlock ${__%[2]sCompleterBlock} +# Enumerate extant aliases for %[1]s (already set by user) +${__%[2]sAliases} = @() +foreach($__%[2]sCmd in $available%[2]s){ + $__%[2]sAliases += Get-Alias | Where-Object { $_.Definition -eq ($__%[2]sCmd | Resolve-Path -ErrorAction SilentlyContinue) -or $_.Definition -eq (Get-Command -Name $__%[2]sCmd -ErrorAction SilentlyContinue).Definition } +} +# Register args completer for all cmds and aliases +[string[]]$joint%[2]snames = [array]$available%[2]s.Name + [array]${__%[2]sAliases}.Name + @('%[1]s') +Register-ArgumentCompleter -CommandName $joint%[2]snames -ScriptBlock ${__%[2]sCompleterBlock} `, name, nameForVar, compCmd, ShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp, ShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))