Warp icon indicating copy to clipboard operation
Warp copied to clipboard

[Feature] Bypass/Disable Warp TAB-completion and use shell TAB-completion

Open Soromeister opened this issue 2 years ago • 34 comments

Discord username (optional)

Soromeister#1365

Describe the solution you'd like?

Problem:
When I press TAB I get Warp's dialog pop-up to scroll through the options

Need:
When I press TAB I want to get my shell to do the completion instead of Warp

Reason:
Warp's dialog for TAB completion is just one column and the height is small. 
I want the shell to handle my auto completion by default so when doing a TAB TAB I get the full stuff printed on my STDOUT and it's much more readable this way.

Suggestion:
Make the Warp's TAB completion work with a shortcut, like Option + TAB or ^ + TAB or something similar and under no circumstance pop-up automatically (only when summoned manually through the key sequence).

Is your feature request related to a problem? Please describe.

I'm frustrated that for mundane things, this Warp TAB completion pops up and won't let my shell complete my command. 
I'd honestly just stick to iTerm2 if it had only the "input as an editor" feature as this is really the only option that is truly valuable in real life. 
All of the other features of Warp just get in the way of doing things and don't make me more productive at all.
Thus, give us the option to completely disable any sort of completion by Warp and let the shell do its job.

Additional context

No response

How important is this feature to you?

