5 ms·
> Using an IDE [is great, in particular for navigating the codebase] As a longtime and ongoing Emacs user... I have to agree. Sure, Emacs Can Do It [tm?], but
by AceJohnny2 3y ago
> Using an IDE [is great, in particular for navigating the codebase]
As a longtime and ongoing Emacs user... I have to agree.
Sure, Emacs Can Do It [tm?], but having to setup the appropriate tag system, and ensuring it's kept up-to-date with the codebase is a pain.
For example, our codebase is embedded C with #ifdefs depending on which target we're building from. This means that a naive, cscope(regex)-like search will get confused about which is the proper definition for the active target... when it even can find a definition (it's shocking how often it fails for no clear reason).
So I turned to RTags, which meant having to generate compile-commands.json, which... I'll stop here. Suffice to say setup wasn't trivial, and for some reason it eventually broke and I never bothered again.
Rinse and repeat for every other language.
- PhilipRoman 3y agoInteresting, I have the opposite experience. Ctags are resilient in face of missing headers, source code preprocessing, syntax errors etc. VSCode usually just gives up. At one point I even had to install the Ctags plugin for VSCode...
- throwaway290 3y agoYep. And in case of a big project LSP requires at least all dependencies properly installed right on the machine where you write code. Upgraded OS and something is incompatible for a while? You get no hints now, hope you're not in rush because you'll be running full build to discover your typos. And especially good luck should you want to use LSP on two different projects that require different versions of the same dependency...
- dpc_01234 3y agoWait, what? Tagging system? What is it? 2015? Doesn't emacs have a good LSP support by now? Nowadays with the popularity of treesitter and LSP even small-community command line text editors can have most of what IDEs do built-in.
- a1o 3y agoLSPs of today have a really large surface area to be implemented as LSPs grew a lot on what they can do. I don't think it's easy to wire down a LSP to any IDE, and lots of small IDEs are written around some text component - like Scintilla. If the text component doesn't have a standard way to be wired up to a LSP, that is already properly maintained, it's really hard to implement it.
- brabel 3y agoemacs 29 comes with eglot built-in. That's the LSP client for emacs and as long as your language has an LSP server, it can hook to it. OP is using C and I am not sure there's a LSP server for C that can work well in emacs, but using Go and Dart and Java seems to work just fine in emacs, just like other IDEs.
- dpc_01234 3y agoEven relatively small, immature, niche CLI text editors start with LSP + tree-sitter support, so I'm not convinced that it would be too much for a mature OS like emacs.
- fergie 3y agoI keep on trying to use IDEs and have gone through phases with one IDE or another, but in the end I just keep coming back to Emacs with a GNU Screen in another window.
- Lio 3y agoIsn't this a solved problem with LSP? You can have access to the same navigation tricks as VS Code in any editor that supports it. If you just prefer IDEs or you have some other interesting tools you want then fair enough, but navigation? That shouldn't be a motivator any more.