Skip to content

Support multiple SemanticTokensProvider per document selector #212650

@BoykoAlex

Description

@BoykoAlex

Currently there is very basic support for multiple semantic tokens provider for the same language. The first provider that computed some tokens is used. (See #135580). This feature was also requested in #135599 but didn't look like anything got pushed to fix it...

However, in reality, tokens from multiple semantic token providers need to be taken into account. For example Java annotations in the case of Spring can have JPQL, HQL or native SQL queries depending on annotation parameters and JARs on the classpath. Seems that best approach for such use case in Semantic Tokens. However, since JDT LS also has SemanticTokensProvider any Spring specific SemanticTokenProvider would conflict with the JDT LS provider.

Looking at https://github.com/microsoft/vscode/blob/main/src/vs/editor/common/services/semanticTokensProviderStyling.ts#L142 i have a feeling that the restriction of effectively having one token provider giving tokens can be lifted if switched to SemanticTokens[]

(cc: @martinlippert)

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature-requestRequest for new features or functionalitysemantic-tokensSemantic tokens issues

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions