Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'lib/lsp-server/examples/goto_def.rs')
-rw-r--r--lib/lsp-server/examples/goto_def.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/lsp-server/examples/goto_def.rs b/lib/lsp-server/examples/goto_def.rs
index 2f270afbbf..71f6625406 100644
--- a/lib/lsp-server/examples/goto_def.rs
+++ b/lib/lsp-server/examples/goto_def.rs
@@ -64,7 +64,15 @@ fn main() -> Result<(), Box<dyn Error + Sync + Send>> {
..Default::default()
})
.unwrap();
- let initialization_params = connection.initialize(server_capabilities)?;
+ let initialization_params = match connection.initialize(server_capabilities) {
+ Ok(it) => it,
+ Err(e) => {
+ if e.channel_is_disconnected() {
+ io_threads.join()?;
+ }
+ return Err(e.into());
+ }
+ };
main_loop(connection, initialization_params)?;
io_threads.join()?;