Files
clice/include/LSP/SemanticTokens.h
2024-07-07 22:18:49 +08:00

54 lines
1.0 KiB
C++

#pragma once
namespace clice {
// https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_semanticTokens
// The protocol defines a set of token types and modifiers but clients are
// allowed to extend these and announce the values they support in the
// corresponding client capability.
enum class SemanticTokenTypes {
Namespace,
Type,
Class,
Enum,
Interface,
Struct,
TypeParameter,
Parameter,
Variable,
Property,
EnumMember,
Event,
Function,
Method,
Macro,
Keyword,
Modifier,
Comment,
String,
Number,
Regexp,
Operator,
Decorator // @since 3.17.0
};
enum SemanticTokenModifiers {
Declaration,
Definition,
Readonly,
Static,
Deprecated,
Abstract,
Async,
Modification,
Documentation,
DefaultLibrary
};
struct SemanticTokensLegend {
std::vector<std::string> tokenTypes;
std::vector<std::string> tokenModifiers;
};
} // namespace clice