#pragma once #include "../Basic.h" namespace clice::protocol { enum class SemanticTokenTypes : uint8_t { Number, /// extension: represent a character literal, Char, String, Operator, Keyword, Comment, /// extension: represent a preprocessor directive, /// e.g. `#include`, `#define` Directive, /// extension: represent a header file path, /// e.g. `` HeaderPath, Macro, /// extension: represent a macro parameter, /// e.g. `X` in `#define FOO(X) X` MacroParameter, Namespace, Type, Struct, /// extension: represent a union, Union, Class, /// extension: represent a field, Field, Enum, EnumMember, Variable, Function, Method, Parameter, /// extension, represent a type template parameter, /// e.g. `T` in `template class Foo {};` TypeTemplateParameter, /// extension, represent a non-type template parameter, /// e.g. `N` in `template class Foo {};` NonTypeTemplateParameter, /// extension, represent a template template parameter, /// e.g. `T` in `template