A NeoVim plugin for the brilliant extempore!
This NeoVim version of the plugin improves over the original in some ways:
- 100% Lua and fully async by using
libuvinstead of python (more light weight, stable, fewer dependencies, etc.). - slightly improved detection of s-expressions (I think), and thus more stability for live-coding.
- visual feedback on evaluation.
- configurable host, port, visual-feedback duration, and visual-feedback highlight group.
- sets
commentstring
You can install this plugin easily with lazy.nvim:
{
'gotalovefiracode/extempore.nvim',
-- optional lazy loading
ft = 'extempore',
-- 100% optional, extempore.nvim loads itself
opts = {
-- defaults
port = 7099,
host = "127.0.0.1",
flash_time = 150, -- milliseconds
flash_hl_group = "Visual",
}
},Lazy loading shouldn’t be necessary though, as the plugin already lazy-loads itself. And specifying options is also entirely optional, as this plugin comes with good defaults and doesn’t need to be called.
Here are the keybinds and commands you should know:
<Leader>o:ExtemporeConnect, open a connection to Extempore<Leader>O:ExtemporeDisconnect, close the connection to Extempore<Leader>wor ```: send the enclosing block to Extempore (mostly use this)<Leader>a: send the entire file to Extempore<Leader>s:ExtemporeSendSelection, send selection to Extempore]: send text between[and]<BS>:ExtemporePanic, immediately silence extempore.
Have fun!
This is a fork of the vim script and python version by timburgess. Thank you, timburgess!