about summary refs log tree commit diff
path: root/src/tools/rust-analyzer/crates/ide
AgeCommit message (Collapse)AuthorLines
2024-07-07HasGenericArgs syntax traitLukas Wirth-1/+1
2024-07-07fix: Fix callHierarchy LSP violationLukas Wirth-29/+181
2024-07-07Update hover test fixtureLukas Wirth-3/+14
2024-07-07Fix stop_watch on linuxLukas Wirth-1/+0
2024-07-07Drop unused profile thingsLukas Wirth-3/+0
2024-06-30Remove inline `rust_2018_idioms, unused_lifetimes` lint warn, Cargo.toml ↵Lukas Wirth-1/+1
already enforces this
2024-06-30Fix expression scope calculation when within macro expansionsLukas Wirth-6/+25
2024-06-24Enum variants are not generic def idsLukas Wirth-10/+7
2024-06-20Auto merge of #17419 - ishanjain28:filter_builtin_macro_expansion, r=Veykrilbors-3/+27
Filter builtin macro expansion This PR adds a filter on the types of built in macros that are allowed to be expanded. Currently, This list of allowed macros contains, `stringify, cfg, core_panic, std_panic, concat, concat_bytes, include, include_str, include_bytes, env` and `option_env`. Fixes #14177
2024-06-20Invert matching on builtin macros in expand_allowed_builtinsLukas Wirth-4/+4
2024-06-19updated testsIshan Jain-17/+14
2024-06-19Auto merge of #17426 - roife:fix-issue-17420, r=Veykrilbors-1/+21
fix: handle character boundaries for wide chars in extend_selection fix #17420. When calling 'extend_selection' within a string, r-a attempts to locate the current word at the cursor. This is done by finding the first char before the cursor which is not a letter, digit, or underscore. The position of this character is referred to as `start_idx`, and the word is considered to start from `start_idx + 1`. However, for wide characters, `start_idx + 1` is not character boundaries, which leading to panic. We should use `ceil_char_boundary` to ensure that the idx is always on character boundaries.
2024-06-16docs: document omission heuristics for parameter inlay hintsLunaphied-0/+17
These are not currently documented and could cause users to think that their rust-analyzer configuration is broken. Partially addresses #17433.
2024-06-15fix: handle character boundaries for wide chars in extend_selectionroife-1/+21
2024-06-15Created expand_allowed_builtins, updated expand_macro to call this functionIshan Jain-3/+4
2024-06-14added testsIshan Jain-0/+26
2024-06-11Auto merge of #17394 - Veykril:recurse-fix, r=Veykrilbors-0/+21
fix: Fix `HirDisplay` stackoverflow for parameter Self defaults Fixes https://github.com/rust-lang/rust-analyzer/issues/10932
2024-06-11fix: Fix `HirDisplay` stackoverflow for parameter Self defaultsLukas Wirth-0/+21
2024-06-11feat: add hover config for showing container boundsroife-0/+1
2024-06-11Auto merge of #17374 - Veykril:configs, r=Veykrilbors-13/+8
Allow choosing logical cores for num threads config
2024-06-11Simplify some config serialization stuffLukas Wirth-12/+7
2024-06-10Thread more HasSource::source calls through Semantics for cachingLukas Wirth-13/+12
2024-06-09Allow choosing logical cores for num threads configLukas Wirth-1/+1
2024-06-07fix: Fix renaming imports of foreign items touching foreign sourcesLukas Wirth-11/+30
2024-06-07Auto merge of #17058 - alibektas:13529/ratoml, r=Veykrilbors-1/+8
feat: TOML based config for rust-analyzer > Important > > We don't promise _**any**_ stability with this feature yet, any configs exposed may be removed again, the grouping may change etc. # TOML Based Config for RA This PR ( addresses #13529 and this is a follow-up PR on #16639 ) makes rust-analyzer configurable by configuration files called `rust-analyzer.toml`. Files **must** be named `rust-analyzer.toml`. There is not a strict rule regarding where the files should be placed, but it is recommended to put them near a file that triggers server to start (i.e., `Cargo.{toml,lock}`, `rust-project.json`). ## Configuration Types Previous configuration keys are now split into three different classes. 1. Client keys: These keys only make sense when set by the client (e.g., by setting them in `settings.json` in VSCode). They are but a small portion of this list. One such example is `rust_analyzer.files_watcher`, based on which either the client or the server will be responsible for watching for changes made to project files. 2. Global keys: These keys apply to the entire workspace and can only be set on the very top layers of the hierarchy. The next section gives instructions on which layers these are. 3. Local keys: Keys that can be changed for each crate if desired. ### How Am I Supposed To Know If A Config Is Gl/Loc/Cl ? #17101 ## Configuration Hierarchy There are 5 levels in the configuration hierarchy. When a key is searched for, it is searched in a bottom-up depth-first fashion. ### Default Configuration **Scope**: Global, Local, and Client This is a hard-coded set of configurations. When a configuration key could not be found, then its default value applies. ### User configuration **Scope**: Global, Local If you want your configurations to apply to **every** project you have, you can do so by setting them in your `$CONFIG_DIR/rust-analyzer/rust-analyzer.toml` file, where `$CONFIG_DIR` is : | Platform | Value | Example | | ------- | ------------------------------------- | ---------------------------------------- | | Linux | `$XDG_CONFIG_HOME` or `$HOME`/.config | /home/alice/.config | | macOS | `$HOME`/Library/Application Support | /Users/Alice/Library/Application Support | | Windows | `{FOLDERID_RoamingAppData}` | C:\Users\Alice\AppData\Roaming | ### Client configuration **Scope**: Global, Local, and Client Previously, the only way to configure rust-analyzer was to configure it from the settings of the Client you are using. This level corresponds to that. > With this PR, you don't need to port anything to benefit from new features. You can continue to use your old settings as they are. ### Workspace Root Configuration **Scope**: Global, Local Rust-analyzer already used the path of the workspace you opened in your Client. We used this information to create a configuration file that won't affect your other projects and define global level configurations at the same time. ### Local Configuration **Scope**: Local You can also configure rust-analyzer on a crate level. Although it is not an error to define global ( or client ) level keys in such files, they won't be taken into consideration by the server. Defined local keys will affect the crate in which they are defined and crate's descendants. Internally, a Rust project is split into what we call `SourceRoot`s. This, although with exceptions, is equal to splitting a project into crates. > You may choose to have more than one `rust-analyzer.toml` files within a `SourceRoot`, but among them, the one closer to the project root will be
2024-06-06chore: Prefer tracing span shorthand macrosWilfred Hughes-5/+5
2024-06-06fix: incorrect formatting of hover actionsroife-1/+1
2024-06-06Auto merge of #17352 - roife:fix-issue-17338, r=Veykrilbors-0/+24
fix: do not resolve prelude within block modules fix #17338 (continuing from #17251). In #17251, we injected preludes into non-top-level modules, which leading to r-a to directly resolve names in preludes in block modules. This PR fix it by checking whether the module is a pseudo-module introduced by blocks. (similar to what we do for extern preludes)
2024-06-06test: add regression test for prelude shadowing in block modulesroife-0/+24
2024-06-05Apply suggested changesAli Bektas-1/+8
2024-06-04Use dyn cache for Semantics macro resolutionLukas Wirth-11/+16
2024-06-04Auto merge of #17282 - jkelleyrtp:jk/filter-by-underscorte, r=Veykrilbors-0/+22
Feat: hide double underscored symbols from symbol search Fixes #17272 by changing the default behavior of query to skip results that start with `__` (two underscores). Not sure if this has any far reaching implications - a review would help to understand if this is the right place to do the filtering, and if it's fine to do it by default on the query. If you type `__` as your search, then we'll show the matching double unders, just in case you actually need the symbol.
2024-06-04Recognize `__` prefixes for symbol search queryLukas Wirth-4/+5
2024-06-03Auto merge of #17315 - hamirmahal:style/simplify-string-interpolation, r=Veykrilbors-2/+2
style: simplify string interpolation
2024-05-31docs: Missing word typoLuke Franceschini-1/+1
2024-05-30style: simplify string interpolationHamir Mahal-2/+2
2024-05-25Avoid clone when constructing runnable label.Mathew Horner-1/+1
2024-05-23Auto merge of #17284 - Veykril:doc-links, r=Veykrilbors-3/+7
fix: Use correct toolchain channel when generating builtin type doc links
2024-05-23Use correct toolchain channel when generating builtin type doc linksLukas Wirth-3/+7
2024-05-23Auto merge of #17174 - Kohei316:fix-infer-async-block-with-tail-return-expr, ↵bors-0/+26
r=Veykril Fix: infer type of async block with tail return expr Fixes #17106 The `infer_async_block` method calls the `infer_block` method internally, which returns the never type without coercion when `tail_expr` is `None` and `ctx.diverges` is `Diverges::Always`.This is the reason for the bug in this issue. https://github.com/rust-lang/rust-analyzer/blob/cfce2bb46da62950a8b70ddb0b2a12332da1b1e1/crates/hir-ty/src/infer/expr.rs#L1411-L1413 This PR solves the bug by adding a process to coerce after calling `infer_block` method. This code passes all the tests, including tests I added for this isuue, however, I am not sure if this solution is right. I think that this solution is an ad hoc solution. So, I would appreciate to have your review. I apologize if I'm off the mark, but `infer_async_block` method should be rewritten to share code with the process of infering type of `expr::Closure` instead of the `infer_block` method. That way it will be closer to the infer process of rustc.
2024-05-22Feat: hide double underscored symbols from symbol searchJonathan Kelley-0/+21
2024-05-18Show fn traits in signature info for trait implementorsLukas Wirth-15/+95
2024-05-18Enable linked locations for closure param inlay hintsLukas Wirth-10/+5
2024-05-18Render closure fn trait kind in siganture helpLukas Wirth-5/+36
2024-05-18Allow hir::Param to refer to other entity params aside from functionsLukas Wirth-30/+30
2024-05-16internal: Add StaticLifetime to hir APILukas Wirth-32/+43
2024-05-14internal: Sort computed runnablesLukas Wirth-20/+34
2024-05-14Auto merge of #17225 - Veykril:expand-macro-interlocked, r=Veykrilbors-27/+15
Expand macro recursively expands both fp-like and attribute macros when intertwined
2024-05-14Expand macro recursively expands both fp-like and attribute macros intertwinedLukas Wirth-27/+15
2024-05-13Don't render multi-line literal valuesLukas Wirth-1/+29