diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-06 11:52:57 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-05-06 11:52:57 +0100 |
commit | 4de3c3eedc1f6576d59e00f0ddde3c70c97be066 (patch) | |
tree | 7922dca3f7c4133e2616257be537428337e479d6 /crates/ra_assists/src/handlers/change_visibility.rs | |
parent | ede8906844e206f252810d58533538cf1fb326d4 (diff) | |
parent | 233f01c9ba555e5d06f336cb0ff64e7a83e4a23a (diff) |
Merge #4341
4341: Move target to AssistLabel r=matklad a=matklad
Target is used for assists sorting, so we need it before we compute
the action.
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_assists/src/handlers/change_visibility.rs')
-rw-r--r-- | crates/ra_assists/src/handlers/change_visibility.rs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/crates/ra_assists/src/handlers/change_visibility.rs b/crates/ra_assists/src/handlers/change_visibility.rs index 6ac1f8e69..489db83e6 100644 --- a/crates/ra_assists/src/handlers/change_visibility.rs +++ b/crates/ra_assists/src/handlers/change_visibility.rs | |||
@@ -66,11 +66,15 @@ fn add_vis(ctx: AssistCtx) -> Option<Assist> { | |||
66 | return None; | 66 | return None; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | ctx.add_assist(AssistId("change_visibility"), "Change visibility to pub(crate)", |edit| { | 69 | ctx.add_assist( |
70 | edit.target(target); | 70 | AssistId("change_visibility"), |
71 | edit.insert(offset, "pub(crate) "); | 71 | "Change visibility to pub(crate)", |
72 | edit.set_cursor(offset); | 72 | target, |
73 | }) | 73 | |edit| { |
74 | edit.insert(offset, "pub(crate) "); | ||
75 | edit.set_cursor(offset); | ||
76 | }, | ||
77 | ) | ||
74 | } | 78 | } |
75 | 79 | ||
76 | fn vis_offset(node: &SyntaxNode) -> TextSize { | 80 | fn vis_offset(node: &SyntaxNode) -> TextSize { |
@@ -86,22 +90,28 @@ fn vis_offset(node: &SyntaxNode) -> TextSize { | |||
86 | 90 | ||
87 | fn change_vis(ctx: AssistCtx, vis: ast::Visibility) -> Option<Assist> { | 91 | fn change_vis(ctx: AssistCtx, vis: ast::Visibility) -> Option<Assist> { |
88 | if vis.syntax().text() == "pub" { | 92 | if vis.syntax().text() == "pub" { |
93 | let target = vis.syntax().text_range(); | ||
89 | return ctx.add_assist( | 94 | return ctx.add_assist( |
90 | AssistId("change_visibility"), | 95 | AssistId("change_visibility"), |
91 | "Change Visibility to pub(crate)", | 96 | "Change Visibility to pub(crate)", |
97 | target, | ||
92 | |edit| { | 98 | |edit| { |
93 | edit.target(vis.syntax().text_range()); | ||
94 | edit.replace(vis.syntax().text_range(), "pub(crate)"); | 99 | edit.replace(vis.syntax().text_range(), "pub(crate)"); |
95 | edit.set_cursor(vis.syntax().text_range().start()) | 100 | edit.set_cursor(vis.syntax().text_range().start()) |
96 | }, | 101 | }, |
97 | ); | 102 | ); |
98 | } | 103 | } |
99 | if vis.syntax().text() == "pub(crate)" { | 104 | if vis.syntax().text() == "pub(crate)" { |
100 | return ctx.add_assist(AssistId("change_visibility"), "Change visibility to pub", |edit| { | 105 | let target = vis.syntax().text_range(); |
101 | edit.target(vis.syntax().text_range()); | 106 | return ctx.add_assist( |
102 | edit.replace(vis.syntax().text_range(), "pub"); | 107 | AssistId("change_visibility"), |
103 | edit.set_cursor(vis.syntax().text_range().start()); | 108 | "Change visibility to pub", |
104 | }); | 109 | target, |
110 | |edit| { | ||
111 | edit.replace(vis.syntax().text_range(), "pub"); | ||
112 | edit.set_cursor(vis.syntax().text_range().start()); | ||
113 | }, | ||
114 | ); | ||
105 | } | 115 | } |
106 | None | 116 | None |
107 | } | 117 | } |