diff options
Diffstat (limited to 'crates/ra_lsp_server/src/main.rs')
-rw-r--r-- | crates/ra_lsp_server/src/main.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 36d4898bd..ae1392cb5 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs | |||
@@ -1,8 +1,7 @@ | |||
1 | use flexi_logger::{Duplicate, Logger}; | 1 | use flexi_logger::{Duplicate, Logger}; |
2 | use gen_lsp_server::{run_server, stdio_transport}; | 2 | use gen_lsp_server::{run_server, stdio_transport}; |
3 | use serde::Deserialize; | ||
4 | 3 | ||
5 | use ra_lsp_server::{Result, ServerConfig}; | 4 | use ra_lsp_server::{show_message, Result, ServerConfig}; |
6 | use ra_prof; | 5 | use ra_prof; |
7 | 6 | ||
8 | fn main() -> Result<()> { | 7 | fn main() -> Result<()> { |
@@ -46,15 +45,23 @@ fn main_inner() -> Result<()> { | |||
46 | .filter(|workspaces| !workspaces.is_empty()) | 45 | .filter(|workspaces| !workspaces.is_empty()) |
47 | .unwrap_or_else(|| vec![root]); | 46 | .unwrap_or_else(|| vec![root]); |
48 | 47 | ||
49 | let opts = params | 48 | let server_config: ServerConfig = params |
50 | .initialization_options | 49 | .initialization_options |
51 | .and_then(|v| { | 50 | .and_then(|v| { |
52 | ServerConfig::deserialize(v) | 51 | serde_json::from_value(v) |
53 | .map_err(|e| log::error!("failed to deserialize config: {}", e)) | 52 | .map_err(|e| { |
53 | log::error!("failed to deserialize config: {}", e); | ||
54 | show_message( | ||
55 | lsp_types::MessageType::Error, | ||
56 | format!("failed to deserialize config: {}", e), | ||
57 | s, | ||
58 | ); | ||
59 | }) | ||
54 | .ok() | 60 | .ok() |
55 | }) | 61 | }) |
56 | .unwrap_or_default(); | 62 | .unwrap_or_default(); |
57 | ra_lsp_server::main_loop(workspace_roots, params.capabilities, opts, r, s) | 63 | |
64 | ra_lsp_server::main_loop(workspace_roots, params.capabilities, server_config, r, s) | ||
58 | })?; | 65 | })?; |
59 | log::info!("shutting down IO..."); | 66 | log::info!("shutting down IO..."); |
60 | threads.join()?; | 67 | threads.join()?; |