summaryrefslogtreecommitdiff
path: root/tests/util/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/util/server/src')
-rw-r--r--tests/util/server/src/lsp.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/util/server/src/lsp.rs b/tests/util/server/src/lsp.rs
index 07b63c8a8..c4219b942 100644
--- a/tests/util/server/src/lsp.rs
+++ b/tests/util/server/src/lsp.rs
@@ -941,6 +941,21 @@ impl LspClient {
})
}
+ pub fn write_jsonrpc(
+ &mut self,
+ method: impl AsRef<str>,
+ params: impl Serialize,
+ ) {
+ let value = json!({
+ "jsonrpc": "2.0",
+ "id": self.request_id,
+ "method": method.as_ref(),
+ "params": params,
+ });
+ self.write(value);
+ self.request_id += 1;
+ }
+
fn write(&mut self, value: Value) {
let value_str = value.to_string();
let msg = format!(
@@ -1030,6 +1045,17 @@ impl LspClient {
})
}
+ pub fn read_latest_response(
+ &mut self,
+ ) -> (u64, Option<Value>, Option<LspResponseError>) {
+ self.reader.read_message(|msg| match msg {
+ LspMessage::Response(id, val, err) => {
+ Some((*id, val.clone(), err.clone()))
+ }
+ _ => None,
+ })
+ }
+
pub fn write_response<V>(&mut self, id: u64, result: V)
where
V: Serialize,