Browse Source

Implement didClose notification in LSP

(cherry picked from commit 10429019adb07c4c18e37ceefb7ab060b0f4d797)
Francois Belair 4 years ago
parent
commit
c2a92d93f2

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

@@ -39,6 +39,7 @@
 
 
 void GDScriptTextDocument::_bind_methods() {
 void GDScriptTextDocument::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("didOpen"), &GDScriptTextDocument::didOpen);
 	ClassDB::bind_method(D_METHOD("didOpen"), &GDScriptTextDocument::didOpen);
+	ClassDB::bind_method(D_METHOD("didClose"), &GDScriptTextDocument::didClose);
 	ClassDB::bind_method(D_METHOD("didChange"), &GDScriptTextDocument::didChange);
 	ClassDB::bind_method(D_METHOD("didChange"), &GDScriptTextDocument::didChange);
 	ClassDB::bind_method(D_METHOD("nativeSymbol"), &GDScriptTextDocument::nativeSymbol);
 	ClassDB::bind_method(D_METHOD("nativeSymbol"), &GDScriptTextDocument::nativeSymbol);
 	ClassDB::bind_method(D_METHOD("documentSymbol"), &GDScriptTextDocument::documentSymbol);
 	ClassDB::bind_method(D_METHOD("documentSymbol"), &GDScriptTextDocument::documentSymbol);
@@ -60,6 +61,11 @@ void GDScriptTextDocument::didOpen(const Variant &p_param) {
 	sync_script_content(doc.uri, doc.text);
 	sync_script_content(doc.uri, doc.text);
 }
 }
 
 
+void GDScriptTextDocument::didClose(const Variant &p_param) {
+	// Left empty on purpose. Godot does nothing special on closing a document,
+	// but it satisfies LSP clients that require didClose be implemented.
+}
+
 void GDScriptTextDocument::didChange(const Variant &p_param) {
 void GDScriptTextDocument::didChange(const Variant &p_param) {
 	lsp::TextDocumentItem doc = load_document_item(p_param);
 	lsp::TextDocumentItem doc = load_document_item(p_param);
 	Dictionary dict = p_param;
 	Dictionary dict = p_param;

+ 1 - 0
modules/gdscript/language_server/gdscript_text_document.h

@@ -43,6 +43,7 @@ protected:
 	FileAccess *file_checker;
 	FileAccess *file_checker;
 
 
 	void didOpen(const Variant &p_param);
 	void didOpen(const Variant &p_param);
+	void didClose(const Variant &p_param);
 	void didChange(const Variant &p_param);
 	void didChange(const Variant &p_param);
 
 
 	void sync_script_content(const String &p_path, const String &p_content);
 	void sync_script_content(const String &p_path, const String &p_content);