aboutsummaryrefslogtreecommitdiff
path: root/crates/server/src/server_world.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/server/src/server_world.rs')
-rw-r--r--crates/server/src/server_world.rs13
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
8use languageserver_types::Url; 8use languageserver_types::Url;
9use libanalysis::{FileId, AnalysisHost, Analysis, CrateGraph, CrateId}; 9use libanalysis::{FileId, AnalysisHost, Analysis, CrateGraph, CrateId, LibraryData};
10 10
11use { 11use {
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 {