diff options
author | Aleksey Kladov <[email protected]> | 2018-10-09 14:00:20 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-10-09 17:52:06 +0100 |
commit | 2b956fd3a83313cee37ff179eae843bc88dd572a (patch) | |
tree | a1010728cfc8018e5f62152f4c45b9523f8d5e25 /crates/ra_lsp_server/src/main_loop | |
parent | 82447ecacef9129a44d3c17b3db7a0e60a7ec92b (diff) |
Add on-enter handler
Now, typing doc comments is much more pleasant
Diffstat (limited to 'crates/ra_lsp_server/src/main_loop')
-rw-r--r-- | crates/ra_lsp_server/src/main_loop/handlers.rs | 14 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/main_loop/mod.rs | 1 |
2 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 79a54183e..725036cc7 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs | |||
@@ -77,6 +77,20 @@ pub fn handle_join_lines( | |||
77 | .try_conv_with(&world) | 77 | .try_conv_with(&world) |
78 | } | 78 | } |
79 | 79 | ||
80 | pub fn handle_on_enter( | ||
81 | world: ServerWorld, | ||
82 | params: req::TextDocumentPositionParams, | ||
83 | _token: JobToken, | ||
84 | ) -> Result<Option<req::SourceChange>> { | ||
85 | let file_id = params.text_document.try_conv_with(&world)?; | ||
86 | let line_index = world.analysis().file_line_index(file_id); | ||
87 | let offset = params.position.conv_with(&line_index); | ||
88 | match world.analysis().on_enter(file_id, offset) { | ||
89 | None => Ok(None), | ||
90 | Some(edit) => Ok(Some(edit.try_conv_with(&world)?)) | ||
91 | } | ||
92 | } | ||
93 | |||
80 | pub fn handle_on_type_formatting( | 94 | pub fn handle_on_type_formatting( |
81 | world: ServerWorld, | 95 | world: ServerWorld, |
82 | params: req::DocumentOnTypeFormattingParams, | 96 | params: req::DocumentOnTypeFormattingParams, |
diff --git a/crates/ra_lsp_server/src/main_loop/mod.rs b/crates/ra_lsp_server/src/main_loop/mod.rs index 47a9b202e..53c6f1dff 100644 --- a/crates/ra_lsp_server/src/main_loop/mod.rs +++ b/crates/ra_lsp_server/src/main_loop/mod.rs | |||
@@ -244,6 +244,7 @@ fn on_request( | |||
244 | .on::<req::ExtendSelection>(handlers::handle_extend_selection)? | 244 | .on::<req::ExtendSelection>(handlers::handle_extend_selection)? |
245 | .on::<req::FindMatchingBrace>(handlers::handle_find_matching_brace)? | 245 | .on::<req::FindMatchingBrace>(handlers::handle_find_matching_brace)? |
246 | .on::<req::JoinLines>(handlers::handle_join_lines)? | 246 | .on::<req::JoinLines>(handlers::handle_join_lines)? |
247 | .on::<req::OnEnter>(handlers::handle_on_enter)? | ||
247 | .on::<req::OnTypeFormatting>(handlers::handle_on_type_formatting)? | 248 | .on::<req::OnTypeFormatting>(handlers::handle_on_type_formatting)? |
248 | .on::<req::DocumentSymbolRequest>(handlers::handle_document_symbol)? | 249 | .on::<req::DocumentSymbolRequest>(handlers::handle_document_symbol)? |
249 | .on::<req::WorkspaceSymbol>(handlers::handle_workspace_symbol)? | 250 | .on::<req::WorkspaceSymbol>(handlers::handle_workspace_symbol)? |