Перейти к основному содержанию

Claude Code LSP: установка плагина и почему ничего не изменилось

LSP в Claude Code включает не флаг, а плагин code intelligence и отдельно установленный языковой сервер. Команды для 13 языков и что делать без диагностики.

LaoZhang AI TeamОпубликовано15 мин чтения
Содержание
Схема подключения LSP в Claude Code: языковой сервер, плагин code intelligence и строка диагностики в терминале

LSP в Claude Code сейчас подключается двумя частями: языковым сервером, который вы ставите сами, и официальным плагином code intelligence, который говорит Claude Code, какой сервер запускать для каких файлов. Никакого флага включать не нужно. Для TypeScript это выглядит так: в терминале npm install -g typescript-language-server typescript, затем в сессии Claude Code /plugin install typescript-lsp@claude-plugins-official, новая сессия и просьба к Claude внести и исправить ошибку типов. Если в диалоге появилась строка Found 1 new diagnostic issue in 1 file (ctrl+o to expand), сервер работает. Для Python, Go, Rust, Java, C# и других языков меняются только имя плагина и команда установки сервера, таблица ниже.

Плагин даёт Claude две разные вещи. Диагностика (ошибки типов, неразрешённые импорты) приходит сама после каждой правки файла, а инструмент LSP для перехода к определению и поиска ссылок Claude может вызвать, а может и не вызвать, предпочтя обычный поиск по тексту. Поэтому «ничего не изменилось» чаще всего значит одно из трёх: сервер не запустился (нет бинарника в PATH, нет зависимости в проекте), установка споткнулась о незарегистрированный официальный маркетплейс, или сервер работает, но Claude просто не пользуется навигацией.

Команды и выводы ниже взяты из запусков 2 ноября 2026 года на Claude Code 2.1.316 под macOS: чистая папка конфигурации, локальный mock-эндпоинт вместо модели, TypeScript-проект из трёх файлов. На чистой конфигурации установка из оболочки упала с ошибкой Plugin "typescript-lsp" not found in marketplace "claude-plugins-official", и помогло только добавление официального маркетплейса: claude plugin marketplace add anthropics/claude-plugins-official (в сессии то же самое делает /plugin marketplace add). Исключения два: в облачных сессиях Claude Code языковые серверы не запускает вообще, а в VS Code ошибки из панели Problems Claude читает другим механизмом.

Что даёт LSP в Claude Code: диагностика после правок и инструмент навигации

Плагин code intelligence подключает Claude Code к языковому серверу одного языка по Language Server Protocol, и с ним Claude получает два канала. Первый — диагностика: после каждой записи или правки файла, который обслуживает сервер, Claude видит ошибки и предупреждения, которые сам же внёс, без запуска компилятора. Второй — инструмент LSP только для чтения: переход к определению, поиск ссылок, подсказка типа, символы файла и проекта, цепочки вызовов. Так описано на официальной странице Code intelligence plugins в документации Claude Code.

Путаница почти всегда начинается с того, что эти две части считают одной. Языковой сервер — это отдельная программа (typescript-language-server, pyright-langserver, gopls), которая реально разбирает код. Плагин — это только конфигурация: команда запуска сервера и список расширений файлов. Внутри официального плагина нет ни сервера, ни даже файла настроек: в маркетплейсе claude-plugins-official (состояние на 30 октября 2026 года) папка плагина содержит README и LICENSE, а сама команда запуска записана в общем файле маркетплейса. Поставили плагин без сервера — сервер не запустится, а модель об этом даже не узнает; поставили сервер без плагина — Claude Code его не увидит.

Инструмент LSP не требует подтверждения прав, но на него действуют те же правила путей Read(...), что и на чтение файлов. Появился он в Claude Code 2.0.74 от 19 декабря 2025 года, отсюда и новости про «нативную поддержку LSP» в конце 2025-го.

Как установить LSP в Claude Code: сервер, затем плагин, затем проверка

