Connect Conjure to an Existing nREPL Session
Here's how to connect an nvim buffer to an existing nrepl session.
nREPL
nREPL is a Clojure REPL that is available in a client-server architecture. You might have an nrepl server started somewhere and want to connect your nvim session to it with Conjure.
Install Tools
Here using packer, we're putting a few nice nvim tools together to conveniently support the connection.
return require('packer').startup(function(use)
-- ...
use {
'Olical/conjure', -- repl
'tpope/vim-dispatch', -- kick off builds
'radenling/vim-dispatch-neovim', -- add nvim terminal emulator and job control to dispatch.vim
'clojure-vim/vim-jack-in', -- commands for clj, lein and boot
ft = 'clojure'
}
-- ...
end)
Auto Connect
Most of the time, a new Conjure session should create a new nREPL session with auto-repl
. It tries to detect previously-existing nrepl sessions. That might be indicated by an existing .nrepl-port
file in the project root.
If you start Conjure and keep getting ECONNREFUSED
and disconnected
messages, you may have a .nrepl-port
file hanging around that points to a port that's no longer available. (nREPL starts on random ports.) Delete the .nrepl-port
file, and you should get auto-repl
to start a new session.
Start nREPL from nvim
You can also start a new nrepl session from nvim using clojure-vim/vim-jack-in
's command:
:Clj
That'll start a new repl in a new tab, reporting that:
nREPL server started on port 42881 on host localhost - nrepl://localhost:42881
It puts you in a kind of terminal/insert mode. You can't get to normal mode with Esc, however. Use C-\C-n
to get to normal mode, then gt
to change tabs, as usual.
Connect to the Session
As in the last step, you know you have a session on port 42881
, you can connect using this Olical/conjure
command:
:ConjureConnect 42881
From there, you should be able to evaluate like a champ.