Commit graph

572 commits

Author SHA1 Message Date
Laurențiu Nicola
fc9eed4836 Use upstream cov-mark 2021-03-08 22:19:44 +02:00
Aleksey Kladov
9faf8dd69a Hygiene is an internal implementation detail of the compiler 2021-03-08 22:14:52 +03:00
Aleksey Kladov
1eb61203b7 Make code generation just work
Contributors don't need to learn about `cargo xtask codegen` if `cargo
test` just does the right thing.
2021-03-08 21:45:37 +03:00
bors[bot]
d57c9f7980
Merge #7891
7891: Improve handling of rustc_private r=matklad a=DJMcNab

This PR changes how `rust-analyzer` handles `rustc_private`. In particular, packages now must opt-in to using `rustc_private` in `Cargo.toml`, by adding:
```toml
[package.metadata.rust-analyzer]
rustc_private=true
```

This means that depending on crates which also use `rustc_private` will be significantly improved, since their dependencies on the `rustc_private` crates will be resolved properly.

A similar approach could be used in #6714 to allow annotating that your package uses the `test` crate, although I have not yet handled that in this PR.

Additionally, we now only index the crates which are transitive dependencies of `rustc_driver` in the `rustcSource` directory. This should not cause any change in behaviour when using `rustcSource: "discover"`, as the source used then will only be a partial clone. However, if `rustcSource` pointing at a local checkout of rustc, this should significantly improve the memory usage and lower indexing time. This is because we avoids indexing all crates in `src/tools/`, which includes `rust-analyzer` itself.

Furthermore, we also prefer named dependencies over dependencies from `rustcSource`. This ensures that feature resolution for crates which are depended on by both `rustc` and your crate uses the correct set for analysing your crate.

See also [introductory zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Fixed.20crate.20graphs.20and.20optional.20builtin.20crates/near/229086673)

I have tested this in [priroda](https://github.com/oli-obk/priroda/), and it provides a significant improvement to the development experience (once I give `miri` the required data in `Cargo.toml`)

Todo:
- [ ] Documentation

This is ready to review, and I will add documentation if this would be accepted (or if I get time to do so anyway)

Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com>
2021-03-08 16:51:20 +00:00
Daniel McNab
20007fd3a8 Document rustc_private in metadata 2021-03-08 16:47:40 +00:00
Daniel McNab
bbecea03fd Revert "Support disabling rustc build scripts"
This reverts commit ddce6bb282.
2021-03-08 16:37:52 +00:00
Aleksey Kladov
c7b5d6be4c Make code completion "just work" in more cases 2021-03-08 14:57:56 +03:00
Daniel McNab
ddce6bb282 Support disabling rustc build scripts 2021-03-08 09:05:19 +00:00
bors[bot]
d54e1157b6
Merge #7889
7889: Make group imports configurable r=lnicola a=asv1



Co-authored-by: asv <asv7c2@gmail.com>
2021-03-07 08:24:02 +00:00
asv
96fc01a30b Make group imports configurable 2021-03-07 10:15:17 +02:00
Florian Diebold
d6094c70fb Add a line about code action commands to the CoC section of the docs 2021-03-06 11:35:04 +01:00
bors[bot]
16a76aa158
Merge #7868
7868: Migrate to user-centric config name for `cargo check` stuff r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-03-04 12:39:36 +00:00
Aleksey Kladov
3d80e0a154 Migrate to user-centric config name for cargo check stuff 2021-03-04 15:38:53 +03:00
Aleksey Kladov
e15621482c Clarify comparison rule 2021-03-03 11:23:05 +03:00
Aleksey Kladov
979c26e1ae Axe pre-commit 2021-03-01 21:30:21 +03:00
Vincent Esche
c4e2f32d73 Fixed remaining references to AnalysisChange (now: Change)
(The type was renamed/moved in 8716c4cec3)
2021-02-28 12:57:41 +01:00
boxdot
9b78a6f6d2
Fix typo. 2021-02-24 11:56:48 +01:00
azzamsa
ae50b18503 Fix typos 2021-02-20 17:53:19 +07:00
Aleksey Kladov
3f09e3fba6 document offsets 2021-02-16 19:22:09 +03:00
bors[bot]
d50a37d3aa
Merge #7643 #7663
7643: Automatically detect the rustc-src directory (fixes #3517) r=matklad a=bnjbvr

If the configured rustcSource was not set, then try to automatically
detect a source for the sysroot rustc directory.

I wasn't sure how to do it in the case of the project.json file, though.

7663: Tolerate spaces in nix binary patching r=matklad a=CertainLach

If path to original file contains space (I.e on code insiders, where
default data directory is ~/Code - Insiders/), then there is syntax
error evaluating src arg.

Instead pass path as str, and coerce to path back in nix expression

Co-authored-by: Benjamin Bouvier <public@benj.me>
Co-authored-by: Yaroslav Bolyukin <iam@lach.pw>
2021-02-14 15:42:07 +00:00
ivan770
13e9d9809a
Remove CodeLensResolveData mention from lsp-extensions.md 2021-02-13 19:36:29 +02:00
Benjamin Bouvier
4a6e602c94 Allow automatically detect the rustc-src directory (fixes #3517).
If the configured rustcSource is set to "discover", try to automatically
detect a source from the sysroot rustc directory.
2021-02-13 18:20:46 +01:00
ivan770
185da286d2
Moved CodeLens to ide crate 2021-02-13 13:07:47 +02:00
Laurențiu Nicola
8814d1368d Include a commit log summary in the changelog 2021-02-12 19:53:58 +02:00
bors[bot]
777d936c17
Merge #7653
7653: Document config pattern r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-02-12 15:10:50 +00:00
Aleksey Kladov
799810eaaa Document config pattern 2021-02-12 18:10:16 +03:00
Peter Wischer
f18fc5a0ae fix nightly warning legacy_derive_helpers
see https://github.com/rust-lang/rust/issues/79202
2021-02-12 13:57:38 +01:00
Aleksey Kladov
d932812134 Use track caller in test documentation 2021-02-10 11:26:48 +03:00
Aleksey Kladov
4b1279d0b1 Infra for "unit" benchmarking 2021-02-09 20:25:39 +03:00
Aleksey Kladov
ad7b0f670a Add emacs guide 2021-02-08 19:08:02 +03:00
bors[bot]
433ad23988
Merge #7592
7592: [Doc] Note about Eclipse IDE support r=lnicola a=mickaelistria



Co-authored-by: Mickael Istria <mistria@redhat.com>
2021-02-08 09:16:01 +00:00
Mickael Istria
7e0854ec57 [Doc] Note about Eclipse IDE support 2021-02-08 09:52:46 +01:00
Ilya Bobyr
9ffe4ca26c Vim docs: vim-lsp with initial configuration.
`vim-lsp` is another popular LSP client for Vim.  And, as there is no
`rust-analyzer` specific UI, it is non-trivial to figure out how the
initial configuration is performed.
2021-02-07 20:24:56 -08:00
Ilya Bobyr
6781692732 Explain how initial configuration is sent over LSP. 2021-02-07 20:24:56 -08:00
Aleksey Kladov
cbebb70313 Add a section on entry points 2021-02-07 10:58:59 +03:00
Erick Tovar
a423a5196c Fixing architecture image on dark theme 2021-02-07 10:57:39 +03:00
Edwin Cheng
a0475f10d8 Remove redunacny 2021-02-07 12:53:54 +08:00
Edwin Cheng
542e35e397 More information for mbe 2021-02-07 12:51:30 +08:00
Edwin Cheng
504a54b222 Update architecture.md for mbe and proc-macro 2021-02-07 12:31:33 +08:00
Adam Tuck
c2064e8bcf
Update architecture.md
Typo
2021-02-06 14:40:23 -08:00
kjeremy
8ff69055b9 Do not overwrite lock file
Use `npm ci` instead of `npm install`. `npm install` will overwrite
the lock file if you have a newer npm version than the one that
generated the package-lock.json
2021-02-05 10:57:36 -05:00
Aleksey Kladov
648d99537c Add howtos 2021-02-05 17:45:14 +03:00
Aleksey Kladov
06aa34cd10 More architecture.md 2021-02-04 13:27:34 +03:00
Kushagra Gupta
b75e85998d
typo fixes 2021-02-03 21:30:42 +05:30
Kushagra Gupta
ed35e516b1
Grammar fixes
I think line 235 is still wrong, but I am not sure.

Is the `crated/tt` in line 252 supposed to be `crates/tt`?
2021-02-03 21:05:21 +05:30
Lukas Wirth
f82ce500a9 Fix spelling mistakes in docs/dev 2021-02-03 13:46:51 +01:00
Aleksey Kladov
1008aaae58 Make architecture more informative
Call out boundaries and invariants
2021-02-03 14:26:23 +03:00
Aleksey Kladov
283c3b0133 add useless types to the styleguide 2021-02-02 15:41:57 +03:00
Laurențiu Nicola
84c324b3dd Improve nvim-lsp setup instructions 2021-02-01 20:20:15 +02:00
Laurențiu Nicola
5e61d62fdc Explain what to do if a release fails 2021-02-01 16:46:23 +02:00