@@ -135,24 +135,24 @@ and follow the same instructions as above.
135
135
### Emacs
136
136
137
137
Emacs provides support for rust-analyzer with project-local configuration
138
- through [ Eglot] ( https://www.gnu.org/software/emacs/manual/html_node/eglot/ ) .
138
+ through [ Eglot] ( https://www.gnu.org/software/emacs/manual/html_node/eglot/ ) .
139
139
Steps for setting up Eglot with rust-analyzer can be [ found
140
- here] ( https://rust-analyzer.github.io/manual.html#eglot ) .
140
+ here] ( https://rust-analyzer.github.io/manual.html#eglot ) .
141
141
Having set up Emacs & Eglot for Rust development in general, you can run
142
142
` ./x setup editor ` and select ` emacs ` , which will prompt you to create
143
143
` .dir-locals.el ` with the recommended configuration for Eglot.
144
- The recommended settings live at [ ` src/etc/rust_analyzer_eglot.el ` ] .
144
+ The recommended settings live at [ ` src/etc/rust_analyzer_eglot.el ` ] .
145
145
For more information on project-specific Eglot configuration, consult [ the
146
146
manual] ( https://www.gnu.org/software/emacs/manual/html_node/eglot/Project_002dspecific-configuration.html ) .
147
147
148
148
### Helix
149
149
150
- Helix comes with built-in LSP and rust-analyzer support.
150
+ Helix comes with built-in LSP and rust-analyzer support.
151
151
It can be configured through ` languages.toml ` , as described
152
- [ here] ( https://docs.helix-editor.com/languages.html ) .
152
+ [ here] ( https://docs.helix-editor.com/languages.html ) .
153
153
You can run ` ./x setup editor ` and select ` helix ` , which will prompt you to
154
154
create ` languages.toml ` with the recommended configuration for Helix. The
155
- recommended settings live at [ ` src/etc/rust_analyzer_helix.toml ` ] .
155
+ recommended settings live at [ ` src/etc/rust_analyzer_helix.toml ` ] .
156
156
157
157
## Check, check, and check again
158
158
@@ -181,7 +181,7 @@ example, running `tidy` and `linkchecker` is useful when editing Markdown files,
181
181
whereas UI tests are much less likely to be helpful. While ` x suggest ` is a
182
182
useful tool, it does not guarantee perfect coverage (just as PR CI isn't a
183
183
substitute for bors). See the [ dedicated chapter] ( ../tests/suggest-tests.md ) for
184
- more information and contribution instructions.
184
+ more information and contribution instructions.
185
185
186
186
Please note that ` x suggest ` is in a beta state currently and the tests that it
187
187
will suggest are limited.
@@ -332,29 +332,22 @@ git worktree add -b my-feature ../rust2 master
332
332
You can then use that rust2 folder as a separate workspace for modifying and
333
333
building ` rustc ` !
334
334
335
- ## Using nix-shell
335
+ ## Working with nix
336
336
337
- If you're using nix, you can use the following nix-shell to work on Rust:
337
+ Several nix configurations are defined in ` src/tools/ nix-dev- shell` .
338
338
339
- ``` nix
340
- { pkgs ? import <nixpkgs> {} }:
341
- pkgs.mkShell {
342
- name = "rustc";
343
- nativeBuildInputs = with pkgs; [
344
- binutils cmake ninja pkg-config python3 git curl cacert patchelf nix
345
- ];
346
- buildInputs = with pkgs; [
347
- openssl glibc.out glibc.static
348
- ];
349
- # Avoid creating text files for ICEs.
350
- RUSTC_ICE = "0";
351
- # Provide `libstdc++.so.6` for the self-contained lld.
352
- LD_LIBRARY_PATH = "${with pkgs; lib.makeLibraryPath [
353
- stdenv.cc.cc.lib
354
- ]}";
355
- }
339
+ If you're using direnv, you can create a symbol link to ` src/tools/nix-dev-shell/envrc-flake ` or ` src/tools/nix-dev-shell/envrc-shell `
340
+
341
+ ``` bash
342
+ ln -s ./src/tools/nix-dev-shell/envrc-flake ./.envrc # Use flake
343
+ ```
344
+ or
345
+ ``` bash
346
+ ln -s ./src/tools/nix-dev-shell/envrc-shell ./.envrc # Use nix-shell
356
347
```
357
348
349
+ ### Note
350
+
358
351
Note that when using nix on a not-NixOS distribution, it may be necessary to set
359
352
** ` patch-binaries-for-nix = true ` in ` config.toml ` ** . Bootstrap tries to detect
360
353
whether it's running in nix and enable patching automatically, but this
0 commit comments