irongit

A Neovim plugin enabling you to solve LeetCode problems.

46 lines1.3 KBLua
1local Lines = require("leetcode-ui.lines")
2local t = require("leetcode.translator")
3local log = require("leetcode.logger")
4local cmd = require("leetcode.command")
5local config = require("leetcode.config")
6
7---@class lc.ui.menu.Stats : lc.ui.Lines
8local Stats = Lines:extend("LeetMenuTitle")
9
10function Stats:contents()
11 self:clear()
12
13 local stats = config.stats
14 local daily, progress = stats.daily, stats.progress
15
16 local hl = daily.today_completed and "leetcode_hard" or "leetcode_alt"
17 self:append("󰈸 ", hl)
18 self:append(daily.streak and tostring(daily.streak) or "-")
19
20 self:append((" %s "):format(config.icons.bar))
21
22 self:append(t("session") .. ": ", "leetcode_alt")
23 local session = cmd.get_active_session()
24 local session_name = session
25 and (session.name == "" and config.sessions.default or session.name)
26 or "-"
27 self:append(session_name)
28
29 local icon = (" %s "):format(config.icons.square)
30 local function create_progress(key)
31 self:append(icon, "leetcode_" .. key)
32 local count = progress[key] and tostring(progress[key].count) or "-"
33 self:append(count)
34 end
35
36 create_progress("easy")
37 create_progress("medium")
38 create_progress("hard")
39
40 return Stats.super.contents(self)
41end
42
43---@type fun(): lc.ui.menu.Stats
44local LeetMenuStats = Stats
45
46return LeetMenuStats()