Commit graph

1080 commits

Author SHA1 Message Date
Shoyu Vanilla
bf0c3944f8 Migrate apply_demorgan to SyntaxEditor 2025-02-24 22:41:53 +09:00
Shoyu Vanilla
f06f1b81bb Migrate some leftovers in add_missing_match_arms 2025-02-24 22:41:52 +09:00
Ali Bektas
9d5a97368a Add a check_assist_* overload and move tests under assists 2025-02-18 21:58:27 +01:00
Ali Bektas
fc10fe44de Fix 19090 2025-02-18 20:51:42 +01:00
Lukas Wirth
a3f937fc24
Merge pull request #19158 from PoignardAzur/expaned_pub_glob_imports
Implement expand_glob_reexport assist
2025-02-17 09:46:29 +00:00
Olivier FAURE
4fa6595f9a Re-generate doctests 2025-02-15 16:26:28 +01:00
Shoyu Vanilla
7d74f2b3e9 Temporarily ignore tests with comments 2025-02-16 00:12:03 +09:00
Olivier FAURE
e4f62b6999 Implement expand_glob_reexport assist 2025-02-15 16:07:33 +01:00
Olivier FAURE
4de24de6b7 Factor out business logic of expand_glob_import 2025-02-15 13:23:32 +01:00
Shoyu Vanilla
8b947d7a12 internal: Remove mutable syntax tree usages from add_missing_match_arms assist 2025-02-14 02:36:05 +09:00
Lukas Wirth
fc726ced6b
Merge pull request #18912 from vishruth-thimmaiah/fix_named_struct_assist
fix: upmap ranges in convert_tuple_struct_to_named_struct assist
2025-02-05 08:49:53 +00:00
Lukas Wirth
07a09c154e
Merge pull request #19015 from Wilfred/mdbook
manual: Convert to mdbook
2025-01-28 16:19:37 +00:00
Chayim Refael Friedman
028c47999d Remove duplicate method from hir::Type
I added it by mistake in #18927.

I chose to keep the method as not static, because it's more comfortable, and keep the name `add_reference()` and not `reference()`, because it is clearer and better matches `strip_reference[s]()`.
2025-01-27 18:40:01 +02:00
Lukas Wirth
b31f53e0d6 Fix flyimport not filtering via stability of import path 2025-01-25 12:18:54 +01:00
Wilfred Hughes
deda58e8f1 manual: Convert to mdbook
Split manual.adoc into markdown files, one for each chapter.

For the parts of the manual that are generated from source code doc
comments, update the comments to use markdown syntax and update the
code generators to write to `generated.md` files.

For the weekly release, stop copying the .adoc files to the
`rust-analyzer/rust-analyzer.github.io` at release time. Instead,
we'll sync the manual hourly from this repository.

See https://github.com/rust-analyzer/rust-analyzer.github.io/pull/226
for the sync. This PR should be merged first, and that PR needs to be
merged before the next weekly release.

This change is based on #15795, but rebased and updated. I've also
manually checked each page for markdown syntax issues and fixed any I
encountered.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Co-authored-by: Josh Rotenberg <joshrotenberg@gmail.com>
2025-01-24 13:23:22 -08:00
Wilfred Hughes
4c34352517 minor: Suggest better names when a type is a sequence
Previously, we'd suggest a type of `vec` for a value of type `Vec<T>`,
which is rarely what the user wants. We also had no suggestions for
values of type `&[T]`.

Instead, try to pluralise the inner type name, and fall back to
`items`.
2025-01-24 11:30:19 -08:00
Lukas Wirth
76585539f5 Cleanup Name string rendering 2025-01-21 10:05:32 +01:00
Vishruth-Thimmaiah
bbd09b573e
fix: upmap ranges in convert_tuple_struct_to_named_struct assist
fixes #18766
2025-01-20 19:46:53 +05:30
Lukas Wirth
b1def0ce47 Extract variable assist triggers less eagerly 2025-01-18 09:52:56 +01:00
Lukas Wirth
3e2848dc59 Add missing #[rust_analyzer::rust_fixture] annotations 2025-01-16 10:51:57 +01:00
Lukas Wirth
bf669dab84 Re-implement rust string highlighting via tool attribute 2025-01-10 13:49:35 +01:00
Lukas Wirth
d4fa92e80a Implement implicit sized bound inlay hints 2025-01-10 12:38:21 +01:00
Chayim Refael Friedman
52794d5194 Do not compute prettify_macro_expansion() unless the "Inline macro" assist has actually been invoked
And not just called to be listed.

