Skip to content

Commit 952b1c0

Browse files
feat: add override based on filetype in addition to buftype
## Details Similar to `overrides.buftype` added `overrides.filetype` which allows the same sets of configurations to be overridden for specific file types. For instance to disable signs in gitcommit files: ```lua require('render-markdown').setup({ file_types = { 'markdown', 'gitcommit' }, overrides = { filetype = { gitcommit = { sign = { enabled = false } }, }, }, }) ```
1 parent fb9f5f0 commit 952b1c0

File tree

6 files changed

+41
-34
lines changed

6 files changed

+41
-34
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -514,10 +514,10 @@ require('render-markdown').setup({
514514
overrides = {
515515
-- Overrides for different buftypes, see :h 'buftype'
516516
buftype = {
517-
nofile = {
518-
sign = { enabled = false },
519-
},
517+
nofile = { sign = { enabled = false } },
520518
},
519+
-- Overrides for different filetypes, see :h 'filetype'
520+
filetype = {},
521521
},
522522
-- Mapping from treesitter language to user defined handlers
523523
-- See 'Custom Handlers' document for more info

doc/render-markdown.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -544,10 +544,10 @@ Full Default Configuration ~
544544
overrides = {
545545
-- Overrides for different buftypes, see :h 'buftype'
546546
buftype = {
547-
nofile = {
548-
sign = { enabled = false },
549-
},
547+
nofile = { sign = { enabled = false } },
550548
},
549+
-- Overrides for different filetypes, see :h 'filetype'
550+
filetype = {},
551551
},
552552
-- Mapping from treesitter language to user defined handlers
553553
-- See 'Custom Handlers' document for more info

lua/render-markdown/health.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ local M = {}
55

66
---@private
77
---@type string
8-
M.version = '6.1.10'
8+
M.version = '6.1.11'
99

1010
function M.check()
1111
vim.health.start('render-markdown.nvim [version]')

lua/render-markdown/init.lua

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ local M = {}
139139

140140
---@class (exact) render.md.UserConfigOverrides
141141
---@field public buftype? table<string, render.md.UserBufferConfig>
142+
---@field public filetype? table<string, render.md.UserBufferConfig>
142143

143144
---@class (exact) render.md.UserBufferConfig
144145
---@field public enabled? boolean
@@ -548,10 +549,10 @@ M.default_config = {
548549
overrides = {
549550
-- Overrides for different buftypes, see :h 'buftype'
550551
buftype = {
551-
nofile = {
552-
sign = { enabled = false },
553-
},
552+
nofile = { sign = { enabled = false } },
554553
},
554+
-- Overrides for different filetypes, see :h 'filetype'
555+
filetype = {},
555556
},
556557
-- Mapping from treesitter language to user defined handlers
557558
-- See 'Custom Handlers' document for more info

lua/render-markdown/state.lua

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ M.get_config = function(buf)
6969
local config = configs[buf]
7070
if config == nil then
7171
config = M.default_buffer_config()
72-
local buftype_config = M.config.overrides.buftype[util.get_buf(buf, 'buftype')]
73-
if buftype_config ~= nil then
74-
config = vim.tbl_deep_extend('force', config, buftype_config)
72+
for _, name in ipairs({ 'buftype', 'filetype' }) do
73+
local override_config = M.config.overrides[name][util.get_buf(buf, name)]
74+
if override_config ~= nil then
75+
config = vim.tbl_deep_extend('force', config, override_config)
76+
end
7577
end
7678
configs[buf] = config
7779
end
@@ -426,28 +428,31 @@ function M.validate()
426428
local overrides = config.overrides
427429
append_errors('render-markdown.overrides', overrides, {
428430
buftype = { overrides.buftype, 'table' },
431+
filetype = { overrides.filetype, 'table' },
429432
})
430-
for name, override in pairs(overrides.buftype) do
431-
local path = 'render-markdown.overrides.buftype.' .. name
432-
append_errors(path, override, {
433-
enabled = { override.enabled, 'boolean', true },
434-
max_file_size = { override.max_file_size, 'number', true },
435-
debounce = { override.debounce, 'number', true },
436-
render_modes = string_array(override.render_modes, true),
437-
anti_conceal = { override.anti_conceal, 'table', true },
438-
heading = { override.heading, 'table', true },
439-
code = { override.code, 'table', true },
440-
dash = { override.dash, 'table', true },
441-
bullet = { override.bullet, 'table', true },
442-
checkbox = { override.checkbox, 'table', true },
443-
quote = { override.quote, 'table', true },
444-
pipe_table = { override.pipe_table, 'table', true },
445-
callout = { override.callout, 'table', true },
446-
link = { override.link, 'table', true },
447-
sign = { override.sign, 'table', true },
448-
win_options = { override.win_options, 'table', true },
449-
})
450-
validate_buffer_config(path, override, true)
433+
for name, value_override in pairs(overrides) do
434+
for value, override in pairs(value_override) do
435+
local path = string.format('render-markdown.overrides.%s.%s', name, value)
436+
append_errors(path, override, {
437+
enabled = { override.enabled, 'boolean', true },
438+
max_file_size = { override.max_file_size, 'number', true },
439+
debounce = { override.debounce, 'number', true },
440+
render_modes = string_array(override.render_modes, true),
441+
anti_conceal = { override.anti_conceal, 'table', true },
442+
heading = { override.heading, 'table', true },
443+
code = { override.code, 'table', true },
444+
dash = { override.dash, 'table', true },
445+
bullet = { override.bullet, 'table', true },
446+
checkbox = { override.checkbox, 'table', true },
447+
quote = { override.quote, 'table', true },
448+
pipe_table = { override.pipe_table, 'table', true },
449+
callout = { override.callout, 'table', true },
450+
link = { override.link, 'table', true },
451+
sign = { override.sign, 'table', true },
452+
win_options = { override.win_options, 'table', true },
453+
})
454+
validate_buffer_config(path, override, true)
455+
end
451456
end
452457

453458
for name, handler in pairs(config.custom_handlers) do

lua/render-markdown/types.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114

115115
---@class (exact) render.md.ConfigOverrides
116116
---@field public buftype table<string, render.md.UserBufferConfig>
117+
---@field public filetype table<string, render.md.UserBufferConfig>
117118

118119
---@class (exact) render.md.BufferConfig
119120
---@field public enabled boolean

0 commit comments

Comments
 (0)