Bagikan melalui


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 $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 kurung siku dan tanda centang belakang, dengan setara yang diloloskan. Mengatur nilai ini ke $true mencegah 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.

Input

None

Output

CommandCompletion