You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
LSP: Extract annotations from EditorHelp
This commit is contained in:
@@ -156,7 +156,12 @@ const LSP::DocumentSymbol *GDScriptWorkspace::get_native_symbol(const String &p_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class_name = ClassDB::get_parent_class(class_name);
|
// Might contain pseudo classes like @GDScript that only exist in documentation.
|
||||||
|
if (ClassDB::class_exists(class_name)) {
|
||||||
|
class_name = ClassDB::get_parent_class(class_name);
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@@ -343,20 +348,32 @@ Error GDScriptWorkspace::initialize() {
|
|||||||
class_symbol.children.push_back(symbol);
|
class_symbol.children.push_back(symbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<DocData::MethodDoc> methods_signals;
|
Vector<DocData::MethodDoc> method_likes;
|
||||||
methods_signals.append_array(class_data.constructors);
|
method_likes.append_array(class_data.methods);
|
||||||
methods_signals.append_array(class_data.methods);
|
method_likes.append_array(class_data.annotations);
|
||||||
methods_signals.append_array(class_data.operators);
|
const int constructors_start_idx = method_likes.size();
|
||||||
const int signal_start_idx = methods_signals.size();
|
method_likes.append_array(class_data.constructors);
|
||||||
methods_signals.append_array(class_data.signals);
|
const int operator_start_idx = method_likes.size();
|
||||||
|
method_likes.append_array(class_data.operators);
|
||||||
|
const int signal_start_idx = method_likes.size();
|
||||||
|
method_likes.append_array(class_data.signals);
|
||||||
|
|
||||||
for (int i = 0; i < methods_signals.size(); i++) {
|
for (int i = 0; i < method_likes.size(); i++) {
|
||||||
const DocData::MethodDoc &data = methods_signals[i];
|
const DocData::MethodDoc &data = method_likes[i];
|
||||||
|
|
||||||
LSP::DocumentSymbol symbol;
|
LSP::DocumentSymbol symbol;
|
||||||
symbol.name = data.name;
|
symbol.name = data.name;
|
||||||
symbol.native_class = class_name;
|
symbol.native_class = class_name;
|
||||||
symbol.kind = i >= signal_start_idx ? LSP::SymbolKind::Event : LSP::SymbolKind::Method;
|
|
||||||
|
if (i >= signal_start_idx) {
|
||||||
|
symbol.kind = LSP::SymbolKind::Event;
|
||||||
|
} else if (i >= operator_start_idx) {
|
||||||
|
symbol.kind = LSP::SymbolKind::Operator;
|
||||||
|
} else if (i >= constructors_start_idx) {
|
||||||
|
symbol.kind = LSP::SymbolKind::Constructor;
|
||||||
|
} else {
|
||||||
|
symbol.kind = LSP::SymbolKind::Method;
|
||||||
|
}
|
||||||
|
|
||||||
String params = "";
|
String params = "";
|
||||||
bool arg_default_value_started = false;
|
bool arg_default_value_started = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user