Skip to content

Commit 0570baa

Browse files
committed
(#669) Make use of --include-headers
To ensure that the tab completion always works, regardless of whether the alwaysIncludeHeaders feature is enabled or not, explicitly make use of the --include-headers option on each execution of Chocolatey CLI. This allows us to control what happens with the output, and knowingly understand the headers that are output. In addition, expand some options to use their default option values, for example: -r -> --limit-output -h -> --help
1 parent 917e0a7 commit 0570baa

File tree

1 file changed

+34
-12
lines changed

1 file changed

+34
-12
lines changed

src/chocolatey.resources/helpers/ChocolateyTabExpansion.ps1

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ function script:chocoCommands($filter) {
126126
$cmdList += $script:chocoCommands -like "$filter*"
127127
}
128128
else {
129-
$cmdList += (& $script:choco -h) |
129+
$cmdList += (& $script:choco --help) |
130130
Where-Object { $_ -match '^ \S.*' } |
131131
ForEach-Object { $_.Split(' ', [StringSplitOptions]::RemoveEmptyEntries) } |
132132
Where-Object { $_ -like "$filter*" }
@@ -136,46 +136,62 @@ function script:chocoCommands($filter) {
136136
}
137137

138138
function script:chocoApiKeysList() {
139-
@(& $script:choco apikey list --limit-output) | ForEach-Object { $_.Split('|')[0] }
139+
@(& $script:choco apikey list --limit-output --include-headers) |
140+
ConvertFrom-Csv -Delimiter '|' |
141+
Select-Object -ExpandProperty Source
140142
}
141143

142144
function script:chocoConfigsList() {
143-
@(& $script:choco config list --limit-output) | ForEach-Object { $_.Split('|')[0] }
145+
@(& $script:choco config list --limit-output --include-headers) |
146+
ConvertFrom-Csv -Delimiter '|' |
147+
Select-Object -ExpandProperty Name
144148
}
145149

146150
function script:chocoFeaturesList() {
147-
@(& $script:choco feature list --limit-output) | ForEach-Object { $_.Split('|')[0] }
151+
@(& $script:choco feature list --limit-output --include-headers) |
152+
ConvertFrom-Csv -Delimiter '|' |
153+
Select-Object -ExpandProperty Name
148154
}
149155

150156
function script:chocoLocalNonPinnedPackages() {
151-
@(& $script:choco list --limit-output --ignore-pinned) | ForEach-Object { $_.Split('|')[0] }
157+
@(& $script:choco list --limit-output --ignore-pinned --include-headers) |
158+
ConvertFrom-Csv -Delimiter '|' |
159+
Select-Object -ExpandProperty Id
152160
}
153161

154162
function script:chocoLocalPackages($filter) {
155163
if ($filter -and $filter.StartsWith(".")) {
156164
return;
157165
} #file search
158-
@(& $script:choco list $filter -r --id-starts-with) | ForEach-Object { $_.Split('|')[0] }
166+
@(& $script:choco list $filter --limit-output --id-starts-with --include-headers) |
167+
ConvertFrom-Csv -Delimiter '|' |
168+
Select-Object -ExpandProperty Id
159169
}
160170

161171
function script:chocoLocalPackagesUpgrade($filter) {
162172
if ($filter -and $filter.StartsWith(".")) {
163173
return;
164174
} #file search
165-
@('all|') + @(& $script:choco list $filter -r --id-starts-with) |
175+
@('all|') + @(& $script:choco list $filter --limit-output --id-starts-with --include-headers) |
176+
ConvertFrom-Csv -Delimiter '|' |
177+
Select-Object -ExpandProperty Id
166178
Where-Object { $_ -like "$filter*" } |
167179
ForEach-Object { $_.Split('|')[0] }
168180
}
169181

170182
function script:chocoLocalPinnedPackages() {
171-
@(& $script:choco pin list --limit-output) | ForEach-Object { $_.Split('|')[0] }
183+
@(& $script:choco pin list --limit-output --include-headers) |
184+
ConvertFrom-Csv -Delimiter '|' |
185+
Select-Object -ExpandProperty Id
172186
}
173187

174188
function script:chocoRemotePackages($filter) {
175189
if ($filter -and $filter.StartsWith(".")) {
176190
return;
177191
} #file search
178-
@('packages.config|') + @(& $script:choco search $filter --page='0' --page-size='30' -r --id-starts-with --order-by='popularity') |
192+
@('packages.config|') + @(& $script:choco search $filter --page='0' --page-size='30' --limit-output --id-starts-with --include-headers --order-by='popularity') |
193+
ConvertFrom-Csv -Delimiter '|' |
194+
Select-Object -ExpandProperty Id
179195
Where-Object { $_ -like "$filter*" } |
180196
ForEach-Object { $_.Split('|')[0] }
181197
}
@@ -192,15 +208,21 @@ function script:chocoRemotePackageVersions($Name, $Version) {
192208
}
193209

194210
function script:chocoRulesList() {
195-
@(& $script:choco rule list --limit-output) | ForEach-Object { $_.Split('|')[1] }
211+
@(& $script:choco rule list --limit-output --include-headers) |
212+
ConvertFrom-Csv -Delimiter '|' |
213+
Select-Object -ExpandProperty Id
196214
}
197215

198216
function script:chocoSourcesList() {
199-
@(& $script:choco source list --limit-output) | ForEach-Object { $_.Split('|')[0] }
217+
@(& $script:choco source list --limit-output --include-headers) |
218+
ConvertFrom-Csv -Delimiter '|' |
219+
Select-Object -ExpandProperty Name
200220
}
201221

202222
function script:chocoTemplatesList() {
203-
@(& $script:choco template list --limit-output) | ForEach-Object { $_.Split('|')[0] }
223+
@(& $script:choco template list --limit-output --include-headers) |
224+
ConvertFrom-Csv -Delimiter '|' |
225+
Select-Object -ExpandProperty Name
204226
}
205227

206228
function Get-AliasPattern($exe) {

0 commit comments

Comments
 (0)