Порядок из официальной документации важен: сначала бинарник языкового сервера, потом плагин, потом проверка, что сервер стартует. Сам Claude Code должен быть уже установлен; если нет, начните с инструкции Как установить Claude Code на Windows, Mac и Linux: Git не нужен.

  1. Установите языковой сервер своего языка командой из таблицы в следующем разделе. Затем убедитесь, что он виден в той оболочке, из которой вы запускаете claude: which typescript-language-server в macOS и Linux или Get-Command typescript-language-server в PowerShell.

  2. Запустите claude и введите в сессии команду установки плагина, подставив имя для своего языка:

    /plugin install typescript-lsp@claude-plugins-official

    В расширении VS Code и настольном приложении вместо этой команды используется их собственный экран плагинов. Если установка завершилась ошибкой про маркетплейс claude-plugins-official, сначала добавьте маркетплейс (раздел об этой ошибке ниже).

  3. В сессии /plugin install открывает карточку плагина, где нужно выбрать область установки: для себя во всех проектах, для всех участников репозитория или только для себя в этом репозитории. Сообщение после установки говорит, активен ли плагин сразу или нужен /reload-plugins. Надёжнее всего начать новую сессию: обычный /reload-plugins, который добавил бы инструмент LSP, ничего не перезагружает, а только предупреждает и просит /reload-plugins --force.

  4. Попросите Claude внести в файл этого языка ошибку типов, а потом исправить её. Сервер запускается не позже первой правки файла с подходящим расширением, поэтому до правки проверять нечего.

  5. Найдите в диалоге строку Found N new diagnostic issues in M files (ctrl+o to expand). Есть строка — сервер работает, Ctrl+O раскрывает сами ошибки. Нет строки — откройте /plugin, вкладку Errors, и переходите к таблице неполадок ниже.

Окно /plugin install, вкладки установленных плагинов и области установки подробнее разобраны в статье Лучшие скиллы для Claude Code: что выбрать первым и как установить.

Какой плагин и языковой сервер нужен для вашего языка

В официальном маркетплейсе 13 плагинов code intelligence. Все их поддерживает Anthropic, кроме liquid-lsp, который поддерживает Shopify. Команды установки серверов ниже взяты из README каждого плагина (состояние маркетплейса на 30 октября 2026 года); в столбце «Сервер» — имя бинарника, который должен оказаться в PATH.

ЯзыкПлагинСерверКак установить сервер
TypeScript, JavaScripttypescript-lsptypescript-language-servernpm install -g typescript-language-server typescript
Pythonpyright-lsppyright-langservernpm install -g pyright, pip install pyright или pipx install pyright
Gogopls-lspgoplsgo install golang.org/x/tools/gopls@latest
Rustrust-analyzer-lsprust-analyzerrustup component add rust-analyzer (или brew, apt, pacman)
Javajdtls-lspjdtlsbrew install jdtls, нужен JDK 17+; в Linux обычно вручную, с обёрткой jdtls в PATH
Kotlinkotlin-lspkotlin-lspbrew install JetBrains/utils/kotlin-lsp
C#csharp-lspcsharp-lsdotnet tool install --global csharp-ls, нужен .NET SDK 6.0+
C, C++clangd-lspclangdbrew install llvm, sudo apt install clangd или winget install LLVM.LLVM
PHPphp-lspintelephensenpm install -g intelephense
Rubyruby-lspruby-lspgem install ruby-lsp
Lualua-lsplua-language-serverbrew install lua-language-server (или snap, pacman, dnf)
Swiftswift-lspsourcekit-lspВходит в набор Swift: Xcode или brew install swift, в Linux с swift.org
Liquidliquid-lspshopifyShopify CLI

Имя для команды установки всегда собирается как имя-плагина@claude-plugins-official, например /plugin install pyright-lsp@claude-plugins-official. Сервер для TypeScript устанавливается вместе с пакетом typescript не случайно: без него сервер не стартует (подробности в таблице неполадок). Если вашего языка в таблице нет, сервер всё равно можно подключить своим плагином, об этом ближе к концу.

