فهرست منبع

Merge pull request #81833 from 0x4448/fix-autocomplete-quotes

Fix autocomplete quotes
Rémi Verschelde 1 سال پیش
والد
کامیت
3e15c8f285
2فایلهای تغییر یافته به همراه20 افزوده شده و 0 حذف شده
  1. 9 0
      modules/gdscript/language_server/gdscript_text_document.cpp
  2. 11 0
      modules/gdscript/language_server/godot_lsp.h

+ 9 - 0
modules/gdscript/language_server/gdscript_text_document.cpp

@@ -346,6 +346,15 @@ Dictionary GDScriptTextDocument::resolve(const Dictionary &p_params) {
 		}
 	}
 
+	if (item.kind == lsp::CompletionItemKind::Method) {
+		bool is_trigger_character = params.context.triggerKind == lsp::CompletionTriggerKind::TriggerCharacter;
+		bool is_quote_character = params.context.triggerCharacter == "\"" || params.context.triggerCharacter == "'";
+
+		if (is_trigger_character && is_quote_character && item.insertText.is_quoted()) {
+			item.insertText = item.insertText.unquote();
+		}
+	}
+
 	return item.to_json(true);
 }
 

+ 11 - 0
modules/gdscript/language_server/godot_lsp.h

@@ -1429,6 +1429,17 @@ struct CompletionParams : public TextDocumentPositionParams {
 		TextDocumentPositionParams::load(p_params);
 		context.load(p_params["context"]);
 	}
+
+	Dictionary to_json() {
+		Dictionary ctx;
+		ctx["triggerCharacter"] = context.triggerCharacter;
+		ctx["triggerKind"] = context.triggerKind;
+
+		Dictionary dict;
+		dict = TextDocumentPositionParams::to_json();
+		dict["context"] = ctx;
+		return dict;
+	}
 };
 
 /**