summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/language_server/lsp.hpp
diff options
context:
space:
mode:
authorgeequlim <geequlim@gmail.com>2019-10-03 16:26:55 +0800
committergeequlim <geequlim@gmail.com>2019-10-03 18:51:03 +0800
commit6a8303f82f78646d77bc3f18b7083313005485c9 (patch)
tree121a0e02d66158c8bee22b25ad67c979c03b7eae /modules/gdscript/language_server/lsp.hpp
parentd1a6964d3965ced647226e0489ca50f1f28aacd2 (diff)
downloadredot-engine-6a8303f82f78646d77bc3f18b7083313005485c9.tar.gz
Implement DocumentLink of GDScript LSP Server
Diffstat (limited to 'modules/gdscript/language_server/lsp.hpp')
-rw-r--r--modules/gdscript/language_server/lsp.hpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/gdscript/language_server/lsp.hpp b/modules/gdscript/language_server/lsp.hpp
index 3e57b6ee7e..e60e28cc15 100644
--- a/modules/gdscript/language_server/lsp.hpp
+++ b/modules/gdscript/language_server/lsp.hpp
@@ -199,6 +199,41 @@ struct TextDocumentPositionParams {
}
};
+struct DocumentLinkParams {
+ /**
+ * The document to provide document links for.
+ */
+ TextDocumentIdentifier textDocument;
+
+ _FORCE_INLINE_ void load(const Dictionary &p_params) {
+ textDocument.load(p_params["textDocument"]);
+ }
+};
+
+/**
+ * A document link is a range in a text document that links to an internal or external resource, like another
+ * text document or a web site.
+ */
+struct DocumentLink {
+
+ /**
+ * The range this link applies to.
+ */
+ Range range;
+
+ /**
+ * The uri this link points to. If missing a resolve request is sent later.
+ */
+ DocumentUri target;
+
+ Dictionary to_json() const {
+ Dictionary dict;
+ dict["range"] = range.to_json();
+ dict["target"] = target;
+ return dict;
+ }
+};
+
/**
* A textual edit applicable to a text document.
*/