aboutsummaryrefslogtreecommitdiff
path: root/lua/prismite/groups/syntax.lua
blob: 3efde039c463769fb7a6eab2c48135ed1b6f3ad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
local colors = require "prismite.palette"

return {
    Comment = { fg = colors.fg_low },

    Constant = { fg = colors.pink },
    String = { fg = colors.yellow },
    Character = { link = "Constant" },
    Number = { link = "Constant" },
    Float = { link = "Number" },
    Boolean = { link = "Constant" },

    Identifier = { fg = colors.fg },
    Function = { fg = colors.purple },

    Statement = { fg = colors.blue },
    Conditional = { link = "Statement" },
    Repeat = { link = "Statement" },
    Label = { link = "Statement" },
    Operator = { fg = colors.fg },
    Keyword = { link = "Statement" },
    Exception = { link = "Statement" },

    PreProc = { link = "Statement" },
    Include = { link = "PreProc" },
    Define = { link = "PreProc" },
    Macro = { link = "PreProc" },
    PreCondit = { link = "PreProc" },

    Type = { fg = colors.orange },
    StorageClass = { link = "Statement" },
    Structure = { link = "Statement" },
    Typedef = { link = "Statement" },

    Special = { link = "Constant" },
    SpecialChar = { link = "Special" },
    Tag = { fg = colors.blue },
    Delimiter = { fg = colors.fg },
    SpecialComment = { fg = "fg", bg = "bg", underline = true },
    Debug = { link = "Constant" },

    Underlined = { underline = true },

    Ignore = { fg = "bg" },

    Error = { fg = colors.red },

    Todo = { fg = colors.purple, bg = colors.bg },

    Added = { link = "DiffAdd" },
    Changed = { link = "DiffChange" },
    Removed = { link = "DiffDelete" },

    -- HTML specific highlights
    htmlTag = { fg = colors.pink },
    htmlEndTag = { fg = colors.pink },

    -- Semantic highlights, see :h lsp-semantic-highlight
    ["@lsp.type.class"] = { link = "@type" },
    ["@lsp.type.comment"] = { link = "@comment" },
    ["@lsp.type.decorator"] = { link = "@attribute" },
    ["@lsp.type.enum"] = { link = "@type" },
    ["@lsp.type.enumMember"] = { link = "@constant" },
    -- ["@lsp.type.event"] = { link = "" }, -- TODO: figure out which hl this should link to
    ["@lsp.type.function"] = { link = "@function" },
    ["@lsp.type.interface"] = { link = "@type" },
    ["@lsp.type.keyword"] = { link = "@keyword" },
    ["@lsp.type.macro"] = { link = "@constant.macro" },
    ["@lsp.type.method"] = { link = "@function.method" },
    ["@lsp.type.modifier"] = { link = "@keyword.modifer" },
    ["@lsp.type.namespace"] = { link = "@module" },
    ["@lsp.type.number"] = { link = "@number" },
    ["@lsp.type.operator"] = { link = "@operator" },
    ["@lsp.type.parameter"] = { link = "@variable.parameter" },
    ["@lsp.type.property"] = { link = "@property" },
    ["@lsp.type.regexp"] = { link = "@string.regexp" },
    ["@lsp.type.string"] = { link = "@string" },
    ["@lsp.type.struct"] = { link = "@type" },
    ["@lsp.type.type"] = { link = "@type" },
    ["@lsp.type.typeParameter"] = { link = "@variable.parameter" },
    ["@lsp.type.variable"] = { link = "@variable" },

    ["@lsp.mod.abstract"] = {},
    ["@lsp.mod.async"] = {},
    ["@lsp.mod.declaration"] = {},
    ["@lsp.mod.defaultLibrary"] = {},
    ["@lsp.mod.definition"] = {},
    ["@lsp.mod.deprecated"] = { strikethrough = true },
    ["@lsp.mod.documentation"] = { underline = true },
    ["@lsp.mod.modification"] = {},
    ["@lsp.mod.static"] = {},
}