use lsp_types::{SemanticTokenModifier, SemanticTokenType};
pub(crate) const SUPPORTED_TYPES: &[SemanticTokenType] = &[
SemanticTokenType::COMMENT,
SemanticTokenType::FUNCTION,
SemanticTokenType::KEYWORD,
SemanticTokenType::NAMESPACE,
SemanticTokenType::NUMBER,
SemanticTokenType::OPERATOR,
SemanticTokenType::PARAMETER,
SemanticTokenType::PROPERTY,
SemanticTokenType::STRING,
SemanticTokenType::STRUCT,
SemanticTokenType::TYPE,
SemanticTokenType::VARIABLE,
];
pub(crate) const SUPPORTED_MODIFIERS: &[SemanticTokenModifier] = &[
SemanticTokenModifier::DECLARATION,
SemanticTokenModifier::DEFINITION,
SemanticTokenModifier::READONLY,
];
pub(crate) fn type_index(ty: SemanticTokenType) -> u32 {
SUPPORTED_TYPES.iter().position(|it| *it == ty).unwrap() as u32
}