Skip to content

Commit ed243fc

Browse files
authored
Unrolled build for rust-lang#130932
Rollup merge of rust-lang#130932 - mrkajetanp:editors, r=jieyouxu etc: Add sample rust-analyzer configs for eglot & helix LSP configuration in editors like Emacs (eglot) and helix does not use the same JSON format as vscode and vim do. It is not obvious how to set up LSP for rustc in those editors and the dev guide currently does not cover them. Adding sample configuration files for those editors alongside the currently existing JSON one would be helpful. I figured having those included in the repo like the JSON one might save someone some time and frustration otherwise spent on trying to get the more niche editors' LSP to work properly. I'll add a section in the dev guide too.
2 parents fa724e5 + a1846ec commit ed243fc

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Session.vim
2525
.favorites.json
2626
.settings/
2727
.vs/
28+
.dir-locals.el
2829

2930
## Tool
3031
.valgrindrc

Diff for: src/etc/rust_analyzer_eglot.el

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
((rustic-mode
2+
.((eglot-workspace-configuration
3+
. (:rust-analyzer
4+
( :check ( :invocationLocation "root"
5+
:invocationStrategy "once"
6+
:overrideCommand ["python3"
7+
"x.py"
8+
"check"
9+
"--json-output"])
10+
:linkedProjects ["Cargo.toml"
11+
"src/tools/x/Cargo.toml"
12+
"src/bootstrap/Cargo.toml"
13+
"src/tools/rust-analyzer/Cargo.toml"
14+
"compiler/rustc_codegen_cranelift/Cargo.toml"
15+
"compiler/rustc_codegen_gcc/Cargo.toml"]
16+
:rustfmt ( :overrideCommand ["build/host/rustfmt/bin/rustfmt"
17+
"--edition=2021"])
18+
:procMacro ( :server "build/host/stage0/libexec/rust-analyzer-proc-macro-srv"
19+
:enable t)
20+
:cargo ( :buildScripts ( :enable t
21+
:invocationLocation "root"
22+
:invocationStrategy "once"
23+
:overrideCommand ["python3"
24+
"x.py"
25+
"check"
26+
"--json-output"])
27+
:sysrootSrc "./library"
28+
:extraEnv (:RUSTC_BOOTSTRAP "1"))
29+
:rustc ( :source "./Cargo.toml" )))))))

Diff for: src/etc/rust_analyzer_helix.toml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
[language-server.rust-analyzer.config]
2+
linkedProjects = [
3+
"Cargo.toml",
4+
"src/tools/x/Cargo.toml",
5+
"src/bootstrap/Cargo.toml",
6+
"src/tools/rust-analyzer/Cargo.toml",
7+
"compiler/rustc_codegen_cranelift/Cargo.toml",
8+
"compiler/rustc_codegen_gcc/Cargo.toml"
9+
]
10+
11+
[language-server.rust-analyzer.config.check]
12+
invocationLocation = "root"
13+
invocationStrategy = "once"
14+
overrideCommand = [
15+
"python3",
16+
"x.py",
17+
"check",
18+
"--json-output",
19+
]
20+
21+
[language-server.rust-analyzer.config.rustfmt]
22+
overrideCommand = [
23+
"build-rust-analyzer/host/rustfmt/bin/rustfmt",
24+
"--edition=2021"
25+
]
26+
27+
[language-server.rust-analyzer.config.procMacro]
28+
server = "build-rust-analyzer/host/stage0/libexec/rust-analyzer-proc-macro-srv"
29+
enable = true
30+
31+
[language-server.rust-analyzer.config.rustc]
32+
source = "./Cargo.toml"
33+
34+
[language-server.rust-analyzer.config.cargo]
35+
sysrootSrc = "./library"
36+
37+
[language-server.rust-analyzer.config.cargo.extraEnv]
38+
RUSTC_BOOTSTRAP = "1"
39+
40+
[language-server.rust-analyzer.config.cargo.buildScripts]
41+
enable = true
42+
invocationLocation = "root"
43+
invocationStrategy = "once"
44+
overrideCommand = [
45+
"python3",
46+
"x.py",
47+
"check",
48+
"--json-output",
49+
]

0 commit comments

Comments
 (0)