Нужен ли ENABLE_LSP_TOOL: на Claude Code 2.1.316 флаг ни на что не влияет

Нет, переменная ENABLE_LSP_TOOL больше не нужна, и прописывать её в settings.json бессмысленно. В проверке 2 ноября 2026 года на Claude Code 2.1.316 флаг не изменил поведение ни в одну сторону: с установленным плагином и ENABLE_LSP_TOOL=0 инструмент LSP по-прежнему предлагался модели и диагностика приходила, а с отключённым плагином и ENABLE_LSP_TOOL=1 инструмента не было, и в журнале значилось Total LSP servers loaded: 0. Включает LSP только плагин.

Совет с флагом остался от недокументированного обходного пути начала 2026 года: в справочнике переменных окружения Claude Code его нет. Скотт Спенс, который в марте 2026 года сам советовал этот флаг, в продолжении Revisiting LSP in Claude Code от 10 октября 2026 года пишет, что убрал флаг и LSP продолжил работать на 2.1.296. Если ваша инструкция начинается с "env": {"ENABLE_LSP_TOOL": "1"}, пропустите этот шаг и сразу ставьте сервер и плагин.

Ошибка «not found in marketplace»: добавьте официальный маркетплейс

Если установка плагина падает с ошибкой про маркетплейс claude-plugins-official, значит, официальный маркетплейс в вашей конфигурации ещё не зарегистрирован, и исправляется это одной командой:

/plugin marketplace add anthropics/claude-plugins-official

Из оболочки то же самое делает claude plugin marketplace add anthropics/claude-plugins-official. В ответ должно прийти Successfully added marketplace: claude-plugins-official, после чего установка плагина проходит.

Ошибка выглядит по-разному. Документация называет текст Marketplace "claude-plugins-official" not found, а на чистой конфигурации Claude Code 2.1.316 2 ноября 2026 года команда claude plugin install typescript-lsp@claude-plugins-official вывела другое: Plugin "typescript-lsp" not found in marketplace "claude-plugins-official". Your local copy may be out of date — try claude plugin marketplace update claude-plugins-official. Предложенный в ней marketplace update тоже упал, с ответом Marketplace 'claude-plugins-official' not found. Available marketplaces: anthropic-plugin-directory: обновлять было нечего, потому что маркетплейса не было вовсе. Сработал только marketplace add.

Причина описана в официальном разделе устранения неполадок плагинов Claude Code: официальный маркетплейс регистрируется при первом запуске интерактивной сессии в терминале. Его ещё нет, если вы пользовались только расширением VS Code; его не будет, если источник запрещён политикой организации или задана CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL, или если прошлая попытка не удалась и Claude Code ждёт повтора. Команды claude plugin из оболочки сами его не регистрируют никогда, поэтому ошибка особенно часто встречается в скриптах и CI.

Как понять, что LSP работает: что именно получает Claude

Надёжный признак один: строка Found N new diagnostic issues in M files (ctrl+o to expand) после правки, в которой Claude внёс ошибку. В проверке 2 ноября 2026 года она появилась не под строкой записи файла, как пишет документация, а под следующей строкой инструмента («Ran 1 shell command»): диагностика доставляется асинхронно, поэтому ищите её на шаг ниже.

Путь диагностики LSP в Claude Code: правка файла, проверка языковым сервером, блок new-diagnostics для модели на следующем ходу и строка Found 1 new diagnostic issue под следующей строкой инструмента

Что видит модель, удалось перехватить дословно. Результат инструмента Write ошибок не содержал. Сервер ответил на инициализацию за 69 мс и прислал диагностику примерно через 0,6 секунды после открытия файла, а модель получила её на следующем ходу отдельным системным блоком:

<new-diagnostics>The following new diagnostic issues were detected:

