Контекст
LSP 3.18 добавил клиентскую возможность перечислять свойства, которые клиент готов резолвить для code lens (textDocument.codeLens.resolveSupport.properties).
Из changelog 3.18: "Client capability to enumerate properties that can be resolved for code lenses."
Сервер уже использует ленивый codeLens/resolve (resolveProvider: true). Учёт resolveSupport позволяет аккуратнее распределять, какие свойства отдавать сразу, а какие — откладывать на resolve, и не полагаться на резолв там, где клиент его не поддерживает.
Что сделать
- Считывать
textDocument.codeLens.resolveSupport из клиентских возможностей в CodeLensProvider (через ClientCapabilitiesHolder).
- Если клиент не заявляет резолв нужных свойств — отдавать их сразу в первичном ответе
textDocument/codeLens, не откладывая на codeLens/resolve.
Где смотреть
src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProvider.java
ClientCapabilitiesHolder
Критерии приёмки
Примечание
Свериться с моделью lsp4j 1.0.0 (CodeLensCapabilities/resolveSupport). Объём небольшой.
Контекст
LSP 3.18 добавил клиентскую возможность перечислять свойства, которые клиент готов резолвить для code lens (
textDocument.codeLens.resolveSupport.properties).Сервер уже использует ленивый
codeLens/resolve(resolveProvider: true). УчётresolveSupportпозволяет аккуратнее распределять, какие свойства отдавать сразу, а какие — откладывать на resolve, и не полагаться на резолв там, где клиент его не поддерживает.Что сделать
textDocument.codeLens.resolveSupportиз клиентских возможностей вCodeLensProvider(черезClientCapabilitiesHolder).textDocument/codeLens, не откладывая наcodeLens/resolve.Где смотреть
src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/CodeLensProvider.javaClientCapabilitiesHolderКритерии приёмки
resolveSupport.resolveSupportкоманда/данные отдаются сразу.Примечание
Свериться с моделью lsp4j 1.0.0 (
CodeLensCapabilities/resolveSupport). Объём небольшой.