@@ -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
0 commit comments