Refactor toolsλ︎
Neovim and common plugins provide many text oriented tools useful for refactoring code.
Clojure LSP server and Neovim LSP client support use static analysis of the project source code to allow provide common code refactor tools.
Language Server Protocol (LSP)λ︎
Using clojure-lsp server and Neovim Treesitter as an LSP client, code is statically analysed to provide auto-completion data, advanced editing actions such as refactor, live formatting, etc.
Function documentationλ︎
K or Space l h show the doc-string for function or any other var under the cursor.
Repeat the key binding to move the cursor to the documentation popup window and use j k to scroll the documentation
, l l code lens refresh
, l L code lens run
Navigationλ︎
g d go to definition of current symbol, e.g. function definition
, l G telescope search of all symbols in the project
, l R telescope search of all references in the project
, l s telescope search of symbols
, l s split view of symbols
Diagnosticsλ︎
Space l d show popup for current diagnostic indicator
Space l D search through all diagnostics reports
Code Actionsλ︎
Space l r rename current symbol (namespace rename not supported by LSP client)
Space l a code actions (popup with available actions)
Space l f format buffer
Troubleshootingλ︎
Space l i shows the LSP server information for the current filetype, e.g. Clojure
Space l I shows format and lint tools supported by null-ls for the current filetype, e.g. clojure
Limitations to investigateλ︎
- Neovim client does not seem to support namespace rename (AstroNvim)