diff options
Diffstat (limited to 'crates/ra_vfs/src')
-rw-r--r-- | crates/ra_vfs/src/io.rs | 4 | ||||
-rw-r--r-- | crates/ra_vfs/src/lib.rs | 14 |
2 files changed, 10 insertions, 8 deletions
diff --git a/crates/ra_vfs/src/io.rs b/crates/ra_vfs/src/io.rs index dc0b84d5a..3952b200b 100644 --- a/crates/ra_vfs/src/io.rs +++ b/crates/ra_vfs/src/io.rs | |||
@@ -169,7 +169,7 @@ fn convert_notify_event(event: DebouncedEvent, sender: &Sender<(PathBuf, ChangeK | |||
169 | // ignore | 169 | // ignore |
170 | } | 170 | } |
171 | DebouncedEvent::Rescan => { | 171 | DebouncedEvent::Rescan => { |
172 | // TODO rescan all roots | 172 | // TODO: rescan all roots |
173 | } | 173 | } |
174 | DebouncedEvent::Create(path) => { | 174 | DebouncedEvent::Create(path) => { |
175 | sender.send((path, ChangeKind::Create)).unwrap(); | 175 | sender.send((path, ChangeKind::Create)).unwrap(); |
@@ -185,7 +185,7 @@ fn convert_notify_event(event: DebouncedEvent, sender: &Sender<(PathBuf, ChangeK | |||
185 | sender.send((dst, ChangeKind::Create)).unwrap(); | 185 | sender.send((dst, ChangeKind::Create)).unwrap(); |
186 | } | 186 | } |
187 | DebouncedEvent::Error(err, path) => { | 187 | DebouncedEvent::Error(err, path) => { |
188 | // TODO should we reload the file contents? | 188 | // TODO: should we reload the file contents? |
189 | log::warn!("watcher error \"{}\", {:?}", err, path); | 189 | log::warn!("watcher error \"{}\", {:?}", err, path); |
190 | } | 190 | } |
191 | } | 191 | } |
diff --git a/crates/ra_vfs/src/lib.rs b/crates/ra_vfs/src/lib.rs index 5d98d905c..3dd05197e 100644 --- a/crates/ra_vfs/src/lib.rs +++ b/crates/ra_vfs/src/lib.rs | |||
@@ -7,8 +7,10 @@ | |||
7 | //! | 7 | //! |
8 | //! It is also responsible for watching the disk for changes, and for merging | 8 | //! It is also responsible for watching the disk for changes, and for merging |
9 | //! editor state (modified, unsaved files) with disk state. | 9 | //! editor state (modified, unsaved files) with disk state. |
10 | //! TODO: Some LSP clients support watching the disk, so this crate should | 10 | //! |
11 | //! to support custom watcher events (related to https://github.com/rust-analyzer/rust-analyzer/issues/131) | 11 | //! TODO: Some LSP clients support watching the disk, so this crate should to |
12 | //! support custom watcher events (related to | ||
13 | //! <https://github.com/rust-analyzer/rust-analyzer/issues/131>) | ||
12 | //! | 14 | //! |
13 | //! VFS is based on a concept of roots: a set of directories on the file system | 15 | //! VFS is based on a concept of roots: a set of directories on the file system |
14 | //! which are watched for changes. Typically, there will be a root for each | 16 | //! which are watched for changes. Typically, there will be a root for each |
@@ -212,12 +214,12 @@ impl Vfs { | |||
212 | let mut cur_files = Vec::new(); | 214 | let mut cur_files = Vec::new(); |
213 | // While we were scanning the root in the background, a file might have | 215 | // While we were scanning the root in the background, a file might have |
214 | // been open in the editor, so we need to account for that. | 216 | // been open in the editor, so we need to account for that. |
215 | let exising = self.root2files[root] | 217 | let existing = self.root2files[root] |
216 | .iter() | 218 | .iter() |
217 | .map(|&file| (self.files[file].path.clone(), file)) | 219 | .map(|&file| (self.files[file].path.clone(), file)) |
218 | .collect::<FxHashMap<_, _>>(); | 220 | .collect::<FxHashMap<_, _>>(); |
219 | for (path, text) in files { | 221 | for (path, text) in files { |
220 | if let Some(&file) = exising.get(&path) { | 222 | if let Some(&file) = existing.get(&path) { |
221 | let text = Arc::clone(&self.files[file].text); | 223 | let text = Arc::clone(&self.files[file].text); |
222 | cur_files.push((file, path, text)); | 224 | cur_files.push((file, path, text)); |
223 | continue; | 225 | continue; |
@@ -322,7 +324,7 @@ impl Vfs { | |||
322 | mem::replace(&mut self.pending_changes, Vec::new()) | 324 | mem::replace(&mut self.pending_changes, Vec::new()) |
323 | } | 325 | } |
324 | 326 | ||
325 | /// Sutdown the VFS and terminate the background watching thread. | 327 | /// Shutdown the VFS and terminate the background watching thread. |
326 | pub fn shutdown(self) -> thread::Result<()> { | 328 | pub fn shutdown(self) -> thread::Result<()> { |
327 | self.worker.shutdown() | 329 | self.worker.shutdown() |
328 | } | 330 | } |
@@ -347,7 +349,7 @@ impl Vfs { | |||
347 | } | 349 | } |
348 | 350 | ||
349 | fn remove_file(&mut self, file: VfsFile) { | 351 | fn remove_file(&mut self, file: VfsFile) { |
350 | //FIXME: use arena with removal | 352 | // FIXME: use arena with removal |
351 | self.files[file].text = Default::default(); | 353 | self.files[file].text = Default::default(); |
352 | self.files[file].path = Default::default(); | 354 | self.files[file].path = Default::default(); |
353 | let root = self.files[file].root; | 355 | let root = self.files[file].root; |