#language-server-protocol
#язык-сервер-протокол
Вопрос:
Учитывая существующий набор исходных текстов программы, я хотел бы использовать сервер LSP для обработки этого исходного кода, чтобы при запуске с помощью теста, профилировщика, бенчмарка или какой-либо другой примерной программы инструментальный код генерировал базу данных информации о данном исходном коде.
Мое первое применение этой идеи будет для инструмента покрытия кода, который будет работать на многих языках и работать на уровне исходного кода, а не на промежуточном уровне.
LSP, похоже, поддерживает операции, необходимые для выполнения этой работы. Он может предоставлять информацию о местоположении исходного кода (начальную и конечную позиции файла) для многих определений, таких как класс, метод, переменная, оператор, файл, массив и т.д. (См. раздел Вид символа LSP и метод запроса рабочей области / символа.) Я успешно использовал (fwcd) языковой сервер Kotlin для получения такой информации.
Например, как только у меня будет информация об объявлении для метода или класса, как я могу использовать LSP для обхода операторов в каждом методе (или на верхнем уровне) для обработки каждого оператора, чтобы можно было добавлять предварительно подготовленные вызовы библиотеки, в зависимости от типа оператора?
Связанный с этим вопрос: существуют ли какие-либо отладчики на основе LSP, использующие эту концепцию инструментирования? Отладчики VSCode, по-видимому, не используют какой-либо другой протокол. Ссылки на эти другие протоколы были бы хороши.
Комментарии:
1. Что вы подразумеваете под «отладчиками на основе LSP»? Отладчики взаимодействуют с VSCode по другому протоколу, а не по LSP.
2. Приятно знать, спасибо.