A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/lsp.rs')
-rw-r--r--src/lsp.rs46
1 files changed, 32 insertions, 14 deletions
diff --git a/src/lsp.rs b/src/lsp.rs
index 6b1aac6..9770741 100644
--- a/src/lsp.rs
+++ b/src/lsp.rs
@@ -354,20 +354,38 @@ impl Client {
}
}
}
- pub fn symbols(&'static self, f: String) -> impl Future<Output = Result<Vec<SymbolInformation>, RequestError<lsp_request!("workspace/symbol")>>> {
- self.request::<lsp_request!("workspace/symbol")>(&WorkspaceSymbolParams {
- query: f,
- search_scope: Some(WorkspaceSymbolSearchScope::Workspace),
- search_kind: Some(WorkspaceSymbolSearchKind::AllSymbols),
- ..Default::default()
- }).unwrap().0
- .map(|x| x.map(|x| x.map(|x| {
- // std::fs::write("syms", serde_json::to_string_pretty(&x).unwrap());
- match x {
- WorkspaceSymbolResponse::Flat(x) => x,
- WorkspaceSymbolResponse::Nested(_) => unreachable!(),
- }
- }).unwrap_or_default()))
+ pub fn symbols(
+ &'static self,
+ f: String,
+ ) -> impl Future<
+ Output = Result<
+ Vec<SymbolInformation>,
+ RequestError<lsp_request!("workspace/symbol")>,
+ >,
+ > {
+ self.request::<lsp_request!("workspace/symbol")>(
+ &WorkspaceSymbolParams {
+ query: f,
+ search_scope: Some(WorkspaceSymbolSearchScope::Workspace),
+ search_kind: Some(WorkspaceSymbolSearchKind::AllSymbols),
+ ..Default::default()
+ },
+ )
+ .unwrap()
+ .0
+ .map(|x| {
+ x.map(|x| {
+ x.map(|x| {
+ // std::fs::write("syms", serde_json::to_string_pretty(&x).unwrap());
+ match x {
+ WorkspaceSymbolResponse::Flat(x) => x,
+ WorkspaceSymbolResponse::Nested(_) =>
+ unreachable!(),
+ }
+ })
+ .unwrap_or_default()
+ })
+ })
}
pub fn inlay(
&'static self,