Supporting shell completions (spec) #434
Replies: 72 comments 51 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.
-
Same here, i also would like to use warp but as long as autocompletion scripts aren't working i can't use it. |
Beta Was this translation helpful? Give feedback.
-
For me Warp is not usable it paths are not autocompleted. |
Beta Was this translation helpful? Give feedback.
-
I started to use warp yesterday and was an amazing experience until I started to have issues with autocomplete and now I found this thread. For me, it's useless to use a terminal without the autocomplete integrated :( |
Beta Was this translation helpful? Give feedback.
-
I don't mean this to be spammy, but just in case folks are unaware, ghostty has most of the traditional features like autocomplete. It does not have all the AI stuff like Warp, but I'm guessing most of you don't care. I've been using it for a few weeks and it fits the bill. |
Beta Was this translation helpful? Give feedback.
-
Actually, I think Iterm2 + Amazon Q is better then this |
Beta Was this translation helpful? Give feedback.
-
I'm a bit baffled that native completions are simply blocked, as you can change the keyboard commands to use warp completions to something like ctrl + space, and then instead of doing native completions... it just adds a tab to your command line. Outside of vim/nano when would anyone ever want to add a literal tab to completions? I think the warp completions are useful, but just... WHAT? |
Beta Was this translation helpful? Give feedback.
-
So it's been 3 almost 4 years and nothing on this yet. |
Beta Was this translation helpful? Give feedback.
-
I also know that other terminal developers doesn't have the problem to look into this because this is all integrated in bash or zsh. Sorry but i don't see any benefit to use ghostty, it is just another default shell and other then in iterm there is no configuration gui. I like how warp will work, it's really a total new experience which makes working better, but everything need to be integrated what a default bash can do and this is a lot of work...... And it professionals like me will almost need every feature which a shell like bash can do, until this wan't happen its uninteresting. |
Beta Was this translation helpful? Give feedback.
-
You can have both. For example iterm lets you save and load profiles and has for some time now:Dynamic Profiles - Documentation - iTerm2 - macOS Terminal Replacementiterm2.com-eOn Feb 17, 2025, at 5:58 AM, wastez ***@***.***> wrote:
Actually, the beauty of not having a gui for the settings ui is that it's both scalable-able and scriptable meaning that it is easily reproducible on another host machine. Not having a gui is a plus.
I guess some people like guis some don't which is fair enough. I like being able to easily reproduce the same setup on other machines using automated means so no gui is my preference.
Yes in the most things i aggree, i also don't like a gui in the most things but in such a simple thing then a terminal i don't see a benefit. I had a short look in ghostty but i was to bussy to have a look into the extanded configuration.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Problem with having a gui for the settings is that when the number of options get large then so the gui becomes larger and unwieldy. That’s what I mean about scalability
…________________________________
From: Erik Selberg ***@***.***>
Sent: Monday, February 17, 2025 3:40:59 PM
To: warpdotdev/Warp ***@***.***>
Cc: Plastikfan ***@***.***>; Manual ***@***.***>
Subject: Re: [warpdotdev/Warp] Supporting shell completions (spec) (Discussion #434)
You can have both. For example iterm lets you save and load profiles and has for some time now:Dynamic Profiles - Documentation - iTerm2 - macOS Terminal Replacementiterm2.com-eOn Feb 17, 2025, at 5:58 AM, wastez ***@***.***> wrote:
Actually, the beauty of not having a gui for the settings ui is that it's both scalable-able and scriptable meaning that it is easily reproducible on another host machine. Not having a gui is a plus.
I guess some people like guis some don't which is fair enough. I like being able to easily reproduce the same setup on other machines using automated means so no gui is my preference.
Yes in the most things i aggree, i also don't like a gui in the most things but in such a simple thing then a terminal i don't see a benefit. I had a short look in ghostty but i was to bussy to have a look into the extanded configuration.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub<#434 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AL32YOXKUIWGK6P2XE723ZD2QH7IXAVCNFSM5LRT5KV2U5DIOJSWCZC7NNSXTOSENFZWG5LTONUW63SDN5WW2ZLOOQ5TCMRSGI3DGNRU>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
+1 on this. I'm also facing the same issues already mentioned by the others. Even the custom completion I've created for my custom fish function won't work in Warp at all. It just suggests files/folders which are completely irrelevant! IMO, giving the user full control over this would be the best solution. For example, Warp can have a setting for this with options for: only using shell autocompletion, only using Warp autocompletion, or using both with the ability to specify the priority. Unfortunately, I had to switch to another terminal app for now. It's really annoying to be deprived of some of the perfect fish capabilities. I hope the development team prioritizes this long-awaited request. |
Beta Was this translation helpful? Give feedback.
-
I was going to swap to warp, but this issue is a serious dealbreaker. Unfortunate, back to Hyper for me. |
Beta Was this translation helpful? Give feedback.
-
So still nothing on this after 4 years. You cant just tell every other cli tool that you dont support to go fuck it self. at least have an option to turn off the warps completion so we can use shell completions or a way to submit cli tool completions to warp. How can you just be silent?. You keep adding all this ways to interact with AI but dont care about this crucial issue |
Beta Was this translation helpful? Give feedback.
-
+1 - Without shell completions, Warp, which otherwise looks great, is a not-starter. |
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