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;
|
||||
@@ -343,20 +348,32 @@ Error GDScriptWorkspace::initialize() {
|
||||
class_symbol.children.push_back(symbol);
|
||||
}
|
||||
|
||||
Vector<DocData::MethodDoc> methods_signals;
|
||||
methods_signals.append_array(class_data.constructors);
|
||||
methods_signals.append_array(class_data.methods);
|
||||
methods_signals.append_array(class_data.operators);
|
||||
const int signal_start_idx = methods_signals.size();
|
||||
methods_signals.append_array(class_data.signals);
|
||||
Vector<DocData::MethodDoc> method_likes;
|
||||
method_likes.append_array(class_data.methods);
|
||||
method_likes.append_array(class_data.annotations);
|
||||
const int constructors_start_idx = method_likes.size();
|
||||
method_likes.append_array(class_data.constructors);
|
||||
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++) {
|
||||
const DocData::MethodDoc &data = methods_signals[i];
|
||||
for (int i = 0; i < method_likes.size(); i++) {
|
||||
const DocData::MethodDoc &data = method_likes[i];
|
||||
|
||||
LSP::DocumentSymbol symbol;
|
||||
symbol.name = data.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 = "";
|
||||
bool arg_default_value_started = false;
|
||||
|
||||
Reference in New Issue
Block a user