diff options
author | Phil Ellison <[email protected]> | 2020-12-28 18:29:58 +0000 |
---|---|---|
committer | Phil Ellison <[email protected]> | 2020-12-28 18:29:58 +0000 |
commit | 077592a12fd982de3e69572a4c738dd4468617f9 (patch) | |
tree | 24bc738d02fb8c88ef662f85e4a0c9a4c8ab0fac /crates/rust-analyzer | |
parent | 1d530756ed7ba175ec32ff71247072798dc9a748 (diff) |
Initial implementation of view-hir command
Diffstat (limited to 'crates/rust-analyzer')
-rw-r--r-- | crates/rust-analyzer/src/handlers.rs | 10 | ||||
-rw-r--r-- | crates/rust-analyzer/src/lsp_ext.rs | 8 | ||||
-rw-r--r-- | crates/rust-analyzer/src/main_loop.rs | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs index 374fb5302..85f1f81ad 100644 --- a/crates/rust-analyzer/src/handlers.rs +++ b/crates/rust-analyzer/src/handlers.rs | |||
@@ -104,6 +104,16 @@ pub(crate) fn handle_syntax_tree( | |||
104 | Ok(res) | 104 | Ok(res) |
105 | } | 105 | } |
106 | 106 | ||
107 | pub(crate) fn handle_view_hir( | ||
108 | snap: GlobalStateSnapshot, | ||
109 | params: lsp_types::TextDocumentPositionParams, | ||
110 | ) -> Result<String> { | ||
111 | let _p = profile::span("handle_view_hir"); | ||
112 | let position = from_proto::file_position(&snap, params)?; | ||
113 | let res = snap.analysis.view_hir(position)?; | ||
114 | Ok(res) | ||
115 | } | ||
116 | |||
107 | pub(crate) fn handle_expand_macro( | 117 | pub(crate) fn handle_expand_macro( |
108 | snap: GlobalStateSnapshot, | 118 | snap: GlobalStateSnapshot, |
109 | params: lsp_ext::ExpandMacroParams, | 119 | params: lsp_ext::ExpandMacroParams, |
diff --git a/crates/rust-analyzer/src/lsp_ext.rs b/crates/rust-analyzer/src/lsp_ext.rs index 93ac45415..a85978737 100644 --- a/crates/rust-analyzer/src/lsp_ext.rs +++ b/crates/rust-analyzer/src/lsp_ext.rs | |||
@@ -53,6 +53,14 @@ pub struct SyntaxTreeParams { | |||
53 | pub range: Option<Range>, | 53 | pub range: Option<Range>, |
54 | } | 54 | } |
55 | 55 | ||
56 | pub enum ViewHir {} | ||
57 | |||
58 | impl Request for ViewHir { | ||
59 | type Params = lsp_types::TextDocumentPositionParams; | ||
60 | type Result = String; | ||
61 | const METHOD: &'static str = "rust-analyzer/viewHir"; | ||
62 | } | ||
63 | |||
56 | pub enum ExpandMacro {} | 64 | pub enum ExpandMacro {} |
57 | 65 | ||
58 | impl Request for ExpandMacro { | 66 | impl Request for ExpandMacro { |
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index 5d55dc96e..8eca79f7e 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs | |||
@@ -443,6 +443,7 @@ impl GlobalState { | |||
443 | .on_sync::<lsp_ext::MemoryUsage>(|s, p| handlers::handle_memory_usage(s, p))? | 443 | .on_sync::<lsp_ext::MemoryUsage>(|s, p| handlers::handle_memory_usage(s, p))? |
444 | .on::<lsp_ext::AnalyzerStatus>(handlers::handle_analyzer_status) | 444 | .on::<lsp_ext::AnalyzerStatus>(handlers::handle_analyzer_status) |
445 | .on::<lsp_ext::SyntaxTree>(handlers::handle_syntax_tree) | 445 | .on::<lsp_ext::SyntaxTree>(handlers::handle_syntax_tree) |
446 | .on::<lsp_ext::ViewHir>(handlers::handle_view_hir) | ||
446 | .on::<lsp_ext::ExpandMacro>(handlers::handle_expand_macro) | 447 | .on::<lsp_ext::ExpandMacro>(handlers::handle_expand_macro) |
447 | .on::<lsp_ext::ParentModule>(handlers::handle_parent_module) | 448 | .on::<lsp_ext::ParentModule>(handlers::handle_parent_module) |
448 | .on::<lsp_ext::Runnables>(handlers::handle_runnables) | 449 | .on::<lsp_ext::Runnables>(handlers::handle_runnables) |