diff options
author | Edwin Cheng <[email protected]> | 2019-11-17 18:47:50 +0000 |
---|---|---|
committer | Edwin Cheng <[email protected]> | 2019-11-19 13:49:06 +0000 |
commit | 3ccd05fedc46796f793295901a8619492256468e (patch) | |
tree | 018f46fca85c4d2e0ef4b73fa3971166e65de3e2 /crates/ra_lsp_server/src/main_loop | |
parent | d2782ab1c1ec0b9f2ac2131859a9ee880f97bc12 (diff) |
Add recursive expand in vscode
Diffstat (limited to 'crates/ra_lsp_server/src/main_loop')
-rw-r--r-- | crates/ra_lsp_server/src/main_loop/handlers.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs index 20f9aee13..783b0a827 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs | |||
@@ -47,6 +47,21 @@ pub fn handle_syntax_tree(world: WorldSnapshot, params: req::SyntaxTreeParams) - | |||
47 | Ok(res) | 47 | Ok(res) |
48 | } | 48 | } |
49 | 49 | ||
50 | pub fn handle_expand_macro( | ||
51 | world: WorldSnapshot, | ||
52 | params: req::ExpandMacroParams, | ||
53 | ) -> Result<Option<(String, String)>> { | ||
54 | let _p = profile("handle_expand_macro"); | ||
55 | let file_id = params.text_document.try_conv_with(&world)?; | ||
56 | let line_index = world.analysis().file_line_index(file_id)?; | ||
57 | let offset = params.position.map(|p| p.conv_with(&line_index)); | ||
58 | |||
59 | match offset { | ||
60 | None => Ok(None), | ||
61 | Some(offset) => Ok(world.analysis().expand_macro(FilePosition { file_id, offset })?), | ||
62 | } | ||
63 | } | ||
64 | |||
50 | pub fn handle_selection_range( | 65 | pub fn handle_selection_range( |
51 | world: WorldSnapshot, | 66 | world: WorldSnapshot, |
52 | params: req::SelectionRangeParams, | 67 | params: req::SelectionRangeParams, |