From 7bdaaffec92eabe57951988d96a403347db45369 Mon Sep 17 00:00:00 2001 From: Max Miliano Date: Fri, 2 Aug 2024 22:07:57 -0300 Subject: [PATCH] feat: config styles refactor: dracula-soft removed --- .luarc.json | 8 +- README.md | 24 +- dracula-soft.yml | 1106 ----------------- dracula.yml | 1105 ---------------- lua/dracula/config.lua | 21 + .../dracula-soft.lua => highlights.lua} | 136 +- lua/dracula/highlights/init.lua | 826 ------------ lua/dracula/init.lua | 8 +- shell.nix | 4 - tests/load_spec.lua | 1 - tests/setup_spec.lua | 15 +- 11 files changed, 134 insertions(+), 3120 deletions(-) delete mode 100644 dracula-soft.yml delete mode 100644 dracula.yml rename lua/dracula/{highlights/dracula-soft.lua => highlights.lua} (90%) delete mode 100644 lua/dracula/highlights/init.lua delete mode 100644 shell.nix diff --git a/.luarc.json b/.luarc.json index 2620481..0edf499 100644 --- a/.luarc.json +++ b/.luarc.json @@ -1,3 +1,9 @@ { - "diagnostics.disable": ["undefined-field"] + "diagnostics.disable": ["undefined-field", "duplicate-doc-field"], + "workspace.library": [ + "/usr/share/nvim/runtime", + "${3rd}/luv/library", + "${3rd}/busted/library", + "${3rd}/luassert/library" + ] } diff --git a/README.md b/README.md index e350ae8..60f0d31 100644 --- a/README.md +++ b/README.md @@ -19,22 +19,14 @@ Below is an example of how to enable them. lspconfig.lua_ls.setup { settings = { Lua = { - runtime = { - version = 'LuaJIT', - }, workspace = { - checkThirdParty = false, + checkThirdParty = true, library = { vim.env.VIMRUNTIME, - '~/.local/share/nvim/lazy/dracula', + '~/.local/share/nvim/lazy/dracula.nvim', }, }, - hint = { - enable = true, - }, - completion = { - callSnippet = 'Replace', - }, + -- other settings ... }, }, capabilities = capabilities, @@ -52,6 +44,16 @@ return { local dracula = require "dracula" dracula.setup({ + styles = { + types = {}, + functions = {}, + parameters = {}, + comments = {}, + strings = {}, + keywords = {}, + variables = {}, + constants = {}, + }, transparent = false, on_colors = function (colors, color) ---@type dracula.palette diff --git a/dracula-soft.yml b/dracula-soft.yml deleted file mode 100644 index f61710c..0000000 --- a/dracula-soft.yml +++ /dev/null @@ -1,1106 +0,0 @@ -symbol_map: - text: &symbol_text - link: String - method: &symbol_method - link: Function - function: &symbol_function - link: Function - field: &symbol_field - link: Identifier - variable: &symbol_variable - link: Identifier - class: &symbol_class - link: Type - interface: &symbol_interface - link: Type - module: &symbol_module - link: Type - property: &symbol_property - link: Identifier - unit: &symbol_unit - link: Number - enum: &symbol_enum - link: Type - keyword: &symbol_keyword - link: Statement - snippet: &symbol_snippet - link: Tag - color: &symbol_color - fg: orange - file: &symbol_file - link: Identifier - reference: &symbol_reference - link: Underlined - folder: &symbol_folder - link: Directory - enumMember: &symbol_enum_member - link: Constant - constant: &symbol_constant - link: Constant - struct: &symbol_struct - link: Identifier - event: &symbol_event - link: Function - operator: &symbol_operator - link: Operator - typeParameter: &symbol_type_parameter - link: Type - -specification: - string: &string - fg: yellow - stringRegExp: &stringRegExp - fg: red - comment: &comment - fg: base01 - identifier: &identifier - fg: base0 - constant: &constant - fg: purple - function: &function - fg: green - builtinFunction: &builtinFunction - fg: cyan - parameter: ¶meter - fg: orange - italic: true - gui: italic - class: &class - fg: cyan - types: &types - fg: cyan - italic: true - delimiter: &delimiter - fg: base0 - tag: &tag - fg: pink - tagAttribute: &tagAttribute - fg: green - keyword: &keyword - fg: pink - markupHeading: &markupHeading - fg: purple - bold: true - markupBold: &markupBold - fg: orange - bold: true - markupItalic: &markupItalic - fg: yellow - italic: true - gui: italic - markupInlineCode: &markupInlineCode - fg: base01 - markupBlockCode: &markupBlockCode - fg: base0 - markupLinkUrl: &markupLinkUrl - fg: cyan - underline: true - gui: underline - -name: dracula-soft -author: Max Del Canto -repo: maxmx03/dracula.nvim -contact: "github.com/maxmx03" -license: "MIT License" -version: "NVIM v0.9.4" -config: - transparent: false - on_colors: ~ - on_highlights: ~ - plugins: ~ -palette: - base0: "#f8f8f2" # foreground - base01: "#7b7f8b" # comment - base02: "#44475a" # background highlight - base03: "#282a36" # background - base04: "#262626" # background shade - cyan: "#adf6f6" - green: "#62e884" - orange: "#ffb86c" - pink: "#f286c4" - purple: "#bf9eee" - red: "#ee6666" - yellow: "#e7ee98" - diag_info: "#adf6f6" - diag_hint: "#adf6f6" - diag_ok: "#62e884" - diag_warning: "#ffb86c" - diag_error: "#ee6666" - git_added: "#62e884" - git_modified: "#ffb86c" - git_removed: "#ee6666" - shade_orange: "#483F3E" - shade_red: "#46333D" - shade_cyan: "#394552" - shade_green: "#314742" - shade_yellow: "#454745" - shade_purple: "#3F3B52" - shade_pink: "#5B415A" - shade_add: "#314742" - shade_change: "#483F3E" - shade_warning: "#483F3E" - shade_error: "#46333D" - shade_info: "#394552" - shade_hint: "#394552" - shade_other: "#3F3B52" - shade_ok: "#314742" - inlay_hint: "#689494" -highlights: - editor: - - name: ColorColumn - bg: base04 - - name: Conceal - fg: base02 - - name: CurSearch - fg: red - bg: shade_red - - name: Cursor - fg: base03 - bg: cyan - - name: lCursor - link: Cursor - - name: CursorIM - link: Cursor - - name: CursorColumn - link: ColorColumn - - name: CursorLine - bg: base02 - - name: Directory - fg: purple - - name: DiffAdd - fg: git_added - - name: DiffChange - fg: git_modified - - name: DiffDelete - fg: git_removed - reverse: true - gui: reverse - - name: DiffText - fg: cyan - reverse: true - gui: reverse - - name: EndOfBuffer - fg: base03 - - name: TermCursor - link: Cursor - - name: TermCursorNC - fg: base0 - reverse: true - gui: reverse - - name: ErrorMsg - fg: diag_error - - name: WinSeparator - fg: base01 - bg: base04 - - name: Folded - fg: base0 - bg: base02 - - name: FoldColumn - fg: base0 - bg: base04 - - name: SignColumn - link: Normal - - name: IncSearch - fg: red - bg: shade_red - bold: true - gui: bold - transparent: true - - name: Substitute - link: IncSearch - - name: LineNr - fg: base01 - bg: base03 - transparent: true - - name: LineNrAbove - link: LineNr - - name: LineNrBelow - link: LineNr - - name: CursorLineNr - fg: purple - bg: base03 - transparent: true - - name: CursorLineFold - link: FoldColumn - - name: CursorLineSign - link: SignColumn - - name: MatchParen - fg: cyan - - name: ModeMsg - fg: purple - - name: MsgArea - link: Normal - - name: MsgSeparator - link: Normal - - name: MoreMsg - link: ModeMsg - - name: NonText - fg: base01 - - name: Normal - fg: base0 - bg: base03 - transparent: true - - name: NormalFloat - fg: base0 - bg: base04 - - name: FloatBorder - link: WinSeparator - - name: FloatTitle - <<: *markupHeading - - name: NormalNC - link: Normal - - name: Pmenu - fg: base0 - bg: base04 - - name: PmenuSel - fg: cyan - reverse: true - gui: reverse - - name: PmenuKind - link: Pmenu - - name: PmenuKindSel - link: PmenuSel - - name: PmenuExtra - link: Pmenu - - name: PmenuExtraSel - link: PmenuSel - - name: PmenuSbar - bg: base04 - - name: PmenuThumb - bg: cyan - - name: Question - fg: diag_info - - name: QuickFixLine - fg: base0 - bg: base03 - - name: Search - bg: base02 - - name: SpecialKey - link: NonText - - name: SpellBad - sp: diag_error - strikethrough: true - underline: true - gui: strikethrough,underline - - name: SpellCap - fg: diag_hint - - name: SpellLocal - link: SpellCap - - name: SpellRare - fg: diag_warning - - name: StatusLine - fg: base0 - bg: base04 - - name: StatusLineNC - fg: base01 - bg: base04 - - name: TabLine - fg: base01 - bg: base04 - - name: TabLineFill - fg: base0 - bg: base04 - - name: TabLineSel - fg: base0 - bg: base03 - - name: Title - <<: *markupHeading - - name: Visual - bg: base02 - - name: VisualNOS - link: Visual - - name: warningMsg - fg: diag_warning - - name: Whitespace - fg: base01 - - name: WildMenu - fg: base02 - - name: WinBar - link: Pmenu - - name: WinBarNC - link: WinBar - syntax: - - name: Comment - <<: *comment - - name: Constant - <<: *constant - - name: String - <<: *string - - name: Character - <<: *string - - name: Number - <<: *constant - - name: Boolean - <<: *constant - - name: Float - <<: *constant - - name: Identifier - <<: *identifier - - name: Function - <<: *function - - name: Statement - <<: *keyword - - name: Conditional - <<: *keyword - - name: Repeat - <<: *keyword - - name: Label - <<: *keyword - - name: Operator - <<: *keyword - - name: Keyword - <<: *keyword - - name: Exception - <<: *keyword - - name: PreProc - <<: *keyword - - name: Include - <<: *keyword - - name: Define - <<: *keyword - - name: Macro - <<: *keyword - - name: PreCondit - <<: *keyword - - name: Type - <<: *class - - name: StorageClass - <<: *keyword - - name: Structure - <<: *class - - name: Typedef - <<: *keyword - - name: Special - <<: *stringRegExp - - name: SpecialChar - <<: *constant - - name: Tag - <<: *tag - - name: Delimiter - <<: *delimiter - - name: SpecialComment - <<: *keyword - - name: Debug - <<: *keyword - - name: Underlined - fg: cyan - underline: true - gui: underline - - name: Ignore - - name: Error - fg: diag_error - bold: true - gui: bold - - name: Todo - <<: *markupHeading - plugins: - - nvim-treesitter: - - name: "@variable" - <<: *identifier - - name: "@variable.builtin" - <<: *constant - - name: "@variable.parameter" - fg: orange - italic: true - gui: italic - - name: "@variable.member" - <<: *identifier - - name: "@constant" - <<: *constant - - name: "@constant.builtin" - <<: *constant - - name: "@constant.macro" - <<: *constant - - name: "@module" - <<: *identifier - - name: "@module.builtin" - <<: *constant - - name: "@label" - <<: *keyword - - name: "@string" - <<: *string - - name: "@string.documentation" - <<: *keyword - - name: "@string.regexp" - <<: *stringRegExp - - name: "@string.escape" - <<: *keyword - - name: "@string.special" - <<: *string - - name: "@string.special.symbol" - <<: *identifier - - name: "@string.special.url" - link: Underlined - - name: "@character" - <<: *string - - name: "@character.special" - <<: *string - - name: "@character.printf" - <<: *stringRegExp - - name: "@type" - <<: *class - - name: "@type.builtin" - <<: *keyword - - name: "@type.definition" - <<: *class - - name: "@type.qualifier" - <<: *keyword - - name: "@function" - <<: *function - - name: "@function.builtin" - <<: *builtinFunction - - name: "@function.call" - <<: *function - - name: "@function.macro" - <<: *function - - name: "@function.method" - <<: *function - - name: "@function.method.call" - <<: *function - - name: "@constructor" - <<: *class - - name: "@constructor.lua" - <<: *delimiter - - name: "@operator" - <<: *keyword - - name: "@keyword" - <<: *keyword - - name: "@keyword.coroutine" - <<: *keyword - - name: "@keyword.function" - <<: *keyword - - name: "@keyword.operator" - <<: *keyword - - name: "@keyword.import" - <<: *keyword - - name: "@keyword.repeat" - <<: *keyword - - name: "@keyword.return" - <<: *keyword - - name: "@keyword.debug" - <<: *keyword - - name: "@keyword.exception" - <<: *keyword - - name: "@keyword.conditional" - <<: *keyword - - name: "@keyword.conditional.ternary" - <<: *keyword - - name: "@keyword.directive" - <<: *keyword - - name: "@keyword.directive.define" - <<: *keyword - - name: "@punctuation.delimiter" - <<: *delimiter - - name: "@punctuation.bracket" - <<: *delimiter - - name: "@punctuation.special" - <<: *keyword - - name: "@comment" - <<: *comment - - name: "@comment.documentation" - <<: *comment - - name: "@comment.error" - fg: diag_error - bg: shade_error - - name: "@comment.warning" - fg: diag_warning - bg: shade_warning - - name: "@comment.todo" - fg: purple - bg: shade_purple - - name: "@comment.note" - fg: diag_hint - bg: shade_hint - - name: "@markup.strong" - <<: *markupBold - - name: "@markup.italic" - <<: *markupItalic - - name: "@markup.strikethrough" - fg: base01 - - name: "@markup.underline" - <<: *markupLinkUrl - - name: "@markup.heading" - <<: *markupHeading - - name: "@markup.quote" - <<: *markupInlineCode - - name: "@markup.math" - <<: *constant - - name: "@markup.environment" - <<: *comment - - name: "@markup.link" - <<: *markupBold - - name: "@markup.link.label" - <<: *markupLinkUrl - - name: "@markup.link.url" - <<: *markupLinkUrl - - name: "@markup.raw" - <<: *markupInlineCode - - name: "@markup.raw.block" - <<: *markupBlockCode - - name: "@markup.list" - fg: purple - - name: "@markup.list.checked" - fg: git_added - - name: "@markup.list.unchecked" - fg: git_modified - - name: "@diff.plus" - fg: git_added - - name: "@diff.minus" - fg: git_removed - - name: "@diff.delta" - fg: git_modified - - name: "@tag" - <<: *tag - - name: "@tag.attribute" - <<: *tagAttribute - - name: "@tag.delimiter" - <<: *delimiter - - name: "@property.yaml" - fg: cyan - - name: "@property.json" - fg: cyan - - name: "@property.css" - fg: cyan - - name: "@property.scss" - fg: cyan - - nvim-lspconfig: - - name: "@lsp.type.class" - <<: *class - - name: "@lsp.type.decorator" - <<: *function - - name: "@lsp.type.enum" - <<: *class - - name: "@lsp.type.enumMember" - <<: *constant - - name: "@lsp.type.interface" - <<: *class - - name: "@lsp.type.macro" - <<: *keyword - - name: "@lsp.type.namespace" - <<: *identifier - - name: "@lsp.type.parameter" - <<: *parameter - - name: "@lsp.type.property" - <<: *identifier - - name: "@lsp.type.struct" - <<: *class - - name: "@lsp.type.type" - <<: *class - - name: "@lsp.type.typeParameter" - <<: *types - - name: "@lsp.type.variable" - <<: *identifier - - name: "@lsp.typemod.variable.defaultLibrary" - <<: *constant - - name: "@lsp.typemod.variable.readonly" - <<: *constant - - name: "@lsp.typemod.variable.global" - <<: *constant - - name: "@lsp.typemod.keyword.documentation" - <<: *keyword - - name: "@lsp.typemod.class.documentation" - <<: *class - - name: "@lsp.typemod.property.readonly" - <<: *constant - - name: DiagnosticError - fg: diag_error - - name: DiagnosticWarn - fg: diag_warning - - name: DiagnosticInfo - fg: diag_info - - name: DiagnosticHint - fg: diag_hint - - name: DiagnosticOk - fg: diag_ok - - name: DiagnosticVirtualTextError - fg: diag_error - bg: shade_error - - name: DiagnosticVirtualTextWarn - fg: diag_warning - bg: shade_warning - - name: DiagnosticVirtualTextInfo - fg: diag_info - bg: shade_info - - name: DiagnosticVirtualTextHint - fg: diag_hint - bg: shade_hint - - name: DiagnosticVirtualTextOk - fg: diag_ok - bg: shade_ok - - name: DiagnosticUnderlineError - fg: diag_error - sp: diag_error - underline: true - gui: underline - - name: DiagnosticUnderlineWarn - fg: diag_warning - sp: diag_warning - underline: true - gui: underline - - name: DiagnosticUnderlineInfo - fg: diag_info - sp: diag_info - underline: true - gui: underline - - name: DiagnosticUnderlineHint - fg: diag_hint - sp: diag_hint - underline: true - gui: underline - - name: DiagnosticUnderlineOk - fg: diag_ok - sp: diag_ok - underline: true - gui: underline - - name: LspReferenceText - link: Visual - - name: LspReferenceRead - link: Visual - - name: LspReferenceWrite - link: Visual - - name: LspInlayHint - fg: inlay_hint - - nvim-navic: - - name: NavicText - fg: base0 - - name: NavicSeparator - <<: *symbol_keyword - - name: NavicIconsMethod - <<: *symbol_function - - name: NavicIconsFunction - <<: *symbol_function - - name: NavicIconsField - <<: *symbol_field - - name: NavicIconsVariable - <<: *symbol_variable - - name: NavicIconsClass - <<: *symbol_class - - name: NavicIconsInterface - <<: *symbol_interface - - name: NavicIconsModule - <<: *symbol_module - - name: NavicIconsNamespace - <<: *symbol_module - - name: NavicIconsProperty - <<: *symbol_property - - name: NavicIconsUnit - <<: *symbol_unit - - name: NavicIconsEnum - <<: *symbol_enum - - name: NavicIconsKeyword - <<: *symbol_keyword - - name: NavicIconsSnippet - <<: *symbol_snippet - - name: NavicIconsColor - <<: *symbol_color - - name: NavicIconsFile - <<: *symbol_file - - name: NavicIconsReference - <<: *symbol_reference - - name: NavicIconsFolder - <<: *symbol_folder - - name: NavicIconsEnumMember - <<: *symbol_enum_member - - name: NavicIconsConstant - <<: *symbol_constant - - name: NavicIconsStruct - <<: *symbol_struct - - name: NavicIconsEvent - <<: *symbol_event - - name: NavicIconsOperator - <<: *symbol_operator - - name: NavicIconsTypeParameter - <<: *symbol_type_parameter - - nvim-cmp: - - name: CmpItemKindText - <<: *symbol_text - - name: CmpItemKindMethod - <<: *symbol_method - - name: CmpItemKindFunction - <<: *symbol_function - - name: CmpItemKindField - <<: *symbol_field - - name: CmpItemKindVariable - <<: *symbol_variable - - name: CmpItemKindClass - <<: *symbol_class - - name: CmpItemKindInterface - <<: *symbol_interface - - name: CmpItemKindModule - <<: *symbol_module - - name: CmpItemKindProperty - <<: *symbol_property - - name: CmpItemKindUnit - <<: *symbol_unit - - name: CmpItemKindEnum - <<: *symbol_enum - - name: CmpItemKindKeyword - <<: *symbol_keyword - - name: CmpItemKindSnippet - <<: *symbol_snippet - - name: CmpItemKindColor - <<: *symbol_color - - name: CmpItemKindFile - <<: *symbol_file - - name: CmpItemKindReference - <<: *symbol_reference - - name: CmpItemKindFolder - <<: *symbol_folder - - name: CmpItemKindEnumMember - <<: *symbol_enum_member - - name: CmpItemKindConstant - <<: *symbol_constant - - name: CmpItemKindStruct - <<: *symbol_struct - - name: CmpItemKindEvent - <<: *symbol_event - - name: CmpItemKindOperator - <<: *symbol_operator - - name: CmpItemKindTypeParameter - <<: *symbol_type_parameter - - indent-blankline.nvim: - - name: IblIndent - fg: shade_purple - nocombine: true - - name: IblScope - fg: purple - nocombine: true - - neo-tree.nvim: - - name: NeoTreeNormal - fg: base0 - bg: base04 - - name: NeoTreeNormalNC - link: NeoTreeNormal - - name: NeoTreeDotFile - fg: base01 - - name: NeoTreeFileNameOpened - link: Directory - - name: NeoTreeFloatBorder - link: WinSeparator - - name: NeoTreeFloatTitle - link: Title - - name: NeoTreeGitAdded - fg: git_added - - name: NeoTreeGitConflict - fg: git_modified - - name: NeoTreeGitDeleted - fg: git_removed - - name: NeoTreeGitIgnored - fg: base01 - - name: NeoTreeGitModified - fg: git_modified - - name: NeoTreeGitUnstaged - fg: git_modified - - name: NeoTreeGitUntracked - fg: git_modified - - name: NeoTreeGitStaged - fg: git_added - - nvim-tree.lua: - - name: NvimTreeSymlink - link: Underlined - - name: NvimTreeSymlinkIcon - link: Directory - - name: NvimTreeFolderName - fg: base0 - - name: NvimTreeRootFolder - <<: *markupHeading - - name: NvimTreeFolderIcon - link: Directory - - name: NvimTreeEmptyFolderName - fg: base0 - - name: NvimTreeExecFile - <<: *function - - name: NvimTreeOpenedFile - <<: *markupHeading - - name: NvimTreeModifiedFile - fg: git_modified - - name: NvimTreeSpecialFile - link: Special - - name: NvimTreeIndentMarker - fg: shade_purple - - name: NvimTreeGitDirty - fg: git_modified - - name: NvimTreeGitStaged - fg: git_added - - name: NvimTreeGitMerge - fg: git_modified - - name: NvimTreeGitRenamed - fg: git_modified - - name: NvimTreeGitNew - fg: git_added - - name: NvimTreeGitDeleted - fg: git_removed - - name: NvimTreeNormal - fg: base0 - bg: base04 - - name: NvimTreeNormalFloat - link: NvimTreeNormal - - name: NvimTreeEndOfBuffer - fg: base04 - - name: NvimTreeWinSeparator - fg: base04 - bg: base04 - - which-key.nvim: - - name: WhichKey - <<: *function - - name: WhichKeyDesc - <<: *parameter - - name: WhichKeySeparator - <<: *keyword - - name: WhichKeyGroup - fg: purple - - dashboard-nvim: - - name: DashboardHeader - fg: red - - name: DashboardFooter - fg: base01 - - name: DashboardDesc - link: Directory - - name: DashboardKey - <<: *keyword - - name: DashboardIcon - link: Directory - - name: DashboardShotCut - fg: base0 - - gitsigns.nvim: - - name: GitSignsAdd - fg: git_added - - name: GitSignsChange - fg: git_modified - - name: GitSignsDelete - fg: git_removed - - neogit: - - name: NeogitCursorLine - link: CursorLine - - name: NeogitBranch - fg: purple - - name: NeogitRemote - fg: cyan - - name: NeogitHunkHeader - fg: purple - bg: shade_purple - - name: NeogitHunkHeaderHighlight - link: Title - - name: NeogitDiffContextHighlight - fg: base0 - bg: base03 - - name: NeogitDiffContext - fg: base0 - bg: base04 - - name: NeogitDiffDeleteHighlight - fg: git_removed - bg: shade_red - - name: NeogitDiffDelete - fg: git_removed - - name: NeogitDiffAddHighlight - fg: git_added - bg: shade_green - - name: NeogitDiffAdd - fg: git_added - - todo-comments.nvim: - - name: TodoFgTODO - fg: purple - - name: TodoFgWARN - fg: diag_warning - - name: TodoFgTEST - fg: diag_ok - - name: TodoFgPERF - fg: yellow - - name: TodoFgNOTE - fg: cyan - - name: TodoFgHACK - fg: pink - - name: TodoFgFIX - fg: diag_error - - name: TodoSignTODO - fg: purple - - name: TodoSignWARN - fg: diag_warning - - name: TodoSignTEST - fg: diag_ok - - name: TodoSignPERF - fg: yellow - - name: TodoSignNOTE - fg: cyan - - name: TodoSignHACK - fg: pink - - name: TodoSignFIX - fg: diag_error - - name: TodoBgTODO - fg: purple - reverse: true - gui: reverse - - name: TodoBgWARN - fg: diag_warning - reverse: true - gui: reverse - - name: TodoBgTEST - fg: diag_ok - reverse: true - gui: reverse - - name: TodoBgPERF - fg: yellow - reverse: true - gui: reverse - - name: TodoBgNOTE - fg: cyan - reverse: true - gui: reverse - - name: TodoBgHACK - fg: pink - reverse: true - gui: reverse - - name: TodoBgFIX - fg: diag_error - reverse: true - gui: reverse - - lazy.nvim: - - name: LazyH1 - fg: purple - bg: base04 - - name: LazyButton - fg: base0 - bg: base02 - - name: LazyButtonActive - bg: base02 - reverse: true - - name: LazyReasonStart - fg: cyan - - telescope.nvim: - - name: TelescopeSelection - link: CursorLine - - name: TelescopeSelectionCaret - fg: purple - - name: TelescopeMultiIcon - fg: purple - - name: TelescopeNormal - fg: base0 - bg: base04 - transparent: true - - name: TelescopePreviewNormal - link: TelescopeNormal - - name: TelescopePromptNormal - link: TelescopeNormal - - name: TelescopeResultsNormal - link: TelescopeNormal - - name: TelescopeBorder - fg: purple - bg: base04 - transparent: true - - name: TelescopePromptBorder - link: TelescopeBorder - - name: TelescopeResultsBorder - link: TelescopeBorder - - name: TelescopePreviewBorder - link: TelescopeBorder - - name: TelescopeTitle - fg: purple - bg: shade_purple - - name: TelescopePromptTitle - link: TelescopeTitle - - name: TelescopeResultsTitle - link: TelescopeTitle - - name: TelescopePreviewTitle - link: TelescopeTitle - - name: TelescopeMatching - fg: purple - bg: shade_purple - - name: TelescopePreviewMatch - link: TelescopeMatching - - name: TelescopePromptCounter - link: NonText - - name: TelescopePromptPrefix - fg: purple - - noice.nvim: - - name: NoiceFormatProgressTodo - fg: diag_ok - bg: shade_ok - - name: NoiceFormatProgressDone - fg: diag_ok - reverse: true - gui: reverse - - name: NoiceLspProgressSpinner - fg: diag_ok - - name: NoiceLspProgressClient - fg: diag_ok - - name: NoiceLspProgressTitle - link: Title - - hop.nvim: - - name: HopNextKey - fg: red - - name: HopNextKey1 - fg: cyan - - name: HopUnmatched - fg: base01 - - mini.statusline: - - name: MiniStatuslineModeNormal - fg: base03 - bg: purple - - name: MiniStatuslineModeInsert - fg: base03 - bg: green - - name: MiniStatuslineModeVisual - fg: yellow - bg: base03 - - name: MiniStatuslineModeReplace - fg: red - bg: base03 - - name: MiniStatuslineModeCommand - fg: orange - bg: base03 - - name: MinistatusLineFileName - fg: base0 - bg: base04 - - name: MiniStatuslineDevinfo - fg: base0 - bg: base02 - - name: MiniStatuslineFileinfo - fg: base0 - bg: base02 - - name: MiniStatuslineInactive - fg: base01 - bg: base03 - - mini.tabline: - - name: MiniTablineCurrent - fg: base0 - bg: base03 - - name: MiniTablineVisible - fg: base0 - bg: base03 - - name: MiniTablineHidden - fg: base01 - bg: base03 - - name: MiniTablineModifiedCurrent - link: MiniTabLineCurrent - - name: MiniTablineModifiedVisible - link: MiniTablineVisible - - name: MiniTablineModifiedHidden - link: MiniTablineHidden - - name: MiniTablineFill - fg: base0 - bg: base04 - - name: MiniTablineTabpagesection - fg: base0 - bg: base04 - - mini.starter: - - name: MiniStarterCurrent - link: CursorLine - - name: MiniStarterHeader - fg: red - - name: MiniStarterFooter - fg: base01 - - name: MiniStarterItem - fg: base0 - - name: MiniStarterItemBullet - fg: pink - - name: MiniStarterItemPrefix - fg: pink - - name: MiniStarterSection - link: Title - - name: MiniStarterQuery - fg: pink - bold: true - gui: bold - - mini.cursorword: - - name: MiniCursorword - link: Visual diff --git a/dracula.yml b/dracula.yml deleted file mode 100644 index 01fd3ce..0000000 --- a/dracula.yml +++ /dev/null @@ -1,1105 +0,0 @@ -symbol_map: - text: &symbol_text - link: String - method: &symbol_method - link: Function - function: &symbol_function - link: Function - field: &symbol_field - link: Identifier - variable: &symbol_variable - link: Identifier - class: &symbol_class - link: Type - interface: &symbol_interface - link: Type - module: &symbol_module - link: Type - property: &symbol_property - link: Identifier - unit: &symbol_unit - link: Number - enum: &symbol_enum - link: Type - keyword: &symbol_keyword - link: Statement - snippet: &symbol_snippet - link: Tag - color: &symbol_color - fg: orange - file: &symbol_file - link: Identifier - reference: &symbol_reference - link: Underlined - folder: &symbol_folder - link: Directory - enumMember: &symbol_enum_member - link: Constant - constant: &symbol_constant - link: Constant - struct: &symbol_struct - link: Identifier - event: &symbol_event - link: Function - operator: &symbol_operator - link: Operator - typeParameter: &symbol_type_parameter - link: Type - -specification: - string: &string - fg: yellow - stringRegExp: &stringRegExp - fg: red - comment: &comment - fg: base01 - identifier: &identifier - fg: base0 - constant: &constant - fg: purple - function: &function - fg: green - builtinFunction: &builtinFunction - fg: cyan - parameter: ¶meter - fg: orange - italic: true - gui: italic - class: &class - fg: cyan - types: &types - fg: cyan - italic: true - delimiter: &delimiter - fg: base0 - tag: &tag - fg: pink - tagAttribute: &tagAttribute - fg: green - keyword: &keyword - fg: pink - markupHeading: &markupHeading - fg: purple - bold: true - markupBold: &markupBold - fg: orange - bold: true - markupItalic: &markupItalic - fg: yellow - italic: true - gui: italic - markupInlineCode: &markupInlineCode - fg: base01 - markupBlockCode: &markupBlockCode - fg: base0 - markupLinkUrl: &markupLinkUrl - fg: cyan - underline: true - gui: underline - -name: dracula -author: Max Del Canto -repo: maxmx03/dracula.nvim -contact: "github.com/maxmx03" -license: "MIT License" -version: "NVIM v0.9.4" -config: - transparent: false - on_colors: ~ - on_highlights: ~ - plugins: ~ -palette: - base0: "#f8f8f2" # foreground - base01: "#6272a4" # comment - base02: "#44475A" # background highlight - base03: "#282a36" # background - base04: "#21222c" # background shade - yellow: "#f1fa8c" - cyan: "#8be9fd" - green: "#50fa7a" - red: "#ff5555" - orange: "#ffb86c" - pink: "#ff79c6" - purple: "#bd93f9" - diag_info: "#8be9fd" - diag_hint: "#8be9fd" - diag_ok: "#50fa7b" - diag_warning: "#ffb86c" - diag_error: "#ff5555" - git_added: "#50fa7b" - git_modified: "#ffb86c" - git_removed: "#ff5555" - shade_orange: "#483F3E" - shade_red: "#48303B" - shade_cyan: "#374754" - shade_green: "#2E4940" - shade_yellow: "#464943" - shade_purple: "#3E3A53" - shade_pink: "#5E3E5A" - shade_add: "#2E4940" - shade_change: "#483F3E" - shade_warning: "#483F3E" - shade_error: "#48303B" - shade_info: "#374754" - shade_hint: "#374754" - shade_ok: "#2E4940" - inlay_hint: "#538c98" -highlights: - editor: - - name: ColorColumn - bg: base04 - - name: Conceal - fg: base02 - - name: CurSearch - fg: red - bg: shade_red - - name: Cursor - fg: base03 - bg: cyan - - name: lCursor - link: Cursor - - name: CursorIM - link: Cursor - - name: CursorColumn - link: ColorColumn - - name: CursorLine - bg: base02 - - name: Directory - fg: purple - - name: DiffAdd - fg: git_added - - name: DiffChange - fg: git_modified - - name: DiffDelete - fg: git_removed - reverse: true - gui: reverse - - name: DiffText - fg: cyan - reverse: true - gui: reverse - - name: EndOfBuffer - fg: base03 - - name: TermCursor - link: Cursor - - name: TermCursorNC - fg: base0 - reverse: true - gui: reverse - - name: ErrorMsg - fg: diag_error - - name: WinSeparator - fg: base01 - bg: base04 - - name: Folded - fg: base0 - bg: base02 - - name: FoldColumn - fg: base0 - bg: base04 - - name: SignColumn - link: Normal - - name: IncSearch - fg: red - bg: shade_red - bold: true - gui: bold - transparent: true - - name: Substitute - link: IncSearch - - name: LineNr - fg: base01 - bg: base03 - transparent: true - - name: LineNrAbove - link: LineNr - - name: LineNrBelow - link: LineNr - - name: CursorLineNr - fg: purple - bg: base03 - transparent: true - - name: CursorLineFold - link: FoldColumn - - name: CursorLineSign - link: SignColumn - - name: MatchParen - fg: cyan - - name: ModeMsg - fg: purple - - name: MsgArea - link: Normal - - name: MsgSeparator - link: Normal - - name: MoreMsg - link: ModeMsg - - name: NonText - fg: base01 - - name: Normal - fg: base0 - bg: base03 - transparent: true - - name: NormalFloat - fg: base0 - bg: base04 - - name: FloatBorder - link: WinSeparator - - name: FloatTitle - <<: *markupHeading - - name: NormalNC - link: Normal - - name: Pmenu - fg: base0 - bg: base04 - - name: PmenuSel - fg: cyan - reverse: true - gui: reverse - - name: PmenuKind - link: Pmenu - - name: PmenuKindSel - link: PmenuSel - - name: PmenuExtra - link: Pmenu - - name: PmenuExtraSel - link: PmenuSel - - name: PmenuSbar - bg: base04 - - name: PmenuThumb - bg: cyan - - name: Question - fg: diag_info - - name: QuickFixLine - fg: base0 - bg: base03 - - name: Search - bg: base02 - - name: SpecialKey - link: NonText - - name: SpellBad - sp: diag_error - strikethrough: true - underline: true - gui: strikethrough,underline - - name: SpellCap - fg: diag_hint - - name: SpellLocal - link: SpellCap - - name: SpellRare - fg: diag_warning - - name: StatusLine - fg: base0 - bg: base04 - - name: StatusLineNC - fg: base01 - bg: base04 - - name: TabLine - fg: base01 - bg: base04 - - name: TabLineFill - fg: base0 - bg: base04 - - name: TabLineSel - fg: base0 - bg: base03 - - name: Title - <<: *markupHeading - - name: Visual - bg: base02 - - name: VisualNOS - link: Visual - - name: warningMsg - fg: diag_warning - - name: Whitespace - fg: base01 - - name: WildMenu - fg: base02 - - name: WinBar - link: Pmenu - - name: WinBarNC - link: WinBar - syntax: - - name: Comment - <<: *comment - - name: Constant - <<: *constant - - name: String - <<: *string - - name: Character - <<: *string - - name: Number - <<: *constant - - name: Boolean - <<: *constant - - name: Float - <<: *constant - - name: Identifier - <<: *identifier - - name: Function - <<: *function - - name: Statement - <<: *keyword - - name: Conditional - <<: *keyword - - name: Repeat - <<: *keyword - - name: Label - <<: *keyword - - name: Operator - <<: *keyword - - name: Keyword - <<: *keyword - - name: Exception - <<: *keyword - - name: PreProc - <<: *keyword - - name: Include - <<: *keyword - - name: Define - <<: *keyword - - name: Macro - <<: *keyword - - name: PreCondit - <<: *keyword - - name: Type - <<: *class - - name: StorageClass - <<: *keyword - - name: Structure - <<: *class - - name: Typedef - <<: *keyword - - name: Special - <<: *stringRegExp - - name: SpecialChar - <<: *constant - - name: Tag - <<: *tag - - name: Delimiter - <<: *delimiter - - name: SpecialComment - <<: *keyword - - name: Debug - <<: *keyword - - name: Underlined - fg: cyan - underline: true - gui: underline - - name: Ignore - - name: Error - fg: diag_error - bold: true - gui: bold - - name: Todo - <<: *markupHeading - plugins: - - nvim-treesitter: - - name: "@variable" - <<: *identifier - - name: "@variable.builtin" - <<: *constant - - name: "@variable.parameter" - fg: orange - italic: true - gui: italic - - name: "@variable.member" - <<: *identifier - - name: "@constant" - <<: *constant - - name: "@constant.builtin" - <<: *constant - - name: "@constant.macro" - <<: *constant - - name: "@module" - <<: *identifier - - name: "@module.builtin" - <<: *constant - - name: "@label" - <<: *keyword - - name: "@string" - <<: *string - - name: "@string.documentation" - <<: *keyword - - name: "@string.regexp" - <<: *stringRegExp - - name: "@string.escape" - <<: *keyword - - name: "@string.special" - <<: *string - - name: "@string.special.symbol" - <<: *identifier - - name: "@string.special.url" - link: Underlined - - name: "@character" - <<: *string - - name: "@character.special" - <<: *string - - name: "@character.printf" - <<: *stringRegExp - - name: "@type" - <<: *class - - name: "@type.builtin" - <<: *keyword - - name: "@type.definition" - <<: *class - - name: "@type.qualifier" - <<: *keyword - - name: "@function" - <<: *function - - name: "@function.builtin" - <<: *builtinFunction - - name: "@function.call" - <<: *function - - name: "@function.macro" - <<: *function - - name: "@function.method" - <<: *function - - name: "@function.method.call" - <<: *function - - name: "@constructor" - <<: *class - - name: "@constructor.lua" - <<: *delimiter - - name: "@operator" - <<: *keyword - - name: "@keyword" - <<: *keyword - - name: "@keyword.coroutine" - <<: *keyword - - name: "@keyword.function" - <<: *keyword - - name: "@keyword.operator" - <<: *keyword - - name: "@keyword.import" - <<: *keyword - - name: "@keyword.repeat" - <<: *keyword - - name: "@keyword.return" - <<: *keyword - - name: "@keyword.debug" - <<: *keyword - - name: "@keyword.exception" - <<: *keyword - - name: "@keyword.conditional" - <<: *keyword - - name: "@keyword.conditional.ternary" - <<: *keyword - - name: "@keyword.directive" - <<: *keyword - - name: "@keyword.directive.define" - <<: *keyword - - name: "@punctuation.delimiter" - <<: *delimiter - - name: "@punctuation.bracket" - <<: *delimiter - - name: "@punctuation.special" - <<: *keyword - - name: "@comment" - <<: *comment - - name: "@comment.documentation" - <<: *comment - - name: "@comment.error" - fg: diag_error - bg: shade_error - - name: "@comment.warning" - fg: diag_warning - bg: shade_warning - - name: "@comment.todo" - fg: purple - bg: shade_purple - - name: "@comment.note" - fg: diag_hint - bg: shade_hint - - name: "@markup.strong" - <<: *markupBold - - name: "@markup.italic" - <<: *markupItalic - - name: "@markup.strikethrough" - fg: base01 - - name: "@markup.underline" - <<: *markupLinkUrl - - name: "@markup.heading" - <<: *markupHeading - - name: "@markup.quote" - <<: *markupInlineCode - - name: "@markup.math" - <<: *constant - - name: "@markup.environment" - <<: *comment - - name: "@markup.link" - <<: *markupBold - - name: "@markup.link.label" - <<: *markupLinkUrl - - name: "@markup.link.url" - <<: *markupLinkUrl - - name: "@markup.raw" - <<: *markupInlineCode - - name: "@markup.raw.block" - <<: *markupBlockCode - - name: "@markup.list" - fg: purple - - name: "@markup.list.checked" - fg: git_added - - name: "@markup.list.unchecked" - fg: git_modified - - name: "@diff.plus" - fg: git_added - - name: "@diff.minus" - fg: git_removed - - name: "@diff.delta" - fg: git_modified - - name: "@tag" - <<: *tag - - name: "@tag.attribute" - <<: *tagAttribute - - name: "@tag.delimiter" - <<: *delimiter - - name: "@property.yaml" - fg: cyan - - name: "@property.json" - fg: cyan - - name: "@property.css" - fg: cyan - - name: "@property.scss" - fg: cyan - - nvim-lspconfig: - - name: "@lsp.type.class" - <<: *class - - name: "@lsp.type.decorator" - <<: *function - - name: "@lsp.type.enum" - <<: *class - - name: "@lsp.type.enumMember" - <<: *constant - - name: "@lsp.type.interface" - <<: *class - - name: "@lsp.type.macro" - <<: *keyword - - name: "@lsp.type.namespace" - <<: *identifier - - name: "@lsp.type.parameter" - <<: *parameter - - name: "@lsp.type.property" - <<: *identifier - - name: "@lsp.type.struct" - <<: *class - - name: "@lsp.type.type" - <<: *class - - name: "@lsp.type.typeParameter" - <<: *types - - name: "@lsp.type.variable" - <<: *identifier - - name: "@lsp.typemod.variable.defaultLibrary" - <<: *constant - - name: "@lsp.typemod.variable.readonly" - <<: *constant - - name: "@lsp.typemod.variable.global" - <<: *constant - - name: "@lsp.typemod.keyword.documentation" - <<: *keyword - - name: "@lsp.typemod.class.documentation" - <<: *class - - name: "@lsp.typemod.property.readonly" - <<: *constant - - name: DiagnosticError - fg: diag_error - - name: DiagnosticWarn - fg: diag_warning - - name: DiagnosticInfo - fg: diag_info - - name: DiagnosticHint - fg: diag_hint - - name: DiagnosticOk - fg: diag_ok - - name: DiagnosticVirtualTextError - fg: diag_error - bg: shade_error - - name: DiagnosticVirtualTextWarn - fg: diag_warning - bg: shade_warning - - name: DiagnosticVirtualTextInfo - fg: diag_info - bg: shade_info - - name: DiagnosticVirtualTextHint - fg: diag_hint - bg: shade_hint - - name: DiagnosticVirtualTextOk - fg: diag_ok - bg: shade_ok - - name: DiagnosticUnderlineError - fg: diag_error - sp: diag_error - underline: true - gui: underline - - name: DiagnosticUnderlineWarn - fg: diag_warning - sp: diag_warning - underline: true - gui: underline - - name: DiagnosticUnderlineInfo - fg: diag_info - sp: diag_info - underline: true - gui: underline - - name: DiagnosticUnderlineHint - fg: diag_hint - sp: diag_hint - underline: true - gui: underline - - name: DiagnosticUnderlineOk - fg: diag_ok - sp: diag_ok - underline: true - gui: underline - - name: LspReferenceText - link: Visual - - name: LspReferenceRead - link: Visual - - name: LspReferenceWrite - link: Visual - - name: LspInlayHint - fg: inlay_hint - - nvim-navic: - - name: NavicText - fg: base0 - - name: NavicSeparator - <<: *symbol_keyword - - name: NavicIconsMethod - <<: *symbol_function - - name: NavicIconsFunction - <<: *symbol_function - - name: NavicIconsField - <<: *symbol_field - - name: NavicIconsVariable - <<: *symbol_variable - - name: NavicIconsClass - <<: *symbol_class - - name: NavicIconsInterface - <<: *symbol_interface - - name: NavicIconsModule - <<: *symbol_module - - name: NavicIconsNamespace - <<: *symbol_module - - name: NavicIconsProperty - <<: *symbol_property - - name: NavicIconsUnit - <<: *symbol_unit - - name: NavicIconsEnum - <<: *symbol_enum - - name: NavicIconsKeyword - <<: *symbol_keyword - - name: NavicIconsSnippet - <<: *symbol_snippet - - name: NavicIconsColor - <<: *symbol_color - - name: NavicIconsFile - <<: *symbol_file - - name: NavicIconsReference - <<: *symbol_reference - - name: NavicIconsFolder - <<: *symbol_folder - - name: NavicIconsEnumMember - <<: *symbol_enum_member - - name: NavicIconsConstant - <<: *symbol_constant - - name: NavicIconsStruct - <<: *symbol_struct - - name: NavicIconsEvent - <<: *symbol_event - - name: NavicIconsOperator - <<: *symbol_operator - - name: NavicIconsTypeParameter - <<: *symbol_type_parameter - - nvim-cmp: - - name: CmpItemKindText - <<: *symbol_text - - name: CmpItemKindMethod - <<: *symbol_method - - name: CmpItemKindFunction - <<: *symbol_function - - name: CmpItemKindField - <<: *symbol_field - - name: CmpItemKindVariable - <<: *symbol_variable - - name: CmpItemKindClass - <<: *symbol_class - - name: CmpItemKindInterface - <<: *symbol_interface - - name: CmpItemKindModule - <<: *symbol_module - - name: CmpItemKindProperty - <<: *symbol_property - - name: CmpItemKindUnit - <<: *symbol_unit - - name: CmpItemKindEnum - <<: *symbol_enum - - name: CmpItemKindKeyword - <<: *symbol_keyword - - name: CmpItemKindSnippet - <<: *symbol_snippet - - name: CmpItemKindColor - <<: *symbol_color - - name: CmpItemKindFile - <<: *symbol_file - - name: CmpItemKindReference - <<: *symbol_reference - - name: CmpItemKindFolder - <<: *symbol_folder - - name: CmpItemKindEnumMember - <<: *symbol_enum_member - - name: CmpItemKindConstant - <<: *symbol_constant - - name: CmpItemKindStruct - <<: *symbol_struct - - name: CmpItemKindEvent - <<: *symbol_event - - name: CmpItemKindOperator - <<: *symbol_operator - - name: CmpItemKindTypeParameter - <<: *symbol_type_parameter - - indent-blankline.nvim: - - name: IblIndent - fg: shade_purple - nocombine: true - - name: IblScope - fg: purple - nocombine: true - - neo-tree.nvim: - - name: NeoTreeNormal - fg: base0 - bg: base04 - - name: NeoTreeNormalNC - link: NeoTreeNormal - - name: NeoTreeDotFile - fg: base01 - - name: NeoTreeFileNameOpened - link: Directory - - name: NeoTreeFloatBorder - link: WinSeparator - - name: NeoTreeFloatTitle - link: Title - - name: NeoTreeGitAdded - fg: git_added - - name: NeoTreeGitConflict - fg: git_modified - - name: NeoTreeGitDeleted - fg: git_removed - - name: NeoTreeGitIgnored - fg: base01 - - name: NeoTreeGitModified - fg: git_modified - - name: NeoTreeGitUnstaged - fg: git_modified - - name: NeoTreeGitUntracked - fg: git_modified - - name: NeoTreeGitStaged - fg: git_added - - nvim-tree.lua: - - name: NvimTreeSymlink - link: Underlined - - name: NvimTreeSymlinkIcon - link: Directory - - name: NvimTreeFolderName - fg: base0 - - name: NvimTreeRootFolder - <<: *markupHeading - - name: NvimTreeFolderIcon - link: Directory - - name: NvimTreeEmptyFolderName - fg: base0 - - name: NvimTreeExecFile - <<: *function - - name: NvimTreeOpenedFile - <<: *markupHeading - - name: NvimTreeModifiedFile - fg: git_modified - - name: NvimTreeSpecialFile - link: Special - - name: NvimTreeIndentMarker - fg: shade_purple - - name: NvimTreeGitDirty - fg: git_modified - - name: NvimTreeGitStaged - fg: git_added - - name: NvimTreeGitMerge - fg: git_modified - - name: NvimTreeGitRenamed - fg: git_modified - - name: NvimTreeGitNew - fg: git_added - - name: NvimTreeGitDeleted - fg: git_removed - - name: NvimTreeNormal - fg: base0 - bg: base04 - - name: NvimTreeNormalFloat - link: NvimTreeNormal - - name: NvimTreeEndOfBuffer - fg: base04 - - name: NvimTreeWinSeparator - fg: base04 - bg: base04 - - which-key.nvim: - - name: WhichKey - <<: *function - - name: WhichKeyDesc - <<: *parameter - - name: WhichKeySeparator - <<: *keyword - - name: WhichKeyGroup - fg: purple - - dashboard-nvim: - - name: DashboardHeader - fg: red - - name: DashboardFooter - fg: base01 - - name: DashboardDesc - link: Directory - - name: DashboardKey - <<: *keyword - - name: DashboardIcon - link: Directory - - name: DashboardShotCut - fg: base0 - - gitsigns.nvim: - - name: GitSignsAdd - fg: git_added - - name: GitSignsChange - fg: git_modified - - name: GitSignsDelete - fg: git_removed - - neogit: - - name: NeogitCursorLine - link: CursorLine - - name: NeogitBranch - fg: purple - - name: NeogitRemote - fg: cyan - - name: NeogitHunkHeader - fg: purple - bg: shade_purple - - name: NeogitHunkHeaderHighlight - link: Title - - name: NeogitDiffContextHighlight - fg: base0 - bg: base03 - - name: NeogitDiffContext - fg: base0 - bg: base04 - - name: NeogitDiffDeleteHighlight - fg: git_removed - bg: shade_red - - name: NeogitDiffDelete - fg: git_removed - - name: NeogitDiffAddHighlight - fg: git_added - bg: shade_green - - name: NeogitDiffAdd - fg: git_added - - todo-comments.nvim: - - name: TodoFgTODO - fg: purple - - name: TodoFgWARN - fg: diag_warning - - name: TodoFgTEST - fg: diag_ok - - name: TodoFgPERF - fg: yellow - - name: TodoFgNOTE - fg: cyan - - name: TodoFgHACK - fg: pink - - name: TodoFgFIX - fg: diag_error - - name: TodoSignTODO - fg: purple - - name: TodoSignWARN - fg: diag_warning - - name: TodoSignTEST - fg: diag_ok - - name: TodoSignPERF - fg: yellow - - name: TodoSignNOTE - fg: cyan - - name: TodoSignHACK - fg: pink - - name: TodoSignFIX - fg: diag_error - - name: TodoBgTODO - fg: purple - reverse: true - gui: reverse - - name: TodoBgWARN - fg: diag_warning - reverse: true - gui: reverse - - name: TodoBgTEST - fg: diag_ok - reverse: true - gui: reverse - - name: TodoBgPERF - fg: yellow - reverse: true - gui: reverse - - name: TodoBgNOTE - fg: cyan - reverse: true - gui: reverse - - name: TodoBgHACK - fg: pink - reverse: true - gui: reverse - - name: TodoBgFIX - fg: diag_error - reverse: true - gui: reverse - - lazy.nvim: - - name: LazyH1 - fg: purple - bg: base04 - - name: LazyButton - fg: base0 - bg: base02 - - name: LazyButtonActive - bg: base02 - reverse: true - - name: LazyReasonStart - fg: cyan - - telescope.nvim: - - name: TelescopeSelection - link: CursorLine - - name: TelescopeSelectionCaret - fg: purple - - name: TelescopeMultiIcon - fg: purple - - name: TelescopeNormal - fg: base0 - bg: base04 - transparent: true - - name: TelescopePreviewNormal - link: TelescopeNormal - - name: TelescopePromptNormal - link: TelescopeNormal - - name: TelescopeResultsNormal - link: TelescopeNormal - - name: TelescopeBorder - fg: purple - bg: base04 - transparent: true - - name: TelescopePromptBorder - link: TelescopeBorder - - name: TelescopeResultsBorder - link: TelescopeBorder - - name: TelescopePreviewBorder - link: TelescopeBorder - - name: TelescopeTitle - fg: purple - bg: shade_purple - - name: TelescopePromptTitle - link: TelescopeTitle - - name: TelescopeResultsTitle - link: TelescopeTitle - - name: TelescopePreviewTitle - link: TelescopeTitle - - name: TelescopeMatching - fg: purple - bg: shade_purple - - name: TelescopePreviewMatch - link: TelescopeMatching - - name: TelescopePromptCounter - link: NonText - - name: TelescopePromptPrefix - fg: purple - - noice.nvim: - - name: NoiceFormatProgressTodo - fg: diag_ok - bg: shade_ok - - name: NoiceFormatProgressDone - fg: diag_ok - reverse: true - gui: reverse - - name: NoiceLspProgressSpinner - fg: diag_ok - - name: NoiceLspProgressClient - fg: diag_ok - - name: NoiceLspProgressTitle - link: Title - - hop.nvim: - - name: HopNextKey - fg: red - - name: HopNextKey1 - fg: cyan - - name: HopUnmatched - fg: base01 - - mini.statusline: - - name: MiniStatuslineModeNormal - fg: base03 - bg: purple - - name: MiniStatuslineModeInsert - fg: base03 - bg: green - - name: MiniStatuslineModeVisual - fg: yellow - bg: base03 - - name: MiniStatuslineModeReplace - fg: red - bg: base03 - - name: MiniStatuslineModeCommand - fg: orange - bg: base03 - - name: MinistatusLineFileName - fg: base0 - bg: base04 - - name: MiniStatuslineDevinfo - fg: base0 - bg: base02 - - name: MiniStatuslineFileinfo - fg: base0 - bg: base02 - - name: MiniStatuslineInactive - fg: base01 - bg: base03 - - mini.tabline: - - name: MiniTablineCurrent - fg: base0 - bg: base03 - - name: MiniTablineVisible - fg: base0 - bg: base03 - - name: MiniTablineHidden - fg: base01 - bg: base03 - - name: MiniTablineModifiedCurrent - link: MiniTabLineCurrent - - name: MiniTablineModifiedVisible - link: MiniTablineVisible - - name: MiniTablineModifiedHidden - link: MiniTablineHidden - - name: MiniTablineFill - fg: base0 - bg: base04 - - name: MiniTablineTabpagesection - fg: base0 - bg: base04 - - mini.starter: - - name: MiniStarterCurrent - link: CursorLine - - name: MiniStarterHeader - fg: red - - name: MiniStarterFooter - fg: base01 - - name: MiniStarterItem - fg: base0 - - name: MiniStarterItemBullet - fg: pink - - name: MiniStarterItemPrefix - fg: pink - - name: MiniStarterSection - link: Title - - name: MiniStarterQuery - fg: pink - bold: true - gui: bold - - mini.cursorword: - - name: MiniCursorword - link: Visual diff --git a/lua/dracula/config.lua b/lua/dracula/config.lua index 279ca97..58172fd 100644 --- a/lua/dracula/config.lua +++ b/lua/dracula/config.lua @@ -1,8 +1,29 @@ +---@class dracula.styles +---@field types? vim.api.keyset.highlight +---@field functions? vim.api.keyset.highlight +---@field parameters? vim.api.keyset.highlight +---@field comments? vim.api.keyset.highlight +---@field strings? vim.api.keyset.highlight +---@field keywords? vim.api.keyset.highlight +---@field variables? vim.api.keyset.highlight +---@field constants? vim.api.keyset.highlight + ---@class dracula.config +---@field styles dracula.styles ---@field transparent? boolean ---@field on_highlights? fun(colors: dracula.palette, color: dracula.color): dracula.highlights ---@field on_colors? fun(colors: dracula.palette, color: dracula.color): dracula.palette return { + styles = { + types = {}, + functions = {}, + parameters = {}, + comments = {}, + strings = {}, + keywords = {}, + variables = {}, + constants = {}, + }, transparent = false, on_highlights = nil, on_colors = nil, diff --git a/lua/dracula/highlights/dracula-soft.lua b/lua/dracula/highlights.lua similarity index 90% rename from lua/dracula/highlights/dracula-soft.lua rename to lua/dracula/highlights.lua index 3042cce..7d9dde8 100644 --- a/lua/dracula/highlights/dracula-soft.lua +++ b/lua/dracula/highlights.lua @@ -322,6 +322,13 @@ local function nvim_get_hl(opts) return hl end +---@class dracula.nvim_set_hl.config +---@field transparent? boolean +---@field styles? vim.api.keyset.highlight + +---@param group_name string +---@param group_val vim.api.keyset.highlight +---@param config? dracula.nvim_set_hl.config local nvim_set_hl = function(group_name, group_val, config) local val = { fg = 'NONE', bg = 'NONE' } @@ -329,6 +336,11 @@ local nvim_set_hl = function(group_name, group_val, config) if config and config.transparent then group_val.bg = 'NONE' end + + if config and config.styles then + group_val = vim.tbl_extend('force', group_val, config.styles) + end + val = vim.tbl_extend('force', val, group_val) vim.api.nvim_set_hl(0, group_name, val) else @@ -336,6 +348,8 @@ local nvim_set_hl = function(group_name, group_val, config) end end +---@param colors dracula.palette +---@param config dracula.config M.set_highlight = function(colors, config) if config.on_colors then local color = require 'dracula.color' @@ -359,16 +373,20 @@ M.set_highlight = function(colors, config) nvim_set_hl('TermCursor', { link = 'Cursor' }) nvim_set_hl('TermCursorNC', { fg = colors.base0, reverse = true }) nvim_set_hl('ErrorMsg', { fg = colors.diag_error }) - nvim_set_hl('WinSeparator', { fg = colors.base01, bg = colors.base04 }) + nvim_set_hl('WinSeparator', { fg = colors.base01, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('Folded', { fg = colors.base0, bg = colors.base02 }) nvim_set_hl('FoldColumn', { fg = colors.base0, bg = colors.base04 }) nvim_set_hl('SignColumn', { link = 'Normal' }) - nvim_set_hl('IncSearch', { fg = colors.red, bg = colors.shade_red, bold = true }, config) + nvim_set_hl( + 'IncSearch', + { fg = colors.red, bg = colors.shade_red, bold = true }, + { transparent = config.transparent } + ) nvim_set_hl('Substitute', { link = 'IncSearch' }) - nvim_set_hl('LineNr', { fg = colors.base01, bg = colors.base03 }, config) + nvim_set_hl('LineNr', { fg = colors.base01, bg = colors.base03 }, { transparent = config.transparent }) nvim_set_hl('LineNrAbove', { link = 'LineNr' }) nvim_set_hl('LineNrBelow', { link = 'LineNr' }) - nvim_set_hl('CursorLineNr', { fg = colors.purple, bg = colors.base03 }, config) + nvim_set_hl('CursorLineNr', { fg = colors.purple, bg = colors.base03 }, { transparent = config.transparent }) nvim_set_hl('CursorLineFold', { link = 'FoldColumn' }) nvim_set_hl('CursorLineSign', { link = 'SignColumn' }) nvim_set_hl('MatchParen', { fg = colors.cyan }) @@ -377,8 +395,8 @@ M.set_highlight = function(colors, config) nvim_set_hl('MsgSeparator', { link = 'Normal' }) nvim_set_hl('MoreMsg', { link = 'ModeMsg' }) nvim_set_hl('NonText', { fg = colors.base01 }) - nvim_set_hl('Normal', { fg = colors.base0, bg = colors.base03 }, config) - nvim_set_hl('NormalFloat', { fg = colors.base0, bg = colors.base04 }) + nvim_set_hl('Normal', { fg = colors.base0, bg = colors.base03 }, { transparent = config.transparent }) + nvim_set_hl('NormalFloat', { fg = colors.base0, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('FloatBorder', { link = 'WinSeparator' }) nvim_set_hl('FloatTitle', { fg = colors.purple, bold = true }) nvim_set_hl('NormalNC', { link = 'Normal' }) @@ -411,31 +429,31 @@ M.set_highlight = function(colors, config) nvim_set_hl('WildMenu', { fg = colors.base02 }) nvim_set_hl('WinBar', { link = 'Pmenu' }) nvim_set_hl('WinBarNC', { link = 'WinBar' }) -- SYNTAX :h group-name - nvim_set_hl('Comment', { fg = colors.base01 }) - nvim_set_hl('Constant', { fg = colors.purple }) - nvim_set_hl('String', { fg = colors.yellow }) - nvim_set_hl('Character', { fg = colors.yellow }) - nvim_set_hl('Number', { fg = colors.purple }) - nvim_set_hl('Boolean', { fg = colors.purple }) - nvim_set_hl('Float', { fg = colors.purple }) - nvim_set_hl('Identifier', { fg = colors.base0 }) - nvim_set_hl('Function', { fg = colors.green }) - nvim_set_hl('Statement', { fg = colors.pink }) - nvim_set_hl('Conditional', { fg = colors.pink }) - nvim_set_hl('Repeat', { fg = colors.pink }) - nvim_set_hl('Label', { fg = colors.pink }) - nvim_set_hl('Operator', { fg = colors.pink }) - nvim_set_hl('Keyword', { fg = colors.pink }) - nvim_set_hl('Exception', { fg = colors.pink }) - nvim_set_hl('PreProc', { fg = colors.pink }) - nvim_set_hl('Include', { fg = colors.pink }) - nvim_set_hl('Define', { fg = colors.pink }) - nvim_set_hl('Macro', { fg = colors.pink }) + nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments }) + nvim_set_hl('Constant', { fg = colors.purple }, { styles = config.styles.constants }) + nvim_set_hl('String', { fg = colors.yellow }, { styles = config.styles.strings }) + nvim_set_hl('Character', { link = 'String' }) + nvim_set_hl('Number', { link = 'Constant' }) + nvim_set_hl('Boolean', { link = 'Constant' }) + nvim_set_hl('Float', { link = 'Constant' }) + nvim_set_hl('Identifier', { fg = colors.base0 }, { styles = config.styles.variables }) + nvim_set_hl('Function', { fg = colors.green }, { styles = config.styles.functions }) + nvim_set_hl('Statement', { fg = colors.pink }, { styles = config.styles.keywords }) + nvim_set_hl('Conditional', { link = 'Statement' }) + nvim_set_hl('Repeat', { link = 'Statement' }) + nvim_set_hl('Label', { link = 'Statement' }) + nvim_set_hl('Operator', { link = 'Statement' }) + nvim_set_hl('Keyword', { link = 'Statement' }) + nvim_set_hl('Exception', { link = 'Statement' }) + nvim_set_hl('PreProc', { link = 'Statement' }) + nvim_set_hl('Include', { link = 'Statement' }) + nvim_set_hl('Define', { link = 'Statement' }) + nvim_set_hl('Macro', { link = 'Statement' }) nvim_set_hl('PreCondit', { fg = colors.pink }) - nvim_set_hl('Type', { fg = colors.cyan }) - nvim_set_hl('StorageClass', { fg = colors.pink }) - nvim_set_hl('Structure', { fg = colors.cyan }) - nvim_set_hl('Typedef', { fg = colors.pink }) + nvim_set_hl('Type', { fg = colors.cyan }, { styles = config.styles.types }) + nvim_set_hl('StorageClass', { link = 'Statement' }) + nvim_set_hl('Structure', { link = 'Type' }) + nvim_set_hl('Typedef', { link = 'Statement' }) nvim_set_hl('Special', { fg = colors.red }) nvim_set_hl('SpecialChar', { fg = colors.purple }) nvim_set_hl('Tag', { fg = colors.pink }) @@ -447,37 +465,37 @@ M.set_highlight = function(colors, config) nvim_set_hl('Error', { fg = colors.diag_error, bold = true }) nvim_set_hl('Todo', { fg = colors.purple, bold = true }) -- PLUGINS if config.plugins['nvim-treesitter'] then - nvim_set_hl('@variable', { fg = colors.base0 }) - nvim_set_hl('@variable.builtin', { fg = colors.purple }) - nvim_set_hl('@variable.parameter', { fg = colors.orange, italic = true }) + nvim_set_hl('@variable', { link = 'Identifier' }) + nvim_set_hl('@variable.builtin', { link = 'Constant' }) + nvim_set_hl('@variable.parameter', { fg = colors.orange, italic = true }, { styles = config.styles.parameters }) nvim_set_hl('@variable.member', { fg = colors.base0 }) - nvim_set_hl('@constant', { fg = colors.purple }) + nvim_set_hl('@constant', { link = 'Constant' }) nvim_set_hl('@constant.builtin', { fg = colors.purple }) nvim_set_hl('@constant.macro', { fg = colors.purple }) nvim_set_hl('@module', { fg = colors.base0 }) nvim_set_hl('@module.builtin', { fg = colors.purple }) nvim_set_hl('@label', { fg = colors.pink }) - nvim_set_hl('@string', { fg = colors.yellow }) + nvim_set_hl('@string', { link = 'String' }) nvim_set_hl('@string.documentation', { fg = colors.pink }) nvim_set_hl('@string.regexp', { fg = colors.red }) nvim_set_hl('@string.escape', { fg = colors.pink }) nvim_set_hl('@string.special', { fg = colors.yellow }) nvim_set_hl('@string.special.symbol', { fg = colors.base0 }) nvim_set_hl('@string.special.url', { link = 'Underlined' }) - nvim_set_hl('@character', { fg = colors.yellow }) + nvim_set_hl('@character', { link = 'String' }) nvim_set_hl('@character.special', { fg = colors.yellow }) nvim_set_hl('@character.printf', { fg = colors.red }) - nvim_set_hl('@type', { fg = colors.cyan }) + nvim_set_hl('@type', { link = 'Type' }) nvim_set_hl('@type.builtin', { fg = colors.pink }) nvim_set_hl('@type.definition', { fg = colors.cyan }) nvim_set_hl('@type.qualifier', { fg = colors.pink }) - nvim_set_hl('@function', { fg = colors.green }) + nvim_set_hl('@function', { link = 'Function' }) nvim_set_hl('@function.builtin', { fg = colors.cyan }) - nvim_set_hl('@function.call', { fg = colors.green }) - nvim_set_hl('@function.macro', { fg = colors.green }) - nvim_set_hl('@function.method', { fg = colors.green }) - nvim_set_hl('@function.method.call', { fg = colors.green }) - nvim_set_hl('@constructor', { fg = colors.cyan }) + nvim_set_hl('@function.call', { link = 'Function' }) + nvim_set_hl('@function.macro', { link = 'Function' }) + nvim_set_hl('@function.method', { link = 'Function' }) + nvim_set_hl('@function.method.call', { link = 'Function' }) + nvim_set_hl('@constructor', { link = 'Type' }) nvim_set_hl('@constructor.lua', { fg = colors.base0 }) nvim_set_hl('@operator', { fg = colors.pink }) nvim_set_hl('@keyword', { fg = colors.pink }) @@ -496,8 +514,8 @@ M.set_highlight = function(colors, config) nvim_set_hl('@punctuation.delimiter', { fg = colors.base0 }) nvim_set_hl('@punctuation.bracket', { fg = colors.base0 }) nvim_set_hl('@punctuation.special', { fg = colors.pink }) - nvim_set_hl('@comment', { fg = colors.base01 }) - nvim_set_hl('@comment.documentation', { fg = colors.base01 }) + nvim_set_hl('@comment', { link = 'Comment' }) + nvim_set_hl('@comment.documentation', { link = 'Comment' }) nvim_set_hl('@comment.error', { fg = colors.diag_error, bg = colors.shade_error }) nvim_set_hl('@comment.warning', { fg = colors.diag_warning, bg = colors.shade_warning }) nvim_set_hl('@comment.todo', { fg = colors.purple, bg = colors.shade_purple }) @@ -531,21 +549,21 @@ M.set_highlight = function(colors, config) end if config.plugins['nvim-lspconfig'] then - nvim_set_hl('@lsp.type.class', { fg = colors.cyan }) + nvim_set_hl('@lsp.type.class', { link = 'Type' }) nvim_set_hl('@lsp.type.decorator', { fg = colors.green }) - nvim_set_hl('@lsp.type.enum', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.enumMember', { fg = colors.purple }) - nvim_set_hl('@lsp.type.interface', { fg = colors.cyan }) + nvim_set_hl('@lsp.type.enum', { link = 'Type' }) + nvim_set_hl('@lsp.type.enumMember', { link = 'Constant' }) + nvim_set_hl('@lsp.type.interface', { link = 'Type' }) nvim_set_hl('@lsp.type.macro', { fg = colors.pink }) nvim_set_hl('@lsp.type.namespace', { fg = colors.base0 }) - nvim_set_hl('@lsp.type.parameter', { fg = colors.orange, italic = true }) + nvim_set_hl('@lsp.type.parameter', { fg = colors.orange, italic = true }, { styles = config.styles.parameters }) nvim_set_hl('@lsp.type.property', { fg = colors.base0 }) - nvim_set_hl('@lsp.type.struct', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.type', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.typeParameter', { fg = colors.cyan, italic = true }) - nvim_set_hl('@lsp.type.variable', { fg = colors.base0 }) + nvim_set_hl('@lsp.type.struct', { link = 'Type' }) + nvim_set_hl('@lsp.type.type', { link = 'Type' }) + nvim_set_hl('@lsp.type.typeParameter', { link = 'Type' }) + nvim_set_hl('@lsp.type.variable', { link = 'Identifier' }) nvim_set_hl('@lsp.typemod.variable.defaultLibrary', { fg = colors.purple }) - nvim_set_hl('@lsp.typemod.variable.readonly', { fg = colors.purple }) + nvim_set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' }) nvim_set_hl('@lsp.typemod.variable.global', { fg = colors.purple }) nvim_set_hl('@lsp.typemod.keyword.documentation', { fg = colors.pink }) nvim_set_hl('@lsp.typemod.class.documentation', { fg = colors.cyan }) @@ -631,7 +649,7 @@ M.set_highlight = function(colors, config) end if config.plugins['neo-tree.nvim'] then - nvim_set_hl('NeoTreeNormal', { fg = colors.base0, bg = colors.base04 }) + nvim_set_hl('NeoTreeNormal', { fg = colors.base0, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' }) nvim_set_hl('NeoTreeDotFile', { fg = colors.base01 }) nvim_set_hl('NeoTreeFileNameOpened', { link = 'Directory' }) @@ -665,7 +683,7 @@ M.set_highlight = function(colors, config) nvim_set_hl('NvimTreeGitRenamed', { fg = colors.git_modified }) nvim_set_hl('NvimTreeGitNew', { fg = colors.git_added }) nvim_set_hl('NvimTreeGitDeleted', { fg = colors.git_removed }) - nvim_set_hl('NvimTreeNormal', { fg = colors.base0, bg = colors.base04 }) + nvim_set_hl('NvimTreeNormal', { fg = colors.base0, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' }) nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base04 }) nvim_set_hl('NvimTreeWinSeparator', { fg = colors.base04, bg = colors.base04 }) @@ -742,11 +760,11 @@ M.set_highlight = function(colors, config) nvim_set_hl('TelescopeSelection', { link = 'CursorLine' }) nvim_set_hl('TelescopeSelectionCaret', { fg = colors.purple }) nvim_set_hl('TelescopeMultiIcon', { fg = colors.purple }) - nvim_set_hl('TelescopeNormal', { fg = colors.base0, bg = colors.base04 }, config) + nvim_set_hl('TelescopeNormal', { fg = colors.base0, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' }) nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' }) nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' }) - nvim_set_hl('TelescopeBorder', { fg = colors.purple, bg = colors.base04 }, config) + nvim_set_hl('TelescopeBorder', { fg = colors.purple, bg = colors.base04 }, { transparent = config.transparent }) nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' }) nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' }) nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' }) diff --git a/lua/dracula/highlights/init.lua b/lua/dracula/highlights/init.lua deleted file mode 100644 index 68d414f..0000000 --- a/lua/dracula/highlights/init.lua +++ /dev/null @@ -1,826 +0,0 @@ ----@class dracula.highlights ----@field ColorColumn? table ----@field Conceal? table ----@field CurSearch? table ----@field Cursor? table ----@field lCursor? table ----@field CursorIM? table ----@field CursorColumn? table ----@field CursorLine? table ----@field Directory? table ----@field DiffAdd? table ----@field DiffChange? table ----@field DiffDelete? table ----@field DiffText? table ----@field EndOfBuffer? table ----@field TermCursor? table ----@field TermCursorNC? table ----@field ErrorMsg? table ----@field WinSeparator? table ----@field Folded? table ----@field FoldColumn? table ----@field SignColumn? table ----@field IncSearch? table ----@field Substitute? table ----@field LineNr? table ----@field LineNrAbove? table ----@field LineNrBelow? table ----@field CursorLineNr? table ----@field CursorLineFold? table ----@field CursorLineSign? table ----@field MatchParen? table ----@field ModeMsg? table ----@field MsgArea? table ----@field MsgSeparator? table ----@field MoreMsg? table ----@field NonText? table ----@field Normal? table ----@field NormalFloat? table ----@field FloatBorder? table ----@field FloatTitle? table ----@field NormalNC? table ----@field Pmenu? table ----@field PmenuSel? table ----@field PmenuKind? table ----@field PmenuKindSel? table ----@field PmenuExtra? table ----@field PmenuExtraSel? table ----@field PmenuSbar? table ----@field PmenuThumb? table ----@field Question? table ----@field QuickFixLine? table ----@field Search? table ----@field SpecialKey? table ----@field SpellBad? table ----@field SpellCap? table ----@field SpellLocal? table ----@field SpellRare? table ----@field StatusLine? table ----@field StatusLineNC? table ----@field TabLine? table ----@field TabLineFill? table ----@field TabLineSel? table ----@field Title? table ----@field Visual? table ----@field VisualNOS? table ----@field warningMsg? table ----@field Whitespace? table ----@field WildMenu? table ----@field WinBar? table ----@field WinBarNC? table ----@field Comment? table ----@field Constant? table ----@field String? table ----@field Character? table ----@field Number? table ----@field Boolean? table ----@field Float? table ----@field Identifier? table ----@field Function? table ----@field Statement? table ----@field Conditional? table ----@field Repeat? table ----@field Label? table ----@field Operator? table ----@field Keyword? table ----@field Exception? table ----@field PreProc? table ----@field Include? table ----@field Define? table ----@field Macro? table ----@field PreCondit? table ----@field Type? table ----@field StorageClass? table ----@field Structure? table ----@field Typedef? table ----@field Special? table ----@field SpecialChar? table ----@field Tag? table ----@field Delimiter? table ----@field SpecialComment? table ----@field Debug? table ----@field Underlined? table ----@field Ignore? table ----@field Error? table ----@field Todo? table ----@field DiagnosticError? table ----@field DiagnosticWarn? table ----@field DiagnosticInfo? table ----@field DiagnosticHint? table ----@field DiagnosticOk? table ----@field DiagnosticVirtualTextError? table ----@field DiagnosticVirtualTextWarn? table ----@field DiagnosticVirtualTextInfo? table ----@field DiagnosticVirtualTextHint? table ----@field DiagnosticVirtualTextOk? table ----@field DiagnosticUnderlineError? table ----@field DiagnosticUnderlineWarn? table ----@field DiagnosticUnderlineInfo? table ----@field DiagnosticUnderlineHint? table ----@field DiagnosticUnderlineOk? table ----@field LspReferenceText? table ----@field LspReferenceRead? table ----@field LspReferenceWrite? table ----@field LspInlayHint? table ----@field NavicText? table ----@field NavicSeparator? table ----@field NavicIconsMethod? table ----@field NavicIconsFunction? table ----@field NavicIconsField? table ----@field NavicIconsVariable? table ----@field NavicIconsClass? table ----@field NavicIconsInterface? table ----@field NavicIconsModule? table ----@field NavicIconsNamespace? table ----@field NavicIconsProperty? table ----@field NavicIconsUnit? table ----@field NavicIconsEnum? table ----@field NavicIconsKeyword? table ----@field NavicIconsSnippet? table ----@field NavicIconsColor? table ----@field NavicIconsFile? table ----@field NavicIconsReference? table ----@field NavicIconsFolder? table ----@field NavicIconsEnumMember? table ----@field NavicIconsConstant? table ----@field NavicIconsStruct? table ----@field NavicIconsEvent? table ----@field NavicIconsOperator? table ----@field NavicIconsTypeParameter? table ----@field CmpItemKindText? table ----@field CmpItemKindMethod? table ----@field CmpItemKindFunction? table ----@field CmpItemKindField? table ----@field CmpItemKindVariable? table ----@field CmpItemKindClass? table ----@field CmpItemKindInterface? table ----@field CmpItemKindModule? table ----@field CmpItemKindProperty? table ----@field CmpItemKindUnit? table ----@field CmpItemKindEnum? table ----@field CmpItemKindKeyword? table ----@field CmpItemKindSnippet? table ----@field CmpItemKindColor? table ----@field CmpItemKindFile? table ----@field CmpItemKindReference? table ----@field CmpItemKindFolder? table ----@field CmpItemKindEnumMember? table ----@field CmpItemKindConstant? table ----@field CmpItemKindStruct? table ----@field CmpItemKindEvent? table ----@field CmpItemKindOperator? table ----@field CmpItemKindTypeParameter? table ----@field IblIndent? table ----@field IblScope? table ----@field NeoTreeNormal? table ----@field NeoTreeNormalNC? table ----@field NeoTreeDotFile? table ----@field NeoTreeFileNameOpened? table ----@field NeoTreeFloatBorder? table ----@field NeoTreeFloatTitle? table ----@field NeoTreeGitAdded? table ----@field NeoTreeGitConflict? table ----@field NeoTreeGitDeleted? table ----@field NeoTreeGitIgnored? table ----@field NeoTreeGitModified? table ----@field NeoTreeGitUnstaged? table ----@field NeoTreeGitUntracked? table ----@field NeoTreeGitStaged? table ----@field NvimTreeSymlink? table ----@field NvimTreeSymlinkIcon? table ----@field NvimTreeFolderName? table ----@field NvimTreeRootFolder? table ----@field NvimTreeFolderIcon? table ----@field NvimTreeEmptyFolderName? table ----@field NvimTreeExecFile? table ----@field NvimTreeOpenedFile? table ----@field NvimTreeModifiedFile? table ----@field NvimTreeSpecialFile? table ----@field NvimTreeIndentMarker? table ----@field NvimTreeGitDirty? table ----@field NvimTreeGitStaged? table ----@field NvimTreeGitMerge? table ----@field NvimTreeGitRenamed? table ----@field NvimTreeGitNew? table ----@field NvimTreeGitDeleted? table ----@field NvimTreeNormal? table ----@field NvimTreeNormalFloat? table ----@field NvimTreeEndOfBuffer? table ----@field NvimTreeWinSeparator? table ----@field WhichKey? table ----@field WhichKeyDesc? table ----@field WhichKeySeparator? table ----@field WhichKeyGroup? table ----@field DashboardHeader? table ----@field DashboardFooter? table ----@field DashboardDesc? table ----@field DashboardKey? table ----@field DashboardIcon? table ----@field DashboardShotCut? table ----@field GitSignsAdd? table ----@field GitSignsChange? table ----@field GitSignsDelete? table ----@field NeogitCursorLine? table ----@field NeogitBranch? table ----@field NeogitRemote? table ----@field NeogitHunkHeader? table ----@field NeogitHunkHeaderHighlight? table ----@field NeogitDiffContextHighlight? table ----@field NeogitDiffContext? table ----@field NeogitDiffDeleteHighlight? table ----@field NeogitDiffDelete? table ----@field NeogitDiffAddHighlight? table ----@field NeogitDiffAdd? table ----@field TodoFgTODO? table ----@field TodoFgWARN? table ----@field TodoFgTEST? table ----@field TodoFgPERF? table ----@field TodoFgNOTE? table ----@field TodoFgHACK? table ----@field TodoFgFIX? table ----@field TodoSignTODO? table ----@field TodoSignWARN? table ----@field TodoSignTEST? table ----@field TodoSignPERF? table ----@field TodoSignNOTE? table ----@field TodoSignHACK? table ----@field TodoSignFIX? table ----@field TodoBgTODO? table ----@field TodoBgWARN? table ----@field TodoBgTEST? table ----@field TodoBgPERF? table ----@field TodoBgNOTE? table ----@field TodoBgHACK? table ----@field TodoBgFIX? table ----@field LazyH1? table ----@field LazyButton? table ----@field LazyButtonActive? table ----@field LazyReasonStart? table ----@field TelescopeSelection? table ----@field TelescopeSelectionCaret? table ----@field TelescopeMultiIcon? table ----@field TelescopeNormal? table ----@field TelescopePreviewNormal? table ----@field TelescopePromptNormal? table ----@field TelescopeResultsNormal? table ----@field TelescopeBorder? table ----@field TelescopePromptBorder? table ----@field TelescopeResultsBorder? table ----@field TelescopePreviewBorder? table ----@field TelescopeTitle? table ----@field TelescopePromptTitle? table ----@field TelescopeResultsTitle? table ----@field TelescopePreviewTitle? table ----@field TelescopeMatching? table ----@field TelescopePreviewMatch? table ----@field TelescopePromptCounter? table ----@field TelescopePromptPrefix? table ----@field NoiceFormatProgressTodo? table ----@field NoiceFormatProgressDone? table ----@field NoiceLspProgressSpinner? table ----@field NoiceLspProgressClient? table ----@field NoiceLspProgressTitle? table ----@field HopNextKey? table ----@field HopNextKey1? table ----@field HopUnmatched? table ----@field MiniStatuslineModeNormal? table ----@field MiniStatuslineModeInsert? table ----@field MiniStatuslineModeVisual? table ----@field MiniStatuslineModeReplace? table ----@field MiniStatuslineModeCommand? table ----@field MinistatusLineFileName? table ----@field MiniStatuslineDevinfo? table ----@field MiniStatuslineFileinfo? table ----@field MiniStatuslineInactive? table ----@field MiniTablineCurrent? table ----@field MiniTablineVisible? table ----@field MiniTablineHidden? table ----@field MiniTablineModifiedCurrent? table ----@field MiniTablineModifiedVisible? table ----@field MiniTablineModifiedHidden? table ----@field MiniTablineFill? table ----@field MiniTablineTabpagesection? table ----@field MiniStarterCurrent? table ----@field MiniStarterHeader? table ----@field MiniStarterFooter? table ----@field MiniStarterItem? table ----@field MiniStarterItemBullet? table ----@field MiniStarterItemPrefix? table ----@field MiniStarterSection? table ----@field MiniStarterQuery? table ----@field MiniCursorword? table - -local M = {} - -local function nvim_get_hl(opts) - local hl = vim.api.nvim_get_hl(0, opts) - - if hl.link then - return nvim_get_hl { name = hl.link } - end - - return hl -end - -local nvim_set_hl = function(group_name, group_val, config) - local val = { fg = 'NONE', bg = 'NONE' } - - if not group_val.link then - if config and config.transparent then - group_val.bg = 'NONE' - end - val = vim.tbl_extend('force', val, group_val) - vim.api.nvim_set_hl(0, group_name, val) - else - vim.api.nvim_set_hl(0, group_name, group_val) - end -end - -M.set_highlight = function(colors, config) - if config.on_colors then - local color = require 'dracula.color' - colors = vim.tbl_extend('force', colors, config.on_colors(colors, color)) - end - -- EDITOR :h highlight-groups - nvim_set_hl('ColorColumn', { bg = colors.base04 }) - nvim_set_hl('Conceal', { fg = colors.base02 }) - nvim_set_hl('CurSearch', { fg = colors.red, bg = colors.shade_red }) - nvim_set_hl('Cursor', { fg = colors.base03, bg = colors.cyan }) - nvim_set_hl('lCursor', { link = 'Cursor' }) - nvim_set_hl('CursorIM', { link = 'Cursor' }) - nvim_set_hl('CursorColumn', { link = 'ColorColumn' }) - nvim_set_hl('CursorLine', { bg = colors.base02 }) - nvim_set_hl('Directory', { fg = colors.purple }) - nvim_set_hl('DiffAdd', { fg = colors.git_added }) - nvim_set_hl('DiffChange', { fg = colors.git_modified }) - nvim_set_hl('DiffDelete', { fg = colors.git_removed, reverse = true }) - nvim_set_hl('DiffText', { fg = colors.cyan, reverse = true }) - nvim_set_hl('EndOfBuffer', { fg = colors.base03 }) - nvim_set_hl('TermCursor', { link = 'Cursor' }) - nvim_set_hl('TermCursorNC', { fg = colors.base0, reverse = true }) - nvim_set_hl('ErrorMsg', { fg = colors.diag_error }) - nvim_set_hl('WinSeparator', { fg = colors.base01, bg = colors.base04 }) - nvim_set_hl('Folded', { fg = colors.base0, bg = colors.base02 }) - nvim_set_hl('FoldColumn', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('SignColumn', { link = 'Normal' }) - nvim_set_hl('IncSearch', { fg = colors.red, bg = colors.shade_red, bold = true }, config) - nvim_set_hl('Substitute', { link = 'IncSearch' }) - nvim_set_hl('LineNr', { fg = colors.base01, bg = colors.base03 }, config) - nvim_set_hl('LineNrAbove', { link = 'LineNr' }) - nvim_set_hl('LineNrBelow', { link = 'LineNr' }) - nvim_set_hl('CursorLineNr', { fg = colors.purple, bg = colors.base03 }, config) - nvim_set_hl('CursorLineFold', { link = 'FoldColumn' }) - nvim_set_hl('CursorLineSign', { link = 'SignColumn' }) - nvim_set_hl('MatchParen', { fg = colors.cyan }) - nvim_set_hl('ModeMsg', { fg = colors.purple }) - nvim_set_hl('MsgArea', { link = 'Normal' }) - nvim_set_hl('MsgSeparator', { link = 'Normal' }) - nvim_set_hl('MoreMsg', { link = 'ModeMsg' }) - nvim_set_hl('NonText', { fg = colors.base01 }) - nvim_set_hl('Normal', { fg = colors.base0, bg = colors.base03 }, config) - nvim_set_hl('NormalFloat', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('FloatBorder', { link = 'WinSeparator' }) - nvim_set_hl('FloatTitle', { fg = colors.purple, bold = true }) - nvim_set_hl('NormalNC', { link = 'Normal' }) - nvim_set_hl('Pmenu', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('PmenuSel', { fg = colors.cyan, reverse = true }) - nvim_set_hl('PmenuKind', { link = 'Pmenu' }) - nvim_set_hl('PmenuKindSel', { link = 'PmenuSel' }) - nvim_set_hl('PmenuExtra', { link = 'Pmenu' }) - nvim_set_hl('PmenuExtraSel', { link = 'PmenuSel' }) - nvim_set_hl('PmenuSbar', { bg = colors.base04 }) - nvim_set_hl('PmenuThumb', { bg = colors.cyan }) - nvim_set_hl('Question', { fg = colors.diag_info }) - nvim_set_hl('QuickFixLine', { fg = colors.base0, bg = colors.base03 }) - nvim_set_hl('Search', { bg = colors.base02 }) - nvim_set_hl('SpecialKey', { link = 'NonText' }) - nvim_set_hl('SpellBad', { underline = true, strikethrough = true }) - nvim_set_hl('SpellCap', { fg = colors.diag_hint }) - nvim_set_hl('SpellLocal', { link = 'SpellCap' }) - nvim_set_hl('SpellRare', { fg = colors.diag_warning }) - nvim_set_hl('StatusLine', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('StatusLineNC', { fg = colors.base01, bg = colors.base04 }) - nvim_set_hl('TabLine', { fg = colors.base01, bg = colors.base04 }) - nvim_set_hl('TabLineFill', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('TabLineSel', { fg = colors.base0, bg = colors.base03 }) - nvim_set_hl('Title', { fg = colors.purple, bold = true }) - nvim_set_hl('Visual', { bg = colors.base02 }) - nvim_set_hl('VisualNOS', { link = 'Visual' }) - nvim_set_hl('warningMsg', { fg = colors.diag_warning }) - nvim_set_hl('Whitespace', { fg = colors.base01 }) - nvim_set_hl('WildMenu', { fg = colors.base02 }) - nvim_set_hl('WinBar', { link = 'Pmenu' }) - nvim_set_hl('WinBarNC', { link = 'WinBar' }) -- SYNTAX :h group-name - nvim_set_hl('Comment', { fg = colors.base01 }) - nvim_set_hl('Constant', { fg = colors.purple }) - nvim_set_hl('String', { fg = colors.yellow }) - nvim_set_hl('Character', { fg = colors.yellow }) - nvim_set_hl('Number', { fg = colors.purple }) - nvim_set_hl('Boolean', { fg = colors.purple }) - nvim_set_hl('Float', { fg = colors.purple }) - nvim_set_hl('Identifier', { fg = colors.base0 }) - nvim_set_hl('Function', { fg = colors.green }) - nvim_set_hl('Statement', { fg = colors.pink }) - nvim_set_hl('Conditional', { fg = colors.pink }) - nvim_set_hl('Repeat', { fg = colors.pink }) - nvim_set_hl('Label', { fg = colors.pink }) - nvim_set_hl('Operator', { fg = colors.pink }) - nvim_set_hl('Keyword', { fg = colors.pink }) - nvim_set_hl('Exception', { fg = colors.pink }) - nvim_set_hl('PreProc', { fg = colors.pink }) - nvim_set_hl('Include', { fg = colors.pink }) - nvim_set_hl('Define', { fg = colors.pink }) - nvim_set_hl('Macro', { fg = colors.pink }) - nvim_set_hl('PreCondit', { fg = colors.pink }) - nvim_set_hl('Type', { fg = colors.cyan }) - nvim_set_hl('StorageClass', { fg = colors.pink }) - nvim_set_hl('Structure', { fg = colors.cyan }) - nvim_set_hl('Typedef', { fg = colors.pink }) - nvim_set_hl('Special', { fg = colors.red }) - nvim_set_hl('SpecialChar', { fg = colors.purple }) - nvim_set_hl('Tag', { fg = colors.pink }) - nvim_set_hl('Delimiter', { fg = colors.base0 }) - nvim_set_hl('SpecialComment', { fg = colors.pink }) - nvim_set_hl('Debug', { fg = colors.pink }) - nvim_set_hl('Underlined', { fg = colors.cyan, underline = true }) - nvim_set_hl('Ignore', {}) - nvim_set_hl('Error', { fg = colors.diag_error, bold = true }) - nvim_set_hl('Todo', { fg = colors.purple, bold = true }) -- PLUGINS - if config.plugins['nvim-treesitter'] then - nvim_set_hl('@variable', { fg = colors.base0 }) - nvim_set_hl('@variable.builtin', { fg = colors.purple }) - nvim_set_hl('@variable.parameter', { fg = colors.orange, italic = true }) - nvim_set_hl('@variable.member', { fg = colors.base0 }) - nvim_set_hl('@constant', { fg = colors.purple }) - nvim_set_hl('@constant.builtin', { fg = colors.purple }) - nvim_set_hl('@constant.macro', { fg = colors.purple }) - nvim_set_hl('@module', { fg = colors.base0 }) - nvim_set_hl('@module.builtin', { fg = colors.purple }) - nvim_set_hl('@label', { fg = colors.pink }) - nvim_set_hl('@string', { fg = colors.yellow }) - nvim_set_hl('@string.documentation', { fg = colors.pink }) - nvim_set_hl('@string.regexp', { fg = colors.red }) - nvim_set_hl('@string.escape', { fg = colors.pink }) - nvim_set_hl('@string.special', { fg = colors.yellow }) - nvim_set_hl('@string.special.symbol', { fg = colors.base0 }) - nvim_set_hl('@string.special.url', { link = 'Underlined' }) - nvim_set_hl('@character', { fg = colors.yellow }) - nvim_set_hl('@character.special', { fg = colors.yellow }) - nvim_set_hl('@character.printf', { fg = colors.red }) - nvim_set_hl('@type', { fg = colors.cyan }) - nvim_set_hl('@type.builtin', { fg = colors.pink }) - nvim_set_hl('@type.definition', { fg = colors.cyan }) - nvim_set_hl('@type.qualifier', { fg = colors.pink }) - nvim_set_hl('@function', { fg = colors.green }) - nvim_set_hl('@function.builtin', { fg = colors.cyan }) - nvim_set_hl('@function.call', { fg = colors.green }) - nvim_set_hl('@function.macro', { fg = colors.green }) - nvim_set_hl('@function.method', { fg = colors.green }) - nvim_set_hl('@function.method.call', { fg = colors.green }) - nvim_set_hl('@constructor', { fg = colors.cyan }) - nvim_set_hl('@constructor.lua', { fg = colors.base0 }) - nvim_set_hl('@operator', { fg = colors.pink }) - nvim_set_hl('@keyword', { fg = colors.pink }) - nvim_set_hl('@keyword.coroutine', { fg = colors.pink }) - nvim_set_hl('@keyword.function', { fg = colors.pink }) - nvim_set_hl('@keyword.operator', { fg = colors.pink }) - nvim_set_hl('@keyword.import', { fg = colors.pink }) - nvim_set_hl('@keyword.repeat', { fg = colors.pink }) - nvim_set_hl('@keyword.return', { fg = colors.pink }) - nvim_set_hl('@keyword.debug', { fg = colors.pink }) - nvim_set_hl('@keyword.exception', { fg = colors.pink }) - nvim_set_hl('@keyword.conditional', { fg = colors.pink }) - nvim_set_hl('@keyword.conditional.ternary', { fg = colors.pink }) - nvim_set_hl('@keyword.directive', { fg = colors.pink }) - nvim_set_hl('@keyword.directive.define', { fg = colors.pink }) - nvim_set_hl('@punctuation.delimiter', { fg = colors.base0 }) - nvim_set_hl('@punctuation.bracket', { fg = colors.base0 }) - nvim_set_hl('@punctuation.special', { fg = colors.pink }) - nvim_set_hl('@comment', { fg = colors.base01 }) - nvim_set_hl('@comment.documentation', { fg = colors.base01 }) - nvim_set_hl('@comment.error', { fg = colors.diag_error, bg = colors.shade_error }) - nvim_set_hl('@comment.warning', { fg = colors.diag_warning, bg = colors.shade_warning }) - nvim_set_hl('@comment.todo', { fg = colors.purple, bg = colors.shade_purple }) - nvim_set_hl('@comment.note', { fg = colors.diag_hint, bg = colors.shade_hint }) - nvim_set_hl('@markup.strong', { fg = colors.orange, bold = true }) - nvim_set_hl('@markup.italic', { fg = colors.yellow, italic = true }) - nvim_set_hl('@markup.strikethrough', { fg = colors.base01 }) - nvim_set_hl('@markup.underline', { fg = colors.cyan, underline = true }) - nvim_set_hl('@markup.heading', { fg = colors.purple, bold = true }) - nvim_set_hl('@markup.quote', { fg = colors.base01 }) - nvim_set_hl('@markup.math', { fg = colors.purple }) - nvim_set_hl('@markup.environment', { fg = colors.base01 }) - nvim_set_hl('@markup.link', { fg = colors.orange, bold = true }) - nvim_set_hl('@markup.link.label', { fg = colors.cyan, underline = true }) - nvim_set_hl('@markup.link.url', { fg = colors.cyan, underline = true }) - nvim_set_hl('@markup.raw', { fg = colors.base01 }) - nvim_set_hl('@markup.raw.block', { fg = colors.base0 }) - nvim_set_hl('@markup.list', { fg = colors.purple }) - nvim_set_hl('@markup.list.checked', { fg = colors.git_added }) - nvim_set_hl('@markup.list.unchecked', { fg = colors.git_modified }) - nvim_set_hl('@diff.plus', { fg = colors.git_added }) - nvim_set_hl('@diff.minus', { fg = colors.git_removed }) - nvim_set_hl('@diff.delta', { fg = colors.git_modified }) - nvim_set_hl('@tag', { fg = colors.pink }) - nvim_set_hl('@tag.attribute', { fg = colors.green }) - nvim_set_hl('@tag.delimiter', { fg = colors.base0 }) - nvim_set_hl('@property.yaml', { fg = colors.cyan }) - nvim_set_hl('@property.json', { fg = colors.cyan }) - nvim_set_hl('@property.css', { fg = colors.cyan }) - nvim_set_hl('@property.scss', { fg = colors.cyan }) - end - - if config.plugins['nvim-lspconfig'] then - nvim_set_hl('@lsp.type.class', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.decorator', { fg = colors.green }) - nvim_set_hl('@lsp.type.enum', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.enumMember', { fg = colors.purple }) - nvim_set_hl('@lsp.type.interface', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.macro', { fg = colors.pink }) - nvim_set_hl('@lsp.type.namespace', { fg = colors.base0 }) - nvim_set_hl('@lsp.type.parameter', { fg = colors.orange, italic = true }) - nvim_set_hl('@lsp.type.property', { fg = colors.base0 }) - nvim_set_hl('@lsp.type.struct', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.type', { fg = colors.cyan }) - nvim_set_hl('@lsp.type.typeParameter', { fg = colors.cyan, italic = true }) - nvim_set_hl('@lsp.type.variable', { fg = colors.base0 }) - nvim_set_hl('@lsp.typemod.variable.defaultLibrary', { fg = colors.purple }) - nvim_set_hl('@lsp.typemod.variable.readonly', { fg = colors.purple }) - nvim_set_hl('@lsp.typemod.variable.global', { fg = colors.purple }) - nvim_set_hl('@lsp.typemod.keyword.documentation', { fg = colors.pink }) - nvim_set_hl('@lsp.typemod.class.documentation', { fg = colors.cyan }) - nvim_set_hl('@lsp.typemod.property.readonly', { fg = colors.purple }) - nvim_set_hl('DiagnosticError', { fg = colors.diag_error }) - nvim_set_hl('DiagnosticWarn', { fg = colors.diag_warning }) - nvim_set_hl('DiagnosticInfo', { fg = colors.diag_info }) - nvim_set_hl('DiagnosticHint', { fg = colors.diag_hint }) - nvim_set_hl('DiagnosticOk', { fg = colors.diag_ok }) - nvim_set_hl('DiagnosticVirtualTextError', { fg = colors.diag_error, bg = colors.shade_error }) - nvim_set_hl('DiagnosticVirtualTextWarn', { fg = colors.diag_warning, bg = colors.shade_warning }) - nvim_set_hl('DiagnosticVirtualTextInfo', { fg = colors.diag_info, bg = colors.shade_info }) - nvim_set_hl('DiagnosticVirtualTextHint', { fg = colors.diag_hint, bg = colors.shade_hint }) - nvim_set_hl('DiagnosticVirtualTextOk', { fg = colors.diag_ok, bg = colors.shade_ok }) - nvim_set_hl('DiagnosticUnderlineError', { fg = colors.diag_error, underline = true }) - nvim_set_hl('DiagnosticUnderlineWarn', { fg = colors.diag_warning, underline = true }) - nvim_set_hl('DiagnosticUnderlineInfo', { fg = colors.diag_info, underline = true }) - nvim_set_hl('DiagnosticUnderlineHint', { fg = colors.diag_hint, underline = true }) - nvim_set_hl('DiagnosticUnderlineOk', { fg = colors.diag_ok, underline = true }) - nvim_set_hl('LspReferenceText', { link = 'Visual' }) - nvim_set_hl('LspReferenceRead', { link = 'Visual' }) - nvim_set_hl('LspReferenceWrite', { link = 'Visual' }) - nvim_set_hl('LspInlayHint', { fg = colors.inlay_hint }) - end - - if config.plugins['nvim-navic'] then - nvim_set_hl('NavicText', { fg = colors.base0 }) - nvim_set_hl('NavicSeparator', { link = 'Statement' }) - nvim_set_hl('NavicIconsMethod', { link = 'Function' }) - nvim_set_hl('NavicIconsFunction', { link = 'Function' }) - nvim_set_hl('NavicIconsField', { link = 'Identifier' }) - nvim_set_hl('NavicIconsVariable', { link = 'Identifier' }) - nvim_set_hl('NavicIconsClass', { link = 'Type' }) - nvim_set_hl('NavicIconsInterface', { link = 'Type' }) - nvim_set_hl('NavicIconsModule', { link = 'Type' }) - nvim_set_hl('NavicIconsNamespace', { link = 'Type' }) - nvim_set_hl('NavicIconsProperty', { link = 'Identifier' }) - nvim_set_hl('NavicIconsUnit', { link = 'Number' }) - nvim_set_hl('NavicIconsEnum', { link = 'Type' }) - nvim_set_hl('NavicIconsKeyword', { link = 'Statement' }) - nvim_set_hl('NavicIconsSnippet', { link = 'Tag' }) - nvim_set_hl('NavicIconsColor', { fg = colors.orange }) - nvim_set_hl('NavicIconsFile', { link = 'Identifier' }) - nvim_set_hl('NavicIconsReference', { link = 'Underlined' }) - nvim_set_hl('NavicIconsFolder', { link = 'Directory' }) - nvim_set_hl('NavicIconsEnumMember', { link = 'Constant' }) - nvim_set_hl('NavicIconsConstant', { link = 'Constant' }) - nvim_set_hl('NavicIconsStruct', { link = 'Identifier' }) - nvim_set_hl('NavicIconsEvent', { link = 'Function' }) - nvim_set_hl('NavicIconsOperator', { link = 'Operator' }) - nvim_set_hl('NavicIconsTypeParameter', { link = 'Type' }) - end - - if config.plugins['nvim-cmp'] then - nvim_set_hl('CmpItemKindText', { link = 'String' }) - nvim_set_hl('CmpItemKindMethod', { link = 'Function' }) - nvim_set_hl('CmpItemKindFunction', { link = 'Function' }) - nvim_set_hl('CmpItemKindField', { link = 'Identifier' }) - nvim_set_hl('CmpItemKindVariable', { link = 'Identifier' }) - nvim_set_hl('CmpItemKindClass', { link = 'Type' }) - nvim_set_hl('CmpItemKindInterface', { link = 'Type' }) - nvim_set_hl('CmpItemKindModule', { link = 'Type' }) - nvim_set_hl('CmpItemKindProperty', { link = 'Identifier' }) - nvim_set_hl('CmpItemKindUnit', { link = 'Number' }) - nvim_set_hl('CmpItemKindEnum', { link = 'Type' }) - nvim_set_hl('CmpItemKindKeyword', { link = 'Statement' }) - nvim_set_hl('CmpItemKindSnippet', { link = 'Tag' }) - nvim_set_hl('CmpItemKindColor', { fg = colors.orange }) - nvim_set_hl('CmpItemKindFile', { link = 'Identifier' }) - nvim_set_hl('CmpItemKindReference', { link = 'Underlined' }) - nvim_set_hl('CmpItemKindFolder', { link = 'Directory' }) - nvim_set_hl('CmpItemKindEnumMember', { link = 'Constant' }) - nvim_set_hl('CmpItemKindConstant', { link = 'Constant' }) - nvim_set_hl('CmpItemKindStruct', { link = 'Identifier' }) - nvim_set_hl('CmpItemKindEvent', { link = 'Function' }) - nvim_set_hl('CmpItemKindOperator', { link = 'Operator' }) - nvim_set_hl('CmpItemKindTypeParameter', { link = 'Type' }) - end - - if config.plugins['indent-blankline.nvim'] then - nvim_set_hl('IblIndent', { fg = colors.shade_purple, nocombine = true }) - nvim_set_hl('IblScope', { fg = colors.purple, nocombine = true }) - end - - if config.plugins['neo-tree.nvim'] then - nvim_set_hl('NeoTreeNormal', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' }) - nvim_set_hl('NeoTreeDotFile', { fg = colors.base01 }) - nvim_set_hl('NeoTreeFileNameOpened', { link = 'Directory' }) - nvim_set_hl('NeoTreeFloatBorder', { link = 'WinSeparator' }) - nvim_set_hl('NeoTreeFloatTitle', { link = 'Title' }) - nvim_set_hl('NeoTreeGitAdded', { fg = colors.git_added }) - nvim_set_hl('NeoTreeGitConflict', { fg = colors.git_modified }) - nvim_set_hl('NeoTreeGitDeleted', { fg = colors.git_removed }) - nvim_set_hl('NeoTreeGitIgnored', { fg = colors.base01 }) - nvim_set_hl('NeoTreeGitModified', { fg = colors.git_modified }) - nvim_set_hl('NeoTreeGitUnstaged', { fg = colors.git_modified }) - nvim_set_hl('NeoTreeGitUntracked', { fg = colors.git_modified }) - nvim_set_hl('NeoTreeGitStaged', { fg = colors.git_added }) - end - - if config.plugins['nvim-tree.lua'] then - nvim_set_hl('NvimTreeSymlink', { link = 'Underlined' }) - nvim_set_hl('NvimTreeSymlinkIcon', { link = 'Directory' }) - nvim_set_hl('NvimTreeFolderName', { fg = colors.base0 }) - nvim_set_hl('NvimTreeRootFolder', { fg = colors.purple, bold = true }) - nvim_set_hl('NvimTreeFolderIcon', { link = 'Directory' }) - nvim_set_hl('NvimTreeEmptyFolderName', { fg = colors.base0 }) - nvim_set_hl('NvimTreeExecFile', { fg = colors.green }) - nvim_set_hl('NvimTreeOpenedFile', { fg = colors.purple, bold = true }) - nvim_set_hl('NvimTreeModifiedFile', { fg = colors.git_modified }) - nvim_set_hl('NvimTreeSpecialFile', { link = 'Special' }) - nvim_set_hl('NvimTreeIndentMarker', { fg = colors.shade_purple }) - nvim_set_hl('NvimTreeGitDirty', { fg = colors.git_modified }) - nvim_set_hl('NvimTreeGitStaged', { fg = colors.git_added }) - nvim_set_hl('NvimTreeGitMerge', { fg = colors.git_modified }) - nvim_set_hl('NvimTreeGitRenamed', { fg = colors.git_modified }) - nvim_set_hl('NvimTreeGitNew', { fg = colors.git_added }) - nvim_set_hl('NvimTreeGitDeleted', { fg = colors.git_removed }) - nvim_set_hl('NvimTreeNormal', { fg = colors.base0, bg = colors.base04 }, config) - nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' }) - nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base04 }) - nvim_set_hl('NvimTreeWinSeparator', { fg = colors.base04, bg = colors.base04 }) - end - - if config.plugins['which-key.nvim'] then - nvim_set_hl('WhichKey', { fg = colors.green }) - nvim_set_hl('WhichKeyDesc', { fg = colors.orange, italic = true }) - nvim_set_hl('WhichKeySeparator', { fg = colors.pink }) - nvim_set_hl('WhichKeyGroup', { fg = colors.purple }) - end - - if config.plugins['dashboard-nvim'] then - nvim_set_hl('DashboardHeader', { fg = colors.red }) - nvim_set_hl('DashboardFooter', { fg = colors.base01 }) - nvim_set_hl('DashboardDesc', { link = 'Directory' }) - nvim_set_hl('DashboardKey', { fg = colors.pink }) - nvim_set_hl('DashboardIcon', { link = 'Directory' }) - nvim_set_hl('DashboardShotCut', { fg = colors.base0 }) - end - - if config.plugins['gitsigns.nvim'] then - nvim_set_hl('GitSignsAdd', { fg = colors.git_added }) - nvim_set_hl('GitSignsChange', { fg = colors.git_modified }) - nvim_set_hl('GitSignsDelete', { fg = colors.git_removed }) - end - - if config.plugins['neogit'] then - nvim_set_hl('NeogitCursorLine', { link = 'CursorLine' }) - nvim_set_hl('NeogitBranch', { fg = colors.purple }) - nvim_set_hl('NeogitRemote', { fg = colors.cyan }) - nvim_set_hl('NeogitHunkHeader', { fg = colors.purple, bg = colors.shade_purple }) - nvim_set_hl('NeogitHunkHeaderHighlight', { link = 'Title' }) - nvim_set_hl('NeogitDiffContextHighlight', { fg = colors.base0, bg = colors.base03 }) - nvim_set_hl('NeogitDiffContext', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('NeogitDiffDeleteHighlight', { fg = colors.git_removed, bg = colors.shade_red }) - nvim_set_hl('NeogitDiffDelete', { fg = colors.git_removed }) - nvim_set_hl('NeogitDiffAddHighlight', { fg = colors.git_added, bg = colors.shade_green }) - nvim_set_hl('NeogitDiffAdd', { fg = colors.git_added }) - end - - if config.plugins['todo-comments.nvim'] then - nvim_set_hl('TodoFgTODO', { fg = colors.purple }) - nvim_set_hl('TodoFgWARN', { fg = colors.diag_warning }) - nvim_set_hl('TodoFgTEST', { fg = colors.diag_ok }) - nvim_set_hl('TodoFgPERF', { fg = colors.yellow }) - nvim_set_hl('TodoFgNOTE', { fg = colors.cyan }) - nvim_set_hl('TodoFgHACK', { fg = colors.pink }) - nvim_set_hl('TodoFgFIX', { fg = colors.diag_error }) - nvim_set_hl('TodoSignTODO', { fg = colors.purple }) - nvim_set_hl('TodoSignWARN', { fg = colors.diag_warning }) - nvim_set_hl('TodoSignTEST', { fg = colors.diag_ok }) - nvim_set_hl('TodoSignPERF', { fg = colors.yellow }) - nvim_set_hl('TodoSignNOTE', { fg = colors.cyan }) - nvim_set_hl('TodoSignHACK', { fg = colors.pink }) - nvim_set_hl('TodoSignFIX', { fg = colors.diag_error }) - nvim_set_hl('TodoBgTODO', { fg = colors.purple, reverse = true }) - nvim_set_hl('TodoBgWARN', { fg = colors.diag_warning, reverse = true }) - nvim_set_hl('TodoBgTEST', { fg = colors.diag_ok, reverse = true }) - nvim_set_hl('TodoBgPERF', { fg = colors.yellow, reverse = true }) - nvim_set_hl('TodoBgNOTE', { fg = colors.cyan, reverse = true }) - nvim_set_hl('TodoBgHACK', { fg = colors.pink, reverse = true }) - nvim_set_hl('TodoBgFIX', { fg = colors.diag_error, reverse = true }) - end - - if config.plugins['lazy.nvim'] then - nvim_set_hl('LazyH1', { fg = colors.purple, bg = colors.base04 }) - nvim_set_hl('LazyButton', { fg = colors.base0, bg = colors.base02 }) - nvim_set_hl('LazyButtonActive', { bg = colors.base02, reverse = true }) - nvim_set_hl('LazyReasonStart', { fg = colors.cyan }) - end - - if config.plugins['telescope.nvim'] then - nvim_set_hl('TelescopeSelection', { link = 'CursorLine' }) - nvim_set_hl('TelescopeSelectionCaret', { fg = colors.purple }) - nvim_set_hl('TelescopeMultiIcon', { fg = colors.purple }) - nvim_set_hl('TelescopeNormal', { fg = colors.base0, bg = colors.base04 }, config) - nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' }) - nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' }) - nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' }) - nvim_set_hl('TelescopeBorder', { fg = colors.purple, bg = colors.base04 }, config) - nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' }) - nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' }) - nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' }) - nvim_set_hl('TelescopeTitle', { fg = colors.purple, bg = colors.shade_purple }) - nvim_set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' }) - nvim_set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' }) - nvim_set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' }) - nvim_set_hl('TelescopeMatching', { fg = colors.purple, bg = colors.shade_purple }) - nvim_set_hl('TelescopePreviewMatch', { link = 'TelescopeMatching' }) - nvim_set_hl('TelescopePromptCounter', { link = 'NonText' }) - nvim_set_hl('TelescopePromptPrefix', { fg = colors.purple }) - end - - if config.plugins['noice.nvim'] then - nvim_set_hl('NoiceFormatProgressTodo', { fg = colors.diag_ok, bg = colors.shade_ok }) - nvim_set_hl('NoiceFormatProgressDone', { fg = colors.diag_ok, reverse = true }) - nvim_set_hl('NoiceLspProgressSpinner', { fg = colors.diag_ok }) - nvim_set_hl('NoiceLspProgressClient', { fg = colors.diag_ok }) - nvim_set_hl('NoiceLspProgressTitle', { link = 'Title' }) - end - - if config.plugins['hop.nvim'] then - nvim_set_hl('HopNextKey', { fg = colors.red }) - nvim_set_hl('HopNextKey1', { fg = colors.cyan }) - nvim_set_hl('HopUnmatched', { fg = colors.base01 }) - end - - if config.plugins['mini.statusline'] then - nvim_set_hl('MiniStatuslineModeNormal', { fg = colors.base03, bg = colors.purple }) - nvim_set_hl('MiniStatuslineModeInsert', { fg = colors.base03, bg = colors.green }) - nvim_set_hl('MiniStatuslineModeVisual', { fg = colors.yellow, bg = colors.base03 }) - nvim_set_hl('MiniStatuslineModeReplace', { fg = colors.red, bg = colors.base03 }) - nvim_set_hl('MiniStatuslineModeCommand', { fg = colors.orange, bg = colors.base03 }) - nvim_set_hl('MinistatusLineFileName', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('MiniStatuslineDevinfo', { fg = colors.base0, bg = colors.base02 }) - nvim_set_hl('MiniStatuslineFileinfo', { fg = colors.base0, bg = colors.base02 }) - nvim_set_hl('MiniStatuslineInactive', { fg = colors.base01, bg = colors.base03 }) - end - - if config.plugins['mini.tabline'] then - nvim_set_hl('MiniTablineCurrent', { fg = colors.base0, bg = colors.base03 }) - nvim_set_hl('MiniTablineVisible', { fg = colors.base0, bg = colors.base03 }) - nvim_set_hl('MiniTablineHidden', { fg = colors.base01, bg = colors.base03 }) - nvim_set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' }) - nvim_set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' }) - nvim_set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' }) - nvim_set_hl('MiniTablineFill', { fg = colors.base0, bg = colors.base04 }) - nvim_set_hl('MiniTablineTabpagesection', { fg = colors.base0, bg = colors.base04 }) - end - - if config.plugins['mini.starter'] then - nvim_set_hl('MiniStarterCurrent', { link = 'CursorLine' }) - nvim_set_hl('MiniStarterHeader', { fg = colors.red }) - nvim_set_hl('MiniStarterFooter', { fg = colors.base01 }) - nvim_set_hl('MiniStarterItem', { fg = colors.base0 }) - nvim_set_hl('MiniStarterItemBullet', { fg = colors.pink }) - nvim_set_hl('MiniStarterItemPrefix', { fg = colors.pink }) - nvim_set_hl('MiniStarterSection', { link = 'Title' }) - nvim_set_hl('MiniStarterQuery', { fg = colors.pink, bold = true }) - end - - if config.plugins['mini.cursorword'] then - nvim_set_hl('MiniCursorword', { link = 'Visual' }) - end - if config.on_highlights then - local color = require 'dracula.color' - local highlights = config.on_highlights(colors, color) - - for group_name, group_val in pairs(highlights) do - local hl = nvim_get_hl { name = group_name, link = true } - local val = vim.tbl_extend('force', hl, group_val) - vim.api.nvim_set_hl(0, group_name, val) - end - end -end - -return M diff --git a/lua/dracula/init.lua b/lua/dracula/init.lua index c478ed7..46e66c0 100644 --- a/lua/dracula/init.lua +++ b/lua/dracula/init.lua @@ -21,13 +21,9 @@ M.load = function(theme) end vim.g.colors_name = theme - local ok, highlights = pcall(require, 'dracula.highlights.' .. theme) - if not ok then - highlights = require 'dracula.highlights' - end + local highlights = require 'dracula.highlights' + local ok, colors = pcall(require, 'dracula.palette.' .. theme) - local colors = {} - ok, colors = pcall(require, 'dracula.palette.' .. theme) if not ok then colors = require 'dracula.palette' end diff --git a/shell.nix b/shell.nix deleted file mode 100644 index bcee9b5..0000000 --- a/shell.nix +++ /dev/null @@ -1,4 +0,0 @@ -{pkgs ? import {}}: -pkgs.mkShell { - nativeBuildInputs = with pkgs.buildPackages; [luajitPackages.vusted stylua]; -} \ No newline at end of file diff --git a/tests/load_spec.lua b/tests/load_spec.lua index 7343fe1..087598d 100644 --- a/tests/load_spec.lua +++ b/tests/load_spec.lua @@ -117,7 +117,6 @@ describe('dracula.load', function() local Underlined = nvim_get_hl 'Underlined' assert.True('#8BE9FD' == Underlined.fg) - local Ignore = nvim_get_hl 'Ignore' local Error = nvim_get_hl 'Error' assert.True('#FF5555' == Error.fg) diff --git a/tests/setup_spec.lua b/tests/setup_spec.lua index a66f49f..09e2df2 100644 --- a/tests/setup_spec.lua +++ b/tests/setup_spec.lua @@ -2,8 +2,14 @@ local nvim_get_hl = require('dracula.utils').nvim_get_hl describe('dracula.setup', function() setup(function() - require('dracula').setup { + ---@type dracula + local dracula = require('dracula') + + dracula.setup { transparent = true, + styles = { + comments = { italic = true }, + }, on_colors = function() return { mycolor = '#ffffff', @@ -28,4 +34,11 @@ describe('dracula.setup', function() local expected = { fg = '#FFFFFF' } assert.are.same(expected, user_group) end) + + test('styles', function() + local comment = nvim_get_hl 'Comment' + local colors = require 'dracula.palette' + local expected = { italic = true, fg = colors.base01, cterm = { italic = true } } + assert.are.same(expected, comment) + end) end)