-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request]: Support neovim #29
Comments
Thanks for that!! Happy to take a look. If it’s complex and likely to break easily, then I might take a view. |
Na, won't be complex, I like simple things. Main issues I see:
|
Does neovim support prompt buffers? |
Prompt buffers? |
Yes, Vimspector uses them for the watches window and the console window Here's the vim help on them: https://vimhelp.org/channel.txt.html#prompt-buffer Basically, you enter insert mode and can type one line, which is then passed to a callback. handy for REPLs. if you want to pop over to the Gitter room, happy to discuss :) |
For my reference as much as anybody else's, here is the pr for some vim patches that includes prompt buffers. |
Nice 👍 |
Tbh, prompt buffers are the easiest part to emulate. Window-toolbars are the real issue :/ But it's nice to not have to emulate them :) |
I think we can live without WinBars in NeoVim. People can just use the mappings. Would be satisfied with a PR that didn’t enable them if something like |
Cool. So far, I haven't found a patch for that submitted against neovim, but maybe we can start with this once the pr for prompt-buffers is merged. |
Sounds good to me, I'll continue the PR when prompt-buffers are merged. |
👍 |
I looks like prompt-buffers are scheduled for nvim 0.5 so that might take awhile as 0.4 just came out.. :( |
I just saw that as well. |
Looks like the nightly build is tagged as |
There is no plans I think neovim/neovim#8805 |
How much is enough people @puremourning? |
@vn-ki some features on neovim side where dropped. So isn't a easy task to support this plugin there. I did some search on this to help, but there are so many things to do that I can't help right now. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@vn-ki to be honest enough people have asked now. there's clearly a real demand. I'll have to evaluate what's required and if i can get solid CI working with neovim. I was going to work on windows support next, but i think there's more of a demand for neovim. We can just make a gimped version that doesn't use prompt buffers, and find some workaround for the |
@puremourning Do you think that Creating a |
@doronbehar yeah that's what i was thinking. |
There is no compatibility between Vim and neovim APIs and feature sets, and the neovim maintainers have said that there's little desire to make them compatible. That includes:
Possibly others not yet discovered. So while i would like to do this, it's not going to be quick, and will require a lot of effort and testing. It's going to be hard to prioritise this amount of work and ongoing maintenance. |
But never fear, i have a working prototype: #77 Feedback welcome. It's missing bits, but it sorta works. |
@puremourning Bit late to the party, but this might lighten the load on you. I've seen lots of plugins for Neovim that only work with the master branch (not yet a stable release), but people still heavily use them and give feedback. If things like prompt buffers aren't in a stable release yet, then it shouldn't be a big deal to not support a stable release until they are. FWIW, many Neovim users compile the master branch from source themselves (like me). The project has diverged from Vim proper and lacks the manpower to prioritize both their own roadmap and Bram's, so users tend to be happy to content themselves with unstable integrations. If you went this route, it wouldn't be a problem. |
I'm not familiar with any such plugins, it'd be nice to hear some examples :)
Prompt buffers are not only not in stable - they are not even merged to master, see neovim/neovim#10433. More over, even trying to merge this PR locally and then building Neovim with it is not trivial at all, - the PR needs to be rebased. I've tried doing that a while ago and I've experienced crashes unrelated to this feature. |
Have you tried the neovim vimspector branch? It’s feature complete now. No prompt buffers and no Winbar. I added ex commands to replace them. |
Oh and it works with the latest release as that’s all I have to test with. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I doubt that any user is ‘happy’ with an unstable anything. Perhaps ‘tolerant’ is more likely :) In practice I’m going to have a quick look at what it will take to port the tests to run on neovim, but most likely I will merge neovim support as a ‘best efforts’ feature. So that sort of aligns with what you’re saying, and the experimental nature of this project |
Thanks for the effort. Can you please clarify what is missing for neovim users ? |
did you see this ? https://github.com/puremourning/vimspector#neovim-differences I think balloons could be made to work. IIRC vimspector checks for has( 'balloonevalterm' ). it's possible that check should be skipped for neovim. |
@ovidius72 I updated the above section to be more explicit about neovim's deficiencies vs Vim-proper. |
Thanks @puremourning |
I'm not going to write yet-more-code just to monkey patch yet more missing features in Neovim. But you can probably make a mapping that does something like |
Actually, this works better:
I could add a
PR welcome for that |
I'd |
@oblitum I just wanted to say that that to emulate the balloons thing in neovim, the preview window could be used. I missed a |
@oblitum but in neovim I have to write a load of code to achieve that feature. In vim it's like trivial. Making vim use a popup as a balloon? Trivial. There is no all-event mouse tracking in neovim, you end up with having to write a ton of code to manage the popup (whose neovim API is really complex compared to the vim one) and position it, hide it, show it, blah blah blah. I'm just not willing to invest that effort for what should be simple, and is in vim. |
@puremourning OK, thing is I've seen so many coc extensions relying on floating windows for widely different purposes, from displaying LSP actions list to alternative spelling display, etc, some of which I use, I thought it wouldn't be that hard. Another thing is that balloons seems tied to mouse? I'm not sure whether it's a mouse feature only, but in that case I'd really not miss it at all as I don't use mouse for nothing when editing/debugging. |
No intention to support balloons. Need help in implementing this feature? (hope I have the time) |
Well, they haven't made popups easy to use, and they haven't implement all event mouse tracking, so balloons can't be implemented using them. I would review a PR that does something useful with popups that works in Vim and neovim. But I will not maintain a separate implementation/faeature set just for neovim's lack of certain features. |
I'm ready to send a PR if you're fine with this.
The text was updated successfully, but these errors were encountered: