summaryrefslogtreecommitdiff
path: root/test_util/src
diff options
context:
space:
mode:
authorJason <m.jason.liu@outlook.com>2022-04-03 12:17:30 +0800
committerGitHub <noreply@github.com>2022-04-03 14:17:30 +1000
commita6e4b4297d840e9cfe4bdf373f24da8202f58e2d (patch)
tree9de6209eaa5affc810bc5bd9d7cc65384d55a9f3 /test_util/src
parent6c25b5135dfa6d9be35f6993e4b43d442977eff9 (diff)
refactor(lsp): migrate from lspower back to tower-lsp (#14163)
Diffstat (limited to 'test_util/src')
-rw-r--r--test_util/src/lsp.rs22
1 files changed, 15 insertions, 7 deletions
diff --git a/test_util/src/lsp.rs b/test_util/src/lsp.rs
index 1a3104542..c61793f98 100644
--- a/test_util/src/lsp.rs
+++ b/test_util/src/lsp.rs
@@ -11,8 +11,8 @@ use regex::Regex;
use serde::de;
use serde::Deserialize;
use serde::Serialize;
-use serde_json::json;
use serde_json::Value;
+use serde_json::{json, to_value};
use std::io;
use std::io::Write;
use std::path::Path;
@@ -324,12 +324,20 @@ impl LspClient {
V: Serialize,
R: de::DeserializeOwned,
{
- let value = json!({
- "jsonrpc": "2.0",
- "id": self.request_id,
- "method": method.as_ref(),
- "params": params,
- });
+ let value = if to_value(&params).unwrap().is_null() {
+ json!({
+ "jsonrpc": "2.0",
+ "id": self.request_id,
+ "method": method.as_ref(),
+ })
+ } else {
+ json!({
+ "jsonrpc": "2.0",
+ "id": self.request_id,
+ "method": method.as_ref(),
+ "params": params,
+ })
+ };
self.write(value)?;
self.reader.read_message(|msg| match msg {