@@ -2,18 +2,13 @@ local Context = require('render-markdown.request.context')
22local Marks = require (' render-markdown.lib.marks' )
33local ts = require (' render-markdown.core.ts' )
44
5- --- @class render.md.handler.buf.Markdown
6- --- @field private query vim.treesitter.Query
7- --- @field private renders table<string , render.md.Render>
8- --- @field private context render.md.request.Context
9- local Handler = {}
10- Handler .__index = Handler
5+ --- @class render.md.handler.Markdown : render.md.Handler
6+ local M = {}
117
12- --- @param buf integer
13- --- @return render.md.handler.buf.Markdown
14- function Handler .new (buf )
15- local self = setmetatable ({}, Handler )
16- self .query = ts .parse (
8+ --- @param ctx render.md.handler.Context
9+ --- @return render.md.Mark[]
10+ function M .parse (ctx )
11+ local query = ts .parse (
1712 ' markdown' ,
1813 [[
1914 (fenced_code_block) @code
@@ -42,7 +37,8 @@ function Handler.new(buf)
4237 (pipe_table) @table
4338 ]]
4439 )
45- self .renders = {
40+ --- @type table<string , render.md.Render>
41+ local renders = {
4642 code = require (' render-markdown.render.markdown.code' ),
4743 dash = require (' render-markdown.render.markdown.dash' ),
4844 document = require (' render-markdown.render.markdown.document' ),
@@ -53,29 +49,14 @@ function Handler.new(buf)
5349 section = require (' render-markdown.render.markdown.section' ),
5450 table = require (' render-markdown.render.markdown.table' ),
5551 }
56- self .context = Context .get (buf )
57- return self
58- end
59-
60- --- @param root TSNode
61- --- @return render.md.Mark[]
62- function Handler :run (root )
63- local marks = Marks .new (self .context , false )
64- self .context .view :nodes (root , self .query , function (capture , node )
65- local render = self .renders [capture ]
66- assert (render , ' unhandled markdown capture: ' .. capture )
67- render :execute (self .context , marks , node )
52+ local context = Context .get (ctx .buf )
53+ local marks = Marks .new (context , false )
54+ context .view :nodes (ctx .root , query , function (capture , node )
55+ local render = renders [capture ]
56+ assert (render , (' unhandled markdown capture: %s' ):format (capture ))
57+ render :execute (context , marks , node )
6858 end )
6959 return marks :get ()
7060end
7161
72- --- @class render.md.handler.Markdown : render.md.Handler
73- local M = {}
74-
75- --- @param ctx render.md.handler.Context
76- --- @return render.md.Mark[]
77- function M .parse (ctx )
78- return Handler .new (ctx .buf ):run (ctx .root )
79- end
80-
8162return M
0 commit comments