# Copyright 2026 Netflix, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# in compliance with the License. You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied. See the License for the specific language governing permissions and limitations under
# the License.

Register-ArgumentCompleter -Native -CommandName @COMMAND@ -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)

    $arguments = @($commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { $_.Extent.Text })
    if ($wordToComplete.Length -gt 0 -and $arguments.Count -gt 0) {
        $arguments = @($arguments | Select-Object -SkipLast 1)
    }
    & @COMMAND@ __complete @arguments $wordToComplete 2>$null | ForEach-Object {
        if (-not $_.StartsWith(':')) {
            $fields = $_ -split "`t", 2
            $description = if ($fields.Count -gt 1) { $fields[1] } else { '' }
            [System.Management.Automation.CompletionResult]::new(
                $fields[0],
                $fields[0],
                [System.Management.Automation.CompletionResultType]::ParameterValue,
                $description)
        }
    }
}
