diff --git a/modules/gdscript/language_server/gdscript_workspace.cpp b/modules/gdscript/language_server/gdscript_workspace.cpp index b891c42eaaa..2014dccae12 100644 --- a/modules/gdscript/language_server/gdscript_workspace.cpp +++ b/modules/gdscript/language_server/gdscript_workspace.cpp @@ -279,6 +279,8 @@ ExtendGDScriptParser *GDScriptWorkspace::get_parse_result(const String &p_path) return nullptr; } +#define HANDLE_DOC(m_string) ((is_native ? DTR(m_string) : (m_string)).strip_edges()) + Error GDScriptWorkspace::initialize() { if (initialized) { return OK; @@ -287,6 +289,7 @@ Error GDScriptWorkspace::initialize() { DocTools *doc = EditorHelp::get_doc_data(); for (const KeyValue &E : doc->class_list) { const DocData::ClassDoc &class_data = E.value; + const bool is_native = !class_data.is_script_doc; LSP::DocumentSymbol class_symbol; String class_name = E.key; class_symbol.name = class_name; @@ -296,7 +299,7 @@ Error GDScriptWorkspace::initialize() { if (!class_data.inherits.is_empty()) { class_symbol.detail += " extends " + class_data.inherits; } - class_symbol.documentation = class_data.brief_description + "\n" + class_data.description; + class_symbol.documentation = HANDLE_DOC(class_data.brief_description) + "\n" + HANDLE_DOC(class_data.description); for (int i = 0; i < class_data.constants.size(); i++) { const DocData::ConstantDoc &const_data = class_data.constants[i]; @@ -309,7 +312,7 @@ Error GDScriptWorkspace::initialize() { symbol.detail += ": " + const_data.enumeration; } symbol.detail += " = " + const_data.value; - symbol.documentation = const_data.description; + symbol.documentation = HANDLE_DOC(const_data.description); class_symbol.children.push_back(symbol); } @@ -325,7 +328,7 @@ Error GDScriptWorkspace::initialize() { } else { symbol.detail += ": " + data.type; } - symbol.documentation = data.description; + symbol.documentation = HANDLE_DOC(data.description); class_symbol.children.push_back(symbol); } @@ -336,7 +339,7 @@ Error GDScriptWorkspace::initialize() { symbol.native_class = class_name; symbol.kind = LSP::SymbolKind::Property; symbol.detail = " var " + class_name + "." + data.name + ": " + data.type; - symbol.documentation = data.description; + symbol.documentation = HANDLE_DOC(data.description); class_symbol.children.push_back(symbol); } @@ -388,7 +391,7 @@ Error GDScriptWorkspace::initialize() { return_type = "void"; } symbol.detail = "func " + class_name + "." + data.name + "(" + params + ") -> " + return_type; - symbol.documentation = data.description; + symbol.documentation = HANDLE_DOC(data.description); class_symbol.children.push_back(symbol); }