Skip to content

feat(code-lens): учитывать client resolveSupport для CodeLens (LSP 3.18) #4155

Description

@nixel2007

Контекст

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

Критерии приёмки

  • Поведение резолва согласовано с заявленным клиентом resolveSupport.
  • Для клиентов без resolveSupport команда/данные отдаются сразу.
  • Тесты покрывают оба пути.

Примечание

Свериться с моделью lsp4j 1.0.0 (CodeLensCapabilities/resolveSupport). Объём небольшой.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions