irongit

A Neovim plugin enabling you to solve LeetCode problems.

88 lines2.7 KBLua
1local M = {}
2
3---Get highlight group value by name.
4---
5---@param name string String for looking up highlight group.
6---@return table
7local function hl(name)
8 local highlight = vim.api.nvim_get_hl(0, { name = name, link = false })
9 setmetatable(highlight, {
10 __index = function(self, key)
11 if key == "bg" then
12 return self.background
13 end
14 if key == "fg" then
15 return self.foreground
16 end
17
18 return nil
19 end,
20 })
21
22 return highlight
23end
24
25---@alias lc.highlights table<string, vim.api.keyset.highlight>
26
27---@return lc.highlights
28M.get = function()
29 return {
30 [""] = { fg = hl("Normal").fg },
31
32 easy = { fg = "#46c6c2" },
33 medium = { fg = "#fac31d" },
34 hard = { fg = "#f8615c" },
35
36 easy_alt = { fg = "#294d35" },
37 medium_alt = { fg = "#5e4e25" },
38 hard_alt = { fg = "#5a302f" },
39
40 ok = { fg = hl("DiagnosticOk").fg },
41 info = { fg = hl("DiagnosticInfo").fg },
42 hint = { fg = hl("DiagnosticHint").fg },
43 error = { fg = hl("DiagnosticError").fg },
44
45 case_ok = { fg = hl("DiagnosticOk").fg, bg = hl("Normal").bg, bold = true },
46 case_err = { fg = hl("DiagnosticError").fg, bg = hl("Normal").bg, bold = true },
47
48 case_focus_ok = { bg = hl("DiagnosticOk").fg, fg = hl("NormalSB").bg, bold = true },
49 case_focus_err = { bg = hl("DiagnosticError").fg, fg = hl("NormalSB").bg, bold = true },
50
51 normal = { fg = hl("Conceal").fg },
52 alt = { fg = hl("Comment").fg },
53
54 italic = { italic = true },
55 bold = { bold = true },
56 underline = { underline = true },
57
58 code = { fg = hl("Type").fg, bg = hl("Normal").bg },
59 example = { fg = hl("DiagnosticHint").fg },
60 constraints = { fg = hl("DiagnosticInfo").fg },
61 header = { fg = hl("SpecialChar").fg, bold = true },
62 followup = { fg = hl("Number").fg, bold = true },
63
64 indent = { fg = hl("Comment").fg },
65 link = { fg = hl("Function").fg, underline = true },
66 list = { fg = hl("SpecialChar").fg },
67 ref = { fg = hl("Tag").fg },
68 su = { fg = hl("Number").fg },
69
70 -- calendar
71 calendar_0 = { fg = "#45475b" },
72 calendar_10 = { fg = "#004d1b" },
73 calendar_20 = { fg = "#016620" },
74 calendar_30 = { fg = "#078029" },
75 calendar_40 = { fg = "#109932" },
76 calendar_50 = { fg = "#1cb33d" },
77 calendar_60 = { fg = "#28c244" },
78 calendar_70 = { fg = "#51d164" },
79 calendar_80 = { fg = "#7fe18b" },
80 calendar_90 = { fg = "#b3f0b8" },
81 calendar_100 = { fg = "#d8ffda" },
82
83 all = { fg = hl("Normal").fg },
84 all_alt = { fg = "#45475b" },
85 }
86end
87
88return M