Compare commits

...

52 commits
v3.2.0 ... main

Author SHA1 Message Date
github-actions[bot] a8085e2988 chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2026-04-17 21:41:12 +00:00
Max Del Canto 3e28afbf18
Merge pull request #107 from vec2pt/main
Added support for indentmini.nvim.
2026-04-17 18:40:50 -03:00
vec2pt 2d2dab01b2
Update solarized.nvim.txt 2026-04-17 15:32:02 +02:00
vec2pt 0c3cbe55c9 Support indentmini https://github.com/nvimdev/indentmini.nvim 2026-04-17 15:25:00 +02:00
Max Del Canto c0dfe1cbfa
Merge pull request #104 from maxmx03/release-please--branches--main--components--release-please-action
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
chore(main): release 3.6.0
2024-10-31 09:54:05 -03:00
github-actions[bot] 29df447aa1
chore(main): release 3.6.0 2024-10-31 12:48:40 +00:00
github-actions[bot] af0295172d chore(doc): auto generate docs 2024-10-31 12:48:35 +00:00
Max Miliano 5d3cbf03a5 feat: term colors 2024-10-31 09:48:12 -03:00
Max Del Canto f85f000c3e
Merge pull request #96 from maxmx03/release-please--branches--main--components--release-please-action
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
chore(main): release 3.5.0
2024-10-02 16:53:08 -03:00
github-actions[bot] ecf289eecc chore(doc): auto generate docs 2024-10-02 19:52:38 +00:00
Max Miliano ad113ae656 docs: default config 2024-10-02 16:52:12 -03:00
Max Miliano 3251376b2e refactor: flashmatch 2024-10-02 16:44:16 -03:00
github-actions[bot] 9fc9f7382f
chore(main): release 3.5.0 2024-10-02 19:37:18 +00:00
github-actions[bot] 9e2b046cf6 chore(doc): auto generate docs 2024-10-02 19:37:10 +00:00
Max Miliano 952ed14cf7 feat: hl flash 2024-10-02 16:36:45 -03:00
github-actions[bot] fe6d32a3eb chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-28 00:26:04 +00:00
Max Miliano 7e8078b597 refactor: treesitter-operator 2024-09-27 21:25:30 -03:00
github-actions[bot] 1293bec922 chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-20 12:18:41 +00:00
Max Miliano e9fd95bd96 fix: normalfloat's transparent config 2024-09-20 09:18:21 -03:00
github-actions[bot] 3090084013 chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-19 13:46:46 +00:00
Max Miliano 335b4353b1 docs: update default config
user can disable all styles.
2024-09-19 10:46:22 -03:00
Max Miliano b4772fdb26 refactor: makefile 2024-09-19 10:40:15 -03:00
Max Miliano 3ae785b553 fix: prevent error when user pass a nil value to setup
added more tests and makefile
2024-09-19 10:39:43 -03:00
github-actions[bot] 01d8c0afe1 chore(doc): auto generate docs 2024-09-19 13:32:32 +00:00
Max Del Canto 5c9c2a45b4
Merge pull request #97 from iton0/main
feat: add enabled field for styles class
2024-09-19 10:32:09 -03:00
Max Del Canto 4192185075
Update config.lua 2024-09-19 09:51:49 -03:00
iton0 0ff0f10a31 feat: add enabled field for styles class
- updated README.md to reflect new option

Defaults to true. If enabled is false remove all styles. Allows for
easier modification for users who do not want any styles with the
colorscheme.
2024-09-18 22:34:07 -04:00
github-actions[bot] be02e3baf6 chore(doc): auto generate docs
Some checks are pending
Test / pandoc to vimdoc (push) Waiting to run
Test / lint (push) Waiting to run
release-please / release-please (push) Waiting to run
2024-09-18 20:26:43 +00:00
Max Miliano 6d11c340d2 fix: markup italic 2024-09-18 17:26:19 -03:00
github-actions[bot] 50edf5a4ee chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-11 15:39:11 +00:00
Max Del Canto a6383a31a1
Merge pull request #94 from maxmx03/release-please--branches--main--components--release-please-action
chore(main): release 3.4.0
2024-09-11 12:38:51 -03:00
github-actions[bot] 2052933e68
chore(main): release 3.4.0
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
2024-09-06 18:05:23 +00:00
Max Miliano b97faa8f67 feat: add/remove css, scss queries
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-06 15:04:57 -03:00
github-actions[bot] a7039bb07b chore(doc): auto generate docs
Some checks are pending
Test / lint (push) Waiting to run
Test / pandoc to vimdoc (push) Waiting to run
release-please / release-please (push) Waiting to run
2024-09-06 16:59:06 +00:00
Max Miliano b4ea862ee9 feat: cursorlinenr colors 2024-09-06 13:58:43 -03:00
github-actions[bot] 8f8d4548cb chore(doc): auto generate docs 2024-09-06 13:58:39 -03:00
Max Miliano c87752fd71 fix: solarized-light lsp property and parameter 2024-09-06 13:58:39 -03:00
github-actions[bot] 1a34eb1c4d chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-03 18:07:22 +00:00
Max Miliano ed090c9eff feat(variants): editor looks different on each variant 2024-09-03 15:06:59 -03:00
github-actions[bot] 655183da8f chore(doc): auto generate docs
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
2024-09-02 13:45:59 +00:00
Max Miliano 7cd978401e feat: error_lens config 2024-09-02 10:45:36 -03:00
Max Del Canto 151aabdeb7
Merge pull request #92 from maxmx03/release-please--branches--main--components--release-please-action
Some checks failed
Test / lint (push) Has been cancelled
Test / pandoc to vimdoc (push) Has been cancelled
release-please / release-please (push) Has been cancelled
chore(main): release 3.3.0
2024-08-30 15:16:05 -03:00
github-actions[bot] f28382812f chore(doc): auto generate docs 2024-08-30 18:11:47 +00:00
Max Miliano 4c590266ae docs: variants config 2024-08-30 15:11:24 -03:00
github-actions[bot] a59c47012d chore(doc): auto generate docs 2024-08-30 18:05:45 +00:00
Max Del Canto 5f06dae692
Update README.md 2024-08-30 15:05:27 -03:00
github-actions[bot] e3a6f13558
chore(main): release 3.3.0 2024-08-30 17:47:59 +00:00
github-actions[bot] 4f0ff930bc chore(doc): auto generate docs 2024-08-30 17:47:29 +00:00
Max Miliano 650dbd58fe feat: solarized theme based on seasons 2024-08-30 14:47:06 -03:00
github-actions[bot] ec057bcca5 chore(doc): auto generate docs
Some checks are pending
Test / lint (push) Waiting to run
Test / pandoc to vimdoc (push) Waiting to run
release-please / release-please (push) Waiting to run
2024-08-30 11:29:56 +00:00
Max Del Canto 56ca119fe9
Merge pull request #91 from bloznelis/patch-1
fix(docs): fix code example under Config Highlights in README
2024-08-30 08:29:37 -03:00
Lukas Bloznelis 8ca7c63acc
fix(docs): fix code example under Config Highlighs in README 2024-08-30 12:33:25 +03:00
18 changed files with 1673 additions and 695 deletions

View file

@ -1,8 +1,12 @@
{
"workspace.library": [
"/home/milianor/neovim/share/nvim/runtime",
"${3rd}/luv/library",
"${3rd}/busted/library",
"${3rd}/luassert/library"
]
}
"workspace.library": [
"/usr/share/nvim/runtime",
"${3rd}/luv/library",
"${3rd}/busted/library",
"~/.local/share/nvim/lazy/solarized.nvim",
"${3rd}/luassert/library"
],
"diagnostics.disable": [
"duplicate-doc-field"
]
}

View file

