Simple Language Agnostic Emacs IDE

A lot of people are jumping in the LSP ship for their all-purpose IDE, which is fine but LSP has never been friendly to me. I always ended up having problems with something. This led me to build a minimal but very helpful setup that will work for many of the most used languages (Python/Javascript/Java/C++/etc).

I wanted an IDE setup within emacs that didn’t involve LSP or any other server because I kept running into problems and maintaining multiple servers for each language is a hassle. After searching for a bit I came into the following packages/libraries that have helped that transition to a simple but powerful IDE.

Here they are:

  1. Projectile
  2. Dumbjump
  3. Company Mode
  4. GUD

The reasoning for the following are below:

  • Projectile: This is a project management and navigation package. Think of it as your sidebar view of files in a typical IDE plus the ability to run commands on the entire project.

  • Dumbjump: This is arguably the most essential feature, the ability to jump to definition. This package is nicely well-written and works amazingly. Best of all, works on all major languages and has no dependencies.

  • Company Mode: This is what I use for auto code completion. It’s not hooked up to an engine but instead, it simply re-uses words that I’ve used throughout any buffers I’ve opened. It’s a “smart” dumb auto-code completion. Works for my purpose

  • GUD: Built-in debugger library in emacs. It comes with a few debuggers such as pdb which I’m constantly using. It will probably come with the debugger you need. If not, then it might be worth checking out https://github.com/realgud/realgud.