Skip to content

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

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

LSP Server information showing local clojure-lsp install LSP Server information showing local clojure-lsp install

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)