@ -1,5 +1,54 @@
# Changelog
## [3.6.0](https://github.com/maxmx03/solarized.nvim/compare/v3.5.0...v3.6.0) (2024-10-31)
### Features
* term colors ([5d3cbf0](https://github.com/maxmx03/solarized.nvim/commit/5d3cbf03a554785c3e707a532166659801c45ef6))
## [3.5.0](https://github.com/maxmx03/solarized.nvim/compare/v3.4.0...v3.5.0) (2024-10-02)
### Features
* add enabled field for styles class ([0ff0f10](https://github.com/maxmx03/solarized.nvim/commit/0ff0f10a31c5d233427d5c2063c72604d271f2f2))
* hl flash ([952ed14](https://github.com/maxmx03/solarized.nvim/commit/952ed14cf7074326c152e293d4a13ecc1f2f5f44))
### Bug Fixes
* markup italic ([6d11c34](https://github.com/maxmx03/solarized.nvim/commit/6d11c340d2cca5c889e5fefedf55dc7c81ad4ecd))
* normalfloat's transparent config ([e9fd95b](https://github.com/maxmx03/solarized.nvim/commit/e9fd95bd9631882af9d76c3df6004becb5fe3ed9))
* prevent error when user pass a nil value to setup ([3ae785b](https://github.com/maxmx03/solarized.nvim/commit/3ae785b55367ef25ccb35569915461b391becd75))
## [3.4.0](https://github.com/maxmx03/solarized.nvim/compare/v3.3.0...v3.4.0) (2024-09-06)
### Features
* add/remove css, scss queries ([b97faa8](https://github.com/maxmx03/solarized.nvim/commit/b97faa8f679396bd1e23464242d2b5b86dc920c8))
* cursorlinenr colors ([b4ea862](https://github.com/maxmx03/solarized.nvim/commit/b4ea862ee9e80392c84fcd19e1a4ef7adffcf323))
* error_lens config ([7cd9784](https://github.com/maxmx03/solarized.nvim/commit/7cd978401e2767fc77fe86bb8fc531869fb2f79e))
* **variants:** editor looks different on each variant ([ed090c9](https://github.com/maxmx03/solarized.nvim/commit/ed090c9effacf60c2f2939d9a068e31d483ff6c7))
### Bug Fixes
* solarized-light lsp property and parameter ([c87752f](https://github.com/maxmx03/solarized.nvim/commit/c87752fd71feba3fc2f473b7fbafaf6c76a70977))
## [3.3.0](https://github.com/maxmx03/solarized.nvim/compare/v3.2.0...v3.3.0) (2024-08-30)
### Features
* solarized theme based on seasons ([650dbd5](https://github.com/maxmx03/solarized.nvim/commit/650dbd58fe622a93ac93526476e597e91f810014))
### Bug Fixes
* **docs:** fix code example under Config Highlighs in README ([8ca7c63](https://github.com/maxmx03/solarized.nvim/commit/8ca7c63acc1edb2a7077900d295d53b4bc78eb9a))
## [3.2.0](https://github.com/maxmx03/solarized.nvim/compare/v3.1.1...v3.2.0) (2024-08-29)

View file

@ -11,8 +11,6 @@ Solarized is a sixteen color palette (eight monotones, eight accent colors)
designed for use with terminal and gui applications.
[click here to learn more](https://ethanschoonover.com/solarized/)
![Component 3](https://github.com/user-attachments/assets/bee944af-df49-46dc-ad9b-c732369b4a3f)
![Component 1](https://github.com/user-attachments/assets/11d8bd97-0f99-4413-937a-a5eaf4b2a4db)
<!--toc:start-->
@ -27,19 +25,19 @@ designed for use with terminal and gui applications.
- [Docs](#docs)
- [Commands](#commands)
- [Default Config](#default-config)
- [Config Variant](#config-variant)
- [Config Transparency](#config-transparency)
- [Config Styles](#config-styles)
- [Config Highlights](#config-highlights)
- [Config Colors](#config-colors)
- [Config Plugins](#config-plugins)
- [Config Error Lens](#config-error-lens)
- [Lualine](#lualine)
- [Barbecue](#barbecue)
- [Api](#api)
- [Get Colors](#get-colors)
- [Color utils](#color-utils)
- [Contributing](#contributing)
- [Designed by](#designed-by)
- [Credits and Reference 🎉](#credits-and-reference-🎉)
- [Credits and Reference](#credits-and-reference)
<!--toc:end-->
## Features
@ -172,7 +170,13 @@ require('solarized').setup({
on_highlights = nil,
on_colors = nil,
palette = 'solarized', -- solarized (default) | selenized
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
error_lens = {
text = false,
symbol = false,
},
styles = {
enabled = true,
types = {},
functions = {},
parameters = {},
@ -188,6 +192,7 @@ require('solarized').setup({
navic = true,
cmp = true,
indentblankline = true,
indentmini = true,
neotree = true,
nvimtree = true,
whichkey = true,
@ -211,12 +216,26 @@ require('solarized').setup({
alpha = true,
yanky = true,
gitgutter = true,
mason = true,
flash = true,
},
})
vim.cmd.colorscheme = 'solarized'
```
## Config Variant
Solarized includes four variants: spring, summer, autumn, and winter.
[preview](https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md)
```lua
require('solarized').setup {
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
}
```
## Config Transparency
By default, transparency is turned off, but you can easily enable it and
@ -256,6 +275,13 @@ require('solarized').setup({
})
```
You can also disable all highlight group styles.
```lua
require('solarized').setup({
styles = { enabled = false },
})
```
## Config Highlights
The `highlights` config allows you to customize the highlights groups.
@ -276,7 +302,7 @@ require('solarized').setup {
Visual = { bg = colors.base02, standout = true },
Function = { fg = colors.yellow },
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
Search = { fg = colors.violet, bg = shade(colors.violet, 5),
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
NormalFloat = { bg = darken(colors.base03, 25) }
}
@ -346,6 +372,29 @@ return {
}
```
## Config Error Lens
Enables additional highlights for diagnostic virtual text and symbols.
```lua
return {
'maxmx03/solarized.nvim',
lazy = false,
priority = 1000,
---@type solarized.config
opts = {
error_lens = {
text = true,
symbol = true,
}
},
config = function(_, opts)
require('solarized').setup(opts)
vim.cmd.colorscheme 'solarized'
end,
}
```
## Lualine
```lua
@ -425,7 +474,7 @@ Pull requests are welcome and appreciated.
Ethan Schoonover
## Credits and Reference 🎉
## Credits and Reference
- [solarized-vim](https://github.com/altercation/vim-colors-solarized)
- [tokyonight](https://github.com/folke/tokyonight.nvim)

17
VARIANTS.md Normal file
View file

@ -0,0 +1,17 @@
# Variants
autumn
![autumn](https://github.com/user-attachments/assets/bcc3cd16-a613-42ac-a74a-69a4da8a866a)
spring
![spring](https://github.com/user-attachments/assets/eb84a3d3-faa3-48b7-b52e-6728d6d65801)
winter
![winter](https://github.com/user-attachments/assets/7ae41baa-8916-4612-8468-0579b93aee72)
summer
![summer](https://github.com/user-attachments/assets/3ea208ac-abd0-4386-85a3-032c11547cb5)

View file

@ -1,8 +1,7 @@
; extends
((pseudo_class_selector) @type (#set! "priority" 125))
((class_selector) @type (#set! "priority" 125))
((plain_value) @constant (#set! "priority" 125))
((id_selector) @constructor (#set! "priority" 125))
((selectors) @type (#set! "priority" 125))
(tag_name) @tag
(unit) @keyword
(integer_value) @number
(property_name) @field

View file

@ -1,2 +1,3 @@
; extends
((nesting_selector) @keyword (#set! "priority" 125))
(declaration (variable_value) @string)

View file

@ -1,4 +1,5 @@
*solarized.nvim.txt* For NVIM v0.9.4 Last change: 2024 August 29
*solarized.nvim.txt*
For NVIM v0.9.4 Last change: 2026 April 17
==============================================================================
Table of Contents *solarized.nvim-table-of-contents*
@ -11,17 +12,19 @@ Table of Contents *solarized.nvim-table-of-contents*
- Docs |solarized.nvim-docs|
- Commands |solarized.nvim-commands|
- Default Config |solarized.nvim-default-config|
- Config Variant |solarized.nvim-config-variant|
- Config Transparency |solarized.nvim-config-transparency|
- Config Styles |solarized.nvim-config-styles|
- Config Highlights |solarized.nvim-config-highlights|
- Config Colors |solarized.nvim-config-colors|
- Config Plugins |solarized.nvim-config-plugins|
- Config Error Lens |solarized.nvim-config-error-lens|
- Lualine |solarized.nvim-lualine|
- Barbecue |solarized.nvim-barbecue|
- Api |solarized.nvim-api|
- Contributing |solarized.nvim-contributing|
- Designed by |solarized.nvim-designed-by|
- Credits and Reference 🎉 |solarized.nvim-credits-and-reference-🎉|
- Credits and Reference |solarized.nvim-credits-and-reference|
1. Links |solarized.nvim-links|
Solarized is a sixteen color palette (eight monotones, eight accent colors)
@ -38,19 +41,19 @@ designed for use with terminal and gui applications. click here to learn more
- |solarized.nvim-docs|
- |solarized.nvim-commands|
- |solarized.nvim-default-config|
- |solarized.nvim-config-variant|
- |solarized.nvim-config-transparency|
- |solarized.nvim-config-styles|
- |solarized.nvim-config-highlights|
- |solarized.nvim-config-colors|
- |solarized.nvim-config-plugins|
- |solarized.nvim-config-error-lens|
- |solarized.nvim-lualine|
- |solarized.nvim-barbecue|
- |solarized.nvim-api|
- |solarized.nvim-get-colors|
- |solarized.nvim-color-utils|
- |solarized.nvim-contributing|
- |solarized.nvim-designed-by|
- |solarized.nvim-credits-and-reference-🎉|
- |solarized.nvim-credits-and-reference|
FEATURES *solarized.nvim-features*
@ -192,7 +195,13 @@ DEFAULT CONFIG *solarized.nvim-default-config*
on_highlights = nil,
on_colors = nil,
palette = 'solarized', -- solarized (default) | selenized
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
error_lens = {
text = false,
symbol = false,
},
styles = {
enabled = true,
types = {},
functions = {},
parameters = {},
@ -208,6 +217,7 @@ DEFAULT CONFIG *solarized.nvim-default-config*
navic = true,
cmp = true,
indentblankline = true,
indentmini = true,
neotree = true,
nvimtree = true,
whichkey = true,
@ -231,6 +241,8 @@ DEFAULT CONFIG *solarized.nvim-default-config*
alpha = true,
yanky = true,
gitgutter = true,
mason = true,
flash = true,
},
})
@ -238,6 +250,19 @@ DEFAULT CONFIG *solarized.nvim-default-config*
<
CONFIG VARIANT *solarized.nvim-config-variant*
Solarized includes four variants: spring, summer, autumn, and winter.
preview <https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md>
>lua
require('solarized').setup {
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
}
<
CONFIG TRANSPARENCY *solarized.nvim-config-transparency*
By default, transparency is turned off, but you can easily enable it and
@ -277,6 +302,14 @@ The `styles` config allows you to customize the style of a highlight group.
})
<
You can also disable all highlight group styles.
>lua
require('solarized').setup({
styles = { enabled = false },
})
<
CONFIG HIGHLIGHTS *solarized.nvim-config-highlights*
@ -298,7 +331,7 @@ example:
Visual = { bg = colors.base02, standout = true },
Function = { fg = colors.yellow },
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
Search = { fg = colors.violet, bg = shade(colors.violet, 5),
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
NormalFloat = { bg = darken(colors.base03, 25) }
}
@ -370,6 +403,30 @@ example:
<
CONFIG ERROR LENS *solarized.nvim-config-error-lens*
Enables additional highlights for diagnostic virtual text and symbols.
>lua
return {
'maxmx03/solarized.nvim',
lazy = false,
priority = 1000,
---@type solarized.config
opts = {
error_lens = {
text = true,
symbol = true,
}
},
config = function(_, opts)
require('solarized').setup(opts)
vim.cmd.colorscheme 'solarized'
end,
}
<
LUALINE *solarized.nvim-lualine*
>lua
@ -455,7 +512,7 @@ DESIGNED BY *solarized.nvim-designed-by*
Ethan Schoonover
CREDITS AND REFERENCE 🎉 *solarized.nvim-credits-and-reference-🎉*
CREDITS AND REFERENCE *solarized.nvim-credits-and-reference*
- solarized-vim <https://github.com/altercation/vim-colors-solarized>
- tokyonight <https://github.com/folke/tokyonight.nvim>
@ -465,10 +522,9 @@ CREDITS AND REFERENCE 🎉 *solarized.nvim-credits-and-reference-🎉*
==============================================================================
1. Links *solarized.nvim-links*
1. *Component 3*: https://github.com/user-attachments/assets/bee944af-df49-46dc-ad9b-c732369b4a3f
2. *Component 1*: https://github.com/user-attachments/assets/11d8bd97-0f99-4413-937a-a5eaf4b2a4db
3. *Ethan Schoonover*: https://github.com/altercation.png?size=100
4. *Raphael*: https://github.com/glepnir.png?size=100
1. *Component 1*: https://github.com/user-attachments/assets/11d8bd97-0f99-4413-937a-a5eaf4b2a4db
2. *Ethan Schoonover*: https://github.com/altercation.png?size=100
3. *Raphael*: https://github.com/glepnir.png?size=100
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>

View file

@ -1,5 +1,3 @@
services:
solarized:
build: .
volumes:
- .:/solarized

View file

@ -11,6 +11,7 @@
---@field enabled? boolean
---@class solarized.styles
---@field enabled? boolean
---@field types? vim.api.keyset.highlight
---@field functions? vim.api.keyset.highlight
---@field parameters? vim.api.keyset.highlight
@ -27,6 +28,7 @@
---@field navic? boolean
---@field cmp? boolean
---@field indentblankline? boolean
---@field indentmini? boolean
---@field neotree? boolean
---@field nvimtree? boolean
---@field whichkey? boolean
@ -53,6 +55,11 @@
---@field coc? boolean
---@field leap? boolean
---@field mason? boolean
---@field flash? boolean
---@class solarized.error_lens
---@field text? boolean
---@field symbol? boolean
---@class solarized.config
---@field transparent? solarized.transparent
@ -60,7 +67,9 @@
---@field on_colors? fun(colors: solarized.palette, color: solarized.color): solarized.palette
---@field styles? solarized.styles
---@field palette? "solarized" | "selenized"
---@field variant? "spring" | "summer" | "autumn" | "winter"
---@field plugins? solarized.plugins
---@field error_lens? solarized.error_lens
return {
transparent = {
enabled = false,
@ -77,7 +86,13 @@ return {
on_highlights = nil,
on_colors = nil,
palette = 'solarized',
variant = 'winter',
error_lens = {
text = false,
symbol = false,
},
styles = {
enabled = true,
types = {},
functions = {},
parameters = {},
@ -94,6 +109,7 @@ return {
navic = true,
cmp = true,
indentblankline = true,
indentmini = true,
neotree = true,
nvimtree = true,
whichkey = true,
@ -120,5 +136,6 @@ return {
yanky = true,
gitgutter = true,
mason = true,
flash = true,
},
}

395
lua/solarized/groups.lua Normal file
View file

@ -0,0 +1,395 @@
---@class solarized.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 Added? vim.api.keyset.highlight
---@field Changed? vim.api.keyset.highlight
---@field Removed? 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 IndentLine? vim.api.keyset.highlight
---@field IndentLineCurrent? vim.api.keyset.highlight
---@field NeoTreeTitleBar? 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 WhichKeyNormal? vim.api.keyset.highlight
---@field WhichKey? 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 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 NoiceCmdlineIcon? vim.api.keyset.highlight
---@field NoiceCmdlinePopupBorder? vim.api.keyset.highlight
---@field NoiceCmdlinePopupTitle? 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 NotifyBackground? vim.api.keyset.highlight
---@field NotifyERRORBorder? vim.api.keyset.highlight
---@field NotifyWARNBorder? vim.api.keyset.highlight
---@field NotifyINFOBorder? vim.api.keyset.highlight
---@field NotifyDEBUGBorder? vim.api.keyset.highlight
---@field NotifyTRACEBorder? vim.api.keyset.highlight
---@field NotifyERRORIcon? vim.api.keyset.highlight
---@field NotifyWARNIcon? vim.api.keyset.highlight
---@field NotifyINFOIcon? vim.api.keyset.highlight
---@field NotifyDEBUGIcon? vim.api.keyset.highlight
---@field NotifyTRACEIcon? vim.api.keyset.highlight
---@field NotifyERRORTitle? vim.api.keyset.highlight
---@field NotifyWARNTitle? vim.api.keyset.highlight
---@field NotifyINFOTitle? vim.api.keyset.highlight
---@field NotifyDEBUGTitle? vim.api.keyset.highlight
---@field NotifyTRACETitle? vim.api.keyset.highlight
---@field NotifyERRORBody? vim.api.keyset.highlight
---@field NotifyWARNBody? vim.api.keyset.highlight
---@field NotifyINFOBody? vim.api.keyset.highlight
---@field NotifyDEBUGBody? vim.api.keyset.highlight
---@field NotifyTRACEBody? 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
---@field BufferLineFill? vim.api.keyset.highlight
---@field BufferLineBufferSelected? vim.api.keyset.highlight
---@field BufferLineSeparator? vim.api.keyset.highlight
---@field BufferLineSeparatorSelected? vim.api.keyset.highlight
---@field BufferLineSeparatorVisible? vim.api.keyset.highlight
---@field LazyNormal? 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 LazyReasonEvent? vim.api.keyset.highlight
---@field RenderMarkdownH1Bg? vim.api.keyset.highlight
---@field RenderMarkdownH2Bg? vim.api.keyset.highlight
---@field RenderMarkdownH3Bg? vim.api.keyset.highlight
---@field RenderMarkdownH4Bg? vim.api.keyset.highlight
---@field RenderMarkdownH5Bg? vim.api.keyset.highlight
---@field RenderMarkdownH6Bg? 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 ALEErrorSign? vim.api.keyset.highlight
---@field ALEWarningSign? vim.api.keyset.highlight
---@field AlphaShortcut? vim.api.keyset.highlight
---@field AlphaHeader? vim.api.keyset.highlight
---@field AlphaHeaderLabel? vim.api.keyset.highlight
---@field AlphaFooter? vim.api.keyset.highlight
---@field AlphaButtons? vim.api.keyset.highlight
---@field YankyPut? vim.api.keyset.highlight
---@field YankyYanked? vim.api.keyset.highlight
---@field GitGutterAdd? vim.api.keyset.highlight
---@field GitGutterChange? vim.api.keyset.highlight
---@field GitGutterDelete? vim.api.keyset.highlight
---@field GitGutterAddLineNr? vim.api.keyset.highlight
---@field GitGutterChangeLineNr? vim.api.keyset.highlight
---@field GitGutterDeleteLineNr? vim.api.keyset.highlight
---@field CocErrorSign? vim.api.keyset.highlight
---@field CocWarningSign? vim.api.keyset.highlight
---@field CocInfoSign? vim.api.keyset.highlight
---@field CocHintSign? vim.api.keyset.highlight
---@field CocErrorVirtualText? vim.api.keyset.highlight
---@field CocWarningVirtualText? vim.api.keyset.highlight
---@field CocInfoVirtualText? vim.api.keyset.highlight
---@field CocHintVirtualText? vim.api.keyset.highlight
---@field LeapMatch? vim.api.keyset.highlight
---@field LeapLabel? vim.api.keyset.highlight
---@field LeapBackDrop? vim.api.keyset.highlight
---@field MasonHeader? vim.api.keyset.highlight
---@field MasonHighlight? vim.api.keyset.highlight
---@field MasonHighlightBlock? vim.api.keyset.highlight
---@field MasonHighlightBlockBold? vim.api.keyset.highlight

View file

@ -1,389 +1,3 @@
---@class solarized.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 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 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 Added? vim.api.keyset.highlight
---@field Changed? vim.api.keyset.highlight
---@field Removed? 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 NeoTreeTitleBar? 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 WhichKeyNormal? vim.api.keyset.highlight
---@field WhichKey? 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 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 NoiceCmdlineIcon? vim.api.keyset.highlight
---@field NoiceCmdlinePopupBorder? vim.api.keyset.highlight
---@field NoiceCmdlinePopupTitle? 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 NotifyBackground? vim.api.keyset.highlight
---@field NotifyERRORBorder? vim.api.keyset.highlight
---@field NotifyWARNBorder? vim.api.keyset.highlight
---@field NotifyINFOBorder? vim.api.keyset.highlight
---@field NotifyDEBUGBorder? vim.api.keyset.highlight
---@field NotifyTRACEBorder? vim.api.keyset.highlight
---@field NotifyERRORIcon? vim.api.keyset.highlight
---@field NotifyWARNIcon? vim.api.keyset.highlight
---@field NotifyINFOIcon? vim.api.keyset.highlight
---@field NotifyDEBUGIcon? vim.api.keyset.highlight
---@field NotifyTRACEIcon? vim.api.keyset.highlight
---@field NotifyERRORTitle? vim.api.keyset.highlight
---@field NotifyWARNTitle? vim.api.keyset.highlight
---@field NotifyINFOTitle? vim.api.keyset.highlight
---@field NotifyDEBUGTitle? vim.api.keyset.highlight
---@field NotifyTRACETitle? vim.api.keyset.highlight
---@field NotifyERRORBody? vim.api.keyset.highlight
---@field NotifyWARNBody? vim.api.keyset.highlight
---@field NotifyINFOBody? vim.api.keyset.highlight
---@field NotifyDEBUGBody? vim.api.keyset.highlight
---@field NotifyTRACEBody? 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
---@field BufferLineFill? vim.api.keyset.highlight
---@field BufferLineBufferSelected? vim.api.keyset.highlight
---@field BufferLineSeparator? vim.api.keyset.highlight
---@field BufferLineSeparatorSelected? vim.api.keyset.highlight
---@field BufferLineSeparatorVisible? vim.api.keyset.highlight
---@field LazyNormal? 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 LazyReasonEvent? vim.api.keyset.highlight
---@field RenderMarkdownH1Bg? vim.api.keyset.highlight
---@field RenderMarkdownH2Bg? vim.api.keyset.highlight
---@field RenderMarkdownH3Bg? vim.api.keyset.highlight
---@field RenderMarkdownH4Bg? vim.api.keyset.highlight
---@field RenderMarkdownH5Bg? vim.api.keyset.highlight
---@field RenderMarkdownH6Bg? 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 ALEErrorSign? vim.api.keyset.highlight
---@field ALEWarningSign? vim.api.keyset.highlight
---@field AlphaShortcut? vim.api.keyset.highlight
---@field AlphaHeader? vim.api.keyset.highlight
---@field AlphaHeaderLabel? vim.api.keyset.highlight
---@field AlphaFooter? vim.api.keyset.highlight
---@field AlphaButtons? vim.api.keyset.highlight
---@field YankyPut? vim.api.keyset.highlight
---@field YankyYanked? vim.api.keyset.highlight
---@field GitGutterAdd? vim.api.keyset.highlight
---@field GitGutterChange? vim.api.keyset.highlight
---@field GitGutterDelete? vim.api.keyset.highlight
---@field GitGutterAddLineNr? vim.api.keyset.highlight
---@field GitGutterChangeLineNr? vim.api.keyset.highlight
---@field GitGutterDeleteLineNr? vim.api.keyset.highlight
---@field CocErrorSign? vim.api.keyset.highlight
---@field CocWarningSign? vim.api.keyset.highlight
---@field CocInfoSign? vim.api.keyset.highlight
---@field CocHintSign? vim.api.keyset.highlight
---@field CocErrorVirtualText? vim.api.keyset.highlight
---@field CocWarningVirtualText? vim.api.keyset.highlight
---@field CocInfoVirtualText? vim.api.keyset.highlight
---@field CocHintVirtualText? vim.api.keyset.highlight
---@field LeapMatch? vim.api.keyset.highlight
---@field LeapLabel? vim.api.keyset.highlight
---@field LeapBackDrop? vim.api.keyset.highlight
local M = {}
local function nvim_get_hl(opts)
@ -399,6 +13,7 @@ end
---@class solarized.nvim_set_hl.config
---@field transparent? boolean
---@field styles? vim.api.keyset.highlight
---@field error_lens? boolean
---@param group_name string
---@param group_val vim.api.keyset.highlight
@ -415,6 +30,17 @@ local nvim_set_hl = function(group_name, group_val, config)
group_val = vim.tbl_extend('force', group_val, config.styles)
end
if config and config.error_lens then
local color = require 'solarized.color'
local editor = require('solarized.utils').nvim_get_hl 'Normal'
local ok, mix_color = pcall(color.blend, group_val.fg, editor.bg, 0.3)
if ok then
group_val.bg = mix_color
else
group_val.bg = color.shade(group_val.fg, 5)
end
end
val = vim.tbl_extend('force', val, group_val)
vim.api.nvim_set_hl(0, group_name, val)
else
@ -425,10 +51,41 @@ end
---@param colors solarized.palette
---@param config solarized.config
M.set_highlight = function(colors, config)
local color = require 'solarized.color'
if config.on_colors then
local color = require 'solarized.color'
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
end
local term = {
'base04',
'red',
'green',
'yellow',
'magenta',
'violet',
'cyan',
'base01',
'base01',
'orange',
'green',
'yellow',
'blue',
'red',
'green',
'base01',
}
for index, key in ipairs(term) do
vim.g['terminal_color_' .. index - 1] = colors[key]
end
local solarized_dark = require 'solarized.variants'
solarized_dark.set_variant {
colors = colors,
nvim_set_hl = nvim_set_hl,
config = config,
color = color,
}
-- EDITOR :h highlight-groups
nvim_set_hl('ColorColumn', { bg = colors.base02 })
nvim_set_hl('Conceal', { fg = colors.blue })
@ -447,32 +104,32 @@ M.set_highlight = function(colors, config)
nvim_set_hl('TermCursor', { link = 'Cursor' })
nvim_set_hl('TermCursorNC', { fg = colors.base03, bg = colors.base0 })
nvim_set_hl('ErrorMsg', { fg = colors.diag_error })
nvim_set_hl(
'WinSeparator',
{ fg = colors.base01, bg = colors.base04 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'WinSeparator',
-- { fg = colors.base01, bg = colors.base04 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('Folded', { fg = colors.base0, bg = colors.base02 })
nvim_set_hl('FoldColumn', { fg = colors.base0, bg = colors.base04 })
nvim_set_hl(
'SignColumn',
{ fg = colors.base01, bg = colors.base02 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'SignColumn',
-- { fg = colors.base01, bg = colors.base02 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('IncSearch', { fg = colors.magenta, bg = colors.mix_magenta })
nvim_set_hl('Substitute', { link = 'IncSearch' })
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base02 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'LineNr',
-- { fg = colors.base01, bg = colors.base02 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('LineNrAbove', { link = 'LineNr' })
nvim_set_hl('LineNrBelow', { link = 'LineNr' })
nvim_set_hl(
'CursorLineNr',
{ fg = colors.base1, bg = colors.base02 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'CursorLineNr',
-- { fg = colors.base1, bg = colors.base02 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('CursorLineFold', { link = 'FoldColumn' })
nvim_set_hl('CursorLineSign', { link = 'SignColumn' })
nvim_set_hl('MatchParen', { fg = colors.cyan })
@ -487,10 +144,12 @@ M.set_highlight = function(colors, config)
{ transparent = config.transparent.normal and config.transparent.enabled }
)
nvim_set_hl('NormalFloat', { fg = colors.base0, bg = colors.base04 }, {
transparent = config.transparent.normal and config.transparent.enabled,
transparent = config.transparent.normalfloat and config.transparent.enabled,
})
nvim_set_hl('FloatBorder', { link = 'WinSeparator' })
nvim_set_hl('FloatTitle', { fg = colors.blue })
-- nvim_set_hl('FloatBorder', { fg = colors.base01, bg = colors.base04 }, {
-- transparent = config.transparent.enabled,
-- })
-- nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue, reverse = true })
nvim_set_hl('NormalNC', { link = 'Normal' })
nvim_set_hl('Pmenu', { fg = colors.base0, bg = colors.base04 }, {
transparent = config.transparent.pmenu and config.transparent.enabled,
@ -524,59 +183,19 @@ M.set_highlight = function(colors, config)
nvim_set_hl('WinBar', { link = 'Pmenu' })
nvim_set_hl('WinBarNC', { link = 'WinBar' })
-- SYNTAX :h group-name
nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.base1, bold = true }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.blue })
nvim_set_hl('Delimiter', { fg = colors.base01 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
-- PLUGINS
if config.plugins.treesitter then
nvim_set_hl('@variable', { link = 'Identifier' })
nvim_set_hl('@variable.builtin', { link = 'Constant' })
nvim_set_hl(
'@variable.parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.parameters }
)
nvim_set_hl('@variable.member', { link = 'Identifier' })
nvim_set_hl('@variable.parameter', { link = 'Parameter' })
nvim_set_hl('@variable.member', { link = 'Property' })
nvim_set_hl('@property', { link = 'Property' })
nvim_set_hl('@property.json', { link = 'Keyword' })
nvim_set_hl('@property.yaml', { link = 'Keyword' })
nvim_set_hl('@constant', { link = 'Constant' })
nvim_set_hl('@constant.builtin', { link = 'Constant' })
nvim_set_hl('@constant.macro', { link = 'Constant' })
nvim_set_hl('@constant.html', { link = 'Tag' })
nvim_set_hl('@module', { link = 'Type' })
nvim_set_hl('@module.builtin', { link = 'Constant' })
nvim_set_hl('@label', { link = 'Statement' })
@ -596,14 +215,14 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@type.qualifier', { link = 'Type' })
nvim_set_hl('@attribute', { link = 'Keyword' })
nvim_set_hl('@function', { link = 'Function' })
nvim_set_hl('@function.builtin', { fg = colors.yellow }, { styles = config.styles.functions })
nvim_set_hl('@function.builtin', { link = 'Function' }, { styles = config.styles.functions })
nvim_set_hl('@function.call', { link = 'Function' })
nvim_set_hl('@function.macro', { link = 'Function' })
nvim_set_hl('@function.method', { link = 'Function' })
nvim_set_hl('@function.method.call', { link = 'Function' })
nvim_set_hl('@constructor', { link = 'Type' })
nvim_set_hl('@constructor.lua', { link = 'Delimiter' })
nvim_set_hl('@operator', { link = 'Statement' })
nvim_set_hl('@operator', { link = 'Operator' })
nvim_set_hl('@keyword', { link = 'Keyword' })
nvim_set_hl('@keyword.coroutine', { link = 'Statement' })
nvim_set_hl('@keyword.function', { link = 'Keyword' })
@ -628,7 +247,7 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@comment.todo', { link = 'Todo' })
nvim_set_hl('@comment.note', { fg = colors.diag_hint })
nvim_set_hl('@markup.strong', { fg = colors.magenta, bold = true })
nvim_set_hl('@markup.italic', { link = 'Underlined' })
nvim_set_hl('@markup.italic', { fg = colors.magenta, italic = true })
nvim_set_hl('@markup.strikethrough', { fg = colors.base01, strikethrough = true })
nvim_set_hl('@markup.underline', { link = 'Underlined' })
nvim_set_hl('@markup.heading', { fg = colors.blue, bold = true })
@ -652,11 +271,13 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@diff.plus', { fg = colors.git_add })
nvim_set_hl('@diff.minus', { fg = colors.git_delete })
nvim_set_hl('@diff.delta', { fg = colors.git_modify })
nvim_set_hl('@tag', { fg = colors.blue })
nvim_set_hl('@tag.attribute', { fg = colors.base1 })
nvim_set_hl('@tag.delimiter', { link = 'Delimiter' })
nvim_set_hl('@tag', { link = 'Tag' })
nvim_set_hl('@tag.attribute', { link = 'TagAttribute' })
nvim_set_hl('@tag.delimiter', { link = 'TagDelimiter' })
end
local signcolumn = require('solarized.utils').nvim_get_hl 'SignColumn'
if config.plugins.lspconfig then
nvim_set_hl('@lsp.type.class', { link = 'Type' })
nvim_set_hl('@lsp.type.decorator', { link = 'Function' })
@ -665,8 +286,8 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@lsp.type.interface', { link = 'Type' })
nvim_set_hl('@lsp.type.macro', { link = '@function.builtin' })
nvim_set_hl('@lsp.type.namespace', { link = 'Type' })
nvim_set_hl('@lsp.type.parameter', { link = '@parameter' })
nvim_set_hl('@lsp.type.property', { link = 'Identifier' })
nvim_set_hl('@lsp.type.parameter', { link = 'Parameter' })
nvim_set_hl('@lsp.type.property', { link = 'Property' })
nvim_set_hl('@lsp.type.struct', { link = 'Type' })
nvim_set_hl('@lsp.type.type', { link = 'Type' })
nvim_set_hl('@lsp.type.typeParameter', { link = 'Type' })
@ -677,45 +298,86 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@lsp.typemod.keyword.documentation', { link = 'Keyword' })
nvim_set_hl('@lsp.typemod.class.documentation', { link = 'Type' })
nvim_set_hl('@lsp.typemod.property.readonly', { link = 'Constant' })
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(
'DiagnosticError',
{ fg = colors.diag_error, bg = colors.mix_red },
{ transparent = config.transparent.enabled }
'DiagnosticVirtualTextError',
{ fg = colors.diag_error },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticWarn',
{ fg = colors.diag_warning, bg = colors.mix_yellow },
{ transparent = config.transparent.enabled }
'DiagnosticVirtualTextWarn',
{ fg = colors.diag_warning },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticInfo',
{ fg = colors.diag_info, bg = colors.mix_base1 },
{ transparent = config.transparent.enabled }
'DiagnosticVirtualTextInfo',
{ fg = colors.diag_info },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticHint',
{ fg = colors.diag_hint, bg = colors.mix_base1 },
{ transparent = config.transparent.enabled }
'DiagnosticVirtualTextHint',
{ fg = colors.diag_hint },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticOk',
{ fg = colors.diag_ok, bg = colors.mix_green },
{ transparent = config.transparent.enabled }
'DiagnosticVirtualTextOk',
{ fg = colors.diag_ok },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticUnderlineError',
{ fg = colors.diag_error, underline = true, sp = colors.diag_error }
)
nvim_set_hl(
'DiagnosticUnderlineWarn',
{ fg = colors.diag_warning, underline = true, sp = colors.diag_warning }
)
nvim_set_hl(
'DiagnosticUnderlineInfo',
{ fg = colors.diag_info, underline = true, sp = colors.diag_info }
)
nvim_set_hl(
'DiagnosticUnderlineHint',
{ fg = colors.diag_hint, underline = true, sp = colors.diag_hint }
)
nvim_set_hl(
'DiagnosticUnderlineOk',
{ fg = colors.diag_ok, underline = true, sp = colors.diag_ok }
)
nvim_set_hl(
'DiagnosticSignError',
{ fg = colors.diag_error, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Error" signs in sign column.
nvim_set_hl(
'DiagnosticSignWarn',
{ fg = colors.diag_warning, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Warn" signs in sign column.
nvim_set_hl(
'DiagnosticSignInfo',
{ fg = colors.diag_info, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Info" signs in sign column.
nvim_set_hl(
'DiagnosticSignHint',
{ fg = colors.diag_hint, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Hint" signs in sign column.
nvim_set_hl(
'DiagnosticSignOk',
{ fg = colors.diag_ok, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
)
nvim_set_hl('DiagnosticVirtualTextError', { fg = colors.diag_error })
nvim_set_hl('DiagnosticVirtualTextWarn', { fg = colors.diag_warning })
nvim_set_hl('DiagnosticVirtualTextInfo', { fg = colors.diag_info })
nvim_set_hl('DiagnosticVirtualTextHint', { fg = colors.diag_hint })
nvim_set_hl('DiagnosticVirtualTextOk', { fg = colors.diag_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', { fg = colors.cyan, bg = colors.mix_cyan })
nvim_set_hl('LspReferenceRead', { fg = colors.green, bg = colors.mix_green })
nvim_set_hl('LspReferenceWrite', { fg = colors.green, bg = colors.mix_green })
nvim_set_hl('LspInlayHint', { fg = colors.base01 })
-- nvim_set_hl('LspInlayHint', { fg = colors.base01 })
nvim_set_hl('LspInlayHint', { fg = color.shade(colors.cyan, 3) })
end
if config.plugins.navic then
@ -777,6 +439,11 @@ M.set_highlight = function(colors, config)
nvim_set_hl('IblScope', { fg = colors.base01 })
end
if config.plugins.indentmini then
nvim_set_hl('IndentLine', { fg = colors.base02 })
nvim_set_hl('IndentLineCurrent', { fg = colors.base01 })
end
if config.plugins.neotree then
nvim_set_hl('NeoTreeTitleBar', { fg = colors.cyan, bg = colors.mix_cyan })
nvim_set_hl(
@ -835,10 +502,10 @@ M.set_highlight = function(colors, config)
{ fg = colors.base0, bg = colors.base04 },
{ transparent = config.transparent.whichkey and config.transparent.enabled }
)
nvim_set_hl('WhichKey', { fg = colors.base1 })
nvim_set_hl('WhichKeyDesc', { fg = colors.blue })
nvim_set_hl('WhichKeySeparator', { fg = colors.green })
nvim_set_hl('WhichKeyGroup', { fg = colors.cyan })
nvim_set_hl('WhichKey', { link = 'Property' })
nvim_set_hl('WhichKeyDesc', { link = 'String' })
nvim_set_hl('WhichKeySeparator', { link = 'Keyword' })
nvim_set_hl('WhichKeyGroup', { link = 'Constant' })
end
if config.plugins.dashboard then
@ -853,20 +520,20 @@ M.set_highlight = function(colors, config)
if config.plugins.gitsigns then
nvim_set_hl(
'GitSignsAdd',
{ fg = colors.git_add, bg = colors.base02 },
{ fg = colors.git_add, bg = signcolumn.bg },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('GitSignsChange', { fg = colors.git_modify, bg = colors.base02 }, {
nvim_set_hl('GitSignsChange', { fg = colors.git_modify, bg = signcolumn.bg }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('GitSignsDelete', { fg = colors.git_delete, bg = colors.base02 }, {
nvim_set_hl('GitSignsDelete', { fg = colors.git_delete, bg = signcolumn.bg }, {
transparent = config.transparent.enabled,
})
end
if config.plugins.telescope then
nvim_set_hl('TelescopeSelection', { fg = colors.base0 })
nvim_set_hl('TelescopeSelectionCaret', { fg = colors.base1 })
nvim_set_hl('TelescopeSelection', { fg = colors.base1, bg = colors.base02 })
nvim_set_hl('TelescopeSelectionCaret', { fg = colors.blue, bg = colors.base02 })
nvim_set_hl('TelescopeMultiIcon', { fg = colors.base1 })
nvim_set_hl(
'TelescopeNormal',
@ -876,15 +543,11 @@ M.set_highlight = function(colors, config)
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
nvim_set_hl(
'TelescopeBorder',
{ link = 'WinSeparator' },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('TelescopeBorder', { link = 'FloatBorder' })
nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopeTitle', { fg = colors.mix_base1, bg = colors.base1 })
nvim_set_hl('TelescopeTitle', { link = 'FloatTitle' })
nvim_set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
nvim_set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
nvim_set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
@ -984,8 +647,7 @@ M.set_highlight = function(colors, config)
nvim_set_hl('RainbowDelimiterCyan', { fg = colors.cyan })
end
if config.plugins.bufferline and config.transparent then
local color = require 'solarized.color'
if config.plugins.bufferline and config.transparent.enabled then
local background = color.shade(colors.base02, 2)
nvim_set_hl('BufferLineFill', { bg = background })
nvim_set_hl('BufferLineBufferSelected', { fg = colors.base0 })
@ -1081,14 +743,46 @@ M.set_highlight = function(colors, config)
end
if config.plugins.coc then
nvim_set_hl('CocErrorSign', { fg = colors.diag_error })
nvim_set_hl('CocWarningSign', { fg = colors.diag_warning })
nvim_set_hl('CocInfoSign', { fg = colors.diag_info })
nvim_set_hl('CocHintSign', { fg = colors.diag_hint })
nvim_set_hl('CocErrorVirtualText', { fg = colors.diag_error, bg = colors.mix_red })
nvim_set_hl('CocWarningVirtualText', { fg = colors.diag_warning, bg = colors.mix_yellow })
nvim_set_hl('CocInfoVirtualText', { fg = colors.diag_info, bg = colors.mix_base1 })
nvim_set_hl('CocHintVirtualText', { fg = colors.diag_hint, bg = colors.mix_base1 })
nvim_set_hl(
'CocErrorSign',
{ fg = colors.diag_error, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocWarningSign',
{ fg = colors.diag_warning, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocInfoSign',
{ fg = colors.diag_info, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocHintSign',
{ fg = colors.diag_hint, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocErrorVirtualText',
{ fg = colors.diag_error },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocWarningVirtualText',
{ fg = colors.diag_warning },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocInfoVirtualText',
{ fg = colors.diag_info },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocHintVirtualText',
{ fg = colors.diag_hint },
{ error_lens = config.error_lens.text }
)
end
if config.plugins.leap then
@ -1098,6 +792,7 @@ M.set_highlight = function(colors, config)
end
if config.plugins.mason then
nvim_set_hl('MasonHeader', { link = 'FloatTitle' })
nvim_set_hl(
'MasonNormal',
{ fg = colors.base0, bg = colors.base04 },
@ -1108,8 +803,13 @@ M.set_highlight = function(colors, config)
nvim_set_hl('MasonHighlightBlockBold', { fg = colors.mix_cyan, bg = colors.cyan, bold = true })
end
if config.plugins.flash then
nvim_set_hl('FlashMatch', { fg = colors.base1 })
nvim_set_hl('FlashLabel', { fg = colors.magenta })
nvim_set_hl('FlashCurrent', { fg = colors.red })
end
if config.on_highlights then
local color = require 'solarized.color'
local highlights = config.on_highlights(colors, color)
for group_name, group_val in pairs(highlights) do

View file

@ -25,6 +25,17 @@ local nvim_set_hl = function(group_name, group_val, config)
group_val = vim.tbl_extend('force', group_val, config.styles)
end
if config and config.error_lens then
local color = require 'solarized.color'
local editor = require('solarized.utils').nvim_get_hl 'Normal'
local ok, mix_color = pcall(color.blend, group_val.fg, editor.bg, 0.1)
if ok then
group_val.bg = mix_color
else
group_val.bg = color.tint(group_val.fg, 7)
end
end
val = vim.tbl_extend('force', val, group_val)
vim.api.nvim_set_hl(0, group_name, val)
else
@ -35,10 +46,41 @@ end
---@param colors solarized.palette
---@param config solarized.config
M.set_highlight = function(colors, config)
local color = require 'solarized.color'
if config.on_colors then
local color = require 'solarized.color'
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
end
local term = {
'base4',
'red',
'green',
'yellow',
'magenta',
'violet',
'cyan',
'base1',
'base1',
'orange',
'green',
'yellow',
'blue',
'red',
'green',
'base1',
}
for index, key in ipairs(term) do
vim.g['terminal_color_' .. index - 1] = colors[key]
end
local solarized_light = require 'solarized.variants.solarized-light'
solarized_light.set_variant {
config = config,
nvim_set_hl = nvim_set_hl,
colors = colors,
color = color,
}
-- EDITOR :h highlight-groups
nvim_set_hl('ColorColumn', { bg = colors.base2 })
nvim_set_hl('Conceal', { fg = colors.blue })
@ -57,36 +99,36 @@ M.set_highlight = function(colors, config)
nvim_set_hl('TermCursor', { link = 'Cursor' })
nvim_set_hl('TermCursorNC', { fg = colors.base3, bg = colors.base00 })
nvim_set_hl('ErrorMsg', { fg = colors.diag_error })
nvim_set_hl(
'WinSeparator',
{ fg = colors.blue, bg = colors.base4 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'WinSeparator',
-- { fg = colors.blue, bg = colors.base4 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('Folded', { fg = colors.base00, bg = colors.base2 })
nvim_set_hl('FoldColumn', { fg = colors.base00, bg = colors.base2 })
nvim_set_hl(
'SignColumn',
{ fg = colors.base00, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'SignColumn',
-- { fg = colors.base00, bg = colors.base2 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl(
'IncSearch',
{ fg = colors.yellow, bg = colors.mix_yellow, bold = true },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('Substitute', { link = 'IncSearch' })
nvim_set_hl(
'LineNr',
{ fg = colors.base1, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'LineNr',
-- { fg = colors.base1, bg = colors.base2 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('LineNrAbove', { link = 'LineNr' })
nvim_set_hl('LineNrBelow', { link = 'LineNr' })
nvim_set_hl(
'CursorLineNr',
{ fg = colors.base01, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
-- nvim_set_hl(
-- 'CursorLineNr',
-- { fg = colors.base01, bg = colors.base2 },
-- { transparent = config.transparent.enabled }
-- )
nvim_set_hl('CursorLineFold', { link = 'FoldColumn' })
nvim_set_hl('CursorLineSign', { link = 'SignColumn' })
nvim_set_hl('MatchParen', { fg = colors.cyan })
@ -103,8 +145,8 @@ M.set_highlight = function(colors, config)
nvim_set_hl('NormalFloat', { fg = colors.base00, bg = colors.base4 }, {
transparent = config.transparent.normalfloat and config.transparent.enabled,
})
nvim_set_hl('FloatBorder', { link = 'WinSeparator' })
nvim_set_hl('FloatTitle', { fg = colors.blue })
-- nvim_set_hl('FloatBorder', { link = 'WinSeparator' })
-- nvim_set_hl('FloatTitle', { fg = colors.blue })
nvim_set_hl('NormalNC', { link = 'Normal' })
nvim_set_hl('Pmenu', { fg = colors.base00, bg = colors.base4 }, {
transparent = config.transparent.pmenu and config.transparent.enabled,
@ -138,59 +180,19 @@ M.set_highlight = function(colors, config)
nvim_set_hl('WinBar', { link = 'Pmenu' })
nvim_set_hl('WinBarNC', { link = 'WinBar' })
-- SYNTAX :h group-name
nvim_set_hl('Comment', { fg = colors.base1 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.magenta }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue })
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('PreProc', { link = 'Statement' })
nvim_set_hl('Include', { link = 'Statement' })
nvim_set_hl('Define', { link = 'Statement' })
nvim_set_hl('Macro', { link = 'Statement' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.orange }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.magenta })
nvim_set_hl('SpecialChar', { fg = colors.magenta })
nvim_set_hl('Tag', { fg = colors.red })
nvim_set_hl('Delimiter', { fg = colors.base01 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.violet, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
-- PLUGINS
if config.plugins.treesitter then
nvim_set_hl('@variable', { link = 'Identifier' })
nvim_set_hl('@variable.builtin', { link = 'Constant' })
nvim_set_hl(
'@variable.parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.parameters }
)
nvim_set_hl('@variable.member', { link = 'Identifier' })
nvim_set_hl('@variable.parameter', { link = 'Parameter' })
nvim_set_hl('@variable.member', { link = 'Property' })
nvim_set_hl('@property', { link = 'Property' })
nvim_set_hl('@property.json', { link = 'Keyword' })
nvim_set_hl('@property.yaml', { link = 'Keyword' })
nvim_set_hl('@constant', { link = 'Constant' })
nvim_set_hl('@constant.builtin', { link = 'Constant' })
nvim_set_hl('@constant.macro', { link = 'Constant' })
nvim_set_hl('@constant.html', { link = 'Tag' })
nvim_set_hl('@module', { link = 'Type' })
nvim_set_hl('@module.builtin', { link = 'Constant' })
nvim_set_hl('@label', { link = 'Statement' })
@ -209,22 +211,20 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@type.definition', { link = 'Type' })
nvim_set_hl('@type.qualifier', { link = 'Type' })
nvim_set_hl('@attribute', { link = 'Keyword' })
nvim_set_hl('@property.json', { fg = colors.green })
nvim_set_hl('@property.yaml', { fg = colors.green })
nvim_set_hl('@function', { link = 'Function' })
nvim_set_hl('@function.builtin', { fg = colors.yellow })
nvim_set_hl('@function.builtin', { link = 'Function' })
nvim_set_hl('@function.call', { link = 'Function' })
nvim_set_hl('@function.macro', { link = 'Function' })
nvim_set_hl('@function.method', { link = 'Function' })
nvim_set_hl('@function.method.call', { link = 'Function' })
nvim_set_hl('@constructor', { link = 'Type' })
nvim_set_hl('@constructor.lua', { link = 'Delimiter' })
nvim_set_hl('@operator', { link = 'Statement' })
nvim_set_hl('@operator', { link = 'Operator' })
nvim_set_hl('@keyword', { link = 'Keyword' })
nvim_set_hl('@keyword.coroutine', { link = 'Statement' })
nvim_set_hl('@keyword.function', { link = 'Keyword' })
nvim_set_hl('@keyword.operator', { link = 'Statement' })
nvim_set_hl('@keyword.import', { link = 'Keyword' })
nvim_set_hl('@keyword.import', { link = 'Include' })
nvim_set_hl('@keyword.repeat', { link = 'Statement' })
nvim_set_hl('@keyword.return', { link = 'Statement' })
nvim_set_hl('@keyword.debug', { link = 'Statement' })
@ -243,7 +243,7 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@comment.todo', { link = 'Todo' })
nvim_set_hl('@comment.note', { fg = colors.diag_hint })
nvim_set_hl('@markup.strong', { fg = colors.magenta, bold = true })
nvim_set_hl('@markup.italic', { link = 'Underlined' })
nvim_set_hl('@markup.italic', { fg = colors.magenta, italic = true })
nvim_set_hl('@markup.strikethrough', { fg = colors.base1, strikethrough = true })
nvim_set_hl('@markup.underline', { link = 'Underlined' })
nvim_set_hl('@markup.heading', { fg = colors.red, bold = true })
@ -267,11 +267,12 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@diff.plus', { fg = colors.git_add })
nvim_set_hl('@diff.minus', { fg = colors.git_delete })
nvim_set_hl('@diff.delta', { fg = colors.git_modify })
nvim_set_hl('@tag', { fg = colors.red })
nvim_set_hl('@tag.attribute', { fg = colors.blue })
nvim_set_hl('@tag.delimiter', { fg = colors.red })
nvim_set_hl('@tag', { link = 'Tag' })
nvim_set_hl('@tag.attribute', { link = 'TagAttribute' })
nvim_set_hl('@tag.delimiter', { link = 'Delimiter' })
end
local signcolumn = require('solarized.utils').nvim_get_hl 'SignColumn'
if config.plugins.lspconfig then
nvim_set_hl('@lsp.type.class', { link = 'Type' })
nvim_set_hl('@lsp.type.decorator', { link = 'Function' })
@ -280,8 +281,8 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@lsp.type.interface', { link = 'Type' })
nvim_set_hl('@lsp.type.macro', { link = '@function.builtin' })
nvim_set_hl('@lsp.type.namespace', { link = 'Type' })
nvim_set_hl('@lsp.type.parameter', { link = '@parameter' })
nvim_set_hl('@lsp.type.property', { link = 'Identifier' })
nvim_set_hl('@lsp.type.parameter', { link = 'Parameter' })
nvim_set_hl('@lsp.type.property', { link = 'Property' })
nvim_set_hl('@lsp.type.struct', { link = 'Type' })
nvim_set_hl('@lsp.type.type', { link = 'Type' })
nvim_set_hl('@lsp.type.typeParameter', { link = 'Type' })
@ -292,61 +293,81 @@ M.set_highlight = function(colors, config)
nvim_set_hl('@lsp.typemod.keyword.documentation', { link = 'Statement' })
nvim_set_hl('@lsp.typemod.class.documentation', { link = 'Type' })
nvim_set_hl('@lsp.typemod.property.readonly', { link = 'Constant' })
nvim_set_hl(
'DiagnosticError',
{ fg = colors.diag_error, bg = colors.mix_red },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'DiagnosticWarn',
{ fg = colors.diag_warning, bg = colors.mix_yellow },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'DiagnosticInfo',
{ fg = colors.diag_info, bg = colors.mix_blue },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'DiagnosticHint',
{ fg = colors.diag_hint, bg = colors.mix_blue },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'DiagnosticOk',
{ fg = colors.diag_ok, bg = colors.mix_green },
{ transparent = config.transparent.enabled }
)
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.mix_red },
{ transparent = config.transparent.enabled }
{ fg = colors.diag_error },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticVirtualTextWarn',
{ fg = colors.diag_warning, bg = colors.mix_yellow },
{ transparent = config.transparent.enabled }
{ fg = colors.diag_warning },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticVirtualTextInfo',
{ fg = colors.diag_hint, bg = colors.mix_blue },
{ transparent = config.transparent.enabled }
{ fg = colors.diag_hint },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticVirtualTextHint',
{ fg = colors.diag_info, bg = colors.mix_blue },
{ transparent = config.transparent.enabled }
{ fg = colors.diag_info },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticVirtualTextOk',
{ fg = colors.diag_ok, bg = colors.mix_green },
{ fg = colors.diag_ok },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'DiagnosticUnderlineError',
{ fg = colors.diag_error, underline = true, sp = colors.diag_error }
)
nvim_set_hl(
'DiagnosticUnderlineWarn',
{ fg = colors.diag_warning, underline = true, sp = colors.diag_warning }
)
nvim_set_hl(
'DiagnosticUnderlineInfo',
{ fg = colors.diag_info, underline = true, sp = colors.diag_info }
)
nvim_set_hl(
'DiagnosticUnderlineHint',
{ fg = colors.diag_hint, underline = true, sp = colors.diag_hint }
)
nvim_set_hl(
'DiagnosticUnderlineOk',
{ fg = colors.diag_ok, underline = true, sp = colors.diag_ok }
)
nvim_set_hl(
'DiagnosticSignError',
{ fg = colors.diag_error, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Error" signs in sign column.
nvim_set_hl(
'DiagnosticSignWarn',
{ fg = colors.diag_warning, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Warn" signs in sign column.
nvim_set_hl(
'DiagnosticSignInfo',
{ fg = colors.diag_info, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Info" signs in sign column.
nvim_set_hl(
'DiagnosticSignHint',
{ fg = colors.diag_hint, bg = signcolumn.bg },
{ transparent = config.transparent.enabled, error_lens = config.error_lens.symbol }
) -- Used for "Hint" signs in sign column.
nvim_set_hl(
'DiagnosticSignOk',
{ fg = colors.diag_ok, bg = signcolumn.bg },
{ transparent = config.transparent.enabled }
)
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', { fg = colors.cyan, bg = colors.mix_cyan })
nvim_set_hl('LspReferenceRead', { link = 'Visual' })
nvim_set_hl('LspReferenceWrite', { link = 'Visual' })
@ -412,6 +433,11 @@ M.set_highlight = function(colors, config)
nvim_set_hl('IblScope', { fg = colors.base1 })
end
if config.plugins.indentmini then
nvim_set_hl('IndentLine', { fg = colors.mix_base01 })
nvim_set_hl('IndentLineCurrent', { fg = colors.base1 })
end
if config.plugins.neotree then
nvim_set_hl('NeoTreeTitleBar', { fg = colors.blue, reverse = true })
nvim_set_hl(
@ -470,10 +496,10 @@ M.set_highlight = function(colors, config)
{ fg = colors.base01, bg = colors.base4 },
{ transparent = config.transparent.whichkey and config.transparent.enabled }
)
nvim_set_hl('WhichKey', { link = 'Function' })
nvim_set_hl('WhichKeyDesc', { fg = colors.base01 })
nvim_set_hl('WhichKey', { link = 'Property' })
nvim_set_hl('WhichKeyDesc', { link = 'String' })
nvim_set_hl('WhichKeySeparator', { link = 'Keyword' })
nvim_set_hl('WhichKeyGroup', { link = 'Type' })
nvim_set_hl('WhichKeyGroup', { link = 'Constant' })
end
if config.plugins.dashboard then
@ -488,19 +514,15 @@ M.set_highlight = function(colors, config)
if config.plugins.gitsigns then
nvim_set_hl(
'GitSignsAdd',
{ fg = colors.git_add, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'GitSignsChange',
{ fg = colors.git_modify, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'GitSignsDelete',
{ fg = colors.git_delete, bg = colors.base2 },
{ fg = colors.git_add, bg = signcolumn.bg },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('GitSignsChange', { fg = colors.git_modify, bg = signcolumn.bg }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('GitSignsDelete', { fg = colors.git_delete, bg = signcolumn.bg }, {
transparent = config.transparent.enabled,
})
end
if config.plugins.telescope then
@ -515,11 +537,11 @@ M.set_highlight = function(colors, config)
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
nvim_set_hl('TelescopeBorder', { link = 'WinSeparator' })
nvim_set_hl('TelescopeBorder', { link = 'FloatBorder' })
nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
nvim_set_hl('TelescopeTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl('TelescopeTitle', { link = 'FloatTitle' })
nvim_set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
nvim_set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
nvim_set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
@ -618,8 +640,7 @@ M.set_highlight = function(colors, config)
nvim_set_hl('RainbowDelimiterCyan', { fg = colors.cyan })
end
if config.plugins.bufferline and config.transparent then
local color = require 'solarized.color'
if config.plugins.bufferline and config.transparent.enabled then
local background = color.shade(colors.base2, 2)
nvim_set_hl('BufferLineFill', { bg = background })
nvim_set_hl('BufferLineBufferSelected', { fg = colors.base01, bold = true })
@ -715,14 +736,46 @@ M.set_highlight = function(colors, config)
end
if config.plugins.coc then
nvim_set_hl('CocErrorSign', { fg = colors.diag_error })
nvim_set_hl('CocWarningSign', { fg = colors.diag_warning })
nvim_set_hl('CocInfoSign', { fg = colors.diag_info })
nvim_set_hl('CocHintSign', { fg = colors.diag_hint })
nvim_set_hl('CocErrorVirtualText', { fg = colors.diag_error, bg = colors.mix_red })
nvim_set_hl('CocWarningVirtualText', { fg = colors.diag_warning, bg = colors.mix_yellow })
nvim_set_hl('CocInfoVirtualText', { fg = colors.diag_info, bg = colors.mix_blue })
nvim_set_hl('CocHintVirtualText', { fg = colors.diag_hint, bg = colors.mix_blue })
nvim_set_hl(
'CocErrorSign',
{ fg = colors.diag_error, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocWarningSign',
{ fg = colors.diag_warning, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocInfoSign',
{ fg = colors.diag_info, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocHintSign',
{ fg = colors.diag_hint, bg = signcolumn.bg },
{ error_lens = config.error_lens.symbol }
)
nvim_set_hl(
'CocErrorVirtualText',
{ fg = colors.diag_error },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocWarningVirtualText',
{ fg = colors.diag_warning },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocInfoVirtualText',
{ fg = colors.diag_info },
{ error_lens = config.error_lens.text }
)
nvim_set_hl(
'CocHintVirtualText',
{ fg = colors.diag_hint },
{ error_lens = config.error_lens.text }
)
end
if config.plugins.leap then
@ -732,6 +785,7 @@ M.set_highlight = function(colors, config)
end
if config.plugins.mason then
nvim_set_hl('MasonHeader', { link = 'FloatTitle' })
nvim_set_hl(
'MasonNormal',
{ fg = colors.base00, bg = colors.base4 },
@ -742,8 +796,13 @@ M.set_highlight = function(colors, config)
nvim_set_hl('MasonHighlightBlockBold', { fg = colors.mix_blue, bg = colors.blue, bold = true })
end
if config.plugins.flash then
nvim_set_hl('FlashMatch', { fg = colors.base01 })
nvim_set_hl('FlashLabel', { fg = colors.yellow })
nvim_set_hl('FlashCurrent', { fg = colors.magenta })
end
if config.on_highlights then
local color = require 'solarized.color'
local highlights = config.on_highlights(colors, color)
for group_name, group_val in pairs(highlights) do

View file

@ -9,7 +9,20 @@ local M = {}
M.config = require 'solarized.config'
M.setup = function(config)
M.config = vim.tbl_deep_extend('force', M.config, config)
M.config = vim.tbl_deep_extend('force', M.config, config or {})
if M.config.styles.enabled == false then
M.config.styles = {
types = { italic = false, bold = false },
functions = { italic = false, bold = false },
parameters = { italic = false, bold = false },
comments = { italic = false, bold = false },
strings = { italic = false, bold = false },
keywords = { italic = false, bold = false },
variables = { italic = false, bold = false },
constants = { italic = false, bold = false },
}
end
end
M.load = function()

View file

@ -53,8 +53,8 @@ M.solarized = {
blue = '#268BD2',
cyan = '#2AA198',
diag_error = '#DC322F',
diag_hint = '#93A1A1',
diag_info = '#93A1A1',
diag_hint = '#268BD2',
diag_info = '#268BD2',
diag_ok = '#859900',
diag_warning = '#B58900',
git_add = '#268BD2',

View file

@ -0,0 +1,300 @@
local M = {}
---@class solarized_variants.opts
---@field colors solarized.palette
---@field color solarized.color
---@field config solarized.config
---@field nvim_set_hl fun(group_name: string, group_val: vim.api.keyset.highlight, config?: solarized.nvim_set_hl.config)
---@param opts solarized_variants.opts
M.set_variant = function(opts)
local colors, _, config, nvim_set_hl = opts.colors, opts.color, opts.config, opts.nvim_set_hl
if config.variant == 'winter' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.base01, bg = colors.base04 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.base01, bg = colors.base04 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl(
'SignColumn',
{ fg = colors.base1, bg = colors.base02 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base02 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.cyan, bg = colors.mix_cyan, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.base1, bold = true }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { link = 'Keyword' })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.orange }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.blue })
nvim_set_hl('TagAttribute', { fg = colors.base1 })
nvim_set_hl('TagDelimiter', { fg = colors.base01 })
nvim_set_hl('Delimiter', { fg = colors.base0 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'summer' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.cyan, bg = colors.base04 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.cyan, bg = colors.base04 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base03 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.yellow, bg = colors.mix_yellow, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { fg = colors.magenta })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Number' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.yellow }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.red }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.red })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.red })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'autumn' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.cyan, bg = colors.base04 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.cyan, bg = colors.base04 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base03 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.orange, bg = colors.mix_orange, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { fg = colors.magenta })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Number' })
nvim_set_hl('Identifier', { fg = colors.base0 }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.green })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.orange })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'spring' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.cyan, bg = colors.base04 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.cyan, bg = colors.base04 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base03 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.magenta, bg = colors.mix_magenta, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base01 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.magenta }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { link = 'Keyword' })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.magenta })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.base01 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
end
end
return M

View file

@ -0,0 +1,294 @@
local M = {}
---@param opts solarized_variants.opts
M.set_variant = function(opts)
local colors, _, config, nvim_set_hl = opts.colors, opts.color, opts.config, opts.nvim_set_hl
if config.variant == 'winter' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.cyan, bg = colors.base4 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.cyan, bg = colors.base4 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_blue, bg = colors.blue })
nvim_set_hl(
'SignColumn',
{ fg = colors.base01, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'LineNr',
{ fg = colors.base01, bg = colors.base2 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.cyan, bg = colors.mix_cyan, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base1 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.magenta }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.base01, bold = true }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.blue })
nvim_set_hl('TagAttribute', { fg = colors.violet })
nvim_set_hl('TagDelimiter', { fg = colors.base1 })
nvim_set_hl('Delimiter', { fg = colors.base00 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'summer' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.blue, bg = colors.base4 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.blue, bg = colors.base4 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_cyan, bg = colors.cyan })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base1, bg = colors.base3 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.yellow, bg = colors.mix_yellow, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base1 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.magenta }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.yellow }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.red }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.red })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.red })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'autumn' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.blue, bg = colors.base4 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.blue, bg = colors.base4 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_cyan, bg = colors.cyan })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base1, bg = colors.base3 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.orange, bg = colors.mix_orange, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base1 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.magenta }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.base00 }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.green }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { fg = colors.orange })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.green })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.orange })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
elseif config.variant == 'spring' then
nvim_set_hl(
'WinSeparator',
{ fg = colors.blue, bg = colors.base4 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl('FloatBorder', { fg = colors.blue, bg = colors.base4 }, {
transparent = config.transparent.enabled,
})
nvim_set_hl('FloatTitle', { fg = colors.mix_cyan, bg = colors.cyan })
nvim_set_hl('SignColumn', { link = 'Normal' })
nvim_set_hl(
'LineNr',
{ fg = colors.base1, bg = colors.base3 },
{ transparent = config.transparent.enabled }
)
nvim_set_hl(
'CursorLineNr',
{ fg = colors.magenta, bg = colors.mix_magenta, bold = true },
{ transparent = config.transparent.enabled }
)
-- SYNTAX :h group-name
-- Property, Parameter, TagAttribute, TagDelimiter <-- custom
nvim_set_hl('Comment', { fg = colors.base1 }, { styles = config.styles.comments })
nvim_set_hl('Constant', { fg = colors.violet }, { styles = config.styles.constants })
nvim_set_hl('String', { fg = colors.cyan }, { styles = config.styles.strings })
nvim_set_hl('Character', { link = 'String' })
nvim_set_hl('Number', { link = 'Constant' })
nvim_set_hl('Boolean', { link = 'Constant' })
nvim_set_hl('Float', { link = 'Constant' })
nvim_set_hl('Identifier', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl('Property', { fg = colors.blue }, { styles = config.styles.variables })
nvim_set_hl(
'Parameter',
{ fg = colors.blue, italic = true },
{ styles = config.styles.variables }
)
nvim_set_hl('Function', { fg = colors.blue }, { styles = config.styles.functions })
nvim_set_hl('Statement', { fg = colors.magenta }, { styles = config.styles.statements })
nvim_set_hl('Conditional', { link = 'Statement' })
nvim_set_hl('Repeat', { link = 'Statement' })
nvim_set_hl('Label', { link = 'Statement' })
nvim_set_hl('Operator', { link = 'Statement' })
nvim_set_hl('Keyword', { fg = colors.green }, { styles = config.styles.keywords })
nvim_set_hl('Exception', { link = 'Statement' })
nvim_set_hl('Include', { link = 'Keyword' })
nvim_set_hl('Define', { link = 'Include' })
nvim_set_hl('Macro', { link = 'Include' })
nvim_set_hl('PreProc', { link = 'Include' })
nvim_set_hl('PreCondit', { link = 'Statement' })
nvim_set_hl('Type', { fg = colors.yellow }, { styles = config.styles.types })
nvim_set_hl('StorageClass', { link = 'Statement' })
nvim_set_hl('Structure', { link = 'Type' })
nvim_set_hl('Typedef', { link = 'Statement' })
nvim_set_hl('Special', { fg = colors.violet })
nvim_set_hl('SpecialChar', { fg = colors.violet })
nvim_set_hl('Tag', { fg = colors.magenta })
nvim_set_hl('TagAttribute', { fg = colors.blue })
nvim_set_hl('TagDelimiter', { link = 'Delimiter' })
nvim_set_hl('Delimiter', { fg = colors.base1 })
nvim_set_hl('SpecialComment', { link = 'Statement' })
nvim_set_hl('Debug', { fg = colors.magenta })
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
nvim_set_hl('Ignore', {})
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
nvim_set_hl('Todo', { fg = colors.blue })
nvim_set_hl('Added', { fg = colors.git_add })
nvim_set_hl('Changed', { fg = colors.git_modify })
nvim_set_hl('Removed', { fg = colors.git_delete })
end
end
return M

4
makefile Normal file
View file

@ -0,0 +1,4 @@
fmt:
stylua -f ./stylua.toml .
test: fmt
vusted ./tests

View file

@ -46,4 +46,27 @@ describe('solarized.setup', function()
assert.True(strings.italic)
assert.True(comments.bold)
end)
test('styles.enabled', function()
local solarized = require 'solarized'
solarized.setup {
styles = {
enabled = false,
strings = { italic = true },
comments = { bold = true },
},
}
vim.cmd 'colorscheme solarized'
local strings = nvim_get_hl 'String'
local comments = nvim_get_hl 'Comment'
assert.Nil(strings.italic)
assert.Nil(comments.bold)
end)
test('nil config', function()
local solarized = require 'solarized'
solarized.setup()
vim.cmd 'colorscheme solarized'
end)
end)