Skip to content

Commit 11765f2

Browse files
committed
feat!: make QuartoConfig global. fixes #196
1 parent 0e94915 commit 11765f2

File tree

5 files changed

+32
-24
lines changed

5 files changed

+32
-24
lines changed

doc/tags

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1-
QuartoPreview quarto.txt /*QuartoPreview*
2-
quarto.nvim quarto.txt /*quarto.nvim*
3-
quarto.quartoPreview() quarto.txt /*quarto.quartoPreview()*
1+
quarto-links quarto.txt /*quarto-links*
2+
quarto-quarto-nvim quarto.txt /*quarto-quarto-nvim*
3+
quarto-quarto-nvim-available-commands quarto.txt /*quarto-quarto-nvim-available-commands*
4+
quarto-quarto-nvim-language-support quarto.txt /*quarto-quarto-nvim-language-support*
5+
quarto-quarto-nvim-recommended-plugins quarto.txt /*quarto-quarto-nvim-recommended-plugins*
6+
quarto-quarto-nvim-running-code quarto.txt /*quarto-quarto-nvim-running-code*
7+
quarto-quarto-nvim-setup quarto.txt /*quarto-quarto-nvim-setup*
8+
quarto-quarto-nvim-usage quarto.txt /*quarto-quarto-nvim-usage*
9+
quarto-quarto-nvim-walkthrough quarto.txt /*quarto-quarto-nvim-walkthrough*
10+
quarto-table-of-contents quarto.txt /*quarto-table-of-contents*
11+
quarto.txt quarto.txt /*quarto.txt*

ftplugin/quarto.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
require('quarto.config')
2+
13
vim.b.slime_cell_delimiter = '```'
24

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

7-
local config = require('quarto.config').config
89
local quarto = require 'quarto'
910

10-
if config.lspFeatures.enabled then
11+
if QuartoConfig.lspFeatures.enabled then
1112
quarto.activate()
1213
end

lua/quarto/config.lua

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
local M = {}
21

3-
M.defaultConfig = {
2+
---@class QuartoConfig
3+
QuartoConfig = {
44
debug = false,
55
closePreviewOnExit = true,
66
lspFeatures = {
@@ -23,8 +23,3 @@ M.defaultConfig = {
2323
never_run = { 'yaml' }, -- filetypes which are never sent to a code runner
2424
},
2525
}
26-
27-
-- use defaultConfig if not setup
28-
M.config = M.config or M.defaultConfig
29-
30-
return M

lua/quarto/init.lua

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
local M = {}
2+
3+
-- globally available QuartoConfig table
4+
require 'quarto.config'
5+
26
local api = vim.api
3-
local cfg = require 'quarto.config'
47
local tools = require 'quarto.tools'
58
local util = require 'quarto.util'
69

@@ -91,7 +94,7 @@ function M.quartoPreview(opts)
9194
api.nvim_buf_set_var(0, 'quartoOutputBuf', quartoOutputBuf)
9295

9396
-- Close preview terminal on exit of the Quarto buffer
94-
if cfg.config and cfg.config.closePreviewOnExit then
97+
if QuartoConfig.closePreviewOnExit then
9598
api.nvim_create_autocmd({ 'QuitPre', 'WinClosed' }, {
9699
buffer = api.nvim_get_current_buf(),
97100
group = api.nvim_create_augroup('quartoPreview', {}),
@@ -173,7 +176,7 @@ M.activate = function()
173176
return
174177
end
175178
local tsquery = nil
176-
if cfg.config.lspFeatures.chunks == 'curly' then
179+
if QuartoConfig.lspFeatures.chunks == 'curly' then
177180
tsquery = [[
178181
(fenced_code_block
179182
(info_string
@@ -189,14 +192,14 @@ M.activate = function()
189192
190193
]]
191194
end
192-
require('otter').activate(cfg.config.lspFeatures.languages, cfg.config.lspFeatures.completion.enabled, cfg.config.lspFeatures.diagnostics.enabled, tsquery)
195+
require('otter').activate(QuartoConfig.lspFeatures.languages, QuartoConfig.lspFeatures.completion.enabled, QuartoConfig.lspFeatures.diagnostics.enabled, tsquery)
193196
end
194197

195198
-- setup
196-
M.setup = function(opt)
197-
cfg.config = vim.tbl_deep_extend('force', cfg.defaultConfig, opt or {})
199+
M.setup = function(opts)
200+
QuartoConfig = vim.tbl_deep_extend('force', QuartoConfig, opts or {})
198201

199-
if cfg.config.codeRunner.enabled then
202+
if QuartoConfig.codeRunner.enabled then
200203
-- setup top level run functions
201204
local runner = require 'quarto.runner'
202205
M.quartoSend = runner.run_cell

lua/quarto/runner/init.lua

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
--- Code runner, configurable to use different engines.
22
local Runner = {}
33

4+
require('quarto.config')
5+
46
local otterkeeper = require 'otter.keeper'
5-
local config = require('quarto.config').config
67

78
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?'
89

@@ -27,7 +28,7 @@ local function extract_code_cells_in_range(lang, code_chunks, range)
2728
end
2829
else
2930
for l, lang_chunks in pairs(code_chunks) do
30-
if vim.tbl_contains(config.codeRunner.never_run, l) then
31+
if vim.tbl_contains(QuartoConfig.codeRunner.never_run, l) then
3132
goto continue
3233
end
3334
for _, chunk in ipairs(lang_chunks) do
@@ -60,13 +61,13 @@ end
6061
---@param opts table?
6162
local function send(cell, opts)
6263
opts = opts or { ignore_cols = false }
63-
local runner = config.codeRunner.default_method
64-
local ft_runners = config.codeRunner.ft_runners
64+
local runner = QuartoConfig.codeRunner.default_method
65+
local ft_runners = QuartoConfig.codeRunner.ft_runners
6566
if cell.lang ~= nil and ft_runners[cell.lang] ~= nil then
6667
runner = ft_runners[cell.lang]
6768
end
6869

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

0 commit comments

Comments
 (0)