1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::collections::HashMap;
use mlua::prelude::*;
use nvim_macros::api;
use crate::common::Index;
api! {
Lsp("https://neovim.io/doc/user/lsp.html"#"LSP") {
buf_request(buffer: Index, method: String, params: Option<LuaTable<'lua>>, handler: Handler<'lua>) -> (Option<HashMap<String, String>>, LuaFunction<'lua>) {
#[derive(ToLua)]
pub enum Handler<'lua> {
#[mlua(value = lua.create_function(|_,()| Ok(LuaValue::Nil)).unwrap())]
None,
#[mlua(value = LuaValue::Nil)]
Default,
LuaFunction(LuaFunction<'lua>)
}
}
}
}