Warp icon indicating copy to clipboard operation
Warp copied to clipboard

Tab complete is a disaster with this program.

Open agluck91 opened this issue 2 years ago • 16 comments

Discord username (optional)

No response

Describe the bug

This is not technically a bug, more than an inherent design flaw. Y'all tab complete SUCKS on warp. It does not operate like you would expect, and the newest addition that accepts auto complete suggestions is frustratingly 80 percent of the time wrong. I absolutely hate the pop up menu, but this newest release made the experience WAY worse, so I went back to the pop up menu. I feel like you are trying to do to much here, simple is better. I constantly feel like I am fighting warp on this, it constantly feels in the way of me doing what I need to do. I just want to navigate the file system and have a quick way to recall previous commands, perhaps ctrl-r is really the best solution for command recollection. What ever you all decide design wise moving forward, this definitely missed the mark.

I love Warp, you all have an AMAZING tool, I do not want to take away from that fact, but from the very start this has been a problem, I even mentioned it in our person to person interview. This really needs fixed, I want to stay with warp, but the frustration around this is quickly not out weighing the positives that come with warp. Iterm is regrettably looking more appealing day by day. I just want to work, I do not need my tools to fight me. Warp is slowly starting to feel more and more bloated as well, I do not know how to describe this, but it is just how it feels. It is also seeming to load the shell really slowly, I do not have this problem on other terminals, so I know it is isolated to warp.

Maybe I am the only one that feels this way and should just go back to a different terminal?

To reproduce

N/A

Expected behavior

I don't know the best answer here, but maybe tab can just do what tab does in every other terminal? or at least have the option until you all work out the kinks with what you are trying to accomplish there? I am happy to beta test new ideas around this, but I am not okay with having to live with this all the time. It slows me down.

As for the shell speed, I have no idea what is going on under the hood, but it is getting a little slower each release, it seems.

Screenshots

No response

Operating system

MacOS

Operating system and version

14.0.0

Shell Version

zsh

Current Warp version

v0.2023.08.22.08.03.stable_00

Regression

No, this bug or issue has existed throughout my experience using Warp

Recent working Warp date

Never

Additional context

No response

Does this block you from using Warp daily?

Yes, this issue prevents me from using Warp daily.

Is this a Warp specific issue? (i.e. does it happen in Terminal, iTerm, Kitty, etc.)

N/A, the issue only applies to a Warp specific feature. (i.e. Warp AI, Workflows)

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

None

agluck91 avatar Aug 29 '23 03:08 agluck91

Thanks for letting us know @agluck91 We'll post any updates on this thread if there are changes planned for TAB behavior. Also, we have a related request you can track here #1811

To anyone else facing this issue, please add a 👍 to the original post at the top or comment with your details, and subscribe if you'd like to be notified.

warpdotdev-devx[bot] avatar Aug 29 '23 16:08 warpdotdev-devx[bot]

Hey @agluck91, sorry to hear your frustration with the completions experience.

Is the main frustration with the completions pop-up the visual distraction or something else? With that setting selected, the only difference with zsh (as far as I can tell with a quick glance) is that Warp uses case-sensitivity in filtering completion options.

zachbai avatar Aug 30 '23 19:08 zachbai

Hello, I may really be nit picking here, but this feels so slow. I did not express this well in my last message. As one never does when frustrated.


On iterm when I press tab while I am typing in a directory with directory sensitive commands the rest of the directory is populating as I am tabbing through things, in warp tabbing is cycling through a tiny list. I think I am just being too picky.

It is also a difference between pressing tab again and pressing enter. In the little warp list you have to press enter to accept the value, in zsh I am just continuously spamming tab until I have the full directory in place. It to me just feels like it stops the flow.

I might also be to old school because it is visually distracting, but more than that with zsh it populates suggestions horizontally as well across the entire terminal, and you see every value possible without having to scroll. I think, that too, is what is adding to the slow clunky feeling.

I already mentioned all this and showed a warp employee this on a zoom call before. I am happy to do it again. The only reason I mention it again is because I assume I am not the only one frustrated by this, if I am then I just need to take a back seat here and close this thread.

agluck91 avatar Aug 31 '23 05:08 agluck91

Moving back to iterm. I appreciate all you did. Thank you.

agluck91 avatar Aug 31 '23 18:08 agluck91

Sorry, this issue wasn't meant to be closed -- issue with the bot. Reopening.

The point about the tab-cycling replacing the current input token with the completion option is a good one, and another difference between Warp and default zsh. This is something we could look into.

