Add Neovim configuration information#1545
Conversation
|
I did test the nlsp-settings config and it accepted the config. It still has some problems, but not with the config. Mainly rust-lang/rust-analyzer#8330 and some other issue I don't know. Making RA work with rustc is a struggle. But I have autocomplete, code actions, jumping to definitions, and type hints which is better than anything I got with VSCode lol. |
|
Actually it wasn't working, but it is because the JSON in the book is invalid. It has a trailing comma which is invalid in JSON. So it was causing nvim to send a null dict. But I fixed it and also made the steps clear as it was confusing to me (first open a buffer, then update RA settings) |
|
This is a pre-existing problem, but the explanation of VSCode and Neovim is mixed up and difficult to understand to me. Could you break down them as a sub-section of the "Configuring rust-analyzer for rustc"? |
Sounds good |
The JSON provided for VSCode works with coc and nlsp-settings. This is verified by https://github.com/fannheyward/coc-rust-analyzer/blob/9d8bdb9290e2a9644367594a1ceed0288506efcd/README.md for coc, and feeding the JSON in to this schema https://github.com/tamago324/nlsp-settings.nvim/blob/215b537cfb3fad7c9c2e352fe47a10698b0993e0/schemas/_generated/rust_analyzer.json for validating nlsp-settings. The Lua translation is straight-forward and is how all rust-analyzer settings must be used with native nvim lsp.
First open a Rust buffer Then update RA settings If you don't open a buffer first then nothing will happen. This is because the plugin makes a raw LSP RPC, so RA must be attached.
The reason this is removed is because the JSON no longer lives in this file, so keeping the two in sync is a higher maintence burden than desired.
|
Also I cannot build these docs on my computer (Windows). PS C:\Users\Ross\Documents\rustc-dev-guide> mdbook build
2023-02-09 16:37:13 [INFO] (mdbook::book): Book building has started
2023-02-09 16:37:14 [INFO] (mdbook::book): Running the html backend
2023-02-09 16:37:16 [INFO] (mdbook::book): Running the linkcheck backend
2023-02-09 16:37:16 [INFO] (mdbook::renderer): Invoking the "linkcheck" renderer
2023-02-09 16:37:16 [ERROR] (mdbook::utils): Error: Rendering failed
2023-02-09 16:37:16 [ERROR] (mdbook::utils): Caused By: Unable to start the backend
2023-02-09 16:37:16 [ERROR] (mdbook::utils): Caused By: %1 is not a valid Win32 application. (os error 193) |
Update books ## rust-lang/book 1 commits in d94e03a18a2590ed3f1c67b859cb11528d2a2d5c..21a2ed14f4480dab62438dcc1130291bebc65379 2023-02-13 19:45:29 UTC to 2023-02-13 19:45:29 UTC - Removed "," typo on ch03-01 line 85 (rust-lang/book#3537) ## rust-lang/reference 1 commits in e5adb99c04817b7fbe08f4ffce5b36702667345f..a9afb04b47a84a6753e4dc657348c324c876102c 2023-02-14 14:57:15 UTC to 2023-02-14 14:57:15 UTC - Document the `efiapi` ABI (rust-lang/reference#1309) ## rust-lang/rust-by-example 1 commits in efe23c4fe12e06351b8dc8c3d18312c761455109..af0998b7473839ca75563ba3d3e7fd0160bef235 2023-02-15 18:17:20 UTC to 2023-02-15 18:17:20 UTC - Typographical mistake in tuples.md (rust-lang/rust-by-example#1685) ## rust-lang/rustc-dev-guide 30 commits in 41a96ab..b06dab8 2023-02-26 22:30:52 UTC to 2023-02-14 05:16:01 UTC - Fixed typing errors (rust-lang/rustc-dev-guide#1622) - this remains true (rust-lang/rustc-dev-guide#1620) - diagnostics: small fixes/improvements (rust-lang/rustc-dev-guide#1618) - typo (rust-lang/rustc-dev-guide#1616) - typo (rust-lang/rustc-dev-guide#1617) - keep "grey area" lint summary green (rust-lang/rustc-dev-guide#1619) - new solver: write canonicalization chapter (rust-lang/rustc-dev-guide#1595) - bootstrap now creates a usable toolchain when building stage0 std (rust-lang/rustc-dev-guide#1615) - llvm 13 is now not supported (rust-lang/rustc-dev-guide#1612) - enable AND search (rust-lang/rustc-dev-guide#1607) - Vetting deps datecheck (rust-lang/rustc-dev-guide#1614) - mention Dev desktops, to help with LLVM builds (rust-lang/rustc-dev-guide#1613) - fix and clarify llvm bugfix policy (rust-lang/rustc-dev-guide#1611) - lower-case "Compiler" in headings, for consistency (and looks) (rust-lang/rustc-dev-guide#1605) - Explain what the rest of the backend agnostic page is about (rust-lang/rustc-dev-guide#1609) - Bump dependencies to fix CI (rust-lang/rustc-dev-guide#1610) - rustc_codegen_ssa feels permanent enough not to need date-check (rust-lang/rustc-dev-guide#1606) - make use of the `host` symlink in the build directory, to ease things (rust-lang/rustc-dev-guide#1608) - have checkboxes only point to date-check lines in files (rust-lang/rustc-dev-guide#1603) - remove stray text (rust-lang/rustc-dev-guide#1604) - Typo (rust-lang/rustc-dev-guide#1601) - Typo (rust-lang/rustc-dev-guide#1602) - Add link to vscode settings in Rust repo (rust-lang/rustc-dev-guide#1591) - avoid code duplication by including files in docs (rust-lang/rustc-dev-guide#1598) - howto run the examples (rust-lang/rustc-dev-guide#1593) - Add sample CodeLLDB launch.json (rust-lang/rustc-dev-guide#1482) - typo (rust-lang/rustc-dev-guide#1600) - use actual names (rust-lang/rustc-dev-guide#1594) - Fix a typo (rust-lang/rustc-dev-guide#1597) - Add Neovim configuration information (rust-lang/rustc-dev-guide#1545)
Update books ## rust-lang/book 1 commits in d94e03a18a2590ed3f1c67b859cb11528d2a2d5c..21a2ed14f4480dab62438dcc1130291bebc65379 2023-02-13 19:45:29 UTC to 2023-02-13 19:45:29 UTC - Removed "," typo on ch03-01 line 85 (rust-lang/book#3537) ## rust-lang/reference 1 commits in e5adb99c04817b7fbe08f4ffce5b36702667345f..a9afb04b47a84a6753e4dc657348c324c876102c 2023-02-14 14:57:15 UTC to 2023-02-14 14:57:15 UTC - Document the `efiapi` ABI (rust-lang/reference#1309) ## rust-lang/rust-by-example 1 commits in efe23c4fe12e06351b8dc8c3d18312c761455109..af0998b7473839ca75563ba3d3e7fd0160bef235 2023-02-15 18:17:20 UTC to 2023-02-15 18:17:20 UTC - Typographical mistake in tuples.md (rust-lang/rust-by-example#1685) ## rust-lang/rustc-dev-guide 30 commits in 41a96ab..b06dab8 2023-02-26 22:30:52 UTC to 2023-02-14 05:16:01 UTC - Fixed typing errors (rust-lang/rustc-dev-guide#1622) - this remains true (rust-lang/rustc-dev-guide#1620) - diagnostics: small fixes/improvements (rust-lang/rustc-dev-guide#1618) - typo (rust-lang/rustc-dev-guide#1616) - typo (rust-lang/rustc-dev-guide#1617) - keep "grey area" lint summary green (rust-lang/rustc-dev-guide#1619) - new solver: write canonicalization chapter (rust-lang/rustc-dev-guide#1595) - bootstrap now creates a usable toolchain when building stage0 std (rust-lang/rustc-dev-guide#1615) - llvm 13 is now not supported (rust-lang/rustc-dev-guide#1612) - enable AND search (rust-lang/rustc-dev-guide#1607) - Vetting deps datecheck (rust-lang/rustc-dev-guide#1614) - mention Dev desktops, to help with LLVM builds (rust-lang/rustc-dev-guide#1613) - fix and clarify llvm bugfix policy (rust-lang/rustc-dev-guide#1611) - lower-case "Compiler" in headings, for consistency (and looks) (rust-lang/rustc-dev-guide#1605) - Explain what the rest of the backend agnostic page is about (rust-lang/rustc-dev-guide#1609) - Bump dependencies to fix CI (rust-lang/rustc-dev-guide#1610) - rustc_codegen_ssa feels permanent enough not to need date-check (rust-lang/rustc-dev-guide#1606) - make use of the `host` symlink in the build directory, to ease things (rust-lang/rustc-dev-guide#1608) - have checkboxes only point to date-check lines in files (rust-lang/rustc-dev-guide#1603) - remove stray text (rust-lang/rustc-dev-guide#1604) - Typo (rust-lang/rustc-dev-guide#1601) - Typo (rust-lang/rustc-dev-guide#1602) - Add link to vscode settings in Rust repo (rust-lang/rustc-dev-guide#1591) - avoid code duplication by including files in docs (rust-lang/rustc-dev-guide#1598) - howto run the examples (rust-lang/rustc-dev-guide#1593) - Add sample CodeLLDB launch.json (rust-lang/rustc-dev-guide#1482) - typo (rust-lang/rustc-dev-guide#1600) - use actual names (rust-lang/rustc-dev-guide#1594) - Fix a typo (rust-lang/rustc-dev-guide#1597) - Add Neovim configuration information (rust-lang/rustc-dev-guide#1545)
Update books ## rust-lang/book 1 commits in d94e03a18a2590ed3f1c67b859cb11528d2a2d5c..21a2ed14f4480dab62438dcc1130291bebc65379 2023-02-13 19:45:29 UTC to 2023-02-13 19:45:29 UTC - Removed "," typo on ch03-01 line 85 (rust-lang/book#3537) ## rust-lang/reference 1 commits in e5adb99c04817b7fbe08f4ffce5b36702667345f..a9afb04b47a84a6753e4dc657348c324c876102c 2023-02-14 14:57:15 UTC to 2023-02-14 14:57:15 UTC - Document the `efiapi` ABI (rust-lang/reference#1309) ## rust-lang/rust-by-example 1 commits in efe23c4fe12e06351b8dc8c3d18312c761455109..af0998b7473839ca75563ba3d3e7fd0160bef235 2023-02-15 18:17:20 UTC to 2023-02-15 18:17:20 UTC - Typographical mistake in tuples.md (rust-lang/rust-by-example#1685) ## rust-lang/rustc-dev-guide 30 commits in 41a96ab..b06dab8 2023-02-26 22:30:52 UTC to 2023-02-14 05:16:01 UTC - Fixed typing errors (rust-lang/rustc-dev-guide#1622) - this remains true (rust-lang/rustc-dev-guide#1620) - diagnostics: small fixes/improvements (rust-lang/rustc-dev-guide#1618) - typo (rust-lang/rustc-dev-guide#1616) - typo (rust-lang/rustc-dev-guide#1617) - keep "grey area" lint summary green (rust-lang/rustc-dev-guide#1619) - new solver: write canonicalization chapter (rust-lang/rustc-dev-guide#1595) - bootstrap now creates a usable toolchain when building stage0 std (rust-lang/rustc-dev-guide#1615) - llvm 13 is now not supported (rust-lang/rustc-dev-guide#1612) - enable AND search (rust-lang/rustc-dev-guide#1607) - Vetting deps datecheck (rust-lang/rustc-dev-guide#1614) - mention Dev desktops, to help with LLVM builds (rust-lang/rustc-dev-guide#1613) - fix and clarify llvm bugfix policy (rust-lang/rustc-dev-guide#1611) - lower-case "Compiler" in headings, for consistency (and looks) (rust-lang/rustc-dev-guide#1605) - Explain what the rest of the backend agnostic page is about (rust-lang/rustc-dev-guide#1609) - Bump dependencies to fix CI (rust-lang/rustc-dev-guide#1610) - rustc_codegen_ssa feels permanent enough not to need date-check (rust-lang/rustc-dev-guide#1606) - make use of the `host` symlink in the build directory, to ease things (rust-lang/rustc-dev-guide#1608) - have checkboxes only point to date-check lines in files (rust-lang/rustc-dev-guide#1603) - remove stray text (rust-lang/rustc-dev-guide#1604) - Typo (rust-lang/rustc-dev-guide#1601) - Typo (rust-lang/rustc-dev-guide#1602) - Add link to vscode settings in Rust repo (rust-lang/rustc-dev-guide#1591) - avoid code duplication by including files in docs (rust-lang/rustc-dev-guide#1598) - howto run the examples (rust-lang/rustc-dev-guide#1593) - Add sample CodeLLDB launch.json (rust-lang/rustc-dev-guide#1482) - typo (rust-lang/rustc-dev-guide#1600) - use actual names (rust-lang/rustc-dev-guide#1594) - Fix a typo (rust-lang/rustc-dev-guide#1597) - Add Neovim configuration information (rust-lang/rustc-dev-guide#1545)
* Add Neovim configuration information The JSON provided for VSCode works with coc and nlsp-settings. This is verified by https://github.com/fannheyward/coc-rust-analyzer/blob/9d8bdb9290e2a9644367594a1ceed0288506efcd/README.md for coc, and feeding the JSON in to this schema https://github.com/tamago324/nlsp-settings.nvim/blob/215b537cfb3fad7c9c2e352fe47a10698b0993e0/schemas/_generated/rust_analyzer.json for validating nlsp-settings. * Make the steps clear First open a Rust buffer Then update RA settings If you don't open a buffer first then nothing will happen. This is because the plugin makes a raw LSP RPC, so RA must be attached. * Use separate sections for VSCode and Nvim * Add a short section on the VSCode tasks.
The JSON provided for VSCode works with coc and nlsp-settings. This is verified by
https://github.com/fannheyward/coc-rust-analyzer#configurations for coc, and feeding the JSON in to this schema
https://github.com/tamago324/nlsp-settings.nvim/blob/main/schemas/_generated/rust_analyzer.json for validating nlsp-settings.
The Lua translation is straight-forward and is how all rust-analyzer settings must be used with native nvim lsp.
Note that I just moved and my main computer that has nvim setup on it is not unpacked so I did not test these. But I believe they should work, and I think I've actually done something like this in the past.