@@ -19,6 +19,8 @@ You can also install the hook as a step of running `./x.py setup`!
1919
2020## Configuring ` rust-analyzer `  for ` rustc `   
2121
22+ ### Visual Studio Code  
23+ 
2224` rust-analyzer `  can help you check and format your code whenever you save
2325a file. By default, ` rust-analyzer `  runs the ` cargo check `  and ` rustfmt ` 
2426commands, but you can override these commands to use more adapted versions
@@ -27,20 +29,49 @@ you to create a `.vscode/settings.json` file which will configure Visual Studio
2729This will ask ` rust-analyzer `  to use ` ./x.py check `  to check the sources, and the
2830stage 0 rustfmt to format them.
2931
32+ If you have enough free disk space and you would like to be able to run ` x.py `  commands while
33+ rust-analyzer runs in the background, you can also add ` --build-dir build-rust-analyzer `  to the
34+ ` overrideCommand `  to avoid x.py locking.
3035
31- For Neovim users there are several options for configuring for rustc. The easiest way is by using 
32- [ nlsp-settings] ( https://github.com/tamago324/nlsp-settings.nvim ) , which allows for project-local
33- configuration files with the native LSP. The steps for how to use it are below.
36+ If running ` ./x.py check `  on save is inconvenient, in VS Code you can use a [ Build
37+ Task]  instead:
3438
35- 1 .  First install the plugin
36- 2 .  Run ` :LspSettings local rust_analyzer `  while the rust repo is open.
39+ ``` JSON 
40+ // .vscode/tasks.json 
41+ {
42+     "version" : " 2.0.0" 
43+     "tasks" : [
44+         {
45+             "label" : " ./x.py check" 
46+             "command" : " ./x.py check" 
47+             "type" : " shell" 
48+             "problemMatcher" : " $rustc" 
49+             "presentation" : { "clear" : true  },
50+             "group" : { "kind" : " build" "isDefault" : true  }
51+         }
52+     ]
53+ }
54+ ``` 
55+ 
56+ [ Build Task ] : https://code.visualstudio.com/docs/editor/tasks 
3757
38- This will create and open a JSON file to put the above JSON in.
3958
40- 3 .  Open a Rust buffer that causes Rust Analyzer to attach.
41- 4 .  Run ` :LspSettings update rust_analyzer `  
59+ ### Neovim  
4260
43- The final step must be repeated every time you open Neovim after you open a Rust buffer.
61+ For Neovim users there are several options for configuring for rustc. The easiest way is by using 
62+ [ neoconf.nvim] ( https://github.com/folke/neoconf.nvim/ ) , which allows for project-local
63+ configuration files with the native LSP. The steps for how to use it are below. Note that requires 
64+ Rust-Analyzer to already be configured with Neovim. Steps for this can be 
65+ [ found here] ( https://rust-analyzer.github.io/manual.html#nvim-lsp ) .
66+ 
67+ 1 .  First install the plugin. This can be done by following the steps in the README.
68+ 2 .  Run ` x.py setup ` , which will have a prompt for it to create a ` .vscode/settings.json `  file. ` neoconf ` 
69+ is able to read and update Rust-Analyzer settings automatically when the project is opened when this
70+ file is detected.
71+ 
72+ If you're running ` coc.nvim ` , you can use ` :CocLocalConfig `  to create a
73+ ` .vim/coc-settings.json `  and copy the settings from 
74+ [ this file] ( https://github.com/rust-lang/rust/blob/master/src/etc/vscode_settings.json ) .
4475
4576Another way is without a plugin, and creating your own logic in your configuration. The required 
4677Lua for doing so is below.
@@ -78,35 +109,6 @@ Lua for doing so is below.
78109}
79110``` 
80111
81- If you're running ` coc.nvim ` , you can use ` :CocLocalConfig `  to create a
82- ` .vim/coc-settings.json `  and copy the settings from [ this file] ( https://github.com/rust-lang/rust/blob/master/src/etc/vscode_settings.json ) .
83- 
84- If you have enough free disk space and you would like to be able to run ` x.py `  commands while
85- rust-analyzer runs in the background, you can also add ` --build-dir build-rust-analyzer `  to the
86- ` overrideCommand `  to avoid x.py locking.
87- 
88- If running ` ./x.py check `  on save is inconvenient, in VS Code you can use a [ Build
89- Task]  instead:
90- 
91- ``` JSON 
92- // .vscode/tasks.json 
93- {
94-     "version" : " 2.0.0" 
95-     "tasks" : [
96-         {
97-             "label" : " ./x.py check" 
98-             "command" : " ./x.py check" 
99-             "type" : " shell" 
100-             "problemMatcher" : " $rustc" 
101-             "presentation" : { "clear" : true  },
102-             "group" : { "kind" : " build" "isDefault" : true  }
103-         }
104-     ]
105- }
106- ``` 
107- 
108- [ Build Task ] : https://code.visualstudio.com/docs/editor/tasks 
109- 
110112## Check, check, and check again  
111113
112114When doing simple refactorings, it can be useful to run ` ./x.py check ` 
0 commit comments