4 ms·
Neovim user, so a little different. I used to regularly use GoLand for ~3 years before I made the full switch over, and am a bit of an evangelist of it. I'm si
by ar_lan 4y ago
Neovim user, so a little different. I used to regularly use GoLand for ~3 years before I made the full switch over, and am a bit of an evangelist of it.
I'm simply faster in it. I'd probably say the initial main attractor was modal editing (vim-mode plugins in Jetbrains are not my favorite - usually not a full implementation of the real features vim offers).
* For syntax highlighting: tree-sitter is as good, if not better in my experience.
* For auto-complete/navigation/etc: LSP support + a small few plugins solve this, running on par with what GoLand offers.
* Search support, like the case you mentioned - I use Telescope + Ripgrep and usually my searches are roughly the same time to process as GoLand did.
Are there other features that are drastically important? Because the other features Neovim offers over GoLand are:
* It's way faster to load. Indexing in GoLand takes so long. LSP servers do usually take a bit of time to index but this is on the order of minutes faster than GoLand takes for the projects I have to use at work.
* Significantly less memory consumption.
* I can be purely keyboard driven.
* Modal editing and all the niceties that come with that (note: emulators are always subpar in my experience).
* Being already in the terminal is a significant advantage, especially on my laptop screen (less-so on my ultrawide).
* Customizability is a lower priority, but it is still worth mentioning - there's only so much you can do to customize a Jetbrains editor.
I am far more productive using it than I ever was with GoLand. I might make the exception for IntelliJ when I used to do Kotlin work - but that's the exception, not the rule. For every other language I definitely prefer Neovim.
I think, like all tools, it's important to spend the time to learn it (if you desire to actually use it). Otherwise, of course vim will just look like some archaic tool that seems like it lacks all modern support.
- aidos 4y agoTreesitter is amazing. We have a bunch of sql strings in python and I was able to drop a couple of lines into my injections.scm to isolate them and get perfect sql highlighting within my python code.
- lordgroff 4y agoI didn't even know you could do that, this is why I come to this site.
- aidos 4y agoIf anyone is interested in how it works, here's the whole thing (I'm looking for strings inside a call to a text function, which is how you wrap sql for sqlalchemy). # queries/python/injections.scm ; inherits: python ((call function: (identifier) @_func arguments: (argument_list (string) @sql)) (#eq? @_func "text")) There's a little nuance here where the thing that treesitter parses includes the """ (or ") at the start / end but because it can recovery from errors I'm not bothering with wrangling the offsets.