Hacker News new | ask | show | jobs
by cloverr20 1341 days ago
I have not tried the editor itself, but one thing that puts me off is how some people are claiming its going to replace vim/nevoim and others by the virtue of its great LSP and tree sitter support. I am working as a full time developer for the last 4-5 years and I never needed to use auto complete (for long words C-x n is there) and the current syntax highlighting seems fine. Vim is working great for me and I don't feel any reason to switch to others. Instead of bashing other editors, maybe just tell what makes your editor unique and why people would want to use it?
4 comments

> by the virtue of its great LSP and tree sitter support.

> maybe just tell ... why people would want to use it?

Apparently they did tell you, and you’re not interested. Fine, but what a pointless comment. Rob Pike will also tell you how he loves coding without syntax highlighting, which you apparently find useful.

It's not a "pointless comment". Why would someone want to use it every day over Vim or Neovim? The only benefit of Helix specific to LSP and tree-sitter is the ease of configuration, a mostly fixed cost. Then what?
That would be a reasonable comment, and people have been discussing that in this very thread. The one I replied to is "I don't use autocomplete, so you didn't tell me what's good about this editor, except you actually did and I even acknowledged that". Pointless.
When you say you never needed LSP, do you mean you've tried it and found no benefit to having it, or do you mean you're doing just fine without it? (Because its possible to do just fine without it yet still find significant benefit to having it).

What LSP does for me is instant documentation integrated into the editor and getting constant feedback if you get it wrong (at least from a typechecking perspective). I guess that in many cases, you can get something similar by having a documentation window open on the side as well as automated unit tests in a second terminal re-running on every save.

I have tried using it few times but I didn't see much benefit of using it, I am mostly working with python/django/javascript/react and by now most of the common functions I already know, so I didn't see much use of it and tbh it felt a bit distracting to me when a big hover definition came when I am typing something.

The times when I don't remember how something works, usually I have to go the stackoverflow answers/documentation to read on how it works, maybe try it out a few times in the shell, before writing the code. For typechecking and errors I have been using ALE and it does give a warning if there's something wrong and this setup is working fine for me.

I feel you. Vim has been such a staple in my dev life. So much that switching felt like betraying sweet uncle Bram ;-) And without the need to write typescript, I probably wouldn't have switched. But what made me stay even for non-typescript work were the little things, like the positions in the location and quickfix list being auto-updated while editing, being (feeling?) faster and more responsive, the saner default settings (server usage) etc.

Regarding lsp integration, it's just nice to have project-based instead of buffer-based auto-completion, auto-insertion of import statements etc. Definitely makes me more productive. Setting it up the way I wanted (non-obstrusive, on-demand) was a bit of pain though.

I use vim with ale. Linting, go-to- definition etc. for typescript (or really any other language I use) just works automagically. It took more effort to get it working in vscode. I haven't tried neovim or helix yet. They both seem great, but it seems to me that people here might be slightly exaggerating the difficulty of getting this working with regular old vim.
Well, I tried ALE and it worked ok. Compared to the neovim built-in lsp client it just doesn't display as much info and does not support multiple hints per line. There's also CoC which should also work with regular vim and which I've used for a while, but it wasn't very stable for me (the auto-insertion of import statements made it crash frequently for example). The built-in lsp client seems to be the cleanest, fastest and most stable implementation. Using nvim-lspconfig it was fairly easy to set as well. It just took me a while to find out how to disable all the distracting live-/auto- completion, underlining, inline-hints etc. (vim.diagnostic.config)
For a long time I had the same opinion (using Sublime Text with its plain same-file autocomplete). It's okay, but after using LSP for a while, I'm sold on it. It really is nicer, and I wouldn't go back to my pre-LSP times.

"Go to definition" and "Find references" is faster and more precise than grepping, especially for common function names. This lets me browse larger codebases, even if I don't remember their layout.

Being able to peek at actual types of variables is quite useful in Rust which has type inference. I can check types instead of deducing issues out of compile errors.

LSP support for like "Extract into function/module" are great for refactoring eliminating most of the busywork. Renames are also more reliable than find'n'replace, especially when I'm renaming because the name is ambiguous.