Supporting shell completions (spec) #434
Replies: 36 comments 20 replies
-
Makes sense as a request. Our current approach is to try move this logic into Warp by building out our own completion grammar and library, with the rationale being:
That said, we are missing a bunch of context right now from the shell which is making our completions worse than they should be. And we just have a number of bugs. I think we will see how far we can get without delegating to the shell, and add that as a fallback if we can't make it great. Thanks for the report. |
Beta Was this translation helpful? Give feedback.
-
Maybe a hybrid aproach works best, where if you know about a tool (npm, etc) you provide native support, but if not, you can delegate to the underlying shell (ninja, r2, rg etc). Some of the more basic stuff (starting with |
Beta Was this translation helpful? Give feedback.
-
Yup, we will explore that. We actually started with an approach of delegating the shell, but it did introduce extra latency. As a fallback though it might be acceptable. Appreciate the feedback. |
Beta Was this translation helpful? Give feedback.
-
Completion using variables is also broken, e.g. |
Beta Was this translation helpful? Give feedback.
-
Throwing my +1 into the mix on this that the autocomplete issues definitely hinder my ability to use Warp as a primary driver right now. I also source an open source git_completion.sh script to get autocomplete for git branches and commands, but that doesn't seem to work with warp either. Would definitely like a fallback to native autocompletion when warp has no suggestions. |
Beta Was this translation helpful? Give feedback.
-
I think the lack of |
Beta Was this translation helpful? Give feedback.
-
While it's a beta (and pretty impressive so far - I find very little of what it actually does that I don't like a lot!), not having some sort of command completion at least for filenames working is really going to make things difficult to continue. Maybe my setup (bash) is interfering, but even just '. ~/.bash_al' doesn't do anything - no list of files, no default pick, nothing. I have no choice but to retype in the file name completely. Anybody reported anything in bash that might interfere with what you're building (so I could at least get the minimal file completion?) |
Beta Was this translation helpful? Give feedback.
-
I definitely think that the shell needs to take precedence here over any autocompletion by the terminal. I have my shell configured exactly how I want it to be, with the autocomplete that I want it to have. Regardless of if I'm using Warp, iTerm2, Terminal.app, or any other terminal, I don't want to have a difference experience. The terminal should enhance the shell, not replace it. |
Beta Was this translation helpful? Give feedback.
-
+1 for this! Having default autocompletion included in the terminal is fine, but I think that users must have the ability to customize it exactly the way they want is very important. Being able to simply use what was already made at the shell level would be best, but another acceptable possibility, imo, would be to be able to customize it with a config file for Warp. As someone else mentioned already, this is the single thing that prevents me to daily test Warp. |
Beta Was this translation helpful? Give feedback.
-
I think a JOSN like command structure would be of great help. More info here: #585 |
Beta Was this translation helpful? Give feedback.
-
From @arunkumar413 Hi Team, Most of the Linux commands don't have a common structure. Each command has its own options and flags. I recommend a JSON like structure for the commands and their options. For example:
This JSON like structure should be parsed into the regular Linux commands and executed. We'll have a terminal feature like text editor that takes JSON input, interprets the JSON like structure into regular commands and outputs the result. This feature would make the documentation, linting, code completion easier. Each command option would be self explanatory and easier to understand. Note: This wont be a complete replace of the existing command line but just an addition to the existing command line which takes a JSON structure as a command.
|
Beta Was this translation helpful? Give feedback.
-
Had a ticket related to this discussion here: #622. I was having issues using commands like For |
Beta Was this translation helpful? Give feedback.
-
From ChrisVarenChris via Discord: https://discord.com/channels/851854972600451112/852251449068486773/900932342653255700 i assume a shell's native completion system is just incompatible, so you need to write new ones for Warp? At the moment, this 100% what's stopping me from using Warp for the majority of work. A crowd sourced repository of open source completions wouldn't solve it since we have completions for internal tools that are used all the time. Though most of these completions are autogenerated from getopt-style help texts so just the ability to have custom user completions would be enough. (I believe fish shell auto-magically generates completions in a similar way) |
Beta Was this translation helpful? Give feedback.
-
It doesn't autocomplete functions defined .zshrc, e.g. |
Beta Was this translation helpful? Give feedback.
-
From blitz2145 via Discord: https://discord.com/channels/851854972600451112/906269689116770304/908912605232529418
|
Beta Was this translation helpful? Give feedback.
-
Any news from the developers about that? Are they planning to do something with it? |
Beta Was this translation helpful? Give feedback.
-
Yeah this is a huge blocker for me. I was using iterm2 + omz + p10k + Fig and warp could do most of it all in one, and has a lot of other great features, but the lack of completion support is a killer. |
Beta Was this translation helpful? Give feedback.
-
This decision to build a home-brewed autocompletion system is perplexing to me. It's a massive reinvention of multiple wheels, the wheels being Maintainers of tools like ...that's just not sustainable. I get the desire to have Warp able to handle auto-suggestions in an My only current workaround for this problem (when it irks me enough that I need a solution for it so I can just be productive) is to run my shell as a sub-shell of the Warp terminal shell. And ultimately it looks like there's an endeavor to remove that workaround by having Warp take over sub shells as well. I give up blocks but at least I don't spend 10 extra seconds every minute refreshing myself with |
Beta Was this translation helpful? Give feedback.
-
this is also my biggest issue with warp, I've spent a lot of time building my own completions, built on top of fish+fzf, which offers me a much better experience than warp, not everyone may like it but I do and it's something I use hundreds of times per day, so I made it work exactly how I want just please let me disable the tab completion in warp so my shell can handle it, feel free to build your own system as much as you want, but don't force me to use it |
Beta Was this translation helpful? Give feedback.
-
For me I've loved transitioning to warp except that in iTerm2 (with oh my zsh) git completes my remote branches when I type |
Beta Was this translation helpful? Give feedback.
-
related #3801
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Good - I thought I was on crazy pills when I first started playing with warp. It surely seems like some enable/disable logic, or prioritizing logic would be useful here. It's the main reason I use |
Beta Was this translation helpful? Give feedback.
-
I was super enthusiast about Warp on Linux, I installed it, save one Configuration to have a one-click workspace ready to use, started to type a command, hit TAB and 💥 I missed my ZSH completions. Instant uninstall of Warp. Too bad to get rid of a basic standard usage as shell completions. |
Beta Was this translation helpful? Give feedback.
-
loving warp, but not supporting fish completions is a big issue. for some commands there is no auto-complete (e.g. i think an ideal solution would be to both:
not sure how complex these tasks are, but in my opinion they are urgent. this is on the border of being a deal breaker for me, and based on this thread and common sense, it's a deal breaker for many users. thanks and keep up the good work! |
Beta Was this translation helpful? Give feedback.
-
Nobody uses the terminal as often as people who write CLI utilities for their tasks. If you do this, you're probably spending more time in the terminal than the average developer running mvn build. Writing completions for your utilities is a very common situation. It's a shame that the Warp developers have been ignoring this for years. But this is not surprising. I have had a bug since the first days, with long lines that do not fit into the block and cannot be scrolled to the end (just try writing No, thanks. |
Beta Was this translation helpful? Give feedback.
-
How is this not addressed yet. Isn't autocomplete a very fundamental part of CLI experiences now. Of course I am a bash shell user, who likes fish likes suggestion, I mostly expect |
Beta Was this translation helpful? Give feedback.
-
I was thinking that autocomplete do not work by my mistake in some configuration. What a surprise that this is native "feature". What a disappointment - uninstall follows now 👎 |
Beta Was this translation helpful? Give feedback.
-
Going on 3 years and Nada. It's such bad form the way the dev team seem to write this off and try to convince us it's not such a problem, or that we should use workarounds. I'm subscribed to the big pile of tickets about this, but until this is fixed, I'm outta here. |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
Ex. I'm always frustrated when autocomplete doesnt work.
Eg:
touch
TAB doesnt work~/pre
TAB doesnt work (should expand to~/prefix
ninja ins
TAB completes toninja install_manifest.txt
, notninja install
cd rustd
TAB completes tocd rustdoc/
, notcd rustdoc
, where I can then specify I wanted to go torustdoc-json
, (in rustcsrc/test
dirman cla
TAB doesn't comlete (zsh shows clang clang++ clang++-12 clang-12 classes.conf)Describe the solution you'd like
I'd like to be able to deligate to the underlying shell to provide autocompletion.
Beta Was this translation helpful? Give feedback.
All reactions