diff options
Diffstat (limited to 'crates/ra_ide/src/lib.rs')
-rw-r--r-- | crates/ra_ide/src/lib.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/crates/ra_ide/src/lib.rs b/crates/ra_ide/src/lib.rs index 689921f3f..f86f98be7 100644 --- a/crates/ra_ide/src/lib.rs +++ b/crates/ra_ide/src/lib.rs | |||
@@ -37,6 +37,7 @@ mod display; | |||
37 | mod inlay_hints; | 37 | mod inlay_hints; |
38 | mod expand; | 38 | mod expand; |
39 | mod expand_macro; | 39 | mod expand_macro; |
40 | mod ssr; | ||
40 | 41 | ||
41 | #[cfg(test)] | 42 | #[cfg(test)] |
42 | mod marks; | 43 | mod marks; |
@@ -71,8 +72,9 @@ pub use crate::{ | |||
71 | references::{ | 72 | references::{ |
72 | Declaration, Reference, ReferenceAccess, ReferenceKind, ReferenceSearchResult, SearchScope, | 73 | Declaration, Reference, ReferenceAccess, ReferenceKind, ReferenceSearchResult, SearchScope, |
73 | }, | 74 | }, |
74 | runnables::{Runnable, RunnableKind}, | 75 | runnables::{Runnable, RunnableKind, TestId}, |
75 | source_change::{FileSystemEdit, SourceChange, SourceFileEdit}, | 76 | source_change::{FileSystemEdit, SourceChange, SourceFileEdit}, |
77 | ssr::SsrError, | ||
76 | syntax_highlighting::HighlightedRange, | 78 | syntax_highlighting::HighlightedRange, |
77 | }; | 79 | }; |
78 | 80 | ||
@@ -464,6 +466,16 @@ impl Analysis { | |||
464 | self.with_db(|db| references::rename(db, position, new_name)) | 466 | self.with_db(|db| references::rename(db, position, new_name)) |
465 | } | 467 | } |
466 | 468 | ||
469 | pub fn structural_search_replace( | ||
470 | &self, | ||
471 | query: &str, | ||
472 | ) -> Cancelable<Result<SourceChange, SsrError>> { | ||
473 | self.with_db(|db| { | ||
474 | let edits = ssr::parse_search_replace(query, db)?; | ||
475 | Ok(SourceChange::source_file_edits("ssr", edits)) | ||
476 | }) | ||
477 | } | ||
478 | |||
467 | /// Performs an operation on that may be Canceled. | 479 | /// Performs an operation on that may be Canceled. |
468 | fn with_db<F: FnOnce(&RootDatabase) -> T + std::panic::UnwindSafe, T>( | 480 | fn with_db<F: FnOnce(&RootDatabase) -> T + std::panic::UnwindSafe, T>( |
469 | &self, | 481 | &self, |