use lsp_types::SymbolKind;
pub fn symbol_kind_to_string(kind: SymbolKind) -> &'static str {
match kind {
SymbolKind::FILE => "file",
SymbolKind::MODULE => "module",
SymbolKind::NAMESPACE => "namespace",
SymbolKind::PACKAGE => "package",
SymbolKind::CLASS => "class",
SymbolKind::METHOD => "method",
SymbolKind::PROPERTY => "property",
SymbolKind::FIELD => "field",
SymbolKind::CONSTRUCTOR => "constructor",
SymbolKind::ENUM => "enum",
SymbolKind::INTERFACE => "interface",
SymbolKind::FUNCTION => "function",
SymbolKind::VARIABLE => "variable",
SymbolKind::CONSTANT => "constant",
SymbolKind::STRING => "string",
SymbolKind::NUMBER => "number",
SymbolKind::BOOLEAN => "boolean",
SymbolKind::ARRAY => "array",
SymbolKind::OBJECT => "object",
SymbolKind::KEY => "key",
SymbolKind::NULL => "null",
SymbolKind::ENUM_MEMBER => "enum_member",
SymbolKind::STRUCT => "struct",
SymbolKind::EVENT => "event",
SymbolKind::OPERATOR => "operator",
SymbolKind::TYPE_PARAMETER => "type_parameter",
_ => "unknown",
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_symbol_kind_to_string() {
assert_eq!(symbol_kind_to_string(SymbolKind::FUNCTION), "function");
assert_eq!(symbol_kind_to_string(SymbolKind::STRUCT), "struct");
assert_eq!(symbol_kind_to_string(SymbolKind::METHOD), "method");
}
}