Changelog
May 11, 2026 · View on GitHub
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
9.0.4 (2026-05-11)
Bug Fixes
9.0.3 (2026-04-25)
Bug Fixes
9.0.2 (2026-04-15)
Bug Fixes
- lsp/commands: don't send duplicate locations to quickfix list (56d123f)
9.0.1 (2026-04-05)
Bug Fixes
9.0.0 (2026-04-03)
⚠ BREAKING CHANGES
- drop Neovim 0.11 support
Features
- drop Neovim 0.11 support (08ad08c)
8.0.5 (2026-03-31)
Bug Fixes
8.0.4 (2026-03-04)
Bug Fixes
8.0.3 (2026-02-25)
Bug Fixes
8.0.2 (2026-02-24)
Bug Fixes
- executors/background: notify, don't error, on junit xml file read failure (81c4c7b)
- vimdoc: update helptag reference (175b06e)
8.0.1 (2026-02-18)
Bug Fixes
8.0.0 (2026-02-16)
⚠ BREAKING CHANGES
- lsp: remove .vscode/settings.json support in favour of codesettings.nvim (#938)
Features
Bug Fixes
- lsp: create
RustAnalyzercommand ifauto_attachis disabled (6637583)
7.1.9 (2026-02-01)
Bug Fixes
7.1.8 (2026-02-01)
Bug Fixes
7.1.7 (2026-01-27)
Bug Fixes
7.1.6 (2026-01-26)
Bug Fixes
7.1.5 (2026-01-24)
Bug Fixes
7.1.4 (2026-01-24)
Bug Fixes
7.1.3 (2026-01-23)
Bug Fixes
- lsp: prevent
:RustLspcommand from being created more than once (f7e7c72)
7.1.2 (2026-01-23)
Bug Fixes
7.1.1 (2026-01-18)
Bug Fixes
7.1.0 (2026-01-11)
Features
7.0.9 (2026-01-07)
Bug Fixes
7.0.8 (2025-12-30)
Bug Fixes
7.0.7 (2025-12-30)
Bug Fixes
7.0.6 (2025-11-30)
Bug Fixes
7.0.5 (2025-11-30)
Bug Fixes
- ci: fetch tags to properly trigger luarocks upload (f04f9f1)
7.0.4 (2025-11-30)
Bug Fixes
- neotest: handle consecutive passed tests for cargo test (#918) (ef86070)
- test: handle thread id after name in panic (#916) (06364ec)
7.0.3 (2025-11-26)
Bug Fixes
- cd: workaround actions/checkout bug (2) (aa9f96b)
7.0.2 (2025-11-26)
Bug Fixes
- ci: workaround actions/checkout bug (1) (75fc6b2)
7.0.1 (2025-11-26)
Bug Fixes
- ci: fetch tags so that lux can publish to luarocks (74cc71f)
7.0.0 (2025-11-26)
⚠ BREAKING CHANGES
- drop ra-multiplex support in favour of lspmux (#909)
Features
Bug Fixes
- fixups after nightly update (93644c7)
- lsp: update function call that is deprecated in nightly (fe91aad)
Performance Improvements
6.9.7 (2025-11-03)
Performance Improvements
6.9.6 (2025-10-27)
Bug Fixes
6.9.5 (2025-10-27)
Bug Fixes
6.9.4 (2025-10-26)
Bug Fixes
6.9.3 (2025-10-26)
Bug Fixes
6.9.2 (2025-08-31)
Bug Fixes
6.9.1 (2025-08-29)
Bug Fixes
- runnables: don't apply nextest args to non-test targets (4c41c8d)
6.9.0 (2025-08-29)
Features
- neotest: exclude snapbox tests that update (9394fb6)
- test: remove ansi codes from diagnostics (0ad4cbd)
Bug Fixes
- neotest: positions lost when rust-analyzer returns duplicate namespaces (558f7c9)
- test: correct diagnostic position (426b5ed)
6.8.0 (2025-08-20)
Features
6.7.0 (2025-08-06)
Features
- dap: deprioritise mason.nvim for codelldb detection (26ed8e4)
Bug Fixes
- dap: don't fail to load config if mason.nvim throws an error (5dcb580)
6.6.0 (2025-07-31)
Features
6.5.1 (2025-07-17)
Bug Fixes
6.5.0 (2025-07-14)
Features
6.4.1 (2025-07-10)
Bug Fixes
6.4.0 (2025-07-06)
Features
6.3.3 (2025-06-27)
Bug Fixes
6.3.2 (2025-06-18)
Bug Fixes
6.3.1 (2025-06-12)
Bug Fixes
6.3.0 (2025-05-25)
Features
- compatibility with nvim nightly 0.12.0-dev-434 (b611281)
6.2.0 (2025-05-20)
Features
6.1.1 (2025-05-18)
Bug Fixes
6.1.0 (2025-05-09)
Features
Bug Fixes
6.0.10 (2025-05-07)
Bug Fixes
6.0.9 (2025-05-06)
Bug Fixes
6.0.8 (2025-05-04)
Bug Fixes
6.0.7 (2025-05-03)
Bug Fixes
6.0.6 (2025-05-02)
Bug Fixes
- lsp/codeAcation: query all clients for encoding params (0d4fd7e)
6.0.5 (2025-04-26)
Bug Fixes
6.0.4 (2025-04-26)
Bug Fixes
6.0.3 (2025-04-19)
Bug Fixes
6.0.2 (2025-04-08)
Bug Fixes
6.0.1 (2025-04-06)
Bug Fixes
6.0.0 (2025-04-03)
⚠ BREAKING CHANGES
- lsp: don't auto-register LSP client capabilities
- drop
config.tools.editionconfig - drop support for
rust-analyzer.json - drop nvim 0.10 support
Features
- drop
config.tools.editionconfig (cff0267) - drop nvim 0.10 support (161360c)
- drop support for
rust-analyzer.json(1fcb991) - lsp: configure rust-analyzer on the fly (fc82520)
- lsp: don't auto-register LSP client capabilities (b2ab7de)
Performance Improvements
5.26.0 (2025-03-31)
Features
- range_hover: switch to normal when the floating window is focused (8cb8aee)
Bug Fixes
- hover_range: missing border (a706d03)
5.25.3 (2025-03-31)
Bug Fixes
- broken syntaxTree command (#713) (100efff)
- deprecation warning on go to definition hover action (nvim 0.11) (#711) (b1faa06)
5.25.2 (2025-03-25)
Bug Fixes
5.25.1 (2025-03-16)
Bug Fixes
5.25.0 (2025-02-25)
Features
5.24.4 (2025-02-03)
Bug Fixes
5.24.3 (2025-01-31)
Reverts
5.24.2 (2025-01-28)
Bug Fixes
5.24.1 (2025-01-28)
Bug Fixes
5.24.0 (2025-01-27)
Features
- health: don't warn if nvim-dap is not configured (630c8b0)
- notify if using an unsupported Nvim version (f571a59)
Bug Fixes
- dap: remove deprecated function call (5d993d3)
5.23.1 (2025-01-23)
Bug Fixes
5.23.0 (2025-01-22)
Features
Bug Fixes
5.22.0 (2025-01-02)
Features
5.21.0 (2025-01-02)
Features
- health: check for optional ra-multiplex dependency (f855920)
Bug Fixes
- health: don't error if cargo-nextest isn't found (618f274)
5.20.1 (2024-12-24)
Bug Fixes
- remove debug print 🫣 (52a031f)
5.20.0 (2024-12-24)
Features
- lsp: auto-connect to ra-multiplex if running (b394709)
Bug Fixes
- lsp: don't eagerly evaluate
server.cmd(7a1511b)
5.19.2 (2024-12-17)
Bug Fixes
- commands/relatedDiagnostics: error opening quickfix list in nightly (aff6748)
5.19.1 (2024-12-17)
Bug Fixes
- neotest: prevent running multiple tests when running a single test with cargo-nextest (#619) (152d1e7)
5.19.0 (2024-12-15)
Features
5.18.0 (2024-12-08)
Features
- diagnostics: focus preview window when invoking commands again with
currentargument (#607) (a7bb78c)
Bug Fixes
5.17.1 (2024-12-04)
Bug Fixes
5.17.0 (2024-12-03)
Features
5.16.0 (2024-12-02)
Features
- lsp: info log when starting client in standalone mode (0362314)
Bug Fixes
- lsp: fall back to default offset encoding if not set (4ac7a3c)
5.15.4 (2024-11-29)
Bug Fixes
- lsp/nightly: avoid deprecations with no alternative in stable (╯°□°)╯︵ ┻━┻ (#587) (f116a55)
- lsp: remove info notification when switching target architecture (7a565dc)
5.15.3 (2024-11-27)
Bug Fixes
- lsp: schedule notification if lsp restart times out (1f97e08)
5.15.2 (2024-11-25)
Bug Fixes
5.15.1 (2024-11-25)
Bug Fixes
5.15.0 (2024-11-18)
Features
5.14.1 (2024-11-12)
Bug Fixes
- compatibility with nvim-nightly (0b40190)
5.14.0 (2024-11-10)
Features
5.13.2 (2024-11-09)
Bug Fixes
5.13.1 (2024-10-28)
Performance Improvements
5.13.0 (2024-10-17)
Features
Bug Fixes
- remove corrupt file that breaks git clone on windows (ccff140)
5.12.0 (2024-10-15)
Features
5.11.0 (2024-10-01)
Features
5.10.1 (2024-09-27)
Bug Fixes
- windows: remove empty file causing git clone to fail (b7c8171)
5.10.0 (2024-09-27)
Features
- add hint on how to configure/disable server status notifications (711e25f)
5.9.0 (2024-09-23)
Features
5.8.1 (2024-09-21)
Bug Fixes
5.8.0 (2024-09-20)
Features
Bug Fixes
[5.7.0]
Added
- LSP: More information in unhealthy rust-analyzer notifications. Thanks @edevil!
[5.6.0] - 2024-09-18
Added
- LSP: Notify if rust-analyzer is not healthy.
[5.5.0] - 2024-09-16
Changed
- Deprecate
rust-analyzer.jsonin favour of.vscode/settings.jsonor:h exrc.
[5.4.2] - 2024-09-12
Fixed
- When adding DAP configurations
(
vim.g.rustaceanvim.dap.autoload_configurations = true, default), wait for compilation before spawning another process for the next compilation.
[5.4.1] - 2024-09-10
Fixed
- Vim help docs: Actually include tags file.
[5.4.0] - 2024-09-10
Added
- Vim help docs: Include tags.
[5.3.0] - 2024-09-10
Added
- DAP: Use integrated terminal for lldb-dap by default Thanks @adonis0147!
[5.2.3] - 2024-09-04
Fixed
- LSP: Copy settings to
init_optionswhen starting the client to match VSCode. Thanks @cormacrelf!
[5.2.2] - 2024-08-26
Fixed
- UI:
nilsafety in codeAction Group. Thanks @dsully!
[5.2.1] - 2024-08-13
Fixed
[5.2.0] - 2024-08-06
Added
- Load rust-analyzer settings from
.vscode/settings.jsonby default. Can be disabled by settingvim.g.rustaceanvim.server.load_vscode_settings. This was introduced as an experimental feature in version 4.14.0.
[5.1.5] - 2024-08-05
Fixed
- Health: Warn if no debug adapters have been detected.
[5.1.4] - 2024-08-02
Fixed
- LSP (runnables/quickfix executor): Quickfix list populated with a single line.
[5.1.3] - 2024-08-02
Fixed
- LSP (runnables/quickfix executor): Always add both
stdoutandstderrto the quickfix list.
[5.1.2] - 2024-08-02
Fixed
- DAP: Autoload new configurations in
on_attach[#466].
[5.1.1] - 2024-07-29
Fixed
- Neotest: One test failure caused all succeeding tests to be marked as failed when using cargo-nextest 0.9.7 [#460].
- Neotest: Disable ansi colour coding in output to ensure output can be parsed.
Rustc unpretty: Support Windows.- Auto-detect the
rustcedition. This deprecates thevim.g.rustaceanvim.tools.rustc.editionoption in favour ofvim.g.rustaceanvim.tools.rustc.default_edition.
[5.1.0] - 2024-07-27
Added
- LSP: Added colored ansi code diagnostic to floating and split windows
for
RustLsp renderDiagnostic. Thanks @xzbdmw!
[5.0.0] - 2024-07-26
BREAKING CHANGES
- Require Neovim
>= 0.10.0. - Rename types in LuaCATS annotations and vimdoc.
[4.26.1] - 2024-07-10
Fixed
- DAP: rust-analyzer removed the
cargoExtraArgsfield, which is a breaking change.
[4.26.0] - 2024-07-07
Added
- LSP: Added optional
current/cyclearguments to theexplainErrorandrenderDiagnosticcommands. No argument defaults tocycle, which is current base behaviour.currentmakes these functions only look for diagnostics in current cursor line Thanks @Rumi152!
Fixed
[4.25.1] - 2024-06-21
Changed
- Testables: Default to
termopentest executor if not usingneotest
Added
Fixed
- LSP: Support completions for
RustLspwith selection ranges.
[4.25.0] - 2024-06-16
Added
- LSP: If Neovim's file watcher is disabled, configure rust-analyzer to enable server-side file watching, unless it has been configured otherwise [#423].
Fixed
- DAP: Dynamic library path setup using nightly rust builds
(stable
rustcwas always used due to a missingcwdparameter). Thanks @morfnasilu! - DAP: Dynamic linking on macOS not working due to a typo in the
DYLD_LIBRARY_PATHenvironment variable. Thanks @morfnasilu!
[4.24.1] - 2024-06-15
Fixed
- Don't set deprecated
allFeaturessetting by default. Thanks @zjp-CN! - Error when decoding invalid JSON or blank string from cargo metadata.
[4.24.0] - 2024-05-30
Added
- Config: Add a new
config.server.root_diroption to override the root directory detection logic Thanks @bgw!
Fixed
- LSP: Force-extend Neovim's default client capabilities with detected plugin capabilities, to ensure plugin capability extensions take precedence in case of conflict.
[4.23.5] - 2024-05-24
Fixed
- LSP: Bug preventing rustaceanvim from loading
rust-analyzer.jsonsettings if there's no"rust-analyzer":key.
[4.23.4] - 2024-05-23
Fixed
- LSP: Error when editing a rust file in a directory that does not exist (#404).
[4.23.3] - 2024-05-23
Fixed
- LSP/Clippy: use correct rust-analyzer config key,
checkinstead ofcheckOnSave, to enable clippy if detected. Thanks @Ryex!
[4.23.2] - 2024-05-16
Fixed
- Executors/termopen:
<Esc>to close buffer not silent. Thanks @b1nhack! - LSP: Only register
completionItem.snippetSupportclient capability when using Neovim >= 0.10.
[4.23.1] - 2024-05-12
Fixed
- UI/Config: Don't override Neovim defaults in default
float_win_config.
[4.23.0] - 2024-05-11
Added
- Config: Open vertical splits from floating windows with
tools.float_win_config.open_split = 'vertical'. Thanks @dwtong!
[4.22.10] - 2024-05-04
Fixed
- Neotest: Remove unsupported
--show-outputflag when running with cargo-nextest.
[4.22.9] - 2024-05-04
Changed
- Update neovim nightly API call. If you are using neovim nightly, you need a build after May 04, 2024. Thanks @NicolasGB!
[4.22.8] - 2024-04-26
Fixed
- LSP: Reuse client when viewing git dependencies [#374)]. Thanks @eero-lehtinen!
[4.22.7] - 2024-04-26
Fixed
- LSP:
renderDiagnosticandexplainErrorskipped diagnostics if they were in the same location as other diagnostics. Thanks @LukeFranceschini! - LSP:
renderDiagnosticandexplainErrorstopped searching early and defaulted to the first diagnostic in the file, instead of the next diagnostic after the current cursor position. Thanks @LukeFranceschini!
[4.22.6] - 2024-04-19
Changed
- Update neovim nightly API call [#365]. If you are using neovim nightly, you need a build after April 19, 2024.
[4.22.5] - 2024-04-18
Fixed
- UI:
float_win_config.bordernot applied to code action group windows [#363].
[4.22.4] - 2024-04-15
Fixed
- Neotest: Replace nightly API call with Neovim 0.9 API call (introduced in 4.22.1).
[4.22.3] - 2024-04-14
Fixed
- Neotest: No tests found when getting root directory for a project directory.
[4.22.2] - 2024-04-14
Fixed
- Neotest/DAP: Undo sanitize command for debugging when running with a non-dap strategy, in case it was sanitized during a dap strategy run.
[4.22.1] - 2024-04-14
Fixed
- Neotest/DAP: multiple
--no-runflags added to command when debugging multiple times [#357].
[4.22.0] - 2024-04-14
Added
- Config: Customise group action icon with
tools.code_actions.group_icon. Thanks @ColdMacaroni!
[4.21.2] - 2024-04-13
Fixed
- Health: Report error if version check fails for a required
external dependency. This should help with false positives
when detecting
rust-analyzerif the rustup wrapper is installed, butrust-analyzerisn't.
[4.21.1] - 2024-04-11
Fixed
- LSP:
renderDiagnosticdoesn't move cursor if it falls back to the first diagnostic when searching forwards.
[4.21.0] - 2024-04-01
Added
- LSP: Support structural search and replace (SSR) just for the selected range.
[4.20.0] - 2024-04-01
Added
- DAP/LSP:
tools.cargo_overrideoption to override thecargocommand for runnables/debuggables/testables.
[4.19.0] - 2024-04-01
Added
- DAP/LSP:
RustLsp [run|debug]commands for running/debugging targets at the current cursor position. - LSP: Join multiple visually selected lines with
:RustLsp joinLines.
Fixed
- LSP: Escape character inserted before
}when applying code action withSnippetTextEdit[#303].
[4.18.2] - 2024-03-28
Changed
- DAP: Output command that was run if debug build compilation fails.
[4.18.1] - 2024-03-28
Fixed
- DAP: Add both
stderrandstdoutto error message if debug build compilation fails.
[4.18.0] - 2024-03-27
Added
:RustLsp openDocscommand [#325].
[4.17.0] - 2024-03-26
Added
- LSP: Automatically detect and register client capabilities for the following plugins, if installed:
Fixed
- Neotest: Correctly mark passed and skipped tests when running a whole test file or module [#321].
- DAP: Only load
.vscode/launch.jsonconfigurations that don't conflict with the configured adapter type.
[4.16.0] - 2024-03-24
Added
- Initialization: Warn if nvim-lspconfig.rust-analyzer setup is detected.
[4.15.0] - 2024-03-24
Added
- LSP:
RustAnalyzer reloadSettingscommand to reload settings without restarting [#309]. Thanks @GuillaumeLagrange!
Fixed
- DAP: Defer automatic registration of nvim-dap configurations on LSP client init, to improve reliability.
[4.14.1] - 2024-03-17
Fixed
- Health: rust-analyzer reported as not found in neovim 0.9 [#302].
[4.14.0] - 2024-03-17
Added
- [Experimental] Load rust-analyzer settings from
.vscode/settings.json. Can be enabled by settingvim.g.rustaceanvim.server.load_vscode_settingstotrue[#286]. - Health: Detect rust-analyzer wrapper without rust-analyzer (Neovim >= 0.10).
Fixed
- Config: Don't validate configs whose types are defined in external APIs such as nvim-dap [#294].
- DAP: Don't error if adding source/library information fails (warn instead).
- LSP/DAP: Fail silently if adding DAP configurations on LSP client attach fails [#295].
[4.13.0] - 2024-03-15
Added
- LSP: More flexibility when overriding default rust-analyzer settings.
The
server.settingsfunction can now take adefault_settingstabe to be merged.
Fixed
- Loading settings from
rust-analyzer.json: Potential for duplicate lua config keys if json keys are of the format:"rust-analyzer.foo.bar"
[4.12.2] - 2024-03-11
Fixed
- LSP/Windows: path normalisation preventing lsp from working
textDocument/definitionto std library [#285]. Thanks @tangtang95!
[4.12.1] - 2024-03-09
Fixed
- UI: Buggy concealing of elements in rendered diagnostics [#280].
- LSP: Use file directory name as cwd when getting cargo metadata. This prevents rustaceanvim from detecting the wrong project root in standalone files if the current cwd is a cargo project.
[4.12.0] - 2024-03-08
Fixed
- DAP:
:RustLsp! debuggablesnot falling back to UI select when no debuggable is found.
Added
- LSP: Support falling back to UI select for
:RustLsp! runnablesand:RustLsp! testables.
[4.11.1] - 2024-03-04
Fixed
- LSP/Windows: Windows path normalisation preventing LSP client from working [#273].
[4.11.0] - 2024-03-03
Added
- LSP: By default, don't auto-attach to buffers that aren't files [#268].
Fixed
- LSP: Bug preventing reload workspace on save Cargo.toml when opening another Rust buffer [#270].
- LSP: Don't try to delete
RustLspcommand on client exit if it doesn't exist, and fail silently.
[4.10.2] - 2024-03-01
Fixed
- LSP: Schedule Neovim API calls on
on_exit[#267]. Thanks @tomtomjhj!
[4.10.1] - 2024-02-27
Fixed
- UI: Explicitly disable signcolumn for grouped code action and hover action windows [#262].
[4.10.0] - 2024-02-23
Added
- LSP/Grouped code actions: Add
<ESC>keymap to close buffer. This is consistent with the behaviour of the hover actions buffer.
[4.9.0] - 2024-02-23
Added
- Nix:
codelldbadapter package (without the vscode extension) as a nixpkgs overlay and a flake output.
Reverted
- Don't run
ftplugin/rust.luamore than once on the same buffer. This prevented the client from reattaching when running:eon a buffer [#250].
[4.8.0] - 2024-02-20
Added
- Neotest: Expose doctests in
:Neotest summarywindow [#247]. Thanks @bltavares!
Fixed
- Testables: Run doctests when cargo-nextest is present [#246] Thanks @bltavares!
- Windows: Normalize file actions when comparing to root dir [#245]. Thanks @bltavares!
[4.7.5] - 2024-02-20
Fixed
- DAP: Use deep copies of dap configs.
- DAP: Bad config validation:
dap.configuration.envshould be atable, not astring.
[4.7.4] - 2024-02-19
Fixed
- LSP: Support both top-level rust-analyzer object and object with
"rust-analyzer":key when importing settings fromrust-analyzer.json. The fix introduced in version 4.6.0 had accidentally broken backward compatibility. The new implementation is backward compatible again.
[4.7.3] - 2024-02-15
Fixed
- LSP: Error when running
reloadWorkspace,rebuildMacrosorworkspaceSymbolfrom a non-rust buffer [#234]. - Internal: Don't pass client not found error to handler.
[4.7.2] - 2024-02-13
Revert
- DAP(
codelldb): Redirectstdio(stdout) to a temp file.
[4.7.1] - 2024-02-12
Fixed
- LSP:
checkOnSave = falsenot respected when clippy is installed (introduced with clippy auto-detection in version4.6.0).
[4.7.0] - 2024-02-11
Added
- Testables: Add
tools.crate_test_executoroption for running crate test suites (--all-targets). - Rustc: Do not require a main function,
and support the 2024 edition
via
unstable-options. Thanks @saying121!
Fixed
- Neotest: Nested modules + position updates when switching buffers [#223]. Thanks @jameshurst!
- Testables: Support
neotestexecutor when usingnextest. - Testables: Support aliases for
test_executorandcrate_test_executor.
[4.6.0] - 2024-02-07
Added
- LSP: New
tools.enable_clippyoption (defaults totrue). Enable clippy lints on save if acargo-clippyinstallation is detected.
Fixed
- testables/neotest: Don't use nextest if disabled in the config.
- LSP: load project-local rust-analyzer.json configs into
server['rust-analyzer'], instead of replacing theserverconfig.
[4.5.2] - 2024-02-06
Fixed
- runnables/debuggables/testables:
cdinto directory with spaces [#212].
Fixed
[4.5.1] - 2024-02-03
Fixed
- LSP: Notify if an LSP request was made but no rust-analyzer client is attached.
- Neotest: Only the current buffer was queried for test positions.
[4.5.0] - 2024-02-02
Added
- Filtered workspace symbol searches with
:RustLsp[!] workspaceSymbol [onlyTypes?|allSymbols?] [query?]. Will include dependencies if called with a bang!. - Neotest: Basic support for
require('neotest').run.run { suite = true }. This will run the current crate's test suite, if detected. Note that positions are still only discovered for buffers with an attached LSP client.
[4.4.0] - 2024-02-01
Added
- You can now register a
rustaceanvim.neotestadapter with neotest. It will query rust-analyzer for test positions and test commands in any buffer to which the LSP client is attached. If you do so,tools.test_executorwill default to a new'neotest'executor, which will use neotest to runtestablesorrunnablesthat are tests. - Support for
require('neotest').run.run { strategy = 'dap' }. This will use the same logic as:RustLsp debuggablesto set neotest's DAP strategy. No extra configuration needed! :RustLsp testables: Prettier selection options.
Fixes
- DAP(
codelldb): Redirectstdio(stdout) to a temp file.
[4.3.0] - 2024-01-31
Changed
- LSP: Improved parsing of test result failure messages.
[4.2.1] - 2024-01-30
Fixed
- LSP: Only advertise
rust-analyzer.debugSinglecommand capability if nvim-dap is installed. - LSP:
nilerror if running:RustLsp! testablesand there is no previous testable. - LSP: Update previous testables cache if executing a
rust-analyzer.runSinglecommand that is a test.
[4.2.0] - 2024-01-30
Added
- Config: Separate
tools.executorandtools.test_executoroptions. Thetest_executoris used for test runnables (e.g.cargo test). - LSP: New test executor,
'background'that runs tests in the background and provides diagnostics for failed tests when complete. Used by default in Neovim >= 0.10. - LSP:
:RustLsp testablescommand, which is equivalent to:RustLsp runnables, but filters the runnables for tests only,
Important
In Neovim < 0.10, 'background' executor blocks the UI while running tests.
[4.1.0] - 2024-01-29
Added
:Rustc unprettycommand: Userustc -Z unpretty=[mir|hir|...]to inspect mir and other things, and achieve an experience similar to Rust Playground. (currently requires a nightly compiler). Thanks saying121!- Config:
tools.rustcarguments forrustc.
Changed
- Improved command completions.
- Filter suggested subcommand arguments based on existing user input.
- When calling,
:RustLsp!, show only subcommands that change behaviour with a bang.
Fixed
- Command completions: Removed completions
for
runnables/debuggables last.
[4.0.3] - 2024-01-28
Fixed
renderDiagnostic: Window closes immediately ifauto_focusis disabled [#193].explainError/renderDiagnostic: Fall back to first detected diagnostic if none is found close to the cursor.
[4.0.2] - 2024-01-27
Fixed
- LSP (standalone): Use
bufnrpassed intolsp.startfunction when determining detached file name.
[4.0.1] - 2024-01-27
Fixed
- LSP: Fix resetting client state on
:RustAnalyzer stopif only one client is attached.
Performance
- Only setup
vim.lsp.commandsfor rust-analyzer on the first initialization. - Don't run
ftplugin/rust.luamore than once on the same buffer.
[4.0.0] - 2024-01-25
BREAKING CHANGES
- To run the previous runnable/debuggable, you would call
:RustLsp runnables lastor:RustLsp debuggables last. These two functions now take optional arguments that you can pass to the executables. The new way to run the previous runnable/debuggable is with a bang (!). e.g.:RustLsp! debuggables. In Lua, this isvim.cmd.RustLsp { 'debuggables', bang = true }, and the same for'runnables'.
Added
- LSP: Option to fall back to
vim.ui.selectif there are no code action groups when running:RustLsp codeAction. - LSP/DAP: Allow overriding executable args with
:RustLsp runnables args[]and:RustLsp debuggables args[].
Fixed
- LSP: Focus lost when secondary float opens on
:RustLsp codeAction[#169].
[3.17.3] - 2024-01-25
Fixed
- DAP:
nilsafety in standalone files [#182].
[3.17.2] - 2024-01-22
Fixed
- LSP: Properly sanitize hover actions debug command [#179]. Thanks @Tired-Fox!
[3.17.1] - 2024-01-22
Fixed
- Spawn rust-analyzer in detached mode when no project root is found. This adds support for standalone files without a Rust project.
[3.17.0] - 2024-01-20
Added
- Cache runnables and debuggables run with commands/code lenses.
[3.16.3] - 2024-01-20
Changed
- Performance (DAP): Use cached source map, LLDB commands and library path.
- DAP: Set
autoload_configurationsonly for Neovim >= 0.10, as compiling the debug build is not async in Neovim 0.9.
[3.16.2] - 2024-01-19
Fixed
- DAP:
nilerror when executingrust-analyzer.debugSingleor:RustLsp debuggables lastcommands (introduced in 3.16.0).
[3.16.1] - 2024-01-17
Fixed
- DAP: Improve reliability of loading Rust debug configurations on LSP attach.
- DAP: Assign
lldbandcodelldbconfigurations found inlaunch.jsontodap.configurations.rust.
[3.16.0] - 2024-01-15
Added
- DAP: Better
nvim-dapintegration: Automatically try to load Rust debug configurations on LSP attach. This lets you userequire('dap').continue()instead of:RustLsp debuggables, once the configurations have been loaded. Can be disabled by settingvim.g.rustaceanvim.dap.autoload_configurations = false.
Fixed
- LSP: If inlay hints are enabled for a buffer, force Neovim to redraw them when rust-analyzer has fully initialized. This is a workaround for neovim/26511.
- LSP: On client stop, reset the
experimental/serverStatushandler's internal state for the respective client, so that the handler can be rerun on restart. - LSP/Windows: Normalize case sensitive
root_dir[#151]. Thanks @TrungNguyen153!
[3.15.0] - 2024-01-11
Added
:RustAnalyzer restartcommand.- Smarter completions for
:RustAnalyzercommands.- Only suggest
startcommand if there is no active client for the current buffer - Only suggest
stopandrestartif there is an active client for the current buffer
- Only suggest
[3.14.0] - 2024-01-10
Added
:RustLsp renderDiagnosticcommand: Render diagnostics as displayed duringcargo build.- Add
Open in splitaction toexplainErrorandrenderDiagnosticfloat preview windows.
[3.13.1] - 2024-01-10
Fixed
- DAP: Use
codelldbadapter nvim-dap field when usingcodelldb.
[3.13.0] - 2024-01-09
Added
- Config:
tools.float_win_configfor all floating Windows created by this plugin. Movedborder,max_width,max_height,auto_focusfromhover_actionstofloat_win_config. Thehover_actionswindow options are still applied if they exist, so as not to break compatibility. Thanks @saying121!
Fixed
- DAP: Don't load
lldb_commandswhen usingcodelldb. - DAP: Make sure the client configuration type is 'codelldb' when using a 'codelldb' adapter.
[3.12.2] - 2024-01-07
Fixed
- LSP: Don't set
augmentsSyntaxTokenscapability. This appears to cause problems for some colorschemes.
[3.12.1] - 2024-01-06
Fixed
- Config: Report error if new validations fail.
[3.12.0] - 2024-01-06
Added
- Config: Some more validations.
[3.11.0] - 2023-12-23
Added
Fixed
- SSR: Make query optional.
[3.10.5] - 2023-12-22
Fixed
- Health: Only report error if
lspconfig.rust_analyzerhas been setup, not other lspconfig configurations.
[3.10.4] - 2023-12-20
Fixed
- SSR: Broken when command contains spaces [#104].
- LSP: Prevent "attempt to index a
nilvalue" error [#105].
[3.10.3] - 2023-12-19
Fixed
- Health: Don't eagerly import modules.
[3.10.2] - 2023-12-18
Fixed
- DAP: Only add sourceMap and lldb commands if the files exist.
- DAP (Windows): Fixed .exe extension in mason.nvim codelldb detection. Thanks @svermeulen!
[3.10.1] - 2023-12-14
Fixed
- DAP: Check if mason dap package is installed [#96]. Thanks @richchurcher!
[3.10.0 - 2023-12-12
Added
Thanks @Andrew Collins:
- DAP: Load the
dap.adapterconfig value into thelldbadapter, but only if thelldbadapter is not already configured. - DAP: Add
dap.configurationentry to config with the default behaviour of loadinglaunch.json, or falling back to a basic configuration of thelldbadapter.- Use the
dap.configurationconfig value to configure the debug session, falling back to therustconfiguration.
- Use the
- DAP: Support
probe-rs.
[3.9.6] - 2023-12-06
Fixed
nilchecks for when there is no root project. Fixes the error message encountered in #90.
[3.9.5] - 2023-12-05
Fixed
:RustLsp flyCheck: Typo in LSP client request, causing the command to do nothing [#88].
[3.9.4] - 2023-12-01
Fixed
- DAP: mason.nvim
codelldbinstallation detection - liblldb path.
[3.9.3] - 2023-12-01
Fixed
- DAP: Typo in mason.nvim
codelldbinstallation detection (╯°□°)╯︵ ┻━┻.
[3.9.2] - 2023-12-01
Fixed
- DAP:
loop errorwhen auto-detecting mason.nvimcodelldbinstallation. - DAP: Deprecate
require('rustaceanvim.dap').get_codelldb_adapter(replaced withrequire('rustaceanvim.config').get_codelldb_adapter).
[3.9.1] - 2023-12-01
Fixed
- DAP: Potential bug when loading mason.nvim's
codelldbpackage. - DAP: Check that mason.nvim's
codelldbpackage isn'tnilbefore using it.
[3.9.0] - 2023-12-01
Added
- DAP: Auto-detect
codelldbif it is installed via mason.nvim.
[3.8.0] - 2023-12-01
Added
:RustLsp logFilecommand, which opens the rust-analyzer log file.:RustLsp flyCheck: Supportrun,clearandcancelsubcommands.- Executors: Support commands without
cwd.
Fixed
- Health: Check if
vim.g.rustaceanvimis set, but hasn't been sourced before initialization.
[3.7.1] - 2023-11-28
Fixed
- DAP: Correctly format environment, so that it works with both
codelldbandlldb[#74]. Thanks @richchurcher!
[3.7.0] - 2023-11-27
Added
- DAP: Support dynamically compiled executables [[#64]https://github.com/mrcjkb/rustaceanvim/pull/64).
Thanks @richchurcher!
- Configures dynamic library paths by default (with the ability to disable)
- Loads Rust type information by default (with the ability to disable).
Fixed
- DAP: Format
sourceMapcorrectly for bothcodelldbandlldb.codelldbexpects a map, whilelldbexpects a list of tuples.
[3.6.5] - 2023-11-22
Fixed
- Completion for
:RustLsp hover actionscommand suggestingaction.
[3.6.4] - 2023-11-19
Fixed
[3.6.3] - 2023-11-18
- DAP: Source map should be a list of tuples, not a map.
Fixed
- DAP:
lldb-vscodeandlldb-dapexecutable detection.
[3.6.2] - 2023-11-17
Fixed
- DAP: Add support for
lldb-dap, which has been renamed tolldb-vscode, but may still have the old name on some distributions.
[3.6.1] - 2023-11-17
Fixed
- Broken
:RustLsp runnables lastcommand [#62].
[3.6.0] - 2023-11-15
Added
- Add
tools.open_urloption, to allow users to override how to open external docs.
[3.5.1] - 2023-11-13
Fixed
- Config validation fails if
server.settingsoption is a table [#56].
[3.5.0] - 2023-11-11
Added
- Ability to load rust-analyzer settings from project-local JSON files.
[3.4.2] - 2023-11-11
Fixed
- Open external docs broken in Neovim 0.9 [#50].
[3.4.1] - 2023-11-10
Fixed
- Command completion broken in Neovim 0.9 [#47].
[3.4.0] - 2023-11-01
Added
- Auto-create
codelldbconfigurations.
Fixed
- DAP: Support
codelldbconfigurations [#40]. - DAP: Don't pass in an empty source map table if the
auto_generate_source_mapsetting evaluates tofalse.
[3.3.3] - 2023-10-31
Fixed
- Default rust-analyzer configuration [#37]. Thanks again, @eero-lehtinen!
[3.3.2] - 2023-10-31
Fixed
- Cargo workspace reload using removed command [#36]. Thanks @eero-lehtinen!
[3.3.1] - 2023-10-31
Fixed
- Neovim 0.9 compatibility layer: Missing
nilchecks [#32].
[3.3.0] - 2023-10-30
Added
- DAP: Auto-generate source map, to allow stepping into
std.
[3.2.1] - 2023-10-29
Fixed
dap/quickfixexecutor: Fix settingcwdfor shell commands.
[3.2.0] - 2023-10-29
Added
- Completions for
:RustLspsubcommands' arguments.
Changed
- Removed
plenary.nvimdependency (dapandquickfixexecutor). This plugin now has noplenary.nvimdependencies left. NOTE: As this does not lead to a bump in the minimal requirements, this is not a breaking change.
[3.1.1] - 2023-10-28
Fixed
- Remove accidental use of Neovim nightly API
(
dap,crateGraph,explainError) [#26]. - Add static type checking for Neovim stable API.
[3.1.0] - 2023-10-28
Added
:RustLsp explainErrorcommand, usesrustc --explainon error diagnostics with an error code.:RustLsp rebuildProcMacroscommand.
Fixed
- Health check got stuck if
lldb-vscodewas installed.
[3.0.4] - 2023-10-25
Fixed
- Allow
:RustLsp hover rangeto accept a range. - Fix
:RustLsp crateGraphpassing arguments as list.
[3.0.3] - 2023-10-25
Fixed
- Potential attempt to index
nilupvalue when sendingworkspace/didChangeWorkspaceFoldersto LSP server [#22].
[3.0.2] - 2023-10-23
Fixed
- Hover actions: Tree-sitter syntax highlighting in Neovim 0.9 [#20].
[3.0.1] - 2023-10-23
Fixed
- Add support for
workspace/didChangeWorkspaceFoldersto prevent more than one rust-analyzer server from spawning per Neovim instance [#7]. - Neovim 0.9 compatibility [#9].
[3.0.0] - 2023-10-22
Changed
- Renamed this plugin to
rustaceanvim, to avoid potential clashes withvxpm/ferris.nvim,vxpm/ferris.nvimwas created just before I renamed my fork (but after I had checked the web for name clashes (╯°□°)╯︵ ┻━┻).
[2.1.1] - 2023-10-22
Fixed
- Open external docs: Use
xdg-openoropen(MacOS) by default and fall back tonetrw. Remove redundant URL encoding.
[2.1.0] - 2023-10-22
Added
- Add a
vim.g.rustaceanvim.server.auto_attachoption, which can be abooleanor afun():booleanthat determines whether or not to auto-attach the LSP client when opening a Rust file.
Fixed
- [Internal] Type safety in
RustLspcommand construction. This fixes a type error in thehovercommand validation. - Failure to start on standalone files if
cargois not installed.
[2.0.0] - 2023-10-21
BREAKING CHANGES
- Don't pollute the command space:
Use a single command with subcommands and completions.
RustAnalyzer [start|stop](always available in Rust projects)RustLsp [subcommand](available when the LSP client is running) e.g.RustLsp moveItem [up|down]
[1.0.1] - 2023-10-21
Fixed
- Hover actions + command cache: module requires.
[1.0.0] - 2023-10-21
Added
- Initial release of
rustaceanvim. :RustSyntaxTreeand:RustFlyCheckcommands.:RustAnalyzerStartand:RustAnalyzerStopcommands.- Config validation.
- Health checks (
:checkhealth rustaceanvim). - Vimdocs (auto-generated from Lua docs -
:help rustaceanvim). - Nix flake.
- Allow
tools.executorto be a string. - LuaRocks releases.
- Minimal config for troubleshooting.
Internal
- Added type annotations.
- Nix CI and linting infrastructure and static type checking.
- Lazy load command modules.
Fixed
- Numerous potential bugs encountered during rewrite.
- Erroneous semantic token highlights.
- Make sure we only send LSP requests to the correct client.
BREAKING CHANGES compared to rust-tools.nvim
- Removed the
setupfunction and revamped the architecture to be less prone to type errors. This plugin is a filetype plugin and works out of the box. The default configuration should work for most people, but it can be configured with avim.g.rustaceanvimtable. - Removed the
lspconfigdependency. This plugin now uses the built-in LSP client API. You can use:RustAnalyzerStartand:RustAnalyzerStopto manually start/stop the LSP client. This plugin auto-starts the client when opening a rust file, if therust-analyzerbinary is found. - Removed
rt = require('rust-tools')table. You can access the commands using Neovim'svim.cmdLua bridge, for example[This has changed! See above.].:lua vim.cmd.RustSSR()or:RustSSR - Bumped minimum Neovim version to
0.9. - Removed inlay hints, as this feature will be built into Neovim
0.10.