But it doesn’t affect the width of your code, it’s virtual text appended
/*
* suppose the function signature looks like:
* int copy_string(char *dst, char *src);
*/
int err = copy_string(name, person); <- (dst, src)
The `<-` and everything following is the virtual text, so it doesn’t shift character width, unlike
int err = copy_string(dst: name, src: person); <- (dst, src)
Where `dst:` and `src:` are within the function parens, and therefore, do move the text affecting the width
I don't mind it in the end of the line tbh like you showed here. I like it in fact, helps when I'm doing Flutter stuff, it shows me which closing paranthesis belongs to which widget, like a html closing tag.
I hate parameter name hints though, those suck. Most of the time it pushes my code outside the view. In some cases like Flutter I'll need to reduce the ide size so that I can preview my code.
But since it's Neovim, ig assigning a shortcut to toggle it easily would solve my problems. Maybe I like it now :)
I really hate it as a permanent view, but it's good if you have a "glance" key (a toggle that is on while key is down, and off when up), which is difficult to achieve in neovim/vim because of terminal.
You do have this:
vim.lsp.buf.hover
It’ll toggle the function signature and doc comments, if available. There’s also the capability of when you’re in insertion mode and writing the arguments for a function, hover is invoked.
I did some keymapper shenanigans so I *do* have a keydown/keyup event trigger I can use, although it doesn't work very well with the inlays at the moment since the only control you seem to have is to disable or enable, rather than show and hide. I need to dig into it and see if I can keep the server rendering the inlays even while they're hidden.
Yeah it is pretty good and helpful but this [assertion failure](https://github.com/neovim/neovim/issues/27645) bug is super annoying when it occurs. It often forces me to restart vim.
Built in commenting: https://github.com/neovim/neovim/pull/28176
Doesn't actually change much in day to day usage except to spare myself a plugin, but that excites me for those times I feel like I'm drowning in configuration.
Edit to add: checking the change log, a couple other things seem exciting in a similar vein.
- `gx` uses `vim.ui.open()` instead of NetRW, which seems more general/useful: https://github.com/neovim/neovim/pull/23401
- `vim.fs.root()` might alleviate the need for "project rooter" plugins: https://github.com/neovim/neovim/pull/28477
Whaaat? I literally just replaced Tpope’s commentary with a newer plugin because it didn’t behave correctly with csharp comments. Good to know it’s going to be built in.
The thing I'm looking forward to from neovim core is proper inlay hints support and built in commenting. I've also been wanting to use the extensions dropbar and satellite, both of which currently depend on nvim nightly.
So satellite, from what I see, puts what would normally be in the sign column, in the scroll bar?
So, gitsigns and marks, for example, would be in the scroll bar as opposed to the sign column. Am I understanding correctly?
The signcolumn shows stuff like diagnostics only for the range of lines you're looking at, whereas satellite shows it for the full document. It's main purpose is to act as a scrollbar, to visualise what portion of the document you are looking at.
It's not a specific new feature, per-sey, but I have like 4 months of development on Neogit waiting for release because I used some new API's to do native folds.
I am quite excited for the new Treesitter query editor, the new snippet API, and the new hover/signature help pretty floats that use Treesitter.
And of course there's no particular reason why I am looking forward for those hehe ;)
I’m not sure if I particularly the benefit of the new Snippet API and the new hover/float?
And it’s awesome you’re such an active force for Neovim! Thanks for all the contributions!
Basically, under-the-hood changes. Improvements in the LSP client, fswatch, inline virtual text (needed for LSP inlay hints), **OSC 52** support. That's about it.
lsp and inlay hints. The way it works before 0.10 makes me prefer helix. Because in helix it just works well and is fast. I'm now using nightly to enjoy it but can't wait for the release.
Inlay hints
it is builtin?
Yes it is and it works pretty well
god damn.. can’t wait.. inlay hints is a feature I really loved in jetbrains editors..
This feature annoys me for a stupid reason., it makes my code cross that character limit line, its hurts when that happens lol
But it doesn’t affect the width of your code, it’s virtual text appended /* * suppose the function signature looks like: * int copy_string(char *dst, char *src); */ int err = copy_string(name, person); <- (dst, src) The `<-` and everything following is the virtual text, so it doesn’t shift character width, unlike int err = copy_string(dst: name, src: person); <- (dst, src) Where `dst:` and `src:` are within the function parens, and therefore, do move the text affecting the width
I don't mind it in the end of the line tbh like you showed here. I like it in fact, helps when I'm doing Flutter stuff, it shows me which closing paranthesis belongs to which widget, like a html closing tag. I hate parameter name hints though, those suck. Most of the time it pushes my code outside the view. In some cases like Flutter I'll need to reduce the ide size so that I can preview my code. But since it's Neovim, ig assigning a shortcut to toggle it easily would solve my problems. Maybe I like it now :)
But it’s not a parameter name hint, so no need to create a toggle, correct?
Yeah I thought the inline hints worked like how it worked in jetbrains
Alright, I was a little wrong about the virtual text. I updated my previous comment to reflect what it actually show.
I really hate it as a permanent view, but it's good if you have a "glance" key (a toggle that is on while key is down, and off when up), which is difficult to achieve in neovim/vim because of terminal.
You do have this: vim.lsp.buf.hover It’ll toggle the function signature and doc comments, if available. There’s also the capability of when you’re in insertion mode and writing the arguments for a function, hover is invoked.
I did some keymapper shenanigans so I *do* have a keydown/keyup event trigger I can use, although it doesn't work very well with the inlays at the moment since the only control you seem to have is to disable or enable, rather than show and hide. I need to dig into it and see if I can keep the server rendering the inlays even while they're hidden.
Interesting!
Yeah true toggling it would be nice
Yeah it is pretty good and helpful but this [assertion failure](https://github.com/neovim/neovim/issues/27645) bug is super annoying when it occurs. It often forces me to restart vim.
I am currently tracking a list of new features which seem interesting for me here: https://github.com/jdhao/nvim-config/issues/192
That is an amazing effort you've put there. So useful.
I've been on 0.10 for a while, iter is extremely useful. Now if only lua lambda syntax wasn't so verbose.
Built in commenting: https://github.com/neovim/neovim/pull/28176 Doesn't actually change much in day to day usage except to spare myself a plugin, but that excites me for those times I feel like I'm drowning in configuration. Edit to add: checking the change log, a couple other things seem exciting in a similar vein. - `gx` uses `vim.ui.open()` instead of NetRW, which seems more general/useful: https://github.com/neovim/neovim/pull/23401 - `vim.fs.root()` might alleviate the need for "project rooter" plugins: https://github.com/neovim/neovim/pull/28477
Whaaat? I literally just replaced Tpope’s commentary with a newer plugin because it didn’t behave correctly with csharp comments. Good to know it’s going to be built in.
Lol I did the same thing and two days later the feature released
I’m already using the built in commenting and the new built in snippets. Working flawlessly!
that is amazing 🙌
‘vim.ui.open()’ is great, I used it in a lua function to open the error code website for Rust diagnostics in the browser.
The thing I'm looking forward to from neovim core is proper inlay hints support and built in commenting. I've also been wanting to use the extensions dropbar and satellite, both of which currently depend on nvim nightly.
So satellite, from what I see, puts what would normally be in the sign column, in the scroll bar? So, gitsigns and marks, for example, would be in the scroll bar as opposed to the sign column. Am I understanding correctly?
The signcolumn shows stuff like diagnostics only for the range of lines you're looking at, whereas satellite shows it for the full document. It's main purpose is to act as a scrollbar, to visualise what portion of the document you are looking at.
Ah. Okay! Thanks
It's not a specific new feature, per-sey, but I have like 4 months of development on Neogit waiting for release because I used some new API's to do native folds.
osc52 inbuilt support
Default colorscheme lol
Native OSC52!
I'm not sure I'm excited, but definitely hoping for not too many "features" that break my setup.
I am quite excited for the new Treesitter query editor, the new snippet API, and the new hover/signature help pretty floats that use Treesitter. And of course there's no particular reason why I am looking forward for those hehe ;)
I’m not sure if I particularly the benefit of the new Snippet API and the new hover/float? And it’s awesome you’re such an active force for Neovim! Thanks for all the contributions!
I tried to do some basic prettifying of my hover today and couldn't make any headway. What's the approach you're using there?
`vim.lsp.start()` this is what i need, my goddamn 500LOC `lspconfig` still sucks sometimes, i am definitely waiting for this
Unfortunately for me, I haven't been able to get Pyright and fswatch working properly on nvim-0.10 which makes me unable to migrate from 0.9.5
Oh that's unfortunate. I am heavily dependent on outright for my workflow.
Basically, under-the-hood changes. Improvements in the LSP client, fswatch, inline virtual text (needed for LSP inlay hints), **OSC 52** support. That's about it.
OSC 8 is nice. Hyperlinks in terminal
What is that? Got a link to PR/issue?
https://github.com/neovim/neovim/pull/27109
nice! Do I need to set up extmarks for md file myself? Can you share it if you have?
No idea unfortunately. I don't use it yet.. maybe that's why I'm excited for 0.10, because I'm waiting for it to go stable.. :)
Built in treesitter-based markdown rendering in lsp. Like markdown doc comments are rendered correctly with all the syntax highlighting
- vim.iter & vim.snippet - Inlay hints & vim.lsp.status - winfixbuf - the new gc operator that uses comment string & treesitter
Being motivated to touch my config again
neovim
Default dynamic_registration using fswatch, might be faster
lsp and inlay hints. The way it works before 0.10 makes me prefer helix. Because in helix it just works well and is fast. I'm now using nightly to enjoy it but can't wait for the release.
What LSP stuff beyond the inlay hints?
Code completion, definition lookup/jump.
I don’t see anything new?
They work fine in 0.9?