> I’ll preface this by saying that if Neovim isn’t your primary editor, you should first try an IDE specifically for Java."
Seconded.
As someone who has spent a lot of time configuring editors, but doesn't enjoy it quite as much as he used to, I gave Java on Neovim a shot this summer.
There are two main routes to go - both of which are described in the article. Either install it yourself, "You read the friendly manual", or use someone else's installer, "You use a distro".
My problem with someone else's installer is that I don't understand what it's doing, which in turn gives me the feeling that it's pulling in the kitchen sink, which is exactly the feeling I hoped to avoid by not using my regular IDE.
My problem with installing it myself is that I have to learn the entire ecosystem including, but not limited to, learning how to use Neovim for more than editing a simple text file, learning the Lua scripting language, learning where Neovim keeps its' configuration files and what to put in them, curating a set of plugins for highlighting, launching code, debugging, etc., figuring out how to configure those plugins for Neovim and finally how to make those plugins play nice together.
In the end it just wasn't for me but if Neovim is your primary editor it might be for you.
> Java has one LSP option for Neovim, and that’s JDTLS (Java Development Tools Language Server) by Eclipse.
I’ve tried out a few distros for vim and emacs over the years and usually drop them after a few hours of trying. But I gotta say I’m really enjoying LazyVim. It’s config layering system makes tweaking any specific plugin settings very easy, and it’s based on the “lazy.nvim” plugin manager that most plugins feature first in their README intros these days. That means there’s less a feeling of doing things “the normal way” vs “the weird distro specific way” that I experienced with DOOM EMacs and SpaceVim.
It’s definitely still a kitchen sink, lots of stuff that I wouldn’t configure on my own, but surprisingly discoverable via a popup that shows available keyboard shortcuts that appears after you type LEADER and wait a moment.
It’s also super fast to start up, putting most destros out there especially EMacs ones to shame.
The main downside is it encourages you to spread out your config in multiple Lua files, and overall learn and use more Lua stuff. But I think it’s worth the price.
Last time I tried and iirc, lazyvim would print out all sorts of various errors within seconds of using it for very basic things, which is enough for me to give up on most tools unless they are forced onto me. That said I have yet to find a proper code editor for my needs which is not exactly dev ; so far I settle with plain vim.
Doesn't the idea of an "LSP for Neovim" mean the entire premise of LSP has failed? Wasn't the whole idea supposedly to put an end to editor-specific plugins in favor of one protocol spoken by all editors?
LSP exposes standard interfaces, but it still has to be bridged across the variety of languages editor plugins are written in. It’s much better than the previous state.
It is just that. (of course in practice you also need to get the LSP to exist on your system somewhere in the first place and have a command that runs it (rather annoying for java programs), but other than that it's literally just a program with JSON I/O)
I was in the same place you were a month ago but I decided to just bite the bullet and build my own Neovim configuration from scratch. Fortunately I don't use auto-complete and an LSP was only a recent addition to my configuration. Telescope was one of the few plug-ins I configured off the bat and when you start small learning the eco-system isn't that much of a hurdle.
The Nvim Kickstart Project is a great starting point for your configuration and has it's config file heavily commented to teach you how to setup your own configuration, I highly recommend it.
Seconded.
As someone who has spent a lot of time configuring editors, but doesn't enjoy it quite as much as he used to, I gave Java on Neovim a shot this summer.
There are two main routes to go - both of which are described in the article. Either install it yourself, "You read the friendly manual", or use someone else's installer, "You use a distro".
My problem with someone else's installer is that I don't understand what it's doing, which in turn gives me the feeling that it's pulling in the kitchen sink, which is exactly the feeling I hoped to avoid by not using my regular IDE.
My problem with installing it myself is that I have to learn the entire ecosystem including, but not limited to, learning how to use Neovim for more than editing a simple text file, learning the Lua scripting language, learning where Neovim keeps its' configuration files and what to put in them, curating a set of plugins for highlighting, launching code, debugging, etc., figuring out how to configure those plugins for Neovim and finally how to make those plugins play nice together.
In the end it just wasn't for me but if Neovim is your primary editor it might be for you.
> Java has one LSP option for Neovim, and that’s JDTLS (Java Development Tools Language Server) by Eclipse.
Just wanted to mention that there is another LSP for Java, https://github.com/apache/netbeans/tree/master/java/java.lsp..., but I don't know if anyone has gotten it to work with Neovim.