diff options
Diffstat (limited to 'crates/server/src/server_world.rs')
-rw-r--r-- | crates/server/src/server_world.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/server/src/server_world.rs b/crates/server/src/server_world.rs index 95c109e10..729418eaa 100644 --- a/crates/server/src/server_world.rs +++ b/crates/server/src/server_world.rs | |||
@@ -6,7 +6,7 @@ use std::{ | |||
6 | }; | 6 | }; |
7 | 7 | ||
8 | use languageserver_types::Url; | 8 | use languageserver_types::Url; |
9 | use libanalysis::{FileId, AnalysisHost, Analysis, CrateGraph, CrateId}; | 9 | use libanalysis::{FileId, AnalysisHost, Analysis, CrateGraph, CrateId, LibraryData}; |
10 | 10 | ||
11 | use { | 11 | use { |
12 | Result, | 12 | Result, |
@@ -64,17 +64,20 @@ impl ServerWorldState { | |||
64 | 64 | ||
65 | self.analysis_host.change_files(changes); | 65 | self.analysis_host.change_files(changes); |
66 | } | 66 | } |
67 | pub fn add_library(&mut self, events: Vec<FileEvent>) { | 67 | pub fn events_to_files(&mut self, events: Vec<FileEvent>) -> Vec<(FileId, String)> { |
68 | let pm = &mut self.path_map; | 68 | let pm = &mut self.path_map; |
69 | let files = events.into_iter() | 69 | events.into_iter() |
70 | .map(|event| { | 70 | .map(|event| { |
71 | let text = match event.kind { | 71 | let text = match event.kind { |
72 | FileEventKind::Add(text) => text, | 72 | FileEventKind::Add(text) => text, |
73 | }; | 73 | }; |
74 | (event.path, text) | 74 | (event.path, text) |
75 | }) | 75 | }) |
76 | .map(|(path, text)| (pm.get_or_insert(path), text)); | 76 | .map(|(path, text)| (pm.get_or_insert(path), text)) |
77 | self.analysis_host.add_library(files); | 77 | .collect() |
78 | } | ||
79 | pub fn add_lib(&mut self, data: LibraryData) { | ||
80 | self.analysis_host.add_library(data); | ||
78 | } | 81 | } |
79 | 82 | ||
80 | pub fn add_mem_file(&mut self, path: PathBuf, text: String) -> FileId { | 83 | pub fn add_mem_file(&mut self, path: PathBuf, text: String) -> FileId { |