irongit

A Neovim plugin enabling you to solve LeetCode problems.

33 lines760 BLua
1local Group = require("leetcode-ui.group")
2local Tag = require("leetcode-ui.group.tag")
3local Line = require("leetcode-ui.line")
4local u = require("leetcode.parser.utils")
5
6---@class lc.Parser.Plain : lc.ui.Group
7---@field text string
8local Plain = Group:extend("LeetParserPlain")
9
10function Plain.normalize(text)
11 return text:gsub("<[^>]+>", "")
12end
13
14---@param text string
15function Plain:init(text)
16 Plain.super.init(self)
17
18 for s in vim.gsplit(Plain.normalize(text), "\n") do
19 s = s:gsub("&[%a%d#]+;", u.entity)
20 self:append(s)
21 self:endl()
22 end
23end
24
25---@type fun(text: string)
26local LeetParserPlain = Plain
27
28---@param text string
29function Plain.static:parse(text)
30 return LeetParserPlain(text)
31end
32
33return LeetParserPlain