jaq-nvim
jaq-nvim
is Just Another Quickrun plugin for Neovim that was inspired by quickrun.vim. In short, it is a plugin that lets you run the code of any language with a single command.
Demo:
Installation:
packer.nvim:
use {"is0n/jaq-nvim"}
Example Lua Config:
require('jaq-nvim').setup{
cmds = {
-- Uses vim commands
internal = {
lua = "luafile %",
vim = "source %"
},
-- Uses shell commands
external = {
markdown = "glow %",
python = "python3 %",
go = "go run %",
sh = "sh %"
}
},
behavior = {
-- Default type
default = "float",
-- Start in insert mode
startinsert = false,
-- Use `wincmd p` on startup
wincmd = false,
-- Auto-save files
autosave = false
},
ui = {
float = {
-- See ':h nvim_open_win'
border = "none",
-- See ':h winhl'
winhl = "Normal",
borderhl = "FloatBorder",
-- See ':h winblend'
winblend = 0,
-- Num from `0-1` for measurements
height = 0.8,
width = 0.8,
x = 0.5,
y = 0.5
},
terminal = {
-- Window position
position = "bot",
-- Window size
size = 10,
-- Disable line numbers
line_no = false
},
quickfix = {
-- Window position
position = "bot",
-- Window size
size = 10
}
}
}
Example JSON Config:
{
"internal": {
"lua": "luafile %",
"vim": "source %"
},
"external": {
"markdown": "glow %",
"python": "python3 %",
"go": "go run %",
"sh": "sh %"
}
}
In the current working directory, Jaq
will search for a file called .jaq.json
.
This config file will be used for running commands, both external and internal.
Usage:
:Jaq
by default uses the float
type to run code. The default can be changed (see Example Lua Config
).
To use any other type, provide any of the arguments seen in Demonstration
.
Example: :Jaq bang
The commands for :Jaq
also have certain variables that can help in running code.
You can put any of the following in require('jaq-nvim').setup()
or .jaq.json
...
%
/$file
• Current File#
/$altFile
• Alternate File$dir
• Current Working Directory$filePath
• Path to Current File$fileBase
• Basename of File (no extension)$moduleName
• Python Module Name