Skip to content

Commit 0972a6c

Browse files
committed
📝 Improve API documents
1 parent 6aef33b commit 0972a6c

File tree

6 files changed

+65
-44
lines changed

6 files changed

+65
-44
lines changed

packages/texcat/lua/texcat.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,12 @@ function M.get_list(list_type, theme_type, syntax_type, theme_names, extensions_
110110
if theme_type == 'textmate' then
111111
theme = TMTheme { extensions_dir = extensions_dir, name = theme_name }
112112
M.themes[theme_name] = theme
113+
else
114+
return ''
113115
end
114116
end
115-
table.insert(theme_infos, M.themes[theme_name].name)
116-
table.insert(theme_infos, tostring(M.themes[theme_name]))
117+
table.insert(theme_infos, theme.name)
118+
table.insert(theme_infos, tostring(theme))
117119
end
118120
list = table.concat(theme_infos, "\n\n")
119121
end

packages/texcat/lua/texcat/renderer.lua

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---a class to render
2+
---@module texcat.renderer
3+
---@copyright 2025
14
---@diagnostic disable: undefined-global
25
-- luacheck: ignore 111 113
36
local template = require 'template'
@@ -92,22 +95,6 @@ function M.get_hls(text, captures)
9295
return hls
9396
end
9497

95-
---@param renderer table?
96-
---@return table renderer
97-
function M.Renderer:new(renderer)
98-
renderer = renderer or {}
99-
renderer.theme = renderer.theme or Theme()
100-
renderer.syntax = renderer.syntax or Syntax()
101-
setmetatable(renderer, {
102-
__index = self
103-
})
104-
return renderer
105-
end
106-
107-
setmetatable(M.Renderer, {
108-
__call = M.Renderer.new
109-
})
110-
11198
---escape TeX, protect `\`, `{`, `}`
11299
---@param text string
113100
---@param prefix string
@@ -155,6 +142,24 @@ function M.escape(text, prefix, math_escape)
155142
return table.concat(texts, '$')
156143
end
157144

145+
---@type Renderer
146+
147+
---@param renderer table?
148+
---@return table renderer
149+
function M.Renderer:new(renderer)
150+
renderer = renderer or {}
151+
renderer.theme = renderer.theme or Theme()
152+
renderer.syntax = renderer.syntax or Syntax()
153+
setmetatable(renderer, {
154+
__index = self
155+
})
156+
return renderer
157+
end
158+
159+
setmetatable(M.Renderer, {
160+
__call = M.Renderer.new
161+
})
162+
158163
---get options
159164
---@param text string
160165
---@param format string

packages/texcat/lua/texcat/syntaxes/tmlanguage.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
---a class to wrap textmate language
2+
---@module texcat.syntaxes.tmlanguage
3+
---@copyright 2025
14
local T = require 'texcat.themes'
25
local textmate = require 'textmate'
36
local M = {
47
TMLanguage = {}
58
}
69

10+
---@type TMLanguage
11+
712
---@param tmlanguage table?
813
---@return table language
914
function M.TMLanguage:new(tmlanguage)

packages/texcat/lua/texcat/syntaxes/treesitter.lua

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---a class to wrap treesitter parsers and queries
2+
---@module texcat.syntaxes.treesitter
3+
---@copyright 2025
14
local lfs = require 'lfs'
25
local ltreesitter = require 'ltreesitter'
36
local T = require 'texcat.themes'
@@ -72,24 +75,6 @@ function M.filter_query(code)
7275
return code
7376
end
7477

75-
---@param treesitter table?
76-
---@return table treesitter
77-
function M.Treesitter:new(treesitter)
78-
treesitter = treesitter or {}
79-
treesitter.name = treesitter.name or 'lua'
80-
treesitter.extensions_dir = treesitter.extensions_dir or T.get_extensions_dir()
81-
treesitter.parser = treesitter.parser or M.require(treesitter.name, treesitter.extensions_dir)
82-
treesitter.query = treesitter.query or M.get_syntax(treesitter.parser, treesitter.name, treesitter.extensions_dir)
83-
setmetatable(treesitter, {
84-
__index = self
85-
})
86-
return treesitter
87-
end
88-
89-
setmetatable(M.Treesitter, {
90-
__call = M.Treesitter.new
91-
})
92-
9378
---add child scopes to color map
9479
---@param color_map color_map
9580
---@param captures capture[]
@@ -114,7 +99,6 @@ end
11499
---@param color_map color_map
115100
---@return capture[] captures
116101
function M.filter_captures(captures, color_map)
117-
---@type capture[]
118102
local new_captures = {}
119103
for _, capture in ipairs(captures) do
120104
if color_map[capture.scope] then
@@ -141,7 +125,6 @@ function M.cut_captures(captures, len)
141125
end
142126
end
143127
---@alias range {start_index: integer, end_index: integer, scope: string, len: integer}
144-
---@type range[]
145128
local ranges = {}
146129
for i = 1, #indices - 1 do
147130
table.insert(ranges, { start_index = indices[i], end_index = indices[i + 1] - 1, scope = 'source', len = len })
@@ -162,6 +145,26 @@ function M.cut_captures(captures, len)
162145
return ranges
163146
end
164147

148+
---@type Treesitter
149+
150+
---@param treesitter table?
151+
---@return table treesitter
152+
function M.Treesitter:new(treesitter)
153+
treesitter = treesitter or {}
154+
treesitter.name = treesitter.name or 'lua'
155+
treesitter.extensions_dir = treesitter.extensions_dir or T.get_extensions_dir()
156+
treesitter.parser = treesitter.parser or M.require(treesitter.name, treesitter.extensions_dir)
157+
treesitter.query = treesitter.query or M.get_syntax(treesitter.parser, treesitter.name, treesitter.extensions_dir)
158+
setmetatable(treesitter, {
159+
__index = self
160+
})
161+
return treesitter
162+
end
163+
164+
setmetatable(M.Treesitter, {
165+
__call = M.Treesitter.new
166+
})
167+
165168
---capture text as captures according to theme
166169
---@param text string
167170
---@param theme table

packages/texcat/lua/texcat/themes.lua

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
---Some generic utilities for themes
1+
---some generic utilities for themes
2+
---@module texcat.themes
3+
---@copyright 2025
24
local lfs = require 'lfs'
35
local M = {
46
scope_link = {
@@ -26,9 +28,8 @@ end
2628

2729
---get scope link
2830
---@return link link
31+
---@alias link table<string, string>
2932
function M.get_scope_link()
30-
---@alias hl_name string
31-
---@type table<hl_name, scope[]>
3233
local hl_scope_map = {}
3334
for _, scope_hl in ipairs(require 'nvim-textmate.colormap'.scope_hl_map) do
3435
local scope, hl = scope_hl[1], scope_hl[2]

packages/texcat/lua/texcat/themes/tmtheme.lua

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
---a class to wrap textmate theme
2+
---@module texcat.themes.tmtheme
3+
---@copyright 2025
14
local textmate = require 'textmate'
25
local T = require 'texcat.themes'
36
local M = {
@@ -12,16 +15,19 @@ function M.load_extensions_dir(extensions_dir)
1215
end
1316
end
1417

18+
---@type TMTheme
19+
1520
---@param tmtheme table?
1621
---@return table theme
1722
function M.TMTheme:new(tmtheme)
1823
tmtheme = tmtheme or {}
1924
tmtheme.extensions_dir = tmtheme.extensions_dir or T.get_extensions_dir()
2025
M.load_extensions_dir(tmtheme.extensions_dir)
21-
tmtheme.name = tmtheme.name or textmate.highlight_themes()[1][1]
26+
local themes = textmate.highlight_themes() or {{''}}
27+
tmtheme.name = tmtheme.name or themes[1][1]
2228
tmtheme.id = tmtheme.id or textmate.highlight_load_theme(tmtheme.name)
2329
setmetatable(tmtheme, {
24-
__tostring = M.TMTheme.list_colors,
30+
__tostring = self.list_colors,
2531
__index = self
2632
})
2733
return tmtheme
@@ -41,7 +47,6 @@ function M.TMTheme.get_color_map()
4147
for k, v in ipairs(theme) do
4248
theme[k] = math.floor(v)
4349
end
44-
---@type color_map
4550
local color_map = {}
4651
-- FIXME: https://github.com/icedman/nvim-textmate/issues/10
4752
-- color_map.source = { theme[1], theme[2], theme[3] }

0 commit comments

Comments
 (0)