69 lines
2.4 KiB
Lua
69 lines
2.4 KiB
Lua
-- Quarto autocommands file
|
|
--
|
|
|
|
local status_wk, wk = pcall(require, 'which-key')
|
|
if not status_wk then
|
|
return
|
|
end
|
|
|
|
local runner = require 'quarto.runner'
|
|
local group = vim.api.nvim_create_augroup('quarto_autocommands', { clear = true })
|
|
|
|
vim.api.nvim_create_autocmd('FileType', {
|
|
group = group,
|
|
desc = '',
|
|
pattern = 'quarto',
|
|
callback = function()
|
|
local init = function()
|
|
local quarto_cfg = require('quarto.config').config
|
|
quarto_cfg.codeRunner.default_method = 'molten'
|
|
vim.cmd [[MoltenInit]]
|
|
end
|
|
local deinit = function()
|
|
local quarto_cfg = require('quarto.config').config
|
|
quarto_cfg.codeRunner.default_method = 'slime'
|
|
vim.cmd [[MoltenInterrupt]]
|
|
vim.cmd [[MoltenDeinit]]
|
|
end
|
|
wk.add {
|
|
{ mode = { 'n', 'v', 'i' } },
|
|
|
|
{ -- Runner
|
|
{ '<leader>r', group = '[r]un', buffer = true },
|
|
{ '<leader>rc', runner.run_cell, desc = 'run [c]ell', buffer = true },
|
|
{ '<leader>ra', runner.run_above, desc = 'run [a]bove', buffer = true },
|
|
{ '<leader>rA', runner.run_all, desc = 'run [A]ll', buffer = true },
|
|
{ '<leader>rl', runner.run_line, desc = 'run [l]ine', buffer = true },
|
|
{ '<leader>rr', runner.run_range, desc = 'run [r]ange', buffer = true },
|
|
|
|
{ '<c-CR>', runner.run_cell, desc = 'run [c]ell', buffer = true, hidden = true },
|
|
},
|
|
{ -- Quarto
|
|
{ '<leader>Q', group = '[Q]uarto', buffer = true },
|
|
{ '<leader>Qp', '<CMD>QuartoPreview<CR>', desc = '[p]review Quarto', buffer = true },
|
|
{ '<leader>Qs', '<CMD>QuartoSend<CR>', desc = '[s]end to Quarto', buffer = true },
|
|
},
|
|
|
|
{ -- Molten
|
|
{ '<leader>M', group = '[M]olten', buffer = true },
|
|
{ '<leader>Mi', init, desc = '[i]nitialize Molten', buffer = true },
|
|
{ '<leader>Ms', deinit, desc = '[s]top Molten', buffer = true },
|
|
{ '<leader>Mp', '<CMD>MoltenPause<CR>', desc = '[p]ause Molten', buffer = true },
|
|
{ '<leader>Mr', '<CMD>MoltenRestart<CR>', desc = '[r]eset Molten', buffer = true },
|
|
},
|
|
|
|
{ -- Vim-slime
|
|
{ '<leader>S', group = '[S]lime', buffer = true },
|
|
{ '<leader>Ss', '<CMD>SlimeSend<CR>', desc = '[s]end to Slime', buffer = true },
|
|
{ '<leader>Sr', '<CMD>SlimeRestart<CR>', desc = '[r]estart Slime', buffer = true },
|
|
},
|
|
}
|
|
end,
|
|
})
|
|
|
|
vim.api.nvim_create_autocmd('VimResized', {
|
|
callback = function()
|
|
vim.g.molten_output_win_max_width = math.floor(vim.o.columns)
|
|
end,
|
|
})
|