Regarding the lack of real estate in the completions popup menu, that point makes sense too. One of the main issues here is that Warp's default input placement pins it to the bottom of the pane, so emulating zsh's behavior (where the suggestions are shown below the cursor) would cause the input line to jump up when triggering completions and then back down after a completion option is selected, which I think would be a little annoying. That being said the feedback is heard and I think we do have some more work to do on completions, so appreciate the input.

zachbai avatar Aug 31 '23 18:08 zachbai

I saw my friend using Warp today and was attracted by the beautiful UI, so I tried Warp myself tonight.

With "Open completions menu as you type" turned on, when the autocompletion pop-up appears, Enter doesn't send the commands that I've already typed, instead it accepts the current completions over and over again.

For example:

Screenshot 2023-09-05 at 00 22 33

I hit cd Wor quickly on the keyboard and then, Tab, Warp took the autocompletion very well.

Screenshot 2023-09-05 at 00 22 47

Immediately after that I hit Enter. then the command was not executed. Instead, it accepted the complement once again.

Screenshot 2023-09-05 at 00 23 02

In most modern code editors (e.g. VSCode), Tab can always accept the autocompletion and Enter can always ignore the popup and just start a newline (in Warp, send command). For autosuggestion, right arrow arrow key can be used to accept the suggestion.

Screenshot 2023-09-05 at 00 24 46

This problem is really annoying and leaves me with absolutely no way to use Warp for daily works like any other terminal.

reekystive avatar Sep 04 '23 16:09 reekystive

Another problem is that the autocomplete suggestions always block the output of the previous command (like ls).

Screenshot 2023-09-05 at 00 27 43

I don't know of a solution for this, but maybe put the popup below the cursor? That might cause it to spill off the screen.

(It's not a serious issue and doesn't affect my daily use)

reekystive avatar Sep 04 '23 16:09 reekystive

