Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions doc/tags
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
QuartoPreview quarto.txt /*QuartoPreview*
quarto.nvim quarto.txt /*quarto.nvim*
quarto.quartoPreview() quarto.txt /*quarto.quartoPreview()*
quarto-links quarto.txt /*quarto-links*
quarto-quarto-nvim quarto.txt /*quarto-quarto-nvim*
quarto-quarto-nvim-available-commands quarto.txt /*quarto-quarto-nvim-available-commands*
quarto-quarto-nvim-language-support quarto.txt /*quarto-quarto-nvim-language-support*
quarto-quarto-nvim-recommended-plugins quarto.txt /*quarto-quarto-nvim-recommended-plugins*
quarto-quarto-nvim-running-code quarto.txt /*quarto-quarto-nvim-running-code*
quarto-quarto-nvim-setup quarto.txt /*quarto-quarto-nvim-setup*
quarto-quarto-nvim-usage quarto.txt /*quarto-quarto-nvim-usage*
quarto-quarto-nvim-walkthrough quarto.txt /*quarto-quarto-nvim-walkthrough*
quarto-table-of-contents quarto.txt /*quarto-table-of-contents*
quarto.txt quarto.txt /*quarto.txt*
5 changes: 3 additions & 2 deletions ftplugin/quarto.lua
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
require('quarto.config')

vim.b.slime_cell_delimiter = '```'

-- TODO: Workaround while nvim-treesitter doesn't link those anymore
-- until our ouwn pandoc grammar is ready
vim.treesitter.language.register('markdown', { 'quarto', 'rmd' })

local config = require('quarto.config').config
local quarto = require 'quarto'

if config.lspFeatures.enabled then
if QuartoConfig.lspFeatures.enabled then
quarto.activate()
end
9 changes: 2 additions & 7 deletions lua/quarto/config.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
local M = {}

M.defaultConfig = {
---@class QuartoConfig
QuartoConfig = {
debug = false,
closePreviewOnExit = true,
lspFeatures = {
Expand All @@ -23,8 +23,3 @@ M.defaultConfig = {
never_run = { 'yaml' }, -- filetypes which are never sent to a code runner
},
}

-- use defaultConfig if not setup
M.config = M.config or M.defaultConfig

return M
17 changes: 10 additions & 7 deletions lua/quarto/init.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
local M = {}

-- globally available QuartoConfig table
require 'quarto.config'

local api = vim.api
local cfg = require 'quarto.config'
local tools = require 'quarto.tools'
local util = require 'quarto.util'

Expand Down Expand Up @@ -91,7 +94,7 @@ function M.quartoPreview(opts)
api.nvim_buf_set_var(0, 'quartoOutputBuf', quartoOutputBuf)

-- Close preview terminal on exit of the Quarto buffer
if cfg.config and cfg.config.closePreviewOnExit then
if QuartoConfig.closePreviewOnExit then
api.nvim_create_autocmd({ 'QuitPre', 'WinClosed' }, {
buffer = api.nvim_get_current_buf(),
group = api.nvim_create_augroup('quartoPreview', {}),
Expand Down Expand Up @@ -173,7 +176,7 @@ M.activate = function()
return
end
local tsquery = nil
if cfg.config.lspFeatures.chunks == 'curly' then
if QuartoConfig.lspFeatures.chunks == 'curly' then
tsquery = [[
(fenced_code_block
(info_string
Expand All @@ -189,14 +192,14 @@ M.activate = function()

]]
end
require('otter').activate(cfg.config.lspFeatures.languages, cfg.config.lspFeatures.completion.enabled, cfg.config.lspFeatures.diagnostics.enabled, tsquery)
require('otter').activate(QuartoConfig.lspFeatures.languages, QuartoConfig.lspFeatures.completion.enabled, QuartoConfig.lspFeatures.diagnostics.enabled, tsquery)
end

-- setup
M.setup = function(opt)
cfg.config = vim.tbl_deep_extend('force', cfg.defaultConfig, opt or {})
M.setup = function(opts)
QuartoConfig = vim.tbl_deep_extend('force', QuartoConfig, opts or {})

if cfg.config.codeRunner.enabled then
if QuartoConfig.codeRunner.enabled then
-- setup top level run functions
local runner = require 'quarto.runner'
M.quartoSend = runner.run_cell
Expand Down
11 changes: 6 additions & 5 deletions lua/quarto/runner/init.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
--- Code runner, configurable to use different engines.
local Runner = {}

require('quarto.config')

local otterkeeper = require 'otter.keeper'
local config = require('quarto.config').config

local no_code_found = 'No code chunks found for the current language, which is detected based on the current code block. Is your cursor in a code block?'

Expand All @@ -27,7 +28,7 @@ local function extract_code_cells_in_range(lang, code_chunks, range)
end
else
for l, lang_chunks in pairs(code_chunks) do
if vim.tbl_contains(config.codeRunner.never_run, l) then
if vim.tbl_contains(QuartoConfig.codeRunner.never_run, l) then
goto continue
end
for _, chunk in ipairs(lang_chunks) do
Expand Down Expand Up @@ -60,13 +61,13 @@ end
---@param opts table?
local function send(cell, opts)
opts = opts or { ignore_cols = false }
local runner = config.codeRunner.default_method
local ft_runners = config.codeRunner.ft_runners
local runner = QuartoConfig.codeRunner.default_method
local ft_runners = QuartoConfig.codeRunner.ft_runners
if cell.lang ~= nil and ft_runners[cell.lang] ~= nil then
runner = ft_runners[cell.lang]
end

-- if user passes a fn to config.codeRunner.default_method, we use that.
-- if user passes a fn to QuartoConfig.codeRunner.default_method, we use that.
-- (this also means fns are allowed as values in ft_runners)
-- otherwise we lookup a string for pre-packaged runner function, e.g. "molten"
if type(runner) == 'function' then
Expand Down