5 (Can't work without it!)

Warp Internal (ignore) - linear-label:770f6576-d6c0-4e4f-a259-fc64b5156087

No response

Soromeister avatar Sep 07 '22 14:09 Soromeister

We leverage Fig's specs (we generate the Rust equivalent), and published recent update with 400+ completion specs improvements.

Our completion experience, however, still has lots of room for improvement so thanks for this request. Please +1 this request as it helps us gauge interest.

__ Danny Neira (he/him/his) Support Engineer www.warp.dev

warpdotdev-devx avatar Sep 08 '22 22:09 warpdotdev-devx

@warpdotdev-dx is it (/will it be) possible to add custom specs to Warp?

ozsay avatar Sep 11 '22 09:09 ozsay

I would love to see a feature like this as well. I think the built-in autocompletion feature is nice, but I don't think it feasible for you to strive for supporting all widely used tools. Next to that a lot of tools people are using might be custom. It would be nice to configure to use either the Warp TAB completion or the shell autocompletion. Even nicer would be to have them both in some way like the author suggested. Keep up the good work!

MartinKanters avatar Jan 16 '23 13:01 MartinKanters

The discussion for this is here @MartinKanters @ozsay https://github.com/warpdotdev/Warp/discussions/434

elviskahoro avatar Jan 18 '23 00:01 elviskahoro

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

elviskahoro avatar Jan 18 '23 00:01 elviskahoro

and published recent update with 400+ completion specs improvements.

I don't think the quality of completion support of warp has any relevance here really. I think this is rather about letting the users choose; it does not matter if warp's completion support is good or bad.

jonatan-ivanov avatar Mar 15 '23 00:03 jonatan-ivanov

there are a lot of CLI tools and their completions I don't think there could be omniscient tool that covers all these CLI tools' feature and follows all their updates

dongho-jung avatar Mar 22 '23 09:03 dongho-jung

Why not provide a fallback when no warp/fig completion can be found? I really like the experience so far, but I need AWS CLI daily and this is kind of a buzz kill that I cannot disable it. :(

dermicus-miclip avatar Apr 12 '23 13:04 dermicus-miclip

@elviskahoro From my perspective, this feature is very crucial. All devops commands currently are very hard to work with them.

mkubasz avatar May 15 '23 06:05 mkubasz

@mkubasz i think the goal is to make progress on this next quarter. Aloke will probably be spearheading the development of this.

elviskahoro avatar May 15 '23 07:05 elviskahoro

@elviskahoro Amazing. Sounds great. I really like Warp which is the best term emulator for me!

mkubasz avatar May 15 '23 07:05 mkubasz

Glad to hear there's a plan to do this. I used Warp for a while and really liked it, but felt forced to switch to something else exclusively because of this feature.

jpbochi avatar May 15 '23 07:05 jpbochi

To be clear: there isn't a commitment to supporting shell based completions. The EXPLORATIONS as to what we will try to do in order to improve this experience will start probably next quarter--and Aloke will probably take the lead for this.

elviskahoro avatar May 15 '23 21:05 elviskahoro

Also the discussion for this is being held here primarily: https://github.com/warpdotdev/Warp/discussions/652

elviskahoro avatar May 15 '23 21:05 elviskahoro

I really like Warp and have recommended it but I have to caveat every recommendation with this pain point exists and it doesn't seem like Warp is going in a direction that could make it suitable for my peers in the DevOps space. Between the multitude of benign and popular DevOps tools, to writing our own self-service ones with completions we maintain for fish, zsh, and pwsh, there's no way any clients I work with could adopt Warp and be as productive as they would be in a terminal emulator that doesn't hijack shell autocompletions.

nathanblair avatar May 18 '23 04:05 nathanblair

I'm curious, how do tools like Warp and Fig manage to hijack shell autocompletions?

alanhe421 avatar Jun 15 '23 07:06 alanhe421

Just to add my two cents here. I have been holding out with Warp for over a year but I finally gave up and went back to iTerm solely due to this missing feature.

Though I miss Warp, completions are such as big part of my day-to-day workflow that I simply cannot be without it.

Please prioritise this. :)

ephracis avatar Jul 18 '23 14:07 ephracis

This is the main reason holding me from start to use warp as my main terminal :(

jurgob avatar Jul 22 '23 17:07 jurgob

To be clear: there isn't a commitment to supporting shell based completions. The EXPLORATIONS as to what we will try to do in order to improve this experience will start probably next quarter--and Aloke will probably take the lead for this.

@elviskahoro Any news about this?

P4R avatar Sep 20 '23 08:09 P4R

Hey Folks,

There are currently no intentions to support shell completions due to the way Warp has a wrapper around the shell (this wrapper enables the IDE-like text editing experience, among other key features). That being said there is an active effort to improve completions in Warp in general which may include an API for custom completions support. We'll post any updates on these threads.

https://github.com/warpdotdev/Warp/discussions/434 https://github.com/warpdotdev/Warp/discussions/652

warpdotdev-devx[bot] avatar Sep 20 '23 18:09 warpdotdev-devx[bot]

Tab behavior continues to plague me. So much so this is the reason I went back to iTerm2 despite me loving so much of what warp has to offer.

Given how much ongoing feedback there is on this from the community I am frankly surprised there isn't more progress on this quickly to make this better. Something isn't working.

tmchow avatar Oct 01 '23 23:10 tmchow

That being said there is an active effort to improve completions in Warp in general which may include an API for custom completions support.

I've already mentioned this above but I don't think the quality of completion support of Warp has any relevance here really. I think this is rather about letting the users choose; it does not matter if warp's completion support is good or bad.

I think "no it is not possible" or "no we don't want to because X (e.g.: we are planning to commercialize this in the future)" are fair answers but it seems users are leaving because of the lack of this.

jonatan-ivanov avatar Oct 02 '23 05:10 jonatan-ivanov

So it seems like the issue here is that Warp takes over all input and doesn't send the input to the underlying shell until you press return. Because of this, there is no way to pass through the tab key to the shell, because the shell wouldn't even know about what was typed at the prompt already.

I feel like the bare minimum would be to allow users to update a blocklist of commands in the Warp config that disable the input hijacking and return to direct shell input mode. The lack of this has caused me to give up on warp.

jtokoph avatar Oct 06 '23 20:10 jtokoph

I think it should just be possible to disable warp tab completion and let the shell do it. I like all the other features, like output bookmarking, copying, AI, but I do not like the completion at all, and it's something that I use often enough that it makes using warp impossible.

Typing cd ~/Proj and pressing tab should NEVER suggest anything that doesn't start with proj, but the very first suggestion is Pictures. In fact, Projects is the third option, behind two that don't even match anything other than the P. This is not acceptable imho. In the regular shell I can just type cd ~/Proj, hit tab, and it's done. It matched the only available option and didn't make me jump through hoops.

synic avatar Nov 30 '23 16:11 synic

This is quickly becoming a missing feature that is pushing me to abandon Warp. I really love what has been done but the tab completion is sub-par compared to system tab completion in 2 regards:

  • It provides less accurate results: The suggestions are just outright wrong too often to be useful. As an example If I type <command> ./ tab completion should only show things in that directory (because ./) and NOT similar commands I've run in entirely different directories that have no bearing here.
  • The keyboard interaction (requiring using arrow keys) is less convenient than the normal "keep pressing tab" style (or whatever has been configured in the shell).

I think the idea that the shell doesn't know what the user has input is a valid one, but one that can be worked around. I would think you could query this from the shell pretty easily. Or create a fake shell, input the command, and see what it would return for tab completion.

baroldgene avatar Jan 08 '24 16:01 baroldgene

My $.02, as a recent starter with Warp, user of iTerm2 and, mostly, kitty...

The warp autocomplete feature isn't for me, as is.

  • I write or generate a lot of custom bash/zsh functions to assist with whatever I am working on. I might for example write a quick launcher ltestfoo(){ python <path>/testfoo.py $@} to run whatever failing test I need to fix. Those are seen just fine by zsh autocomplete, not by warp. These go into a simple zsh script which I run to initialize each session.

  • warp doesn't complete bash variable foo=1 then echo $f<tab> does not work

  • if I !202 to run 202 from history, !202 whats now tracked by warp autocomplete. I want to see what !202 expanded to.

Bottom line is that some of this needs local, user and session-specific, shell-level smarts, not trawling through a database of say kubernetes commands to facilitate gnarly kubernetes work. Not even my own past sessions, at least not my case, due to my use of throw away bash functions.

What would work is having a configurable shortcut for shell completion and another for warp completion. Say tab goes to warp and shift tab would go to zsh/bash. Or vice-versa.

So, while I see the benefit in warp, I'm still spending more time on kitty, when warp features get in the way and cannot be turned off.

jpeyret avatar Feb 28 '24 20:02 jpeyret

When using tools where tab completion will trigger a query to some backing stateful system, such as kubectl get pod <tab>, where it will submit a query and present the list of possible pods, or other shell completions with similar functionality — if warp blocks this functionality, then warp is a hard step backwards in capabilities as a product. Not because warp doesn't have value, but simply because it is blocking industry standard functionality.

There is still room to innovate, just allow for the standard capabilities of shell completions to be accessed.

thedodd avatar Mar 25 '24 13:03 thedodd

[!NOTE]

I'll preface this by saying I absolutely love what the Warp team has built and the innovative take on reimagining the terminal.

However, aside from open sourcing the client, this has been by far the PRIMARY issue preventing me from using Warp as my default terminal. As I'm seeing in a lot of these issues and enhancement requests, a great deal of your users are pleading for standard bash/zsh tab completion due to decades of ingrained muscle memory. The experience is so jarring that it significantly impacts the speed of command-line navigation which so many of us are accustomed to.

I strongly believe that there is a silent majority of would-be users (that would likely quickly become paying customers) that simply abandon Warp the moment they attempt to cd into a nested path using tab-completion and are presented with the tiny dialog window. I'd venture to guess that there's likely a second phase of attrition for those that take the time to see if they can disable the feature by toggling Tab key behavior -> Accept autosuggestion in hopes that it will function like a standard bash/zsh autocomplete.

[!IMPORTANT]

These users will never see the other benefits Warp has to offer because you've already lost them.

I don't suspect this issue is getting the attention it deserves; it would be very interesting to take a look at the telemetry data and see if you can identify the last feature that was invoked by a new user before abandoning it. If it's tab-completion or adjusting the Tab key behavior, it would be prudent to bump the priority on this or open source enough of the client such that the community can fix it for you.

The top-level README of this repo states:

but we are confident that even today the experience is meaningfully better than in other terminals.

This is a bold statement, and I want it to be true.

[!TIP] While taking a deeper look at Warp's plans to open source the client in #400, I came across waveterm which is open source and does tab-completion in the way many are requesting right out of the box.

That said, I'll be happy to revisit Warp once issue #1811 is resolved.

kensteele avatar Apr 08 '24 11:04 kensteele

You know, a similar consideration can also be found in modern code editors. I make extensive use of VS Code snippets and I also have CoPilot enabled. The editor fudges - it is still somewhat kludgy as I write this - a way to let me choose which one to pick. VS Code doesn't say: "Oh, you use CoPilot? Well, no more snippets for you".

jpeyret avatar Apr 14 '24 18:04 jpeyret