Makes LSP report new() as _init; fixes docstrings
(cherry picked from commitae3aec1dbc
) Fix LSP crash parsing scripts of temp size 0 (cherry picked from commit679ce6fd0b
)
This commit is contained in:
parent
bb1e434d7c
commit
15025a4c93
|
@ -413,6 +413,12 @@ String ExtendGDScriptParser::parse_documentation(int p_line, bool p_docs_down) {
|
||||||
doc_lines.push_front(line_comment);
|
doc_lines.push_front(line_comment);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (i > 0 && i < lines.size() - 1) {
|
||||||
|
String next_line = lines[i + step].strip_edges(true, false);
|
||||||
|
if (next_line.begins_with("#")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -473,7 +473,7 @@ void GDScriptWorkspace::completion(const lsp::CompletionParams &p_params, List<S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name, bool p_func_requred) {
|
const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name, bool p_func_required) {
|
||||||
|
|
||||||
const lsp::DocumentSymbol *symbol = NULL;
|
const lsp::DocumentSymbol *symbol = NULL;
|
||||||
|
|
||||||
|
@ -503,8 +503,10 @@ const lsp::DocumentSymbol *GDScriptWorkspace::resolve_symbol(const lsp::TextDocu
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
ScriptLanguage::LookupResult ret;
|
ScriptLanguage::LookupResult ret;
|
||||||
if (OK == GDScriptLanguage::get_singleton()->lookup_code(parser->get_text_for_lookup_symbol(pos, symbol_identifier, p_func_requred), symbol_identifier, path, NULL, ret)) {
|
if (symbol_identifier == "new" && parser->get_lines()[p_doc_pos.position.line].replace(" ", "").replace("\t", "").find("new(") > -1) {
|
||||||
|
symbol_identifier = "_init";
|
||||||
|
}
|
||||||
|
if (OK == GDScriptLanguage::get_singleton()->lookup_code(parser->get_text_for_lookup_symbol(pos, symbol_identifier, p_func_required), symbol_identifier, path, NULL, ret)) {
|
||||||
if (ret.type == ScriptLanguage::LookupResult::RESULT_SCRIPT_LOCATION) {
|
if (ret.type == ScriptLanguage::LookupResult::RESULT_SCRIPT_LOCATION) {
|
||||||
|
|
||||||
String target_script_path = path;
|
String target_script_path = path;
|
||||||
|
|
|
@ -83,7 +83,7 @@ public:
|
||||||
void publish_diagnostics(const String &p_path);
|
void publish_diagnostics(const String &p_path);
|
||||||
void completion(const lsp::CompletionParams &p_params, List<ScriptCodeCompletionOption> *r_options);
|
void completion(const lsp::CompletionParams &p_params, List<ScriptCodeCompletionOption> *r_options);
|
||||||
|
|
||||||
const lsp::DocumentSymbol *resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name = "", bool p_func_requred = false);
|
const lsp::DocumentSymbol *resolve_symbol(const lsp::TextDocumentPositionParams &p_doc_pos, const String &p_symbol_name = "", bool p_func_required = false);
|
||||||
void resolve_related_symbols(const lsp::TextDocumentPositionParams &p_doc_pos, List<const lsp::DocumentSymbol *> &r_list);
|
void resolve_related_symbols(const lsp::TextDocumentPositionParams &p_doc_pos, List<const lsp::DocumentSymbol *> &r_list);
|
||||||
const lsp::DocumentSymbol *resolve_native_symbol(const lsp::NativeSymbolInspectParams &p_params);
|
const lsp::DocumentSymbol *resolve_native_symbol(const lsp::NativeSymbolInspectParams &p_params);
|
||||||
void resolve_document_links(const String &p_uri, List<lsp::DocumentLink> &r_list);
|
void resolve_document_links(const String &p_uri, List<lsp::DocumentLink> &r_list);
|
||||||
|
|
Loading…
Reference in New Issue