local M = {} ---@param c Colors function M.get(c) return { LspReferenceText = { bg = c.bg_selection }, LspReferenceRead = { bg = c.bg_selection }, LspReferenceWrite = { bg = c.bg_selection, bold = true }, LspCodeLens = { fg = c.fg_comment }, LspCodeLensSeparator = { fg = c.fg_gutter }, LspSignatureActiveParameter = { fg = c.accent, bold = true }, LspInlayHint = { fg = c.fg_gutter, italic = true }, DiagnosticError = { fg = c.error }, DiagnosticWarn = { fg = c.warning }, DiagnosticInfo = { fg = c.info }, DiagnosticHint = { fg = c.hint }, DiagnosticOk = { fg = c.ok }, DiagnosticSignError = { fg = c.error }, DiagnosticSignWarn = { fg = c.warning }, DiagnosticSignInfo = { fg = c.info }, DiagnosticSignHint = { fg = c.hint }, DiagnosticSignOk = { fg = c.ok }, DiagnosticVirtualTextError = { fg = c.error, bg = c.bg_elevated }, DiagnosticVirtualTextWarn = { fg = c.warning, bg = c.bg_elevated }, DiagnosticVirtualTextInfo = { fg = c.info, bg = c.bg_elevated }, DiagnosticVirtualTextHint = { fg = c.hint, bg = c.bg_elevated }, DiagnosticVirtualTextOk = { fg = c.ok, bg = c.bg_elevated }, DiagnosticUnderlineError = { sp = c.error, undercurl = true }, DiagnosticUnderlineWarn = { sp = c.warning, undercurl = true }, DiagnosticUnderlineInfo = { sp = c.info, undercurl = true }, DiagnosticUnderlineHint = { sp = c.hint, undercurl = true }, DiagnosticUnderlineOk = { sp = c.ok, undercurl = true }, DiagnosticFloatingError = { fg = c.error }, DiagnosticFloatingWarn = { fg = c.warning }, DiagnosticFloatingInfo = { fg = c.info }, DiagnosticFloatingHint = { fg = c.hint }, DiagnosticFloatingOk = { fg = c.ok }, ["@lsp.type.boolean"] = { link = "@boolean" }, ["@lsp.type.builtinType"] = { link = "@type.builtin" }, ["@lsp.type.comment"] = { link = "@comment" }, ["@lsp.type.decorator"] = { link = "@attribute" }, ["@lsp.type.deriveHelper"] = { link = "@attribute" }, ["@lsp.type.enum"] = { link = "@type" }, ["@lsp.type.enumMember"] = { link = "@constant" }, ["@lsp.type.escapeSequence"] = { link = "@string.escape" }, ["@lsp.type.formatSpecifier"] = { link = "@punctuation.special" }, ["@lsp.type.function"] = { link = "@function" }, ["@lsp.type.generic"] = { link = "@variable" }, ["@lsp.type.interface"] = { link = "@type" }, ["@lsp.type.keyword"] = { link = "@keyword" }, ["@lsp.type.lifetime"] = { link = "@keyword.modifier" }, ["@lsp.type.macro"] = { link = "@function.macro" }, ["@lsp.type.method"] = { link = "@function.method" }, ["@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.selfKeyword"] = { link = "@variable.builtin" }, ["@lsp.type.selfTypeKeyword"] = { link = "@variable.builtin" }, ["@lsp.type.string"] = { link = "@string" }, ["@lsp.type.struct"] = { link = "@type" }, ["@lsp.type.type"] = { link = "@type" }, ["@lsp.type.typeAlias"] = { link = "@type.definition" }, ["@lsp.type.typeParameter"] = { link = "@type" }, ["@lsp.type.unresolvedReference"] = { sp = c.error, undercurl = true }, ["@lsp.type.variable"] = {}, ["@lsp.typemod.class.defaultLibrary"] = { link = "@type.builtin" }, ["@lsp.typemod.enum.defaultLibrary"] = { link = "@type.builtin" }, ["@lsp.typemod.enumMember.defaultLibrary"] = { link = "@constant.builtin" }, ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" }, ["@lsp.typemod.keyword.async"] = { link = "@keyword.coroutine" }, ["@lsp.typemod.keyword.injected"] = { link = "@keyword" }, ["@lsp.typemod.macro.defaultLibrary"] = { link = "@function.builtin" }, ["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" }, ["@lsp.typemod.operator.injected"] = { link = "@operator" }, ["@lsp.typemod.string.injected"] = { link = "@string" }, ["@lsp.typemod.struct.defaultLibrary"] = { link = "@type.builtin" }, ["@lsp.typemod.type.defaultLibrary"] = { link = "@type.builtin" }, ["@lsp.typemod.typeAlias.defaultLibrary"] = { link = "@type.builtin" }, ["@lsp.typemod.variable.callable"] = { link = "@function" }, ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" }, ["@lsp.typemod.variable.injected"] = { link = "@variable" }, ["@lsp.typemod.variable.static"] = { link = "@constant" }, ["@lsp.typemod.property"] = { link = "@property" }, ["@lsp.typemod.property.declaration"] = { link = "@variable" }, -- a property declaration is a variable } end return M