Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug in Get-CommandTreeCompletion with dynamic completion of option #26

Open
powercode opened this issue Dec 9, 2013 · 5 comments
Open

Comments

@powercode
Copy link
Contributor

I'm trying to write a completer for p4 edit

nct edit $msgTable.p4_edit {
                nct '-c' $msgTable.p4_edit_c {
                    nct {
                        param($wordToComplete, $commandAst)

                        p4 -ztag changes -s pending -u $env:DomainName\$env:UserName | 
                            Select-String '^\.\.\. change (\d+)' | 
                                ForEach-Object {$_.matches.Groups[1].Value} | 
                                    where {$_ -like "$wordToComplete*"} 
                    }
                }                                
            }

but the completer never seems to get called.

-c is parsed as a System.Management.Automation.Language.CommandParameterAst and the check in Get-CommandTreeCompletion

if (!($commandElements[$i] -is [System.Management.Automation.Language.StringConstantExpressionAst]))

skips that commandElement.

I'm a bit uncertain what the correct fix is? Should I change the condition toaccept CommandParameterAst or StringConstantExpressionAst?

@lzybkr
Copy link
Owner

lzybkr commented Dec 9, 2013

Yeah, this is a weak spot in TabExpansion++ - I'll look into it.

@powercode
Copy link
Contributor Author

There are a couple of use cases I've run in to.
parameters with values of the form
--parameter=value or
--parameter value or
--parameter:value

@AndrewGaspar
Copy link

Also running into this - has any progress been made here?

@lzybkr
Copy link
Owner

lzybkr commented Dec 24, 2015

I'm not sure, I recall @powercode fixing some things he ran into, but if you're having problems, it would seem like he hadn't fixed it, or at least not submitted a PR.

I'm happy to give pointers if you can contribute a fix.

@razaraz
Copy link

razaraz commented Sep 9, 2016

I found the source of the issue, and have created a pull request:

#79

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants