A Neovim plugin enabling you to solve LeetCode problems.
| 1 | local M = {} |
| 2 | |
| 3 | ---Get highlight group value by name. |
| 4 | --- |
| 5 | ---@param name string String for looking up highlight group. |
| 6 | ---@return table |
| 7 | local |
| 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 |
| 23 | end |
| 24 | |
| 25 | ---@alias lc.highlights table<string, vim.api.keyset.highlight> |
| 26 | |
| 27 | ---@return lc.highlights |
| 28 | M.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 | } |
| 86 | end |
| 87 | |
| 88 | return M |