Commit graph

32693 commits

Author SHA1 Message Date
Lukas Wirth
1adc805dfa Cleanup 2025-01-01 15:21:54 +01:00
Lukas Wirth
5303dc5d99 Revamp auto-import exclude config 2025-01-01 15:06:44 +01:00
Lukas Wirth
c5bda0d3f7 Simplify completion config path resolutions 2025-01-01 14:32:45 +01:00
Lukas Wirth
45954ebaa4 Reduce the default autoimport exclusion list 2025-01-01 14:32:45 +01:00
Chayim Refael Friedman
a02a1afc92 Allow flyimporting excluded trait items if there is an exact match in the name
I.e. with `fn foo()`, don't complete at `x.fo|`, but complete (with imports) for `x.foo|`, since this is less likely to have false positives.

I opted to only do that for flyimport, even though for basic imports there can also be snippet completion (completing the params list for a method), since this is less universally applicable and seems not so useful.
2025-01-01 13:54:23 +01:00
Chayim Refael Friedman
7e6ade117c Allow excluding specific traits from completion
To be accurate, only their methods are excluded, the trait themselves are still available.

I also excluded a bunch of std traits by default. Some less opinionated, like `AsRef`, which should never be used directly except in generic scenarios (and won't be excluded there), some more opinionated, like the ops traits, which I know some users sometimes want to use directly. Either way it's configurable.

It should be pretty easy to extend support to excluding only specific methods, but I didn't do that currently.

Traits configured to be excluded are resolved in each completion request from scratch. If this proves too expensive, it is easy enough to cache them in the DB.
2025-01-01 13:49:35 +01:00
Lukas Wirth
c86dd17cb3
Merge pull request #18802 from roife/fix-18800
fix: incorrect file_id used for ranges in outgoing calls
2024-12-31 12:33:51 +00:00
Lukas Wirth
0e716dfdba
Merge pull request #18805 from Veykril/push-pzurvxvoolxs
internal: Implement `<RaSpanServer as SourceFile>::eq`
2024-12-31 12:15:38 +00:00
roife
a48bfa9213 fix: incorrect file_id used for ranges in outgoing calls 2024-12-31 20:10:22 +08:00
Lukas Wirth
6b56af7688 Implement <RaSpanServer as SourceFile>::eq 2024-12-31 13:00:46 +01:00
Lukas Wirth
d30bd5fbb5 Remove recursion_limit special casing in tests 2024-12-31 13:00:23 +01:00
Lukas Wirth
add0963033
Merge pull request #18758 from mgsloan/scip-unique-symbols
Improve SCIP symbols
2024-12-31 09:25:30 +00:00
Lukas Wirth
6ccbb2d194
Merge pull request #18801 from roife/fix-18799
feat: show go-to-type-def actions for subst when hovering
2024-12-31 09:09:23 +00:00
roife
edaf62e7d9 feat: show go-to-type-def actions for subst when hovering 2024-12-31 13:05:29 +08:00
Michael Sloan
5f7425ca20 Move container_to_definition function into enclosing_definition 2024-12-30 13:52:09 -07:00
Michael Sloan
37cee9fdaa Remove erroneous omit of inherent impls
Should have been included in 34dc94bb2d
2024-12-30 13:51:41 -07:00
Michael Sloan
d72aec09d2 TODO -> FIXME 2024-12-30 13:51:32 -07:00
Michael Sloan
03cb63cc75 Make impl HirDisplay for TraitRef provide just the trait type 2024-12-30 13:34:02 -07:00
Lukas Wirth
1c6b83852b
Merge pull request #18795 from dfireBird/fix-hover-render
Fix render of literal to be rendered in codeblock
2024-12-30 14:46:45 +00:00
dfireBird
92f8fef527
Fix render of literal to be rendered in codeblock 2024-12-30 20:03:10 +05:30
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
Lukas Wirth
83188757d8
Merge pull request #18793 from ChayimFriedman2/fixup
minor: Remove unneeded conversions
2024-12-30 11:20:49 +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
Chayim Refael Friedman
393a7410fb Remove unneeded conversions 2024-12-30 13:04:19 +02:00
Lukas Wirth
3f04e3682c
Merge pull request #18792 from Veykril/push-wonkvzozmmwz
Decouple proc-macro server protocol from the server implementation
2024-12-30 11:00:08 +00:00
Lukas Wirth
36cd1000a5
Merge pull request #18791 from roife/fix-18786
fix: avoid generating colliding names in extract_variable
2024-12-30 10:52:53 +00:00
Lukas Wirth
b2d9486ebd Move proc-macro protocol into legacy module 2024-12-30 11:47:08 +01:00
Lukas Wirth
f5a6826137 Cleanup proc-macro dylib handling 2024-12-30 11:14:27 +01:00
Lukas Wirth
714b81bec1 Decouple proc-macro server protocol from the server implementation 2024-12-30 10:33:57 +01: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
Chayim Refael Friedman
abd7263179 Create a quote!-like API for crafting AST nodes
Instead of messing with textual `make`.

And port one `make` helper to it, for the sake of testing.
2024-12-30 04:54:39 +02:00
Chayim Refael Friedman
505e82c19c Add a function to convert a SyntaxKind to its text, where possible
This will also help for the make's quote macro.
2024-12-30 04:01:05 +02:00
Chayim Refael Friedman
737500137f Generate a method for static retrieval of the SyntaxKind of a node, where possible
This will help for the quote macro for `ast::make`.
2024-12-30 03:13:17 +02:00
Lukas Wirth
59bc7b49d0
Merge pull request #18789 from Veykril/push-sypxzqsvmzzp
fix: Fix invalid `-O` flag used by cfg discovery
2024-12-29 15:18:32 +00:00
Lukas Wirth
fb2ca58583 fix: Fix invalid -O flag used by cfg discovery 2024-12-29 16:04:17 +01:00
Lukas Wirth
90b724afad
Merge pull request #18785 from Veykril/push-uvsqposqyvmo
Cleanup toolchain info fetching
2024-12-29 12:57:31 +00:00
Lukas Wirth
293df4caec
Merge pull request #18787 from Veykril/push-uymlpukspxqr
Automatically cancel CI checks on new push to same PR
2024-12-29 12:55:40 +00:00
Lukas Wirth
98fde69dcf Inline toolchain_info module 2024-12-29 13:43:12 +01:00
Lukas Wirth
dfcff86425 Automatically cancel CI checks on new push to same PR 2024-12-29 13:41:22 +01:00
Lukas Wirth
11b351f44b
Merge pull request #18774 from Veykril/push-ysppqxpuknnw
Implement parameter variance inference
2024-12-29 12:34:48 +00:00
Lukas Wirth
f5fb2b9e9f Force a current dir to be supplied for rustc info fetching 2024-12-29 13:26:04 +01:00
Lukas Wirth
8d2b12fe0e Split out ProjectWorkspace::load_cargo 2024-12-29 12:54:41 +01:00
Lukas Wirth
5ce14b0439 Enforce a current directory being set for spawned commands 2024-12-29 12:51:13 +01:00
Lukas Wirth
0f95e60da3 Cleanup toolchain info fetching 2024-12-29 12:25:51 +01:00
Lukas Wirth
885b6c697c
Merge pull request #18784 from Veykril/push-pqtwsvquxoty
fix: Do not merge spans if they have different anchors
2024-12-29 10:44:04 +00:00
Lukas Wirth
49b509310c fix: Do not merge spans if they have different anchors 2024-12-29 11:29:32 +01:00
Lukas Wirth
02d1bf31a2
Merge pull request #18779 from ChayimFriedman2/enum-variant
fix: Consider `Enum::Variant` even when it comes from a different crate
2024-12-29 09:58:16 +00:00
Lukas Wirth
2d299ab8a4 Describe variance resolution approach differences to rustc 2024-12-29 10:53:17 +01:00