summaryrefslogtreecommitdiff
path: root/support/texlab/src/protocol/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/protocol/mod.rs')
-rw-r--r--support/texlab/src/protocol/mod.rs71
1 files changed, 71 insertions, 0 deletions
diff --git a/support/texlab/src/protocol/mod.rs b/support/texlab/src/protocol/mod.rs
new file mode 100644
index 0000000000..c08a7d82f5
--- /dev/null
+++ b/support/texlab/src/protocol/mod.rs
@@ -0,0 +1,71 @@
+cfg_if::cfg_if! {
+ if #[cfg(feature = "server")] {
+ mod client;
+ mod codec;
+
+ pub use self::{
+ client::{LatexLspClient, LspClient},
+ codec::LspCodec,
+ };
+ }
+}
+
+mod capabilities;
+mod edit;
+mod options;
+mod range;
+mod uri;
+
+pub use self::{
+ capabilities::ClientCapabilitiesExt,
+ edit::*,
+ options::*,
+ range::RangeExt,
+ uri::{AsUri, Uri},
+};
+pub use lsp_types::*;
+
+use serde::{Deserialize, Serialize};
+use serde_repr::*;
+
+#[serde(untagged)]
+#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
+pub enum DefinitionResponse {
+ Locations(Vec<Location>),
+ LocationLinks(Vec<LocationLink>),
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize_repr, Deserialize_repr)]
+#[repr(i32)]
+pub enum ForwardSearchStatus {
+ Success = 0,
+ Error = 1,
+ Failure = 2,
+ Unconfigured = 3,
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
+pub struct ForwardSearchResult {
+ pub status: ForwardSearchStatus,
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct BuildParams {
+ pub text_document: TextDocumentIdentifier,
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize_repr, Deserialize_repr)]
+#[repr(i32)]
+pub enum BuildStatus {
+ Success = 0,
+ Error = 1,
+ Failure = 2,
+ Cancelled = 3,
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct BuildResult {
+ pub status: BuildStatus,
+}