diff options
| author | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2025-02-24 13:37:06 -0500 |
|---|---|---|
| committer | Giga Bowser <45986823+Giga-Bowser@users.noreply.github.com> | 2025-02-24 13:58:34 -0500 |
| commit | 1ff2593da98bb0c5e77d99eded59f039b9014b0d (patch) | |
| tree | f60fb74ff68e560374b637bdcdf7080a52c2d748 /src | |
| parent | a9dbd4988b549b97d251d9708d7d86a30945e6c9 (diff) | |
| download | rust-1ff2593da98bb0c5e77d99eded59f039b9014b0d.tar.gz rust-1ff2593da98bb0c5e77d99eded59f039b9014b0d.zip | |
minor: Add tabstop to impl body in `generate_trait_impl` assist
Diffstat (limited to 'src')
3 files changed, 18 insertions, 14 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_impl.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_impl.rs index 7b7dac9a3d6..4439830947a 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_impl.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/generate_impl.rs @@ -78,7 +78,7 @@ pub(crate) fn generate_impl(acc: &mut Assists, ctx: &AssistContext<'_>) -> Optio // data: T, // } // -// impl<T: Clone> ${0:_} for Ctx<T> {} +// impl<T: Clone> ${1:_} for Ctx<T> {$0} // ``` pub(crate) fn generate_trait_impl(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> { let nominal = ctx.find_node_at_offset::<ast::Adt>()?; @@ -102,6 +102,10 @@ pub(crate) fn generate_trait_impl(acc: &mut Assists, ctx: &AssistContext<'_>) -> if let Some(trait_) = impl_.trait_() { edit.add_placeholder_snippet(cap, trait_); } + + if let Some(l_curly) = impl_.assoc_item_list().and_then(|it| it.l_curly_token()) { + edit.add_tabstop_after_token(cap, l_curly); + } } insert_impl(impl_, &edit.make_mut(nominal)); @@ -278,7 +282,7 @@ mod tests { r#" struct Foo {} - impl ${0:_} for Foo {} + impl ${1:_} for Foo {$0} "#, ); } @@ -293,7 +297,7 @@ mod tests { r#" struct Foo<T: Clone> {} - impl<T: Clone> ${0:_} for Foo<T> {} + impl<T: Clone> ${1:_} for Foo<T> {$0} "#, ); } @@ -308,7 +312,7 @@ mod tests { r#" struct Foo<'a, T: Foo<'a>> {} - impl<'a, T: Foo<'a>> ${0:_} for Foo<'a, T> {} + impl<'a, T: Foo<'a>> ${1:_} for Foo<'a, T> {$0} "#, ); } @@ -326,7 +330,7 @@ mod tests { struct Foo<'a, T: Foo<'a>> {} #[cfg(feature = "foo")] - impl<'a, T: Foo<'a>> ${0:_} for Foo<'a, T> {} + impl<'a, T: Foo<'a>> ${1:_} for Foo<'a, T> {$0} "#, ); } @@ -341,7 +345,7 @@ mod tests { r#" struct Defaulted<T = i32> {} - impl<T> ${0:_} for Defaulted<T> {} + impl<T> ${1:_} for Defaulted<T> {$0} "#, ); } @@ -356,7 +360,7 @@ mod tests { r#" struct Defaulted<'a, 'b: 'a, T: Debug + Clone + 'a + 'b = String, const S: usize> {} - impl<'a, 'b: 'a, T: Debug + Clone + 'a + 'b, const S: usize> ${0:_} for Defaulted<'a, 'b, T, S> {} + impl<'a, 'b: 'a, T: Debug + Clone + 'a + 'b, const S: usize> ${1:_} for Defaulted<'a, 'b, T, S> {$0} "#, ); } @@ -371,7 +375,7 @@ mod tests { r#" struct Defaulted<const N: i32 = 0> {} - impl<const N: i32> ${0:_} for Defaulted<N> {} + impl<const N: i32> ${1:_} for Defaulted<N> {$0} "#, ); } @@ -398,10 +402,10 @@ mod tests { inner: T, } - impl<T> ${0:_} for Struct<T> + impl<T> ${1:_} for Struct<T> where T: Trait, - { + {$0 } "#, ); @@ -476,7 +480,7 @@ mod tests { mod foo { struct Bar {} - impl ${0:_} for Bar {} + impl ${1:_} for Bar {$0} } "#, ); diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/tests/generated.rs b/src/tools/rust-analyzer/crates/ide-assists/src/tests/generated.rs index 0662527a387..74ae126adae 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/tests/generated.rs +++ b/src/tools/rust-analyzer/crates/ide-assists/src/tests/generated.rs @@ -1961,7 +1961,7 @@ struct Ctx<T: Clone> { data: T, } -impl<T: Clone> ${0:_} for Ctx<T> {} +impl<T: Clone> ${1:_} for Ctx<T> {$0} "#####, ) } diff --git a/src/tools/rust-analyzer/docs/book/src/assists_generated.md b/src/tools/rust-analyzer/docs/book/src/assists_generated.md index 9d68a873ffe..52da98dbd21 100644 --- a/src/tools/rust-analyzer/docs/book/src/assists_generated.md +++ b/src/tools/rust-analyzer/docs/book/src/assists_generated.md @@ -280,7 +280,7 @@ fn main() { ### `apply_demorgan_iterator` -**Source:** [apply_demorgan.rs](https://github.com/rust-lang/rust-analyzer/blob/master/crates/ide-assists/src/handlers/apply_demorgan.rs#L132) +**Source:** [apply_demorgan.rs](https://github.com/rust-lang/rust-analyzer/blob/master/crates/ide-assists/src/handlers/apply_demorgan.rs#L147) Apply [De Morgan's law](https://en.wikipedia.org/wiki/De_Morgan%27s_laws) to `Iterator::all` and `Iterator::any`. @@ -2161,7 +2161,7 @@ struct Ctx<T: Clone> { data: T, } -impl<T: Clone> ${0:_} for Ctx<T> {} +impl<T: Clone> ${1:_} for Ctx<T> {┃} ``` |
