summaryrefslogtreecommitdiff
path: root/test_util/src/lsp.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src/lsp.rs')
-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 {