summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/register-completions.ps118
1 files changed, 11 insertions, 7 deletions
diff --git a/scripts/register-completions.ps1 b/scripts/register-completions.ps1
index e54e38c16..f19c48233 100755
--- a/scripts/register-completions.ps1
+++ b/scripts/register-completions.ps1
@@ -1,5 +1,4 @@
-# PowerShell parameter completion shim for xmake
-
+# PowerShell parameter completion for xmake
Register-ArgumentCompleter -Native -CommandName xmake -ScriptBlock {
param($commandName, $wordToComplete, $cursorPosition)
$complete = "$wordToComplete"
@@ -8,11 +7,14 @@ Register-ArgumentCompleter -Native -CommandName xmake -ScriptBlock {
}
$oldenv = $env:XMAKE_SKIP_HISTORY
$env:XMAKE_SKIP_HISTORY = 1
- xmake lua --root private.utils.complete "0" "nospace" "$complete" | ForEach-Object {
- [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
+ xmake lua "private.utils.complete" $cursorPosition "nospace-json" "$complete" | ConvertFrom-Json | Sort-Object -Property value | ForEach-Object {
+ $hasdesc = [bool] $_.psobject.Properties['description']
+ $desc = $hasdesc ? " - $($_.description)" : ""
+ [System.Management.Automation.CompletionResult]::new($_.value, "$($_.value)$desc", 'ParameterValue', $_.value)
}
$env:XMAKE_SKIP_HISTORY = $oldenv
}
+# PowerShell parameter completion for xrepo
Register-ArgumentCompleter -Native -CommandName xrepo -ScriptBlock {
param($commandName, $wordToComplete, $cursorPosition)
$complete = "$wordToComplete"
@@ -21,8 +23,10 @@ Register-ArgumentCompleter -Native -CommandName xrepo -ScriptBlock {
}
$oldenv = $env:XMAKE_SKIP_HISTORY
$env:XMAKE_SKIP_HISTORY = 1
- xmake lua --root private.xrepo.complete "0" "nospace" "$complete" | ForEach-Object {
- [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
+ xmake lua "private.xrepo.complete" $cursorPosition "nospace-json" "$complete" | ConvertFrom-Json | Sort-Object -Property value | ForEach-Object {
+ $hasdesc = [bool] $_.psobject.Properties['description']
+ $desc = $hasdesc ? " - $($_.description)" : ""
+ [System.Management.Automation.CompletionResult]::new($_.value, "$($_.value)$desc", 'ParameterValue', $_.value)
}
$env:XMAKE_SKIP_HISTORY = $oldenv
-}
+} \ No newline at end of file