summaryrefslogtreecommitdiff
path: root/src/plugins/languageclient/languageclientutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/languageclient/languageclientutils.cpp')
-rw-r--r--src/plugins/languageclient/languageclientutils.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp
index 8b37ab54e5..e9889e1ef0 100644
--- a/src/plugins/languageclient/languageclientutils.cpp
+++ b/src/plugins/languageclient/languageclientutils.cpp
@@ -37,6 +37,7 @@
#include <texteditor/textdocument.h>
#include <texteditor/texteditor.h>
#include <utils/textutils.h>
+#include <utils/utilsicons.h>
#include <QFile>
#include <QTextDocument>
@@ -230,4 +231,44 @@ void updateEditorToolBar(Core::IEditor *editor)
}
}
+const QIcon symbolIcon(int type)
+{
+ using namespace Utils::CodeModelIcon;
+ static QMap<SymbolKind, QIcon> icons;
+ if (type < int(SymbolKind::FirstSymbolKind) || type > int(SymbolKind::LastSymbolKind))
+ return {};
+ auto kind = static_cast<SymbolKind>(type);
+ if (icons.contains(kind)) {
+ switch (kind) {
+ case SymbolKind::File: icons[kind] = Utils::Icons::NEWFILE.icon(); break;
+ case SymbolKind::Module: icons[kind] = iconForType(Namespace); break;
+ case SymbolKind::Namespace: icons[kind] = iconForType(Namespace); break;
+ case SymbolKind::Package: icons[kind] = iconForType(Namespace); break;
+ case SymbolKind::Class: icons[kind] = iconForType(Class); break;
+ case SymbolKind::Method: icons[kind] = iconForType(FuncPublic); break;
+ case SymbolKind::Property: icons[kind] = iconForType(Property); break;
+ case SymbolKind::Field: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Constructor: icons[kind] = iconForType(Class); break;
+ case SymbolKind::Enum: icons[kind] = iconForType(Enum); break;
+ case SymbolKind::Interface: icons[kind] = iconForType(Class); break;
+ case SymbolKind::Function: icons[kind] = iconForType(FuncPublic); break;
+ case SymbolKind::Variable: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Constant: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::String: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Number: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Boolean: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Array: icons[kind] = iconForType(VarPublic); break;
+ case SymbolKind::Object: icons[kind] = iconForType(Class); break;
+ case SymbolKind::Key: icons[kind] = iconForType(Keyword); break;
+ case SymbolKind::Null: icons[kind] = iconForType(Keyword); break;
+ case SymbolKind::EnumMember: icons[kind] = iconForType(Enumerator); break;
+ case SymbolKind::Struct: icons[kind] = iconForType(Struct); break;
+ case SymbolKind::Event: icons[kind] = iconForType(FuncPublic); break;
+ case SymbolKind::Operator: icons[kind] = iconForType(FuncPublic); break;
+ case SymbolKind::TypeParameter: icons[kind] = iconForType(VarPublic); break;
+ }
+ }
+ return icons[kind];
+}
+
} // namespace LanguageClient