aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_lsp_server/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_lsp_server/src/main.rs')
-rw-r--r--crates/ra_lsp_server/src/main.rs26
1 files changed, 9 insertions, 17 deletions
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs
index 33aa30d70..03f83c7be 100644
--- a/crates/ra_lsp_server/src/main.rs
+++ b/crates/ra_lsp_server/src/main.rs
@@ -36,23 +36,15 @@ struct InitializationOptions {
36fn main_inner() -> Result<()> { 36fn main_inner() -> Result<()> {
37 let (receiver, sender, threads) = stdio_transport(); 37 let (receiver, sender, threads) = stdio_transport();
38 let cwd = ::std::env::current_dir()?; 38 let cwd = ::std::env::current_dir()?;
39 run_server( 39 run_server(ra_lsp_server::server_capabilities(), receiver, sender, |params, r, s| {
40 ra_lsp_server::server_capabilities(), 40 let root = params.root_uri.and_then(|it| it.to_file_path().ok()).unwrap_or(cwd);
41 receiver, 41 let supports_decorations = params
42 sender, 42 .initialization_options
43 |params, r, s| { 43 .and_then(|v| InitializationOptions::deserialize(v).ok())
44 let root = params 44 .and_then(|it| it.publish_decorations)
45 .root_uri 45 == Some(true);
46 .and_then(|it| it.to_file_path().ok()) 46 ra_lsp_server::main_loop(false, root, supports_decorations, r, s)
47 .unwrap_or(cwd); 47 })?;
48 let supports_decorations = params
49 .initialization_options
50 .and_then(|v| InitializationOptions::deserialize(v).ok())
51 .and_then(|it| it.publish_decorations)
52 == Some(true);
53 ra_lsp_server::main_loop(false, root, supports_decorations, r, s)
54 },
55 )?;
56 log::info!("shutting down IO..."); 48 log::info!("shutting down IO...");
57 threads.join()?; 49 threads.join()?;
58 log::info!("... IO is down"); 50 log::info!("... IO is down");