@@ -11,91 +11,107 @@ local M = {}
11
11
--- @param user render.md.UserConfig
12
12
--- @return render.md.UserConfig
13
13
function M .get (user )
14
- return vim .tbl_deep_extend (' force' , M .config_preset [user .preset ] or {}, {
15
- code = M .code_style [(user .code or {}).style ] or {},
16
- pipe_table = vim .tbl_deep_extend (
17
- ' force' ,
18
- M .table_preset [(user .pipe_table or {}).preset ] or {},
19
- M .table_style [(user .pipe_table or {}).style ] or {}
20
- ),
21
- win_options = M .win_options [(user .anti_conceal or {}).enabled ] or {},
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 ),
22
18
})
23
19
end
24
20
25
21
--- @private
26
- --- @type table<render.md.config.Preset ?, render.md.UserConfig ? >
27
- M .config_preset = {
28
- [Preset .obsidian ] = { render_modes = true },
29
- --- https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/lang/markdown.lua
30
- [Preset .lazy ] = {
31
- file_types = { ' markdown' , ' norg' , ' rmd' , ' org' , ' codecompanion' },
32
- code = {
33
- sign = false ,
34
- width = ' block' ,
35
- right_pad = 1 ,
36
- },
37
- heading = {
38
- sign = false ,
39
- icons = {},
40
- },
41
- checkbox = {
42
- enabled = false ,
22
+ --- @param user render.md.UserConfig
23
+ --- @return render.md.UserConfig
24
+ function M .config (user )
25
+ --- @type table<render.md.config.Preset ?, render.md.UserConfig ? >
26
+ local presets = {
27
+ [Preset .obsidian ] = { render_modes = true },
28
+ --- https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/plugins/extras/lang/markdown.lua
29
+ [Preset .lazy ] = {
30
+ file_types = { ' markdown' , ' norg' , ' rmd' , ' org' , ' codecompanion' },
31
+ code = {
32
+ sign = false ,
33
+ width = ' block' ,
34
+ right_pad = 1 ,
35
+ },
36
+ heading = {
37
+ sign = false ,
38
+ icons = {},
39
+ },
40
+ checkbox = {
41
+ enabled = false ,
42
+ },
43
43
},
44
- },
45
- }
44
+ }
45
+ return presets [user .preset ] or {}
46
+ end
46
47
47
48
--- @private
48
- --- @type table<render.md.code.Style ?, render.md.code.UserConfig ? >
49
- M .code_style = {
50
- [' none' ] = { enabled = false },
51
- [' normal' ] = { language = false },
52
- [' language' ] = { disable_background = true , inline = false },
53
- }
49
+ --- @param user render.md.UserConfig
50
+ --- @return render.md.code.UserConfig
51
+ function M .code (user )
52
+ --- @type table<render.md.code.Style ?, render.md.code.UserConfig ? >
53
+ local styles = {
54
+ [' none' ] = { enabled = false },
55
+ [' normal' ] = { language = false },
56
+ [' language' ] = { disable_background = true , inline = false },
57
+ }
58
+ return styles [(user .code or {}).style ] or {}
59
+ end
54
60
55
61
--- @private
56
- --- @type table<render.md.table.Preset ?, render.md.table.UserConfig ? >
57
- M .table_preset = {
58
- [' round' ] = {
59
- -- stylua: ignore
60
- border = {
61
- ' ╭' , ' ┬' , ' ╮' ,
62
- ' ├' , ' ┼' , ' ┤' ,
63
- ' ╰' , ' ┴' , ' ╯' ,
64
- ' │' , ' ─' ,
62
+ --- @param user render.md.UserConfig
63
+ --- @return render.md.table.UserConfig
64
+ function M .pipe_table (user )
65
+ --- @type table<render.md.table.Preset ?, render.md.table.UserConfig ? >
66
+ local presets = {
67
+ [' round' ] = {
68
+ -- stylua: ignore
69
+ border = {
70
+ ' ╭' , ' ┬' , ' ╮' ,
71
+ ' ├' , ' ┼' , ' ┤' ,
72
+ ' ╰' , ' ┴' , ' ╯' ,
73
+ ' │' , ' ─' ,
74
+ },
65
75
},
66
- },
67
- [ ' double ' ] = {
68
- -- stylua: ignore
69
- border = {
70
- ' ╔ ' , ' ╦ ' , ' ╗ ' ,
71
- ' ╠ ' , ' ╬ ' , ' ╣ ' ,
72
- ' ╚ ' , ' ╩ ' , ' ╝ ' ,
73
- ' ║ ' , ' ═ ' ,
76
+ [ ' double ' ] = {
77
+ -- stylua: ignore
78
+ border = {
79
+ ' ╔ ' , ' ╦ ' , ' ╗ ' ,
80
+ ' ╠ ' , ' ╬ ' , ' ╣ ' ,
81
+ ' ╚ ' , ' ╩ ' , ' ╝ ' ,
82
+ ' ║ ' , ' ═ ' ,
83
+ } ,
74
84
},
75
- },
76
- [ ' heavy ' ] = {
77
- alignment_indicator = ' ─ ' ,
78
- -- stylua: ignore
79
- border = {
80
- ' ┏ ' , ' ┳ ' , ' ┓ ' ,
81
- ' ┣ ' , ' ╋ ' , ' ┫ ' ,
82
- ' ┗ ' , ' ┻ ' , ' ┛ ' ,
83
- ' ┃ ' , ' ━ ' ,
85
+ [ ' heavy ' ] = {
86
+ alignment_indicator = ' ─ ' ,
87
+ -- stylua: ignore
88
+ border = {
89
+ ' ┏ ' , ' ┳ ' , ' ┓ ' ,
90
+ ' ┣ ' , ' ╋ ' , ' ┫ ' ,
91
+ ' ┗ ' , ' ┻ ' , ' ┛ ' ,
92
+ ' ┃ ' , ' ━ ' ,
93
+ } ,
84
94
},
85
- },
86
- }
87
-
88
- --- @private
89
- --- @type table<render.md.table.Style ?, render.md.table.UserConfig ? >
90
- M .table_style = {
91
- [' none' ] = { enabled = false },
92
- [' normal' ] = { border_enabled = false },
93
- }
95
+ }
96
+ --- @type table<render.md.table.Style ?, render.md.table.UserConfig ? >
97
+ local styles = {
98
+ [' none' ] = { enabled = false },
99
+ [' normal' ] = { border_enabled = false },
100
+ }
101
+ local preset = presets [(user .pipe_table or {}).preset ] or {}
102
+ local style = styles [(user .pipe_table or {}).style ] or {}
103
+ return vim .tbl_deep_extend (' force' , preset , style )
104
+ end
94
105
95
106
--- @private
96
- --- @type table<boolean ?, render.md.window.UserConfigs ? >
97
- M .win_options = {
98
- [false ] = { concealcursor = { rendered = ' nvic' } },
99
- }
107
+ --- @param user render.md.UserConfig
108
+ --- @return render.md.window.UserConfigs
109
+ function M .win_options (user )
110
+ --- @type table<boolean ?, render.md.window.UserConfigs ? >
111
+ local anti_conceals = {
112
+ [false ] = { concealcursor = { rendered = ' nvic' } },
113
+ }
114
+ return anti_conceals [(user .anti_conceal or {}).enabled ] or {}
115
+ end
100
116
101
117
return M
0 commit comments