Compare commits

..

53 commits

Author SHA1 Message Date
Max Del Canto 7fadc372bb
Merge pull request #40 from maxmx03/release-please--branches--master--components--release-please-action
Some checks failed
release-please / release-please (push) Has been cancelled
chore(master): release 1.7.1
2024-10-30 11:16:42 -03:00
github-actions[bot] e36e17e310
chore(master): release 1.7.1 2024-10-30 14:16:17 +00:00
Max Miliano b7d73e212c fix: css highlights 2024-10-30 11:15:52 -03:00
Max Miliano 0e7156e20c fix: html tags and attributes 2024-10-30 10:23:57 -03:00
Max Del Canto 689f696148
Merge pull request #39 from maxmx03/release-please--branches--master--components--release-please-action
Some checks are pending
release-please / release-please (push) Waiting to run
chore(master): release 1.7.0
2024-10-29 17:00:36 -03:00
github-actions[bot] b4b57ede2b
chore(master): release 1.7.0 2024-10-29 19:59:54 +00:00
Max Miliano dd6805825c feat: dracula-soft termcolors 2024-10-29 16:59:30 -03:00
Max Del Canto 72ab195607
Merge pull request #38 from maxmx03/release-please--branches--master--components--release-please-action
chore(master): release 1.6.0
2024-10-29 16:53:16 -03:00
github-actions[bot] b1d3076b90
chore(master): release 1.6.0 2024-10-29 19:50:09 +00:00
Max Del Canto eb0c1f9118
Merge pull request #37 from maxmx03/dev
performance improvements, term colors
2024-10-29 16:49:48 -03:00
Max Miliano 1eff3e35b4 BREAKING CHANGE: improved performance, styles config use hl group. 2024-10-29 16:41:53 -03:00
Max Miliano be281db5ba feat: load_spec removed 2024-10-29 16:39:51 -03:00
Max Miliano 350f6298c0 feat: queries removed 2024-10-29 16:39:36 -03:00
Max Del Canto 4a06c30935
Update README.md
Some checks failed
release-please / release-please (push) Has been cancelled
2024-10-04 17:13:10 -03:00
Max Del Canto 209dfab4a1
Update README.md 2024-10-04 17:12:35 -03:00
Max Del Canto f8aceb3993
Update README.md 2024-10-04 16:57:12 -03:00
Max Del Canto 8323e727f8
Merge pull request #36 from maxmx03/release-please--branches--master--components--release-please-action
Some checks failed
release-please / release-please (push) Has been cancelled
chore(master): release 1.5.1
2024-08-23 16:21:40 -03:00
github-actions[bot] 7e1718333d
chore(master): release 1.5.1 2024-08-23 19:21:28 +00:00
Max Miliano 1804d3e6de fix: rainbow delimiter blue color 2024-08-23 16:21:09 -03:00
Max Miliano 0b0ff4faa9 fix: rainbow-delimiter violet color 2024-08-23 16:19:55 -03:00
Max Miliano b5ec760f0c refactor: addded raindelimiter annotations 2024-08-23 05:35:38 -03:00
Max Miliano c562338df8 refactor: removed test from github worlflows 2024-08-23 05:35:03 -03:00
Max Del Canto 47722af185
Merge pull request #35 from maxmx03/release-please--branches--master--components--release-please-action
chore(master): release 1.5.0
2024-08-23 05:14:22 -03:00
github-actions[bot] 1e0e1dc495 chore(doc): auto generate docs 2024-08-23 08:13:03 +00:00
github-actions[bot] 43aa607778
chore(master): release 1.5.0 2024-08-23 08:12:59 +00:00
Max Del Canto bf07aafd83
Merge pull request #34 from jonasws/master
feat(plugin): Add support for `rainbow-delimiters`
2024-08-23 05:12:35 -03:00
Jonas Strømsodd ef689e56aa
feat(plugin): Add support for rainbow-delimiters 2024-08-23 09:48:47 +02:00
github-actions[bot] f99f00b2f0 chore(doc): auto generate docs
Some checks failed
release-please / release-please (push) Has been cancelled
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
Test / Run Test (macos-latest) (push) Has been cancelled
Test / Run Test (ubuntu-latest) (push) Has been cancelled
2024-08-04 18:08:04 +00:00
Max Miliano 378f503dab docs: readme.md new plugin, bufferline 2024-08-04 15:07:35 -03:00
Max Miliano 973fc31d26 refactor: whichkey annotation
Some checks failed
Test / Run Test (macos-latest) (push) Has been cancelled
Test / Run Test (ubuntu-latest) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
2024-08-03 09:42:00 -03:00
Max Del Canto 48ebad2aaf
Merge pull request #33 from maxmx03/release-please--branches--master--components--release-please-action
Some checks are pending
release-please / release-please (push) Waiting to run
Test / lint (push) Waiting to run
Test / pandoc to vimdoc (push) Waiting to run
Test / Run Test (macos-latest) (push) Waiting to run
Test / Run Test (ubuntu-latest) (push) Waiting to run
chore(master): release 1.4.0
2024-08-02 22:37:24 -03:00
Max Miliano e070f285d3 refactor: format code 2024-08-02 22:35:33 -03:00
github-actions[bot] c6d37f8049
chore(master): release 1.4.0 2024-08-03 01:35:02 +00:00
Max Miliano bb7493845d feat: bufferline.nvim 2024-08-02 22:34:39 -03:00
Max Del Canto b09ee7154b
Merge pull request #32 from maxmx03/feature/styles
Feature/styles
2024-08-02 22:16:20 -03:00
Max Miliano e995643b3b refactor: code format 2024-08-02 22:15:22 -03:00
github-actions[bot] 8ea32b764e chore(doc): auto generate docs 2024-08-03 01:08:33 +00:00
Max Miliano 7bdaaffec9 feat: config styles
refactor: dracula-soft removed
2024-08-02 22:07:57 -03:00
github-actions[bot] fc385dc7ff chore(doc): auto generate docs 2024-07-10 21:08:57 +00:00
Max Del Canto edf520f017
Merge pull request #31 from alexdovzhanyn/master
Allow nvim-tree to have a transparent background pane
2024-07-10 18:08:24 -03:00
Alex Dovzhanyn 93bf402619
allow nvim tree to have a transparent bg 2024-07-10 14:15:06 -04:00
github-actions[bot] 194f10d031 chore(doc): auto generate docs 2024-06-15 00:50:05 +00:00
Max Del Canto bda570f427
Merge pull request #24 from maxmx03/release-please--branches--master--components--release-please-action
chore(master): release 1.3.1
2024-06-14 21:49:29 -03:00
github-actions[bot] 5488fb92ba
chore(master): release 1.3.1 2024-04-20 17:02:50 +00:00
github-actions[bot] d2b0edc7fd chore(doc): auto generate docs 2024-04-20 17:02:46 +00:00
Max Miliano ad0a3e4cb6 refactor: changed CurSeach, Search from cyan to red 2024-04-20 14:02:23 -03:00
github-actions[bot] 611489ed7c chore(doc): auto generate docs 2024-03-02 13:19:15 +00:00
max miliano f6552f5342 fix: css psudo_class_selector 2024-03-02 10:18:49 -03:00
Max Del Canto f9e91a2203
Merge pull request #23 from maxmx03/release-please--branches--master--components--release-please-action
chore(master): release 1.3.0
2024-02-26 09:49:04 -03:00
max miliano 1db679774f fix on_highlights type annotation 2024-02-26 09:35:48 -03:00
github-actions[bot] 12277f995a chore(doc): auto generate docs 2024-02-26 12:31:37 +00:00
github-actions[bot] 6ee194009d
chore(master): release 1.3.0 2024-02-26 12:31:34 +00:00
max miliano 31aef69aba feat: bufferline.nvim highlight groups removed 2024-02-26 09:31:14 -03:00
27 changed files with 1685 additions and 4224 deletions

View file

@ -1,61 +0,0 @@
name: Test
on: [push]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Stylua
uses: JohnnyMorganz/stylua-action@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
args: --check .
docs:
runs-on: ubuntu-latest
name: pandoc to vimdoc
steps:
- uses: actions/checkout@v3
- name: panvimdoc
uses: kdheepak/panvimdoc@main
with:
vimdoc: dracula
treesitter: true
version: "NVIM v0.9.4"
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'chore(doc): auto generate docs'
commit_user_name: "github-actions[bot]"
commit_user_email: "github-actions[bot]@users.noreply.github.com"
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
test:
name: Run Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- uses: rhysd/action-setup-vim@v1
with:
neovim: true
- name: luajit
uses: leafo/gh-actions-lua@v10
with:
luaVersion: "luajit-2.1.0-beta3"
- name: luarocks
uses: leafo/gh-actions-luarocks@v4
- name: run test
shell: bash
run: |
luarocks install luacheck
luarocks install vusted
vusted ./tests

View file

@ -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"
]
}

View file

