Classes/Completers/HaloLookupCompleter.psm1
using namespace System.Collections using namespace System.Collections.Generic using namespace System.Management.Automation using namespace System.Management.Automation.Language using module ..\HaloLookup.psm1 class HaloLookupCompleter : IArgumentCompleter { <# .SYNOPSIS Argument completer for Halo Lookup types. .DESCRIPTION Provides argument completion for Halo Lookup types. #> [IEnumerable[CompletionResult]] CompleteArgument( [string]$Command, [string]$Parameter, [string]$WordToComplete, [CommandAST]$CommandAST, [IDictionary]$FakeBoundParams ) { # Initialise the HaloLookup class. [HaloLookup]::new() $LookupTypes = [HaloLookup]::GetLookupTypes() $Wildcard = ("*$($WordToComplete)*") $CompletionResults = [List[CompletionResult]]::new() $LookupTypes | Where-Object { $_.name -like $Wildcard } | ForEach-Object { $CompletionResults.Add( [CompletionResult]::new( $_.name, $_.name, 'ParameterValue', $_.name ) ) } return $CompletionResults } } |