/clj-refactor.nvim

A neovim clojure refactoring plugin

Primary LanguageJavaScript

A neovim port of clj-refactor.el

Usage

All commands are mapped under the cr prefix and use a two letter mnemonic shortcut. E.g. crrs for Clojure Refactor Rename Symbol.The full list is below.

Installation

Pre-requisites

Install node.js

Install latest neovim

Install node-host

Install refactor-nrepl

Install vim-fireplace

Vundle

Using Vundle, add this to your vundle .config/nvim/init.vim section:

Plugin 'snoe/clj-refactor.nvim'

Inside nvim

  • run :PluginInstall
  • :UpdateRemotePlugins you should see remote/host: node host registered plugins ['clj-refactor.nvim']
  • close all nvims simultaneously
  • refactor

Progress

Options

You can set g:clj_refactor_prune_ns_form and g:clj_refactor_prefix_rewriting to 0 to affect the corresponding middleware options. Both default to 1.

Passive abilities

Commands

Development / Testing

Run npm install

I generally have 4 terminals open:

  • $ lein cljsbuild auto test
  • $ node target/out/tests.js
  • $ lein cljsbuild auto plugin
  • $ tail -f "$NVIM_NODE_LOG_FILE"

Somewhere in your environment do

export NVIM_NODE_LOG_FILE="$HOME"/nvimdebug.log

Neovim will dump messages from the plugin there. If something goes wrong it will likely show up in ~/.nvimlog

To get repl going, use lein repl and execute below to get into a clojurescript repl:

(require 'cljs.repl.node)
(cider.piggieback/cljs-repl (cljs.repl.node/repl-env))