Eglot for Python Development in Emacs: Integrating python-lsp-server (pylsp) with Linters and Formatters

Eglot provides built-in LSP support in modern Emacs, giving developers a native interface for autocompletion, linting, and formatting. When paired with python-lsp-server (pylsp), creating a Python development environment comes down to managing the LSP server configuration properly. Historically, setting up this toolchain required wiring together a stack of individual utilities such as flake8 and isort. Now, ruff stands entirely apart from that legacy ecosystem by consolidating all of those separate checks into a single, high-performance Rust binary. This article demonstrates how to configure Eglot to detect and use Ruff dynamically when it is present on your system, while retaining a … Continue reading

Configuring Emacs Eglot for Better Performance and Latency

Eglot ships with Emacs as a built-in, lightweight LSP client, and its default configuration is sufficient for most projects. However, working with large codebases can cause latency. When Eglot becomes sluggish, the problem may involve work performed by Eglot and Emacs as well as the language server itself. Event logging, filesystem watching, diagnostics, completion, and other editor activity can all contribute to latency. This article covers practical changes for keeping Eglot responsive when working with large projects. Auto-shutting down idle Eglot servers This reduces resource usage when switching between multiple projects. The eglot-autoshutdown variable shuts down the LSP server after … Continue reading