-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great, thank you!
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.