@@ -11,11 +11,12 @@ local M = {}
1111--- @param user render.md.UserConfig
1212--- @return render.md.UserConfig
1313function M .get (user )
14- return vim .tbl_deep_extend (' force' , M .config (user ), {
15- code = M .code (user ),
16- pipe_table = M .pipe_table (user ),
17- win_options = M .win_options (user ),
18- })
14+ return vim .tbl_deep_extend (
15+ ' force' ,
16+ M .config (user ),
17+ M .partial (user ),
18+ M .overrides (user )
19+ )
1920end
2021
2122--- @private
@@ -45,8 +46,41 @@ function M.config(user)
4546 return presets [user .preset ] or {}
4647end
4748
49+ --- @private
50+ --- @param user render.md.partial.UserConfig
51+ --- @return render.md.partial.UserConfig
52+ function M .partial (user )
53+ --- @type render.md.partial.UserConfig
54+ return {
55+ code = M .code (user ),
56+ pipe_table = M .pipe_table (user ),
57+ win_options = M .win_options (user ),
58+ }
59+ end
60+
4861--- @private
4962--- @param user render.md.UserConfig
63+ --- @return render.md.UserConfig
64+ function M .overrides (user )
65+ local configs = {} --- @type render.md.overrides.UserConfig
66+ for _ , name in ipairs ({ ' buflisted' , ' buftype' , ' filetype' }) do
67+ local overrides = (user .overrides or {})[name ] --- @type table<any , render.md.partial.UserConfig> ?
68+ if type (overrides ) == ' table' then
69+ local config = {} --- @type table<any , render.md.partial.UserConfig>
70+ for value , override in pairs (overrides ) do
71+ if type (override ) == ' table' then
72+ config [value ] = M .partial (override )
73+ end
74+ end
75+ configs [name ] = config
76+ end
77+ end
78+ --- @type render.md.UserConfig
79+ return { overrides = configs }
80+ end
81+
82+ --- @private
83+ --- @param user render.md.partial.UserConfig
5084--- @return render.md.code.UserConfig
5185function M .code (user )
5286 --- @type table<render.md.code.Style ?, render.md.code.UserConfig ? >
@@ -59,7 +93,7 @@ function M.code(user)
5993end
6094
6195--- @private
62- --- @param user render.md.UserConfig
96+ --- @param user render.md.partial. UserConfig
6397--- @return render.md.table.UserConfig
6498function M .pipe_table (user )
6599 --- @type table<render.md.table.Preset ?, render.md.table.UserConfig ? >
@@ -104,7 +138,7 @@ function M.pipe_table(user)
104138end
105139
106140--- @private
107- --- @param user render.md.UserConfig
141+ --- @param user render.md.partial. UserConfig
108142--- @return render.md.window.UserConfigs
109143function M .win_options (user )
110144 --- @type table<boolean ?, render.md.window.UserConfigs ? >
0 commit comments