Skip to content

Commit 6801de1

Browse files
author
Junfeng Li
committed
Fix registerHandlers with bufnr in request body.
1 parent cf592e6 commit 6801de1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/languageclient.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2038,7 +2038,21 @@ impl State {
20382038

20392039
pub fn languageClient_registerHandlers(&mut self, params: &Value) -> Fallible<Value> {
20402040
info!("Begin {}", REQUEST__RegisterHandlers);
2041-
let handlers: HashMap<String, String> = params.clone().to_lsp()?;
2041+
let handlers: Fallible<HashMap<String, String>> = params
2042+
.as_object()
2043+
.ok_or_else(|| err_msg("Invalid arguments!"))?
2044+
.iter()
2045+
.filter_map(|(k, v)| {
2046+
if **k == VimVar::Bufnr.to_key() || **k == VimVar::LanguageId.to_key() {
2047+
return None;
2048+
}
2049+
2050+
Some(match serde_json::to_string(v) {
2051+
Ok(v) => Ok((k.clone(), v)),
2052+
Err(err) => Err(err.into()),
2053+
})
2054+
}).collect();
2055+
let handlers = handlers?;
20422056
self.update(|state| {
20432057
state.user_handlers.extend(handlers);
20442058
Ok(())

0 commit comments

Comments
 (0)