checkout.ts:
  ✘ [Line 3:43] Argument of type 'string' is not assignable to parameter of type 'number'. [2345] (typescript)</new-diagnostics>

После исправления сервер вернул ноль ошибок, и Claude Code ничего не передал: отдельного сообщения «исправлено» не бывает. Но и отсутствие диагностики сразу после правки ещё не значит, что файл чист: Скотт Спенс описывает, что свежий сервер, который ещё загружает проект, может пропустить ошибку, а о правках через оболочку диагностика не приходит вовсе (подробнее в разделе про grep ниже). Инструмент LSP при этом загружается отложенно: после первой записи или первого чтения .ts-файла модель получает уведомление, что инструмент доступен через поиск инструментов, а его описание приходит, только когда модель сама его запросит. Отсюда практическое следствие: диагностика работает без участия модели, а навигацию модель должна выбрать сама.

Когда она её выбирает, ответы выглядят так (тот же проект, после прогрева сервера): переход к определению — Defined in src/price.ts:1:17, поиск ссылок — Found 5 references across 3 files, подсказка — (alias) priceWithTax(amount: number, rate: number): number. Для файла, который не обслуживает ни один сервер, приходит No LSP server available for file type: .md.

Установили LSP, но ничего не изменилось: симптом, причина, решение

Сначала посмотрите на вкладку Errors в /plugin, а если там пусто, запустите claude --debug: часть сбоев видна только в журнале, а модель в этих случаях не получает ни диагностики, ни текста ошибки. В проверке 2 ноября 2026 года и при отсутствии бинарника, и при отсутствии typescript в проекте модели по-прежнему предлагался инструмент LSP, так что сам факт его появления ничего не доказывает.

Где искать причину, если LSP в Claude Code ничего не изменил: вкладка Errors, журнал claude --debug, ответ установки и статус плагина, с текстом ошибки и решением для каждого случая

СимптомГде видноПричинаРешение
Строки диагностики нет никогдаВкладка Errors: Executable not found in $PATH: "typescript-language-server"; в журнале failed to startБинарника нет в PATH оболочки, из которой запущен claudeУстановите сервер, проверьте which; если каталог не в PATH, начните новую сессию из оболочки, где он есть
TypeScript: диагностики нет, хотя сервер установленЖурнал claude --debug: Could not find a valid TypeScript installationВ проекте нет пакета typescript, сервер выходит при инициализацииnpm install -D typescript в проекте или глобальная команда из README, которая ставит оба пакета
Плагин не ставитсяОтвет на /plugin install или claude plugin installОфициальный маркетплейс не зарегистрирован/plugin marketplace add anthropics/claude-plugins-official (раздел выше)
Навигация отвечает ошибкойРезультат вызова: server is starting (в запуске 2 ноября 2026 года, где mock отвечал за миллисекунды, быстрее реальной модели)Вызов пришёл до того, как сервер закончил запускПовторить вызов через несколько секунд; на больших проектах окно дольше
Первый поиск ссылок находит только определениеFound 1 reference при реальных пятиСервер TypeScript отвечает по недогруженному проектуОбход useSyntaxServer (следующий раздел)
Нет ни диагностики, ни навигации в облакеСессия Claude Code в вебе или claude --cloudВ облачных сессиях серверы плагинов не запускаютсяРаботать локально в терминале
Плагин стоит, но нет ни инструмента LSP, ни диагностикиВкладка Installed в /plugin или claude plugin list: статус disabledОтключённый плагин не загружает сервер, и окно рекомендации для него тоже не появится/plugin enable typescript-lsp@claude-plugins-official (из оболочки claude plugin enable typescript-lsp@claude-plugins-official), затем новая сессия
Ошибки на импорты, которые на самом деле в порядкеСтроки диагностики в монорепозиторииЯзыковой сервер не настроен на этот workspaceНа стороне Claude Code чинить нечего; правке такие ошибки не мешают

