Introducing minlsp

Published: (March 28, 2026 at 02:32 AM EDT)
2 min read
Source: Dev.to

Source: Dev.to

What is minlsp?

minlsp provides IDE‑like features for Nim code by leveraging ctags for fast and accurate symbol indexing. Unlike traditional LSP servers that require complex AST analysis, I built minlsp to use a tag‑based approach for quick symbol lookup and navigation.

By using ntagger to extract symbols directly, I’ve created a server that prioritizes speed and low memory overhead without sacrificing the features we use most.

Key Features

  • Lightning Fast: Symbol identification and navigation are nearly instant.
  • Low Resource Footprint: It stays out of your way and won’t spin up your fans just because you opened a file.
  • Essential IDE Support: Includes code completion, hover info, go to definition, find references, signature help, and document symbols.
  • Macro‑Resilient: It doesn’t get “stuck” on complex macros or templates because it doesn’t need to expand them to find symbols.

Limitations & Trade‑offs

To keep minlsp lightweight, I’ve made some intentional design choices:

  • No Semantic Analysis: It doesn’t perform type‑checking or real‑time error reporting (diagnostics).
  • Scoped References: “Find References” currently searches through open files rather than the full workspace.
  • No Refactoring: Features like “Rename” or automatic code formatting are not currently supported.

Choosing the Right Tool

If you need full‑scale compiler integration and deep refactoring, nimlangserver remains the standard. But if you want a responsive, “no‑lag” workflow—especially in massive codebases or macro‑dense projects where other servers choke—minlsp offers a snappier, more stable alternative.

The project is under active development. If you’ve been frustrated by LSP lag, I’d love for you to give it a try.

0 views
Back to Blog

Related posts

Read more »