有没有人有一个示例显示如何覆盖
Windows PowerShell 3.0中的TabExpansion2功能?我知道如何覆盖旧的TabExpansion功能,但是我想在PowerShell ISE中提供智能感知的项目列表.我查看了TabExpansion2的定义,并且不容易理解,我如何在标签扩展过程中注入自己的代码.
我认为这个例子应该给你一个很好的起点:
Windows Powershell Cookbook: Sample implementation of TabExpansion2.示例代码显示可以在默认调用之前和之后添加代码[CommandCompletion] :: CompleteInput.
原文链接:https://www.f2er.com/windows/371038.html例如,您可以向$options hashtable添加一个名为CustomArgumentCompleters的条目,以获取命令参数的自定义完成.条目应该是一个哈希表,其中键是参数名称(例如“ComputerName”或“Get-ChildItem:Filter”),并且值是可用于完成该参数的值数组. Powertheshell.com还有一篇文章:Dynamic Argument Completion.您还可以使用NativeArgumentCompleters选项指定本机可执行文件的自定义完成(同样,键是命令名称,值是可能的完成数组).
OnceCompleteInput已返回,您可以将结果存储在$result中进行进一步分析.结果是CommandCompletion
课程的一个实例.如果默认完成没有找到任何匹配,您可以将自己的CompletionResult
条目添加到匹配列表中:
$result.CompletionMatches.Add( (New-Object Management.Automation.CompletionResult "my completion string") )
不要忘记从函数返回$result,所以完成实际发生.
最后,有关故障排除的说明:调用TabCompletion2的代码似乎会抑制所有基于控制台的输出(不出意外),因此,如果要为自己编写调试消息,可以尝试将它们写入单独的文本文件.例如,您可以将TabCopmletion2中的End函数更改为:
$result = [System.Management.Automation.CommandCompletion]::CompleteInput( $inputScript,$cursorColumn,$options) $result | Get-Member | Add-Content "c:\TabCompletionLog.txt" $result