Selection
Docs
Images
ui.lua
.config/nvim/lua/core/ui.lua
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
local function hl(group, opts)
vim.api.nvim_set_hl(0, group, opts)
end
-- VSCode-like syntax colors for Treesitter and LSP semantic tokens.
hl("@keyword", { fg = "#569cd6" })
hl("@keyword.function", { fg = "#c586c0" })
hl("@conditional", { fg = "#c586c0" })
hl("@repeat", { fg = "#c586c0" })
hl("@function", { fg = "#dcdcaa" })
hl("@function.method", { fg = "#dcdcaa" })
hl("@constructor", { fg = "#4ec9b0" })
hl("@type", { fg = "#4ec9b0" })
hl("@type.builtin", { fg = "#4ec9b0" })
hl("@variable", { fg = "#9cdcfe" })
hl("@variable.local", { fg = "#9cdcfe" })
hl("@variable.builtin", { fg = "#569cd6" })
hl("@variable.parameter", { fg = "#9cdcfe" })
hl("@variable.member", { fg = "#9cdcfe" })
hl("@property", { fg = "#9cdcfe" })
hl("@string", { fg = "#ce9178" })
hl("@number", { fg = "#b5cea8" })
hl("@boolean", { fg = "#569cd6" })
hl("@constant", { fg = "#4fc1ff" })
hl("@comment", { fg = "#6a9955", italic = true })
hl("@punctuation.bracket", { fg = "#d4d4d4" })
hl("@punctuation.delimiter", { fg = "#d4d4d4" })
-- JSX/HTML tags need their own captures; otherwise TSX markup looks flat.
hl("@tag", { fg = "#569cd6" })
hl("@tag.builtin", { fg = "#569cd6" })
hl("@tag.attribute", { fg = "#9cdcfe" })
hl("@tag.delimiter", { fg = "#808080" })
hl("@constructor.tsx", { fg = "#4ec9b0" })
hl("@tag.tsx", { fg = "#569cd6" })
hl("@tag.attribute.tsx", { fg = "#9cdcfe" })
hl("@tag.delimiter.tsx", { fg = "#808080" })
hl("@none.tsx", { fg = "#d4d4d4" })
hl("@lsp.type.function", { fg = "#dcdcaa" })
hl("@lsp.type.method", { fg = "#dcdcaa" })
hl("@lsp.type.class", { fg = "#4ec9b0" })
hl("@lsp.type.interface", { fg = "#4ec9b0" })
hl("@lsp.type.type", { fg = "#4ec9b0" })
hl("@lsp.type.variable", { fg = "#9cdcfe" })
hl("@lsp.type.property", { fg = "#9cdcfe" })
hl("@lsp.type.parameter", { fg = "#9cdcfe" })
hl("LspInlayHint", { fg = "#8a5a8a", italic = true })