Второй случай в проверке воспроизводился именно так: typescript-language-server 6.0.2 был в PATH, но пакета typescript в папке проекта не было, сервер завершился с сообщением Could not find a valid TypeScript installation, а при следующей правке Claude Code повторил попытку и снова получил отказ. Для других языков похожая ловушка — сервер, которому нужен JDK, .NET SDK или настроенный проект, поэтому проверяйте требования в README плагина.

Если /reload-plugins отвечает This reload adds the LSP tool или This reload removes the LSP tool, перезагрузка не выполнена: добавление или удаление инструмента сбросило бы кеш промпта, и следующее сообщение перечитало бы весь диалог, поэтому Claude Code ждёт явного /reload-plugins --force. Без лишних затрат то же даёт новая сессия. Почему это стоит денег и времени, разобрано в статье Claude Code cache miss и стоимость токенов: почему один turn внезапно дорогой, а чем облачная сессия отличается от локальной — в материале Есть ли у Claude Code веб-версия: чем отличаются облачный Web, Remote Control и локальная работа. Для поиска сломанной конфигурации пригодится и безопасный режим --safe-mode (или CLAUDE_CODE_SAFE_MODE=1), в котором языковые серверы не загружаются вместе с плагинами; флаг --bare для скриптовых запусков с -p их тоже пропускает.

Первый findReferences возвращает одну ссылку: обход useSyntaxServer

Первый поиск ссылок в новой сессии с официальным typescript-lsp часто возвращает только само определение, и лечится это одной опцией сервера TypeScript. В проверке 2 ноября 2026 года сессия начиналась с чтения src/price.ts, затем модель трижды подряд вызывала поиск ссылок на priceWithTax. Во всех трёх сессиях первый ответ был Found 1 reference: src/price.ts:1:17 при правильных пяти ссылках в трёх файлах; последовательности получились 1, 5, 5, затем 1, 1, 1 и 1, 1, 5.

Скотт Спенс в Revisiting LSP in Claude Code (10 октября 2026 года, Claude Code 2.1.296, проект на SvelteKit) получил неверный первый ответ в 18 сессиях из 19 и объясняет причину: Claude Code спрашивает раньше, чем проект загрузился, а typescript-language-server отвечает из облегчённого синтаксического сервера. По его словам, то же «сначала одна ссылка, потом все» встречается и с серверами Python. Обход — выключить синтаксический сервер в конфигурации TypeScript:

json
{
  "typescript": {
    "command": "typescript-language-server",
    "args": ["--stdio"],
    "extensionToLanguage": { ".ts": "typescript", ".tsx": "typescriptreact", ".js": "javascript", ".jsx": "javascriptreact", ".mts": "typescript", ".cts": "typescript", ".mjs": "javascript", ".cjs": "javascript" },
    "initializationOptions": { "tsserver": { "useSyntaxServer": "never" } }
  }
}

С этой опцией у Скотта первый вызов был верным в 12 сессиях из 12, первый ответ стал медленнее (около 2 секунд вместо 0,5 на его проекте), а память после загрузки снизилась примерно с 935 МБ в 4 процессах до 725 МБ в 3. Вписать опцию можно двумя путями. Первый — добавить блок initializationOptions к записи typescript в разделе lspServers файла ~/.claude/plugins/marketplaces/claude-plugins-official/.claude-plugin/marketplace.json; это быстро, но обновление маркетплейса может перезаписать файл. Второй — сделать собственный плагин с конфигурацией выше в файле .lsp.json, а официальный typescript-lsp отключить, иначе два плагина будут обслуживать одни и те же файлы. Второй путь запускался 2 ноября 2026 года: локальный плагин с этим .lsp.json, загруженный через --plugin-dir при отключённом официальном, в двух сессиях из двух вернул 5, 5, 5 ссылок. Проект был из трёх файлов, так что сколько займёт первое ожидание на большом репозитории, эта проверка не показывает.

Окно «LSP plugin recommendation»: что выбрать

