getSemanticTokensRange method
Gets semantic tokens for a specific visible range in the document.
Implementation
Future<List<LspSemanticToken>> getSemanticTokensRange(
String filePath, {
required int startLine,
required int startCharacter,
required int endLine,
required int endCharacter,
}) async {
if (!capabilities.semanticHighlighting) return [];
if (!_serverSupportsSemanticTokensRange) {
if (!_serverSupportsSemanticTokensFull) return [];
return getSemanticTokensFull(filePath);
}
final response = await sendRequest(
method: 'textDocument/semanticTokens/range',
params: {
'textDocument': {'uri': Uri.file(filePath).toString()},
'range': {
'start': {'line': startLine, 'character': startCharacter},
'end': {'line': endLine, 'character': endCharacter},
},
},
);
final tokens = response['result']?['data'];
if (tokens is! List) return [];
return _decodeSemanticTokens(tokens);
}