@ -1,5 +1,65 @@
# Changelog
## [1.7.1](https://github.com/maxmx03/dracula.nvim/compare/v1.7.0...v1.7.1) (2024-10-30)
### Bug Fixes
* css highlights ([b7d73e2](https://github.com/maxmx03/dracula.nvim/commit/b7d73e212c0d384808f78e2bd2477f854d338171))
* html tags and attributes ([0e7156e](https://github.com/maxmx03/dracula.nvim/commit/0e7156e20c0af9cbc9aa751132b0bd9578fb1fb0))
## [1.7.0](https://github.com/maxmx03/dracula.nvim/compare/v1.6.0...v1.7.0) (2024-10-29)
### Features
* dracula-soft termcolors ([dd68058](https://github.com/maxmx03/dracula.nvim/commit/dd6805825c359d44a8faa036954eeb792faf9b39))
## [1.6.0](https://github.com/maxmx03/dracula.nvim/compare/v1.5.1...v1.6.0) (2024-10-29)
### Features
* load_spec removed ([be281db](https://github.com/maxmx03/dracula.nvim/commit/be281db5bafbc707eec472207541786e1af3af56))
* queries removed ([350f629](https://github.com/maxmx03/dracula.nvim/commit/350f6298c038e92f31d6f89a9bb08aab2941146f))
## [1.5.1](https://github.com/maxmx03/dracula.nvim/compare/v1.5.0...v1.5.1) (2024-08-23)
### Bug Fixes
* rainbow delimiter blue color ([1804d3e](https://github.com/maxmx03/dracula.nvim/commit/1804d3e6de135f88e57ea328376d71449add3496))
* rainbow-delimiter violet color ([0b0ff4f](https://github.com/maxmx03/dracula.nvim/commit/0b0ff4faa9ec19350226b85cde2ca8355d9375ea))
## [1.5.0](https://github.com/maxmx03/dracula.nvim/compare/v1.4.0...v1.5.0) (2024-08-23)
### Features
* **plugin:** Add support for `rainbow-delimiters` ([ef689e5](https://github.com/maxmx03/dracula.nvim/commit/ef689e56aa5ef3f9711cc38180bc0c2c3c9eabf8))
## [1.4.0](https://github.com/maxmx03/dracula.nvim/compare/v1.3.1...v1.4.0) (2024-08-03)
### Features
* bufferline.nvim ([bb74938](https://github.com/maxmx03/dracula.nvim/commit/bb7493845daa9eedb1a86022f1119319c0af2fad))
* config styles ([7bdaaff](https://github.com/maxmx03/dracula.nvim/commit/7bdaaffec92eabe57951988d96a403347db45369))
## [1.3.1](https://github.com/maxmx03/dracula.nvim/compare/v1.3.0...v1.3.1) (2024-04-20)
### Bug Fixes
* css psudo_class_selector ([f6552f5](https://github.com/maxmx03/dracula.nvim/commit/f6552f53428b58c082eada492d4de6efba8d1f18))
## [1.3.0](https://github.com/maxmx03/dracula.nvim/compare/v1.2.0...v1.3.0) (2024-02-26)
### Features
* bufferline.nvim highlight groups removed ([31aef69](https://github.com/maxmx03/dracula.nvim/commit/31aef69aba109e340eed05cfa0a4d74a81db9d54))
## [1.2.0](https://github.com/maxmx03/dracula.nvim/compare/v1.1.1...v1.2.0) (2024-02-26)

View file

@ -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,12 +44,24 @@ return {
local dracula = require "dracula"
dracula.setup({
styles = {
Type = {},
Function = {},
Parameter = {},
Property = {},
Comment = {},
String = {},
Keyword = {},
Identifier = {},
Constant = {},
},
transparent = false,
on_colors = function (colors, color)
---@type dracula.palette
return {
-- override or create new colors
mycolor = "#ffffff",
-- mycolor = 0xffffff,
}
end,
on_highlights = function (colors, color)
@ -69,11 +73,11 @@ return {
end,
plugins = {
["nvim-treesitter"] = true,
["rainbow-delimiters"] = true,
["nvim-lspconfig"] = true,
["nvim-navic"] = true,
["nvim-cmp"] = true,
["indent-blankline.nvim"] = true,
["bufferline.nvim"] = true,
["neo-tree.nvim"] = true,
["nvim-tree.lua"] = true,
["which-key.nvim"] = true,
@ -89,6 +93,7 @@ return {
["mini.tabline"] = true,
["mini.starter"] = true,
["mini.cursorword"] = true,
['bufferline.nvim'] = true,
}
})
vim.cmd.colorscheme 'dracula'
@ -111,11 +116,8 @@ return {
### Vim
```vim
Plug 'maxmx03/dracula.nvim', { 'branch': 'vim' }
colorscheme dracula
colorscheme dracula-soft
```
- [vim-docs](https://github.com/maxmx03/dracula.nvim/tree/vim)
- [vim9-docs](https://github.com/maxmx03/dracula.nvim/tree/vim9)
## Api

View file

@ -1,3 +0,0 @@
; extends
(start_tag (tag_name) @tag (#set! "priority" 127))
(end_tag (tag_name) @tag (#set! "priority" 127))

View file

@ -1,7 +1,8 @@
; extends
((pseudo_class_selector) @type (#set! "priority" 125))
((class_selector) @variable.parameter (#set! "priority" 125))
((plain_value) @constant (#set! "priority" 125))
((id_selector) @variable.parameter (#set! "priority" 125))
(tag_name) @tag
(unit) @keyword
(keyframes_name) @variable.parameter
(rule_set
(selectors
(id_selector
(id_name) @function)))

View file

@ -1,5 +0,0 @@
; extends
(jsx_self_closing_element (identifier) @tag (#set! "priority" 127))
(jsx_opening_element (identifier) @tag (#set! "priority" 127))
(jsx_closing_element (identifier) @tag (#set! "priority" 127))

View file

@ -1,3 +0,0 @@
; extends
(function_call (identifier) @function (#set! "priority" 130))

View file

@ -1,2 +0,0 @@
; extends
((block_quote) @comment (#set! "priority" 125))

View file

@ -1,2 +0,0 @@
; extends
((strong_emphasis) @markup.strong (#set! "priority" 125))

View file

@ -1,2 +0,0 @@
; extends
((nesting_selector) @keyword (#set! "priority" 125))

View file

@ -1,5 +0,0 @@
; extends
(jsx_self_closing_element (identifier) @tag (#set! "priority" 127))
(jsx_opening_element (identifier) @tag (#set! "priority" 127))
(jsx_closing_element (identifier) @tag (#set! "priority" 127))

View file

@ -2,4 +2,603 @@
-- Repo: maxmx03/dracula.nvim
-- Maintainer: Max Del Canto <github.com/maxmx03>
-- License: MIT License
require('dracula').load 'dracula-soft'
if vim.g.colors_name then
vim.cmd 'hi clear'
end
if vim.fn.exists 'syntax_on' then
vim.cmd 'syntax reset'
end
vim.g.colors_name = 'dracula'
local colors = require 'dracula.palette.dracula-soft'
local dracula = require 'dracula'
---@type dracula.config
local config = dracula.config
local api = vim.api
if config.on_colors then
local color = require 'dracula.color'
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
end
local term = {
'base04',
'red',
'green',
'yellow',
'pink',
'purple',
'cyan',
'base01',
'base01',
'orange',
'green',
'yellow',
'cyan',
'pink',
'green',
'base01',
}
for index, key in ipairs(term) do
vim.g['terminal_color_' .. index - 1] = colors[key]
end
local hl = vim.api.nvim_set_hl
local none = 'NONE'
if config.transparent then
hl(0, 'WinSeparator', { fg = colors.base01, bg = none })
hl(0, 'IncSearch', { fg = colors.red, bg = none })
hl(0, 'LineNr', { fg = colors.base01, bg = none })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = none })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = none })
hl(0, 'Normal', { fg = colors.base0, bg = none })
hl(0, 'Pmenu', { fg = colors.base0, bg = none })
hl(0, 'TelescopeNormal', { fg = colors.base0, bg = none })
hl(0, 'TelescopeBorder', { fg = colors.purple, bg = none })
hl(0, 'WhichKeyNormal', { fg = colors.green, bg = none })
hl(0, 'NvimTreeNormal', { fg = colors.base0, bg = none })
hl(0, 'NeoTreeNormal', { fg = colors.base0, bg = none })
else
hl(0, 'WinSeparator', { fg = colors.base01, bg = colors.base04 })
hl(0, 'IncSearch', { fg = colors.red, bg = colors.shade_red, bold = true })
hl(0, 'LineNr', { fg = colors.base01, bg = colors.base03 })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = colors.base03 })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = colors.base03 })
hl(0, 'Normal', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Pmenu', { fg = colors.base0, bg = colors.base04 })
hl(0, 'TelescopeNormal', { fg = colors.base0, bg = colors.base04 })
hl(0, 'WhichKeyNormal', { fg = colors.green, bg = colors.base04 })
hl(0, 'TelescopeBorder', { fg = colors.purple, bg = colors.base04 })
hl(0, 'NvimTreeNormal', { fg = colors.base0, bg = colors.base04 })
hl(0, 'NeoTreeNormal', { fg = colors.base0, bg = colors.base04 })
end
-- EDITOR :h highlight-groups
hl(0, 'ColorColumn', { bg = colors.base04 })
hl(0, 'Conceal', { fg = colors.base02 })
hl(0, 'CurSearch', { fg = colors.red, bg = colors.shade_red })
hl(0, 'Cursor', { fg = colors.base03, bg = colors.purple })
hl(0, 'lCursor', { link = 'Cursor' })
hl(0, 'CursorIM', { link = 'Cursor' })
hl(0, 'CursorColumn', { link = 'ColorColumn' })
hl(0, 'CursorLine', { bg = colors.base02 })
hl(0, 'Directory', { fg = colors.purple })
hl(0, 'DiffAdd', { fg = colors.git_added })
hl(0, 'DiffChange', { fg = colors.git_modified })
hl(0, 'DiffDelete', { fg = colors.git_removed, reverse = true })
hl(0, 'DiffText', { fg = colors.cyan, reverse = true })
hl(0, 'EndOfBuffer', { fg = colors.base03 })
hl(0, 'TermCursor', { link = 'Cursor' })
hl(0, 'TermCursorNC', { link = 'Cursor' })
hl(0, 'ErrorMsg', { fg = colors.diag_error })
hl(0, 'Folded', { fg = colors.base0, bg = colors.base02 })
hl(0, 'FoldColumn', { fg = colors.base0, bg = colors.base04 })
hl(0, 'SignColumn', { link = 'Normal' })
hl(0, 'Substitute', { link = 'IncSearch' })
hl(0, 'LineNrAbove', { link = 'LineNr' })
hl(0, 'LineNrBelow', { link = 'LineNr' })
hl(0, 'CursorLineFold', { link = 'FoldColumn' })
hl(0, 'CursorLineSign', { link = 'SignColumn' })
hl(0, 'MatchParen', { fg = colors.cyan })
hl(0, 'ModeMsg', { fg = colors.purple })
hl(0, 'MsgArea', { link = 'Normal' })
hl(0, 'MsgSeparator', { link = 'Normal' })
hl(0, 'MoreMsg', { link = 'ModeMsg' })
hl(0, 'NonText', { fg = colors.base01 })
hl(0, 'NormalFloat', { fg = colors.base0, bg = colors.base04 })
hl(0, 'FloatBorder', { link = 'WinSeparator' })
hl(0, 'FloatTitle', { fg = colors.purple, bold = true })
hl(0, 'NormalNC', { link = 'Normal' })
hl(0, 'PmenuSel', { fg = colors.cyan, reverse = true })
hl(0, 'PmenuKind', { link = 'Pmenu' })
hl(0, 'PmenuKindSel', { link = 'PmenuSel' })
hl(0, 'PmenuExtra', { link = 'Pmenu' })
hl(0, 'PmenuExtraSel', { link = 'PmenuSel' })
hl(0, 'PmenuSbar', { bg = colors.base04 })
hl(0, 'PmenuThumb', { bg = colors.cyan })
hl(0, 'Question', { fg = colors.diag_info })
hl(0, 'QuickFixLine', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Search', { bg = colors.base02 })
hl(0, 'SpecialKey', { link = 'NonText' })
hl(0, 'SpellBad', { underline = true, strikethrough = true })
hl(0, 'SpellCap', { fg = colors.diag_hint })
hl(0, 'SpellLocal', { link = 'SpellCap' })
hl(0, 'SpellRare', { fg = colors.diag_warning })
hl(0, 'StatusLine', { fg = colors.base0, bg = colors.base04 })
hl(0, 'StatusLineNC', { fg = colors.base01, bg = colors.base04 })
hl(0, 'TabLine', { fg = colors.base01, bg = colors.base04 })
hl(0, 'TabLineFill', { fg = colors.base0, bg = colors.base04 })
hl(0, 'TabLineSel', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Title', { fg = colors.purple, bold = true })
hl(0, 'Visual', { bg = colors.base02 })
hl(0, 'VisualNOS', { link = 'Visual' })
hl(0, 'warningMsg', { fg = colors.diag_warning })
hl(0, 'Whitespace', { fg = colors.base01 })
hl(0, 'WildMenu', { fg = colors.base02 })
hl(0, 'WinBar', { link = 'Pmenu' })
hl(0, 'WinBarNC', { link = 'WinBar' })
-- SYNTAX :h group-name
hl(0, 'Comment', { fg = colors.base01 })
hl(0, 'Constant', { fg = colors.purple })
hl(0, 'String', { fg = colors.yellow })
hl(0, 'Character', { link = 'String' })
hl(0, 'Number', { link = 'Constant' })
hl(0, 'Boolean', { link = 'Constant' })
hl(0, 'Float', { link = 'Constant' })
hl(0, 'Identifier', { fg = colors.base0 })
hl(0, 'Parameter', { fg = colors.orange })
hl(0, 'Property', { fg = colors.base0 })
hl(0, 'Function', { fg = colors.green })
hl(0, 'Statement', { fg = colors.pink })
hl(0, 'Conditional', { link = 'Statement' })
hl(0, 'Repeat', { link = 'Statement' })
hl(0, 'Label', { link = 'Statement' })
hl(0, 'Operator', { link = 'Statement' })
hl(0, 'Keyword', { link = 'Statement' })
hl(0, 'Exception', { link = 'Statement' })
hl(0, 'PreProc', { link = 'Statement' })
hl(0, 'Include', { link = 'Statement' })
hl(0, 'Define', { link = 'Statement' })
hl(0, 'Macro', { link = 'Statement' })
hl(0, 'PreCondit', { fg = colors.pink })
hl(0, 'Type', { fg = colors.cyan })
hl(0, 'StorageClass', { link = 'Statement' })
hl(0, 'Structure', { link = 'Type' })
hl(0, 'Typedef', { link = 'Statement' })
hl(0, 'Special', { fg = colors.red })
hl(0, 'SpecialChar', { fg = colors.purple })
hl(0, 'Tag', { fg = colors.pink })
hl(0, 'TagAttribute', { fg = colors.green })
hl(0, 'TagDelimiter', { fg = colors.base0 })
hl(0, 'Delimiter', { fg = colors.base0 })
hl(0, 'SpecialComment', { fg = colors.pink })
hl(0, 'Debug', { fg = colors.pink })
hl(0, 'Underlined', { fg = colors.cyan, underline = true })
hl(0, 'Ignore', {})
hl(0, 'Error', { fg = colors.diag_error, bold = true })
hl(0, 'Todo', { fg = colors.purple, bold = true })
if config.plugins['nvim-treesitter'] then
hl(0, '@variable', { link = 'Identifier' })
hl(0, '@variable.builtin', { link = 'Constant' })
hl(0, '@variable.parameter', { link = 'Parameter' })
hl(0, '@variable.member', { link = 'Property' })
hl(0, '@property', { link = 'Property' })
hl(0, '@property.json', { fg = colors.cyan })
hl(0, '@property.yaml', { fg = colors.cyan })
hl(0, '@property.css', { fg = colors.cyan })
hl(0, '@property.scss', { fg = colors.cyan })
hl(0, '@constant', { link = 'Constant' })
hl(0, '@constant.builtin', { link = 'Constant' })
hl(0, '@constant.macro', { link = 'Constant' })
hl(0, '@constant.html', { link = 'Tag' })
hl(0, '@module', { link = 'Type' })
hl(0, '@module.builtin', { link = 'Constant' })
hl(0, '@label', { link = 'Statement' })
hl(0, '@string', { link = 'String' })
hl(0, '@string.documentation', { link = 'Statement' })
hl(0, '@string.regexp', { link = 'Special' })
hl(0, '@string.escape', { link = 'Statement' })
hl(0, '@string.special', { link = 'Special' })
hl(0, '@string.special.symbol', { link = 'Identifier' })
hl(0, '@string.special.url', { link = 'Underlined' })
hl(0, '@character', { link = 'Constant' })
hl(0, '@character.special', { link = 'Constant' })
hl(0, '@character.special.scss', { link = 'Keyword' })
hl(0, '@character.printf', { link = 'Keyword' })
hl(0, '@type', { link = 'Type' })
hl(0, '@type.css', { fg = colors.green })
hl(0, '@type.scss', { fg = colors.green })
hl(0, '@type.builtin', { link = 'Keyword' })
hl(0, '@type.definition', { link = 'Type' })
hl(0, '@type.qualifier', { link = 'Type' })
hl(0, '@attribute', { link = 'Keyword' })
hl(0, '@function', { link = 'Function' })
hl(0, '@function.builtin', { link = 'Function' })
hl(0, '@function.call', { link = 'Function' })
hl(0, '@function.macro', { link = 'Function' })
hl(0, '@function.method', { link = 'Function' })
hl(0, '@function.method.call', { link = 'Function' })
hl(0, '@constructor', { link = 'Type' })
hl(0, '@constructor.lua', { link = 'Delimiter' })
hl(0, '@operator', { link = 'Operator' })
hl(0, '@keyword', { link = 'Keyword' })
hl(0, '@keyword.coroutine', { link = 'Statement' })
hl(0, '@keyword.function', { link = 'Keyword' })
hl(0, '@keyword.type', { link = 'Keyword' })
hl(0, '@keyword.operator', { link = 'Statement' })
hl(0, '@keyword.import', { link = 'Include' })
hl(0, '@keyword.repeat', { link = 'Statement' })
hl(0, '@keyword.return', { link = 'Statement' })
hl(0, '@keyword.debug', { link = 'Keyword' })
hl(0, '@keyword.exception', { link = 'Statement' })
hl(0, '@keyword.conditional', { link = 'Statement' })
hl(0, '@keyword.conditional.ternary', { link = 'Statement' })
hl(0, '@keyword.directive', { link = 'Statement' })
hl(0, '@keyword.directive.define', { link = 'Statement' })
hl(0, '@punctuation.delimiter', { link = 'Delimiter' })
hl(0, '@punctuation.bracket', { link = 'Delimiter' })
hl(0, '@punctuation.special', { link = 'Keyword' })
hl(0, '@comment', { link = 'Comment' })
hl(0, '@comment.documentation', { link = 'Comment' })
hl(0, '@comment.error', { fg = colors.diag_error, bg = colors.shade_error })
hl(0, '@comment.warning', { fg = colors.diag_warning, bg = colors.shade_warning })
hl(0, '@comment.todo', { fg = colors.purple, bg = colors.shade_purple })
hl(0, '@comment.note', { fg = colors.diag_hint, bg = colors.shade_hint })
hl(0, '@markup.strong', { fg = colors.orange, bold = true })
hl(0, '@markup.italic', { fg = colors.yellow, italic = true })
hl(0, '@markup.strikethrough', { fg = colors.base01 })
hl(0, '@markup.underline', { fg = colors.cyan, underline = true })
hl(0, '@markup.heading.1', { fg = colors.purple, bold = true })
hl(0, '@markup.heading.2', { fg = colors.red, bold = true })
hl(0, '@markup.heading.3', { fg = colors.orange, bold = true })
hl(0, '@markup.heading.4', { fg = colors.yellow, bold = true })
hl(0, '@markup.heading.5', { fg = colors.cyan, bold = true })
hl(0, '@markup.heading.6', { fg = colors.green, bold = true })
hl(0, '@markup.quote', { fg = colors.base01 })
hl(0, '@markup.math', { fg = colors.purple })
hl(0, '@markup.environment', { fg = colors.base01 })
hl(0, '@markup.link', { fg = colors.orange, bold = true })
hl(0, '@markup.link.label', { fg = colors.cyan, underline = true })
hl(0, '@markup.link.url', { fg = colors.cyan, underline = true })
hl(0, '@markup.raw', { fg = colors.base01 })
hl(0, '@markup.raw.block', { fg = colors.base0 })
hl(0, '@markup.list', { fg = colors.purple })
hl(0, '@markup.list.checked', { fg = colors.git_added })
hl(0, '@markup.list.unchecked', { fg = colors.git_modified })
hl(0, '@diff.plus', { fg = colors.git_added })
hl(0, '@diff.minus', { fg = colors.git_removed })
hl(0, '@diff.delta', { fg = colors.git_modified })
hl(0, '@tag', { link = 'Tag' })
hl(0, '@tag.builtin', { link = 'Tag' })
hl(0, '@tag.attribute', { link = 'TagAttribute' })
hl(0, '@tag.delimiter', { link = 'TagDelimiter' })
end
if config.plugins['rainbow-delimiters'] then
hl(0, 'RainbowDelimiterRed', { fg = colors.red })
hl(0, 'RainbowDelimiteYellow', { fg = colors.yellow })
hl(0, 'RainbowDelimiterBlue', { fg = colors.pink })
hl(0, 'RainbowDelimiterOrange', { fg = colors.orange })
hl(0, 'RainbowDelimiterGreen', { fg = colors.green })
hl(0, 'RainbowDelimiterViolet', { fg = colors.purple })
hl(0, 'RainbowDelimiterCyan', { fg = colors.cyan })
end
if config.plugins['nvim-lspconfig'] then
hl(0, '@lsp.type.class', { link = 'Type' })
hl(0, '@lsp.type.comment', {})
hl(0, '@lsp.type.decorator', { link = 'Function' })
hl(0, '@lsp.type.enum', { link = 'Type' })
hl(0, '@lsp.type.enumMember', { link = 'Constant' })
hl(0, '@lsp.type.event', { link = 'Function' })
hl(0, '@lsp.type.function', { link = 'Function' })
hl(0, '@lsp.type.interface', { link = 'Type' })
hl(0, '@lsp.type.keyword', { link = 'Keyword' })
hl(0, '@lsp.type.macro', { link = 'Constant' })
hl(0, '@lsp.type.method', { link = 'Function' })
-- hl(0,'@lsp.type.modifier')
hl(0, '@lsp.type.namespace', { link = 'Type' })
hl(0, '@lsp.type.number', { link = 'Number' })
hl(0, '@lsp.type.operator', { link = 'Operator' })
hl(0, '@lsp.type.parameter', { link = 'Parameter' })
hl(0, '@lsp.type.property', { link = 'Property' })
hl(0, '@lsp.type.regexp', { link = 'Special' })
hl(0, '@lsp.type.string', { link = 'String' })
hl(0, '@lsp.type.struct', { link = 'Type' })
hl(0, '@lsp.type.type', { link = 'Type' })
hl(0, '@lsp.type.typeParameter', { link = 'Type' })
hl(0, '@lsp.type.variable', { link = 'Identifier' })
hl(0, '@lsp.mod.readonly', { link = 'Constant' })
hl(0, '@lsp.mod.global', { link = 'Constant' })
hl(0, 'DiagnosticError', { fg = colors.diag_error })
hl(0, 'DiagnosticWarn', { fg = colors.diag_warning })
hl(0, 'DiagnosticInfo', { fg = colors.diag_info })
hl(0, 'DiagnosticHint', { fg = colors.diag_hint })
hl(0, 'DiagnosticOk', { fg = colors.diag_ok })
hl(0, 'DiagnosticVirtualTextError', { fg = colors.diag_error, bg = colors.shade_error })
hl(0, 'DiagnosticVirtualTextWarn', { fg = colors.diag_warning, bg = colors.shade_warning })
hl(0, 'DiagnosticVirtualTextInfo', { fg = colors.diag_info, bg = colors.shade_info })
hl(0, 'DiagnosticVirtualTextHint', { fg = colors.diag_hint, bg = colors.shade_hint })
hl(0, 'DiagnosticVirtualTextOk', { fg = colors.diag_ok, bg = colors.shade_ok })
hl(0, 'DiagnosticUnderlineError', { fg = colors.diag_error, underline = true })
hl(0, 'DiagnosticUnderlineWarn', { fg = colors.diag_warning, underline = true })
hl(0, 'DiagnosticUnderlineInfo', { fg = colors.diag_info, underline = true })
hl(0, 'DiagnosticUnderlineHint', { fg = colors.diag_hint, underline = true })
hl(0, 'DiagnosticUnderlineOk', { fg = colors.diag_ok, underline = true })
hl(0, 'LspReferenceText', { link = 'Visual' })
hl(0, 'LspReferenceRead', { link = 'Visual' })
hl(0, 'LspReferenceWrite', { link = 'Visual' })
hl(0, 'LspInlayHint', { fg = colors.inlay_hint })
end
if config.plugins['nvim-navic'] then
hl(0, 'NavicText', { fg = colors.base0 })
hl(0, 'NavicSeparator', { link = 'Statement' })
hl(0, 'NavicIconsMethod', { link = 'Function' })
hl(0, 'NavicIconsFunction', { link = 'Function' })
hl(0, 'NavicIconsField', { link = 'Identifier' })
hl(0, 'NavicIconsVariable', { link = 'Identifier' })
hl(0, 'NavicIconsClass', { link = 'Type' })
hl(0, 'NavicIconsInterface', { link = 'Type' })
hl(0, 'NavicIconsModule', { link = 'Type' })
hl(0, 'NavicIconsNamespace', { link = 'Type' })
hl(0, 'NavicIconsProperty', { link = 'Identifier' })
hl(0, 'NavicIconsUnit', { link = 'Number' })
hl(0, 'NavicIconsEnum', { link = 'Type' })
hl(0, 'NavicIconsKeyword', { link = 'Statement' })
hl(0, 'NavicIconsSnippet', { link = 'Tag' })
hl(0, 'NavicIconsColor', { fg = colors.orange })
hl(0, 'NavicIconsFile', { link = 'Identifier' })
hl(0, 'NavicIconsReference', { link = 'Underlined' })
hl(0, 'NavicIconsFolder', { link = 'Directory' })
hl(0, 'NavicIconsEnumMember', { link = 'Constant' })
hl(0, 'NavicIconsConstant', { link = 'Constant' })
hl(0, 'NavicIconsStruct', { link = 'Identifier' })
hl(0, 'NavicIconsEvent', { link = 'Function' })
hl(0, 'NavicIconsOperator', { link = 'Operator' })
hl(0, 'NavicIconsTypeParameter', { link = 'Type' })
end
if config.plugins['nvim-cmp'] then
hl(0, 'CmpItemKindText', { link = 'String' })
hl(0, 'CmpItemKindMethod', { link = 'Function' })
hl(0, 'CmpItemKindFunction', { link = 'Function' })
hl(0, 'CmpItemKindField', { link = 'Identifier' })
hl(0, 'CmpItemKindVariable', { link = 'Identifier' })
hl(0, 'CmpItemKindClass', { link = 'Type' })
hl(0, 'CmpItemKindInterface', { link = 'Type' })
hl(0, 'CmpItemKindModule', { link = 'Type' })
hl(0, 'CmpItemKindProperty', { link = 'Identifier' })
hl(0, 'CmpItemKindUnit', { link = 'Number' })
hl(0, 'CmpItemKindEnum', { link = 'Type' })
hl(0, 'CmpItemKindKeyword', { link = 'Statement' })
hl(0, 'CmpItemKindSnippet', { link = 'Tag' })
hl(0, 'CmpItemKindColor', { fg = colors.orange })
hl(0, 'CmpItemKindFile', { link = 'Identifier' })
hl(0, 'CmpItemKindReference', { link = 'Underlined' })
hl(0, 'CmpItemKindFolder', { link = 'Directory' })
hl(0, 'CmpItemKindEnumMember', { link = 'Constant' })
hl(0, 'CmpItemKindConstant', { link = 'Constant' })
hl(0, 'CmpItemKindStruct', { link = 'Identifier' })
hl(0, 'CmpItemKindEvent', { link = 'Function' })
hl(0, 'CmpItemKindOperator', { link = 'Operator' })
hl(0, 'CmpItemKindTypeParameter', { link = 'Type' })
end
if config.plugins['indent-blankline.nvim'] then
hl(0, 'IblIndent', { fg = colors.shade_purple, nocombine = true })
hl(0, 'IblScope', { fg = colors.purple, nocombine = true })
end
if config.plugins['neo-tree.nvim'] then
hl(0, 'NeoTreeNormalNC', { link = 'NeoTreeNormal' })
hl(0, 'NeoTreeDotFile', { fg = colors.base01 })
hl(0, 'NeoTreeFileNameOpened', { link = 'Directory' })
hl(0, 'NeoTreeFloatBorder', { link = 'WinSeparator' })
hl(0, 'NeoTreeFloatTitle', { link = 'Title' })
hl(0, 'NeoTreeGitAdded', { fg = colors.git_added })
hl(0, 'NeoTreeGitConflict', { fg = colors.git_modified })
hl(0, 'NeoTreeGitDeleted', { fg = colors.git_removed })
hl(0, 'NeoTreeGitIgnored', { fg = colors.base01 })
hl(0, 'NeoTreeGitModified', { fg = colors.git_modified })
hl(0, 'NeoTreeGitUnstaged', { fg = colors.git_modified })
hl(0, 'NeoTreeGitUntracked', { fg = colors.git_modified })
hl(0, 'NeoTreeGitStaged', { fg = colors.git_added })
end
if config.plugins['nvim-tree.lua'] then
hl(0, 'NvimTreeSymlink', { link = 'Underlined' })
hl(0, 'NvimTreeSymlinkIcon', { link = 'Directory' })
hl(0, 'NvimTreeFolderName', { fg = colors.base0 })
hl(0, 'NvimTreeRootFolder', { fg = colors.purple, bold = true })
hl(0, 'NvimTreeFolderIcon', { link = 'Directory' })
hl(0, 'NvimTreeEmptyFolderName', { fg = colors.base0 })
hl(0, 'NvimTreeExecFile', { fg = colors.green })
hl(0, 'NvimTreeOpenedFile', { fg = colors.purple, bold = true })
hl(0, 'NvimTreeModifiedFile', { fg = colors.git_modified })
hl(0, 'NvimTreeSpecialFile', { link = 'Special' })
hl(0, 'NvimTreeIndentMarker', { fg = colors.shade_purple })
hl(0, 'NvimTreeGitDirty', { fg = colors.git_modified })
hl(0, 'NvimTreeGitStaged', { fg = colors.git_added })
hl(0, 'NvimTreeGitMerge', { fg = colors.git_modified })
hl(0, 'NvimTreeGitRenamed', { fg = colors.git_modified })
hl(0, 'NvimTreeGitNew', { fg = colors.git_added })
hl(0, 'NvimTreeGitDeleted', { fg = colors.git_removed })
hl(0, 'NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
hl(0, 'NvimTreeEndOfBuffer', { fg = colors.base04 })
hl(0, 'NvimTreeWinSeparator', { fg = colors.base04, bg = colors.base04 })
end
if config.plugins['which-key.nvim'] then
hl(0, 'WhichKey', { fg = colors.green })
hl(0, 'WhichKeyDesc', { fg = colors.orange, italic = true })
hl(0, 'WhichKeySeparator', { fg = colors.pink })
hl(0, 'WhichKeyGroup', { fg = colors.purple })
end
if config.plugins['dashboard-nvim'] then
hl(0, 'DashboardHeader', { fg = colors.red })
hl(0, 'DashboardFooter', { fg = colors.base01 })
hl(0, 'DashboardDesc', { link = 'Directory' })
hl(0, 'DashboardKey', { fg = colors.pink })
hl(0, 'DashboardIcon', { link = 'Directory' })
hl(0, 'DashboardShotCut', { fg = colors.base0 })
end
if config.plugins['gitsigns.nvim'] then
hl(0, 'GitSignsAdd', { fg = colors.git_added })
hl(0, 'GitSignsChange', { fg = colors.git_modified })
hl(0, 'GitSignsDelete', { fg = colors.git_removed })
end
if config.plugins['neogit'] then
hl(0, 'NeogitCursorLine', { link = 'CursorLine' })
hl(0, 'NeogitBranch', { fg = colors.purple })
hl(0, 'NeogitRemote', { fg = colors.cyan })
hl(0, 'NeogitHunkHeader', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'NeogitHunkHeaderHighlight', { link = 'Title' })
hl(0, 'NeogitDiffContextHighlight', { fg = colors.base0, bg = colors.base03 })
hl(0, 'NeogitDiffContext', { fg = colors.base0, bg = colors.base04 })
hl(0, 'NeogitDiffDeleteHighlight', { fg = colors.git_removed, bg = colors.shade_red })
hl(0, 'NeogitDiffDelete', { fg = colors.git_removed })
hl(0, 'NeogitDiffAddHighlight', { fg = colors.git_added, bg = colors.shade_green })
hl(0, 'NeogitDiffAdd', { fg = colors.git_added })
end
if config.plugins['todo-comments.nvim'] then
hl(0, 'TodoFgTODO', { fg = colors.purple })
hl(0, 'TodoFgWARN', { fg = colors.diag_warning })
hl(0, 'TodoFgTEST', { fg = colors.diag_ok })
hl(0, 'TodoFgPERF', { fg = colors.yellow })
hl(0, 'TodoFgNOTE', { fg = colors.cyan })
hl(0, 'TodoFgHACK', { fg = colors.pink })
hl(0, 'TodoFgFIX', { fg = colors.diag_error })
hl(0, 'TodoSignTODO', { fg = colors.purple })
hl(0, 'TodoSignWARN', { fg = colors.diag_warning })
hl(0, 'TodoSignTEST', { fg = colors.diag_ok })
hl(0, 'TodoSignPERF', { fg = colors.yellow })
hl(0, 'TodoSignNOTE', { fg = colors.cyan })
hl(0, 'TodoSignHACK', { fg = colors.pink })
hl(0, 'TodoSignFIX', { fg = colors.diag_error })
hl(0, 'TodoBgTODO', { fg = colors.purple, reverse = true })
hl(0, 'TodoBgWARN', { fg = colors.diag_warning, reverse = true })
hl(0, 'TodoBgTEST', { fg = colors.diag_ok, reverse = true })
hl(0, 'TodoBgPERF', { fg = colors.yellow, reverse = true })
hl(0, 'TodoBgNOTE', { fg = colors.cyan, reverse = true })
hl(0, 'TodoBgHACK', { fg = colors.pink, reverse = true })
hl(0, 'TodoBgFIX', { fg = colors.diag_error, reverse = true })
end
if config.plugins['lazy.nvim'] then
hl(0, 'LazyH1', { fg = colors.purple, bg = colors.base04 })
hl(0, 'LazyButton', { fg = colors.base0, bg = colors.base02 })
hl(0, 'LazyButtonActive', { bg = colors.base02, reverse = true })
hl(0, 'LazyReasonStart', { fg = colors.cyan })
end
if config.plugins['telescope.nvim'] then
hl(0, 'TelescopeSelection', { link = 'CursorLine' })
hl(0, 'TelescopeSelectionCaret', { fg = colors.purple })
hl(0, 'TelescopeMultiIcon', { fg = colors.purple })
hl(0, 'TelescopePreviewNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopePromptNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopeResultsNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopePromptBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopeResultsBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopePreviewBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopeTitle', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'TelescopePromptTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopeResultsTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopePreviewTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopeMatching', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'TelescopePreviewMatch', { link = 'TelescopeMatching' })
hl(0, 'TelescopePromptCounter', { link = 'NonText' })
hl(0, 'TelescopePromptPrefix', { fg = colors.purple })
end
if config.plugins['noice.nvim'] then
hl(0, 'NoiceFormatProgressTodo', { fg = colors.diag_ok, bg = colors.shade_ok })
hl(0, 'NoiceFormatProgressDone', { fg = colors.diag_ok, reverse = true })
hl(0, 'NoiceLspProgressSpinner', { fg = colors.diag_ok })
hl(0, 'NoiceLspProgressClient', { fg = colors.diag_ok })
hl(0, 'NoiceLspProgressTitle', { link = 'Title' })
end
if config.plugins['hop.nvim'] then
hl(0, 'HopNextKey', { fg = colors.red })
hl(0, 'HopNextKey1', { fg = colors.cyan })
hl(0, 'HopUnmatched', { fg = colors.base01 })
end
if config.plugins['mini.statusline'] then
hl(0, 'MiniStatuslineModeNormal', { fg = colors.base03, bg = colors.purple })
hl(0, 'MiniStatuslineModeInsert', { fg = colors.base03, bg = colors.green })
hl(0, 'MiniStatuslineModeVisual', { fg = colors.yellow, bg = colors.base03 })
hl(0, 'MiniStatuslineModeReplace', { fg = colors.red, bg = colors.base03 })
hl(0, 'MiniStatuslineModeCommand', { fg = colors.orange, bg = colors.base03 })
hl(0, 'MinistatusLineFileName', { fg = colors.base0, bg = colors.base04 })
hl(0, 'MiniStatuslineDevinfo', { fg = colors.base0, bg = colors.base02 })
hl(0, 'MiniStatuslineFileinfo', { fg = colors.base0, bg = colors.base02 })
hl(0, 'MiniStatuslineInactive', { fg = colors.base01, bg = colors.base03 })
end
if config.plugins['mini.tabline'] then
hl(0, 'MiniTablineCurrent', { fg = colors.base0, bg = colors.base03 })
hl(0, 'MiniTablineVisible', { fg = colors.base0, bg = colors.base03 })
hl(0, 'MiniTablineHidden', { fg = colors.base01, bg = colors.base03 })
hl(0, 'MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
hl(0, 'MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
hl(0, 'MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
hl(0, 'MiniTablineFill', { fg = colors.base0, bg = colors.base04 })
hl(0, 'MiniTablineTabpagesection', { fg = colors.base0, bg = colors.base04 })
end
if config.plugins['mini.starter'] then
hl(0, 'MiniStarterCurrent', { link = 'CursorLine' })
hl(0, 'MiniStarterHeader', { fg = colors.red })
hl(0, 'MiniStarterFooter', { fg = colors.base01 })
hl(0, 'MiniStarterItem', { fg = colors.base0 })
hl(0, 'MiniStarterItemBullet', { fg = colors.pink })
hl(0, 'MiniStarterItemPrefix', { fg = colors.pink })
hl(0, 'MiniStarterSection', { link = 'Title' })
hl(0, 'MiniStarterQuery', { fg = colors.pink, bold = true })
end
if config.plugins['mini.cursorword'] then
hl(0, 'MiniCursorword', { link = 'Visual' })
end
if config.plugins['bufferline.nvim'] and config.transparent then
local color = require 'dracula.color'
local background = color.shade(colors.base02, 2)
hl(0, 'BufferLineFill', { bg = background })
hl(0, 'BufferLineBufferSelected', { fg = colors.base0 })
hl(0, 'BufferLineSeparator', { fg = background })
hl(0, 'BufferLineSeparatorSelected', { fg = background })
hl(0, 'BufferLineSeparatorVisible', { fg = background })
end
if config.styles then
for group_name, group_val in pairs(config.styles) do
local group = api.nvim_get_hl(0, { name = group_name, link = false })
---@diagnostic disable-next-line: param-type-mismatch
hl(0, group_name, vim.tbl_deep_extend('force', group, group_val))
end
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 group = api.nvim_get_hl(0, { name = group_name, link = false })
---@diagnostic disable-next-line: param-type-mismatch
hl(0, group_name, vim.tbl_deep_extend('force', group, group_val))
end
end

View file

@ -2,4 +2,603 @@
-- Repo: maxmx03/dracula.nvim
-- Maintainer: Max Del Canto <github.com/maxmx03>
-- License: MIT License
require('dracula').load 'dracula'
if vim.g.colors_name then
vim.cmd 'hi clear'
end
if vim.fn.exists 'syntax_on' then
vim.cmd 'syntax reset'
end
vim.g.colors_name = 'dracula'
local colors = require 'dracula.palette'
local dracula = require 'dracula'
---@type dracula.config
local config = dracula.config
local api = vim.api
if config.on_colors then
local color = require 'dracula.color'
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
end
local hl = vim.api.nvim_set_hl
local none = 'NONE'
local term = {
'base04',
'red',
'green',
'yellow',
'pink',
'purple',
'cyan',
'base01',
'base01',
'orange',
'green',
'yellow',
'cyan',
'pink',
'green',
'base01',
}
for index, key in ipairs(term) do
vim.g['terminal_color_' .. index - 1] = colors[key]
end
if config.transparent then
hl(0, 'WinSeparator', { fg = colors.base01, bg = none })
hl(0, 'IncSearch', { fg = colors.red, bg = none })
hl(0, 'LineNr', { fg = colors.base01, bg = none })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = none })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = none })
hl(0, 'Normal', { fg = colors.base0, bg = none })
hl(0, 'Pmenu', { fg = colors.base0, bg = none })
hl(0, 'TelescopeNormal', { fg = colors.base0, bg = none })
hl(0, 'TelescopeBorder', { fg = colors.purple, bg = none })
hl(0, 'WhichKeyNormal', { fg = colors.green, bg = none })
hl(0, 'NvimTreeNormal', { fg = colors.base0, bg = none })
hl(0, 'NeoTreeNormal', { fg = colors.base0, bg = none })
else
hl(0, 'WinSeparator', { fg = colors.base01, bg = colors.base04 })
hl(0, 'IncSearch', { fg = colors.red, bg = colors.shade_red, bold = true })
hl(0, 'LineNr', { fg = colors.base01, bg = colors.base03 })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = colors.base03 })
hl(0, 'CursorLineNr', { fg = colors.purple, bg = colors.base03 })
hl(0, 'Normal', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Pmenu', { fg = colors.base0, bg = colors.base04 })
hl(0, 'TelescopeNormal', { fg = colors.base0, bg = colors.base04 })
hl(0, 'WhichKeyNormal', { fg = colors.green, bg = colors.base04 })
hl(0, 'TelescopeBorder', { fg = colors.purple, bg = colors.base04 })
hl(0, 'NvimTreeNormal', { fg = colors.base0, bg = colors.base04 })
hl(0, 'NeoTreeNormal', { fg = colors.base0, bg = colors.base04 })
end
-- EDITOR :h highlight-groups
hl(0, 'ColorColumn', { bg = colors.base04 })
hl(0, 'Conceal', { fg = colors.base02 })
hl(0, 'CurSearch', { fg = colors.red, bg = colors.shade_red })
hl(0, 'Cursor', { fg = colors.base03, bg = colors.purple })
hl(0, 'lCursor', { link = 'Cursor' })
hl(0, 'CursorIM', { link = 'Cursor' })
hl(0, 'CursorColumn', { link = 'ColorColumn' })
hl(0, 'CursorLine', { bg = colors.base02 })
hl(0, 'Directory', { fg = colors.purple })
hl(0, 'DiffAdd', { fg = colors.git_added })
hl(0, 'DiffChange', { fg = colors.git_modified })
hl(0, 'DiffDelete', { fg = colors.git_removed, reverse = true })
hl(0, 'DiffText', { fg = colors.cyan, reverse = true })
hl(0, 'EndOfBuffer', { fg = colors.base03 })
hl(0, 'TermCursor', { link = 'Cursor' })
hl(0, 'TermCursorNC', { link = 'Cursor' })
hl(0, 'ErrorMsg', { fg = colors.diag_error })
hl(0, 'Folded', { fg = colors.base0, bg = colors.base02 })
hl(0, 'FoldColumn', { fg = colors.base0, bg = colors.base04 })
hl(0, 'SignColumn', { link = 'Normal' })
hl(0, 'Substitute', { link = 'IncSearch' })
hl(0, 'LineNrAbove', { link = 'LineNr' })
hl(0, 'LineNrBelow', { link = 'LineNr' })
hl(0, 'CursorLineFold', { link = 'FoldColumn' })
hl(0, 'CursorLineSign', { link = 'SignColumn' })
hl(0, 'MatchParen', { fg = colors.cyan })
hl(0, 'ModeMsg', { fg = colors.purple })
hl(0, 'MsgArea', { link = 'Normal' })
hl(0, 'MsgSeparator', { link = 'Normal' })
hl(0, 'MoreMsg', { link = 'ModeMsg' })
hl(0, 'NonText', { fg = colors.base01 })
hl(0, 'NormalFloat', { fg = colors.base0, bg = colors.base04 })
hl(0, 'FloatBorder', { link = 'WinSeparator' })
hl(0, 'FloatTitle', { fg = colors.purple, bold = true })
hl(0, 'NormalNC', { link = 'Normal' })
hl(0, 'PmenuSel', { fg = colors.cyan, reverse = true })
hl(0, 'PmenuKind', { link = 'Pmenu' })
hl(0, 'PmenuKindSel', { link = 'PmenuSel' })
hl(0, 'PmenuExtra', { link = 'Pmenu' })
hl(0, 'PmenuExtraSel', { link = 'PmenuSel' })
hl(0, 'PmenuSbar', { bg = colors.base04 })
hl(0, 'PmenuThumb', { bg = colors.cyan })
hl(0, 'Question', { fg = colors.diag_info })
hl(0, 'QuickFixLine', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Search', { bg = colors.base02 })
hl(0, 'SpecialKey', { link = 'NonText' })
hl(0, 'SpellBad', { underline = true, strikethrough = true })
hl(0, 'SpellCap', { fg = colors.diag_hint })
hl(0, 'SpellLocal', { link = 'SpellCap' })
hl(0, 'SpellRare', { fg = colors.diag_warning })
hl(0, 'StatusLine', { fg = colors.base0, bg = colors.base04 })
hl(0, 'StatusLineNC', { fg = colors.base01, bg = colors.base04 })
hl(0, 'TabLine', { fg = colors.base01, bg = colors.base04 })
hl(0, 'TabLineFill', { fg = colors.base0, bg = colors.base04 })
hl(0, 'TabLineSel', { fg = colors.base0, bg = colors.base03 })
hl(0, 'Title', { fg = colors.purple, bold = true })
hl(0, 'Visual', { bg = colors.base02 })
hl(0, 'VisualNOS', { link = 'Visual' })
hl(0, 'warningMsg', { fg = colors.diag_warning })
hl(0, 'Whitespace', { fg = colors.base01 })
hl(0, 'WildMenu', { fg = colors.base02 })
hl(0, 'WinBar', { link = 'Pmenu' })
hl(0, 'WinBarNC', { link = 'WinBar' })
-- SYNTAX :h group-name
hl(0, 'Comment', { fg = colors.base01 })
hl(0, 'Constant', { fg = colors.purple })
hl(0, 'String', { fg = colors.yellow })
hl(0, 'Character', { link = 'String' })
hl(0, 'Number', { link = 'Constant' })
hl(0, 'Boolean', { link = 'Constant' })
hl(0, 'Float', { link = 'Constant' })
hl(0, 'Identifier', { fg = colors.base0 })
hl(0, 'Parameter', { fg = colors.orange })
hl(0, 'Property', { fg = colors.base0 })
hl(0, 'Function', { fg = colors.green })
hl(0, 'Statement', { fg = colors.pink })
hl(0, 'Conditional', { link = 'Statement' })
hl(0, 'Repeat', { link = 'Statement' })
hl(0, 'Label', { link = 'Statement' })
hl(0, 'Operator', { link = 'Statement' })
hl(0, 'Keyword', { link = 'Statement' })
hl(0, 'Exception', { link = 'Statement' })
hl(0, 'PreProc', { link = 'Statement' })
hl(0, 'Include', { link = 'Statement' })
hl(0, 'Define', { link = 'Statement' })
hl(0, 'Macro', { link = 'Statement' })
hl(0, 'PreCondit', { fg = colors.pink })
hl(0, 'Type', { fg = colors.cyan })
hl(0, 'StorageClass', { link = 'Statement' })
hl(0, 'Structure', { link = 'Type' })
hl(0, 'Typedef', { link = 'Statement' })
hl(0, 'Special', { fg = colors.red })
hl(0, 'SpecialChar', { fg = colors.purple })
hl(0, 'Tag', { fg = colors.pink })
hl(0, 'TagAttribute', { fg = colors.green })
hl(0, 'TagDelimiter', { fg = colors.base0 })
hl(0, 'Delimiter', { fg = colors.base0 })
hl(0, 'SpecialComment', { fg = colors.pink })
hl(0, 'Debug', { fg = colors.pink })
hl(0, 'Underlined', { fg = colors.cyan, underline = true })
hl(0, 'Ignore', {})
hl(0, 'Error', { fg = colors.diag_error, bold = true })
hl(0, 'Todo', { fg = colors.purple, bold = true })
if config.plugins['nvim-treesitter'] then
hl(0, '@variable', { link = 'Identifier' })
hl(0, '@variable.builtin', { link = 'Constant' })
hl(0, '@variable.parameter', { link = 'Parameter' })
hl(0, '@variable.member', { link = 'Property' })
hl(0, '@property', { link = 'Property' })
hl(0, '@property.json', { fg = colors.cyan })
hl(0, '@property.yaml', { fg = colors.cyan })
hl(0, '@property.css', { fg = colors.cyan })
hl(0, '@property.scss', { fg = colors.cyan })
hl(0, '@constant', { link = 'Constant' })
hl(0, '@constant.builtin', { link = 'Constant' })
hl(0, '@constant.macro', { link = 'Constant' })
hl(0, '@constant.html', { link = 'Tag' })
hl(0, '@module', { link = 'Type' })
hl(0, '@module.builtin', { link = 'Constant' })
hl(0, '@label', { link = 'Statement' })
hl(0, '@string', { link = 'String' })
hl(0, '@string.documentation', { link = 'Statement' })
hl(0, '@string.regexp', { link = 'Special' })
hl(0, '@string.escape', { link = 'Statement' })
hl(0, '@string.special', { link = 'Special' })
hl(0, '@string.special.symbol', { link = 'Identifier' })
hl(0, '@string.special.url', { link = 'Underlined' })
hl(0, '@character', { link = 'Constant' })
hl(0, '@character.special', { link = 'Constant' })
hl(0, '@character.special.scss', { link = 'Keyword' })
hl(0, '@character.printf', { link = 'Keyword' })
hl(0, '@type', { link = 'Type' })
hl(0, '@type.css', { fg = colors.green })
hl(0, '@type.scss', { fg = colors.green })
hl(0, '@type.builtin', { link = 'Keyword' })
hl(0, '@type.definition', { link = 'Type' })
hl(0, '@type.qualifier', { link = 'Type' })
hl(0, '@attribute', { link = 'Keyword' })
hl(0, '@function', { link = 'Function' })
hl(0, '@function.builtin', { link = 'Function' })
hl(0, '@function.call', { link = 'Function' })
hl(0, '@function.macro', { link = 'Function' })
hl(0, '@function.method', { link = 'Function' })
hl(0, '@function.method.call', { link = 'Function' })
hl(0, '@constructor', { link = 'Type' })
hl(0, '@constructor.lua', { link = 'Delimiter' })
hl(0, '@operator', { link = 'Operator' })
hl(0, '@keyword', { link = 'Keyword' })
hl(0, '@keyword.coroutine', { link = 'Statement' })
hl(0, '@keyword.function', { link = 'Keyword' })
hl(0, '@keyword.type', { link = 'Keyword' })
hl(0, '@keyword.operator', { link = 'Statement' })
hl(0, '@keyword.import', { link = 'Include' })
hl(0, '@keyword.repeat', { link = 'Statement' })
hl(0, '@keyword.return', { link = 'Statement' })
hl(0, '@keyword.debug', { link = 'Keyword' })
hl(0, '@keyword.exception', { link = 'Statement' })
hl(0, '@keyword.conditional', { link = 'Statement' })
hl(0, '@keyword.conditional.ternary', { link = 'Statement' })
hl(0, '@keyword.directive', { link = 'Statement' })
hl(0, '@keyword.directive.define', { link = 'Statement' })
hl(0, '@punctuation.delimiter', { link = 'Delimiter' })
hl(0, '@punctuation.bracket', { link = 'Delimiter' })
hl(0, '@punctuation.special', { link = 'Keyword' })
hl(0, '@comment', { link = 'Comment' })
hl(0, '@comment.documentation', { link = 'Comment' })
hl(0, '@comment.error', { fg = colors.diag_error, bg = colors.shade_error })
hl(0, '@comment.warning', { fg = colors.diag_warning, bg = colors.shade_warning })
hl(0, '@comment.todo', { fg = colors.purple, bg = colors.shade_purple })
hl(0, '@comment.note', { fg = colors.diag_hint, bg = colors.shade_hint })
hl(0, '@markup.strong', { fg = colors.orange, bold = true })
hl(0, '@markup.italic', { fg = colors.yellow, italic = true })
hl(0, '@markup.strikethrough', { fg = colors.base01 })
hl(0, '@markup.underline', { fg = colors.cyan, underline = true })
hl(0, '@markup.heading.1', { fg = colors.purple, bold = true })
hl(0, '@markup.heading.2', { fg = colors.red, bold = true })
hl(0, '@markup.heading.3', { fg = colors.orange, bold = true })
hl(0, '@markup.heading.4', { fg = colors.yellow, bold = true })
hl(0, '@markup.heading.5', { fg = colors.cyan, bold = true })
hl(0, '@markup.heading.6', { fg = colors.green, bold = true })
hl(0, '@markup.quote', { fg = colors.base01 })
hl(0, '@markup.math', { fg = colors.purple })
hl(0, '@markup.environment', { fg = colors.base01 })
hl(0, '@markup.link', { fg = colors.orange, bold = true })
hl(0, '@markup.link.label', { fg = colors.cyan, underline = true })
hl(0, '@markup.link.url', { fg = colors.cyan, underline = true })
hl(0, '@markup.raw', { fg = colors.base01 })
hl(0, '@markup.raw.block', { fg = colors.base0 })
hl(0, '@markup.list', { fg = colors.purple })
hl(0, '@markup.list.checked', { fg = colors.git_added })
hl(0, '@markup.list.unchecked', { fg = colors.git_modified })
hl(0, '@diff.plus', { fg = colors.git_added })
hl(0, '@diff.minus', { fg = colors.git_removed })
hl(0, '@diff.delta', { fg = colors.git_modified })
hl(0, '@tag', { link = 'Tag' })
hl(0, '@tag.builtin', { link = 'Tag' })
hl(0, '@tag.attribute', { link = 'TagAttribute' })
hl(0, '@tag.delimiter', { link = 'TagDelimiter' })
end
if config.plugins['rainbow-delimiters'] then
hl(0, 'RainbowDelimiterRed', { fg = colors.red })
hl(0, 'RainbowDelimiteYellow', { fg = colors.yellow })
hl(0, 'RainbowDelimiterBlue', { fg = colors.pink })
hl(0, 'RainbowDelimiterOrange', { fg = colors.orange })
hl(0, 'RainbowDelimiterGreen', { fg = colors.green })
hl(0, 'RainbowDelimiterViolet', { fg = colors.purple })
hl(0, 'RainbowDelimiterCyan', { fg = colors.cyan })
end
if config.plugins['nvim-lspconfig'] then
hl(0, '@lsp.type.class', { link = 'Type' })
hl(0, '@lsp.type.comment', {})
hl(0, '@lsp.type.decorator', { link = 'Function' })
hl(0, '@lsp.type.enum', { link = 'Type' })
hl(0, '@lsp.type.enumMember', { link = 'Constant' })
hl(0, '@lsp.type.event', { link = 'Function' })
hl(0, '@lsp.type.function', { link = 'Function' })
hl(0, '@lsp.type.interface', { link = 'Type' })
hl(0, '@lsp.type.keyword', { link = 'Keyword' })
hl(0, '@lsp.type.macro', { link = 'Constant' })
hl(0, '@lsp.type.method', { link = 'Function' })
-- hl(0,'@lsp.type.modifier')
hl(0, '@lsp.type.namespace', { link = 'Type' })
hl(0, '@lsp.type.number', { link = 'Number' })
hl(0, '@lsp.type.operator', { link = 'Operator' })
hl(0, '@lsp.type.parameter', { link = 'Parameter' })
hl(0, '@lsp.type.property', { link = 'Property' })
hl(0, '@lsp.type.regexp', { link = 'Special' })
hl(0, '@lsp.type.string', { link = 'String' })
hl(0, '@lsp.type.struct', { link = 'Type' })
hl(0, '@lsp.type.type', { link = 'Type' })
hl(0, '@lsp.type.typeParameter', { link = 'Type' })
hl(0, '@lsp.type.variable', { link = 'Identifier' })
hl(0, '@lsp.mod.readonly', { link = 'Constant' })
hl(0, '@lsp.mod.global', { link = 'Constant' })
hl(0, 'DiagnosticError', { fg = colors.diag_error })
hl(0, 'DiagnosticWarn', { fg = colors.diag_warning })
hl(0, 'DiagnosticInfo', { fg = colors.diag_info })
hl(0, 'DiagnosticHint', { fg = colors.diag_hint })
hl(0, 'DiagnosticOk', { fg = colors.diag_ok })
hl(0, 'DiagnosticVirtualTextError', { fg = colors.diag_error, bg = colors.shade_error })
hl(0, 'DiagnosticVirtualTextWarn', { fg = colors.diag_warning, bg = colors.shade_warning })
hl(0, 'DiagnosticVirtualTextInfo', { fg = colors.diag_info, bg = colors.shade_info })
hl(0, 'DiagnosticVirtualTextHint', { fg = colors.diag_hint, bg = colors.shade_hint })
hl(0, 'DiagnosticVirtualTextOk', { fg = colors.diag_ok, bg = colors.shade_ok })
hl(0, 'DiagnosticUnderlineError', { fg = colors.diag_error, underline = true })
hl(0, 'DiagnosticUnderlineWarn', { fg = colors.diag_warning, underline = true })
hl(0, 'DiagnosticUnderlineInfo', { fg = colors.diag_info, underline = true })
hl(0, 'DiagnosticUnderlineHint', { fg = colors.diag_hint, underline = true })
hl(0, 'DiagnosticUnderlineOk', { fg = colors.diag_ok, underline = true })
hl(0, 'LspReferenceText', { link = 'Visual' })
hl(0, 'LspReferenceRead', { link = 'Visual' })
hl(0, 'LspReferenceWrite', { link = 'Visual' })
hl(0, 'LspInlayHint', { fg = colors.inlay_hint })
end
if config.plugins['nvim-navic'] then
hl(0, 'NavicText', { fg = colors.base0 })
hl(0, 'NavicSeparator', { link = 'Statement' })
hl(0, 'NavicIconsMethod', { link = 'Function' })
hl(0, 'NavicIconsFunction', { link = 'Function' })
hl(0, 'NavicIconsField', { link = 'Identifier' })
hl(0, 'NavicIconsVariable', { link = 'Identifier' })
hl(0, 'NavicIconsClass', { link = 'Type' })
hl(0, 'NavicIconsInterface', { link = 'Type' })
hl(0, 'NavicIconsModule', { link = 'Type' })
hl(0, 'NavicIconsNamespace', { link = 'Type' })
hl(0, 'NavicIconsProperty', { link = 'Identifier' })
hl(0, 'NavicIconsUnit', { link = 'Number' })
hl(0, 'NavicIconsEnum', { link = 'Type' })
hl(0, 'NavicIconsKeyword', { link = 'Statement' })
hl(0, 'NavicIconsSnippet', { link = 'Tag' })
hl(0, 'NavicIconsColor', { fg = colors.orange })
hl(0, 'NavicIconsFile', { link = 'Identifier' })
hl(0, 'NavicIconsReference', { link = 'Underlined' })
hl(0, 'NavicIconsFolder', { link = 'Directory' })
hl(0, 'NavicIconsEnumMember', { link = 'Constant' })
hl(0, 'NavicIconsConstant', { link = 'Constant' })
hl(0, 'NavicIconsStruct', { link = 'Identifier' })
hl(0, 'NavicIconsEvent', { link = 'Function' })
hl(0, 'NavicIconsOperator', { link = 'Operator' })
hl(0, 'NavicIconsTypeParameter', { link = 'Type' })
end
if config.plugins['nvim-cmp'] then
hl(0, 'CmpItemKindText', { link = 'String' })
hl(0, 'CmpItemKindMethod', { link = 'Function' })
hl(0, 'CmpItemKindFunction', { link = 'Function' })
hl(0, 'CmpItemKindField', { link = 'Identifier' })
hl(0, 'CmpItemKindVariable', { link = 'Identifier' })
hl(0, 'CmpItemKindClass', { link = 'Type' })
hl(0, 'CmpItemKindInterface', { link = 'Type' })
hl(0, 'CmpItemKindModule', { link = 'Type' })
hl(0, 'CmpItemKindProperty', { link = 'Identifier' })
hl(0, 'CmpItemKindUnit', { link = 'Number' })
hl(0, 'CmpItemKindEnum', { link = 'Type' })
hl(0, 'CmpItemKindKeyword', { link = 'Statement' })
hl(0, 'CmpItemKindSnippet', { link = 'Tag' })
hl(0, 'CmpItemKindColor', { fg = colors.orange })
hl(0, 'CmpItemKindFile', { link = 'Identifier' })
hl(0, 'CmpItemKindReference', { link = 'Underlined' })
hl(0, 'CmpItemKindFolder', { link = 'Directory' })
hl(0, 'CmpItemKindEnumMember', { link = 'Constant' })
hl(0, 'CmpItemKindConstant', { link = 'Constant' })
hl(0, 'CmpItemKindStruct', { link = 'Identifier' })
hl(0, 'CmpItemKindEvent', { link = 'Function' })
hl(0, 'CmpItemKindOperator', { link = 'Operator' })
hl(0, 'CmpItemKindTypeParameter', { link = 'Type' })
end
if config.plugins['indent-blankline.nvim'] then
hl(0, 'IblIndent', { fg = colors.shade_purple, nocombine = true })
hl(0, 'IblScope', { fg = colors.purple, nocombine = true })
end
if config.plugins['neo-tree.nvim'] then
hl(0, 'NeoTreeNormalNC', { link = 'NeoTreeNormal' })
hl(0, 'NeoTreeDotFile', { fg = colors.base01 })
hl(0, 'NeoTreeFileNameOpened', { link = 'Directory' })
hl(0, 'NeoTreeFloatBorder', { link = 'WinSeparator' })
hl(0, 'NeoTreeFloatTitle', { link = 'Title' })
hl(0, 'NeoTreeGitAdded', { fg = colors.git_added })
hl(0, 'NeoTreeGitConflict', { fg = colors.git_modified })
hl(0, 'NeoTreeGitDeleted', { fg = colors.git_removed })
hl(0, 'NeoTreeGitIgnored', { fg = colors.base01 })
hl(0, 'NeoTreeGitModified', { fg = colors.git_modified })
hl(0, 'NeoTreeGitUnstaged', { fg = colors.git_modified })
hl(0, 'NeoTreeGitUntracked', { fg = colors.git_modified })
hl(0, 'NeoTreeGitStaged', { fg = colors.git_added })
end
if config.plugins['nvim-tree.lua'] then
hl(0, 'NvimTreeSymlink', { link = 'Underlined' })
hl(0, 'NvimTreeSymlinkIcon', { link = 'Directory' })
hl(0, 'NvimTreeFolderName', { fg = colors.base0 })
hl(0, 'NvimTreeRootFolder', { fg = colors.purple, bold = true })
hl(0, 'NvimTreeFolderIcon', { link = 'Directory' })
hl(0, 'NvimTreeEmptyFolderName', { fg = colors.base0 })
hl(0, 'NvimTreeExecFile', { fg = colors.green })
hl(0, 'NvimTreeOpenedFile', { fg = colors.purple, bold = true })
hl(0, 'NvimTreeModifiedFile', { fg = colors.git_modified })
hl(0, 'NvimTreeSpecialFile', { link = 'Special' })
hl(0, 'NvimTreeIndentMarker', { fg = colors.shade_purple })
hl(0, 'NvimTreeGitDirty', { fg = colors.git_modified })
hl(0, 'NvimTreeGitStaged', { fg = colors.git_added })
hl(0, 'NvimTreeGitMerge', { fg = colors.git_modified })
hl(0, 'NvimTreeGitRenamed', { fg = colors.git_modified })
hl(0, 'NvimTreeGitNew', { fg = colors.git_added })
hl(0, 'NvimTreeGitDeleted', { fg = colors.git_removed })
hl(0, 'NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
hl(0, 'NvimTreeEndOfBuffer', { fg = colors.base04 })
hl(0, 'NvimTreeWinSeparator', { fg = colors.base04, bg = colors.base04 })
end
if config.plugins['which-key.nvim'] then
hl(0, 'WhichKey', { fg = colors.green })
hl(0, 'WhichKeyDesc', { fg = colors.orange, italic = true })
hl(0, 'WhichKeySeparator', { fg = colors.pink })
hl(0, 'WhichKeyGroup', { fg = colors.purple })
end
if config.plugins['dashboard-nvim'] then
hl(0, 'DashboardHeader', { fg = colors.red })
hl(0, 'DashboardFooter', { fg = colors.base01 })
hl(0, 'DashboardDesc', { link = 'Directory' })
hl(0, 'DashboardKey', { fg = colors.pink })
hl(0, 'DashboardIcon', { link = 'Directory' })
hl(0, 'DashboardShotCut', { fg = colors.base0 })
end
if config.plugins['gitsigns.nvim'] then
hl(0, 'GitSignsAdd', { fg = colors.git_added })
hl(0, 'GitSignsChange', { fg = colors.git_modified })
hl(0, 'GitSignsDelete', { fg = colors.git_removed })
end
if config.plugins['neogit'] then
hl(0, 'NeogitCursorLine', { link = 'CursorLine' })
hl(0, 'NeogitBranch', { fg = colors.purple })
hl(0, 'NeogitRemote', { fg = colors.cyan })
hl(0, 'NeogitHunkHeader', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'NeogitHunkHeaderHighlight', { link = 'Title' })
hl(0, 'NeogitDiffContextHighlight', { fg = colors.base0, bg = colors.base03 })
hl(0, 'NeogitDiffContext', { fg = colors.base0, bg = colors.base04 })
hl(0, 'NeogitDiffDeleteHighlight', { fg = colors.git_removed, bg = colors.shade_red })
hl(0, 'NeogitDiffDelete', { fg = colors.git_removed })
hl(0, 'NeogitDiffAddHighlight', { fg = colors.git_added, bg = colors.shade_green })
hl(0, 'NeogitDiffAdd', { fg = colors.git_added })
end
if config.plugins['todo-comments.nvim'] then
hl(0, 'TodoFgTODO', { fg = colors.purple })
hl(0, 'TodoFgWARN', { fg = colors.diag_warning })
hl(0, 'TodoFgTEST', { fg = colors.diag_ok })
hl(0, 'TodoFgPERF', { fg = colors.yellow })
hl(0, 'TodoFgNOTE', { fg = colors.cyan })
hl(0, 'TodoFgHACK', { fg = colors.pink })
hl(0, 'TodoFgFIX', { fg = colors.diag_error })
hl(0, 'TodoSignTODO', { fg = colors.purple })
hl(0, 'TodoSignWARN', { fg = colors.diag_warning })
hl(0, 'TodoSignTEST', { fg = colors.diag_ok })
hl(0, 'TodoSignPERF', { fg = colors.yellow })
hl(0, 'TodoSignNOTE', { fg = colors.cyan })
hl(0, 'TodoSignHACK', { fg = colors.pink })
hl(0, 'TodoSignFIX', { fg = colors.diag_error })
hl(0, 'TodoBgTODO', { fg = colors.purple, reverse = true })
hl(0, 'TodoBgWARN', { fg = colors.diag_warning, reverse = true })
hl(0, 'TodoBgTEST', { fg = colors.diag_ok, reverse = true })
hl(0, 'TodoBgPERF', { fg = colors.yellow, reverse = true })
hl(0, 'TodoBgNOTE', { fg = colors.cyan, reverse = true })
hl(0, 'TodoBgHACK', { fg = colors.pink, reverse = true })
hl(0, 'TodoBgFIX', { fg = colors.diag_error, reverse = true })
end
if config.plugins['lazy.nvim'] then
hl(0, 'LazyH1', { fg = colors.purple, bg = colors.base04 })
hl(0, 'LazyButton', { fg = colors.base0, bg = colors.base02 })
hl(0, 'LazyButtonActive', { bg = colors.base02, reverse = true })
hl(0, 'LazyReasonStart', { fg = colors.cyan })
end
if config.plugins['telescope.nvim'] then
hl(0, 'TelescopeSelection', { link = 'CursorLine' })
hl(0, 'TelescopeSelectionCaret', { fg = colors.purple })
hl(0, 'TelescopeMultiIcon', { fg = colors.purple })
hl(0, 'TelescopePreviewNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopePromptNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopeResultsNormal', { link = 'TelescopeNormal' })
hl(0, 'TelescopePromptBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopeResultsBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopePreviewBorder', { link = 'TelescopeBorder' })
hl(0, 'TelescopeTitle', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'TelescopePromptTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopeResultsTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopePreviewTitle', { link = 'TelescopeTitle' })
hl(0, 'TelescopeMatching', { fg = colors.purple, bg = colors.shade_purple })
hl(0, 'TelescopePreviewMatch', { link = 'TelescopeMatching' })
hl(0, 'TelescopePromptCounter', { link = 'NonText' })
hl(0, 'TelescopePromptPrefix', { fg = colors.purple })
end
if config.plugins['noice.nvim'] then
hl(0, 'NoiceFormatProgressTodo', { fg = colors.diag_ok, bg = colors.shade_ok })
hl(0, 'NoiceFormatProgressDone', { fg = colors.diag_ok, reverse = true })
hl(0, 'NoiceLspProgressSpinner', { fg = colors.diag_ok })
hl(0, 'NoiceLspProgressClient', { fg = colors.diag_ok })
hl(0, 'NoiceLspProgressTitle', { link = 'Title' })
end
if config.plugins['hop.nvim'] then
hl(0, 'HopNextKey', { fg = colors.red })
hl(0, 'HopNextKey1', { fg = colors.cyan })
hl(0, 'HopUnmatched', { fg = colors.base01 })
end
if config.plugins['mini.statusline'] then
hl(0, 'MiniStatuslineModeNormal', { fg = colors.base03, bg = colors.purple })
hl(0, 'MiniStatuslineModeInsert', { fg = colors.base03, bg = colors.green })
hl(0, 'MiniStatuslineModeVisual', { fg = colors.yellow, bg = colors.base03 })
hl(0, 'MiniStatuslineModeReplace', { fg = colors.red, bg = colors.base03 })
hl(0, 'MiniStatuslineModeCommand', { fg = colors.orange, bg = colors.base03 })
hl(0, 'MinistatusLineFileName', { fg = colors.base0, bg = colors.base04 })
hl(0, 'MiniStatuslineDevinfo', { fg = colors.base0, bg = colors.base02 })
hl(0, 'MiniStatuslineFileinfo', { fg = colors.base0, bg = colors.base02 })
hl(0, 'MiniStatuslineInactive', { fg = colors.base01, bg = colors.base03 })
end
if config.plugins['mini.tabline'] then
hl(0, 'MiniTablineCurrent', { fg = colors.base0, bg = colors.base03 })
hl(0, 'MiniTablineVisible', { fg = colors.base0, bg = colors.base03 })
hl(0, 'MiniTablineHidden', { fg = colors.base01, bg = colors.base03 })
hl(0, 'MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
hl(0, 'MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
hl(0, 'MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
hl(0, 'MiniTablineFill', { fg = colors.base0, bg = colors.base04 })
hl(0, 'MiniTablineTabpagesection', { fg = colors.base0, bg = colors.base04 })
end
if config.plugins['mini.starter'] then
hl(0, 'MiniStarterCurrent', { link = 'CursorLine' })
hl(0, 'MiniStarterHeader', { fg = colors.red })
hl(0, 'MiniStarterFooter', { fg = colors.base01 })
hl(0, 'MiniStarterItem', { fg = colors.base0 })
hl(0, 'MiniStarterItemBullet', { fg = colors.pink })
hl(0, 'MiniStarterItemPrefix', { fg = colors.pink })
hl(0, 'MiniStarterSection', { link = 'Title' })
hl(0, 'MiniStarterQuery', { fg = colors.pink, bold = true })
end
if config.plugins['mini.cursorword'] then
hl(0, 'MiniCursorword', { link = 'Visual' })
end
if config.plugins['bufferline.nvim'] and config.transparent then
local color = require 'dracula.color'
local background = color.shade(colors.base02, 2)
hl(0, 'BufferLineFill', { bg = background })
hl(0, 'BufferLineBufferSelected', { fg = colors.base0 })
hl(0, 'BufferLineSeparator', { fg = background })
hl(0, 'BufferLineSeparatorSelected', { fg = background })
hl(0, 'BufferLineSeparatorVisible', { fg = background })
end
if config.styles then
for group_name, group_val in pairs(config.styles) do
local group = api.nvim_get_hl(0, { name = group_name, link = false })
---@diagnostic disable-next-line: param-type-mismatch
hl(0, group_name, vim.tbl_deep_extend('force', group, group_val))
end
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 group = api.nvim_get_hl(0, { name = group_name, link = false })
---@diagnostic disable-next-line: param-type-mismatch
hl(0, group_name, vim.tbl_deep_extend('force', group, group_val))
end
end

View file

@ -1,4 +1,4 @@
*dracula.txt* For NVIM v0.9.4 Last change: 2024 February 26
*dracula.txt* For NVIM v0.9.4 Last change: 2024 August 23
==============================================================================
Table of Contents *dracula-table-of-contents*
@ -6,6 +6,7 @@ Table of Contents *dracula-table-of-contents*
1. Dracula |dracula-dracula|
- Installation |dracula-dracula-installation|
- Api |dracula-dracula-api|
2. Links |dracula-links|
==============================================================================
1. Dracula *dracula-dracula*
@ -27,22 +28,14 @@ Annotations can be enabled. 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,
@ -60,6 +53,17 @@ Annotations can be enabled. Below is an example of how to enable them.
local dracula = require "dracula"
dracula.setup({
styles = {
Type = {},
Function = {},
Parameter = {},
Property = {},
Comment = {},
String = {},
Keyword = {},
Identifier = {},
Constant = {},
},
transparent = false,
on_colors = function (colors, color)
---@type dracula.palette
@ -77,11 +81,11 @@ Annotations can be enabled. Below is an example of how to enable them.
end,
plugins = {
["nvim-treesitter"] = true,
["rainbow-delimiters"] = true,
["nvim-lspconfig"] = true,
["nvim-navic"] = true,
["nvim-cmp"] = true,
["indent-blankline.nvim"] = true,
["bufferline.nvim"] = true,
["neo-tree.nvim"] = true,
["nvim-tree.lua"] = true,
["which-key.nvim"] = true,
@ -97,6 +101,7 @@ Annotations can be enabled. Below is an example of how to enable them.
["mini.tabline"] = true,
["mini.starter"] = true,
["mini.cursorword"] = true,
['bufferline.nvim'] = true,
}
})
vim.cmd.colorscheme 'dracula'

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -7,13 +7,13 @@ local M = {
basename = { link = 'Identifier' },
context = { link = 'Identifier' },
context_file = { link = 'Identifier' },
context_module = { link = 'Identifier' },
context_namespace = { link = 'Identifier' },
context_module = { link = 'Type' },
context_namespace = { link = 'Type' },
context_package = { link = 'Directory' },
context_class = { link = 'Type' },
context_method = { link = 'Function' },
context_property = { link = 'Identifier' },
context_field = { link = 'Identifier' },
context_property = { link = 'Property' },
context_field = { link = 'Property' },
context_constructor = { link = 'Type' },
context_enum = { link = 'Type' },
context_interface = { link = 'Type' },

View file

@ -1,18 +1,43 @@
---@class dracula.styles
---@field Type? vim.api.keyset.highlight
---@field Function? vim.api.keyset.highlight
---@field Parameter? vim.api.keyset.highlight
---@field Property? vim.api.keyset.highlight
---@field Comment? vim.api.keyset.highlight
---@field String? vim.api.keyset.highlight
---@field Keyword? vim.api.keyset.highlight
---@field Identifier? vim.api.keyset.highlight
---@field Constant? vim.api.keyset.highlight
---@class dracula.config
---@field styles? dracula.styles
---@field transparent? boolean
---@field on_highlights? fun(colors: dracula.palette, color: table): dracula.highlights
---@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 = {
Type = {},
Function = {},
Parameter = {},
Property = {},
Comment = {
italic = true,
},
String = {},
Keyword = {},
Identifier = {},
Constant = {},
},
transparent = false,
on_highlights = nil,
on_colors = nil,
plugins = {
['nvim-treesitter'] = true,
['rainbow-delimiters'] = true,
['nvim-lspconfig'] = true,
['nvim-navic'] = true,
['nvim-cmp'] = true,
['indent-blankline.nvim'] = true,
['bufferline.nvim'] = true,
['neo-tree.nvim'] = true,
['nvim-tree.lua'] = true,
['which-key.nvim'] = true,
@ -28,5 +53,6 @@ return {
['mini.tabline'] = true,
['mini.starter'] = true,
['mini.cursorword'] = true,
['bufferline.nvim'] = true,
},
}

323
lua/dracula/groups.lua Normal file
View file

@ -0,0 +1,323 @@
---@class dracula.highlights
---@field ColorColumn? vim.api.keyset.highlight
---@field Conceal? vim.api.keyset.highlight
---@field CurSearch? vim.api.keyset.highlight
---@field Cursor? vim.api.keyset.highlight
---@field lCursor? vim.api.keyset.highlight
---@field CursorIM? vim.api.keyset.highlight
---@field CursorColumn? vim.api.keyset.highlight
---@field CursorLine? vim.api.keyset.highlight
---@field Directory? vim.api.keyset.highlight
---@field DiffAdd? vim.api.keyset.highlight
---@field DiffChange? vim.api.keyset.highlight
---@field DiffDelete? vim.api.keyset.highlight
---@field DiffText? vim.api.keyset.highlight
---@field EndOfBuffer? vim.api.keyset.highlight
---@field TermCursor? vim.api.keyset.highlight
---@field TermCursorNC? vim.api.keyset.highlight
---@field ErrorMsg? vim.api.keyset.highlight
---@field WinSeparator? vim.api.keyset.highlight
---@field Folded? vim.api.keyset.highlight
---@field FoldColumn? vim.api.keyset.highlight
---@field SignColumn? vim.api.keyset.highlight
---@field IncSearch? vim.api.keyset.highlight
---@field Substitute? vim.api.keyset.highlight
---@field LineNr? vim.api.keyset.highlight
---@field LineNrAbove? vim.api.keyset.highlight
---@field LineNrBelow? vim.api.keyset.highlight
---@field CursorLineNr? vim.api.keyset.highlight
---@field CursorLineFold? vim.api.keyset.highlight
---@field CursorLineSign? vim.api.keyset.highlight
---@field MatchParen? vim.api.keyset.highlight
---@field ModeMsg? vim.api.keyset.highlight
---@field MsgArea? vim.api.keyset.highlight
---@field MsgSeparator? vim.api.keyset.highlight
---@field MoreMsg? vim.api.keyset.highlight
---@field NonText? vim.api.keyset.highlight
---@field Normal? vim.api.keyset.highlight
---@field NormalFloat? vim.api.keyset.highlight
---@field FloatBorder? vim.api.keyset.highlight
---@field FloatTitle? vim.api.keyset.highlight
---@field NormalNC? vim.api.keyset.highlight
---@field Pmenu? vim.api.keyset.highlight
---@field PmenuSel? vim.api.keyset.highlight
---@field PmenuKind? vim.api.keyset.highlight
---@field PmenuKindSel? vim.api.keyset.highlight
---@field PmenuExtra? vim.api.keyset.highlight
---@field PmenuExtraSel? vim.api.keyset.highlight
---@field PmenuSbar? vim.api.keyset.highlight
---@field PmenuThumb? vim.api.keyset.highlight
---@field Question? vim.api.keyset.highlight
---@field QuickFixLine? vim.api.keyset.highlight
---@field Search? vim.api.keyset.highlight
---@field SpecialKey? vim.api.keyset.highlight
---@field SpellBad? vim.api.keyset.highlight
---@field SpellCap? vim.api.keyset.highlight
---@field SpellLocal? vim.api.keyset.highlight
---@field SpellRare? vim.api.keyset.highlight
---@field StatusLine? vim.api.keyset.highlight
---@field StatusLineNC? vim.api.keyset.highlight
---@field TabLine? vim.api.keyset.highlight
---@field TabLineFill? vim.api.keyset.highlight
---@field TabLineSel? vim.api.keyset.highlight
---@field Title? vim.api.keyset.highlight
---@field Visual? vim.api.keyset.highlight
---@field VisualNOS? vim.api.keyset.highlight
---@field warningMsg? vim.api.keyset.highlight
---@field Whitespace? vim.api.keyset.highlight
---@field WildMenu? vim.api.keyset.highlight
---@field WinBar? vim.api.keyset.highlight
---@field WinBarNC? vim.api.keyset.highlight
---@field Comment? vim.api.keyset.highlight
---@field Constant? vim.api.keyset.highlight
---@field String? vim.api.keyset.highlight
---@field Character? vim.api.keyset.highlight
---@field Number? vim.api.keyset.highlight
---@field Boolean? vim.api.keyset.highlight
---@field Float? vim.api.keyset.highlight
---@field Identifier? vim.api.keyset.highlight
---@field Property? vim.api.keyset.highlight
---@field Parameter? vim.api.keyset.highlight
---@field Function? vim.api.keyset.highlight
---@field Statement? vim.api.keyset.highlight
---@field Conditional? vim.api.keyset.highlight
---@field Repeat? vim.api.keyset.highlight
---@field Label? vim.api.keyset.highlight
---@field Operator? vim.api.keyset.highlight
---@field Keyword? vim.api.keyset.highlight
---@field Exception? vim.api.keyset.highlight
---@field PreProc? vim.api.keyset.highlight
---@field Include? vim.api.keyset.highlight
---@field Define? vim.api.keyset.highlight
---@field Macro? vim.api.keyset.highlight
---@field PreCondit? vim.api.keyset.highlight
---@field Type? vim.api.keyset.highlight
---@field StorageClass? vim.api.keyset.highlight
---@field Structure? vim.api.keyset.highlight
---@field Typedef? vim.api.keyset.highlight
---@field Special? vim.api.keyset.highlight
---@field SpecialChar? vim.api.keyset.highlight
---@field Tag? vim.api.keyset.highlight
---@field TagAttribute? vim.api.keyset.highlight
---@field TagDelimiter? vim.api.keyset.highlight
---@field Delimiter? vim.api.keyset.highlight
---@field SpecialComment? vim.api.keyset.highlight
---@field Debug? vim.api.keyset.highlight
---@field Underlined? vim.api.keyset.highlight
---@field Ignore? vim.api.keyset.highlight
---@field Error? vim.api.keyset.highlight
---@field Todo? vim.api.keyset.highlight
---@field DiagnosticError? vim.api.keyset.highlight
---@field DiagnosticWarn? vim.api.keyset.highlight
---@field DiagnosticInfo? vim.api.keyset.highlight
---@field DiagnosticHint? vim.api.keyset.highlight
---@field DiagnosticOk? vim.api.keyset.highlight
---@field DiagnosticVirtualTextError? vim.api.keyset.highlight
---@field DiagnosticVirtualTextWarn? vim.api.keyset.highlight
---@field DiagnosticVirtualTextInfo? vim.api.keyset.highlight
---@field DiagnosticVirtualTextHint? vim.api.keyset.highlight
---@field DiagnosticVirtualTextOk? vim.api.keyset.highlight
---@field DiagnosticUnderlineError? vim.api.keyset.highlight
---@field DiagnosticUnderlineWarn? vim.api.keyset.highlight
---@field DiagnosticUnderlineInfo? vim.api.keyset.highlight
---@field DiagnosticUnderlineHint? vim.api.keyset.highlight
---@field DiagnosticUnderlineOk? vim.api.keyset.highlight
---@field LspReferenceText? vim.api.keyset.highlight
---@field LspReferenceRead? vim.api.keyset.highlight
---@field LspReferenceWrite? vim.api.keyset.highlight
---@field LspInlayHint? vim.api.keyset.highlight
---@field NavicText? vim.api.keyset.highlight
---@field NavicSeparator? vim.api.keyset.highlight
---@field NavicIconsMethod? vim.api.keyset.highlight
---@field NavicIconsFunction? vim.api.keyset.highlight
---@field NavicIconsField? vim.api.keyset.highlight
---@field NavicIconsVariable? vim.api.keyset.highlight
---@field NavicIconsClass? vim.api.keyset.highlight
---@field NavicIconsInterface? vim.api.keyset.highlight
---@field NavicIconsModule? vim.api.keyset.highlight
---@field NavicIconsNamespace? vim.api.keyset.highlight
---@field NavicIconsProperty? vim.api.keyset.highlight
---@field NavicIconsUnit? vim.api.keyset.highlight
---@field NavicIconsEnum? vim.api.keyset.highlight
---@field NavicIconsKeyword? vim.api.keyset.highlight
---@field NavicIconsSnippet? vim.api.keyset.highlight
---@field NavicIconsColor? vim.api.keyset.highlight
---@field NavicIconsFile? vim.api.keyset.highlight
---@field NavicIconsReference? vim.api.keyset.highlight
---@field NavicIconsFolder? vim.api.keyset.highlight
---@field NavicIconsEnumMember? vim.api.keyset.highlight
---@field NavicIconsConstant? vim.api.keyset.highlight
---@field NavicIconsStruct? vim.api.keyset.highlight
---@field NavicIconsEvent? vim.api.keyset.highlight
---@field NavicIconsOperator? vim.api.keyset.highlight
---@field NavicIconsTypeParameter? vim.api.keyset.highlight
---@field CmpItemKindText? vim.api.keyset.highlight
---@field CmpItemKindMethod? vim.api.keyset.highlight
---@field CmpItemKindFunction? vim.api.keyset.highlight
---@field CmpItemKindField? vim.api.keyset.highlight
---@field CmpItemKindVariable? vim.api.keyset.highlight
---@field CmpItemKindClass? vim.api.keyset.highlight
---@field CmpItemKindInterface? vim.api.keyset.highlight
---@field CmpItemKindModule? vim.api.keyset.highlight
---@field CmpItemKindProperty? vim.api.keyset.highlight
---@field CmpItemKindUnit? vim.api.keyset.highlight
---@field CmpItemKindEnum? vim.api.keyset.highlight
---@field CmpItemKindKeyword? vim.api.keyset.highlight
---@field CmpItemKindSnippet? vim.api.keyset.highlight
---@field CmpItemKindColor? vim.api.keyset.highlight
---@field CmpItemKindFile? vim.api.keyset.highlight
---@field CmpItemKindReference? vim.api.keyset.highlight
---@field CmpItemKindFolder? vim.api.keyset.highlight
---@field CmpItemKindEnumMember? vim.api.keyset.highlight
---@field CmpItemKindConstant? vim.api.keyset.highlight
---@field CmpItemKindStruct? vim.api.keyset.highlight
---@field CmpItemKindEvent? vim.api.keyset.highlight
---@field CmpItemKindOperator? vim.api.keyset.highlight
---@field CmpItemKindTypeParameter? vim.api.keyset.highlight
---@field IblIndent? vim.api.keyset.highlight
---@field IblScope? vim.api.keyset.highlight
---@field NeoTreeNormal? vim.api.keyset.highlight
---@field NeoTreeNormalNC? vim.api.keyset.highlight
---@field NeoTreeDotFile? vim.api.keyset.highlight
---@field NeoTreeFileNameOpened? vim.api.keyset.highlight
---@field NeoTreeFloatBorder? vim.api.keyset.highlight
---@field NeoTreeFloatTitle? vim.api.keyset.highlight
---@field NeoTreeGitAdded? vim.api.keyset.highlight
---@field NeoTreeGitConflict? vim.api.keyset.highlight
---@field NeoTreeGitDeleted? vim.api.keyset.highlight
---@field NeoTreeGitIgnored? vim.api.keyset.highlight
---@field NeoTreeGitModified? vim.api.keyset.highlight
---@field NeoTreeGitUnstaged? vim.api.keyset.highlight
---@field NeoTreeGitUntracked? vim.api.keyset.highlight
---@field NeoTreeGitStaged? vim.api.keyset.highlight
---@field NvimTreeSymlink? vim.api.keyset.highlight
---@field NvimTreeSymlinkIcon? vim.api.keyset.highlight
---@field NvimTreeFolderName? vim.api.keyset.highlight
---@field NvimTreeRootFolder? vim.api.keyset.highlight
---@field NvimTreeFolderIcon? vim.api.keyset.highlight
---@field NvimTreeEmptyFolderName? vim.api.keyset.highlight
---@field NvimTreeExecFile? vim.api.keyset.highlight
---@field NvimTreeOpenedFile? vim.api.keyset.highlight
---@field NvimTreeModifiedFile? vim.api.keyset.highlight
---@field NvimTreeSpecialFile? vim.api.keyset.highlight
---@field NvimTreeIndentMarker? vim.api.keyset.highlight
---@field NvimTreeGitDirty? vim.api.keyset.highlight
---@field NvimTreeGitStaged? vim.api.keyset.highlight
---@field NvimTreeGitMerge? vim.api.keyset.highlight
---@field NvimTreeGitRenamed? vim.api.keyset.highlight
---@field NvimTreeGitNew? vim.api.keyset.highlight
---@field NvimTreeGitDeleted? vim.api.keyset.highlight
---@field NvimTreeNormal? vim.api.keyset.highlight
---@field NvimTreeNormalFloat? vim.api.keyset.highlight
---@field NvimTreeEndOfBuffer? vim.api.keyset.highlight
---@field NvimTreeWinSeparator? vim.api.keyset.highlight
---@field WhichKey? vim.api.keyset.highlight
---@field WhichKeyNormal? vim.api.keyset.highlight
---@field WhichKeyDesc? vim.api.keyset.highlight
---@field WhichKeySeparator? vim.api.keyset.highlight
---@field WhichKeyGroup? vim.api.keyset.highlight
---@field DashboardHeader? vim.api.keyset.highlight
---@field DashboardFooter? vim.api.keyset.highlight
---@field DashboardDesc? vim.api.keyset.highlight
---@field DashboardKey? vim.api.keyset.highlight
---@field DashboardIcon? vim.api.keyset.highlight
---@field DashboardShotCut? vim.api.keyset.highlight
---@field GitSignsAdd? vim.api.keyset.highlight
---@field GitSignsChange? vim.api.keyset.highlight
---@field GitSignsDelete? vim.api.keyset.highlight
---@field NeogitCursorLine? vim.api.keyset.highlight
---@field NeogitBranch? vim.api.keyset.highlight
---@field NeogitRemote? vim.api.keyset.highlight
---@field NeogitHunkHeader? vim.api.keyset.highlight
---@field NeogitHunkHeaderHighlight? vim.api.keyset.highlight
---@field NeogitDiffContextHighlight? vim.api.keyset.highlight
---@field NeogitDiffContext? vim.api.keyset.highlight
---@field NeogitDiffDeleteHighlight? vim.api.keyset.highlight
---@field NeogitDiffDelete? vim.api.keyset.highlight
---@field NeogitDiffAddHighlight? vim.api.keyset.highlight
---@field NeogitDiffAdd? vim.api.keyset.highlight
---@field TodoFgTODO? vim.api.keyset.highlight
---@field TodoFgWARN? vim.api.keyset.highlight
---@field TodoFgTEST? vim.api.keyset.highlight
---@field TodoFgPERF? vim.api.keyset.highlight
---@field TodoFgNOTE? vim.api.keyset.highlight
---@field TodoFgHACK? vim.api.keyset.highlight
---@field TodoFgFIX? vim.api.keyset.highlight
---@field TodoSignTODO? vim.api.keyset.highlight
---@field TodoSignWARN? vim.api.keyset.highlight
---@field TodoSignTEST? vim.api.keyset.highlight
---@field TodoSignPERF? vim.api.keyset.highlight
---@field TodoSignNOTE? vim.api.keyset.highlight
---@field TodoSignHACK? vim.api.keyset.highlight
---@field TodoSignFIX? vim.api.keyset.highlight
---@field TodoBgTODO? vim.api.keyset.highlight
---@field TodoBgWARN? vim.api.keyset.highlight
---@field TodoBgTEST? vim.api.keyset.highlight
---@field TodoBgPERF? vim.api.keyset.highlight
---@field TodoBgNOTE? vim.api.keyset.highlight
---@field TodoBgHACK? vim.api.keyset.highlight
---@field TodoBgFIX? vim.api.keyset.highlight
---@field LazyH1? vim.api.keyset.highlight
---@field LazyButton? vim.api.keyset.highlight
---@field LazyButtonActive? vim.api.keyset.highlight
---@field LazyReasonStart? vim.api.keyset.highlight
---@field TelescopeSelection? vim.api.keyset.highlight
---@field TelescopeSelectionCaret? vim.api.keyset.highlight
---@field TelescopeMultiIcon? vim.api.keyset.highlight
---@field TelescopeNormal? vim.api.keyset.highlight
---@field TelescopePreviewNormal? vim.api.keyset.highlight
---@field TelescopePromptNormal? vim.api.keyset.highlight
---@field TelescopeResultsNormal? vim.api.keyset.highlight
---@field TelescopeBorder? vim.api.keyset.highlight
---@field TelescopePromptBorder? vim.api.keyset.highlight
---@field TelescopeResultsBorder? vim.api.keyset.highlight
---@field TelescopePreviewBorder? vim.api.keyset.highlight
---@field TelescopeTitle? vim.api.keyset.highlight
---@field TelescopePromptTitle? vim.api.keyset.highlight
---@field TelescopeResultsTitle? vim.api.keyset.highlight
---@field TelescopePreviewTitle? vim.api.keyset.highlight
---@field TelescopeMatching? vim.api.keyset.highlight
---@field TelescopePreviewMatch? vim.api.keyset.highlight
---@field TelescopePromptCounter? vim.api.keyset.highlight
---@field TelescopePromptPrefix? vim.api.keyset.highlight
---@field NoiceFormatProgressTodo? vim.api.keyset.highlight
---@field NoiceFormatProgressDone? vim.api.keyset.highlight
---@field NoiceLspProgressSpinner? vim.api.keyset.highlight
---@field NoiceLspProgressClient? vim.api.keyset.highlight
---@field NoiceLspProgressTitle? vim.api.keyset.highlight
---@field HopNextKey? vim.api.keyset.highlight
---@field HopNextKey1? vim.api.keyset.highlight
---@field HopUnmatched? vim.api.keyset.highlight
---@field MiniStatuslineModeNormal? vim.api.keyset.highlight
---@field MiniStatuslineModeInsert? vim.api.keyset.highlight
---@field MiniStatuslineModeVisual? vim.api.keyset.highlight
---@field MiniStatuslineModeReplace? vim.api.keyset.highlight
---@field MiniStatuslineModeCommand? vim.api.keyset.highlight
---@field MinistatusLineFileName? vim.api.keyset.highlight
---@field MiniStatuslineDevinfo? vim.api.keyset.highlight
---@field MiniStatuslineFileinfo? vim.api.keyset.highlight
---@field MiniStatuslineInactive? vim.api.keyset.highlight
---@field MiniTablineCurrent? vim.api.keyset.highlight
---@field MiniTablineVisible? vim.api.keyset.highlight
---@field MiniTablineHidden? vim.api.keyset.highlight
---@field MiniTablineModifiedCurrent? vim.api.keyset.highlight
---@field MiniTablineModifiedVisible? vim.api.keyset.highlight
---@field MiniTablineModifiedHidden? vim.api.keyset.highlight
---@field MiniTablineFill? vim.api.keyset.highlight
---@field MiniTablineTabpagesection? vim.api.keyset.highlight
---@field MiniStarterCurrent? vim.api.keyset.highlight
---@field MiniStarterHeader? vim.api.keyset.highlight
---@field MiniStarterFooter? vim.api.keyset.highlight
---@field MiniStarterItem? vim.api.keyset.highlight
---@field MiniStarterItemBullet? vim.api.keyset.highlight
---@field MiniStarterItemPrefix? vim.api.keyset.highlight
---@field MiniStarterSection? vim.api.keyset.highlight
---@field MiniStarterQuery? vim.api.keyset.highlight
---@field MiniCursorword? vim.api.keyset.highlight
---@field RainbowDelimiterRed? vim.api.keyset.highlight
---@field RainbowDelimiteYellow? vim.api.keyset.highlight
---@field RainbowDelimiterBlue? vim.api.keyset.highlight
---@field RainbowDelimiterOrange? vim.api.keyset.highlight
---@field RainbowDelimiterGreen? vim.api.keyset.highlight
---@field RainbowDelimiterViolet? vim.api.keyset.highlight
---@field RainbowDelimiterCyan? vim.api.keyset.highlight

View file

@ -1,841 +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 BufferLineSeparator? table
---@field BufferLineSeparatorSelected? table
---@field BufferLineBufferSelected? table
---@field BufferLineFill? table
---@field BufferLineIndicatorSelected? table
---@field BufferLineBufferVisible? 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.cyan, bg = colors.shade_cyan })
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.cyan, bg = colors.shade_cyan, 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['bufferline.nvim'] then
nvim_set_hl('BufferLineSeparator', { fg = colors.base04, bg = colors.base04 })
nvim_set_hl('BufferLineSeparatorSelected', { fg = colors.base04, bg = colors.base03 })
nvim_set_hl('BufferLineBufferSelected', { fg = colors.base0, bold = true }, config)
nvim_set_hl('BufferLineFill', { fg = colors.base0, bg = colors.base04 })
nvim_set_hl('BufferLineIndicatorSelected', { fg = colors.base0 })
nvim_set_hl('BufferLineBufferVisible', { fg = colors.base01, bg = colors.base03 }, config)
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 })
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

View file

@ -1,841 +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 BufferLineSeparator? table
---@field BufferLineSeparatorSelected? table
---@field BufferLineBufferSelected? table
---@field BufferLineFill? table
---@field BufferLineIndicatorSelected? table
---@field BufferLineBufferVisible? 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.cyan, bg = colors.shade_cyan })
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.cyan, bg = colors.shade_cyan, 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['bufferline.nvim'] then
nvim_set_hl('BufferLineSeparator', { fg = colors.base04, bg = colors.base04 })
nvim_set_hl('BufferLineSeparatorSelected', { fg = colors.base04, bg = colors.base03 })
nvim_set_hl('BufferLineBufferSelected', { fg = colors.base0, bold = true }, config)
nvim_set_hl('BufferLineFill', { fg = colors.base0, bg = colors.base04 })
nvim_set_hl('BufferLineIndicatorSelected', { fg = colors.base0 })
nvim_set_hl('BufferLineBufferVisible', { fg = colors.base01, bg = colors.base03 }, config)
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 })
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

View file

@ -6,33 +6,9 @@ local M = {}
M.config = require 'dracula.config'
---@param config? dracula.config
M.setup = function(config)
M.config = vim.tbl_deep_extend('force', M.config, config)
end
M.load = function(theme)
theme = theme or ''
if vim.g.colors_name then
vim.cmd 'hi clear'
end
if vim.fn.exists 'syntax_on' then
vim.cmd 'syntax reset'
end
vim.g.colors_name = theme
local ok, highlights = pcall(require, 'dracula.highlights.' .. theme)
if not ok then
highlights = require 'dracula.highlights'
end
local colors = {}
ok, colors = pcall(require, 'dracula.palette.' .. theme)
if not ok then
colors = require 'dracula.palette'
end
highlights.set_highlight(colors, M.config)
M.config = vim.tbl_deep_extend('force', M.config, config or {})
end
return M

View file

@ -1,4 +0,0 @@
{pkgs ? import <nixpkgs> {}}:
pkgs.mkShell {
nativeBuildInputs = with pkgs.buildPackages; [luajitPackages.vusted stylua];
}

View file

@ -1,6 +1,6 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
line_endings = 'Unix'
indent_type = 'Spaces'
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "None"
quote_style = 'AutoPreferSingle'
call_parentheses = 'None'

View file

@ -1,127 +0,0 @@
local nvim_get_hl = require('dracula.utils').nvim_get_hl
describe('dracula.load', function()
setup(function()
vim.cmd.colorscheme 'dracula'
end)
test('name', function()
local expected = 'dracula'
assert.equal(expected, vim.g.colors_name)
end)
test('palette', function()
local colors = require 'dracula.palette'
assert.True(type(colors) == 'table')
end)
test('default config', function()
local config = require 'dracula.config'
assert.True(type(config) == 'table')
end)
test('set_highlight', function()
local Comment = nvim_get_hl 'Comment'
assert.True('#6272A4' == Comment.fg)
local Constant = nvim_get_hl 'Constant'
assert.True('#BD93F9' == Constant.fg)
local String = nvim_get_hl 'String'
assert.True('#F1FA8C' == String.fg)
local Character = nvim_get_hl 'Character'
assert.True('#F1FA8C' == Character.fg)
local Number = nvim_get_hl 'Number'
assert.True('#BD93F9' == Number.fg)
local Boolean = nvim_get_hl 'Boolean'
assert.True('#BD93F9' == Boolean.fg)
local Float = nvim_get_hl 'Float'
assert.True('#BD93F9' == Float.fg)
local Identifier = nvim_get_hl 'Identifier'
assert.True('#F8F8F2' == Identifier.fg)
local Function = nvim_get_hl 'Function'
assert.True('#50FA7A' == Function.fg)
local Statement = nvim_get_hl 'Statement'
assert.True('#FF79C6' == Statement.fg)
local Conditional = nvim_get_hl 'Conditional'
assert.True('#FF79C6' == Conditional.fg)
local Repeat = nvim_get_hl 'Repeat'
assert.True('#FF79C6' == Repeat.fg)
local Label = nvim_get_hl 'Label'
assert.True('#FF79C6' == Label.fg)
local Operator = nvim_get_hl 'Operator'
assert.True('#FF79C6' == Operator.fg)
local Keyword = nvim_get_hl 'Keyword'
assert.True('#FF79C6' == Keyword.fg)
local Exception = nvim_get_hl 'Exception'
assert.True('#FF79C6' == Exception.fg)
local PreProc = nvim_get_hl 'PreProc'
assert.True('#FF79C6' == PreProc.fg)
local Include = nvim_get_hl 'Include'
assert.True('#FF79C6' == Include.fg)
local Define = nvim_get_hl 'Define'
assert.True('#FF79C6' == Define.fg)
local Macro = nvim_get_hl 'Macro'
assert.True('#FF79C6' == Macro.fg)
local PreCondit = nvim_get_hl 'PreCondit'
assert.True('#FF79C6' == PreCondit.fg)
local Type = nvim_get_hl 'Type'
assert.True('#8BE9FD' == Type.fg)
local StorageClass = nvim_get_hl 'StorageClass'
assert.True('#FF79C6' == StorageClass.fg)
local Structure = nvim_get_hl 'Structure'
assert.True('#8BE9FD' == Structure.fg)
local Typedef = nvim_get_hl 'Typedef'
assert.True('#FF79C6' == Typedef.fg)
local Special = nvim_get_hl 'Special'
assert.True('#FF5555' == Special.fg)
local SpecialChar = nvim_get_hl 'SpecialChar'
assert.True('#BD93F9' == SpecialChar.fg)
local Tag = nvim_get_hl 'Tag'
assert.True('#FF79C6' == Tag.fg)
local Delimiter = nvim_get_hl 'Delimiter'
assert.True('#F8F8F2' == Delimiter.fg)
local SpecialComment = nvim_get_hl 'SpecialComment'
assert.True('#FF79C6' == SpecialComment.fg)
local Debug = nvim_get_hl 'Debug'
assert.True('#FF79C6' == Debug.fg)
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)
local Todo = nvim_get_hl 'Todo'
assert.True('#BD93F9' == Todo.fg)
end)
end)

View file

@ -2,11 +2,17 @@ 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 = {
Comment = { italic = true },
},
on_colors = function()
return {
mycolor = '#ffffff',
mycolor = 0xffffff,
}
end,
on_highlights = function(colors)
@ -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)