Окно с заголовком LSP plugin recommendation предлагает поставить плагин, когда бинарник языкового сервера уже есть в PATH, а плагина для него нет, и если вы и так собирались подключить LSP, выбирайте Yes, install. Окно появляется после того, как Claude отредактирует файл с подходящим расширением, не чаще одного раза за сессию, с приоритетом официального маркетплейса и никогда в облачной сессии. 2 ноября 2026 года окно воспроизвелось в терминале при удалённом typescript-lsp и установленном typescript-language-server сразу после записи .ts-файла; при установленном, но отключённом плагине оно не появилось.

ВариантЧто происходит
Yes, installПлагин ставится для вашей учётной записи, выводится typescript-lsp installed · restart to apply; сервер заработает в новой сессии
No, not now (или Esc)Окно закрывается, в одной из следующих сессий его предложат снова
Never for this pluginЭтот плагин больше не предлагается, рекомендации для других языков остаются
Disable all LSP recommendationsРекомендации отключаются для всех языков

Если ничего не выбрать, окно закроется само через 30 секунд и это засчитается как пропуск; счёт идёт между сессиями, и после пяти пропусков рекомендации отключаются так же, как при последнем варианте. Чтобы вернуть их, удалите из ~/.claude.json ключи lspRecommendationDisabled и lspRecommendationIgnoredCount, а чтобы снова предложить один плагин, уберите его name@marketplace из списка lspRecommendationNeverPlugins.

Язык без официального плагина: свой .lsp.json

Для языка, которого нет в таблице, языковой сервер подключается собственным плагином с файлом .lsp.json, где указаны команда сервера и расширения файлов. Порядок такой:

  1. Установите языковой сервер и проверьте, что он в PATH.
  2. Создайте папку плагина с манифестом .claude-plugin/plugin.json (обязательно только поле name; version и description можно добавить по желанию) и файлом .lsp.json в корне плагина.
  3. Запустите Claude Code с --plugin-dir путь/к/плагину и проверьте в claude --debug, что сервер загрузился, или опубликуйте плагин в своём маркетплейсе.

Пример для YAML, на котором 2 ноября 2026 года проверялась загрузка конфигурации:

json
{
  "yaml": {
    "command": "yaml-language-server",
    "args": ["--stdio"],
    "extensionToLanguage": { ".yaml": "yaml", ".yml": "yaml" }
  }
}

Обязательных полей два: command (без пробелов; аргументы идут в args) и extensionToLanguage, где каждый ключ начинается с точки. Необязательные описаны в справочнике плагинов Claude Code, раздел lspServers: env, initializationOptions, settings, workspaceFolder, startupTimeout, requestTimeout (по умолчанию 60 000 мс, с версии 2.1.288), restartOnCrash, maxRestarts, diagnostics и другие. Объект строгий: любой лишний ключ делает конфигурацию недействительной.

Ловушка в том, что claude plugin validate содержимое .lsp.json не проверяет. В проверке он ответил «Validation passed with warnings» и для правильного файла, и для трёх сломанных: с лишним ключом extensions, с пробелом в command и с расширением без точки. Ошибка проявилась только при загрузке через --plugin-dir, и только в журнале: LSP config validation failed for .lsp.json in plugin yaml-lsp-local с кодом unrecognized_keys, после чего сервер просто не загрузился. Правильный файл дал Loaded 1 LSP server(s) from plugin: yaml-lsp-local. Сам yaml-language-server при этом не ставился, так что проверялась только загрузка конфигурации. Готовые LSP-плагины есть и в сторонних маркетплейсах; что смотреть перед установкой чужого плагина, разобрано в статье Моды в Claude Code: установка, проверка доступа и первый мод.

Сколько памяти занимает языковой сервер и когда выключить плагин

Языковой сервер — отдельный процесс, и на больших проектах он заметно расходует память: по документации Claude Code, rust-analyzer и pyright индексируют весь проект, и память растёт, пока индексация идёт. Если машина начинает тормозить, выключите плагин командой /plugin disable rust-analyzer-lsp (или с именем своего плагина): Claude вернётся к встроенному поиску по тексту, а диагностику вы будете получать от сборки и тестов, как раньше.

