diff options
Diffstat (limited to 'crates/ra_assists/src/lib.rs')
-rw-r--r-- | crates/ra_assists/src/lib.rs | 100 |
1 files changed, 53 insertions, 47 deletions
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs index 756acf415..5e4e8bc92 100644 --- a/crates/ra_assists/src/lib.rs +++ b/crates/ra_assists/src/lib.rs | |||
@@ -17,6 +17,7 @@ use ra_syntax::{TextRange, TextUnit}; | |||
17 | use ra_text_edit::TextEdit; | 17 | use ra_text_edit::TextEdit; |
18 | 18 | ||
19 | pub(crate) use crate::assist_ctx::{Assist, AssistCtx}; | 19 | pub(crate) use crate::assist_ctx::{Assist, AssistCtx}; |
20 | pub use crate::assists::auto_import::auto_import_text_edit; | ||
20 | 21 | ||
21 | /// Unique identifier of the assist, should not be shown to the user | 22 | /// Unique identifier of the assist, should not be shown to the user |
22 | /// directly. | 23 | /// directly. |
@@ -46,7 +47,7 @@ where | |||
46 | H: HirDatabase + 'static, | 47 | H: HirDatabase + 'static, |
47 | { | 48 | { |
48 | AssistCtx::with_ctx(db, range, false, |ctx| { | 49 | AssistCtx::with_ctx(db, range, false, |ctx| { |
49 | all_assists() | 50 | assists::all() |
50 | .iter() | 51 | .iter() |
51 | .filter_map(|f| f(ctx.clone())) | 52 | .filter_map(|f| f(ctx.clone())) |
52 | .map(|a| match a { | 53 | .map(|a| match a { |
@@ -68,7 +69,7 @@ where | |||
68 | use std::cmp::Ordering; | 69 | use std::cmp::Ordering; |
69 | 70 | ||
70 | AssistCtx::with_ctx(db, range, true, |ctx| { | 71 | AssistCtx::with_ctx(db, range, true, |ctx| { |
71 | let mut a = all_assists() | 72 | let mut a = assists::all() |
72 | .iter() | 73 | .iter() |
73 | .filter_map(|f| f(ctx.clone())) | 74 | .filter_map(|f| f(ctx.clone())) |
74 | .map(|a| match a { | 75 | .map(|a| match a { |
@@ -86,51 +87,56 @@ where | |||
86 | }) | 87 | }) |
87 | } | 88 | } |
88 | 89 | ||
89 | mod add_derive; | 90 | mod assists { |
90 | mod add_explicit_type; | 91 | use crate::{Assist, AssistCtx}; |
91 | mod add_impl; | 92 | use hir::db::HirDatabase; |
92 | mod flip_comma; | 93 | |
93 | mod flip_binexpr; | 94 | mod add_derive; |
94 | mod change_visibility; | 95 | mod add_explicit_type; |
95 | mod fill_match_arms; | 96 | mod add_impl; |
96 | mod merge_match_arms; | 97 | mod flip_comma; |
97 | mod introduce_variable; | 98 | mod flip_binexpr; |
98 | mod inline_local_variable; | 99 | mod change_visibility; |
99 | mod raw_string; | 100 | mod fill_match_arms; |
100 | mod replace_if_let_with_match; | 101 | mod merge_match_arms; |
101 | mod split_import; | 102 | mod introduce_variable; |
102 | mod remove_dbg; | 103 | mod inline_local_variable; |
103 | pub mod auto_import; | 104 | mod raw_string; |
104 | mod add_missing_impl_members; | 105 | mod replace_if_let_with_match; |
105 | mod move_guard; | 106 | mod split_import; |
106 | mod move_bounds; | 107 | mod remove_dbg; |
107 | 108 | pub(crate) mod auto_import; | |
108 | fn all_assists<DB: HirDatabase>() -> &'static [fn(AssistCtx<DB>) -> Option<Assist>] { | 109 | mod add_missing_impl_members; |
109 | &[ | 110 | mod move_guard; |
110 | add_derive::add_derive, | 111 | mod move_bounds; |
111 | add_explicit_type::add_explicit_type, | 112 | |
112 | add_impl::add_impl, | 113 | pub(crate) fn all<DB: HirDatabase>() -> &'static [fn(AssistCtx<DB>) -> Option<Assist>] { |
113 | change_visibility::change_visibility, | 114 | &[ |
114 | fill_match_arms::fill_match_arms, | 115 | add_derive::add_derive, |
115 | merge_match_arms::merge_match_arms, | 116 | add_explicit_type::add_explicit_type, |
116 | flip_comma::flip_comma, | 117 | add_impl::add_impl, |
117 | flip_binexpr::flip_binexpr, | 118 | change_visibility::change_visibility, |
118 | introduce_variable::introduce_variable, | 119 | fill_match_arms::fill_match_arms, |
119 | replace_if_let_with_match::replace_if_let_with_match, | 120 | merge_match_arms::merge_match_arms, |
120 | split_import::split_import, | 121 | flip_comma::flip_comma, |
121 | remove_dbg::remove_dbg, | 122 | flip_binexpr::flip_binexpr, |
122 | auto_import::auto_import, | 123 | introduce_variable::introduce_variable, |
123 | add_missing_impl_members::add_missing_impl_members, | 124 | replace_if_let_with_match::replace_if_let_with_match, |
124 | add_missing_impl_members::add_missing_default_members, | 125 | split_import::split_import, |
125 | inline_local_variable::inline_local_varialbe, | 126 | remove_dbg::remove_dbg, |
126 | move_guard::move_guard_to_arm_body, | 127 | auto_import::auto_import, |
127 | move_guard::move_arm_cond_to_match_guard, | 128 | add_missing_impl_members::add_missing_impl_members, |
128 | move_bounds::move_bounds_to_where_clause, | 129 | add_missing_impl_members::add_missing_default_members, |
129 | raw_string::add_hash, | 130 | inline_local_variable::inline_local_varialbe, |
130 | raw_string::make_raw_string, | 131 | move_guard::move_guard_to_arm_body, |
131 | raw_string::make_usual_string, | 132 | move_guard::move_arm_cond_to_match_guard, |
132 | raw_string::remove_hash, | 133 | move_bounds::move_bounds_to_where_clause, |
133 | ] | 134 | raw_string::add_hash, |
135 | raw_string::make_raw_string, | ||
136 | raw_string::make_usual_string, | ||
137 | raw_string::remove_hash, | ||
138 | ] | ||
139 | } | ||
134 | } | 140 | } |
135 | 141 | ||
136 | #[cfg(test)] | 142 | #[cfg(test)] |