Check client workspace directory is valid

Drop test initialize message sent to client
Remove unused code property for the parser class
This commit is contained in:
Geequlim 2019-06-25 18:09:42 +08:00 committed by geequlim
parent b2f02317fa
commit 9618b0c63e
3 changed files with 11 additions and 15 deletions

View File

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

View File

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

View File

@ -103,7 +103,18 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) {
if (root_uri.length() && is_same_workspace) {
workspace.root_uri = root_uri;
} else {
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) {
@ -116,18 +127,6 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &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() {