summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/language_server/gdscript_language_protocol.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-10-09 08:35:05 +0200
committerGitHub <noreply@github.com>2019-10-09 08:35:05 +0200
commit55ef6a0f254b965c0db389c8bbd876160a5dab1c (patch)
tree48b7bb81656930c937545834cd8779973226145f /modules/gdscript/language_server/gdscript_language_protocol.cpp
parenta39aeade5b86b5a95bd3b7555a8c32b7aec9d6bd (diff)
parent1ab34bc3c21fc8a75060c2e79e281fcba6fea64e (diff)
downloadredot-engine-55ef6a0f254b965c0db389c8bbd876160a5dab1c.tar.gz
Merge pull request #32671 from GodotExplorer/lsp-send-godot-class-tree
lsp: Send godot class tree to clients
Diffstat (limited to 'modules/gdscript/language_server/gdscript_language_protocol.cpp')
-rw-r--r--modules/gdscript/language_server/gdscript_language_protocol.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp
index ae2aaf6aee..90646f73ba 100644
--- a/modules/gdscript/language_server/gdscript_language_protocol.cpp
+++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp
@@ -134,6 +134,22 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) {
}
void GDScriptLanguageProtocol::initialized(const Variant &p_params) {
+
+ lsp::GodotCapabilities capabilities;
+
+ DocData *doc = EditorHelp::get_doc_data();
+ for (Map<String, DocData::ClassDoc>::Element *E = doc->class_list.front(); E; E = E->next()) {
+
+ lsp::GodotNativeClassInfo gdclass;
+ gdclass.name = E->get().name;
+ gdclass.class_doc = &(E->get());
+ if (ClassDB::ClassInfo *ptr = ClassDB::classes.getptr(StringName(E->get().name))) {
+ gdclass.class_info = ptr;
+ }
+ capabilities.native_classes.push_back(gdclass);
+ }
+
+ notify_client("gdscript/capabilities", capabilities.to_json());
}
void GDScriptLanguageProtocol::poll() {