prqlc 0.13.11

PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement.
Documentation
---
source: prqlc/prqlc/src/cli/test.rs
info:
  program: prqlc
  args:
    - "--color=never"
    - shell-completion
    - powershell
  env:
    CLICOLOR_FORCE: ""
    NO_COLOR: "1"
    RUST_BACKTRACE: ""
    RUST_LOG: ""
---
success: true
exit_code: 0
----- stdout -----

using namespace System.Management.Automation
using namespace System.Management.Automation.Language

Register-ArgumentCompleter -Native -CommandName 'prqlc' -ScriptBlock {
    param($wordToComplete, $commandAst, $cursorPosition)

    $commandElements = $commandAst.CommandElements
    $command = @(
        'prqlc'
        for ($i = 1; $i -lt $commandElements.Count; $i++) {
            $element = $commandElements[$i]
            if ($element -isnot [StringConstantExpressionAst] -or
                $element.StringConstantType -ne [StringConstantType]::BareWord -or
                $element.Value.StartsWith('-') -or
                $element.Value -eq $wordToComplete) {
                break
        }
        $element.Value
    }) -join ';'

    $completions = @(switch ($command) {
        'prqlc' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('-V', '-V ', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('--version', '--version', [CompletionResultType]::ParameterName, 'Print version')
            [CompletionResult]::new('parse', 'parse', [CompletionResultType]::ParameterValue, 'Parse into PL AST')
            [CompletionResult]::new('lex', 'lex', [CompletionResultType]::ParameterValue, 'Lex into Lexer Representation')
            [CompletionResult]::new('fmt', 'fmt', [CompletionResultType]::ParameterValue, 'Parse & generate PRQL code back')
            [CompletionResult]::new('collect', 'collect', [CompletionResultType]::ParameterValue, 'Parse the whole project and collect it into a single PRQL source file')
            [CompletionResult]::new('debug', 'debug', [CompletionResultType]::ParameterValue, 'Commands for meant for debugging, prone to change')
            [CompletionResult]::new('experimental', 'experimental', [CompletionResultType]::ParameterValue, 'Experimental commands are prone to change')
            [CompletionResult]::new('compile', 'compile', [CompletionResultType]::ParameterValue, 'Parse, resolve, lower into RQ & compile to SQL')
            [CompletionResult]::new('watch', 'watch', [CompletionResultType]::ParameterValue, 'Watch a directory and compile .prql files to .sql files')
            [CompletionResult]::new('list-targets', 'list-targets', [CompletionResultType]::ParameterValue, 'Show available compile target names')
            [CompletionResult]::new('lsp', 'lsp', [CompletionResultType]::ParameterValue, 'Language Server Protocol')
            [CompletionResult]::new('shell-completion', 'shell-completion', [CompletionResultType]::ParameterValue, 'Print a shell completion for supported shells')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;parse' {
            [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'format')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;lex' {
            [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'format')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;fmt' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;collect' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;debug' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('annotate', 'annotate', [CompletionResultType]::ParameterValue, 'Parse, resolve & combine source with comments annotating relation type')
            [CompletionResult]::new('lineage', 'lineage', [CompletionResultType]::ParameterValue, 'Output column-level lineage graph')
            [CompletionResult]::new('ast', 'ast', [CompletionResultType]::ParameterValue, 'Print info about the AST data structure')
            [CompletionResult]::new('json-schema', 'json-schema', [CompletionResultType]::ParameterValue, 'Print JSON Schema')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;debug;annotate' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;debug;lineage' {
            [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'format')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            break
        }
        'prqlc;debug;ast' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;debug;json-schema' {
            [CompletionResult]::new('--ir-type', '--ir-type', [CompletionResultType]::ParameterName, 'ir-type')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;debug;help' {
            [CompletionResult]::new('annotate', 'annotate', [CompletionResultType]::ParameterValue, 'Parse, resolve & combine source with comments annotating relation type')
            [CompletionResult]::new('lineage', 'lineage', [CompletionResultType]::ParameterValue, 'Output column-level lineage graph')
            [CompletionResult]::new('ast', 'ast', [CompletionResultType]::ParameterValue, 'Print info about the AST data structure')
            [CompletionResult]::new('json-schema', 'json-schema', [CompletionResultType]::ParameterValue, 'Print JSON Schema')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;debug;help;annotate' {
            break
        }
        'prqlc;debug;help;lineage' {
            break
        }
        'prqlc;debug;help;ast' {
            break
        }
        'prqlc;debug;help;json-schema' {
            break
        }
        'prqlc;debug;help;help' {
            break
        }
        'prqlc;experimental' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('doc', 'doc', [CompletionResultType]::ParameterValue, 'Generate Markdown documentation')
            [CompletionResult]::new('highlight', 'highlight', [CompletionResultType]::ParameterValue, 'Syntax highlight')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;experimental;doc' {
            [CompletionResult]::new('--format', '--format', [CompletionResultType]::ParameterName, 'format')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;experimental;highlight' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;experimental;help' {
            [CompletionResult]::new('doc', 'doc', [CompletionResultType]::ParameterValue, 'Generate Markdown documentation')
            [CompletionResult]::new('highlight', 'highlight', [CompletionResultType]::ParameterValue, 'Syntax highlight')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;experimental;help;doc' {
            break
        }
        'prqlc;experimental;help;highlight' {
            break
        }
        'prqlc;experimental;help;help' {
            break
        }
        'prqlc;compile' {
            [CompletionResult]::new('-t', '-t', [CompletionResultType]::ParameterName, 'Target to compile to')
            [CompletionResult]::new('--target', '--target', [CompletionResultType]::ParameterName, 'Target to compile to')
            [CompletionResult]::new('--debug-log', '--debug-log', [CompletionResultType]::ParameterName, 'File path into which to write the debug log to')
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('--hide-signature-comment', '--hide-signature-comment', [CompletionResultType]::ParameterName, 'Exclude the signature comment containing the PRQL version')
            [CompletionResult]::new('--no-format', '--no-format', [CompletionResultType]::ParameterName, 'Emit unformatted, dense SQL')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help (see more with ''--help'')')
            break
        }
        'prqlc;watch' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('--no-format', '--no-format', [CompletionResultType]::ParameterName, 'no-format')
            [CompletionResult]::new('--no-signature', '--no-signature', [CompletionResultType]::ParameterName, 'no-signature')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;list-targets' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;lsp' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;shell-completion' {
            [CompletionResult]::new('--color', '--color', [CompletionResultType]::ParameterName, 'Controls when to use color')
            [CompletionResult]::new('-h', '-h', [CompletionResultType]::ParameterName, 'Print help')
            [CompletionResult]::new('--help', '--help', [CompletionResultType]::ParameterName, 'Print help')
            break
        }
        'prqlc;help' {
            [CompletionResult]::new('parse', 'parse', [CompletionResultType]::ParameterValue, 'Parse into PL AST')
            [CompletionResult]::new('lex', 'lex', [CompletionResultType]::ParameterValue, 'Lex into Lexer Representation')
            [CompletionResult]::new('fmt', 'fmt', [CompletionResultType]::ParameterValue, 'Parse & generate PRQL code back')
            [CompletionResult]::new('collect', 'collect', [CompletionResultType]::ParameterValue, 'Parse the whole project and collect it into a single PRQL source file')
            [CompletionResult]::new('debug', 'debug', [CompletionResultType]::ParameterValue, 'Commands for meant for debugging, prone to change')
            [CompletionResult]::new('experimental', 'experimental', [CompletionResultType]::ParameterValue, 'Experimental commands are prone to change')
            [CompletionResult]::new('compile', 'compile', [CompletionResultType]::ParameterValue, 'Parse, resolve, lower into RQ & compile to SQL')
            [CompletionResult]::new('watch', 'watch', [CompletionResultType]::ParameterValue, 'Watch a directory and compile .prql files to .sql files')
            [CompletionResult]::new('list-targets', 'list-targets', [CompletionResultType]::ParameterValue, 'Show available compile target names')
            [CompletionResult]::new('lsp', 'lsp', [CompletionResultType]::ParameterValue, 'Language Server Protocol')
            [CompletionResult]::new('shell-completion', 'shell-completion', [CompletionResultType]::ParameterValue, 'Print a shell completion for supported shells')
            [CompletionResult]::new('help', 'help', [CompletionResultType]::ParameterValue, 'Print this message or the help of the given subcommand(s)')
            break
        }
        'prqlc;help;parse' {
            break
        }
        'prqlc;help;lex' {
            break
        }
        'prqlc;help;fmt' {
            break
        }
        'prqlc;help;collect' {
            break
        }
        'prqlc;help;debug' {
            [CompletionResult]::new('annotate', 'annotate', [CompletionResultType]::ParameterValue, 'Parse, resolve & combine source with comments annotating relation type')
            [CompletionResult]::new('lineage', 'lineage', [CompletionResultType]::ParameterValue, 'Output column-level lineage graph')
            [CompletionResult]::new('ast', 'ast', [CompletionResultType]::ParameterValue, 'Print info about the AST data structure')
            [CompletionResult]::new('json-schema', 'json-schema', [CompletionResultType]::ParameterValue, 'Print JSON Schema')
            break
        }
        'prqlc;help;debug;annotate' {
            break
        }
        'prqlc;help;debug;lineage' {
            break
        }
        'prqlc;help;debug;ast' {
            break
        }
        'prqlc;help;debug;json-schema' {
            break
        }
        'prqlc;help;experimental' {
            [CompletionResult]::new('doc', 'doc', [CompletionResultType]::ParameterValue, 'Generate Markdown documentation')
            [CompletionResult]::new('highlight', 'highlight', [CompletionResultType]::ParameterValue, 'Syntax highlight')
            break
        }
        'prqlc;help;experimental;doc' {
            break
        }
        'prqlc;help;experimental;highlight' {
            break
        }
        'prqlc;help;compile' {
            break
        }
        'prqlc;help;watch' {
            break
        }
        'prqlc;help;list-targets' {
            break
        }
        'prqlc;help;lsp' {
            break
        }
        'prqlc;help;shell-completion' {
            break
        }
        'prqlc;help;help' {
            break
        }
    })

    $completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
        Sort-Object -Property ListItemText
}

----- stderr -----