Nim Language Server

Nim Language Server

nim-langMIT
307 звёзд49 форков
Официальный языковой сервер от команды Nim. Работает в двух режимах: как LSP-сервер для редакторов (VS Code, Neovim, Emacs, Sublime Text) и как MCP-сервер для AI-агентов (GitHub Copilot, Claude Code, Gemini). Сервер использует nimsuggest для статического анализа. Он понимает структуру Nim-проекта, отслеживает изменения в реальном времени и даёт полную информацию о коде: типы, символы, ошибки. Для разработчика это автодополнение и навигация без задержек. Для AI-агента — полный контекст проекта для генерации кода, поиска ошибок и рефакторинга.

Характеристики

Общее

  • СтатусСообщество
  • Разработчикnim-lang
  • ЛицензияMIT

Технологии

  • Языки
    Nim
  • Транспорт
    stdio

Описание

Возможности

  • Автодополнение: сервер предлагает идентификаторы, импорты и параметры процедур с учётом контекста
  • Навигация: переход к определению, поиск всех ссылок на символ, иерархия вызовов
  • Диагностика: подсветка ошибок и предупреждений компилятора в реальном времени, без полной сборки проекта
  • Информация о коде: всплывающие подсказки с типом, сигнатурой и документацией
  • MCP-режим: AI-агенты запрашивают структуру файла, находят символы, получают диагностику и контекст для рефакторинга
  • Работа с проектами: поддержка корня проекта, всех модулей и внешних зависимостей
  • Поддержка мультикорневых рабочих областей (multi-root workspaces)
  • Автоматика: сервер сам отслеживает изменения в файлах, не требует ручного сохранения
  • Установка: одна команда nimble install -g nimlangserver
  • Совместимость: работает с любым LSP-редактором и MCP-клиентом
  • Лицензия: MIT, открытый исходный код

Как подключить

Установка

nimble install -g nimlangserver

Требуется Nimble 0.16.1+ и Nim 1.6+ с поддержкой nimsuggest --v3.

Конфигурация MCP

Добавьте сервер в настройки вашего MCP-клиента. Пример для Claude Desktop:

{ "mcpServers": { "nim-lsp": { "command": "nimlangserver", "args": [] } } }

Убедитесь, что nimlangserver доступен в PATH, или укажите полный путь к исполняемому файлу. В некоторых окружениях может потребоваться флаг --mcp.

Интеграция с редактором

Сервер поддерживает протокол LSP. Установите расширение для вашего редактора (например, Nim для VS Code) и укажите путь к nimlangserver.

Примеры запросов

  • «Найди все ошибки компиляции в проекте и покажи их. Для каждой ошибки предложи исправление»
  • «Покажи мне структуру файла main.nim: все процедуры, типы и переменные верхнего уровня»
  • «Где в проекте используется функция parseConfig? Покажи полный список мест вызова»
  • «Объясни, что делает процедура handleRequest. Добавь документацию в стиле Nim-документации»
  • «Напиши тест для функции calculateSum, используя стандартный модуль unittest»
  • «Проанализируй файл app.nim и приведи его стиль к официальным стандартам оформления кода»

Технические детали

  • Разработчик: nim-lang
  • Звёзды на GitHub: 307
  • Язык реализации: Nim
  • Транспорт: stdio
  • Лицензия: MIT
  • Совместимые клиенты: Claude Desktop, VS Code, Neovim, Emacs, GitHub Copilot, Gemini
  • Зависимости: Nimble (0.16.1+), Nim (1.6+), nimsuggest

Поделиться