From 55e87e0b742b46d40b1a5ef1598804e48e45f0e0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 17 Aug 2018 00:18:14 +0300 Subject: mod resolve work --- crates/server/src/main_loop/mod.rs | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'crates/server/src/main_loop') diff --git a/crates/server/src/main_loop/mod.rs b/crates/server/src/main_loop/mod.rs index 1fbcc7d1f..a8340df59 100644 --- a/crates/server/src/main_loop/mod.rs +++ b/crates/server/src/main_loop/mod.rs @@ -167,7 +167,10 @@ fn on_request( dispatch::handle_request::(&mut req, |params, resp| { io.send(RawMsg::Response(resp.into_response(Ok(None))?)); - let world = world.snapshot(); + let world = world.snapshot({ + let pm = path_map.clone(); + move |id, path| pm.resolve(id, path) + }); let path_map = path_map.clone(); let sender = sender.clone(); pool.execute(move || { @@ -234,7 +237,14 @@ fn on_notification( mem_map.insert(file_id, None); world.change_file(file_id, Some(params.text_document.text)); update_file_notifications_on_threadpool( - pool, world.snapshot(), path_map.clone(), sender.clone(), uri, + pool, + world.snapshot({ + let pm = path_map.clone(); + move |id, path| pm.resolve(id, path) + }), + path_map.clone(), + sender.clone(), + uri, ); Ok(()) })?; @@ -245,7 +255,14 @@ fn on_notification( .text; world.change_file(file_id, Some(text)); update_file_notifications_on_threadpool( - pool, world.snapshot(), path_map.clone(), sender.clone(), params.text_document.uri, + pool, + world.snapshot({ + let pm = path_map.clone(); + move |id, path| pm.resolve(id, path) + }), + path_map.clone(), + sender.clone(), + params.text_document.uri, ); Ok(()) })?; @@ -281,7 +298,10 @@ fn handle_request_on_threadpool( ) -> Result<()> { dispatch::handle_request::(req, |params, resp| { - let world = world.snapshot(); + let world = world.snapshot({ + let pm = path_map.clone(); + move |id, path| pm.resolve(id, path) + }); let path_map = path_map.clone(); let sender = sender.clone(); pool.execute(move || { -- cgit v1.2.3