54 lines
1.0 KiB
C++
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
|