Для ориентира по TypeScript: у Скотта Спенса сервер на небольшом проекте занимал около 935 МБ в 4 процессах, а с выключенным синтаксическим сервером — около 725 МБ в 3. В Linux и WSL с заданным CLAUDE_CODE_TOOL_MEMORY_LIMIT Claude Code может учитывать языковые серверы в общем лимите памяти инструментов; исключить их можно переменной CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE=lsp (Claude Code 2.1.246 и новее).

Claude Code в VS Code: нужен ли плагин LSP

Если вы работаете в расширении VS Code, Claude уже может читать ошибки из панели Problems, но это другой механизм, и плагин его не заменяет и не дублирует. В панели чата Claude читает Problems через встроенный сервер claude-vscode (инструмент mcp__claude-vscode__getDiagnostics, с версии 2.1.285), а CLI, подключённый к VS Code, — через mcp__ide__getDiagnostics. Это ошибки языкового сервера самого редактора, и Claude читает их, только когда сам решит спросить.

Плагин даёт то, чего нет в этой схеме: диагностику, которая приходит после каждой правки без запроса, и инструмент навигации LSP. Если вам нужны именно они, плагин придётся поставить и при работе в VS Code, через экран плагинов расширения; если вы правите код в основном из терминала, плагин и есть основной способ.

Будет ли Claude всё равно искать через grep

Да, часто будет: установленный плагин делает навигацию доступной, но не обязательной, и модель нередко выбирает привычный поиск по тексту. Скотт Спенс посчитал это по своей истории: примерно за 650 сессий с конца февраля по апрель 2026 года Claude Code сделал 32 вызова LSP в 15 сессиях. В его тесте от 10 октября 2026 года с явным правилом в CLAUDE.md Claude брал LSP во всех 12 запросах про символы, без правила — примерно в половине и ни разу при рефакторинге. Но в сравнении из 54 сессий (только grep, LSP вместе с grep, только LSP) поиск через grep ни разу не ошибся, а для поиска мест использования оказался самым быстрым и дешёвым из трёх вариантов; три одноимённые функции get_post_tags ему не помешали. Поиск ссылок через LSP возвращает только файл, строку и столбец, поэтому модели приходилось дочитывать по 3–6 файлов на ссылку. Сильной стороной LSP у Скотта оказалась подсказка типов (hover).

Поэтому Скотт отказался от своего мартовского правила «LSP вместо grep» и переписал CLAUDE.md: определения и места использования искать через grep, hover из LSP брать, когда важен точный тип, и не считать результат поиска ссылок полным списком. Его проект небольшой, и на огромной кодовой базе с тысячами совпадений картина может быть другой, но заставлять Claude пользоваться навигацией ради неё самой его данные не советуют. Незаменимой остаётся диагностика после правок: её grep не даёт. И у неё есть свои пределы, которые Скотт тоже описал: ошибки приходят на следующем ходу (если правка была последним действием, ошибка может так и остаться незамеченной), а о правках, сделанных через оболочку, диагностика не приходит; в открытом issue Claude Code то же описано для git checkout и форматтеров. Отсюда последнее правило из его CLAUDE.md — перед тем как сообщить о готовности, запускать проверку типов. Где такие правила лучше держать — в CLAUDE.md, хуке или скилле, — разобрано в статье Claude Code: чем отличаются hooks, skills и слэш-команды. LSP и MCP при этом не конкуренты: LSP-плагин подключает языковой сервер, а MCP-серверы дают Claude внешние инструменты и данные; с чего начать со вторыми, есть в подборке Лучшие MCP для Claude Code, которые стоит подключать первыми в 2026 году.

Claude Code LSP: другие вопросы

