You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What is your environment data from the new issue template script?
I am thinking this is a known issue regarding case sensitive file systems, and it originates in PowerShell, not PSReadLine. PSReadLine does not perform the completions, PowerShell does, and PSReadLine just provides more UI features, such as the menu.
he852100 You mentioned the Expected behavior, but not the actual behavior in your PR description.
Is the actual behavior that you got no tab completion? If that's the case, then it's by design because the Linux file system is case sensitive.
I'm still confused with your repro steps, are you saying that ./c<tab> is completed to ./Cloudcone-cli/ with the capital C? I cannot reproduce this on both Ubuntu and macOS.
Anyways, the bottom line is that PSReadLine depends on the tab completion API from PowerShell, and it just renders the returned completion results. You can use the TabExpansion2 function to check the completion results. For example, for the case shown in the above screen recording, running TabExpansion2 gets me the following results:
You can do the same on your repro machine and check the CompletionText property. If you found unexpected results, then file an issue in the PowerShell repo.
Clou<tab> can be completed to cloudcone-cli so you were expecting ./Cloudcone-cli/p<tab> to be completed to ./cloudcone-cli/powershell, namely PowerShell automatically fixing cases along the way.
As has been said previously, tab completion is done by PowerShell instead of PSReadLine. Running TabExpansion2 will show you that there is not completion result returned from PowerShell in case of ./Cloudcone-cli/p<tab>:
Tab completion was made case insensitive for files and folders on case-insensitive file systems by this PR: PowerShell/PowerShell#8128
I guess it only handles the leaf file and folder names, which is sufficient to address how most people use tab completion for paths. I haven't heard any complaints about its current behavior, but you are welcome to open an issue in the PowerShell repo to discuss your concerns.
Activity
msftrncs commentedon Jan 6, 2020
What is your environment data from the new issue template script?
I am thinking this is a known issue regarding case sensitive file systems, and it originates in PowerShell, not PSReadLine. PSReadLine does not perform the completions, PowerShell does, and PSReadLine just provides more UI features, such as the menu.
he852100 commentedon Jan 6, 2020
daxian-dbw commentedon Jan 6, 2020
he852100 You mentioned the
Expectedbehavior, but not the actual behavior in your PR description.Is the actual behavior that you got no tab completion? If that's the case, then it's by design because the Linux file system is case sensitive.
he852100 commentedon Jan 7, 2020
When the tab is pressed. Case changes automatically, this is your default setting
Suppose there is an
ain the directory,There won't be any reaction,The desired result
In the example, expect
Cto be converted toc, the actual effect you can test yourselfdaxian-dbw commentedon Jan 7, 2020
I'm still confused with your repro steps, are you saying that
./c<tab>is completed to./Cloudcone-cli/with the capitalC? I cannot reproduce this on both Ubuntu and macOS.Anyways, the bottom line is that PSReadLine depends on the tab completion API from PowerShell, and it just renders the returned completion results. You can use the
TabExpansion2function to check the completion results. For example, for the case shown in the above screen recording, runningTabExpansion2gets me the following results:You can do the same on your repro machine and check the
CompletionTextproperty. If you found unexpected results, then file an issue in the PowerShell repo.he852100 commentedon Jan 7, 2020
What I want to say is
to
No
to
daxian-dbw commentedon Jan 7, 2020
Oh, I think I get what you meant.
Clou<tab>can be completed tocloudcone-cliso you were expecting./Cloudcone-cli/p<tab>to be completed to./cloudcone-cli/powershell, namely PowerShell automatically fixing cases along the way.As has been said previously, tab completion is done by PowerShell instead of
PSReadLine. RunningTabExpansion2will show you that there is not completion result returned from PowerShell in case of./Cloudcone-cli/p<tab>:Tab completion was made case insensitive for files and folders on case-insensitive file systems by this PR: PowerShell/PowerShell#8128
I guess it only handles the leaf file and folder names, which is sufficient to address how most people use tab completion for paths. I haven't heard any complaints about its current behavior, but you are welcome to open an issue in the PowerShell repo to discuss your concerns.