11local Env = require (' render-markdown.lib.env' )
22local Range = require (' render-markdown.core.range' )
33
4- --- @class render.md.component.Config
5- --- @field callout table<string , render.md.CustomCallout >
6- --- @field checkbox table<string , render.md.CustomCheckbox >
4+ --- @class render.md.Components
5+ --- @field callout table<string , render.md.callout.Config >
6+ --- @field checkbox table<string , render.md.checkbox.custom.Config >
77
8- --- @class render.md.buffer.Config : render.md.BufferConfig
8+ --- @class render.md.BufferConfig : render.md.buffer.Config
99--- @field private modes render.md.Modes
10- --- @field private component render.md.component.Config
10+ --- @field private components render.md.Components
1111local Config = {}
1212Config .__index = Config
1313
14- --- @param config render.md.BufferConfig
15- --- @return render.md.buffer.Config
14+ --- @param config render.md.buffer.Config
15+ --- @return render.md.BufferConfig
1616function Config .new (config )
1717 -- Super set of render modes across top level and individual components
1818 local modes = config .render_modes
@@ -22,16 +22,42 @@ function Config.new(config)
2222 end
2323 end
2424
25- --- @type render.md.component.Config
26- local component = {
25+ --- @type render.md.Components
26+ local components = {
2727 callout = Config .normalize (config .callout ),
2828 checkbox = Config .normalize (config .checkbox .custom ),
2929 }
3030
31- local instance = vim .tbl_deep_extend (' force' , { modes = modes , component = component }, config )
31+ local instance = vim .tbl_deep_extend (' force' , { modes = modes , components = components }, config )
3232 return setmetatable (instance , Config )
3333end
3434
35+ --- @param spec render.md.debug.ValidatorSpec
36+ --- @return render.md.debug.ValidatorSpec
37+ function Config .validate (spec )
38+ require (' render-markdown.config.base' ).validate (spec )
39+ return spec :type (' max_file_size' , ' number' )
40+ :type (' debounce' , ' number' )
41+ :nested (' anti_conceal' , require (' render-markdown.config.anti_conceal' ).validate )
42+ :nested (' bullet' , require (' render-markdown.config.bullet' ).validate )
43+ :nested (' callout' , require (' render-markdown.config.callout' ).validate )
44+ :nested (' checkbox' , require (' render-markdown.config.checkbox' ).validate )
45+ :nested (' code' , require (' render-markdown.config.code' ).validate )
46+ :nested (' dash' , require (' render-markdown.config.dash' ).validate )
47+ :nested (' heading' , require (' render-markdown.config.heading' ).validate )
48+ :nested (' html' , require (' render-markdown.config.html' ).validate )
49+ :nested (' indent' , require (' render-markdown.config.indent' ).validate )
50+ :nested (' inline_highlight' , require (' render-markdown.config.inline_highlight' ).validate )
51+ :nested (' latex' , require (' render-markdown.config.latex' ).validate )
52+ :nested (' link' , require (' render-markdown.config.link' ).validate )
53+ :nested (' padding' , require (' render-markdown.config.padding' ).validate )
54+ :nested (' paragraph' , require (' render-markdown.config.paragraph' ).validate )
55+ :nested (' pipe_table' , require (' render-markdown.config.pipe_table' ).validate )
56+ :nested (' quote' , require (' render-markdown.config.quote' ).validate )
57+ :nested (' sign' , require (' render-markdown.config.sign' ).validate )
58+ :nested (' win_options' , require (' render-markdown.config.win_options' ).validate )
59+ end
60+
3561--- @private
3662--- @param current render.md.Modes
3763--- @param new ? render.md.Modes
@@ -56,7 +82,7 @@ function Config.fold_modes(current, new)
5682end
5783
5884--- @private
59- --- @generic T : render.md.CustomCallout | render.md.CustomCheckbox
85+ --- @generic T : render.md.callout.Config | render.md.checkbox.custom.Config
6086--- @param components table<string , T>
6187--- @return table<string , T>
6288function Config .normalize (components )
@@ -74,15 +100,15 @@ function Config:render(mode)
74100end
75101
76102--- @param node render.md.Node
77- --- @return render.md.CustomCallout ?
103+ --- @return render.md.callout.Config ?
78104function Config :get_callout (node )
79- return self .component .callout [node .text :lower ()]
105+ return self .components .callout [node .text :lower ()]
80106end
81107
82108--- @param node render.md.Node
83- --- @return render.md.CustomCheckbox ?
109+ --- @return render.md.checkbox.custom.Config ?
84110function Config :get_checkbox (node )
85- return self .component .checkbox [node .text :lower ()]
111+ return self .components .checkbox [node .text :lower ()]
86112end
87113
88114--- @param mode string
0 commit comments