
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