use cpp_code_analysis::DeclKind;
use lsp_types::SymbolKind;
pub fn symbol_kind(kind: DeclKind) -> SymbolKind {
match kind {
DeclKind::Type => SymbolKind::CLASS,
DeclKind::Function => SymbolKind::FUNCTION,
DeclKind::Variable => SymbolKind::VARIABLE,
DeclKind::Namespace => SymbolKind::MODULE,
DeclKind::MacroLike => SymbolKind::CONSTANT,
DeclKind::Other => SymbolKind::OBJECT,
}
}
#[cfg(test)]
mod tests {
use super::symbol_kind;
use cpp_code_analysis::DeclKind;
use lsp_types::SymbolKind;
#[test]
fn every_declaration_kind_has_an_icon() {
assert_eq!(symbol_kind(DeclKind::Type), SymbolKind::CLASS);
assert_eq!(symbol_kind(DeclKind::Function), SymbolKind::FUNCTION);
assert_eq!(symbol_kind(DeclKind::Variable), SymbolKind::VARIABLE);
assert_eq!(symbol_kind(DeclKind::Namespace), SymbolKind::MODULE);
assert_eq!(symbol_kind(DeclKind::MacroLike), SymbolKind::CONSTANT);
assert_eq!(symbol_kind(DeclKind::Other), SymbolKind::OBJECT);
}
}