diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-09-25 20:43:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-25 20:43:17 +0200 |
commit | 14dcb97556f08b8b8d0f94a9ae64a445a4096652 (patch) | |
tree | 1cf29cd9047e24d4027d8b3d17b9ba512a84c6ba /modules/gdscript/language_server/lsp.hpp | |
parent | ff2f1f54a9de0cc7351cb4810dcdc506ec173338 (diff) | |
parent | 9a8421aa058437ce01bc67244bb8dcd0f15fc9e6 (diff) | |
download | redot-engine-14dcb97556f08b8b8d0f94a9ae64a445a4096652.tar.gz |
Merge pull request #50378 from Razoric480/apply-edit-40
Diffstat (limited to 'modules/gdscript/language_server/lsp.hpp')
-rw-r--r-- | modules/gdscript/language_server/lsp.hpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/gdscript/language_server/lsp.hpp b/modules/gdscript/language_server/lsp.hpp index 9ac6c6bd4e..4e2c55026f 100644 --- a/modules/gdscript/language_server/lsp.hpp +++ b/modules/gdscript/language_server/lsp.hpp @@ -1322,6 +1322,58 @@ struct DocumentSymbol { } }; +struct WorkspaceEdit { + HashMap<String, List<TextEdit>> changes; + + void add_edit(String uri, TextEdit edit) { + if (changes.has(uri)) { + changes[uri].push_back(edit); + } else { + List<TextEdit> edits; + edits.push_back(edit); + changes[uri] = edits; + } + } + + Dictionary to_json() { + Dictionary dict; + + Dictionary changes_dict; + + List<String> key_list; + changes.get_key_list(&key_list); + for (int i = 0; i < key_list.size(); ++i) { + String uri = key_list[i]; + + List<TextEdit> edits = changes[key_list[i]]; + Array changes_arr; + for (int l = 0; l < edits.size(); ++l) { + Dictionary change_dict; + change_dict["newText"] = edits[l].newText; + change_dict["range"] = edits[l].range.to_json(); + changes_arr.push_back(change_dict); + } + changes_dict[uri] = changes_arr; + } + + dict["changes"] = changes_dict; + + return dict; + } +}; + +struct ApplyWorkspaceEditParams { + WorkspaceEdit edit; + + Dictionary to_json() { + Dictionary dict; + + dict["edit"] = edit.to_json(); + + return dict; + } +}; + struct NativeSymbolInspectParams { String native_class; String symbol_name; |