-- 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 { 'r', group = '[r]un', buffer = true }, { 'rc', runner.run_cell, desc = 'run [c]ell', buffer = true }, { 'ra', runner.run_above, desc = 'run [a]bove', buffer = true }, { 'rA', runner.run_all, desc = 'run [A]ll', buffer = true }, { 'rl', runner.run_line, desc = 'run [l]ine', buffer = true }, { 'rr', runner.run_range, desc = 'run [r]ange', buffer = true }, { '', runner.run_cell, desc = 'run [c]ell', buffer = true, hidden = true }, }, { -- Quarto { 'Q', group = '[Q]uarto', buffer = true }, { 'Qp', 'QuartoPreview', desc = '[p]review Quarto', buffer = true }, { 'Qs', 'QuartoSend', desc = '[s]end to Quarto', buffer = true }, }, { -- Molten { 'M', group = '[M]olten', buffer = true }, { 'Mi', init, desc = '[i]nitialize Molten', buffer = true }, { 'Ms', deinit, desc = '[s]top Molten', buffer = true }, { 'Mp', 'MoltenPause', desc = '[p]ause Molten', buffer = true }, { 'Mr', 'MoltenRestart', desc = '[r]eset Molten', buffer = true }, }, { -- Vim-slime { 'S', group = '[S]lime', buffer = true }, { 'Ss', 'SlimeSend', desc = '[s]end to Slime', buffer = true }, { 'Sr', 'SlimeRestart', 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, })