Blocked by
Replace synchronous syntastic with Neovim's async-native diagnostics stack: built-in LSP + nvim-lint for non-LSP linters.
Depends on: Phase 3 (lazy.nvim required).
Why
syntastic blocks the UI on save (shells out and waits synchronously)
- Neovim has
vim.diagnostic and vim.lsp built in since 0.5
- LSP also provides go-to-definition, hover docs, rename, code actions — free upside
Changes
- Add
neovim/nvim-lspconfig and williamboman/mason.nvim for managing LSP servers
- Add
mfussenegger/nvim-lint for non-LSP linters
- Replace
airblade/vim-gitgutter with lewis6991/gitsigns.nvim (also async)
- Remove
Plugin 'scrooloose/syntastic' and Plugin 'myint/syntastic-extras'
- Remove all
let g:syntastic_* config blocks
LSP servers to configure (matched to current stack)
- Ruby:
ruby_lsp or solargraph
- JS/TS:
ts_ls
- Terraform:
terraformls
- YAML:
yamlls
- Bash:
bashls
Linters to keep via nvim-lint
scss_lint
haml_lint
pyyaml
language_check (gitcommit)
Acceptance
Blocked by
Replace synchronous
syntasticwith Neovim's async-native diagnostics stack: built-in LSP +nvim-lintfor non-LSP linters.Depends on: Phase 3 (lazy.nvim required).
Why
syntasticblocks the UI on save (shells out and waits synchronously)vim.diagnosticandvim.lspbuilt in since 0.5Changes
neovim/nvim-lspconfigandwilliamboman/mason.nvimfor managing LSP serversmfussenegger/nvim-lintfor non-LSP lintersairblade/vim-gitgutterwithlewis6991/gitsigns.nvim(also async)Plugin 'scrooloose/syntastic'andPlugin 'myint/syntastic-extras'let g:syntastic_*config blocksLSP servers to configure (matched to current stack)
ruby_lsporsolargraphts_lsterraformlsyamllsbashlsLinters to keep via nvim-lint
scss_linthaml_lintpyyamllanguage_check(gitcommit)Acceptance
:LspInfoshows attached servers for each language in our stack