Artículo técnico que detalla una configuración de producción de Eglot, el cliente LSP integrado por defecto en Emacs desde la versión 29, orientada al trabajo diario con Scala, Kotlin y algo de Java. El autor, integrante de la configuración heks-emacs, defiende que Emacs, frente a IntelliJ IDEA, ofrece una experiencia más ligera, rápida y hackeable para lenguajes JVM gracias a tres pilares: la filosofía Unix aplicada al LSP mediante JSON-RPC, la capacidad de modificar el comportamiento en caliente con unas pocas líneas de Emacs Lisp, y una interfaz unificada válida para cualquier modo o lenguaje.
La configuración se articula sobre use-package y Elpaca. Eglot se inicia automáticamente mediante eglot-ensure en scala-ts-mode, kotlin-ts-mode y otros modos Tree-sitter y clásicos, con autoformato antes de guardar y atajos bajo el prefijo C-c i con mnemotecnia “IDE” (implementación, rename, code actions, inlay hints, etc.). Entre las opciones clave figuran eglot-autoshutdown, eglot-extend-to-xref y eglot-connect-timeout 60.
Para Scala se ajusta el servidor Metals con 4 GB de heap, recolector ZGC y opciones de inicialización que activan el protocolo HTTP. Para Kotlin se emplea el servidor intellij-server en modo stdio. El bloque eglot-workspace-configuration actúa como un settings.json universal con parámetros específicos para Metals (inlay hints selectivos, super method lenses, highlighting semántico), Haskell (ormolu), TypeScript/JavaScript, rust-analyzer, YAML con esquemas JSON y Nix (nixfmt). El texto incluye además referencias a hooks, workarounds JSON-RPC y advice-based para casos avanzados.
