warpdotdev / Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
https://warp.dev
Other
21.53k stars 377 forks source link

Tab auto completion is wonky compared to bash #2129

Closed kylemhall closed 3 months ago

kylemhall commented 2 years ago

Discord username (optional)

No response

Describe the bug

First, In any other terminal if I type "cd m" + tab from a directory that has two subdirectories "mydir" and "MyDir", all shells that I've ever used will autocomplete to "mydir".

Second, autocomplete searches for any subdir containing the phrase I'm typing. I can see where this would be useful, but all those results should be after any results starting with what I've typed.

Third, the autocomplete has no context or memory. If I start typing "vi some/file/path" it will suggest that even if I'm in a different directory where there is no file at "some/file/path"/

To Reproduce

mkdir mydir mkdir MyDir Now type cd m and use tab completion Now type cd Dir and use tab completion Now start typing a historical command that has a file path in it from a different directory

Expected behaviour

warp should autocomplete to "mydir" without suggesting MyDir

Screenshots

No response

Operating System

MacOS

OS Version

12.6

Shell Version

zsh 5.8.1 (x86_64-apple-darwin21.0)

Warp Version

v0.2022.11.14.14.55.stable_01

Additional context

No response

Does this block you from using Warp daily?

Yes

Warp Internal (ignore): linear-label:b8107fdf-ba31-488d-b103-d271c89cac3e

No response

michaelrhanson commented 2 years ago

I agree; this was immediately jarring (like, within 10 seconds) of starting to use Warp, and really threw me off.

I very much expect the gray "autocomplete" text to be confirmed when I press tab but instead sometimes it autocompletes and sometimes it starts stepping me through a menu.

Example: (I am in ~ and I have a Projects directory that contains grape, grapefruit, and banana) ~ cd P<autocomplete for Projects/grapefruit> [tab] ~ cd Projects/ [tab] <popup menu for grapefruit, grape, and banana appears>

I would expect tab to always complete the auto-suggested grey text. No doubt there's something very clever going on under the covers but this is muscle memory behavior that has worked this way for my entire multi-decade career and I am unlikely to change.


Tried to live with this a little more (~20 minutes) and it's really, really throwing me off. In a normal bash terminal I can start my input by providing the partial path to an executable and tab-complete, and bash is smart enough to restrict the search to executables. This is a delightful behavior. Warp is auto-completing to directories that aren't even in my working directory (ahead of the executable which is sitting right there at my partial prefix!), which means it's suggesting input that will cause an immediate error from bash.

Autocomplete should never, ever suggest an error when there is a valid input that is easily derivable from the user input.


I tried fiddling with the keyboard settings and bound tab to "Accept autosuggestion". This is slightly better, though I never get the cool little popup of options now, and now it seems to be suggesting a very long complete path (trying to smart? groveling through my history?) instead of the bash-standard complete-to-the-next-directory. I find myself muscle-memory tapping hoping to see the autocomplete menu popup but it does nothing.

alokedesai commented 2 years ago

Hey @kylemhall! Thanks for filling and giving us feedback. By "autocomplete" here do you mean the greyed out autosuggestions or the suggestions when you hit tab? Tab completions should work exactly as you mention--unfortunately our autosuggestions (the greyed out text) only pull from history right now (matching the behavior of ZSH https://github.com/zsh-users/zsh-autosuggestions). We're actively working on improving this though, and should have fixes out to make them more accurate out shortly!

kylemhall commented 2 years ago

@alokedesai I meant tab completions anywhere I wrote auto completion. Do you mean tab completion works how I described it, or how I want it to work? If you can give me a test plan I'd be happy to run through it.

alokedesai commented 2 years ago

Thanks for the quick response! I did mean tab completion should work how you described. Would you mind sharing a quick video of the issue reproing so we can triage further?

kylemhall commented 2 years ago

@alokedesai here is a video that demonstrates my first and second points: https://monosnap.com/file/G8CqzYWGiO1orzgSrGnsXMYh4TDTSk

seanPhill commented 1 year ago

100% agree! Using WARP compared to bash or zsh in Ubuntu and macOS, and having tab completion suggesting things that aren't even there, and switching to other suggestions and requiring a right-arrow key to accept the highlighted result went against all my muscle-memory from my other terminals, such that I forgot to keep trying WARP after a short time. This should be configurable at least in the settings or preferences.

If tab does get made to accept the suggestion it had better be sure to not be something irrelevant though. cd [tab] should be the actual directories that exist from the current working directory.

jpbochi commented 1 year ago

Related discussion: https://github.com/warpdotdev/Warp/discussions/434

dannyneira commented 3 months ago

Hi folks, we have a request tracking this over at https://github.com/warpdotdev/Warp/issues/1811

If you could please give it a 👍 and subscribe to that request, it would help us gauge interest. We'll post any updates there, so stay tuned!

We'll be closing this as a duplicate.