TabExpansion2
Fungsi pembantu yang membungkus metode CompleteInput() kelas CommandCompletion untuk menyediakan penyelesaian tab untuk skrip PowerShell.
Sintaks
ScriptInputSet (Default)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
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 Tab atau Ctrl+Spasi 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 default TabExpansion2 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 TabExpansion2 mengembalikan 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 salah satu nilainya adalah Three. Anda dapat menggunakan teknik ini untuk menguji penyelesaian tab untuk fungsi Anda mengembalikan hasil yang diharapkan.
function Get-Data {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'Get-Data -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.
Properti parameter
| Jenis: | Ast |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
AstInputSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-cursorColumn
Nomor kolom kursor dalam string skrip input. Posisi kursor digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ScriptInputSet
| Position: | 1 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-inputScript
String yang mewakili skrip yang ingin Anda perluas menggunakan penyelesaian tab.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
ScriptInputSet
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-options
Hashtable nilai opsi untuk diteruskan ke API CompleteInput(). API menerima opsi boolean berikut:
-
IgnoreHiddenShares- Saat 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 ke$truememaksa 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 kurung siku dan tanda centang belakang, dengan setara yang diloloskan. Mengatur nilai ini ke$truemencegah penggantian.
Properti parameter
| Jenis: | Hashtable |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | 3 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-positionOfCursor
Nomor kolom kursor dalam AST input. Posisi kursor digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Properti parameter
| Jenis: | IScriptPosition |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
AstInputSet
| Position: | 2 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-tokens
Array token yang diurai dari skrip input. Token digunakan untuk menentukan token yang akan diperluas berdasarkan penyelesaian tab.
Properti parameter
| Jenis: | Token[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
AstInputSet
| Position: | 1 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.