aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_db
Commit message (Collapse)AuthorAgeFilesLines
* Remove relative_path dependencyAleksey Kladov2020-07-081-4/+3
|
* Merge #5244bors[bot]2020-07-071-0/+9
|\ | | | | | | | | | | | | | | | | | | 5244: Add a command to compute memory usage statistics r=matklad a=jonas-schievink This allows inspecting memory usage on a live rust-analyzer instance after it has been used interactively. This will only work with `--features jemalloc`, so maybe it should print something more useful when that's not available? Right now it will just print 0 Bytes for every query. Co-authored-by: Jonas Schievink <[email protected]>
| * Add a command to compute memory usage statisticsJonas Schievink2020-07-071-0/+9
| |
* | Merge #5245bors[bot]2020-07-071-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 5245: Refactor AssistBuilder to manage a SourceChange r=matklad a=theduke `AssistBuilder` now managaes a full `SourceChange` instead of a `Vec<SourceFileEdit>`. This prepares AssistBuilder to handle creation of new files. Co-authored-by: Christoph Herzog <[email protected]>
| * Refactor AssistBuilder to manage a SourceChangeChristoph Herzog2020-07-071-1/+1
| | | | | | | | | | | | | | `AssistBuilder`` now managaes a full `SourceChange` instead of a Vec<SourceFileEdit>. This prepares AssistBuilder to handle creation of new files.
* | Switch to fully dynamically dispatched salsaAleksey Kladov2020-07-073-33/+30
|/ | | | This improves compile times quite a bit
* Fix memory usage accounting for interned queriesJonas Schievink2020-07-031-17/+30
|
* Merge #5175bors[bot]2020-07-011-2/+3
|\ | | | | | | | | | | | | | | 5175: More memory-efficient impl collection r=matklad a=jonas-schievink This saves roughly 90 MB in `ImplsFromDepsQuery`, which used to copy the list of all impls from libcore into *every* crate in the graph. It also stops collecting inherent impls from dependencies entirely, as those can only be located within the crate defining the self type. Co-authored-by: Jonas Schievink <[email protected]>
| * Split `CrateImplDefs` in inherent and trait implsJonas Schievink2020-07-011-2/+3
| | | | | | | | | | | | This makes the intention of inherent vs. trait impls somewhat more clear and also fixes (?) an issue where trait impls with an unresolved trait were added as inherent impls instead (hence the test changes).
* | Reuse Semantics instancesLaurențiu Nicola2020-07-011-8/+4
|/
* Try to reduce Semantics monomorphisationsLaurențiu Nicola2020-07-011-1/+7
|
* Use the existing Semantics in auto_importLaurențiu Nicola2020-07-011-46/+42
|
* Simlify with matches!()Veetaha2020-06-281-4/+1
|
* Measure ItemTree query memory usageJonas Schievink2020-06-241-0/+1
|
* Remove raw item queryJonas Schievink2020-06-241-1/+0
|
* New VFSAleksey Kladov2020-06-233-69/+30
|
* Add new query to statsJonas Schievink2020-06-191-0/+1
|
* Replace `impls_in_trait` with `CrateImplDefs`Jonas Schievink2020-06-191-1/+0
|
* Remove special casing for library symbolsAleksey Kladov2020-06-182-122/+47
| | | | | | | | We might as well handle them internally, via queries. I am not sure, but it looks like the current LibraryData setup might even predate salsa? It's not really needed and creates a bunch of complexity.
* Anchor file-system operations to the file, and not to the source root.Aleksey Kladov2020-06-161-3/+3
| | | | | | | | | | | | | | | | Anchoring to the SourceRoot wont' work if the path is absolute: #[path = "/tmp/foo.rs"] mod foo; Anchoring to a file will. However, we *should* anchor, instead of just producing an abs path. I can imagine a situation where, for example, rust-analyzer processes crates from different machines (or, for example, from in-memory git branch), where the same absolute path in different crates might refer to different files in the end!
* Remove dead codeAleksey Kladov2020-06-112-24/+3
|
* Merge #4843bors[bot]2020-06-111-2/+2
|\ | | | | | | | | | | | | | | | | | | | | 4843: Don't guess macro expansion crate r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Make relevant_crates return a SetAleksey Kladov2020-06-111-2/+2
| |
* | Merge #4819bors[bot]2020-06-112-33/+66
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 4819: Add an FST index to `ImportMap` and use it to speed up auto import r=matklad a=jonas-schievink For the importing crate, we still use the symbol index, but I've modified it to only look at files that comprise that crate (instead of the whole workspace). Oh, and since now the symbol query limit is respected correctly, it's possible that some results from the local crate now disappear if there are many matches. Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4763 Co-authored-by: Jonas Schievink <[email protected]>
| * Add symbol index FIXMEJonas Schievink2020-06-111-0/+3
| |
| * Move limit check downJonas Schievink2020-06-101-1/+1
| |
| * ImportsLocator: use ImportMap for non-local cratesJonas Schievink2020-06-101-22/+24
| |
| * symbol_index: allow querying a single crateJonas Schievink2020-06-101-9/+34
| |
| * Fix the symbol query limitJonas Schievink2020-06-101-3/+4
| |
| * Profile `world_symbols`Jonas Schievink2020-06-101-0/+2
| |
* | In field patterns, don't highlight local binding as a fieldAleksey Kladov2020-06-101-3/+6
|/
* SimplifyAleksey Kladov2020-06-081-16/+7
|
* Swap `into_definition` and `definition` semantics for `FieldShorthand` variantunexge2020-06-081-2/+2
|
* Add `FieldShorthand` variant to `NameClass`unexge2020-06-081-26/+30
|
* Add goto def for enum variant fieldunexge2020-06-061-0/+6
|
* Merge #4689bors[bot]2020-06-051-0/+1
|\ | | | | | | | | | | | | | | | | | | | | 4689: Implement return position impl trait / opaque type support r=matklad a=flodiebold This is working, but I'm not that happy with how the lowering works. We might need an additional representation between `TypeRef` and `Ty` where names are resolved and `impl Trait` bounds are separated out, but things like inference variables don't exist and `impl Trait` is always represented the same way. Also note that this doesn't implement correct handling of RPIT *inside* the function (which involves turning the `impl Trait`s into variables and creating obligations for them). That intermediate representation might help there as well. Co-authored-by: Florian Diebold <[email protected]> Co-authored-by: Florian Diebold <[email protected]>
| * Review fixesFlorian Diebold2020-06-051-0/+1
| |
* | Merge #4760bors[bot]2020-06-051-9/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4760: Minimize FileLoader interface r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Minimize FileLoader interfaceAleksey Kladov2020-06-051-9/+2
| |/
| |
| \
*-. \ Merge #4729 #4748bors[bot]2020-06-052-1/+2
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4729: Hover actions r=matklad a=vsrs This PR adds a `hoverActions` LSP extension and a `Go to Implementations` action as an example: ![hover_actions_impl](https://user-images.githubusercontent.com/62505555/83335732-6d9de280-a2b7-11ea-8cc3-75253d062fe0.gif) 4748: Add an `ImportMap` and use it to resolve item paths in `find_path` r=matklad a=jonas-schievink Removes the "go faster" queries I added in https://github.com/rust-analyzer/rust-analyzer/pull/4501 and https://github.com/rust-analyzer/rust-analyzer/pull/4506. I've checked this PR on the rustc code base and the assists are still fast. This should fix https://github.com/rust-analyzer/rust-analyzer/issues/4515. Note that this does introduce a change in behavior: We now always refer to items defined in external crates using paths through the external crate. Previously we could also use a local path (if for example the extern crate was reexported locally), as seen in the changed test. If that is undesired I can fix that, but the test didn't say why the previous behavior would be preferable. Co-authored-by: vsrs <[email protected]> Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Jonas Schievink <[email protected]>
| | * Measure memory usage of ImportMapJonas Schievink2020-06-051-0/+1
| | |
| * | Add hover actions as LSP extensionvsrs2020-06-051-1/+1
| |/
* | More direct signature for resolve_pathAleksey Kladov2020-06-051-2/+2
| |
* | Rename resolve_relative_path -> resolve_pathAleksey Kladov2020-06-051-6/+2
|/ | | | For things like `concant!(env!("OUT_DIR"))`, we need to support abs paths
* recursively search submodulesBrennan Vincent2020-05-311-18/+22
|
* Generate features docs from sourceAleksey Kladov2020-05-311-0/+21
|
* KISS SourceChangeAleksey Kladov2020-05-221-59/+20
| | | | | | The idea behind requiring the label is a noble one, but we are not really using it consistently anyway, and it should be easy to retrofit later, should we need it.
* Remove dead code for handling cursor positionsAleksey Kladov2020-05-213-321/+1
|
* Remove unused cursor positionsAleksey Kladov2020-05-211-3/+2
|
* Remove cross-crate marksAleksey Kladov2020-05-204-23/+2
| | | | | They create quite a bit of friction. Really, we should just move the tests to the same crate, rather than paper over existing split.