@@ -10,8 +10,8 @@ Register-ArgumentCompleter -Native -CommandName @('yarn', 'yarn.cmd') -ScriptBlo
10
10
11
11
# Main command
12
12
$mainCommand = if ($commandAst.CommandElements [1 ]) { $commandAst.CommandElements [1 ].Value } else { $null }
13
- # Sub -command or command's options
14
- $subCommandOrOption = if ($commandAst.CommandElements [2 ]) { $commandAst.CommandElements [2 ].Value } else { $null }
13
+ # Command's value or sub -command or command's options
14
+ $valueOrsubCommandOrOption = if ($commandAst.CommandElements [2 ]) { $commandAst.CommandElements [2 ].Value } else { $null }
15
15
# Sub-command's option or option's value of main command
16
16
$subCommandOptionOrOptionValue = if ($commandAst.CommandElements [3 ]) { $commandAst.CommandElements [3 ].Value } else { $null }
17
17
@@ -24,8 +24,14 @@ Register-ArgumentCompleter -Native -CommandName @('yarn', 'yarn.cmd') -ScriptBlo
24
24
[System.Management.Automation.CompletionResult ]::new($_ , $_ , ' ParameterName' , $_ )
25
25
}
26
26
}
27
- # If word to complete is equal to sub-command/command's options, suggest sub-commmands and command's options
28
- elseif (AreEqual $subCommandOrOption $wordToComplete ) {
27
+ # If word to complete is equal to command's value/sub-command/command's options, suggest command's values and sub-commmands and command's options
28
+ elseif (AreEqual $valueOrsubCommandOrOption $wordToComplete ) {
29
+ # Main command's values
30
+ if ($commandValues [$mainCommand ]) {
31
+ $completions += Invoke-Command - ScriptBlock $commandValues [$mainCommand ] | ForEach-Object {
32
+ [System.Management.Automation.CompletionResult ]::new($_ , $_ , ' DynamicKeyword' , $_ )
33
+ }
34
+ }
29
35
# Sub-commands
30
36
if ($subCommands [$mainCommand ]) {
31
37
$completions += $subCommands [$mainCommand ].Keys | Where-Object $searchBlock | ForEach-Object {
@@ -43,8 +49,8 @@ Register-ArgumentCompleter -Native -CommandName @('yarn', 'yarn.cmd') -ScriptBlo
43
49
# suggest main command option's values or sub-command's options
44
50
elseif (AreEqual $subCommandOptionOrOptionValue $wordToComplete ) {
45
51
# Main command option's value
46
- if ($options [$mainCommand ][$subCommandOrOption ]) {
47
- $optionValues = $options [$mainCommand ][$subCommandOrOption ]
52
+ if ($options [$mainCommand ][$valueOrsubCommandOrOption ]) {
53
+ $optionValues = $options [$mainCommand ][$valueOrsubCommandOrOption ]
48
54
49
55
$completions += $optionValues | Where-Object $searchBlock | ForEach-Object {
50
56
[System.Management.Automation.CompletionResult ]::new($_ , $_ , ' ParameterValue' , $_ )
@@ -55,8 +61,8 @@ Register-ArgumentCompleter -Native -CommandName @('yarn', 'yarn.cmd') -ScriptBlo
55
61
}
56
62
57
63
# Sub-command's options
58
- if ($subCommands [$mainCommand ][$subCommandOrOption ]) {
59
- $subCommand = $subCommands [$mainCommand ][$subCommandOrOption ]
64
+ if ($subCommands [$mainCommand ][$valueOrsubCommandOrOption ]) {
65
+ $subCommand = $subCommands [$mainCommand ][$valueOrsubCommandOrOption ]
60
66
$subCommandOptionOrOptionValues = if ($subCommand.options ) { $subCommand.options.Keys } else { $null }
61
67
62
68
$completions += $subCommandOptionOrOptionValues | Where-Object $searchBlock | ForEach-Object {
0 commit comments