LSP + AI 🔌
Що таке LSP? Це стандарт, за яким клієнт (зазвичай редактор коду, а тепер і AI) взаємодіє з “мовним сервером”.
А що таке мовний сервер? Це окремий невеликий сервіс, який розуміє код (зазвичай конкретну мову) і знає, як із ним працювати.
Чому це круто? Якщо ви створите свою мову C++ Pro Max (назва під авторським правом!!), розробникам VS Code, Neovim, JetBrains тощо не потрібно буде додавати її підтримку. Замість цього ви пишете власний сервер, який через LSP допомагає редактору:
• находити визначення функцій;
• показувати всі їх виклики;
• знаходити статичні помилки;
• перейменовувати змінні, та інше.
Виглядає це приблизно так:
Редактор > Мовний сервер: де визначена функція X (файл X.cpp, рядок 4, символ 12)?
Мовний сервер > Редактор: у файлі ABC.cpp, з (рядок 130, символ 0) до (рядок 142, символ 1).
👉 Читати більше
Тепер про AI-агентів.
Коли AI читає код проєкту, він бачить лише текст. Без LSP йому доводиться здогадуватися: де визначена функція, які в неї параметри, чи існує вона взагалі.
Наприклад, щоб знайти визначення функції, AI робить пошук по імені в усьому проєкті й серед збігів намагається знайти імплементацію. І це ще простий випадок. А якщо функція перейменована через імпорт? Так, AI впорається - але витратить значно більше токенів.
З LSP агент отримує:
• точні визначення символів і типів;
• список усіх використань функції (корисно для рефакторингу);
• діагностику в реальному часі (помилки та попередження);
• семантичний пошук замість grep.
На практиці різниця особливо помітна у великих репозиторіях. Коли контекст і так великий, AI може "ходити" по коду осмислено, а не просто читати все підряд.
Ми вже підключили LSP для JS/TS та Python. Конфігурації в більшості провайдерів дуже схожі, тому ділимося посиланням на GitHub Copilot.
👉 Відкрити посилання
Post #1575
2.18K
- 👍 10
- 🔥 2
- ❤ 1