From 7d7e2389247a1e29d3f17549e65bc64b77526138 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Tue, 16 Jan 2018 19:09:29 -0800 Subject: [PATCH] enum --- src/indexer.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/indexer.cc b/src/indexer.cc index 087c935b..c8202804 100644 --- a/src/indexer.cc +++ b/src/indexer.cc @@ -438,6 +438,7 @@ void SetVarDetail(IndexVar* var, fc.content.substr(*spell_end, *extent_end - *spell_end); } } + if (semanticContainer && semanticContainer->cursor.kind == CXCursor_EnumDecl) def.detailed_name = std::move(qualified_name); else { @@ -1286,6 +1287,12 @@ void OnIndexDeclaration(CXClientData client_data, const CXIdxDeclInfo* decl) { SetVarDetail(var, decl->cursor, decl->semanticContainer, !decl->isRedeclaration, db, param); + if (decl->entityInfo->kind == CXIdxEntity_EnumConstant) { + CXEvalResult eval = clang_Cursor_Evaluate(decl->cursor); + if (clang_EvalResult_getKind(eval) == CXEval_Int) { + var->def.hover = std::to_string(clang_EvalResult_getAsLongLong(eval)); + } + } // FIXME https://github.com/jacobdufault/cquery/issues/239 var->def.kind = GetSymbolKind(decl->entityInfo->kind);