mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-11-03 21:25:25 +00:00 
			
		
		
		
	docs: create setup documentation
This commit is contained in:
		
							parent
							
								
									3ddfb0da47
								
							
						
					
					
						commit
						df14c010be
					
				
					 1 changed files with 63 additions and 0 deletions
				
			
		
							
								
								
									
										63
									
								
								docs/dev/setup.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								docs/dev/setup.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
# Setup Guide
 | 
			
		||||
 | 
			
		||||
This guide gives a simplified opinionated setup for developers contributing to rust-analyzer.
 | 
			
		||||
 | 
			
		||||
## Prerequisites
 | 
			
		||||
 | 
			
		||||
Since rust-analyzer is a Rust project, you will need to install Rust. You can download and install the latest stable version of Rust [here](https://www.rust-lang.org/tools/install).
 | 
			
		||||
 | 
			
		||||
You will also need Visual Studio Code and Visual Studio Code Insiders for this workflow. You can download and install Visual Studio Code [here](https://code.visualstudio.com/Download) and you can download and install Visual Studio Code Insiders [here](https://code.visualstudio.com/insiders/).
 | 
			
		||||
 | 
			
		||||
You will also need to install the rust-analyzer extension for Visual Studio Code and Visual Studio Code Insiders.
 | 
			
		||||
 | 
			
		||||
More information about Rust on Visual Studio Code can be found [here](https://code.visualstudio.com/docs/languages/rust)
 | 
			
		||||
 | 
			
		||||
## Step-by-Step Setup
 | 
			
		||||
 | 
			
		||||
**Step 01**: Fork the rust-analyzer repository and clone the fork to your local machine.
 | 
			
		||||
 | 
			
		||||
**Step 02**: Open the project in Visual Studio Code.
 | 
			
		||||
 | 
			
		||||
**Step 03**: Open a terminal and run `cargo build` to build the project.
 | 
			
		||||
 | 
			
		||||
**Step 04**: Install the language server locally by running the following command:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
cargo xtask install --server --code-bin code-insiders --dev-rel
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In the output of this command, there should be a file path provided to the installed binary on  your local machine.
 | 
			
		||||
It should look something like the following output below
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
Installing <path-to-rust-analyzer-binary>
 | 
			
		||||
Installed package `rust-analyzer v0.0.0 (<path-to-rust-analyzer-binary>)` (executable `rust-analyzer.exe`)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In Visual Studio Code Insiders, you will want to open your User Settings (JSON) from the Command Palette. From there you should ensure that the `rust-anaylzer.server.path` key is set to the `<path-to-rust-analyzer-binary>`. This will tell Visual Studio Code Insiders to use the locally installed version that you can debug.
 | 
			
		||||
 | 
			
		||||
The User Settings (JSON) file should contain the following:
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
    "rust-analyzer.server.path": "<path-to-rust-anaylzer-binary>"
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now you should be able to make changes to rust-analyzer in Visual Studio Code and then view the changes in Visual Studio Code Insiders.
 | 
			
		||||
 | 
			
		||||
## Debugging rust-analyzer
 | 
			
		||||
The simplist way to debug rust-analyzer is to use the `eprintln!` macro. The reason why we use `eprintln!` instead of `println!` is because the language server uses `stdout` to send messages. So instead we will debug using `stderr`.
 | 
			
		||||
 | 
			
		||||
An example debugging statement could go into the `main_loop.rs` file which can be found at `crates/rust-analyzer/src/main_loop.rs`. Inside the `main_loop` we will add the following `eprintln!` to test debugging rust-analyzer:
 | 
			
		||||
 | 
			
		||||
```rs
 | 
			
		||||
eprintln!("Hello, world!");
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now we run `cargo build` and `sh
 | 
			
		||||
cargo xtask install --server --code-bin code-insiders --dev-rel` to reinstall the server.
 | 
			
		||||
 | 
			
		||||
Now on Visual Studio Code Insiders, we should be able to open the Output tab on our terminal and switch to Rust Analyzer Language Server to see the `eprintln!` statement we just wrote.
 | 
			
		||||
 | 
			
		||||
If you are able to see your output, you now have a complete workflow for debugging rust-analyzer.
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue