LSP: Fix crash in find_usages_in_file by correctly resolving annotation names
This commit is contained in:
@@ -631,12 +631,12 @@ void GDScriptLanguageProtocol::resolve_related_symbols(const LSP::TextDocumentPo
|
||||
return;
|
||||
}
|
||||
|
||||
String symbol_identifier;
|
||||
String symbol_name;
|
||||
LSP::Range range;
|
||||
symbol_identifier = parser->get_identifier_under_position(p_doc_pos.position, range);
|
||||
symbol_name = parser->get_symbol_name_under_position(p_doc_pos.position, range);
|
||||
|
||||
for (const KeyValue<StringName, ClassMembers> &E : workspace->native_members) {
|
||||
if (const LSP::DocumentSymbol *const *symbol = E.value.getptr(symbol_identifier)) {
|
||||
if (const LSP::DocumentSymbol *const *symbol = E.value.getptr(symbol_name)) {
|
||||
r_list.push_back(*symbol);
|
||||
}
|
||||
}
|
||||
@@ -644,13 +644,13 @@ void GDScriptLanguageProtocol::resolve_related_symbols(const LSP::TextDocumentPo
|
||||
for (const KeyValue<String, ExtendGDScriptParser *> &E : client->parse_results) {
|
||||
const ExtendGDScriptParser *scr = E.value;
|
||||
const ClassMembers &members = scr->get_members();
|
||||
if (const LSP::DocumentSymbol *const *symbol = members.getptr(symbol_identifier)) {
|
||||
if (const LSP::DocumentSymbol *const *symbol = members.getptr(symbol_name)) {
|
||||
r_list.push_back(*symbol);
|
||||
}
|
||||
|
||||
for (const KeyValue<String, ClassMembers> &F : scr->get_inner_classes()) {
|
||||
const ClassMembers *inner_class = &F.value;
|
||||
if (const LSP::DocumentSymbol *const *symbol = inner_class->getptr(symbol_identifier)) {
|
||||
if (const LSP::DocumentSymbol *const *symbol = inner_class->getptr(symbol_name)) {
|
||||
r_list.push_back(*symbol);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user