Windows PowerShell 3.0でTabExpansion2関数をオーバーライドする方法を示す例がありますか?私は古いTabExpansion関数をオーバーライドする方法を知っていますが、PowerShell ISEでintellisenseの項目のリストを提供したいと思います。私はTabExpansion2の定義を見て、タブ拡張プロセスで自分のコードをどのように注入するのかは分かりませんでした。Windows PowerShell 3.0でTabExpansion2をオーバーライドする方法の例
答えて
この例では、あなたに良い出発点が与えられるはずです:Windows Powershell Cookbook: Sample implementation of TabExpansion2このコード例では、デフォルト呼び出しの前後にコードを追加して[CommandCompletion]::CompleteInput
に追加できることを示しています。
たとえば、コマンド引数のカスタム補完を取得するために、CustomArgumentCompletersという名前のハッシュテーブルに$options
ハッシュテーブルのエントリを追加できます。エントリは、キーが引数名(例: "ComputerName"または "Get-ChildItem:Filter")であるハッシュテーブルであり、値はそのパラメータを完成させるために使用できる値の配列です。 Powertheshell.comにもこの記事に関する記事があります:Dynamic Argument Completion NativeArgumentCompletersオプションを使用して、ネイティブ実行可能ファイルのカスタム補完を指定することもできます(ここでも、キーはコマンド名であり、値は補完候補の配列です)。
CompleteInput
が返された場合、結果をさらに分析するために$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
は、オーバーライドされたTabExpansion2
の一例である - TabExpansion2.ps1 とそのための完遂との練習プロファイルで使用されるいくつか:
- Invoke-Build.ArgumentCompleters.ps1 引数の補完者Invoke-Build
- Mdbc.ArgumentCompleters.ps1 アルグMdbc
- ArgumentCompleters.ps1引数、入力、およびコンプリータ
興味のあるポイントをもたらすためMENT終了者:
- TabExpansion2.ps1ローディングに最小限の作業を行います。補完が実際に起こると潜在的に高価な 初期化が1回実行されます。
- オーバーライド
TabExpansion2
は、1つ以上の のプロファイル*ArgumentCompleters.ps1
を経由して拡張メカニズムを提供します。最初の呼び出しで のプロファイルが一度呼び出され、TabExpansion2
が呼び出されます。複数のプロファイルには、それぞれ独立したモジュール、ツールなどがあり、同時に使用することがあります。 - 標準カスタム引数の完遂と ネイティブ引数の完遂に加えて、このカスタム
TabExpansion2
は内蔵の完了を傍受し、置き換えることができ、内蔵完了 と入力プロセッサからの結果を微調整 結果プロセッサをサポートしています。 - 場合によっては、読み込み専用の空の組み込みの結果のまわりで動作します。
- ArgumentCompleters.ps1 には、組み込みの タイプと名前空間の補完が代用され、より便利な に置き換えられています。なぜ、ヘルプタグ(など.Synopsis、 .DESCRIPTION、)とコメントアウトコードの完了:
- 別のコンプリータは、コメントに完了したことを提供し?
- 1. Windows 10でPowerShellでWindowsシャットダウンをブロックする方法
- 2. powershellのグローバルモジュール関数をオーバーライドする方法は?
- 3. ImageMagickのコマンドでWindowsの変換コマンドをオーバーライドする方法は?
- 4. PowerShellから.netコンソールexe(例:MyTool.exe)を実行する方法
- 5. Silverlightのローカリゼーション - Windowsのcultureをオーバーライドする方法
- 6. Windowsでpowershellを使用してipv6をオフにする方法
- 7. エラーでPowerShellを冗長にする方法はありますか?例えば
- 8. AWS Beanstalk WindowsインスタンスでpostInstall PowerShellスクリプトを使用する方法
- 9. Windows 10 PowerShellで構文ハイライトを無効にする方法は?
- 10. PowerShell Get-ChildItem catchの方法例外
- 11. createUserWithEmailAndPasswordメソッドの例外をオーバーライドする方法は?
- 12. ASP.NET Web APIの例外メッセージをオーバーライドする方法
- 13. Template10でOnShareTargetActivatedをオーバーライドする方法
- 14. Powershell 5.0/Windows 10 Get-Command Nullリファレンス例外
- 15. 複数のテキストファイルをWindows Powershellの 'copy'とマージする方法
- 16. Powershell 3.0のSOAP構文
- 17. AFNetworking 3.0でXML SOAPリクエストを行う方法。例ログインフィールド
- 18. Windows PowerShellでサクソンxqueryにarugmentsを渡す方法は?
- 19. JFrameでwindowsClosingイベントをオーバーライドする方法
- 20. getValueFieldPropertiesをオーバーライドする例FilterBuilder
- 21. WindowsコマンドプロンプトからExchange powershellコマンドを実行する方法?
- 22. ノード3.0でSSL 3.0とTLS 1.0を無効にする方法
- 23. は、Windows PowerShellで
- 24. Python 3.0 Windows/COM
- 25. actionscript 3.0でmouseclickをキャプチャする方法
- 26. 例外のメッセージを表示するためにsetStackTrace()、printStackTrace()をオーバーライドする方法
- 27. simpy 2.2 3.0の例
- 28. MapDb 3.0ポンプの例
- 29. Windows Vistaでサービスを作成する方法例
- 30. クラスメソッドをオーバーライドする方法
これは公式のどこに文書化されていますか?この情報はもともとどのように出ましたか? –
悲しいことに、正式な文書は見たことがありませんが、もしあればそれを見たいと思っています。 – Charlie