about summary refs log tree commit diff
path: root/src/tools/rust-analyzer/crates
AgeCommit message (Collapse)AuthorLines
2024-12-26Use empty `SymbolInformation.signature_documentation.relative_path`Michael Sloan-9/+2
I'm fairly sure this is more correct, and saves space(~90mb to 82mb for Zed's index). I'm checking in about this with SCIP folks in https://github.com/sourcegraph/scip/pull/299.
2024-12-26Provide SCIP `external_symbols` + fix symbols provided with DocumentMichael Sloan-58/+146
Before this change `SymbolInformation` provided by a document was the info for all encountered symbols that have not yet been emitted. So, the symbol information on a `Document` was a mishmash of symbols defined in the documents, symbols from other documents, and external symbols. After this change, the `SymbolInformation` on documents is just the locals and defined symbols from the document. All symbols referenced and not from emitted documents are included in `external_symbols`.
2024-12-25Improve SCIP symbolsMichael Sloan-270/+522
In particular, the symbol generation before this change creates a lot of symbols with the same name for different definitions. This change makes progress on symbol uniqueness, but does not fix a couple cases where it was unclear to me how to fix (see TODOs in `scip.rs`) Behavior changes: * `scip` command now reports symbol information omitted due to symbol collisions. Iterating with this on a large codebase (Zed!) resulted in the other improvements in this change. * Generally fixes providing the path to nested definitions in symbols. Instead of having special cases for a couple limited cases of nesting, implements `Definition::enclosing_definition` and uses this to walk definitions. * Parameter variables are now treated like locals. - This fixes a bug where closure captures also received symbols scoped to the containing function. To bring back parameter symbols I would want a way to filter these out, since they can cause symbol collisions. - Having symbols for them seems to be intentional in 27e2eea54fbd1edeefa2b47ddd4f552a04b86582, but no particular use is specified there. For the typical indexing purposes of SCIP I don't see why parameter symbols are useful or sensible, as function parameters are not referencable by anything but position. I can imagine they might be useful in representing diagnostics or something. * Inherent impls are now represented as `impl#[SelfType]` - a type named `impl` which takes a single type parameter. * Trait impls are now represented as `impl#[SelfType][TraitType]` - a type named `impl` which takes two type parameters. * Associated types in traits and impls are now treated like types instead of type parameters, and so are now suffixed with `#` instead of wrapped with `[]`. Treating them as type parameters seems to have been intentional in 73d9c77f2aeed394cf131dce55807be2d3f54064 but it doesn't make sense to me, so changing it. * Static variables are now treated as terms instead of `Meta`, and so receive `.` suffix instead of `:`. * Attributes are now treated as `Meta` instead of `Macro`, and so receive `:` suffix instead of `!`. * `enclosing_symbol` is now provided for labels and generic params, which are local symbols. * Fixes a bug where presence of `'` causes a descriptor name to get double wrapped in backticks, since both `fn new_descriptor` and `scip::symbol::format_symbol` have logic for wrapping in backticks. Solution is to simply delete the redundant logic. * Deletes a couple tests in moniker.rs because the cases are adequeately covered in scip.rs and the format for identifiers used in moniker.rs is clunky with the new representation for trait impls
2024-12-25fix missing name enum when hovering on fields in variantsroife-3/+14
2024-12-24Merge pull request #18743 from ChayimFriedman2/e0107Lukas Wirth-275/+881
feat: Unify handling of path diagnostics in hir-ty
2024-12-24Merge pull request #18754 from Veykril/push-zkkzxrsxnqnmLukas Wirth-140/+209
Cleanup target fetching for cargo metadata
2024-12-24Unify handling of path diagnostics in hir-tyChayim Refael Friedman-247/+848
Because it was a mess. Previously, pretty much you had to handle all path diagnostics manually: remember to check for them and handle them. Now, we wrap the resolver in `TyLoweringContext` and ensure proper error reporting. This means that you don't have to worry about them: most of the things are handled automatically, and things that cannot will create a compile-time error (forcing you top `drop(ty_lowering_context);`) if forgotten, instead of silently dropping the diagnostics. The real place for error reporting is in the hir-def resolver, because there are other things resolving, both in hir-ty and in hir-def, and they all need to ensure proper diagnostics. But this is a good start, and future compatible. This commit also ensures proper path diagnostics for value/pattern paths, which is why it's marked "feat".
2024-12-24Cleanup target fetching for cargo metadataLukas Wirth-140/+209
2024-12-24Merge pull request #18707 from ChayimFriedman2/substLukas Wirth-186/+983
feat: Show substitution where hovering over generic things
2024-12-24Merge pull request #18718 from Giga-Bowser/fix-syntaxfactory-intoiteratorLukas Wirth-16/+28
internal: Standardize how we take iterator parameters in `SyntaxFactory`
2024-12-24Merge pull request #18750 from Veykril/push-tyvtqpwrwvsrLukas Wirth-101/+0
Back out "internal: Disable rustc test metrics"
2024-12-24Remove dangling outdated test moduleLukas Wirth-101/+0
2024-12-24Merge pull request #18749 from PrototypeNM1/windows-debugger-waitLukas Wirth-7/+25
minor: Break out of waiting for debugger on Windows using native debugger check API.
2024-12-23minor: Break out of waiting for debugger on Windows using native debugger ↵Nicholas Rishel-7/+25
check API. For Windows, this removes the need to add a breakpoint and modify a value to exit the debugger wait loop. As a ridealong, this adds a 100ms sleep for all platforms such that waiting for the debugger doesn't hog the CPU thread.
2024-12-23Auto merge of #134681 - lnicola:sync-from-ra, r=lnicolabors-2091/+3026
Subtree update of `rust-analyzer` r? `@ghost`
2024-12-23Merge from rust-lang/rustLaurențiu Nicola-3/+5
2024-12-23Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, ↵Zalathar-1/+1
r=wesleywiser" This reverts commit 1d35638dc38dbfbf1cc2a9823135dfcf3c650169, reversing changes made to f23a80a4c2fbca593b64e70f5970368824b4c5e9.
2024-12-22Treat ; as a terminator rather than something that can be glued together in ↵Brian Bosak-0/+1
an expression
2024-12-22Merge pull request #18742 from Veykril/push-yswvkzmsvqqlLukas Wirth-7/+7
fix: Fix flycheck workspace when requested but package was found
2024-12-22fix: Fix flycheck workspace when requested but package was foundLukas Wirth-7/+7
2024-12-22fix: Delay initial flycheck until after build scriptsLukas Wirth-6/+12
2024-12-22Merge pull request #18738 from Veykril/push-vqxqutskzvvuLukas Wirth-6/+10
fix: Properly check if workspace flychecking is allowed
2024-12-22Merge pull request #18740 from Veykril/push-tntsvtmtlotwLukas Wirth-20/+20
fix: Fix empty check diagnostics not marking files as changed
2024-12-22fix: Fix empty check diagnostics not marking files as changedLukas Wirth-20/+20
2024-12-22Merge pull request #18739 from Veykril/push-ntpvvqnnovtnLukas Wirth-0/+19
fix: Don't trigger paren wrapping typing handler after idents
2024-12-22fix: Properly check if workspace flychecking is allowedLukas Wirth-6/+10
2024-12-22fix: Don't trigger paren wrapping typing handler after identsLukas Wirth-0/+19
2024-12-22Merge pull request #18735 from Veykril/push-rpuxqrzrzvswLukas Wirth-3/+3
fix: Set `result_id` for `RelatedFullDocumentDiagnosticReport` everywhere
2024-12-22fix: Set `result_id` for `RelatedFullDocumentDiagnosticReport` everywhereLukas Wirth-3/+3
2024-12-21fix: only show debug lens with a valid rootroife-15/+19
2024-12-21fix: remove always! check for file_id in runnablesroife-16/+3
2024-12-20Revert "internal: Drop proc-macro server support for ~1.66.0 and older ↵Lukas Wirth-30/+48
toolchains"
2024-12-20internal: Standardize how we take iterator parameters in `SyntaxFactory`Giga Bowser-16/+28
2024-12-20Move ty lowering diagnostic definitions into a separate moduleChayim Refael Friedman-29/+34
To keep them organized.
2024-12-20Merge pull request #18729 from Veykril/push-kyxtnozqzwknLukas Wirth-53/+140
Clear flycheck diagnostics more granularly
2024-12-20Clear all check diagnostics when the workspace changesLukas Wirth-0/+1
2024-12-20Arc the package ids coming from flycheckLukas Wirth-12/+21
2024-12-20Arc the workspace root flycheckLukas Wirth-8/+8
2024-12-20Clear flycheck diagnostics more granularlyLukas Wirth-48/+125
2024-12-20Merge pull request #18723 from ChayimFriedman2/tracing-completeLukas Wirth-360/+596
fix: Fix a case where completion was unable to expand a macro
2024-12-20Fix a case where completion was unable to expand a macroChayim Refael Friedman-360/+596
Which caused the macros of the popular `tracing` crate to not offer completions. The reason is rather complicated: it boils down to macro ignoring their input and completion always choosing the first expansion.
2024-12-20Merge pull request #18728 from Veykril/push-ozqlrzmqklwtLukas Wirth-12/+19
internal: Split `serde` derive feature into `serde_derive` usage
2024-12-20Merge pull request #18702 from ChayimFriedman2/prepLukas Wirth-133/+162
minor: Use a record struct instead of a tuple for each namespace in `PerNs`
2024-12-20internal: Split serde derive feature into `serde_derive` usageLukas Wirth-12/+19
Ideally we'd not have any dependency pull in the derive feature for faster build times, once that is the case this change would have an actual effect. See https://github.com/matklad/macro-dep-test/blob/master/README.md for context.
2024-12-20Show substitution where hovering over generic thingsChayim Refael Friedman-186/+983
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-20Merge pull request #18726 from Veykril/push-vyzotyqqtpqsLukas Wirth-26/+19
fix: Reduce applicability of unnecessary_async assist
2024-12-20fix: Reduce applicability of unnecessary_async assistLukas Wirth-26/+19
2024-12-19Merge pull request #18717 from Veykril/push-pomxnvxotwlrLukas Wirth-7/+11
internal: Set `result_id` for pull diagnostics
2024-12-19internal: Set `result_id` for pull diagnosticsLukas Wirth-7/+11
2024-12-18Merge pull request #18715 from aibaars/ungram-asm-optionLukas Wirth-3/+1
Fix AsmOption rule in rust.ungram