diff options
Diffstat (limited to 'crates/ra_ide_api')
-rw-r--r-- | crates/ra_ide_api/src/lib.rs | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs index 33bef178a..ca6b25516 100644 --- a/crates/ra_ide_api/src/lib.rs +++ b/crates/ra_ide_api/src/lib.rs | |||
@@ -388,8 +388,7 @@ impl Analysis { | |||
388 | &self, | 388 | &self, |
389 | position: FilePosition, | 389 | position: FilePosition, |
390 | ) -> Cancelable<Option<RangeInfo<Vec<NavigationTarget>>>> { | 390 | ) -> Cancelable<Option<RangeInfo<Vec<NavigationTarget>>>> { |
391 | self.db | 391 | self.with_db(|db| goto_definition::goto_definition(db, position)) |
392 | .catch_canceled(|db| goto_definition::goto_definition(db, position)) | ||
393 | } | 392 | } |
394 | 393 | ||
395 | /// Finds all usages of the reference at point. | 394 | /// Finds all usages of the reference at point. |
@@ -404,8 +403,7 @@ impl Analysis { | |||
404 | 403 | ||
405 | /// Computes parameter information for the given call expression. | 404 | /// Computes parameter information for the given call expression. |
406 | pub fn call_info(&self, position: FilePosition) -> Cancelable<Option<CallInfo>> { | 405 | pub fn call_info(&self, position: FilePosition) -> Cancelable<Option<CallInfo>> { |
407 | self.db | 406 | self.with_db(|db| call_info::call_info(db, position)) |
408 | .catch_canceled(|db| call_info::call_info(db, position)) | ||
409 | } | 407 | } |
410 | 408 | ||
411 | /// Returns a `mod name;` declaration which created the current module. | 409 | /// Returns a `mod name;` declaration which created the current module. |
@@ -420,33 +418,28 @@ impl Analysis { | |||
420 | 418 | ||
421 | /// Returns the root file of the given crate. | 419 | /// Returns the root file of the given crate. |
422 | pub fn crate_root(&self, crate_id: CrateId) -> Cancelable<FileId> { | 420 | pub fn crate_root(&self, crate_id: CrateId) -> Cancelable<FileId> { |
423 | Ok(self.db.crate_graph().crate_root(crate_id)) | 421 | self.with_db(|db| db.crate_graph().crate_root(crate_id)) |
424 | } | 422 | } |
425 | 423 | ||
426 | /// Returns the set of possible targets to run for the current file. | 424 | /// Returns the set of possible targets to run for the current file. |
427 | pub fn runnables(&self, file_id: FileId) -> Cancelable<Vec<Runnable>> { | 425 | pub fn runnables(&self, file_id: FileId) -> Cancelable<Vec<Runnable>> { |
428 | self.db | 426 | self.with_db(|db| runnables::runnables(db, file_id)) |
429 | .catch_canceled(|db| runnables::runnables(db, file_id)) | ||
430 | } | 427 | } |
431 | 428 | ||
432 | /// Computes syntax highlighting for the given file. | 429 | /// Computes syntax highlighting for the given file. |
433 | pub fn highlight(&self, file_id: FileId) -> Cancelable<Vec<HighlightedRange>> { | 430 | pub fn highlight(&self, file_id: FileId) -> Cancelable<Vec<HighlightedRange>> { |
434 | self.db | 431 | self.with_db(|db| syntax_highlighting::highlight(db, file_id)) |
435 | .catch_canceled(|db| syntax_highlighting::highlight(db, file_id)) | ||
436 | } | 432 | } |
437 | 433 | ||
438 | /// Computes completions at the given position. | 434 | /// Computes completions at the given position. |
439 | pub fn completions(&self, position: FilePosition) -> Cancelable<Option<Vec<CompletionItem>>> { | 435 | pub fn completions(&self, position: FilePosition) -> Cancelable<Option<Vec<CompletionItem>>> { |
440 | let completions = self | 436 | self.with_db(|db| completion::completions(db, position).map(Into::into)) |
441 | .db | ||
442 | .catch_canceled(|db| completion::completions(db, position))?; | ||
443 | Ok(completions.map(|it| it.into())) | ||
444 | } | 437 | } |
445 | 438 | ||
446 | /// Computes assists (aks code actons aka intentions) for the given | 439 | /// Computes assists (aks code actons aka intentions) for the given |
447 | /// position. | 440 | /// position. |
448 | pub fn assists(&self, frange: FileRange) -> Cancelable<Vec<SourceChange>> { | 441 | pub fn assists(&self, frange: FileRange) -> Cancelable<Vec<SourceChange>> { |
449 | Ok(self.db.assists(frange)) | 442 | self.with_db(|db| db.assists(frange)) |
450 | } | 443 | } |
451 | 444 | ||
452 | /// Computes the set of diagnostics for the given file. | 445 | /// Computes the set of diagnostics for the given file. |