use std::future; use std::sync::Arc; use serde::Deserialize; use serde_json::{json, Value}; use tower_lsp::jsonrpc::Result; use tower_lsp::lsp_types::*; use crate::server::Backend; #[derive(Debug, Deserialize)] pub struct CustomRequestParams { // 定义你需要的参数 pub data: Value, } #[derive(Debug, Deserialize)] pub struct CustomResponse { result: serde_json::Value } #[derive(Clone)] pub struct CustomRequest; impl <'a>tower_lsp::jsonrpc::Method<&'a Arc, (), Result> for CustomRequest { type Future = future::Ready>; fn invoke(&self, _server: &'a Arc, _params: ()) -> Self::Future { future::ready(customRequest()) } } pub fn customRequest() -> Result { // let command = params[0].clone(); // let message = String::from("receive command: ") + &command; // let response = CustomResponse { // result: serde_json::Value::String(message), // }; Ok(123) }