aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_assists/src/lib.rs')
-rw-r--r--crates/ra_assists/src/lib.rs100
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};
17use ra_text_edit::TextEdit; 17use ra_text_edit::TextEdit;
18 18
19pub(crate) use crate::assist_ctx::{Assist, AssistCtx}; 19pub(crate) use crate::assist_ctx::{Assist, AssistCtx};
20pub 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
89mod add_derive; 90mod assists {
90mod add_explicit_type; 91 use crate::{Assist, AssistCtx};
91mod add_impl; 92 use hir::db::HirDatabase;
92mod flip_comma; 93
93mod flip_binexpr; 94 mod add_derive;
94mod change_visibility; 95 mod add_explicit_type;
95mod fill_match_arms; 96 mod add_impl;
96mod merge_match_arms; 97 mod flip_comma;
97mod introduce_variable; 98 mod flip_binexpr;
98mod inline_local_variable; 99 mod change_visibility;
99mod raw_string; 100 mod fill_match_arms;
100mod replace_if_let_with_match; 101 mod merge_match_arms;
101mod split_import; 102 mod introduce_variable;
102mod remove_dbg; 103 mod inline_local_variable;
103pub mod auto_import; 104 mod raw_string;
104mod add_missing_impl_members; 105 mod replace_if_let_with_match;
105mod move_guard; 106 mod split_import;
106mod move_bounds; 107 mod remove_dbg;
107 108 pub(crate) mod auto_import;
108fn 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)]