aboutsummaryrefslogtreecommitdiff
path: root/lua/prismite/groups/kinds.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/prismite/groups/kinds.lua')
-rw-r--r--lua/prismite/groups/kinds.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/lua/prismite/groups/kinds.lua b/lua/prismite/groups/kinds.lua
new file mode 100644
index 0000000..69a25c2
--- /dev/null
+++ b/lua/prismite/groups/kinds.lua
@@ -0,0 +1,44 @@
+local colors = require "prismite.palette"
+
+local M = {}
+
+M.base = {
+ [""] = { fg = colors.blue },
+ Text = { link = "__base__" },
+ Method = { link = "@function.method" },
+ Function = { link = "@function" },
+ Constructor = { link = "@constructor" },
+ Field = { link = "@variable.member" },
+ Variable = { link = "@variable" },
+ Class = { link = "@type" },
+ Interface = { link = "@type" },
+ Module = { link = "@module" },
+ Property = { link = "@property" },
+ Unit = { link = "@constant" },
+ Value = { link = "__base__" },
+ Enum = { link = "@type" },
+ Keyword = { link = "@keyword" },
+ Snippet = { link = "__base__" },
+ Color = { link = "@string.special" },
+ File = { link = "@string.special.path" },
+ Reference = { link = "__base__" },
+ Folder = { link = "@string.special.path" },
+ EnumMember = { link = "@constant" },
+ Constant = { link = "@constant" },
+ Struct = { link = "@type" },
+ Event = { link = "@constant" },
+ Operator = { link = "@operator" },
+ TypeParameter = { link = "@parameter" },
+}
+
+function M.generate(base)
+ local ret = {}
+ for kind, hl in pairs(M.base) do
+ ret[base .. kind] =
+ vim.tbl_deep_extend("force", hl, hl.link and { link = hl.link:gsub("__base__", base) } or {})
+ end
+
+ return ret
+end
+
+return M