package cmd import ( "io" "text/template" "go.fifitido.net/cmd/opt" ) func WritePowerShellCompletions(out io.Writer, rootCmd *Command) error { return powerShellTpl.Execute(out, map[string]any{ "RootCmd": rootCmd, "GlobalOpts": opt.Globals(), }) } var powerShellTpl = template.Must(template.New("PowerShell").Funcs(tplFuncs).Parse(` {{- $rootCmd := .RootCmd -}} {{- $progName := $rootCmd.Name -}} {{- $varName := $rootCmd.Name | camel -}} [scriptblock]$__{{ $varName }}CompleterBlock = { param( $WordToComplete, $CommandAst, $CursorPosition ) } Register-ArgumentCompleter -CommandName {{ $progName }} -ScriptBlock $__{{ $varName }}CompleterBlock `))