Claude Code незаметно обновился, и теперь это не просто "машина для поиска текста"
Когда вы пишете код, задумывались ли вы о следующем:
Почему в VS Code, когда вы нажимаете Ctrl + Click, вы можете сразу перейти к определению функции? Почему, когда вы наводите курсор на функцию, вы можете увидеть полное описание параметров? Почему ваш редактор может сказать вам, где вы ошиблись, еще до запуска кода?
Вы используете эти функции каждый день и наслаждаетесь ими.
Но вы можете не знать, что все это поддерживается чем-то под названием LSP (Language Server Protocol).
Что еще более важно, Claude Code версии 2.0.74 также поддерживает LSP.
Что это значит?
Это означает, что Claude Code, наконец, превратился из "машины для поиска текста" в ИИ, который действительно понимает код.
Что такое LSP? Простыми словами
LSP — это протокол, разработанный Microsoft, цель которого проста:
Сделать функции интеллектуального кода доступными в любом редакторе.
Посмотрите:
-
Языковой сервер TypeScript можно использовать в VS Code, JetBrains и Cursor.
-
Теперь его можно использовать и в Claude Code
LSP — это то, что делает ваш редактор умнее:
-
Автоматическое завершение имен функций и параметров
-
Переход к определению
-
Поиск всех ссылок
-
Отображение документации при наведении курсора
-
Ошибки и предупреждения в реальном времени
Вы используете эти функции бесчисленное количество раз каждый день, когда пишете код.
Но вы никогда не задумывались о том, как это реализовано.
Теперь не нужно думать, просто знайте: Claude Code теперь тоже обладает этими возможностями.
Как Claude Code работал раньше?
До поддержки LSP, что Claude Code должен был делать, чтобы найти, где определена функция?
Полагаться на поиск с помощью grep.
Проще говоря, это полнотекстовый поиск, чтобы найти, где появляются символы "displayBooks".
Можно ли это использовать? Да, можно.
Модели ИИ обучены на огромном количестве кода и действительно могут многое вывести из текста.
Но в чем проблема?
Он не понимает структуру кода по-настоящему.
Это как если бы вы попросили кого-то найти "Иван Иванов", он мог бы только перелистывать телефонную книгу страница за страницей, чтобы найти эти два слова "Иван Иванов".
А когда вы ищете "Иван Иванов" на своем телефоне, вы напрямую обращаетесь к базе данных и получаете результаты за секунды.
В этом разница.
Предыдущий Claude Code: читал каждый файл и сопоставлял текст. Текущий Claude Code: напрямую спрашивает языковой сервер и точно определяет местоположение.
Разница в эффективности огромна.
Что LSP принес Claude Code?
5 основных возможностей, каждая из которых является мощным инструментом повышения эффективности:
1. goToDefinition — переход к определению
Что вы можете сделать в VS Code с помощью Ctrl+Click? Перейти непосредственно к месту определения функции.
Теперь Claude Code тоже может это делать.
Вы спрашиваете его: "Где определена функция processRequest? Используйте LSP"
Он не будет глупо искать по всем файлам.
Он напрямую спросит языковой сервер и получит ответ за секунды: имя файла, номер строки, точное местоположение.
2. findReferences — поиск всех ссылок
Это убойная функция.
Вы хотите реорганизовать функцию, но боитесь изменить ее, опасаясь, что она сломается в других местах.
Что делать?
Раньше вам приходилось заставлять Claude Code читать каждый файл, что было очень медленно.
Теперь просто спросите: "Где вызывается функция displayError? Используйте LSP"
Языковой сервер сразу же перечислит все места, где она используется.
Быстро, точно и безжалостно.
3. hover — получение документации и информации о типах
Когда вы наводите курсор в VS Code, вы можете увидеть сигнатуру функции, типы параметров и документацию.
Claude Code теперь тоже может это видеть.
Спросите его: "Какие параметры принимает функция displayBooks? Используйте LSP"
Ему не нужно гадать, он напрямую читает сигнатуру, возвращенную языковым сервером.
Особенно для динамических языков, таких как Python, раньше Claude мог только выводить типы из контекста.Теперь с LSP информация о типах видна как на ладони.
4. documentSymbol - Список всех символов файла
Хотите быстро узнать, какие классы, функции, переменные есть в файле?
Спросите Claude: "Какие символы есть в backend/index.js? Используй LSP"
Он вернет вам структурированный список, все четко и ясно.
5. workspaceSymbol - Поиск символов по всему проекту
Это еще круче.
Ищет не текст, а символы.
Хотите найти все методы, содержащие "innerHTML"?
Языковой сервер найдет их для вас, это не сопоставление строк, а настоящие символы кода.
Практика: Какие проблемы решает LSP?
Не будем говорить о теории, посмотрим на реальные примеры.
Пример 1: Отслеживание вызовов функций
Есть проект AseBook Finder, во фронтенде есть функция displayBooks.
Вы хотите узнать, где вызывается эта функция.
Что делали раньше? Claude Code grep по всему коду, можно пропустить, можно получить ложные срабатывания.
Теперь просто спросите: "Найди все ссылки на displayBooks с помощью LSP"
Результат:
-
Место определения функции
-
Место вызова после успешного fetch
-
Все остальные места, где она используется
Точно, быстро, без пропусков.
Пример 2: Понимание параметров функции
Вы хотите, чтобы Claude сгенерировал код, вызывающий функцию displayError.
Но вы не уверены, какие параметры принимает эта функция.
Спросите его: "Какие параметры принимает displayError? Используй LSP"
Языковой сервер сразу возвращает: принимает параметр message.
Claude это знает, и сгенерированный код не будет содержать ошибок.
Пример 3: Поиск вызовов API
Вы хотите найти, где в проекте вызывается API-интерфейс /api/recommendations.
Спросите Claude: "Найди все ссылки на /api/recommendations с помощью LSP"
Он найдет место вызова fetch, с точностью до строки.
Очень полезно для отладки проблем с API и отслеживания потока данных.
Пример 4: Предотвращение ошибок
Вы рефакторите код и случайно опечатались в имени переменной.
В обычном случае вам пришлось бы запустить код, чтобы обнаружить это.
Но с LSP языковой сервер проверяет код в режиме реального времени и немедленно сообщает об ошибке Claude Code.
Claude говорит вам об ошибке до того, как вы запустите код.
Как настроить? 5 шагов
Не волнуйтесь, настройка проста.
Шаг 1: Включите инструменты LSP
Добавьте строку в файл конфигурации вашей оболочки (.bashrc или .zshrc):
exportENABLE_LSP_TOOLS=1 а затем запустите source ~/.zshrc, чтобы изменения вступили в силу.
Шаг 2: Установите плагин языкового сервера
Откройте Claude Code и введите:
/plugin найдите плагин для нужного вам языка:
-
Python: выберите pyright-lsp
-
TypeScript/JavaScript: выберите vtsls или typescript-lsp
-
Go: выберите gopls
-
Rust: выберите rust-analyzer
Выберите "Install for me only" (Установить только для меня), чтобы установить.
Шаг 3: Установите двоичные файлы языкового сервера
Плагин - это только интерфейс, настоящую работу выполняет сам языковой сервер.
Python:
pip install pyright TypeScript/JavaScript:
npm install -g @vtsls/language-server typescript Go:
go install golang.org/x/tools/gopls@latest Rust:
rustup component add rust-analyzer
Шаг 4: Перезапустите Claude Codeclaude
Шаг 5: Проверка работоспособности
Введите /plugin, проверьте вкладку "Installed" (Установлено), и вы должны увидеть свой плагин.
Протестируйте:
用 LSP 找 someFunction 的所有引用 (Найти все ссылки на someFunction с помощью LSP). Если Claude Code использует инструмент find_references вместо grep, значит, все прошло успешно.
Когда использовать LSP? Когда нет?
LSP не является панацеей.
Сценарии, подходящие для LSP:
-
Крупные проекты (сотни файлов)
-
Отслеживание вызовов функций между файлами
-
Требуются точные сигнатуры функций (особенно для динамических языков)
-
Рефакторинг кода, чтобы избежать ошибок
Сценарии, не подходящие для LSP:
-
Небольшие проекты, быстрые скрипты
-
Простой текстовый поиск
-
Просто найти строку где-то
Короче говоря, используйте grep, когда он работает быстро, и LSP, когда он точен.
Инструменты служат людям, а не наоборот.
Несколько подводных камней, о которых стоит знать заранее
Подводный камень 1: Языковой сервер должен быть в PATH
Если Claude Code говорит "No LSP server available" (Нет доступного LSP-сервера), скорее всего, ваш языковой сервер установлен неправильно или его нет в PATH.
Запустите which pyright (или ваш языковой сервер) в терминале, чтобы проверить, можно ли его найти.
Подводный камень 2: После установки плагина необходимо перезагрузить
После установки нового плагина или обновления языкового сервера обязательно перезагрузите Claude Code.
Языковые серверы загружаются при запуске.
Подводный камень 3: Иногда нужно явно сказать "использовать LSP"
Если вы обнаружите, что Claude Code все еще использует grep вместо LSP, добавьте фразу "использовать LSP":
用 LSP 找 authenticateUser 的所有引用 (Найти все ссылки на authenticateUser с помощью LSP). Таким образом, он узнает, что нужно использовать языковой сервер.
Подводный камень 4: Нет визуальных подсказок
В отличие от VS Code, Claude Code не сообщает, работает ли LSP-сервер.
Нет значка в строке состояния, нет уведомлений.
Единственный способ убедиться: протестировать на практике.
В заключение
Поддержка LSP в Claude Code - это не небольшое обновление, а качественное изменение.
Раньше это был "поиск текста + AI-вывод".
Теперь это "языковой сервер + AI-понимание".
Это как если бы вы перешли от перелистывания телефонной книги к использованию поисковой системы.
Разница в эффективности огромна.
Если вы используете Claude Code для серьезного проекта, потратьте 5 минут на настройку LSP.
Эти 5 минут того стоят.
Список действий:
-
Добавьте
export ENABLE_LSP_TOOLS=1в конфигурацию вашей оболочки -
Откройте Claude Code, запустите
/plugin, чтобы установить свой языковой плагин -
Установите соответствующий двоичный файл языкового сервера
-
Перезапустите Claude Code
-
Протестируйте "用 LSP 找 XXX 的所有引用" (Найти все ссылки на XXX с помощью LSP)
После установки вы обнаружите: Оказывается, Claude Code может быть таким быстрым.