Hey @reekystive, for the last issue you mentioned (popup blocking recent command's output), the reason we don't show the popup below the input is what you mentioned -- it would spill off the screen or we'd have to adjust the height of the input when the popup is showing, which would cause the UI to jitter.

As a partial workaround, you could change Warp's input position in settings to "Pin to the top", in which the popup is shown below the input editor. image

Regarding the first point (behavior of enter keypress), we are always looking to refine the behavior here -- its a bit tricky, different users have different expectations -- so your feedback is heard and we may look into adjusting the logic.

zachbai avatar Sep 05 '23 17:09 zachbai

The thing I struggle with is the inconsistency with the acceptance of the current completions. Command completion does not work the same way on every command. Here are two examples:

Example 1: When I'm in a directory and start typing git I get a pop-up which suggests commands like add, apply, etc. Here I have my expected (and wanted) behavior where I can press TAB to get to the next suggestion and ENTER to accept a suggestion. If I press ENTER again, the command is executed. Here is an example image for that: Screenshot 2023-09-15 at 9 57 49 AM

Example 2: When I'm in a directory and start typing cd I get a pop-up which suggests different directories I could cd into. This pop-up looks the same as in my first example, but here the shortcuts do different things: The first TAB press accepts the currently selected suggestion and leaves the pop-up window open. Thereafter, it behaves the same as the pop-up in example 1. If I press ENTER instead of TAB on the first hand, it behaves the same as in example 1. This is how the second pop-up looks like: Screenshot 2023-09-15 at 10 09 20 AM

@zachbai What I would expect is, that in example 2 the pop-up behaves like the one in example 1: When entering cd TAB should switch through the suggestions and ENTER should accept them. At least this would be a consistent behavior. I can imagine that my suggestion might feel weird to others, so maybe you could at least make this a setting.

@reekystive can you relate to my first example and that this would be your expectation as well?

jovobe avatar Sep 15 '23 00:09 jovobe

Hey @jovobe, what's actually happening in your example #2 is the common prefix among all possible suggestions is inserted, which happens to be 'dev.warp.Warp-Stable' (the entire first item is a prefix of the other item). When they're no common prefix among the remaining completion suggestions, tab cycles through each one. This is actually the same behavior as native zsh completions, though I could understand why this would be a source of confusion especially with the given example where theres 2 items and one is a prefix of the other.

Are you coming from using zsh/zsh completions? Do you think there's something about Warp's UI that might make this more confusing than the analogous zsh behavior?

zachbai avatar Sep 15 '23 16:09 zachbai

@zachbai I tried to dig deeper into this and figured out that my feeling is just triggered by the inconsistency. I get your point, that this is a special edge case and that it's still intentionally behaving. Actually, I don't really use zsh completions. These selection pop-ups just remind me of my IDE (Jetbrains products) and I realised that this behaves in an entirely different way. My muscle memory is just trained good enough on these products, that it just works. I think I just need more time using Warp and at some point it will feel natural as well 😌 Thank you for taking this seriously!

jovobe avatar Sep 22 '23 06:09 jovobe

Moving back to iterm. I appreciate all you did. Thank you.

I made the same decision after writing a detailed comment on Warp's autocompletion nightmare and being completely ignored.

xilopaint avatar Oct 02 '23 02:10 xilopaint

I forgot how much I loved the simplicity of iterm. I did not realize how frustrating warp was in a lot of areas until I switched back. The lack of proper tmux support was another big deciding factor for me too. Simplicity wins over here. I was, initially, enamored by the sensationalism built around warp by influencers.

The only thing I wish iterm had was the warp drive equivalent. Blink iPad shell implemented something similar. I might try to write something standalone for this.

agluck91 avatar Oct 02 '23 13:10 agluck91

I think the issue is if they didn't popup that menu, then warp seems just like iTerm written in rust, taking up more screen real estate. It seems crazy terminals haven't evolved much since 1980s and so I want warp to be something better, but right now it feels more work than just iterm + fig.

https://github.com/warpdotdev/Warp/issues/3804#issuecomment-1784226342

dcsan avatar Oct 29 '23 21:10 dcsan

I just wanted to take some time to echo my concern and ideal behavior with the completion menu: I have the completion menu automatically opening up as I type, which is what I want. However, alongside this comes the fact that as I type, the completion is pre-selected/highlighted. For instance, if I type cd ../ then I'll get the completions menu pop up, and when I click enter to go to the parent directory, I just get the completion cd ../example_dir executed, even though what I wanted was cd ../. Rn I'm working around this by clicking escape before entering. My ideal behavior, however, would be that the completion menu pops, but nothing is pre-selected. Instead, it pops up as I type and if I see the directory I want, I actively use the arrow keys to complete my text. Anyway, thank you for the work you are putting to making a better terminal! Let me know if there's anything I can do to help!

StevenEvenU avatar Dec 15 '23 19:12 StevenEvenU

Opening the menu for showing the completion is ok, bust most terminal when I use tab the proposed completion fill the command and hitting return execute it. tabbing again and it select the next proposed input. Doing things differently in warp make this feel really bad and will stop me using it until this issue is solved.

malko avatar Feb 24 '24 18:02 malko

Making tab scroll completion menu instead of accepting it, and enter not executing suggestion, is really painful and go against muscle memory from any other terminal and editors. It would be nice to have option to change this behaviour

Sinled avatar Mar 07 '24 09:03 Sinled

Second day into using Warp... Is there an option to get tab to work as it does in every other terminal? I like many features of Warp, but the way tab completions seem to work is a definite dealbreaker.

I've tried both with 'Open completions menu as you type' off and on.

Not only is the cd somefolder[tab] not autocompleting i.e. cd somefolder-123/; the [return] autocomplete semantics also seem broken. For instance cd[space][return] will autocomplete the last cd command instead of just executing cd.

Is it possible to use arrow-right or something instead for the fancy autocompletions, and leave tab/return to autocomplete to operate like it should?

edit1: marginally improved some behavior when 'Tab key behavior' set to 'Open completions menu'.

oc avatar Apr 12 '24 08:04 oc

try amazon code whisperer, it has completions done right

dcsan avatar Apr 12 '24 18:04 dcsan

This is what I am trying to achieve regarding Enter vs Tab on completions menu and inline autosuggestion:

  1. Open completions menu as I type. Doable. ✅
  2. If completions menu is open Tab selects the item I am on. Not doable. ❌
  3. To accept inline autosuggestion: right arrow. Doable. ✅
  4. Enter only ever submits the current command as I have typed it, and not the completions menu item even if it is open or inline autosuggestion. Not doable. ❌

This is driving me nuts and away from Warp. :(

seanparkross avatar Apr 30 '24 12:04 seanparkross

I have the same issue when using ssh to connect with a cluster... I don't mind the list appearing when pressing tab, but the delay is terrible, it makes me want to go back to the original Ubuntu terminal.

rprolim avatar Jun 18 '24 14:06 rprolim

Having "open completions menu as you type" on and then having enter as the key to accept the completion is a recipe for disaster.

Deleting production something here I come...

Either have another key to accept the completion or just have the first completion be nothing. For the love of all things holy. 😢

seanparkross avatar Jul 29 '24 15:07 seanparkross