11local Context = require (' render-markdown.core.context' )
2- local NodeInfo = require (' render-markdown.core.node_info' )
3- local RenderCode = require (' render-markdown.render.code' )
4- local RenderHeading = require (' render-markdown.render.heading' )
5- local RenderQuote = require (' render-markdown.render.quote' )
6- local RenderTable = require (' render-markdown.render.table' )
72local component = require (' render-markdown.core.component' )
83local list = require (' render-markdown.core.list' )
94local logger = require (' render-markdown.core.logger' )
105local state = require (' render-markdown.state' )
116local str = require (' render-markdown.core.str' )
127
138--- @class render.md.handler.buf.Markdown
14- --- @field private buf integer
159--- @field private marks render.md.Marks
1610--- @field private config render.md.BufferConfig
1711--- @field private context render.md.Context
@@ -23,29 +17,28 @@ Handler.__index = Handler
2317--- @return render.md.handler.buf.Markdown
2418function Handler .new (buf )
2519 local self = setmetatable ({}, Handler )
26- self .buf = buf
2720 self .marks = list .new_marks ()
2821 self .config = state .get_config (buf )
2922 self .context = Context .get (buf )
3023 self .renderers = {
31- code = RenderCode . new ( buf , self . marks , self . config , self . context ),
32- heading = RenderHeading . new ( buf , self . marks , self . config , self . context ),
33- quote = RenderQuote . new ( buf , self . marks , self . config , self . context ),
34- table = RenderTable . new ( buf , self . marks , self . config , self . context ),
24+ code = require ( ' render-markdown.render.code ' ),
25+ heading = require ( ' render-markdown.render.heading ' ),
26+ quote = require ( ' render-markdown.render.quote ' ),
27+ table = require ( ' render-markdown.render.table ' ),
3528 }
3629 return self
3730end
3831
3932--- @param root TSNode
4033--- @return render.md.Mark[]
4134function Handler :parse (root )
42- self .context :query (root , state .markdown_query , function (capture , node )
43- local info = NodeInfo .new (self .buf , node )
44- logger .debug_node_info (capture , info )
45-
35+ self .context :query (root , state .markdown_query , function (capture , info )
4636 local renderer = self .renderers [capture ]
4737 if renderer ~= nil then
48- renderer :render (info )
38+ local render = renderer .new (self .marks , self .config , self .context , info )
39+ if render :setup () then
40+ render :render ()
41+ end
4942 elseif capture == ' section' then
5043 self :section (info )
5144 elseif capture == ' dash' then
@@ -120,7 +113,7 @@ function Handler:list_marker(info)
120113 return true
121114 end
122115 local paragraph = info :sibling (' paragraph' )
123- return paragraph ~= nil and component .checkbox (self .buf , paragraph .text , ' starts' ) ~= nil
116+ return paragraph ~= nil and component .checkbox (self .config , paragraph .text , ' starts' ) ~= nil
124117 end
125118 if sibling_checkbox () then
126119 -- Hide the list marker for checkboxes rather than replacing with a bullet point
0 commit comments