This was a major performance hang when repeatedly switching back-and-forth between a large `include!`d file (but there are others)..
2025-01-10 00:56:00 +02:00
Giga Bowser
c552f72f6a minor: Use placeholders in unwrap_return_type 2025-01-08 18:12:06 -06:00
Giga Bowser
a5a79f5957 internal: Migrate unwrap_return_type assist to use SyntaxEditor
Also changes `make::expr_empty_block()` to return `ast::BlockExpr` instead of `ast::Expr`
2025-01-08 18:12:06 -06:00
Giga Bowser
651b43e551 internal: Migrate wrap_return_type assist to use SyntaxEditor 2025-01-08 15:19:10 -06:00
Giga Bowser
54d9b5a31a internal: Migrate if let <=> match assists to SyntaxEditor 2025-01-06 15:58:39 -06:00
Giga Bowser
eb2ce57a3e internal: Migrate replace_let_with_if_let assist to SyntaxEditor 2025-01-06 15:58:39 -06:00
Giga Bowser
551f1d00dd internal: make::expr_match should return ast::MatchExpr 2025-01-06 15:58:39 -06:00
Giga Bowser
32ff06d51c internal: Generally improve make::match_arm
`make::match_arm` should take a single `ast::Pat`, and callers can handle creating an `ast::OrPat` if need be. It should also take a proper `ast::MatchGuard`, instead of making one itself.
2025-01-06 15:58:39 -06:00
Giga Bowser
905e1e1fc0 internal: move make::expr_unit to make::ext::expr_unit
`expr_unit` is just a shortcut for a common expression, so it belongs in `make::ext`
2025-01-06 15:58:39 -06:00
Giga Bowser
f388482119 internal: make::expr_tuple should return ast::TupleExpr 2025-01-06 15:32:08 -06:00
Giga Bowser
c549be9ab6 internal: make::expr_if should return ast::IfExpr 2025-01-06 15:32:08 -06:00
Giga Bowser
913d197a04 internal: make::expr_prefix should return ast::PrefixExpr 2025-01-06 15:32:08 -06:00
Lukas Wirth
4b6007115a minor: New clippy lints 2025-01-06 17:57:17 +01:00
Chayim Refael Friedman
ce323627c5 Support the new CoercePointee derive 2025-01-04 18:35:53 +02:00
yanglsh
60c3fb12d3 Fix replace-if-let-with-match generates non-exhausive match 2024-12-31 07:40:45 -07:00
yanglsh
fc847323f9 Add test cases for #10583 2024-12-30 12:07:35 -07:00
Lukas Wirth
2e13684be1
Merge pull request #18790 from ChayimFriedman2/proper-make
internal: Create a quoting mechanism instead of textual AST make
2024-12-30 11:39:29 +00:00
Lukas Wirth
bd083d0cd9
Merge pull request #18794 from 1hakusai1/fix_fill_match_arm_in_tokio_main
Fix bug of "fill match arm" action in tokio::main macro
2024-12-30 11:30:32 +00:00
1hakusai1
9451d64315 Fix bug of "fill match arm" action in tokio::main macro
https://github.com/rust-lang/rust-analyzer/issues/18027
2024-12-30 20:06:17 +09:00
roife
f8c04166dc fix: avoid generating colliding names in extract_variable 2024-12-30 15:30:05 +08:00
Chayim Refael Friedman
791a63255b Move some more AST makers to the quote macro
And implement addons as necessary.

There are many more makers to be moved, and I'm not completely satisfied with this (due to the ease of making a mistake in the AST structure, and slightly less but also because of the need to remember whitespaces), but this is already enough to see how this will look like.
2024-12-30 05:46:06 +02:00
Lukas Wirth
e30ce42671
Merge pull request #18707 from ChayimFriedman2/subst
feat: Show substitution where hovering over generic things
2024-12-24 14:16:16 +00:00
Chayim Refael Friedman
b5486ffc42 Show substitution where hovering over generic things
There are few things to note in the implementation:

First, this is a best-effort implementation. Mainly, type aliases may not be shown (due to their eager nature it's harder) and partial pathes (aka. hovering over `Struct` in `Struct::method`) are not supported at all.

Second, we only need to show substitutions in expression and pattern position, because in type position all generic arguments always have to be written explicitly.
2024-12-20 11:30:19 +02:00
Lukas Wirth
0be03285f9 fix: Reduce applicability of unnecessary_async assist 2024-12-20 08:41:46 +01:00
Lukas Wirth
ada5f2059c fix: Fix path qualified auto-importing completions not working with re-exports
Prior to this commit we used to generate import paths, then zipped them with the existing qualifier to check if they agree on the path to import.
This is brittle when re-exports come into play causing items to have multiple applicable paths that refer to them.
This commit instead rewrites this logic by generating the import path for the qualifier, verifying that the rest of the qualifier resolves and then doing a final lookup on that resolution result for the final segment instead.
2024-12-16 13:20:55 +01:00
Lukas Wirth
61c222e1af
Merge pull request #18690 from Giga-Bowser/extract-variable-string
feat: Use string literal contents as a name when extracting into variable
2024-12-16 10:29:05 +00:00
Lukas Wirth
0189a8937b
Merge pull request #18695 from roife/improve-tuple-destruction
minor: improve name suggestion for destructure_tuple_binding
2024-12-16 10:25:01 +00:00
roife
ad63e6957f refactor: simplify edit_tuple_usages in destructure_tuple_binding 2024-12-16 14:12:19 +08:00