41 lines
968 B
Rust
41 lines
968 B
Rust
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<Backend>, (), Result<i32>> for CustomRequest {
|
|
type Future = future::Ready<Result<i32>>;
|
|
|
|
fn invoke(&self, _server: &'a Arc<Backend>, _params: ()) -> Self::Future {
|
|
future::ready(customRequest())
|
|
}
|
|
}
|
|
|
|
pub fn customRequest() -> Result<i32> {
|
|
// let command = params[0].clone();
|
|
// let message = String::from("receive command: ") + &command;
|
|
|
|
// let response = CustomResponse {
|
|
// result: serde_json::Value::String(message),
|
|
// };
|
|
|
|
Ok(123)
|
|
} |