@@ -12,14 +12,16 @@ anything, feel free to ask questions on issues or visit the `#clippy` on [Discor
12
12
13
13
All contributors are expected to follow the [ Rust Code of Conduct] .
14
14
15
- * [ Getting started] ( #getting-started )
16
- * [ Finding something to fix/improve] ( #finding-something-to-fiximprove )
17
- * [ Writing code] ( #writing-code )
18
- * [ How Clippy works] ( #how-clippy-works )
19
- * [ Fixing nightly build failures] ( #fixing-build-failures-caused-by-rust )
20
- * [ Issue and PR Triage] ( #issue-and-pr-triage )
21
- * [ Bors and Homu] ( #bors-and-homu )
22
- * [ Contributions] ( #contributions )
15
+ - [ Contributing to Clippy] ( #contributing-to-clippy )
16
+ - [ Getting started] ( #getting-started )
17
+ - [ Finding something to fix/improve] ( #finding-something-to-fiximprove )
18
+ - [ Writing code] ( #writing-code )
19
+ - [ Getting code-completion for rustc internals to work] ( #getting-code-completion-for-rustc-internals-to-work )
20
+ - [ How Clippy works] ( #how-clippy-works )
21
+ - [ Fixing build failures caused by Rust] ( #fixing-build-failures-caused-by-rust )
22
+ - [ Issue and PR triage] ( #issue-and-pr-triage )
23
+ - [ Bors and Homu] ( #bors-and-homu )
24
+ - [ Contributions] ( #contributions )
23
25
24
26
[ Discord ] : https://discord.gg/rust-lang
25
27
[ Rust Code of Conduct ] : https://www.rust-lang.org/policies/code-of-conduct
@@ -91,6 +93,24 @@ quick read.
91
93
[ rfc_stability ] : https://github.com/rust-lang/rfcs/blob/master/text/2476-clippy-uno.md#stability-guarantees
92
94
[ rfc_lint_cats ] : https://github.com/rust-lang/rfcs/blob/master/text/2476-clippy-uno.md#lint-audit-and-categories
93
95
96
+ ## Getting code-completion for rustc internals to work
97
+
98
+ Unfortunately, [ ` rust-analyzer ` ] [ ra_homepage ] does not (yet?) understand how Clippy uses compiler-internals
99
+ using ` extern crate ` and it also needs to be able to read the source files of the rustc-compiler which are not
100
+ available via a ` rustup ` component at the time of writing.
101
+ To work around this, you need to have a copy of the [ rustc-repo] [ rustc_repo ] available which can be obtained via
102
+ ` git clone https://github.com/rust-lang/rust/ ` .
103
+ Then you can run a ` cargo dev ` command to automatically make Clippy use the rustc-repo via path-dependencies
104
+ which rust-analyzer will be able to understand.
105
+ Run ` cargo dev ra-setup --repo-path <repo-path> ` where ` <repo-path> ` is an absolute path to the rustc repo
106
+ you just cloned.
107
+ The command will add path-dependencies pointing towards rustc-crates inside the rustc repo to
108
+ Clippys ` Cargo.toml ` s and should allow rust-analyzer to understand most of the types that Clippy uses.
109
+ Just make sure to remove the dependencies again before finally making a pull request!
110
+
111
+ [ ra_homepage ] : https://rust-analyzer.github.io/
112
+ [ rustc_repo ] : https://github.com/rust-lang/rust/
113
+
94
114
## How Clippy works
95
115
96
116
[ ` clippy_lints/src/lib.rs ` ] [ lint_crate_entry ] imports all the different lint modules and registers in the [ ` LintStore ` ] .
0 commit comments