diff options
Diffstat (limited to 'crates/ra_lsp_server')
-rw-r--r-- | crates/ra_lsp_server/src/conv.rs | 4 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/main.rs | 2 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/main_loop/handlers.rs | 8 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/project_model.rs | 1 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/server_world.rs | 4 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/thread_watcher.rs | 10 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/vfs.rs | 1 |
7 files changed, 14 insertions, 16 deletions
diff --git a/crates/ra_lsp_server/src/conv.rs b/crates/ra_lsp_server/src/conv.rs index 8325e8c1e..bc0cf7c68 100644 --- a/crates/ra_lsp_server/src/conv.rs +++ b/crates/ra_lsp_server/src/conv.rs | |||
@@ -65,7 +65,7 @@ impl ConvWith for TextUnit { | |||
65 | fn conv_with(self, line_index: &LineIndex) -> Position { | 65 | fn conv_with(self, line_index: &LineIndex) -> Position { |
66 | let line_col = line_index.line_col(self); | 66 | let line_col = line_index.line_col(self); |
67 | // TODO: UTF-16 | 67 | // TODO: UTF-16 |
68 | Position::new(line_col.line as u64, u32::from(line_col.col) as u64) | 68 | Position::new(u64::from(line_col.line), u64::from(u32::from(line_col.col))) |
69 | } | 69 | } |
70 | } | 70 | } |
71 | 71 | ||
@@ -192,7 +192,7 @@ impl TryConvWith for SourceChange { | |||
192 | .map(|it| it.edits.as_slice()) | 192 | .map(|it| it.edits.as_slice()) |
193 | .unwrap_or(&[]); | 193 | .unwrap_or(&[]); |
194 | let line_col = translate_offset_with_edit(&*line_index, pos.offset, edits); | 194 | let line_col = translate_offset_with_edit(&*line_index, pos.offset, edits); |
195 | let position = Position::new(line_col.line as u64, u32::from(line_col.col) as u64); | 195 | let position = Position::new(u64::from(line_col.line), u64::from(u32::from(line_col.col))); |
196 | Some(TextDocumentPositionParams { | 196 | Some(TextDocumentPositionParams { |
197 | text_document: TextDocumentIdentifier::new(pos.file_id.try_conv_with(world)?), | 197 | text_document: TextDocumentIdentifier::new(pos.file_id.try_conv_with(world)?), |
198 | position, | 198 | position, |
diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index 9f62347f1..c07eb0140 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs | |||
@@ -18,7 +18,7 @@ fn main() -> Result<()> { | |||
18 | .directory("log") | 18 | .directory("log") |
19 | .start()?; | 19 | .start()?; |
20 | info!("lifecycle: server started"); | 20 | info!("lifecycle: server started"); |
21 | match ::std::panic::catch_unwind(|| main_inner()) { | 21 | match ::std::panic::catch_unwind(main_inner) { |
22 | Ok(res) => { | 22 | Ok(res) => { |
23 | info!("lifecycle: terminating process with {:?}", res); | 23 | info!("lifecycle: terminating process with {:?}", res); |
24 | res | 24 | res |
diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs index f5dff4c80..11f34eb93 100644 --- a/crates/ra_lsp_server/src/main_loop/handlers.rs +++ b/crates/ra_lsp_server/src/main_loop/handlers.rs | |||
@@ -154,8 +154,8 @@ pub fn handle_workspace_symbol( | |||
154 | world: ServerWorld, | 154 | world: ServerWorld, |
155 | params: req::WorkspaceSymbolParams, | 155 | params: req::WorkspaceSymbolParams, |
156 | ) -> Result<Option<Vec<SymbolInformation>>> { | 156 | ) -> Result<Option<Vec<SymbolInformation>>> { |
157 | let all_symbols = params.query.contains("#"); | 157 | let all_symbols = params.query.contains('#'); |
158 | let libs = params.query.contains("*"); | 158 | let libs = params.query.contains('*'); |
159 | let query = { | 159 | let query = { |
160 | let query: String = params | 160 | let query: String = params |
161 | .query | 161 | .query |
@@ -279,8 +279,8 @@ pub fn handle_runnables( | |||
279 | .filter_map(|ws| { | 279 | .filter_map(|ws| { |
280 | let tgt = ws.target_by_root(path)?; | 280 | let tgt = ws.target_by_root(path)?; |
281 | Some(( | 281 | Some(( |
282 | tgt.package(ws).name(ws).clone(), | 282 | tgt.package(ws).name(ws), |
283 | tgt.name(ws).clone(), | 283 | tgt.name(ws), |
284 | tgt.kind(ws), | 284 | tgt.kind(ws), |
285 | )) | 285 | )) |
286 | }) | 286 | }) |
diff --git a/crates/ra_lsp_server/src/project_model.rs b/crates/ra_lsp_server/src/project_model.rs index 04e2ef9c8..cabb336a3 100644 --- a/crates/ra_lsp_server/src/project_model.rs +++ b/crates/ra_lsp_server/src/project_model.rs | |||
@@ -173,7 +173,6 @@ pub fn workspace_loader() -> (Worker<PathBuf, Result<CargoWorkspace>>, ThreadWat | |||
173 | 1, | 173 | 1, |
174 | |input_receiver, output_sender| { | 174 | |input_receiver, output_sender| { |
175 | input_receiver | 175 | input_receiver |
176 | .into_iter() | ||
177 | .map(|path| CargoWorkspace::from_cargo_metadata(path.as_path())) | 176 | .map(|path| CargoWorkspace::from_cargo_metadata(path.as_path())) |
178 | .for_each(|it| output_sender.send(it)) | 177 | .for_each(|it| output_sender.send(it)) |
179 | }, | 178 | }, |
diff --git a/crates/ra_lsp_server/src/server_world.rs b/crates/ra_lsp_server/src/server_world.rs index 35ff65ea1..69b2a1cd1 100644 --- a/crates/ra_lsp_server/src/server_world.rs +++ b/crates/ra_lsp_server/src/server_world.rs | |||
@@ -73,9 +73,7 @@ impl ServerWorldState { | |||
73 | events | 73 | events |
74 | .into_iter() | 74 | .into_iter() |
75 | .map(|event| { | 75 | .map(|event| { |
76 | let text = match event.kind { | 76 | let FileEventKind::Add(text) = event.kind; |
77 | FileEventKind::Add(text) => text, | ||
78 | }; | ||
79 | (event.path, text) | 77 | (event.path, text) |
80 | }) | 78 | }) |
81 | .map(|(path, text)| (pm.get_or_insert(path, Root::Lib), text)) | 79 | .map(|(path, text)| (pm.get_or_insert(path, Root::Lib), text)) |
diff --git a/crates/ra_lsp_server/src/thread_watcher.rs b/crates/ra_lsp_server/src/thread_watcher.rs index 51b35fa66..5143c77ae 100644 --- a/crates/ra_lsp_server/src/thread_watcher.rs +++ b/crates/ra_lsp_server/src/thread_watcher.rs | |||
@@ -17,8 +17,7 @@ impl<I, O> Worker<I, O> { | |||
17 | I: Send + 'static, | 17 | I: Send + 'static, |
18 | O: Send + 'static, | 18 | O: Send + 'static, |
19 | { | 19 | { |
20 | let ((inp, out), inp_r, out_s) = worker_chan(buf); | 20 | let (worker, inp_r, out_s) = worker_chan(buf); |
21 | let worker = Worker { inp, out }; | ||
22 | let watcher = ThreadWatcher::spawn(name, move || f(inp_r, out_s)); | 21 | let watcher = ThreadWatcher::spawn(name, move || f(inp_r, out_s)); |
23 | (worker, watcher) | 22 | (worker, watcher) |
24 | } | 23 | } |
@@ -67,11 +66,14 @@ impl ThreadWatcher { | |||
67 | /// Sets up worker channels in a deadlock-avoind way. | 66 | /// Sets up worker channels in a deadlock-avoind way. |
68 | /// If one sets both input and output buffers to a fixed size, | 67 | /// If one sets both input and output buffers to a fixed size, |
69 | /// a worker might get stuck. | 68 | /// a worker might get stuck. |
70 | fn worker_chan<I, O>(buf: usize) -> ((Sender<I>, Receiver<O>), Receiver<I>, Sender<O>) { | 69 | fn worker_chan<I, O>(buf: usize) -> (Worker<I, O>, Receiver<I>, Sender<O>) { |
71 | let (input_sender, input_receiver) = bounded::<I>(buf); | 70 | let (input_sender, input_receiver) = bounded::<I>(buf); |
72 | let (output_sender, output_receiver) = unbounded::<O>(); | 71 | let (output_sender, output_receiver) = unbounded::<O>(); |
73 | ( | 72 | ( |
74 | (input_sender, output_receiver), | 73 | Worker { |
74 | inp: input_sender, | ||
75 | out: output_receiver, | ||
76 | }, | ||
75 | input_receiver, | 77 | input_receiver, |
76 | output_sender, | 78 | output_sender, |
77 | ) | 79 | ) |
diff --git a/crates/ra_lsp_server/src/vfs.rs b/crates/ra_lsp_server/src/vfs.rs index 417a3c19a..6e317d854 100644 --- a/crates/ra_lsp_server/src/vfs.rs +++ b/crates/ra_lsp_server/src/vfs.rs | |||
@@ -24,7 +24,6 @@ pub fn roots_loader() -> (Worker<PathBuf, (PathBuf, Vec<FileEvent>)>, ThreadWatc | |||
24 | 128, | 24 | 128, |
25 | |input_receiver, output_sender| { | 25 | |input_receiver, output_sender| { |
26 | input_receiver | 26 | input_receiver |
27 | .into_iter() | ||
28 | .map(|path| { | 27 | .map(|path| { |
29 | debug!("loading {} ...", path.as_path().display()); | 28 | debug!("loading {} ...", path.as_path().display()); |
30 | let events = load_root(path.as_path()); | 29 | let events = load_root(path.as_path()); |