This config uses:
- coc.nvim for language servers, completion, code actions, rename, etc.
- ALE for linting/fixing and displaying diagnostics (Coc sends diagnostics to ALE).
- Plugin + keymaps:
lua/coldboot/plugins/coc_ale.lua - Coc settings (inlay hints, insert/replace mode, etc):
coc-settings.json
Navigation / actions:
gddefinitiongDdeclarationgIimplementationgrreferencesKhover<C-k>signature help<leader>rnrename<leader>cacode action (normal/visual)<leader>Dtype definition<leader>dsdocument symbols (:CocList outline)<leader>wsworkspace symbols (:CocList -I symbols)
Formatting:
<leader>fformat buffer (Coc format, falls back to:ALEFix):Formatsame as above:ColdbootFormatToggletoggles ALE fix-on-save
In insert mode:
<C-n>/<C-p>: if completion menu is visible, move selection; otherwise trigger completion.<CR>: accept completion without overwriting text to the right of the caret (“insert”).<Tab>: accept completion and overwrite the word to the right of the caret (“replace”).
Inlay hints are enabled via coc-settings.json.
- Toggle for the current buffer:
:CocCommand document.toggleInlayHint
:CocInfoshow Coc status:CocConfigedit Coc settings:ALEInfoshow ALE status:Masoninstall/update LSP binaries (this config auto-installsgopls,rust-analyzer,pyright)
ALE fixers/linters call external binaries (e.g. eslint, prettier, golangci-lint, rustfmt, black, ruff).
Install them per project (recommended) or globally so ALE can run them.