# LSP

Запитує сервери Language Server Protocol (LSP) для інтелектуального аналізу коду — визначення, посилання, спливаючі підказки (hover), символи, реалізації та ієрархію викликів. Точніше за текстовий пошук, бо розуміє код семантично.

## Коли використовувати

- Перейти до визначення символу (`goToDefinition`) або знайти кожне посилання (`findReferences`)
- Прочитати сигнатури типів / документацію символу (`hover`)
- Перелічити символи в одному файлі (`documentSymbol`) або шукати їх по всьому проєкту (`workspaceSymbol`)
- Знайти реалізації інтерфейсу чи абстрактного методу (`goToImplementation`)
- Пройти ієрархію викликів функції (`prepareCallHierarchy`, `incomingCalls`, `outgoingCalls`)

## Параметри

- `operation` (string, обовʼязковий): одна з операцій, перелічених вище.
- `filePath` (string, обовʼязковий): файл, над яким виконувати операцію.
- `line` (number, обовʼязковий): номер рядка, що відлічується від 1, як показано в редакторі.
- `character` (number, обовʼязковий): зсув символу, що відлічується від 1, як показано в редакторі.

## Примітки

- Потребує налаштованого сервера LSP для цього типу файлу; інакше виклик повертає помилку.
- Рядок і символ відлічуються від 1 (координати редактора), а не від 0.
- Віддавайте перевагу LSP перед `Grep`, коли вам потрібна семантична навігація (справжнє визначення/посилання), а не текстовий збіг.

## Повʼязані поняття

- Доповнює `Read` та `Edit` під час навігації по коду та його зміни.
