Преглед на файлове

Check client workspace directory is valid
Drop test initialize message sent to client
Remove unused code property for the parser class

Geequlim преди 6 години
родител
ревизия
9618b0c63e

+ 0 - 1
modules/gdscript/language_server/gdscript_extend_parser.cpp

@@ -557,7 +557,6 @@ const Array &ExtendGDScriptParser::get_member_completions() {
 
 
 Error ExtendGDScriptParser::parse(const String &p_code, const String &p_path) {
 Error ExtendGDScriptParser::parse(const String &p_code, const String &p_path) {
 	path = p_path;
 	path = p_path;
-	code = p_code;
 	lines = p_code.split("\n");
 	lines = p_code.split("\n");
 
 
 	Error err = GDScriptParser::parse(p_code, p_path.get_base_dir(), false, p_path, false, NULL, false);
 	Error err = GDScriptParser::parse(p_code, p_path.get_base_dir(), false, p_path, false, NULL, false);

+ 0 - 2
modules/gdscript/language_server/gdscript_extend_parser.h

@@ -52,7 +52,6 @@ typedef HashMap<String, const lsp::DocumentSymbol *> ClassMembers;
 class ExtendGDScriptParser : public GDScriptParser {
 class ExtendGDScriptParser : public GDScriptParser {
 
 
 	String path;
 	String path;
-	String code;
 	Vector<String> lines;
 	Vector<String> lines;
 
 
 	lsp::DocumentSymbol class_symbol;
 	lsp::DocumentSymbol class_symbol;
@@ -73,7 +72,6 @@ class ExtendGDScriptParser : public GDScriptParser {
 
 
 public:
 public:
 	_FORCE_INLINE_ const String &get_path() const { return path; }
 	_FORCE_INLINE_ const String &get_path() const { return path; }
-	_FORCE_INLINE_ const String &get_code() const { return code; }
 	_FORCE_INLINE_ const Vector<String> &get_lines() const { return lines; }
 	_FORCE_INLINE_ const Vector<String> &get_lines() const { return lines; }
 	_FORCE_INLINE_ const lsp::DocumentSymbol &get_symbols() const { return class_symbol; }
 	_FORCE_INLINE_ const lsp::DocumentSymbol &get_symbols() const { return class_symbol; }
 	_FORCE_INLINE_ const Vector<lsp::Diagnostic> &get_diagnostics() const { return diagnostics; }
 	_FORCE_INLINE_ const Vector<lsp::Diagnostic> &get_diagnostics() const { return diagnostics; }

+ 11 - 12
modules/gdscript/language_server/gdscript_language_protocol.cpp

@@ -103,7 +103,18 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) {
 	if (root_uri.length() && is_same_workspace) {
 	if (root_uri.length() && is_same_workspace) {
 		workspace.root_uri = root_uri;
 		workspace.root_uri = root_uri;
 	} else {
 	} else {
+
 		workspace.root_uri = "file://" + workspace.root;
 		workspace.root_uri = "file://" + workspace.root;
+
+		Dictionary params;
+		params["path"] = workspace.root;
+		Dictionary request = make_notification("gdscrip_client/changeWorkspace", params);
+		if (Ref<WebSocketPeer> *peer = clients.getptr(lastest_client_id)) {
+			String msg = JSON::print(request);
+			msg = format_output(msg);
+			CharString charstr = msg.utf8();
+			(*peer)->put_packet((const uint8_t *)charstr.ptr(), charstr.length());
+		}
 	}
 	}
 
 
 	if (!_initialized) {
 	if (!_initialized) {
@@ -116,18 +127,6 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) {
 }
 }
 
 
 void GDScriptLanguageProtocol::initialized(const Variant &p_params) {
 void GDScriptLanguageProtocol::initialized(const Variant &p_params) {
-
-	Dictionary params;
-	params["type"] = 3;
-	params["message"] = "GDScript Language Server initialized!";
-	Dictionary test_message = make_notification("window/showMessage", params);
-
-	if (Ref<WebSocketPeer> *peer = clients.getptr(lastest_client_id)) {
-		String msg = JSON::print(test_message);
-		msg = format_output(msg);
-		CharString charstr = msg.utf8();
-		(*peer)->put_packet((const uint8_t *)charstr.ptr(), charstr.length());
-	}
 }
 }
 
 
 void GDScriptLanguageProtocol::poll() {
 void GDScriptLanguageProtocol::poll() {