Private/Get-WSLArgumentName.ps1
function Get-WSLArgumentName { param( [String]$ArgumentNamePartial = "", [Switch]$OnlyFlags, [Array]$Tokens ) [Array]$validArguments = $flags.Keys | Where-Object { $_ -match $ArgumentNamePartial } if ($OnlyFlags.IsPresent) { $validArguments = $validArguments | Where-Object { !$flags[$_].isCommand } } if ($Tokens) { $usedFlags = $Tokens | Where-Object { $_ -match '^-{1,2}|~' } $usedFlags = $usedFlags | ForEach-Object { if ($flags[$_].synonyms) { $flags[$_].synonyms } else { $_ } } $validArguments = $validArguments | Where-Object { $_ -notin $usedFlags } } $validArguments | ForEach-Object { if (!$flags[$_].description) { $flags[$_].description = "Null"} New-Object -Type System.Management.Automation.CompletionResult -ArgumentList $_, $_, "ParameterName", $flags[$_].description } } |