Работает ли LSP в Claude Code на Windows? Да. Версия 2.1.74 от 12 марта 2026 года исправила ошибку, из-за которой языковые серверы на Windows не работали из-за неверно сформированных адресов файлов. Проверять, виден ли бинарник, в PowerShell нужно командой Get-Command, а для C и C++ в README плагина clangd-lsp указан winget install LLVM.LLVM.

Сколько ждёт Claude Code ответа языкового сервера? С версии 2.1.288 (2 октября 2026 года) запрос к серверу прерывается через 60 секунд; значение меняется полем requestTimeout в конфигурации. Для медленно стартующих серверов есть startupTimeout: в официальных плагинах для Java и Kotlin он выставлен на 120 000 мс.

Можно ли поставить плагин LSP только для одного проекта? Да, при установке через /plugin install выберите область «Install for you, in this repo only» (запись попадёт в .claude/settings.local.json) или «Install for all collaborators on this repository» (запись в .claude/settings.json, который коммитится; каждому участнику всё равно нужно один раз выполнить claude plugin install typescript-lsp@claude-plugins-official --scope project и поставить сам языковой сервер). Окно рекомендации таких вариантов не даёт и ставит плагин для учётной записи, то есть во все проекты. Подробности — на официальной странице Install and manage plugins в документации Claude Code.

Источники5

Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 2 нояб. 2026 г..

  1. 1.Code intelligence plugins в документации Claude Codecode.claude.com/docs/ru/plugins/code-intelligence
  2. 2.Revisiting LSP in Claude Code от 10 октября 2026 годаscottspence.com/posts/revisiting-lsp-in-claude-code
  3. 3.разделе устранения неполадок плагинов Claude Codecode.claude.com/docs/en/plugins/troubleshooting
  4. 4.справочнике плагинов Claude Code, раздел lspServerscode.claude.com/docs/en/plugins-reference
  5. 5.Install and manage plugins в документации Claude Codecode.claude.com/docs/en/plugins/install
Вложение документа, локальная задача и Work Cloud с разрешённым доступом к подключённому компьютеру
Инструменты разработчика

Локальные файлы ChatGPT Agent: Work, Codex и Claude Code

Для анализа одного документа достаточно загрузить его в ChatGPT. Для работы с текущей папкой и неотправленными изменениями нужен исполнитель на нужном компьютере: локальный Work, Codex или Claude Code. Чтение файла, запись, команды и управление приложением проверяются отдельно.

13 мин
Независимые поиск и CSV-экспорт в отдельных рабочих каталогах сходятся в проверенный общий кандидат
Инструменты разработчика

Мультиагентная разработка в небольшой команде: worktree, роли и слияние

Несколько ИИ-агентов помогают, когда каждый может закончить свою задачу без незавершённого кода коллеги. Нужны отдельные рабочие каталоги, согласованный интерфейс, передача результата и проверка точного коммита, который команда собирается принять.

13 мин
табло маршрутизации для локальной LLM, Claude Code, Codex и hosted coding agents
Инструменты разработчика

Локальная LLM для coding agents: когда она лучше Claude/Codex

Локальная LLM выигрывает не всегда. Она полезна для приватных, повторяемых и проверяемых циклов; архитектура, длинный контекст и командный review часто остаются задачей Claude Code, Codex или hosted agents.

8 мин
Полное сравнение Claude Code и Cursor для разработчиков в 2026 году
Инструменты разработчика

Claude Code vs Cursor в 2026: полное руководство по выбору для разработчика

Claude Code и Cursor стоят $20-$200 в месяц, но используют принципиально разные подходы к ИИ-ассистированному программированию. Claude Code работает как автономный агент в терминале (потребляя в 5,5 раз меньше токенов), а Cursor дополняет IDE подсказками в реальном времени. В этом руководстве разбираем архитектурные различия, реальные бенчмарки, анализ стоимости и фреймворк выбора по профилю разработчика — а также объясняем, почему многие senior-разработчики используют оба инструмента.

20 мин