TabExpansion2
Fungsi pembantu yang membungkus CompleteInput()
metode kelas CommandCompletion untuk menyediakan penyelesaian tab untuk skrip PowerShell.
Sintaks
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Deskripsi
TabExpansion2
adalah fungsi bawaan yang menyediakan penyelesaian tab untuk input pengguna. PowerShell memanggil fungsi ini saat pengguna menekan tombol Spasi Tab atau Ctrl+ saat mengetik perintah. Fungsi mengembalikan daftar kemungkinan penyelesaian untuk input saat ini.
TabExpansion2
biasanya tidak dipanggil langsung oleh pengguna. Namun, ini dapat berguna untuk menguji penyelesaian tab. Untuk menggunakan TabExpansion2
, Anda perlu menyediakan skrip input saat ini dan posisi kursor dalam skrip. Fungsi mengembalikan objek CommandCompletion yang berisi daftar kemungkinan penyelesaian untuk input saat ini. Skrip input ini dapat berupa string atau pohon sintaks abstrak (AST) yang mewakili skrip.
Anda dapat mengambil alih perilaku TabExpansion2
default dengan menentukan fungsi kustom dengan nama yang sama di sesi PowerShell Anda. Fungsi kustom ini dapat menyediakan penyelesaian untuk perintah atau parameter kustom. Meskipun dimungkinkan untuk mengambil alih TabExpansion2
, itu tidak didukung. Anda harus membuat fungsi kustom hanya jika Anda memiliki kebutuhan khusus untuk menyesuaikan perilaku penyelesaian tab.
Contoh
Contoh 1 - Dapatkan penyelesaian tab untuk parameter perintah
Contoh ini memperlihatkan hasil yang sama yang akan Anda dapatkan dengan memasukkan Format-Hex -<Tab>
di prompt perintah PowerShell. Fungsi mengembalikan TabExpansion2
objek CommandCompletion yang berisi daftar kemungkinan penyelesaian untuk -
token.
TabExpansion2 -inputScript ($s = 'Format-Hex -') -cursorColumn $s.Length |
Select-Object -ExpandProperty CompletionMatches
CompletionText ListItemText ResultType ToolTip
-------------- ------------ ---------- -------
-Path Path ParameterName [string[]] Path
-LiteralPath LiteralPath ParameterName [string[]] LiteralPath
-InputObject InputObject ParameterName [psobject] InputObject
-Encoding Encoding ParameterName [Encoding] Encoding
-Count Count ParameterName [long] Count
-Offset Offset ParameterName [long] Offset
Contoh 2 - Dapatkan penyelesaian tab untuk nilai parameter
Contoh ini menunjukkan cara mendapatkan penyelesaian tab untuk nilai parameter. Dalam contoh ini, kami mengharapkan bahwa parameter Tahap memiliki tiga nilai yang mungkin dan bahwa salah satu nilainya adalah Three
. Anda dapat menggunakan teknik ini untuk menguji penyelesaian tab untuk fungsi Anda mengembalikan hasil yang diharapkan.
function GetData {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'GetData -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
Parameter
-ast
Objek pohon sintaks abstrak (AST) yang mewakili skrip yang ingin Anda perluas menggunakan penyelesaian tab.
Jenis: | Ast |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-cursorColumn
Nomor kolom kursor dalam string skrip input. Posisi kursor digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Jenis: | Int32 |
Position: | 1 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-inputScript
String yang mewakili skrip yang ingin Anda perluas menggunakan penyelesaian tab.
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-options
Hashtable nilai opsi untuk diteruskan ke CompleteInput()
API. API menerima opsi boolean berikut:
IgnoreHiddenShares
- Ketika diatur ke$true
, abaikan berbagi UNC tersembunyi seperti\\COMPUTER\ADMIN$
dan\\COMPUTER\C$
. Secara default, PowerShell menyertakan berbagi tersembunyi.RelativePaths
- Secara default, PowerShell memutuskan cara memperluas jalur berdasarkan input yang Anda berikan. Mengatur nilai ini untuk$true
memaksa PowerShell mengganti jalur dengan jalur relatif. Mengatur nilai ini ke$false
, memaksa PowerShell untuk menggantinya dengan jalur absolut.LiteralPaths
- Secara default, PowerShell mengganti karakter file khusus, seperti tanda kurung siku dan tanda centang belakang, dengan yang setara dengan yang diloloskan. Mengatur nilai ini untuk$true
mencegah penggantian.
Jenis: | Hashtable |
Position: | 3 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-positionOfCursor
Nomor kolom kursor dalam AST input. Posisi kursor digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Jenis: | IScriptPosition |
Position: | 2 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-tokens
Array token yang diurai dari skrip input. Token digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Jenis: | Token[] |
Position: | 1 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
None