1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
use crate::protocol::*;
use jsonrpc::client::Result;
use jsonrpc_derive::{jsonrpc_client, jsonrpc_method};
#[jsonrpc_client(TestLatexLspClient)]
pub trait TestLspClient {
#[jsonrpc_method("initialize", kind = "request")]
async fn initialize(&self, params: InitializeParams) -> Result<InitializeResult>;
#[jsonrpc_method("initialized", kind = "notification")]
async fn initialized(&self, params: InitializedParams);
#[jsonrpc_method("shutdown", kind = "request")]
async fn shutdown(&self, params: ()) -> Result<()>;
#[jsonrpc_method("exit", kind = "notification")]
async fn exit(&self, params: ());
#[jsonrpc_method("textDocument/didOpen", kind = "notification")]
async fn did_open(&self, params: DidOpenTextDocumentParams);
#[jsonrpc_method("textDocument/didChange", kind = "notification")]
async fn did_change(&self, params: DidChangeTextDocumentParams);
#[jsonrpc_method("workspace/didChangeConfiguration", kind = "notification")]
async fn did_change_configuration(&self, params: DidChangeConfigurationParams);
#[jsonrpc_method("textDocument/definition", kind = "request")]
async fn definition(&self, params: TextDocumentPositionParams) -> Result<DefinitionResponse>;
#[jsonrpc_method("textDocument/completion", kind = "request")]
async fn completion(&self, params: CompletionParams) -> Result<CompletionList>;
#[jsonrpc_method("completionItem/resolve", kind = "request")]
async fn completion_resolve(&self, item: CompletionItem) -> Result<CompletionItem>;
#[jsonrpc_method("textDocument/foldingRange", kind = "request")]
async fn folding_range(&self, params: FoldingRangeParams) -> Result<Vec<FoldingRange>>;
#[jsonrpc_method("textDocument/documentHighlight", kind = "request")]
async fn document_highlight(
&self,
params: TextDocumentPositionParams,
) -> Result<Vec<DocumentHighlight>>;
#[jsonrpc_method("textDocument/documentLink", kind = "request")]
async fn document_link(&self, params: DocumentLinkParams) -> Result<Vec<DocumentLink>>;
#[jsonrpc_method("textDocument/references", kind = "request")]
async fn references(&self, params: ReferenceParams) -> Result<Vec<Location>>;
#[jsonrpc_method("textDocument/prepareRename", kind = "request")]
async fn prepare_rename(&self, params: TextDocumentPositionParams) -> Result<Option<Range>>;
#[jsonrpc_method("textDocument/rename", kind = "request")]
async fn rename(&self, params: RenameParams) -> Result<Option<WorkspaceEdit>>;
#[jsonrpc_method("textDocument/hover", kind = "request")]
async fn hover(&self, params: TextDocumentPositionParams) -> Result<Option<Hover>>;
#[jsonrpc_method("workspace/symbol", kind = "request")]
async fn workspace_symbol(
&self,
params: WorkspaceSymbolParams,
) -> Result<Vec<SymbolInformation>>;
#[jsonrpc_method("textDocument/documentSymbol", kind = "request")]
async fn document_symbol(&self, params: DocumentSymbolParams)
-> Result<DocumentSymbolResponse>;
#[jsonrpc_method("$/detectRoot", kind = "request")]
async fn detect_root(&self, params: TextDocumentIdentifier) -> Result<()>;
}
|