diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_assists/src/assists/add_derive.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/add_explicit_type.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/add_impl.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/add_missing_impl_members.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/apply_demorgan.rs | 2 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/change_visibility.rs | 13 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/fill_match_arms.rs | 24 | ||||
-rw-r--r-- | crates/ra_assists/src/doc_tests/generated.rs | 39 |
8 files changed, 84 insertions, 2 deletions
diff --git a/crates/ra_assists/src/assists/add_derive.rs b/crates/ra_assists/src/assists/add_derive.rs index d3ba634c4..b077acb81 100644 --- a/crates/ra_assists/src/assists/add_derive.rs +++ b/crates/ra_assists/src/assists/add_derive.rs | |||
@@ -8,7 +8,9 @@ use ra_syntax::{ | |||
8 | use crate::{Assist, AssistCtx, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
9 | 9 | ||
10 | // Assist: add_derive | 10 | // Assist: add_derive |
11 | // | ||
11 | // Adds a new `#[derive()]` clause to a struct or enum. | 12 | // Adds a new `#[derive()]` clause to a struct or enum. |
13 | // | ||
12 | // ``` | 14 | // ``` |
13 | // struct Point { | 15 | // struct Point { |
14 | // x: u32, | 16 | // x: u32, |
diff --git a/crates/ra_assists/src/assists/add_explicit_type.rs b/crates/ra_assists/src/assists/add_explicit_type.rs index 33b7bea7f..302b95579 100644 --- a/crates/ra_assists/src/assists/add_explicit_type.rs +++ b/crates/ra_assists/src/assists/add_explicit_type.rs | |||
@@ -7,7 +7,9 @@ use ra_syntax::{ | |||
7 | use crate::{Assist, AssistCtx, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
8 | 8 | ||
9 | // Assist: add_explicit_type | 9 | // Assist: add_explicit_type |
10 | // | ||
10 | // Specify type for a let binding | 11 | // Specify type for a let binding |
12 | // | ||
11 | // ``` | 13 | // ``` |
12 | // fn main() { | 14 | // fn main() { |
13 | // let x<|> = 92; | 15 | // let x<|> = 92; |
diff --git a/crates/ra_assists/src/assists/add_impl.rs b/crates/ra_assists/src/assists/add_impl.rs index 40bc5c464..43aeac7bd 100644 --- a/crates/ra_assists/src/assists/add_impl.rs +++ b/crates/ra_assists/src/assists/add_impl.rs | |||
@@ -9,7 +9,9 @@ use ra_syntax::{ | |||
9 | use crate::{Assist, AssistCtx, AssistId}; | 9 | use crate::{Assist, AssistCtx, AssistId}; |
10 | 10 | ||
11 | // Assist: add_impl | 11 | // Assist: add_impl |
12 | // | ||
12 | // Adds a new inherent impl for a type | 13 | // Adds a new inherent impl for a type |
14 | // | ||
13 | // ``` | 15 | // ``` |
14 | // struct Ctx<T: Clone> { | 16 | // struct Ctx<T: Clone> { |
15 | // data: T,<|> | 17 | // data: T,<|> |
diff --git a/crates/ra_assists/src/assists/add_missing_impl_members.rs b/crates/ra_assists/src/assists/add_missing_impl_members.rs index 36fa6f9ea..fe1f2e72e 100644 --- a/crates/ra_assists/src/assists/add_missing_impl_members.rs +++ b/crates/ra_assists/src/assists/add_missing_impl_members.rs | |||
@@ -13,7 +13,9 @@ enum AddMissingImplMembersMode { | |||
13 | } | 13 | } |
14 | 14 | ||
15 | // Assist: add_impl_missing_members | 15 | // Assist: add_impl_missing_members |
16 | // | ||
16 | // Adds scaffold for required impl members | 17 | // Adds scaffold for required impl members |
18 | // | ||
17 | // ``` | 19 | // ``` |
18 | // trait T { | 20 | // trait T { |
19 | // Type X; | 21 | // Type X; |
diff --git a/crates/ra_assists/src/assists/apply_demorgan.rs b/crates/ra_assists/src/assists/apply_demorgan.rs index a072f63e7..75144cefe 100644 --- a/crates/ra_assists/src/assists/apply_demorgan.rs +++ b/crates/ra_assists/src/assists/apply_demorgan.rs | |||
@@ -5,11 +5,13 @@ use ra_syntax::SyntaxNode; | |||
5 | use crate::{Assist, AssistCtx, AssistId}; | 5 | use crate::{Assist, AssistCtx, AssistId}; |
6 | 6 | ||
7 | // Assist: apply_demorgan | 7 | // Assist: apply_demorgan |
8 | // | ||
8 | // Apply [De Morgan's law](https://en.wikipedia.org/wiki/De_Morgan%27s_laws). | 9 | // Apply [De Morgan's law](https://en.wikipedia.org/wiki/De_Morgan%27s_laws). |
9 | // This transforms expressions of the form `!l || !r` into `!(l && r)`. | 10 | // This transforms expressions of the form `!l || !r` into `!(l && r)`. |
10 | // This also works with `&&`. This assist can only be applied with the cursor | 11 | // This also works with `&&`. This assist can only be applied with the cursor |
11 | // on either `||` or `&&`, with both operands being a negation of some kind. | 12 | // on either `||` or `&&`, with both operands being a negation of some kind. |
12 | // This means something of the form `!x` or `x != y`. | 13 | // This means something of the form `!x` or `x != y`. |
14 | // | ||
13 | // ``` | 15 | // ``` |
14 | // fn main() { | 16 | // fn main() { |
15 | // if x != 4 ||<|> !y {} | 17 | // if x != 4 ||<|> !y {} |
diff --git a/crates/ra_assists/src/assists/change_visibility.rs b/crates/ra_assists/src/assists/change_visibility.rs index df92c6b67..88118cdf7 100644 --- a/crates/ra_assists/src/assists/change_visibility.rs +++ b/crates/ra_assists/src/assists/change_visibility.rs | |||
@@ -1,5 +1,3 @@ | |||
1 | //! FIXME: write short doc here | ||
2 | |||
3 | use hir::db::HirDatabase; | 1 | use hir::db::HirDatabase; |
4 | use ra_syntax::{ | 2 | use ra_syntax::{ |
5 | ast::{self, NameOwner, VisibilityOwner}, | 3 | ast::{self, NameOwner, VisibilityOwner}, |
@@ -13,6 +11,17 @@ use ra_syntax::{ | |||
13 | 11 | ||
14 | use crate::{Assist, AssistCtx, AssistId}; | 12 | use crate::{Assist, AssistCtx, AssistId}; |
15 | 13 | ||
14 | // Assist: change_visibility | ||
15 | // | ||
16 | // Adds or changes existing visibility specifier. | ||
17 | // | ||
18 | // ``` | ||
19 | // fn<|> frobnicate() {} | ||
20 | // ``` | ||
21 | // -> | ||
22 | // ``` | ||
23 | // pub(crate) fn frobnicate() {} | ||
24 | // ``` | ||
16 | pub(crate) fn change_visibility(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 25 | pub(crate) fn change_visibility(ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
17 | if let Some(vis) = ctx.node_at_offset::<ast::Visibility>() { | 26 | if let Some(vis) = ctx.node_at_offset::<ast::Visibility>() { |
18 | return change_vis(ctx, vis); | 27 | return change_vis(ctx, vis); |
diff --git a/crates/ra_assists/src/assists/fill_match_arms.rs b/crates/ra_assists/src/assists/fill_match_arms.rs index e3f30b5de..13b98d033 100644 --- a/crates/ra_assists/src/assists/fill_match_arms.rs +++ b/crates/ra_assists/src/assists/fill_match_arms.rs | |||
@@ -7,6 +7,30 @@ use ra_syntax::ast::{self, edit::IndentLevel, make, AstNode, NameOwner}; | |||
7 | 7 | ||
8 | use crate::{Assist, AssistCtx, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
9 | 9 | ||
10 | // Assist: fill_match_arms | ||
11 | // | ||
12 | // Adds missing clauses to a `match` expression. | ||
13 | // | ||
14 | // ``` | ||
15 | // enum Action { Move { distance: u32 }, Stop } | ||
16 | // | ||
17 | // fn handle(action: Action) { | ||
18 | // match action { | ||
19 | // <|> | ||
20 | // } | ||
21 | // } | ||
22 | // ``` | ||
23 | // -> | ||
24 | // ``` | ||
25 | // enum Action { Move { distance: u32 }, Stop } | ||
26 | // | ||
27 | // fn handle(action: Action) { | ||
28 | // match action { | ||
29 | // Action::Move{ distance } => (), | ||
30 | // Action::Stop => (), | ||
31 | // } | ||
32 | // } | ||
33 | // ``` | ||
10 | pub(crate) fn fill_match_arms(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { | 34 | pub(crate) fn fill_match_arms(mut ctx: AssistCtx<impl HirDatabase>) -> Option<Assist> { |
11 | let match_expr = ctx.node_at_offset::<ast::MatchExpr>()?; | 35 | let match_expr = ctx.node_at_offset::<ast::MatchExpr>()?; |
12 | let match_arm_list = match_expr.match_arm_list()?; | 36 | let match_arm_list = match_expr.match_arm_list()?; |
diff --git a/crates/ra_assists/src/doc_tests/generated.rs b/crates/ra_assists/src/doc_tests/generated.rs index 76d86b93d..2f36c3baa 100644 --- a/crates/ra_assists/src/doc_tests/generated.rs +++ b/crates/ra_assists/src/doc_tests/generated.rs | |||
@@ -142,6 +142,19 @@ fn main() { | |||
142 | } | 142 | } |
143 | 143 | ||
144 | #[test] | 144 | #[test] |
145 | fn doctest_change_visibility() { | ||
146 | check( | ||
147 | "change_visibility", | ||
148 | r#####" | ||
149 | fn<|> frobnicate() {} | ||
150 | "#####, | ||
151 | r#####" | ||
152 | pub(crate) fn frobnicate() {} | ||
153 | "#####, | ||
154 | ) | ||
155 | } | ||
156 | |||
157 | #[test] | ||
145 | fn doctest_convert_to_guarded_return() { | 158 | fn doctest_convert_to_guarded_return() { |
146 | check( | 159 | check( |
147 | "convert_to_guarded_return", | 160 | "convert_to_guarded_return", |
@@ -164,3 +177,29 @@ fn main() { | |||
164 | "#####, | 177 | "#####, |
165 | ) | 178 | ) |
166 | } | 179 | } |
180 | |||
181 | #[test] | ||
182 | fn doctest_fill_match_arms() { | ||
183 | check( | ||
184 | "fill_match_arms", | ||
185 | r#####" | ||
186 | enum Action { Move { distance: u32 }, Stop } | ||
187 | |||
188 | fn handle(action: Action) { | ||
189 | match action { | ||
190 | <|> | ||
191 | } | ||
192 | } | ||
193 | "#####, | ||
194 | r#####" | ||
195 | enum Action { Move { distance: u32 }, Stop } | ||
196 | |||
197 | fn handle(action: Action) { | ||
198 | match action { | ||
199 | Action::Move{ distance } => (), | ||
200 | Action::Stop => (), | ||
201 | } | ||
202 | } | ||
203 | "#####, | ||
204 | ) | ||
205 | } | ||