mirror of
https://github.com/maxmx03/solarized.nvim.git
synced 2026-09-10 07:26:26 -04:00
Compare commits
140 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8085e2988 | ||
|
|
3e28afbf18 | ||
|
|
2d2dab01b2 | ||
|
|
0c3cbe55c9 | ||
|
|
c0dfe1cbfa | ||
|
|
29df447aa1 | ||
|
|
af0295172d | ||
|
|
5d3cbf03a5 | ||
|
|
f85f000c3e | ||
|
|
ecf289eecc | ||
|
|
ad113ae656 | ||
|
|
3251376b2e | ||
|
|
9fc9f7382f | ||
|
|
9e2b046cf6 | ||
|
|
952ed14cf7 | ||
|
|
fe6d32a3eb | ||
|
|
7e8078b597 | ||
|
|
1293bec922 | ||
|
|
e9fd95bd96 | ||
|
|
3090084013 | ||
|
|
335b4353b1 | ||
|
|
b4772fdb26 | ||
|
|
3ae785b553 | ||
|
|
01d8c0afe1 | ||
|
|
5c9c2a45b4 | ||
|
|
4192185075 | ||
|
|
0ff0f10a31 | ||
|
|
be02e3baf6 | ||
|
|
6d11c340d2 | ||
|
|
50edf5a4ee | ||
|
|
a6383a31a1 | ||
|
|
2052933e68 | ||
|
|
b97faa8f67 | ||
|
|
a7039bb07b | ||
|
|
b4ea862ee9 | ||
|
|
8f8d4548cb | ||
|
|
c87752fd71 | ||
|
|
1a34eb1c4d | ||
|
|
ed090c9eff | ||
|
|
655183da8f | ||
|
|
7cd978401e | ||
|
|
151aabdeb7 | ||
|
|
f28382812f | ||
|
|
4c590266ae | ||
|
|
a59c47012d | ||
|
|
5f06dae692 | ||
|
|
e3a6f13558 | ||
|
|
4f0ff930bc | ||
|
|
650dbd58fe | ||
|
|
ec057bcca5 | ||
|
|
56ca119fe9 | ||
|
|
8ca7c63acc | ||
|
|
2b428efc47 | ||
|
|
8a25878b68 | ||
|
|
7c2e83d577 | ||
|
|
57573f04b6 | ||
|
|
1f40ffb0b7 | ||
|
|
8759a70227 | ||
|
|
138bb8aff8 | ||
|
|
e41b3cf643 | ||
|
|
cba648cd87 | ||
|
|
97b2cec83a | ||
|
|
7f7fe37f4a | ||
|
|
533a6069fb | ||
|
|
8bb2b5f8ad | ||
|
|
5fe17346a4 | ||
|
|
d3641274ca | ||
|
|
bb8600e8b7 | ||
|
|
196b97cd92 | ||
|
|
c3b4695ba2 | ||
|
|
ce2a2445de | ||
|
|
053467f6d1 | ||
|
|
835cb18e7a | ||
|
|
d58a43b9f7 | ||
|
|
43304ed38e | ||
|
|
8d0c9ffe9c | ||
|
|
209c6a2cb9 | ||
|
|
795fcbbf26 | ||
|
|
d36534ab0f | ||
|
|
46ec7301f9 | ||
|
|
8a32f12620 | ||
|
|
10295bbfc9 | ||
|
|
a61428a5ee | ||
|
|
7c2a916802 | ||
|
|
abb2cae5d3 | ||
|
|
8f48353da2 | ||
|
|
9a9399e9a4 | ||
|
|
9c299ed8e8 | ||
|
|
0c9870b68e | ||
|
|
9c557dd06b | ||
|
|
892e50a7df | ||
|
|
aea00f2a45 | ||
|
|
68eb457172 | ||
|
|
971a80135a | ||
|
|
3294d5ec79 | ||
|
|
f489e017d6 | ||
|
|
47ace51709 | ||
|
|
afad4e8cf1 | ||
|
|
fb1997be52 | ||
|
|
992d34e07f | ||
|
|
99442d9bc7 | ||
|
|
862370f219 | ||
|
|
b6cc153d09 | ||
|
|
f2c7b1c6bd | ||
|
|
b2a0b7efed | ||
|
|
10eb62fe0f | ||
|
|
dfc4d62725 | ||
|
|
8ac84d6d2e | ||
|
|
795c5c03cf | ||
|
|
c84571d806 | ||
|
|
5b304a17ae | ||
|
|
322be5da46 | ||
|
|
596deb2fe5 | ||
|
|
6f127f8257 | ||
|
|
f4e11fa69a | ||
|
|
3a197875c7 | ||
|
|
8bef505492 | ||
|
|
acc294b7f5 | ||
|
|
6875d60907 | ||
|
|
3bfbb3a7bc | ||
|
|
84d198857e | ||
|
|
4fb02a0676 | ||
|
|
991444f90c | ||
|
|
430e2dd5ad | ||
|
|
8753f75642 | ||
|
|
b3a9765855 | ||
|
|
9add49530f | ||
|
|
1f3fe9ffb4 | ||
|
|
8b87d35616 | ||
|
|
ae34105f11 | ||
|
|
9c0cc96f6e | ||
|
|
54d06bf828 | ||
|
|
bb2b42a2ae | ||
|
|
058a75eec8 | ||
|
|
af3c081912 | ||
|
|
3070d9e982 | ||
|
|
a630aa5593 | ||
|
|
8666042163 | ||
|
|
56501f5635 | ||
|
|
8d57022b75 |
34
.github/workflows/ci.yml
vendored
Normal file
34
.github/workflows/ci.yml
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
name: Test
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Stylua
|
||||||
|
uses: JohnnyMorganz/stylua-action@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
version: latest
|
||||||
|
args: --check .
|
||||||
|
|
||||||
|
|
||||||
|
docs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: pandoc to vimdoc
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: panvimdoc
|
||||||
|
uses: kdheepak/panvimdoc@main
|
||||||
|
with:
|
||||||
|
vimdoc: solarized.nvim
|
||||||
|
treesitter: true
|
||||||
|
version: "NVIM v0.9.4"
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: 'chore(doc): auto generate docs'
|
||||||
|
commit_user_name: "github-actions[bot]"
|
||||||
|
commit_user_email: "github-actions[bot]@users.noreply.github.com"
|
||||||
|
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1 +1,3 @@
|
||||||
lua/solarized/utils/test.lua
|
sample
|
||||||
|
vscode
|
||||||
|
build
|
||||||
|
|
|
||||||
12
.luarc.json
Normal file
12
.luarc.json
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
}
|
||||||
191
CHANGELOG.md
191
CHANGELOG.md
|
|
@ -1,5 +1,196 @@
|
||||||
# Changelog
|
# 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)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* hl group mason ([138bb8a](https://github.com/maxmx03/solarized.nvim/commit/138bb8aff8686428b668cec7c78cd67ab83b69e0))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* solarized-dark diagnostics config ([e41b3cf](https://github.com/maxmx03/solarized.nvim/commit/e41b3cf6431918dcffcc2d9fac96a4e1cf4d5471))
|
||||||
|
* solarized-light lazynormal bg ([8759a70](https://github.com/maxmx03/solarized.nvim/commit/8759a70227b3cfd00d9ece28804c56b296c8ff9d))
|
||||||
|
|
||||||
|
## [3.1.1](https://github.com/maxmx03/solarized.nvim/compare/v3.1.0...v3.1.1) (2024-08-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* some plugins was not enabled like ale,coc,leap ([d364127](https://github.com/maxmx03/solarized.nvim/commit/d3641274ca0849f35347a2824c46e4e6a8966c26))
|
||||||
|
|
||||||
|
## [3.1.0](https://github.com/maxmx03/solarized.nvim/compare/v3.0.0...v3.1.0) (2024-08-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* ale,alpha,yanky,gitgutter,coc,leap ([d58a43b](https://github.com/maxmx03/solarized.nvim/commit/d58a43b9f7bc6f91273d8ae5ad9a8418dc25cc0c))
|
||||||
|
* annotation for config ([10eb62f](https://github.com/maxmx03/solarized.nvim/commit/10eb62fe0f15a2732c86da6cc06dadf5824ff20f))
|
||||||
|
* base4 for solarized-light ([abb2cae](https://github.com/maxmx03/solarized.nvim/commit/abb2cae5d36518a5ed4b7dc6cad5c00732343e7f))
|
||||||
|
* docker-compose ([3a19787](https://github.com/maxmx03/solarized.nvim/commit/3a197875c76803e4a64d4b1491c6dd0d22b161cd))
|
||||||
|
* highlight color for markup headings ([dfc4d62](https://github.com/maxmx03/solarized.nvim/commit/dfc4d6272513ed6f4debea9b5dc5352156b0f372))
|
||||||
|
* lazynvim, ci test removed ([8ac84d6](https://github.com/maxmx03/solarized.nvim/commit/8ac84d6d2e8a8c6e390e68f95bf908338b07690c))
|
||||||
|
* mix_base1, todocomments ([7c2a916](https://github.com/maxmx03/solarized.nvim/commit/7c2a91680281132d8ed27a2c046e476cd8e7f9b4))
|
||||||
|
* more control over transparent ([10295bb](https://github.com/maxmx03/solarized.nvim/commit/10295bbfc93a1fe5eaf993cbac0fb4d7a606be17))
|
||||||
|
* neogit ([8f48353](https://github.com/maxmx03/solarized.nvim/commit/8f48353da2a8fd998b5bb43a3135739ef0c342bb))
|
||||||
|
* rendermarkdown highlights ([892e50a](https://github.com/maxmx03/solarized.nvim/commit/892e50a7df38e8af84dbb822a6f184ba348c9a23))
|
||||||
|
* Solarized theme restructuring ([5b304a1](https://github.com/maxmx03/solarized.nvim/commit/5b304a17ae992a668b58689908b58b1d796de7de))
|
||||||
|
* solarized-light.yml ([322be5d](https://github.com/maxmx03/solarized.nvim/commit/322be5da46dafa3e9482341108040baa8a1312cd))
|
||||||
|
* solarized-light.yml, contributing.md ([6f127f8](https://github.com/maxmx03/solarized.nvim/commit/6f127f8257166b9f48550febb61c1b4d4a6c1d84))
|
||||||
|
* solarized.yml ([f4e11fa](https://github.com/maxmx03/solarized.nvim/commit/f4e11fa69a1676059f78d104382c6e2ef7e1713d))
|
||||||
|
* tests, styles config ([9a9399e](https://github.com/maxmx03/solarized.nvim/commit/9a9399e9a45057f17a261eb8433742c373893eff))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* barbecue theme ([fb1997b](https://github.com/maxmx03/solarized.nvim/commit/fb1997be521d1a9cd0dcb2117178c5a158021662))
|
||||||
|
* selenized and solarized extra colors ([10eb62f](https://github.com/maxmx03/solarized.nvim/commit/10eb62fe0f15a2732c86da6cc06dadf5824ff20f))
|
||||||
|
* selenized base02 and base04 ([c84571d](https://github.com/maxmx03/solarized.nvim/commit/c84571d806ac7eb8445b502b40694f4fb689eb52))
|
||||||
|
|
||||||
|
## [3.0.0](https://github.com/maxmx03/solarized.nvim/compare/v2.2.0...v3.0.0) (2024-05-13)
|
||||||
|
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
* **palette:** Removal of base04
|
||||||
|
- Integrated Selenized color palette into the project.
|
||||||
|
* The highlight and colors callbacks now accept only two parameters, colors and colorhelper table.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* .gitignore removed ([058a75e](https://github.com/maxmx03/solarized.nvim/commit/058a75eec8047a7631a1d3df61e86551def4715a))
|
||||||
|
* Add support for nvim-notify in colorscheme ([221eb6b](https://github.com/maxmx03/solarized.nvim/commit/221eb6b54533fbeb2bf88daa4b521ecd4d2b4fe4))
|
||||||
|
* Add support for packer.nvim in colorscheme ([55cbf08](https://github.com/maxmx03/solarized.nvim/commit/55cbf080cc611b83a101d179cd6fb0619036ec35))
|
||||||
|
* barbecue ([5ad821f](https://github.com/maxmx03/solarized.nvim/commit/5ad821f366bb9d4e519ea9f3d1be95bed6cbd736))
|
||||||
|
* extras highlight token ([c389ad2](https://github.com/maxmx03/solarized.nvim/commit/c389ad25069c8f2d89ff034b4cbbc7b20ef5bddd))
|
||||||
|
* github workflows, vusted, stylua ([a630aa5](https://github.com/maxmx03/solarized.nvim/commit/a630aa5593719f9e133dd8eb7a83460c5bec2e25))
|
||||||
|
* highlights for todo.nvim ([3d1e225](https://github.com/maxmx03/solarized.nvim/commit/3d1e225bc14a7257381d838d5ba75c5eb17844ae))
|
||||||
|
* hl for noice-progress ([55506b1](https://github.com/maxmx03/solarized.nvim/commit/55506b1ebbb87425ab407e7aef24d123fc6cb4ae))
|
||||||
|
* lazy ([4443451](https://github.com/maxmx03/solarized.nvim/commit/4443451e6fda256363dd3031654d565f2116a544))
|
||||||
|
* lazy, packer hl groups ([5f155d9](https://github.com/maxmx03/solarized.nvim/commit/5f155d9991c23690e615e6c1e1484547ce2e697e))
|
||||||
|
* neogit ([8318f74](https://github.com/maxmx03/solarized.nvim/commit/8318f74dc4e896e184d5c23b97de47eb6eca3faa))
|
||||||
|
* neorg hl ([b4dbaaa](https://github.com/maxmx03/solarized.nvim/commit/b4dbaaa35457e6d824c9d5334c17596d4995d009))
|
||||||
|
* **palette:** Add support for Selenized color palette ([3338aa4](https://github.com/maxmx03/solarized.nvim/commit/3338aa4d9b391d803b46a15eeadc31d4e341f313))
|
||||||
|
* treesitter hl character.printf ([9c0cc96](https://github.com/maxmx03/solarized.nvim/commit/9c0cc96f6ec17e0ff0770e95fa991afa07105efc))
|
||||||
|
* utils.math removed, colors hsl func removed, improv darken,lighten ([d618ab9](https://github.com/maxmx03/solarized.nvim/commit/d618ab9ea1a8ddbfa45dac1903f495311aa02b65))
|
||||||
|
* vim-sneak ([84bfe3b](https://github.com/maxmx03/solarized.nvim/commit/84bfe3b44cfecb00d4bf45809cab7b0f48791cae))
|
||||||
|
* zen-mode ([3465c6c](https://github.com/maxmx03/solarized.nvim/commit/3465c6c07581d3b286dbee2c38e4038a0e09324c))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* base03 color ([9567554](https://github.com/maxmx03/solarized.nvim/commit/95675548f7ed9d615e38c9ea747ddb91d559fec3))
|
||||||
|
* check if neovim is nightly to load advanced hl ([0963ad8](https://github.com/maxmx03/solarized.nvim/commit/0963ad836bbf038fe774b7fa21a7f7b49daee916))
|
||||||
|
* color search,visual,telescope,winseparator ([ce004ce](https://github.com/maxmx03/solarized.nvim/commit/ce004ce2905b8b59f2068069fb3fccc7475d491d))
|
||||||
|
* colorcolumn, incsearch, floatborder ([7b0181d](https://github.com/maxmx03/solarized.nvim/commit/7b0181d72f9f1ebc5647592c0a04e31976b2b86b))
|
||||||
|
* Configuring highlight of type "variable" [#69](https://github.com/maxmx03/solarized.nvim/issues/69) ([a630aa5](https://github.com/maxmx03/solarized.nvim/commit/a630aa5593719f9e133dd8eb7a83460c5bec2e25))
|
||||||
|
* indentblankline, whitespace, treesitter text hl ([76de882](https://github.com/maxmx03/solarized.nvim/commit/76de8824aa2d64b4bce5041f06ef8ebe1848d9a4))
|
||||||
|
* inlay-hint ([fe803f1](https://github.com/maxmx03/solarized.nvim/commit/fe803f15e0b58246e557d80fc1cfa09dd3203e3e))
|
||||||
|
* invalid color ([67ce0bb](https://github.com/maxmx03/solarized.nvim/commit/67ce0bb2c31d811ed83cb5d23b179be55dd9d263))
|
||||||
|
* jsx tags, methods being italized, incsearch low contrast ([888695f](https://github.com/maxmx03/solarized.nvim/commit/888695fbcbb35a38e3522945cf1f217adfa3fea2))
|
||||||
|
* LspInlayHint foreground color on light mode ([54a7b79](https://github.com/maxmx03/solarized.nvim/commit/54a7b797b1148b6ccab7538112e00d05db01c2c0))
|
||||||
|
* neo editor winseparator ([54430f0](https://github.com/maxmx03/solarized.nvim/commit/54430f0084956e7fd0914d2f658020aa514f0aab))
|
||||||
|
* neovim - signcolumn bg ([7357e0e](https://github.com/maxmx03/solarized.nvim/commit/7357e0e366c8360f90bb43a3ead9d7744e65de04))
|
||||||
|
* solarized setup ([595bd9a](https://github.com/maxmx03/solarized.nvim/commit/595bd9a233cc23c387924769dfc3550f294d0ac8))
|
||||||
|
* telescope selection ([85ac187](https://github.com/maxmx03/solarized.nvim/commit/85ac187a2339b058e76d89828803fccb416de16d))
|
||||||
|
* tests ([058a75e](https://github.com/maxmx03/solarized.nvim/commit/058a75eec8047a7631a1d3df61e86551def4715a))
|
||||||
|
* treesitter parameter style was not being overridden by config ([2f59f9d](https://github.com/maxmx03/solarized.nvim/commit/2f59f9d152a0d7f89c65c70105a5ae5803e28023))
|
||||||
|
* vscode_theme ([b6cd0ff](https://github.com/maxmx03/solarized.nvim/commit/b6cd0ffc4667a10fa704ffa053066f5253d1f349))
|
||||||
|
|
||||||
|
|
||||||
|
### Code Refactoring
|
||||||
|
|
||||||
|
* Update Solarized Theme ([f076342](https://github.com/maxmx03/solarized.nvim/commit/f0763424b368ae7878d5aef33f5d1487c8fd2133))
|
||||||
|
|
||||||
|
## [2.2.0](https://github.com/maxmx03/solarized.nvim/compare/v2.1.0...v2.2.0) (2024-05-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* .gitignore removed ([058a75e](https://github.com/maxmx03/solarized.nvim/commit/058a75eec8047a7631a1d3df61e86551def4715a))
|
||||||
|
* github workflows, vusted, stylua ([a630aa5](https://github.com/maxmx03/solarized.nvim/commit/a630aa5593719f9e133dd8eb7a83460c5bec2e25))
|
||||||
|
* treesitter hl character.printf ([9c0cc96](https://github.com/maxmx03/solarized.nvim/commit/9c0cc96f6ec17e0ff0770e95fa991afa07105efc))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Configuring highlight of type "variable" [#69](https://github.com/maxmx03/solarized.nvim/issues/69) ([a630aa5](https://github.com/maxmx03/solarized.nvim/commit/a630aa5593719f9e133dd8eb7a83460c5bec2e25))
|
||||||
|
* tests ([058a75e](https://github.com/maxmx03/solarized.nvim/commit/058a75eec8047a7631a1d3df61e86551def4715a))
|
||||||
|
|
||||||
|
## [2.3.0](https://github.com/maxmx03/solarized.nvim/compare/v2.2.0...v2.3.0) (2024-03-28)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* .gitignore removed ([54bac30](https://github.com/maxmx03/solarized.nvim/commit/54bac309d17eb29a04555ab7b0140090afa407ae))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* tests ([54bac30](https://github.com/maxmx03/solarized.nvim/commit/54bac309d17eb29a04555ab7b0140090afa407ae))
|
||||||
|
|
||||||
|
## [2.2.0](https://github.com/maxmx03/solarized.nvim/compare/v2.1.0...v2.2.0) (2024-03-28)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* github workflows, vusted, stylua ([6a34504](https://github.com/maxmx03/solarized.nvim/commit/6a34504272cef236da45ba12ca8ef2c1b7417b36))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* Configuring highlight of type "[@variable](https://github.com/variable)" [#69](https://github.com/maxmx03/solarized.nvim/issues/69) ([6a34504](https://github.com/maxmx03/solarized.nvim/commit/6a34504272cef236da45ba12ca8ef2c1b7417b36))
|
||||||
|
|
||||||
## [2.1.0](https://github.com/maxmx03/solarized.nvim/compare/v2.0.0...v2.1.0) (2023-12-24)
|
## [2.1.0](https://github.com/maxmx03/solarized.nvim/compare/v2.0.0...v2.1.0) (2023-12-24)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
188
CONTRIBUTING.md
Normal file
188
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,188 @@
|
||||||
|
# Contributing to `solarized.nvim`
|
||||||
|
|
||||||
|
Thank you for your interest in contributing to Solarized!
|
||||||
|
Whether you're here to improve existing features, add new themes, fix bugs, or
|
||||||
|
enhance documentation, your contributions are highly valued.
|
||||||
|
|
||||||
|
## Usage & Development
|
||||||
|
|
||||||
|
Solarized flips between light and dark modes. In each mode, four monotones
|
||||||
|
form the core values (with an optional fifth for emphasized content).
|
||||||
|
|
||||||
|
### Manipulating colors
|
||||||
|
|
||||||
|
When it comes to manipulating colors, I recommend using the following online
|
||||||
|
tools. These resources are excellent for creating tints, shades, and blends,
|
||||||
|
|
||||||
|
- [maketintshade](https://maketintsandshades.com/)
|
||||||
|
- [pinetools](https://pinetools.com/blend-colors)
|
||||||
|
- [colordesigner](https://colordesigner.io/)
|
||||||
|
- [colorblender](https://github.com/maxmx03/colorblender)
|
||||||
|
|
||||||
|
Additionally, I provide custom functions for color manipulation within the
|
||||||
|
plugin. These functions are designed to give users more control over their
|
||||||
|
colorscheme.
|
||||||
|
|
||||||
|
### Solarized Dark
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The normal relationship for
|
||||||
|
> background and body text is `base03:base0`, text can be highlighted using a
|
||||||
|
> combiation of `base02:base1`
|
||||||
|
|
||||||
|
| Name | Hex | Description |
|
||||||
|
| ------- | ------- | ------------------------------------------ |
|
||||||
|
| base03 | #002b36 | background |
|
||||||
|
| base02 | #073642 | background highlight |
|
||||||
|
| base01 | #586e75 | comments / secondary comment |
|
||||||
|
| base00 | #657b83 | none |
|
||||||
|
| base0 | #839496 | body text / default code / primary content |
|
||||||
|
| base1 | #93a1a1 | optional emphasized content |
|
||||||
|
| base2 | #eee8d5 | none |
|
||||||
|
| base3 | #fdf6e3 | none |
|
||||||
|
| yellow | #b58900 | optional |
|
||||||
|
| orange | #cb4b16 | optional |
|
||||||
|
| red | #dc322f | optional |
|
||||||
|
| magenta | #d33682 | optional |
|
||||||
|
| violet | #6c71c4 | optional |
|
||||||
|
| blue | #268bd2 | optional |
|
||||||
|
| cyan | #2aa198 | optional |
|
||||||
|
| green | #859900 | optional |
|
||||||
|
|
||||||
|
#### Solarized Dark Extra colors
|
||||||
|
|
||||||
|
- [pinetool](https://pinetools.com/blend-colors)
|
||||||
|
- [colorblender](https://github.com/maxmx03/colorblender)
|
||||||
|
|
||||||
|
| Name | Hex (balance 70 / 0.3) | Description |
|
||||||
|
| ----------- | ---------------------- | --------------------------------- |
|
||||||
|
| base04 | #002731 | sidebar background / float window |
|
||||||
|
| mix_yellow | #364725 | yellow + base03 / optional |
|
||||||
|
| mix_orange | #3c342c | orange + base03 / optional |
|
||||||
|
| mix_red | #422d33 | red + base03 / optional |
|
||||||
|
| mix_magenta | #3f2e4c | magenta + base03 / optional |
|
||||||
|
| mix_violet | #204060 | violet + base03 / optional |
|
||||||
|
| mix_blue | #0b4764 | blue + base03 / optional |
|
||||||
|
| mix_cyan | #0c4e53 | cyan + base03 / optional |
|
||||||
|
| mix_green | #274c25 | green + base03 / optional |
|
||||||
|
| mix_base1 | #2C4E56 | base1 + base03 / visual |
|
||||||
|
|
||||||
|
### Selenized Dark
|
||||||
|
|
||||||
|
| Name | Hex | Description |
|
||||||
|
| ------- | ------- | ------------------------------------------ |
|
||||||
|
| base03 | #103c48 | background |
|
||||||
|
| base02 | #184956 | background highlight |
|
||||||
|
| base01 | #72898f | comments / secondary comment |
|
||||||
|
| base00 | #53676d | none |
|
||||||
|
| base0 | #adbcbc | body text / default code / primary content |
|
||||||
|
| base1 | #cad8d9 | optional emphasized content |
|
||||||
|
| base2 | #ece3cc | none |
|
||||||
|
| base3 | #fbf3db | none |
|
||||||
|
| yellow | #dbb32d | optional |
|
||||||
|
| orange | #ed8649 | optional |
|
||||||
|
| red | #fa5750 | optional |
|
||||||
|
| magenta | #f275be | optional |
|
||||||
|
| violet | #af88eb | optional |
|
||||||
|
| blue | #4695f7 | optional |
|
||||||
|
| cyan | #41c7b9 | optional |
|
||||||
|
| green | #75b938 | optional |
|
||||||
|
|
||||||
|
#### Selenized Dark Extra colors
|
||||||
|
|
||||||
|
| Name | Hex (balance 70 / 0.3) | Description |
|
||||||
|
| ----------- | ---------------------- | --------------------------------- |
|
||||||
|
| base04 | #0e3641 | sidebar background / float window |
|
||||||
|
| mix_yellow | #4c5f3f | yellow + base03 / optional |
|
||||||
|
| mix_orange | #525248 | orange + base03 / optional |
|
||||||
|
| mix_red | #56444a | red + base03 / optional |
|
||||||
|
| mix_magenta | #534d6b | magenta + base03 / optional |
|
||||||
|
| mix_violet | #3f5278 | violet + base03 / optional |
|
||||||
|
| mix_blue | #20567c | blue + base03 / optional |
|
||||||
|
| mix_cyan | #1e6569 | cyan + base03 / optional |
|
||||||
|
| mix_green | #2e6143 | green + base03 / optional |
|
||||||
|
| mix_base1 | #486B74 | green + base03 / optional |
|
||||||
|
|
||||||
|
### Solarized Light
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The normal relationship for
|
||||||
|
> background and body text is `base3:base00`, text can be highlighted using a
|
||||||
|
> combiation of `base2:base01`
|
||||||
|
|
||||||
|
| Name | Hex | Description |
|
||||||
|
| ------- | ------- | ------------------------------------------ |
|
||||||
|
| base03 | #002b36 | none |
|
||||||
|
| base02 | #073642 | none |
|
||||||
|
| base01 | #586e75 | optional emphasized content |
|
||||||
|
| base00 | #657b83 | body text / default code / primary content |
|
||||||
|
| base0 | #839496 | none |
|
||||||
|
| base1 | #93a1a1 | comments / secondary content |
|
||||||
|
| base2 | #eee8d5 | background highlights |
|
||||||
|
| base3 | #fdf6e3 | background |
|
||||||
|
| yellow | #b58900 | optional |
|
||||||
|
| orange | #cb4b16 | optional |
|
||||||
|
| red | #dc322f | optional |
|
||||||
|
| magenta | #d33682 | optional |
|
||||||
|
| violet | #6c71c4 | optional |
|
||||||
|
| blue | #268bd2 | optional |
|
||||||
|
| cyan | #2aa198 | optional |
|
||||||
|
| green | #859900 | optional |
|
||||||
|
|
||||||
|
#### Solarized Light Extra colors
|
||||||
|
|
||||||
|
- [pinetool](https://pinetools.com/blend-colors)
|
||||||
|
- [colorblender](https://github.com/maxmx03/colorblender)
|
||||||
|
|
||||||
|
| Name | Hex (balance 90, 0.1) | Description |
|
||||||
|
| ----------- | ------------------------- | --------------------------------- |
|
||||||
|
| mix_yellow | #f5ebcc | yellow + base3 / optional |
|
||||||
|
| mix_orange | #f8e4ce | orange + base3 /optional |
|
||||||
|
| mix_red | #f9e2d1 | red + base3 / optional |
|
||||||
|
| mix_magenta | #f8e2d9 | magenta + base3 / optional |
|
||||||
|
| mix_violet | #eee8df | violet + base3 / optional |
|
||||||
|
| mix_blue | #e7ebe1 | blue + base3 / optional |
|
||||||
|
| mix_cyan | #e7eddb | cyan + base3 / optional |
|
||||||
|
| mix_green | #f1eccc | green + base3 /optional |
|
||||||
|
| base4 | #fbf3db (selenized base3) | sidebar background / float window |
|
||||||
|
| mix_base01 | #CCCDC2 | indent blankline |
|
||||||
|
|
||||||
|
### Selenized Light
|
||||||
|
|
||||||
|
| Name | Hex | Description |
|
||||||
|
| ------- | ------- | ------------------------------------------ |
|
||||||
|
| base03 | #103c48 | none |
|
||||||
|
| base02 | #184956 | none |
|
||||||
|
| base01 | #3a4d53 | optional emphasized content |
|
||||||
|
| base00 | #53676d | body text / default code / primary content |
|
||||||
|
| base0 | #adbcbc | none |
|
||||||
|
| base1 | #909995 | comments / secondary content |
|
||||||
|
| base2 | #ece3cc | background highlights |
|
||||||
|
| base3 | #fbf3db | background |
|
||||||
|
| yellow | #ad8900 | optional |
|
||||||
|
| orange | #c25d1e | optional |
|
||||||
|
| red | #d2212d | optional |
|
||||||
|
| magenta | #ca4898 | optional |
|
||||||
|
| violet | #8762c6 | optional |
|
||||||
|
| blue | #0072d4 | optional |
|
||||||
|
| cyan | #009c8f | optional |
|
||||||
|
| green | #489100 | optional |
|
||||||
|
|
||||||
|
#### Selenized Light Extra colors
|
||||||
|
|
||||||
|
| Name | Hex (balance 90) | Description |
|
||||||
|
| ----------- | ---------------- | -------------------------- |
|
||||||
|
| mix_yellow | #f3e8c5 | yellow + base3 / optional |
|
||||||
|
| mix_orange | #f5e4c8 | orange + base3 / optional |
|
||||||
|
| mix_red | #f6dec9 | red + base3 / optional |
|
||||||
|
| mix_magenta | #f6e1d4 | magenta + base3 / optional |
|
||||||
|
| mix_violet | #efe4d8 | violet + base3 / optional |
|
||||||
|
| mix_blue | #e1e6da | blue + base3 / optional |
|
||||||
|
| mix_cyan | #e1ead3 | cyan + base3 / optional |
|
||||||
|
| mix_green | #e9e9c5 | green + base3 / optional |
|
||||||
|
| mix_base01 | #CACBBC | indent blankline |
|
||||||
|
|
||||||
|
## Solarized & Selenized Website
|
||||||
|
|
||||||
|
- [ethanschoonover](https://ethanschoonover.com/solarized/)
|
||||||
|
- [jan-warchol](https://github.com/jan-warchol/selenized/blob/master/README.md)
|
||||||
7
Dockerfile
Normal file
7
Dockerfile
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
FROM archlinux
|
||||||
|
WORKDIR /solarized
|
||||||
|
COPY . .
|
||||||
|
RUN pacman -Syu --noconfirm
|
||||||
|
RUN pacman -S luarocks neovim gcc lua51 --noconfirm
|
||||||
|
RUN luarocks install luacheck && luarocks --lua-version=5.1 install vusted
|
||||||
|
CMD [ "vusted", "./tests" ]
|
||||||
479
README.md
479
README.md
|
|
@ -11,33 +11,33 @@ Solarized is a sixteen color palette (eight monotones, eight accent colors)
|
||||||
designed for use with terminal and gui applications.
|
designed for use with terminal and gui applications.
|
||||||
[click here to learn more](https://ethanschoonover.com/solarized/)
|
[click here to learn more](https://ethanschoonover.com/solarized/)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<!--toc:start-->
|
<!--toc:start-->
|
||||||
|
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Requirements](#requirements)
|
- [Requirements](#requirements)
|
||||||
- [Install from package manager](#install-from-package-manager)
|
- [Install from package manager](#install-from-package-manager)
|
||||||
|
- [Solarized's Annotations](#solarizeds-annotations)
|
||||||
|
- [Using `lspconfig`](#using-lspconfig)
|
||||||
|
- [Using `.luarc.json`](#using-luarcjson)
|
||||||
- [Manual Installation](#manual-installation)
|
- [Manual Installation](#manual-installation)
|
||||||
- [Help](#help)
|
- [Docs](#docs)
|
||||||
- [Commands](#commands)
|
- [Commands](#commands)
|
||||||
- [Default Config](#default-config)
|
- [Default Config](#default-config)
|
||||||
- [Config Themes](#config-themes)
|
- [Config Variant](#config-variant)
|
||||||
|
- [Config Transparency](#config-transparency)
|
||||||
- [Config Styles](#config-styles)
|
- [Config Styles](#config-styles)
|
||||||
- [Config Highlights](#config-highlights)
|
- [Config Highlights](#config-highlights)
|
||||||
- [Config Colors](#config-colors)
|
- [Config Colors](#config-colors)
|
||||||
- [Config Enables](#config-enables)
|
- [Config Plugins](#config-plugins)
|
||||||
- [Config Autocmd](#config-autocmd)
|
- [Config Error Lens](#config-error-lens)
|
||||||
- [Lualine](#lualine)
|
- [Lualine](#lualine)
|
||||||
- [Barbecue](#barbecue)
|
- [Barbecue](#barbecue)
|
||||||
- [Api](#api)
|
- [Api](#api)
|
||||||
- [Get Colors](#get-colors)
|
|
||||||
- [Color utils](#color-utils)
|
|
||||||
- [How to get color shades](#how-to-get-color-shades)
|
|
||||||
- [How to get color tints](#how-to-get-color-tints)
|
|
||||||
- [Contributing](#contributing)
|
- [Contributing](#contributing)
|
||||||
- [Designed by](#designed-by)
|
- [Designed by](#designed-by)
|
||||||
- [Credits and Reference 🎉](#credits-and-reference-🎉)
|
- [Credits and Reference](#credits-and-reference)
|
||||||
<!--toc:end-->
|
<!--toc:end-->
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
@ -64,16 +64,19 @@ Download using your preferred package manager.
|
||||||
[lazy](https://github.com/folke/lazy.nvim)
|
[lazy](https://github.com/folke/lazy.nvim)
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
{
|
return {
|
||||||
'maxmx03/solarized.nvim',
|
'maxmx03/solarized.nvim',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
config = function()
|
---@type solarized.config
|
||||||
vim.o.background = 'dark' -- or 'light'
|
opts = {},
|
||||||
|
config = function(_, opts)
|
||||||
vim.cmd.colorscheme 'solarized'
|
vim.o.termguicolors = true
|
||||||
end,
|
vim.o.background = 'light'
|
||||||
},
|
require('solarized').setup(opts)
|
||||||
|
vim.cmd.colorscheme 'solarized'
|
||||||
|
end,
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
[packer](https://github.com/wbthomason/packer.nvim)
|
[packer](https://github.com/wbthomason/packer.nvim)
|
||||||
|
|
@ -82,13 +85,52 @@ Download using your preferred package manager.
|
||||||
use {
|
use {
|
||||||
'maxmx03/solarized.nvim',
|
'maxmx03/solarized.nvim',
|
||||||
config = function()
|
config = function()
|
||||||
vim.o.background = 'dark' -- or 'light'
|
vim.o.background = 'dark'
|
||||||
|
---@type solarized
|
||||||
|
local solarized = require('solarized')
|
||||||
|
vim.o.termguicolors = true
|
||||||
|
vim.o.background = 'dark'
|
||||||
|
solarized.setup({})
|
||||||
vim.cmd.colorscheme 'solarized'
|
vim.cmd.colorscheme 'solarized'
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Solarized's Annotations
|
||||||
|
|
||||||
|
### Using `lspconfig`
|
||||||
|
|
||||||
|
```lua
|
||||||
|
local lsp_config = require 'lspconfig'
|
||||||
|
lsp_config.lua_ls.setup {
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
hint = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
checkThirdParty = true,
|
||||||
|
library = {
|
||||||
|
vim.env.VIMRUNTIME,
|
||||||
|
'~/.local/share/nvim/lazy/solarized.nvim',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Using `.luarc.json`
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"workspace.library": ["/path/to/nvim/runtime", "/path/to/solarized.nvim"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Manual Installation
|
## Manual Installation
|
||||||
|
|
||||||
To manually install Solarized, follow these steps:
|
To manually install Solarized, follow these steps:
|
||||||
|
|
@ -99,14 +141,13 @@ To manually install Solarized, follow these steps:
|
||||||
`lua`, `plugin`.
|
`lua`, `plugin`.
|
||||||
4. Copy these folders to the `~/.config/nvim` directory.
|
4. Copy these folders to the `~/.config/nvim` directory.
|
||||||
|
|
||||||
## Help
|
## Docs
|
||||||
|
|
||||||
Use `:h solarized.nvim.txt` to get some help
|
Use `:h solarized.nvim.txt` to see docs
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
- `:Solarized colors` - Display the Solarized palette in a new buffer
|
- `:Solarized colors` - Display the Solarized palette in a new buffer
|
||||||
- `:Solarized zen`- Removes highlight colors, emphasizing important code segments.
|
|
||||||
|
|
||||||
## Default Config
|
## Default Config
|
||||||
|
|
||||||
|
|
@ -115,61 +156,106 @@ vim.o.background = 'dark'
|
||||||
|
|
||||||
-- default config
|
-- default config
|
||||||
require('solarized').setup({
|
require('solarized').setup({
|
||||||
transparent = false, -- enable transparent background
|
transparent = {
|
||||||
palette = 'solarized', -- or selenized
|
enabled = false,
|
||||||
styles = {
|
pmenu = true,
|
||||||
comments = {},
|
normal = true,
|
||||||
functions = {},
|
normalfloat = true,
|
||||||
variables = {},
|
neotree = true,
|
||||||
numbers = {},
|
nvimtree = true,
|
||||||
constants = {},
|
whichkey = true,
|
||||||
parameters = {},
|
telescope = true,
|
||||||
keywords = {},
|
lazy = true,
|
||||||
types = {},
|
},
|
||||||
},
|
on_highlights = nil,
|
||||||
enables = {
|
on_colors = nil,
|
||||||
bufferline = true,
|
palette = 'solarized', -- solarized (default) | selenized
|
||||||
cmp = true,
|
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||||
diagnostic = true,
|
error_lens = {
|
||||||
dashboard = true,
|
text = false,
|
||||||
editor = true,
|
symbol = false,
|
||||||
gitsign = true,
|
},
|
||||||
hop = true,
|
styles = {
|
||||||
indentblankline = true,
|
enabled = true,
|
||||||
lsp = true,
|
types = {},
|
||||||
lspsaga = true,
|
functions = {},
|
||||||
navic = true,
|
parameters = {},
|
||||||
neogit = true,
|
comments = {},
|
||||||
neotree = true,
|
strings = {},
|
||||||
notify = true,
|
keywords = {},
|
||||||
noice = true,
|
variables = {},
|
||||||
semantic = true,
|
constants = {},
|
||||||
syntax = true,
|
},
|
||||||
telescope = true,
|
plugins = {
|
||||||
tree = true,
|
treesitter = true,
|
||||||
treesitter = true,
|
lspconfig = true,
|
||||||
todo = true,
|
navic = true,
|
||||||
whichkey = true,
|
cmp = true,
|
||||||
mini = true,
|
indentblankline = true,
|
||||||
},
|
indentmini = true,
|
||||||
highlights = {},
|
neotree = true,
|
||||||
colors = {},
|
nvimtree = true,
|
||||||
theme = 'default', -- or 'neo'
|
whichkey = true,
|
||||||
autocmd = true,
|
dashboard = true,
|
||||||
|
gitsigns = true,
|
||||||
|
telescope = true,
|
||||||
|
noice = true,
|
||||||
|
hop = true,
|
||||||
|
ministatusline = true,
|
||||||
|
minitabline = true,
|
||||||
|
ministarter = true,
|
||||||
|
minicursorword = true,
|
||||||
|
notify = true,
|
||||||
|
rainbowdelimiters = true,
|
||||||
|
bufferline = true,
|
||||||
|
lazy = true,
|
||||||
|
rendermarkdown = true,
|
||||||
|
ale = true,
|
||||||
|
coc = true,
|
||||||
|
leap = true,
|
||||||
|
alpha = true,
|
||||||
|
yanky = true,
|
||||||
|
gitgutter = true,
|
||||||
|
mason = true,
|
||||||
|
flash = true,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.cmd.colorscheme = 'solarized' -- or selenized
|
vim.cmd.colorscheme = 'solarized'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config Themes
|
## Config Variant
|
||||||
|
|
||||||
Solarized offers two themes: the default Solarized theme and Neo.
|
Solarized includes four variants: spring, summer, autumn, and winter.
|
||||||
These themes provide different visual styles to enhance your experience.
|
|
||||||
|
[preview](https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md)
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require('solarized').setup({
|
require('solarized').setup {
|
||||||
theme = 'neo' -- or comment to use solarized default theme.
|
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||||
})
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Config Transparency
|
||||||
|
|
||||||
|
By default, transparency is turned off, but you can easily enable it and
|
||||||
|
customize which specific UI components should be transparent.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
require('solarized').setup {
|
||||||
|
transparent = {
|
||||||
|
enabled = true, -- Master switch to enable transparency
|
||||||
|
pmenu = true, -- Popup menu (e.g., autocomplete suggestions)
|
||||||
|
normal = true, -- Main editor window background
|
||||||
|
normalfloat = true, -- Floating windows
|
||||||
|
neotree = true, -- Neo-tree file explorer
|
||||||
|
nvimtree = true, -- Nvim-tree file explorer
|
||||||
|
whichkey = true, -- Which-key popup
|
||||||
|
telescope = true, -- Telescope fuzzy finder
|
||||||
|
lazy = true, -- Lazy plugin manager UI
|
||||||
|
mason = true, -- Mason manage external tooling
|
||||||
|
},
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config Styles
|
## Config Styles
|
||||||
|
|
@ -178,12 +264,21 @@ The `styles` config allows you to customize the style of a highlight
|
||||||
group.
|
group.
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require('solarized').setup({
|
---@type solarized.styles
|
||||||
styles = {
|
local styles = {
|
||||||
comments = { italic = true, bold = false },
|
comments = { italic = true, bold = false },
|
||||||
functions = { italic = true },
|
functions = { italic = true },
|
||||||
variables = { italic = false },
|
variables = { italic = false },
|
||||||
}
|
}
|
||||||
|
require('solarized').setup({
|
||||||
|
styles = styles,
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also disable all highlight group styles.
|
||||||
|
```lua
|
||||||
|
require('solarized').setup({
|
||||||
|
styles = { enabled = false },
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -195,18 +290,23 @@ example:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require('solarized').setup {
|
require('solarized').setup {
|
||||||
highlights = function (colors, colorhelper)
|
on_highlights = function (colors, color)
|
||||||
local darken = colorhelper.darken
|
local darken = color.darken
|
||||||
local lighten = colorhelper.lighten
|
local lighten = color.lighten
|
||||||
local blend = colorhelper.blend
|
local blend = color.blend
|
||||||
|
local shade = color.shade
|
||||||
|
local tint = color.tint
|
||||||
|
|
||||||
return {
|
---@type solarized.highlights
|
||||||
LineNr = { fg = c.base1, bg = c.base02 },
|
local groups = {
|
||||||
CursorLineNr = { bg = c.base02 },
|
Visual = { bg = colors.base02, standout = true },
|
||||||
CursorLine = { bg = c.base02 },
|
Function = { fg = colors.yellow },
|
||||||
Function = { italic = false },
|
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
|
||||||
Visual = { bg = c.cyan },
|
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
|
||||||
|
NormalFloat = { bg = darken(colors.base03, 25) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return groups
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
@ -216,18 +316,20 @@ require('solarized').setup {
|
||||||
The `colors` config allows you to extend or modify the color palette used by
|
The `colors` config allows you to extend or modify the color palette used by
|
||||||
solarized.
|
solarized.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> Use `:Solarized colors` to see available colors.
|
||||||
|
|
||||||
example:
|
example:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require('solarized').setup {
|
require('solarized').setup {
|
||||||
colors = function(colors, colorhelper)
|
on_colors = function(colors, color)
|
||||||
local darken = colorhelper.darken
|
local lighten = color.tint
|
||||||
local lighten = colorhelper.lighten
|
local darken = color.darken
|
||||||
local blend = colorhelper.blend
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fg = '#fff', -- output: #ffffff
|
fg = lighten(colors.base00, 2),
|
||||||
bg = darken(colors.base03, 100)
|
bg = darken(colors.base03, 30)
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
highlights = function(colors)
|
highlights = function(colors)
|
||||||
|
|
@ -238,43 +340,60 @@ require('solarized').setup {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config Enables
|
## Config Plugins
|
||||||
|
|
||||||
The enables config allows you to enable or disable solarized support for
|
The plugins config allows you to enable or disable solarized support for
|
||||||
spefic plugins or neovim's default highlights
|
spefic plugins or neovim's default highlights
|
||||||
|
|
||||||
example:
|
example:
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
require('solarized').setup {
|
return {
|
||||||
enables = {
|
'maxmx03/solarized.nvim',
|
||||||
editor = true,
|
lazy = false,
|
||||||
syntax = true,
|
priority = 1000,
|
||||||
|
---@type solarized.config
|
||||||
-- PLUGINS
|
opts = {
|
||||||
bufferline = true,
|
plugins = {
|
||||||
cmp = false, -- disabled
|
navic = false,
|
||||||
diagnostic = true,
|
nvimtree = false,
|
||||||
indentblankline = true,
|
dashboard = false,
|
||||||
lsp = true,
|
noice = false,
|
||||||
lspsaga = false, -- disabled
|
ministatusline = false,
|
||||||
navic = true,
|
minitabline = false,
|
||||||
semantic = true,
|
ministarter = false,
|
||||||
telescope = true,
|
rainbowdelimiters = false,
|
||||||
tree = false, -- disabled
|
|
||||||
treesitter = true,
|
|
||||||
},
|
|
||||||
highlights = {
|
|
||||||
-- your implementation of nvim-tree
|
|
||||||
-- your implementation of cmp
|
|
||||||
-- your implementation of lspsaga
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require('solarized').setup(opts)
|
||||||
|
vim.cmd.colorscheme 'solarized'
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config Autocmd
|
## Config Error Lens
|
||||||
|
|
||||||
This option enhances highlighting by enabling Solarized's autocmd feature.
|
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
|
## Lualine
|
||||||
|
|
||||||
|
|
@ -282,6 +401,7 @@ This option enhances highlighting by enabling Solarized's autocmd feature.
|
||||||
require('lualine').setup {
|
require('lualine').setup {
|
||||||
options = {
|
options = {
|
||||||
theme = 'solarized',
|
theme = 'solarized',
|
||||||
|
-- theme = 'selenized',
|
||||||
disabled_filetypes = {
|
disabled_filetypes = {
|
||||||
'NvimTree',
|
'NvimTree',
|
||||||
},
|
},
|
||||||
|
|
@ -311,114 +431,42 @@ require('barbecue').setup {
|
||||||
|
|
||||||
## Api
|
## Api
|
||||||
|
|
||||||
You can utilize useful functions to customize your Neovim plugins.
|
|
||||||
|
|
||||||
### Get Colors
|
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
local palette = require('solarized.palette')
|
---@type solarized.palette
|
||||||
local colors = palette.get_colors()
|
local colors = require('solarized.utils').get_colors()
|
||||||
```
|
---@type solarized.color
|
||||||
|
local color = require('solarized.color')
|
||||||
|
local darken = color.darken
|
||||||
|
local lighten = color.lighten
|
||||||
|
local blend = color.blend
|
||||||
|
local shade = color.shade
|
||||||
|
local tint = color.tint
|
||||||
|
|
||||||
### Color utils
|
-- example 1: get shades
|
||||||
|
|
||||||
```lua
|
|
||||||
local color = require('solarized.utils.colors')
|
|
||||||
|
|
||||||
-- Convert a hex color code to RGB
|
|
||||||
color.hex_to_rgb('#ffffff')
|
|
||||||
|
|
||||||
-- Darken a color by a specified percentage
|
|
||||||
color.darken('#ffffff', 100)
|
|
||||||
|
|
||||||
-- Lighten a color by a specified percentage
|
|
||||||
color.lighten('#000000', 100)
|
|
||||||
|
|
||||||
-- Blend two colors with a specified ratio
|
|
||||||
color.blend('#ffffff', '#000000', 0.15)
|
|
||||||
```
|
|
||||||
|
|
||||||
### How to get color shades
|
|
||||||
|
|
||||||
```lua
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local colors = require('solarized.palette').get_colors()
|
|
||||||
for i = 1, 10, 1 do
|
for i = 1, 10, 1 do
|
||||||
local shade = darken(colors.blue, i * 10)
|
print(shade(colors.yellow, i))
|
||||||
|
|
||||||
print(shade)
|
|
||||||
end
|
end
|
||||||
```
|
|
||||||
|
|
||||||
### How to get color tints
|
for i = 1, 100, 10 do
|
||||||
|
print(darken(colors.yellow, i))
|
||||||
```lua
|
end
|
||||||
local lighten = require('solarized.utils.colors').lighten
|
|
||||||
|
|
||||||
|
-- example 2: get tints
|
||||||
for i = 1, 10, 1 do
|
for i = 1, 10, 1 do
|
||||||
local tints = lighten(colors.blue, i * 10)
|
print(tint(colors.yellow, i))
|
||||||
|
|
||||||
print(tints)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for i = 1, 100, 10 do
|
||||||
|
print(lighten(colors.yellow, i))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- example 3: blend color
|
||||||
|
local new_color = blend(colors.yellow, colors.base03, 0.2)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Thank you for your interest in contributing to this project! To ensure a smooth
|
Pull requests are welcome and appreciated.
|
||||||
collaboration, please follow the guidelines below:
|
|
||||||
|
|
||||||
1. **Branching**: Make your changes on the `dev` branch. Avoid making direct
|
|
||||||
changes to the `main` branch.
|
|
||||||
2. **Testing**: Before submitting a pull request, run the `./test.py` script
|
|
||||||
to ensure that your changes pass all necessary tests. This step helps maintain
|
|
||||||
the quality and stability of the project. Ensure that the following dependencies
|
|
||||||
are installed for running tests:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install luarocks
|
|
||||||
sudo luarocks install luacheck
|
|
||||||
sudo luarocks install vusted
|
|
||||||
cargo install stylua
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./test.py
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ok 1 - Color Conversions Convert hex to RGB
|
|
||||||
ok 2 - Color Conversions Convert RGB to hex
|
|
||||||
ok 3 - Color Conversions Darken the color by percentage
|
|
||||||
ok 4 - Color Conversions Lighten the color by percentage
|
|
||||||
ok 5 - Color Conversions Blend colors
|
|
||||||
ok 6 - Configuration Default configuration
|
|
||||||
ok 7 - Configuration Unique configuration table instances
|
|
||||||
ok 8 - Configuration Extend default configuration
|
|
||||||
ok 9 - Initialization Loads without encountering any errors
|
|
||||||
ok 10 - Initialization Background is set to light
|
|
||||||
ok 11 - Palette Extend solarized color palette
|
|
||||||
ok 12 - Palette Correct any invalid colors when extending the solarized palette
|
|
||||||
ok 13 - Setup Customizing Highlight Groups
|
|
||||||
ok 14 - Setup Changing Comment Style
|
|
||||||
ok 15 - Setup Changing Function Style
|
|
||||||
ok 16 - Setup Customizable Highlight Groups Without Losing Previous Configuration
|
|
||||||
ok 17 - Setup Ability to Change the Default Theme
|
|
||||||
1..17
|
|
||||||
# Success: 17
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Pull Request**: When submitting a pull request, select the `dev` branch
|
|
||||||
as the target branch. This ensures that your changes will be merged into the
|
|
||||||
`dev` branch for further review and integration.
|
|
||||||
|
|
||||||
4. **Provide Details**: Provide a clear and descriptive title and description
|
|
||||||
for your pull request, explaining the purpose and scope of your changes.
|
|
||||||
|
|
||||||
5. **Review Process**: Wait for the maintainer to review your pull request.
|
|
||||||
The maintainers will review your changes before merging.
|
|
||||||
|
|
||||||
6. **Final Approval**: Once your changes have been reviewed and approved, the
|
|
||||||
project maintainer will handle merging your changes into the `main` branch.
|
|
||||||
|
|
||||||
## Designed by
|
## Designed by
|
||||||
|
|
||||||
|
|
@ -426,9 +474,8 @@ collaboration, please follow the guidelines below:
|
||||||
|
|
||||||
Ethan Schoonover
|
Ethan Schoonover
|
||||||
|
|
||||||
## Credits and Reference 🎉
|
## Credits and Reference
|
||||||
|
|
||||||
- [onedarkpro](https://github.com/olimorris/onedarkpro.nvim)
|
|
||||||
- [solarized-vim](https://github.com/altercation/vim-colors-solarized)
|
- [solarized-vim](https://github.com/altercation/vim-colors-solarized)
|
||||||
- [tokyonight](https://github.com/folke/tokyonight.nvim)
|
- [tokyonight](https://github.com/folke/tokyonight.nvim)
|
||||||
|
|
||||||
|
|
|
||||||
17
VARIANTS.md
Normal file
17
VARIANTS.md
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Variants
|
||||||
|
|
||||||
|
autumn
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
spring
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
winter
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
summer
|
||||||
|
|
||||||
|

|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
; extends
|
; extends
|
||||||
((pseudo_class_selector) @type (#set! "priority" 125))
|
|
||||||
((class_selector) @type (#set! "priority" 125))
|
|
||||||
((plain_value) @constant (#set! "priority" 125))
|
((plain_value) @constant (#set! "priority" 125))
|
||||||
((id_selector) @constructor (#set! "priority" 125))
|
((selectors) @type (#set! "priority" 125))
|
||||||
(tag_name) @tag
|
(tag_name) @tag
|
||||||
(unit) @keyword
|
(unit) @keyword
|
||||||
|
(integer_value) @number
|
||||||
(property_name) @field
|
(property_name) @field
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
; extends
|
; extends
|
||||||
((nesting_selector) @keyword (#set! "priority" 125))
|
((nesting_selector) @keyword (#set! "priority" 125))
|
||||||
|
(declaration (variable_value) @string)
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
require('solarized.config').load()
|
-- Solarized colorscheme
|
||||||
|
-- Repo: maxmx03/solarized.nvim
|
||||||
|
-- Maintainer: Milianor github.com/maxmx03
|
||||||
|
-- License: MIT License
|
||||||
|
require('solarized').load()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
*solarized.nvim.txt* For NVIM v0.9.1 Last change: 2023 December 24
|
*solarized.nvim.txt*
|
||||||
|
For NVIM v0.9.4 Last change: 2026 April 17
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
Table of Contents *solarized.nvim-table-of-contents*
|
Table of Contents *solarized.nvim-table-of-contents*
|
||||||
|
|
@ -6,22 +7,25 @@ Table of Contents *solarized.nvim-table-of-contents*
|
||||||
- Features |solarized.nvim-features|
|
- Features |solarized.nvim-features|
|
||||||
- Requirements |solarized.nvim-requirements|
|
- Requirements |solarized.nvim-requirements|
|
||||||
- Install from package manager |solarized.nvim-install-from-package-manager|
|
- Install from package manager |solarized.nvim-install-from-package-manager|
|
||||||
|
- Solarized’s Annotations |solarized.nvim-solarized’s-annotations|
|
||||||
- Manual Installation |solarized.nvim-manual-installation|
|
- Manual Installation |solarized.nvim-manual-installation|
|
||||||
- Help |solarized.nvim-help|
|
- Docs |solarized.nvim-docs|
|
||||||
- Commands |solarized.nvim-commands|
|
- Commands |solarized.nvim-commands|
|
||||||
- Default Config |solarized.nvim-default-config|
|
- Default Config |solarized.nvim-default-config|
|
||||||
- Config Themes |solarized.nvim-config-themes|
|
- Config Variant |solarized.nvim-config-variant|
|
||||||
|
- Config Transparency |solarized.nvim-config-transparency|
|
||||||
- Config Styles |solarized.nvim-config-styles|
|
- Config Styles |solarized.nvim-config-styles|
|
||||||
- Config Highlights |solarized.nvim-config-highlights|
|
- Config Highlights |solarized.nvim-config-highlights|
|
||||||
- Config Colors |solarized.nvim-config-colors|
|
- Config Colors |solarized.nvim-config-colors|
|
||||||
- Config Enables |solarized.nvim-config-enables|
|
- Config Plugins |solarized.nvim-config-plugins|
|
||||||
- Config Autocmd |solarized.nvim-config-autocmd|
|
- Config Error Lens |solarized.nvim-config-error-lens|
|
||||||
- Lualine |solarized.nvim-lualine|
|
- Lualine |solarized.nvim-lualine|
|
||||||
- Barbecue |solarized.nvim-barbecue|
|
- Barbecue |solarized.nvim-barbecue|
|
||||||
- Api |solarized.nvim-api|
|
- Api |solarized.nvim-api|
|
||||||
- Contributing |solarized.nvim-contributing|
|
- Contributing |solarized.nvim-contributing|
|
||||||
- Designed by |solarized.nvim-designed-by|
|
- 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)
|
Solarized is a sixteen color palette (eight monotones, eight accent colors)
|
||||||
designed for use with terminal and gui applications. click here to learn more
|
designed for use with terminal and gui applications. click here to learn more
|
||||||
|
|
@ -30,26 +34,26 @@ designed for use with terminal and gui applications. click here to learn more
|
||||||
- |solarized.nvim-features|
|
- |solarized.nvim-features|
|
||||||
- |solarized.nvim-requirements|
|
- |solarized.nvim-requirements|
|
||||||
- |solarized.nvim-install-from-package-manager|
|
- |solarized.nvim-install-from-package-manager|
|
||||||
|
- |solarized.nvim-solarized’s-annotations|
|
||||||
|
- |solarized.nvim-using-`lspconfig`|
|
||||||
|
- |solarized.nvim-using-`.luarc.json`|
|
||||||
- |solarized.nvim-manual-installation|
|
- |solarized.nvim-manual-installation|
|
||||||
- |solarized.nvim-help|
|
- |solarized.nvim-docs|
|
||||||
- |solarized.nvim-commands|
|
- |solarized.nvim-commands|
|
||||||
- |solarized.nvim-default-config|
|
- |solarized.nvim-default-config|
|
||||||
- |solarized.nvim-config-themes|
|
- |solarized.nvim-config-variant|
|
||||||
|
- |solarized.nvim-config-transparency|
|
||||||
- |solarized.nvim-config-styles|
|
- |solarized.nvim-config-styles|
|
||||||
- |solarized.nvim-config-highlights|
|
- |solarized.nvim-config-highlights|
|
||||||
- |solarized.nvim-config-colors|
|
- |solarized.nvim-config-colors|
|
||||||
- |solarized.nvim-config-enables|
|
- |solarized.nvim-config-plugins|
|
||||||
- |solarized.nvim-config-autocmd|
|
- |solarized.nvim-config-error-lens|
|
||||||
- |solarized.nvim-lualine|
|
- |solarized.nvim-lualine|
|
||||||
- |solarized.nvim-barbecue|
|
- |solarized.nvim-barbecue|
|
||||||
- |solarized.nvim-api|
|
- |solarized.nvim-api|
|
||||||
- |solarized.nvim-get-colors|
|
|
||||||
- |solarized.nvim-color-utils|
|
|
||||||
- |solarized.nvim-how-to-get-color-shades|
|
|
||||||
- |solarized.nvim-how-to-get-color-tints|
|
|
||||||
- |solarized.nvim-contributing|
|
- |solarized.nvim-contributing|
|
||||||
- |solarized.nvim-designed-by|
|
- |solarized.nvim-designed-by|
|
||||||
- |solarized.nvim-credits-and-reference-🎉|
|
- |solarized.nvim-credits-and-reference|
|
||||||
|
|
||||||
|
|
||||||
FEATURES *solarized.nvim-features*
|
FEATURES *solarized.nvim-features*
|
||||||
|
|
@ -78,16 +82,19 @@ Download using your preferred package manager.
|
||||||
lazy <https://github.com/folke/lazy.nvim>
|
lazy <https://github.com/folke/lazy.nvim>
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
{
|
return {
|
||||||
'maxmx03/solarized.nvim',
|
'maxmx03/solarized.nvim',
|
||||||
lazy = false,
|
lazy = false,
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
config = function()
|
---@type solarized.config
|
||||||
vim.o.background = 'dark' -- or 'light'
|
opts = {},
|
||||||
|
config = function(_, opts)
|
||||||
vim.cmd.colorscheme 'solarized'
|
vim.o.termguicolors = true
|
||||||
end,
|
vim.o.background = 'light'
|
||||||
},
|
require('solarized').setup(opts)
|
||||||
|
vim.cmd.colorscheme 'solarized'
|
||||||
|
end,
|
||||||
|
}
|
||||||
<
|
<
|
||||||
|
|
||||||
packer <https://github.com/wbthomason/packer.nvim>
|
packer <https://github.com/wbthomason/packer.nvim>
|
||||||
|
|
@ -96,14 +103,56 @@ packer <https://github.com/wbthomason/packer.nvim>
|
||||||
use {
|
use {
|
||||||
'maxmx03/solarized.nvim',
|
'maxmx03/solarized.nvim',
|
||||||
config = function()
|
config = function()
|
||||||
vim.o.background = 'dark' -- or 'light'
|
vim.o.background = 'dark'
|
||||||
|
---@type solarized
|
||||||
|
local solarized = require('solarized')
|
||||||
|
vim.o.termguicolors = true
|
||||||
|
vim.o.background = 'dark'
|
||||||
|
solarized.setup({})
|
||||||
vim.cmd.colorscheme 'solarized'
|
vim.cmd.colorscheme 'solarized'
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
|
SOLARIZED’S ANNOTATIONS *solarized.nvim-solarized’s-annotations*
|
||||||
|
|
||||||
|
|
||||||
|
USING LSPCONFIG ~
|
||||||
|
|
||||||
|
>lua
|
||||||
|
local lsp_config = require 'lspconfig'
|
||||||
|
lsp_config.lua_ls.setup {
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
hint = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
checkThirdParty = true,
|
||||||
|
library = {
|
||||||
|
vim.env.VIMRUNTIME,
|
||||||
|
'~/.local/share/nvim/lazy/solarized.nvim',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
<
|
||||||
|
|
||||||
|
|
||||||
|
USING .LUARC.JSON ~
|
||||||
|
|
||||||
|
>json
|
||||||
|
{
|
||||||
|
"workspace.library": ["/path/to/nvim/runtime", "/path/to/solarized.nvim"]
|
||||||
|
}
|
||||||
|
<
|
||||||
|
|
||||||
|
|
||||||
MANUAL INSTALLATION *solarized.nvim-manual-installation*
|
MANUAL INSTALLATION *solarized.nvim-manual-installation*
|
||||||
|
|
||||||
To manually install Solarized, follow these steps:
|
To manually install Solarized, follow these steps:
|
||||||
|
|
@ -115,15 +164,14 @@ To manually install Solarized, follow these steps:
|
||||||
4. Copy these folders to the `~/.config/nvim` directory.
|
4. Copy these folders to the `~/.config/nvim` directory.
|
||||||
|
|
||||||
|
|
||||||
HELP *solarized.nvim-help*
|
DOCS *solarized.nvim-docs*
|
||||||
|
|
||||||
Use |solarized.nvim.txt| to get some help
|
Use |solarized.nvim.txt| to see docs
|
||||||
|
|
||||||
|
|
||||||
COMMANDS *solarized.nvim-commands*
|
COMMANDS *solarized.nvim-commands*
|
||||||
|
|
||||||
- `:Solarized colors` - Display the Solarized palette in a new buffer
|
- `:Solarized colors` - Display the Solarized palette in a new buffer
|
||||||
- `:Solarized zen`- Removes highlight colors, emphasizing important code segments.
|
|
||||||
|
|
||||||
|
|
||||||
DEFAULT CONFIG *solarized.nvim-default-config*
|
DEFAULT CONFIG *solarized.nvim-default-config*
|
||||||
|
|
@ -133,62 +181,108 @@ DEFAULT CONFIG *solarized.nvim-default-config*
|
||||||
|
|
||||||
-- default config
|
-- default config
|
||||||
require('solarized').setup({
|
require('solarized').setup({
|
||||||
transparent = false, -- enable transparent background
|
transparent = {
|
||||||
palette = 'solarized', -- or selenized
|
enabled = false,
|
||||||
styles = {
|
pmenu = true,
|
||||||
comments = {},
|
normal = true,
|
||||||
functions = {},
|
normalfloat = true,
|
||||||
variables = {},
|
neotree = true,
|
||||||
numbers = {},
|
nvimtree = true,
|
||||||
constants = {},
|
whichkey = true,
|
||||||
parameters = {},
|
telescope = true,
|
||||||
keywords = {},
|
lazy = true,
|
||||||
types = {},
|
},
|
||||||
},
|
on_highlights = nil,
|
||||||
enables = {
|
on_colors = nil,
|
||||||
bufferline = true,
|
palette = 'solarized', -- solarized (default) | selenized
|
||||||
cmp = true,
|
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||||
diagnostic = true,
|
error_lens = {
|
||||||
dashboard = true,
|
text = false,
|
||||||
editor = true,
|
symbol = false,
|
||||||
gitsign = true,
|
},
|
||||||
hop = true,
|
styles = {
|
||||||
indentblankline = true,
|
enabled = true,
|
||||||
lsp = true,
|
types = {},
|
||||||
lspsaga = true,
|
functions = {},
|
||||||
navic = true,
|
parameters = {},
|
||||||
neogit = true,
|
comments = {},
|
||||||
neotree = true,
|
strings = {},
|
||||||
notify = true,
|
keywords = {},
|
||||||
noice = true,
|
variables = {},
|
||||||
semantic = true,
|
constants = {},
|
||||||
syntax = true,
|
},
|
||||||
telescope = true,
|
plugins = {
|
||||||
tree = true,
|
treesitter = true,
|
||||||
treesitter = true,
|
lspconfig = true,
|
||||||
todo = true,
|
navic = true,
|
||||||
whichkey = true,
|
cmp = true,
|
||||||
mini = true,
|
indentblankline = true,
|
||||||
},
|
indentmini = true,
|
||||||
highlights = {},
|
neotree = true,
|
||||||
colors = {},
|
nvimtree = true,
|
||||||
theme = 'default', -- or 'neo'
|
whichkey = true,
|
||||||
autocmd = true,
|
dashboard = true,
|
||||||
|
gitsigns = true,
|
||||||
|
telescope = true,
|
||||||
|
noice = true,
|
||||||
|
hop = true,
|
||||||
|
ministatusline = true,
|
||||||
|
minitabline = true,
|
||||||
|
ministarter = true,
|
||||||
|
minicursorword = true,
|
||||||
|
notify = true,
|
||||||
|
rainbowdelimiters = true,
|
||||||
|
bufferline = true,
|
||||||
|
lazy = true,
|
||||||
|
rendermarkdown = true,
|
||||||
|
ale = true,
|
||||||
|
coc = true,
|
||||||
|
leap = true,
|
||||||
|
alpha = true,
|
||||||
|
yanky = true,
|
||||||
|
gitgutter = true,
|
||||||
|
mason = true,
|
||||||
|
flash = true,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.cmd.colorscheme = 'solarized' -- or selenized
|
vim.cmd.colorscheme = 'solarized'
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
CONFIG THEMES *solarized.nvim-config-themes*
|
CONFIG VARIANT *solarized.nvim-config-variant*
|
||||||
|
|
||||||
Solarized offers two themes: the default Solarized theme and Neo. These themes
|
Solarized includes four variants: spring, summer, autumn, and winter.
|
||||||
provide different visual styles to enhance your experience.
|
|
||||||
|
preview <https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md>
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
require('solarized').setup({
|
require('solarized').setup {
|
||||||
theme = 'neo' -- or comment to use solarized default theme.
|
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
|
||||||
|
customize which specific UI components should be transparent.
|
||||||
|
|
||||||
|
>lua
|
||||||
|
require('solarized').setup {
|
||||||
|
transparent = {
|
||||||
|
enabled = true, -- Master switch to enable transparency
|
||||||
|
pmenu = true, -- Popup menu (e.g., autocomplete suggestions)
|
||||||
|
normal = true, -- Main editor window background
|
||||||
|
normalfloat = true, -- Floating windows
|
||||||
|
neotree = true, -- Neo-tree file explorer
|
||||||
|
nvimtree = true, -- Nvim-tree file explorer
|
||||||
|
whichkey = true, -- Which-key popup
|
||||||
|
telescope = true, -- Telescope fuzzy finder
|
||||||
|
lazy = true, -- Lazy plugin manager UI
|
||||||
|
mason = true, -- Mason manage external tooling
|
||||||
|
},
|
||||||
|
}
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -197,12 +291,22 @@ CONFIG STYLES *solarized.nvim-config-styles*
|
||||||
The `styles` config allows you to customize the style of a highlight group.
|
The `styles` config allows you to customize the style of a highlight group.
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
require('solarized').setup({
|
---@type solarized.styles
|
||||||
styles = {
|
local styles = {
|
||||||
comments = { italic = true, bold = false },
|
comments = { italic = true, bold = false },
|
||||||
functions = { italic = true },
|
functions = { italic = true },
|
||||||
variables = { italic = false },
|
variables = { italic = false },
|
||||||
}
|
}
|
||||||
|
require('solarized').setup({
|
||||||
|
styles = styles,
|
||||||
|
})
|
||||||
|
<
|
||||||
|
|
||||||
|
You can also disable all highlight group styles.
|
||||||
|
|
||||||
|
>lua
|
||||||
|
require('solarized').setup({
|
||||||
|
styles = { enabled = false },
|
||||||
})
|
})
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
@ -215,18 +319,23 @@ example:
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
require('solarized').setup {
|
require('solarized').setup {
|
||||||
highlights = function (colors, colorhelper)
|
on_highlights = function (colors, color)
|
||||||
local darken = colorhelper.darken
|
local darken = color.darken
|
||||||
local lighten = colorhelper.lighten
|
local lighten = color.lighten
|
||||||
local blend = colorhelper.blend
|
local blend = color.blend
|
||||||
|
local shade = color.shade
|
||||||
|
local tint = color.tint
|
||||||
|
|
||||||
return {
|
---@type solarized.highlights
|
||||||
LineNr = { fg = c.base1, bg = c.base02 },
|
local groups = {
|
||||||
CursorLineNr = { bg = c.base02 },
|
Visual = { bg = colors.base02, standout = true },
|
||||||
CursorLine = { bg = c.base02 },
|
Function = { fg = colors.yellow },
|
||||||
Function = { italic = false },
|
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
|
||||||
Visual = { bg = c.cyan },
|
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
|
||||||
|
NormalFloat = { bg = darken(colors.base03, 25) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return groups
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
|
|
@ -237,18 +346,19 @@ CONFIG COLORS *solarized.nvim-config-colors*
|
||||||
The `colors` config allows you to extend or modify the color palette used by
|
The `colors` config allows you to extend or modify the color palette used by
|
||||||
solarized.
|
solarized.
|
||||||
|
|
||||||
|
|
||||||
|
[!TIP] Use `:Solarized colors` to see available colors.
|
||||||
example:
|
example:
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
require('solarized').setup {
|
require('solarized').setup {
|
||||||
colors = function(colors, colorhelper)
|
on_colors = function(colors, color)
|
||||||
local darken = colorhelper.darken
|
local lighten = color.tint
|
||||||
local lighten = colorhelper.lighten
|
local darken = color.darken
|
||||||
local blend = colorhelper.blend
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fg = '#fff', -- output: #ffffff
|
fg = lighten(colors.base00, 2),
|
||||||
bg = darken(colors.base03, 100)
|
bg = darken(colors.base03, 30)
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
highlights = function(colors)
|
highlights = function(colors)
|
||||||
|
|
@ -260,44 +370,61 @@ example:
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
CONFIG ENABLES *solarized.nvim-config-enables*
|
CONFIG PLUGINS *solarized.nvim-config-plugins*
|
||||||
|
|
||||||
The enables config allows you to enable or disable solarized support for spefic
|
The plugins config allows you to enable or disable solarized support for spefic
|
||||||
plugins or neovim’s default highlights
|
plugins or neovim’s default highlights
|
||||||
|
|
||||||
example:
|
example:
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
require('solarized').setup {
|
return {
|
||||||
enables = {
|
'maxmx03/solarized.nvim',
|
||||||
editor = true,
|
lazy = false,
|
||||||
syntax = true,
|
priority = 1000,
|
||||||
|
---@type solarized.config
|
||||||
-- PLUGINS
|
opts = {
|
||||||
bufferline = true,
|
plugins = {
|
||||||
cmp = false, -- disabled
|
navic = false,
|
||||||
diagnostic = true,
|
nvimtree = false,
|
||||||
indentblankline = true,
|
dashboard = false,
|
||||||
lsp = true,
|
noice = false,
|
||||||
lspsaga = false, -- disabled
|
ministatusline = false,
|
||||||
navic = true,
|
minitabline = false,
|
||||||
semantic = true,
|
ministarter = false,
|
||||||
telescope = true,
|
rainbowdelimiters = false,
|
||||||
tree = false, -- disabled
|
|
||||||
treesitter = true,
|
|
||||||
},
|
|
||||||
highlights = {
|
|
||||||
-- your implementation of nvim-tree
|
|
||||||
-- your implementation of cmp
|
|
||||||
-- your implementation of lspsaga
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require('solarized').setup(opts)
|
||||||
|
vim.cmd.colorscheme 'solarized'
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
CONFIG AUTOCMD *solarized.nvim-config-autocmd*
|
CONFIG ERROR LENS *solarized.nvim-config-error-lens*
|
||||||
|
|
||||||
This option enhances highlighting by enabling Solarized’s autocmd feature.
|
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*
|
LUALINE *solarized.nvim-lualine*
|
||||||
|
|
@ -306,6 +433,7 @@ LUALINE *solarized.nvim-lualine*
|
||||||
require('lualine').setup {
|
require('lualine').setup {
|
||||||
options = {
|
options = {
|
||||||
theme = 'solarized',
|
theme = 'solarized',
|
||||||
|
-- theme = 'selenized',
|
||||||
disabled_filetypes = {
|
disabled_filetypes = {
|
||||||
'NvimTree',
|
'NvimTree',
|
||||||
},
|
},
|
||||||
|
|
@ -338,127 +466,43 @@ BARBECUE *solarized.nvim-barbecue*
|
||||||
|
|
||||||
API *solarized.nvim-api*
|
API *solarized.nvim-api*
|
||||||
|
|
||||||
You can utilize useful functions to customize your Neovim plugins.
|
|
||||||
|
|
||||||
|
|
||||||
GET COLORS ~
|
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
local palette = require('solarized.palette')
|
---@type solarized.palette
|
||||||
local colors = palette.get_colors()
|
local colors = require('solarized.utils').get_colors()
|
||||||
<
|
---@type solarized.color
|
||||||
|
local color = require('solarized.color')
|
||||||
|
local darken = color.darken
|
||||||
|
local lighten = color.lighten
|
||||||
|
local blend = color.blend
|
||||||
|
local shade = color.shade
|
||||||
|
local tint = color.tint
|
||||||
|
|
||||||
|
-- example 1: get shades
|
||||||
COLOR UTILS ~
|
|
||||||
|
|
||||||
>lua
|
|
||||||
local color = require('solarized.utils.colors')
|
|
||||||
|
|
||||||
-- Convert a hex color code to RGB
|
|
||||||
color.hex_to_rgb('#ffffff')
|
|
||||||
|
|
||||||
-- Darken a color by a specified percentage
|
|
||||||
color.darken('#ffffff', 100)
|
|
||||||
|
|
||||||
-- Lighten a color by a specified percentage
|
|
||||||
color.lighten('#000000', 100)
|
|
||||||
|
|
||||||
-- Blend two colors with a specified ratio
|
|
||||||
color.blend('#ffffff', '#000000', 0.15)
|
|
||||||
<
|
|
||||||
|
|
||||||
|
|
||||||
HOW TO GET COLOR SHADES ~
|
|
||||||
|
|
||||||
>lua
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local colors = require('solarized.palette').get_colors()
|
|
||||||
for i = 1, 10, 1 do
|
for i = 1, 10, 1 do
|
||||||
local shade = darken(colors.blue, i * 10)
|
print(shade(colors.yellow, i))
|
||||||
|
|
||||||
print(shade)
|
|
||||||
end
|
end
|
||||||
<
|
|
||||||
|
|
||||||
|
for i = 1, 100, 10 do
|
||||||
|
print(darken(colors.yellow, i))
|
||||||
|
end
|
||||||
|
|
||||||
HOW TO GET COLOR TINTS ~
|
-- example 2: get tints
|
||||||
|
|
||||||
>lua
|
|
||||||
local lighten = require('solarized.utils.colors').lighten
|
|
||||||
|
|
||||||
for i = 1, 10, 1 do
|
for i = 1, 10, 1 do
|
||||||
local tints = lighten(colors.blue, i * 10)
|
print(tint(colors.yellow, i))
|
||||||
|
|
||||||
print(tints)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for i = 1, 100, 10 do
|
||||||
|
print(lighten(colors.yellow, i))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- example 3: blend color
|
||||||
|
local new_color = blend(colors.yellow, colors.base03, 0.2)
|
||||||
<
|
<
|
||||||
|
|
||||||
|
|
||||||
CONTRIBUTING *solarized.nvim-contributing*
|
CONTRIBUTING *solarized.nvim-contributing*
|
||||||
|
|
||||||
Thank you for your interest in contributing to this project! To ensure a smooth
|
Pull requests are welcome and appreciated.
|
||||||
collaboration, please follow the guidelines below:
|
|
||||||
|
|
||||||
1. **Branching**: Make your changes on the `dev` branch. Avoid making direct
|
|
||||||
changes to the `main` branch.
|
|
||||||
|
|
||||||
|
|
||||||
2. **Testing**: Before submitting a pull request, run the `./test.py` script to
|
|
||||||
ensure that your changes pass all necessary tests. This step helps maintain the
|
|
||||||
quality and stability of the project. Ensure that the following dependencies
|
|
||||||
are installed for running tests:
|
|
||||||
|
|
||||||
>bash
|
|
||||||
sudo apt install luarocks
|
|
||||||
sudo luarocks install luacheck
|
|
||||||
sudo luarocks install vusted
|
|
||||||
cargo install stylua
|
|
||||||
<
|
|
||||||
|
|
||||||
>bash
|
|
||||||
./test.py
|
|
||||||
<
|
|
||||||
|
|
||||||
>bash
|
|
||||||
ok 1 - Color Conversions Convert hex to RGB
|
|
||||||
ok 2 - Color Conversions Convert RGB to hex
|
|
||||||
ok 3 - Color Conversions Darken the color by percentage
|
|
||||||
ok 4 - Color Conversions Lighten the color by percentage
|
|
||||||
ok 5 - Color Conversions Blend colors
|
|
||||||
ok 6 - Configuration Default configuration
|
|
||||||
ok 7 - Configuration Unique configuration table instances
|
|
||||||
ok 8 - Configuration Extend default configuration
|
|
||||||
ok 9 - Initialization Loads without encountering any errors
|
|
||||||
ok 10 - Initialization Background is set to light
|
|
||||||
ok 11 - Palette Extend solarized color palette
|
|
||||||
ok 12 - Palette Correct any invalid colors when extending the solarized palette
|
|
||||||
ok 13 - Setup Customizing Highlight Groups
|
|
||||||
ok 14 - Setup Changing Comment Style
|
|
||||||
ok 15 - Setup Changing Function Style
|
|
||||||
ok 16 - Setup Customizable Highlight Groups Without Losing Previous Configuration
|
|
||||||
ok 17 - Setup Ability to Change the Default Theme
|
|
||||||
1..17
|
|
||||||
# Success: 17
|
|
||||||
<
|
|
||||||
|
|
||||||
|
|
||||||
3. **Pull Request**: When submitting a pull request, select the `dev` branch as
|
|
||||||
the target branch. This ensures that your changes will be merged into the `dev`
|
|
||||||
branch for further review and integration.
|
|
||||||
|
|
||||||
|
|
||||||
4. **Provide Details**: Provide a clear and descriptive title and description for
|
|
||||||
your pull request, explaining the purpose and scope of your changes.
|
|
||||||
|
|
||||||
|
|
||||||
5. **Review Process**: Wait for the maintainer to review your pull request. The
|
|
||||||
maintainers will review your changes before merging.
|
|
||||||
|
|
||||||
|
|
||||||
6. **Final Approval**: Once your changes have been reviewed and approved, the
|
|
||||||
project maintainer will handle merging your changes into the `main` branch.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DESIGNED BY *solarized.nvim-designed-by*
|
DESIGNED BY *solarized.nvim-designed-by*
|
||||||
|
|
@ -468,9 +512,8 @@ DESIGNED BY *solarized.nvim-designed-by*
|
||||||
Ethan Schoonover
|
Ethan Schoonover
|
||||||
|
|
||||||
|
|
||||||
CREDITS AND REFERENCE 🎉 *solarized.nvim-credits-and-reference-🎉*
|
CREDITS AND REFERENCE *solarized.nvim-credits-and-reference*
|
||||||
|
|
||||||
- onedarkpro <https://github.com/olimorris/onedarkpro.nvim>
|
|
||||||
- solarized-vim <https://github.com/altercation/vim-colors-solarized>
|
- solarized-vim <https://github.com/altercation/vim-colors-solarized>
|
||||||
- tokyonight <https://github.com/folke/tokyonight.nvim>
|
- tokyonight <https://github.com/folke/tokyonight.nvim>
|
||||||
|
|
||||||
|
|
@ -479,7 +522,7 @@ CREDITS AND REFERENCE 🎉 *solarized.nvim-credits-and-reference-🎉*
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Links *solarized.nvim-links*
|
1. Links *solarized.nvim-links*
|
||||||
|
|
||||||
1. *solarized*: https://github.com/maxmx03/solarized.nvim/assets/50273941/3c2ffda7-9efb-46f4-ad82-7dfd257dda39
|
1. *Component 1*: https://github.com/user-attachments/assets/11d8bd97-0f99-4413-937a-a5eaf4b2a4db
|
||||||
2. *Ethan Schoonover*: https://github.com/altercation.png?size=100
|
2. *Ethan Schoonover*: https://github.com/altercation.png?size=100
|
||||||
3. *Raphael*: https://github.com/glepnir.png?size=100
|
3. *Raphael*: https://github.com/glepnir.png?size=100
|
||||||
|
|
||||||
|
|
|
||||||
3
docker-compose.yml
Normal file
3
docker-compose.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
services:
|
||||||
|
solarized:
|
||||||
|
build: .
|
||||||
|
|
@ -1,40 +1,78 @@
|
||||||
local palette = require('solarized.palette')
|
local config = require 'solarized.config'
|
||||||
local c = palette.get_colors()
|
if vim.o.background == 'dark' then
|
||||||
|
local palette = require 'solarized.palette'
|
||||||
local M = {
|
local c = palette[config.palette]
|
||||||
normal = {},
|
return {
|
||||||
ellipsis = { fg = c.base0 },
|
normal = {},
|
||||||
separator = { link = 'Keyword' },
|
ellipsis = { fg = c.base0 },
|
||||||
modified = { fg = c.warning },
|
separator = { link = 'Keyword' },
|
||||||
dirname = { link = 'Directory' },
|
modified = { fg = c.diag_warning },
|
||||||
basename = { fg = c.base0, bold = true },
|
dirname = { link = 'Directory' },
|
||||||
context = { fg = c.base0 },
|
basename = { fg = c.base0, bold = true },
|
||||||
context_file = { fg = c.base0 },
|
context = { fg = c.base0 },
|
||||||
context_module = { link = '@namespace' },
|
context_file = { fg = c.base0 },
|
||||||
context_namespace = { link = '@namespace' },
|
context_module = { link = 'Type' },
|
||||||
context_package = { link = 'Directory' },
|
context_namespace = { link = 'Type' },
|
||||||
context_class = { link = 'Type' },
|
context_package = { link = 'Directory' },
|
||||||
context_method = { link = 'Function' },
|
context_class = { link = 'Type' },
|
||||||
context_property = { link = '@field' },
|
context_method = { link = 'Function' },
|
||||||
context_field = { link = '@field' },
|
context_property = { link = 'Identifier' },
|
||||||
context_constructor = { link = '@constructor' },
|
context_field = { link = 'Identifier' },
|
||||||
context_enum = { link = 'Type' },
|
context_constructor = { link = 'Type' },
|
||||||
context_interface = { link = 'Type' },
|
context_enum = { link = 'Type' },
|
||||||
context_function = { link = 'Function' },
|
context_interface = { link = 'Type' },
|
||||||
context_variable = { link = 'Identifier' },
|
context_function = { link = 'Function' },
|
||||||
context_constant = { link = 'Constant' },
|
context_variable = { link = 'Identifier' },
|
||||||
context_string = { link = 'String' },
|
context_constant = { link = 'Constant' },
|
||||||
context_number = { link = 'Number' },
|
context_string = { link = 'String' },
|
||||||
context_boolean = { link = 'Boolean' },
|
context_number = { link = 'Number' },
|
||||||
context_array = { link = 'Delimiter' },
|
context_boolean = { link = 'Boolean' },
|
||||||
context_object = { link = '@field' },
|
context_array = { link = 'Delimiter' },
|
||||||
context_key = { link = 'Delimiter' },
|
context_object = { link = 'Identifier' },
|
||||||
context_null = { link = 'Constant' },
|
context_key = { link = 'Delimiter' },
|
||||||
context_enum_member = { link = 'Constant' },
|
context_null = { link = 'Constant' },
|
||||||
context_struct = { link = 'Structure' },
|
context_enum_member = { link = 'Constant' },
|
||||||
context_event = { fg = c.base2 },
|
context_struct = { link = 'Structure' },
|
||||||
context_operator = { link = 'Operator' },
|
context_event = { fg = c.yellow },
|
||||||
context_type_parameter = { link = 'Type' },
|
context_operator = { link = 'Operator' },
|
||||||
}
|
context_type_parameter = { link = 'Type' },
|
||||||
|
}
|
||||||
return M
|
else
|
||||||
|
local palette = require 'solarized.palette.solarized-light'
|
||||||
|
local c = palette[config.palette]
|
||||||
|
return {
|
||||||
|
normal = {},
|
||||||
|
ellipsis = { fg = c.base00 },
|
||||||
|
separator = { link = 'Keyword' },
|
||||||
|
modified = { fg = c.diag_warning },
|
||||||
|
dirname = { link = 'Directory' },
|
||||||
|
basename = { fg = c.base00, bold = true },
|
||||||
|
context = { fg = c.base00 },
|
||||||
|
context_file = { fg = c.base00 },
|
||||||
|
context_module = { link = 'Type' },
|
||||||
|
context_namespace = { link = 'Type' },
|
||||||
|
context_package = { link = 'Directory' },
|
||||||
|
context_class = { link = 'Type' },
|
||||||
|
context_method = { link = 'Function' },
|
||||||
|
context_property = { link = 'Identifier' },
|
||||||
|
context_field = { link = 'Identifier' },
|
||||||
|
context_constructor = { link = 'Type' },
|
||||||
|
context_enum = { link = 'Type' },
|
||||||
|
context_interface = { link = 'Type' },
|
||||||
|
context_function = { link = 'Function' },
|
||||||
|
context_variable = { link = 'Identifier' },
|
||||||
|
context_constant = { link = 'Constant' },
|
||||||
|
context_string = { link = 'String' },
|
||||||
|
context_number = { link = 'Number' },
|
||||||
|
context_boolean = { link = 'Boolean' },
|
||||||
|
context_array = { link = 'Delimiter' },
|
||||||
|
context_object = { link = 'Identifier' },
|
||||||
|
context_key = { link = 'Delimiter' },
|
||||||
|
context_null = { link = 'Constant' },
|
||||||
|
context_enum_member = { link = 'Constant' },
|
||||||
|
context_struct = { link = 'Structure' },
|
||||||
|
context_event = { fg = c.yellow },
|
||||||
|
context_operator = { link = 'Operator' },
|
||||||
|
context_type_parameter = { link = 'Type' },
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
|
||||||
47
lua/lualine/themes/selenized.lua
Normal file
47
lua/lualine/themes/selenized.lua
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
if vim.o.background == 'dark' then
|
||||||
|
local palette = require 'solarized.palette'
|
||||||
|
local c = palette.selenized
|
||||||
|
return {
|
||||||
|
normal = {
|
||||||
|
a = { fg = c.base03, bg = c.blue, gui = 'bold' },
|
||||||
|
b = { fg = c.base02, bg = c.base1 },
|
||||||
|
c = { fg = c.base1, bg = c.base02 },
|
||||||
|
z = { fg = c.base03, bg = c.blue },
|
||||||
|
},
|
||||||
|
insert = {
|
||||||
|
a = { fg = c.base03, bg = c.green },
|
||||||
|
},
|
||||||
|
visual = {
|
||||||
|
a = { fg = c.base03, bg = c.magenta },
|
||||||
|
},
|
||||||
|
replace = {
|
||||||
|
a = { fg = c.base03, bg = c.red },
|
||||||
|
},
|
||||||
|
command = {
|
||||||
|
a = { fg = c.base03, bg = c.orange },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
else
|
||||||
|
local palette = require 'solarized.palette'
|
||||||
|
local c = palette.selenized
|
||||||
|
return {
|
||||||
|
normal = {
|
||||||
|
a = { fg = c.base3, bg = c.blue, gui = 'bold' },
|
||||||
|
b = { fg = c.base2, bg = c.base01 },
|
||||||
|
c = { fg = c.base01, bg = c.base2 },
|
||||||
|
z = { fg = c.base3, bg = c.blue },
|
||||||
|
},
|
||||||
|
insert = {
|
||||||
|
a = { fg = c.base3, bg = c.green },
|
||||||
|
},
|
||||||
|
visual = {
|
||||||
|
a = { fg = c.base3, bg = c.magenta },
|
||||||
|
},
|
||||||
|
replace = {
|
||||||
|
a = { fg = c.base3, bg = c.red },
|
||||||
|
},
|
||||||
|
command = {
|
||||||
|
a = { fg = c.base3, bg = c.orange },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
@ -1,25 +1,47 @@
|
||||||
local solarized_palette = require('solarized.palette')
|
if vim.o.background == 'dark' then
|
||||||
local colors = solarized_palette.get_colors()
|
local palette = require 'solarized.palette'
|
||||||
|
local c = palette.solarized
|
||||||
local M = {
|
return {
|
||||||
normal = {
|
normal = {
|
||||||
a = { fg = colors.base03, bg = colors.blue, gui = 'bold' },
|
a = { fg = c.base03, bg = c.blue, gui = 'bold' },
|
||||||
b = { fg = colors.base02, bg = colors.base1 },
|
b = { fg = c.base02, bg = c.base1 },
|
||||||
c = { fg = colors.base1, bg = colors.base02 },
|
c = { fg = c.base1, bg = c.base02 },
|
||||||
z = { fg = colors.base03, bg = colors.blue },
|
z = { fg = c.base03, bg = c.blue },
|
||||||
},
|
},
|
||||||
insert = {
|
insert = {
|
||||||
a = { fg = colors.base03, bg = colors.green },
|
a = { fg = c.base03, bg = c.green },
|
||||||
},
|
},
|
||||||
visual = {
|
visual = {
|
||||||
a = { fg = colors.base03, bg = colors.magenta },
|
a = { fg = c.base03, bg = c.magenta },
|
||||||
},
|
},
|
||||||
replace = {
|
replace = {
|
||||||
a = { fg = colors.base03, bg = colors.red },
|
a = { fg = c.base03, bg = c.red },
|
||||||
},
|
},
|
||||||
command = {
|
command = {
|
||||||
a = { fg = colors.base03, bg = colors.orange },
|
a = { fg = c.base03, bg = c.orange },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
else
|
||||||
return M
|
local palette = require 'solarized.palette'
|
||||||
|
local c = palette.solarized
|
||||||
|
return {
|
||||||
|
normal = {
|
||||||
|
a = { fg = c.base3, bg = c.blue, gui = 'bold' },
|
||||||
|
b = { fg = c.base2, bg = c.base01 },
|
||||||
|
c = { fg = c.base01, bg = c.base2 },
|
||||||
|
z = { fg = c.base3, bg = c.blue },
|
||||||
|
},
|
||||||
|
insert = {
|
||||||
|
a = { fg = c.base3, bg = c.green },
|
||||||
|
},
|
||||||
|
visual = {
|
||||||
|
a = { fg = c.base3, bg = c.magenta },
|
||||||
|
},
|
||||||
|
replace = {
|
||||||
|
a = { fg = c.base3, bg = c.red },
|
||||||
|
},
|
||||||
|
command = {
|
||||||
|
a = { fg = c.base3, bg = c.orange },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M.load_autocmd()
|
|
||||||
local group = vim.api.nvim_create_augroup('solarized', { clear = true })
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('ColorSchemePre', {
|
|
||||||
group = group,
|
|
||||||
callback = function()
|
|
||||||
vim.api.nvim_del_augroup_by_id(group)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('LspTokenUpdate', {
|
|
||||||
group = group,
|
|
||||||
callback = function(args)
|
|
||||||
local token = args.data.token
|
|
||||||
local buffer = args.buf
|
|
||||||
local text = vim.api.nvim_buf_get_text(
|
|
||||||
buffer,
|
|
||||||
token.line,
|
|
||||||
token.start_col,
|
|
||||||
token.line,
|
|
||||||
token.end_col,
|
|
||||||
{}
|
|
||||||
)[1]
|
|
||||||
|
|
||||||
local highlights = {
|
|
||||||
'TODO',
|
|
||||||
'WARN',
|
|
||||||
'TEST',
|
|
||||||
'PERF',
|
|
||||||
'NOTE',
|
|
||||||
'HACK',
|
|
||||||
'FIX',
|
|
||||||
}
|
|
||||||
local name = 'SolarizedToken'
|
|
||||||
|
|
||||||
for _, group_name in pairs(highlights) do
|
|
||||||
if
|
|
||||||
text ~= nil
|
|
||||||
and token.type == 'comment'
|
|
||||||
and text:match(group_name)
|
|
||||||
then
|
|
||||||
vim.lsp.semantic_tokens.highlight_token(
|
|
||||||
token,
|
|
||||||
buffer,
|
|
||||||
args.data.client_id,
|
|
||||||
name .. group_name
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
function M.load_autocmd_highlights(c)
|
|
||||||
local set_hl = require('solarized.utils').set_hl
|
|
||||||
|
|
||||||
set_hl('SolarizedTokenTODO', { fg = c.info })
|
|
||||||
set_hl('SolarizedTokenWARN', { fg = c.warning })
|
|
||||||
set_hl('SolarizedTokenTEST', { fg = c.violet })
|
|
||||||
set_hl('SolarizedTokenPERF', { fg = c.magenta })
|
|
||||||
set_hl('SolarizedTokenNOTE', { fg = c.hint })
|
|
||||||
set_hl('SolarizedTokenHACK', { fg = c.cyan })
|
|
||||||
set_hl('SolarizedTokenFIX', { fg = c.error })
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
86
lua/solarized/color.lua
Normal file
86
lua/solarized/color.lua
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
---@class solarized.color
|
||||||
|
---@field hex_to_rgb fun(hex: string): number, number, number
|
||||||
|
---@field rgb_to_hex fun(red: number, green: number, blue: number): string
|
||||||
|
---@field darken fun(hex: string, percentage: number): string
|
||||||
|
---@field lighten fun(hex: string, percentage: number): string
|
||||||
|
---@field shade fun(hex: string, i: number): string
|
||||||
|
---@field tint fun(hex: string, i: number): string
|
||||||
|
---@field blend fun(fg: string, bg: string, alpha: number): string
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.hex_to_rgb(hex)
|
||||||
|
local red = tonumber(hex:sub(2, 3), 16)
|
||||||
|
local green = tonumber(hex:sub(4, 5), 16)
|
||||||
|
local blue = tonumber(hex:sub(6, 7), 16)
|
||||||
|
return red, green, blue
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.rgb_to_hex(red, green, blue)
|
||||||
|
return string.format('#%02x%02x%02x', red, green, blue)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.darken(hex, percentage)
|
||||||
|
local red, green, blue = M.hex_to_rgb(hex)
|
||||||
|
local i = 1
|
||||||
|
local result = {
|
||||||
|
red = red * (1 - (percentage / 100) * i),
|
||||||
|
green = green * (1 - (percentage / 100) * i),
|
||||||
|
blue = blue * (1 - (percentage / 100) * i),
|
||||||
|
}
|
||||||
|
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.lighten(color, percentage)
|
||||||
|
local red, green, blue = M.hex_to_rgb(color)
|
||||||
|
local i = 1
|
||||||
|
local result = {
|
||||||
|
red = red + (255 - red) * i * (percentage / 100),
|
||||||
|
green = green + (255 - green) * i * (percentage / 100),
|
||||||
|
blue = blue + (255 - blue) * i * (percentage / 100),
|
||||||
|
}
|
||||||
|
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.shade(hex, i)
|
||||||
|
local red, green, blue = M.hex_to_rgb(hex)
|
||||||
|
local result = {
|
||||||
|
red = red * (1 - 0.1 * i),
|
||||||
|
green = green * (1 - 0.1 * i),
|
||||||
|
blue = blue * (1 - 0.1 * i),
|
||||||
|
}
|
||||||
|
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.tint(hex, i)
|
||||||
|
local red, green, blue = M.hex_to_rgb(hex)
|
||||||
|
local result = {
|
||||||
|
red = red + (255 - red) * i * 0.1,
|
||||||
|
green = green + (255 - green) * i * 0.1,
|
||||||
|
blue = blue + (255 - blue) * i * 0.1,
|
||||||
|
}
|
||||||
|
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param fg number
|
||||||
|
---@param bg number
|
||||||
|
---@param alpha number
|
||||||
|
---@return number
|
||||||
|
local function blend_channel(fg, bg, alpha)
|
||||||
|
local ret = alpha * fg + ((1 - alpha) * bg)
|
||||||
|
local min = math.min
|
||||||
|
local max = math.max
|
||||||
|
local floor = math.floor
|
||||||
|
return floor(min(max(0, ret), 255) + 0.5)
|
||||||
|
end
|
||||||
|
|
||||||
|
function M.blend(fg, bg, alpha)
|
||||||
|
local red_bg, green_bg, blue_bg = M.hex_to_rgb(bg)
|
||||||
|
local red_fg, green_fg, blue_fg = M.hex_to_rgb(fg)
|
||||||
|
return M.rgb_to_hex(
|
||||||
|
blend_channel(red_fg, red_bg, alpha),
|
||||||
|
blend_channel(green_fg, green_bg, alpha),
|
||||||
|
blend_channel(blue_fg, blue_bg, alpha)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -1,38 +1,42 @@
|
||||||
local command = {
|
local command = {}
|
||||||
zen_mode = false,
|
|
||||||
}
|
|
||||||
|
|
||||||
local subcommands = {
|
local subcommands = {
|
||||||
colors = function(arg)
|
colors = function(_)
|
||||||
local palette = require('solarized.palette')
|
local config = require 'solarized.config'
|
||||||
local colors = palette.get_colors()
|
local palette = require 'solarized.palette'
|
||||||
|
local colors = palette[config.palette]
|
||||||
|
|
||||||
local buf = vim.api.nvim_create_buf(true, true)
|
local buf = vim.api.nvim_create_buf(true, true)
|
||||||
local max_length = vim.tbl_count(colors)
|
local max_length = vim.tbl_count(colors)
|
||||||
|
|
||||||
local function color_desc(color)
|
local function color_desc(color)
|
||||||
local colors_desc = {
|
local colors_desc = {
|
||||||
base03 = 'background tone (main)',
|
base03 = 'background (dark)',
|
||||||
base02 = 'background tone (highlight/menu/LineNr)',
|
base02 = 'background highlight (dark)',
|
||||||
base01 = 'content tone (comment)',
|
base01 = 'comments (dark)',
|
||||||
base00 = 'content tone (winseparator)',
|
base00 = 'foreground (light)',
|
||||||
base0 = 'content tone (foreground)',
|
base0 = 'foreground (dark)',
|
||||||
base1 = 'content tone (statusline/tabline)',
|
base1 = 'comments (light)',
|
||||||
base2 = 'background tone (highlight)',
|
base2 = ' background highlight (light)',
|
||||||
base3 = 'background tone (main)',
|
base3 = 'background (light)',
|
||||||
}
|
}
|
||||||
local desc = colors_desc[color]
|
local desc = colors_desc[color]
|
||||||
|
|
||||||
if not desc then return '' end
|
if not desc then
|
||||||
|
return ''
|
||||||
|
end
|
||||||
|
|
||||||
return desc
|
return desc
|
||||||
end
|
end
|
||||||
|
|
||||||
local function set_lines(color, hex, line)
|
local function set_lines(color, hex, line)
|
||||||
vim.api.nvim_buf_set_lines(buf, line, (line + 1), false, {
|
vim.api.nvim_buf_set_lines(buf, line, (line + 1), false, {
|
||||||
color .. string.rep('.', max_length - #color) .. ' = "' .. tostring(
|
color
|
||||||
hex
|
.. string.rep('.', max_length - #color)
|
||||||
) .. '" ' .. color_desc(color),
|
.. ' = "'
|
||||||
|
.. tostring(hex)
|
||||||
|
.. '" '
|
||||||
|
.. color_desc(color),
|
||||||
})
|
})
|
||||||
return line + 1
|
return line + 1
|
||||||
end
|
end
|
||||||
|
|
@ -53,31 +57,6 @@ local subcommands = {
|
||||||
vim.api.nvim_buf_set_name(buf, 'Solarized Colors')
|
vim.api.nvim_buf_set_name(buf, 'Solarized Colors')
|
||||||
vim.api.nvim_win_set_buf(0, buf)
|
vim.api.nvim_win_set_buf(0, buf)
|
||||||
end,
|
end,
|
||||||
zen = function()
|
|
||||||
local colors = require('solarized.palette').get_colors()
|
|
||||||
local solarized = require('solarized.highlights')
|
|
||||||
|
|
||||||
if not command.zen_mode then
|
|
||||||
local highlights = {
|
|
||||||
Keyword = { fg = colors.base01 },
|
|
||||||
['@keyword.return'] = { fg = colors.base01 },
|
|
||||||
Statement = { fg = colors.base01 },
|
|
||||||
Delimiter = { fg = colors.base01 },
|
|
||||||
['@constructor'] = { fg = colors.base01 },
|
|
||||||
['@tag'] = { fg = colors.base01 },
|
|
||||||
['Type'] = { fg = colors.base01 },
|
|
||||||
['@type'] = { fg = colors.base01 },
|
|
||||||
['@include'] = { fg = colors.base01 },
|
|
||||||
}
|
|
||||||
|
|
||||||
solarized.custom_hl(highlights)
|
|
||||||
command.zen_mode = true
|
|
||||||
else
|
|
||||||
local config = require('solarized.config')
|
|
||||||
solarized.highlights(colors, config.config or config.default_config())
|
|
||||||
command.zen_mode = false
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function command.list()
|
function command.list()
|
||||||
|
|
|
||||||
|
|
@ -1,104 +1,141 @@
|
||||||
local palette = require('solarized.palette')
|
---@class solarized.transparent
|
||||||
local solarized = require('solarized.highlights')
|
---@field normal? boolean
|
||||||
local colorhelper = require('solarized.utils.colors')
|
---@field normalfloat? boolean
|
||||||
local utils = require('solarized.utils')
|
---@field pmenu? boolean
|
||||||
|
---@field neotree? boolean
|
||||||
|
---@field nvimtree? boolean
|
||||||
|
---@field telescope? boolean
|
||||||
|
---@field whichkey? boolean
|
||||||
|
---@field lazy? boolean
|
||||||
|
---@field mason? boolean
|
||||||
|
---@field enabled? boolean
|
||||||
|
|
||||||
local M = {}
|
---@class solarized.styles
|
||||||
|
---@field enabled? boolean
|
||||||
|
---@field types? vim.api.keyset.highlight
|
||||||
|
---@field functions? vim.api.keyset.highlight
|
||||||
|
---@field parameters? vim.api.keyset.highlight
|
||||||
|
---@field comments? vim.api.keyset.highlight
|
||||||
|
---@field strings? vim.api.keyset.highlight
|
||||||
|
---@field keywords? vim.api.keyset.highlight
|
||||||
|
---@field variables? vim.api.keyset.highlight
|
||||||
|
---@field constants? vim.api.keyset.highlight
|
||||||
|
---@field statements? vim.api.keyset.highlight
|
||||||
|
|
||||||
M.config = nil
|
---@class solarized.plugins
|
||||||
M.colors = nil
|
---@field treesitter? boolean
|
||||||
|
---@field lspconfig? boolean
|
||||||
|
---@field navic? boolean
|
||||||
|
---@field cmp? boolean
|
||||||
|
---@field indentblankline? boolean
|
||||||
|
---@field indentmini? boolean
|
||||||
|
---@field neotree? boolean
|
||||||
|
---@field nvimtree? boolean
|
||||||
|
---@field whichkey? boolean
|
||||||
|
---@field dashboard? boolean
|
||||||
|
---@field gitsigns? boolean
|
||||||
|
---@field telescope? boolean
|
||||||
|
---@field noice? boolean
|
||||||
|
---@field hop? boolean
|
||||||
|
---@field ministatusline? boolean
|
||||||
|
---@field minitabline? boolean
|
||||||
|
---@field ministarter? boolean
|
||||||
|
---@field minicursorword? boolean
|
||||||
|
---@field notify? boolean
|
||||||
|
---@field rainbowdelimiters? boolean
|
||||||
|
---@field bufferline? boolean
|
||||||
|
---@field lazy? boolean
|
||||||
|
---@field rendermarkdown? boolean
|
||||||
|
---@field neogit? boolean
|
||||||
|
---@field todocomments? boolean
|
||||||
|
---@field ale? boolean
|
||||||
|
---@field alpha? boolean
|
||||||
|
---@field yanky? boolean
|
||||||
|
---@field gitgutter? boolean
|
||||||
|
---@field coc? boolean
|
||||||
|
---@field leap? boolean
|
||||||
|
---@field mason? boolean
|
||||||
|
---@field flash? boolean
|
||||||
|
|
||||||
--- Define and return default config
|
---@class solarized.error_lens
|
||||||
---@return table default_config
|
---@field text? boolean
|
||||||
function M.default_config()
|
---@field symbol? boolean
|
||||||
return {
|
|
||||||
transparent = false,
|
|
||||||
palette = 'solarized', -- selenized
|
|
||||||
styles = {
|
|
||||||
comments = {},
|
|
||||||
functions = {},
|
|
||||||
variables = {},
|
|
||||||
numbers = {},
|
|
||||||
constants = {},
|
|
||||||
parameters = {},
|
|
||||||
keywords = {},
|
|
||||||
types = {},
|
|
||||||
},
|
|
||||||
enables = {
|
|
||||||
bufferline = true,
|
|
||||||
cmp = true,
|
|
||||||
diagnostic = true,
|
|
||||||
dashboard = true,
|
|
||||||
editor = true,
|
|
||||||
gitsign = true,
|
|
||||||
hop = true,
|
|
||||||
indentblankline = true,
|
|
||||||
lsp = true,
|
|
||||||
lspsaga = true,
|
|
||||||
navic = true,
|
|
||||||
neogit = true,
|
|
||||||
neotree = true,
|
|
||||||
notify = true,
|
|
||||||
noice = true,
|
|
||||||
semantic = true,
|
|
||||||
syntax = true,
|
|
||||||
telescope = true,
|
|
||||||
tree = true,
|
|
||||||
treesitter = true,
|
|
||||||
todo = true,
|
|
||||||
whichkey = true,
|
|
||||||
mini = true,
|
|
||||||
},
|
|
||||||
highlights = {},
|
|
||||||
colors = {},
|
|
||||||
theme = 'default',
|
|
||||||
autocmd = true,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
function M.load()
|
---@class solarized.config
|
||||||
if vim.g.colors_name then vim.cmd('hi clear') end
|
---@field transparent? solarized.transparent
|
||||||
|
---@field on_highlights? fun(colors: solarized.palette, color: solarized.color): solarized.highlights
|
||||||
if vim.fn.exists('syntax_on') then vim.cmd('syntax reset') end
|
---@field on_colors? fun(colors: solarized.palette, color: solarized.color): solarized.palette
|
||||||
|
---@field styles? solarized.styles
|
||||||
vim.o.termguicolors = true
|
---@field palette? "solarized" | "selenized"
|
||||||
vim.g.colors_name = 'solarized'
|
---@field variant? "spring" | "summer" | "autumn" | "winter"
|
||||||
|
---@field plugins? solarized.plugins
|
||||||
local colors = {}
|
---@field error_lens? solarized.error_lens
|
||||||
|
return {
|
||||||
colors = palette.get_colors()
|
transparent = {
|
||||||
solarized.highlights(M.colors or colors, M.config or M.default_config())
|
enabled = false,
|
||||||
end
|
pmenu = true,
|
||||||
|
normal = true,
|
||||||
--- Solarized setup
|
normalfloat = true,
|
||||||
---
|
neotree = true,
|
||||||
--- @param opts? table The user-provided configuration to be merged.
|
nvimtree = true,
|
||||||
--- - transparent (boolean): Specifies if transparency is enabled.
|
whichkey = true,
|
||||||
--- - styles (table): A table specifying various style options.
|
telescope = true,
|
||||||
--- - comments (table): Specifies if comments should be styled.
|
lazy = true,
|
||||||
--- - functions (table): Specifies if functions should be styled.
|
mason = true,
|
||||||
--- - variables (table): Specifies if variables should be styled.
|
},
|
||||||
--- - numbers (table): Specifies if numbers should be styled.
|
on_highlights = nil,
|
||||||
--- - constants (table): Specifies if constants should be styled.
|
on_colors = nil,
|
||||||
--- - parameters (table): Specifies if parameters should be styled.
|
palette = 'solarized',
|
||||||
--- - conditionals (table): Specifies if conditionals should be styled.
|
variant = 'winter',
|
||||||
--- - highlights (table): A table specifying custom highlight values.
|
error_lens = {
|
||||||
--- - colors (table): A table specifying custom color values.
|
text = false,
|
||||||
--- - enables (table): A table specifying plugins to be enabled or disabled
|
symbol = false,
|
||||||
--- - theme (string): Specifies the theme to be used.
|
},
|
||||||
function M.setup(opts)
|
styles = {
|
||||||
M.config = vim.tbl_deep_extend('force', M.default_config(), opts or {})
|
enabled = true,
|
||||||
local colors = palette.get_colors()
|
types = {},
|
||||||
|
functions = {},
|
||||||
utils.on_config({
|
parameters = {},
|
||||||
tbl = function()
|
comments = {},
|
||||||
M.colors = palette.extend_colors(colors, M.config.colors)
|
strings = {},
|
||||||
end,
|
keywords = {},
|
||||||
fnc = function()
|
variables = {},
|
||||||
M.colors =
|
statements = {},
|
||||||
palette.extend_colors(colors, M.config.colors(colors, colorhelper))
|
constants = {},
|
||||||
end,
|
},
|
||||||
}, M.config.colors)
|
plugins = {
|
||||||
end
|
treesitter = true,
|
||||||
|
lspconfig = true,
|
||||||
return M
|
navic = true,
|
||||||
|
cmp = true,
|
||||||
|
indentblankline = true,
|
||||||
|
indentmini = true,
|
||||||
|
neotree = true,
|
||||||
|
nvimtree = true,
|
||||||
|
whichkey = true,
|
||||||
|
dashboard = true,
|
||||||
|
gitsigns = true,
|
||||||
|
telescope = true,
|
||||||
|
noice = true,
|
||||||
|
hop = true,
|
||||||
|
ministatusline = true,
|
||||||
|
minitabline = true,
|
||||||
|
ministarter = true,
|
||||||
|
minicursorword = true,
|
||||||
|
notify = true,
|
||||||
|
rainbowdelimiters = true,
|
||||||
|
bufferline = true,
|
||||||
|
lazy = true,
|
||||||
|
rendermarkdown = true,
|
||||||
|
neogit = true,
|
||||||
|
todocomments = true,
|
||||||
|
ale = true,
|
||||||
|
coc = true,
|
||||||
|
leap = true,
|
||||||
|
alpha = true,
|
||||||
|
yanky = true,
|
||||||
|
gitgutter = true,
|
||||||
|
mason = true,
|
||||||
|
flash = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
||||||
395
lua/solarized/groups.lua
Normal file
395
lua/solarized/groups.lua
Normal 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
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colorhelper = require('solarized.utils.colors')
|
|
||||||
|
|
||||||
local M = {}
|
|
||||||
|
|
||||||
--- Update or override highlights defined by the user
|
|
||||||
---
|
|
||||||
--- @param highlights table A table containing highlight names as keys and their updated values as values
|
|
||||||
function M.custom_hl(highlights)
|
|
||||||
local get_hl = utils.get_hl
|
|
||||||
|
|
||||||
for highlight_name, highlight_value in pairs(highlights) do
|
|
||||||
local highlight = get_hl(highlight_name)
|
|
||||||
|
|
||||||
local val = vim.tbl_extend('force', highlight, highlight_value)
|
|
||||||
|
|
||||||
vim.api.nvim_set_hl(0, highlight_name, val)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Load and apply highlights based on the enabled highlights specified in the configuration
|
|
||||||
---
|
|
||||||
--- @param colors table A table containing color values
|
|
||||||
--- @param config table A table containing configuration options, including the enabled highlights and theme
|
|
||||||
function M.load_plugins(colors, config)
|
|
||||||
for plugin, enabled in pairs(config.enables) do
|
|
||||||
if enabled then
|
|
||||||
local highlight_groups =
|
|
||||||
require(string.format('solarized.themes.%s.%s', config.theme, plugin))
|
|
||||||
|
|
||||||
highlight_groups(colors, config)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Set highlights based on the provided colors and configuration
|
|
||||||
---
|
|
||||||
--- @param colors table A table containing color values
|
|
||||||
--- @param config table A table containing configuration options
|
|
||||||
function M.highlights(colors, config)
|
|
||||||
if config.theme == 'neo' or config.theme == 'default' then
|
|
||||||
M.load_plugins(colors, config)
|
|
||||||
else
|
|
||||||
config.theme = 'default'
|
|
||||||
M.load_plugins(colors, config)
|
|
||||||
end
|
|
||||||
|
|
||||||
if vim.fn.has('nvim-0.9.4') and config.autocmd then
|
|
||||||
local extras = require('solarized.autocmd')
|
|
||||||
extras.load_autocmd()
|
|
||||||
extras.load_autocmd_highlights(colors)
|
|
||||||
end
|
|
||||||
|
|
||||||
utils.on_config({
|
|
||||||
tbl = function()
|
|
||||||
M.custom_hl(config.highlights)
|
|
||||||
end,
|
|
||||||
fnc = function()
|
|
||||||
M.custom_hl(config.highlights(colors, colorhelper))
|
|
||||||
end,
|
|
||||||
}, config.highlights)
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
830
lua/solarized/highlights/init.lua
Normal file
830
lua/solarized/highlights/init.lua
Normal file
|
|
@ -0,0 +1,830 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local function nvim_get_hl(opts)
|
||||||
|
local hl = vim.api.nvim_get_hl(0, opts)
|
||||||
|
|
||||||
|
if hl.link then
|
||||||
|
return nvim_get_hl { name = hl.link }
|
||||||
|
end
|
||||||
|
|
||||||
|
return hl
|
||||||
|
end
|
||||||
|
|
||||||
|
---@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
|
||||||
|
---@param config? solarized.nvim_set_hl.config
|
||||||
|
local nvim_set_hl = function(group_name, group_val, config)
|
||||||
|
local val = { fg = 'NONE', bg = 'NONE' }
|
||||||
|
|
||||||
|
if not group_val.link then
|
||||||
|
if config and config.transparent then
|
||||||
|
group_val.bg = 'NONE'
|
||||||
|
end
|
||||||
|
|
||||||
|
if config and config.styles then
|
||||||
|
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
|
||||||
|
vim.api.nvim_set_hl(0, group_name, group_val)
|
||||||
|
end
|
||||||
|
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
|
||||||
|
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 })
|
||||||
|
nvim_set_hl('CurSearch', { link = 'IncSearch' })
|
||||||
|
nvim_set_hl('Cursor', { fg = colors.base03, bg = colors.base0 })
|
||||||
|
nvim_set_hl('lCursor', { link = 'Cursor' })
|
||||||
|
nvim_set_hl('CursorIM', { link = 'Cursor' })
|
||||||
|
nvim_set_hl('CursorColumn', { link = 'ColorColumn' })
|
||||||
|
nvim_set_hl('CursorLine', { bg = colors.base02 })
|
||||||
|
nvim_set_hl('Directory', { fg = colors.blue })
|
||||||
|
nvim_set_hl('DiffAdd', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('DiffChange', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('DiffDelete', { fg = colors.git_delete, reverse = true })
|
||||||
|
nvim_set_hl('DiffText', { fg = colors.cyan, reverse = true })
|
||||||
|
nvim_set_hl('EndOfBuffer', { fg = colors.base03 })
|
||||||
|
nvim_set_hl('TermCursor', { link = 'Cursor' })
|
||||||
|
nvim_set_hl('TermCursorNC', { fg = colors.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('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('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('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('CursorLineFold', { link = 'FoldColumn' })
|
||||||
|
nvim_set_hl('CursorLineSign', { link = 'SignColumn' })
|
||||||
|
nvim_set_hl('MatchParen', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('ModeMsg', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MsgArea', { link = 'Normal' })
|
||||||
|
nvim_set_hl('MsgSeparator', { link = 'Normal' })
|
||||||
|
nvim_set_hl('MoreMsg', { link = 'ModeMsg' })
|
||||||
|
nvim_set_hl('NonText', { fg = colors.base01 })
|
||||||
|
nvim_set_hl(
|
||||||
|
'Normal',
|
||||||
|
{ fg = colors.base0, bg = colors.base03 },
|
||||||
|
{ transparent = config.transparent.normal and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('NormalFloat', { fg = colors.base0, bg = colors.base04 }, {
|
||||||
|
transparent = config.transparent.normalfloat and 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, 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,
|
||||||
|
})
|
||||||
|
nvim_set_hl('PmenuSel', { fg = colors.base2, bg = colors.base01 })
|
||||||
|
nvim_set_hl('PmenuKind', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('PmenuKindSel', { link = 'PmenuSel' })
|
||||||
|
nvim_set_hl('PmenuExtra', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('PmenuExtraSel', { link = 'PmenuSel' })
|
||||||
|
nvim_set_hl('PmenuSbar', { bg = colors.base04 })
|
||||||
|
nvim_set_hl('PmenuThumb', { bg = colors.base1 })
|
||||||
|
nvim_set_hl('Question', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('QuickFixLine', { fg = colors.base0, bg = colors.base03 })
|
||||||
|
nvim_set_hl('Search', { fg = colors.base1, bg = colors.mix_base1, bold = true })
|
||||||
|
nvim_set_hl('SpecialKey', { link = 'NonText' })
|
||||||
|
nvim_set_hl('SpellBad', { underline = true, strikethrough = true })
|
||||||
|
nvim_set_hl('SpellCap', { fg = colors.diag_hint })
|
||||||
|
nvim_set_hl('SpellLocal', { link = 'SpellCap' })
|
||||||
|
nvim_set_hl('SpellRare', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('StatusLine', { fg = colors.base1, bg = colors.base04 })
|
||||||
|
nvim_set_hl('StatusLineNC', { fg = colors.base01, bg = colors.base04 })
|
||||||
|
nvim_set_hl('TabLine', { fg = colors.base01, bg = colors.base04 })
|
||||||
|
nvim_set_hl('TabLineFill', { fg = colors.base0, bg = colors.base04 })
|
||||||
|
nvim_set_hl('TabLineSel', { fg = colors.base0, bg = colors.base03 })
|
||||||
|
nvim_set_hl('Title', { fg = colors.blue })
|
||||||
|
nvim_set_hl('Visual', { fg = colors.base1, bg = colors.mix_base1 })
|
||||||
|
nvim_set_hl('VisualNOS', { link = 'Visual' })
|
||||||
|
nvim_set_hl('warningMsg', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('Whitespace', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('WildMenu', { fg = colors.base02 })
|
||||||
|
nvim_set_hl('WinBar', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('WinBarNC', { link = 'WinBar' })
|
||||||
|
|
||||||
|
-- PLUGINS
|
||||||
|
if config.plugins.treesitter then
|
||||||
|
nvim_set_hl('@variable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@variable.builtin', { link = 'Constant' })
|
||||||
|
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' })
|
||||||
|
nvim_set_hl('@string', { link = 'String' })
|
||||||
|
nvim_set_hl('@string.documentation', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@string.regexp', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('@string.escape', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@string.special', { link = 'Special' })
|
||||||
|
nvim_set_hl('@string.special.symbol', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@string.special.url', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@character', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@character.special', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@character.printf', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@type', { link = 'Type' })
|
||||||
|
nvim_set_hl('@type.builtin', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@type.definition', { link = 'Type' })
|
||||||
|
nvim_set_hl('@type.qualifier', { link = 'Type' })
|
||||||
|
nvim_set_hl('@attribute', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@function', { link = 'Function' })
|
||||||
|
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 = '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.type', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@keyword.operator', { link = 'Statement' })
|
||||||
|
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 = 'Keyword' })
|
||||||
|
nvim_set_hl('@keyword.exception', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.conditional', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.conditional.ternary', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.directive', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.directive.define', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@punctuation.delimiter', { link = 'Delimiter' })
|
||||||
|
nvim_set_hl('@punctuation.bracket', { link = 'Delimiter' })
|
||||||
|
nvim_set_hl('@punctuation.special', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@comment', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@comment.documentation', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@comment.error', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('@comment.warning', { fg = colors.diag_warning })
|
||||||
|
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', { 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 })
|
||||||
|
nvim_set_hl('@markup.heading.1', { fg = colors.blue })
|
||||||
|
nvim_set_hl('@markup.heading.2', { fg = colors.violet })
|
||||||
|
nvim_set_hl('@markup.heading.3', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('@markup.heading.4', { fg = colors.orange })
|
||||||
|
nvim_set_hl('@markup.heading.5', { fg = colors.red })
|
||||||
|
nvim_set_hl('@markup.heading.6', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('@markup.quote', { fg = colors.green })
|
||||||
|
nvim_set_hl('@markup.math', { fg = colors.violet })
|
||||||
|
nvim_set_hl('@markup.environment', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@markup.link', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@markup.link.label', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@markup.link.url', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@markup.raw', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('@markup.raw.block', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('@markup.list', { fg = colors.orange })
|
||||||
|
nvim_set_hl('@markup.list.checked', { fg = colors.green })
|
||||||
|
nvim_set_hl('@markup.list.unchecked', { fg = colors.base01 })
|
||||||
|
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', { 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' })
|
||||||
|
nvim_set_hl('@lsp.type.enum', { link = 'Type' })
|
||||||
|
nvim_set_hl('@lsp.type.enumMember', { link = 'Type' })
|
||||||
|
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 = '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' })
|
||||||
|
nvim_set_hl('@lsp.type.variable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.defaultLibrary', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.global', { link = 'Constant' })
|
||||||
|
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(
|
||||||
|
'DiagnosticVirtualTextError',
|
||||||
|
{ fg = colors.diag_error },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextWarn',
|
||||||
|
{ fg = colors.diag_warning },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextInfo',
|
||||||
|
{ fg = colors.diag_info },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextHint',
|
||||||
|
{ fg = colors.diag_hint },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'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('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 = color.shade(colors.cyan, 3) })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.navic then
|
||||||
|
nvim_set_hl('NavicText', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('NavicSeparator', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('NavicIconsMethod', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsFunction', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsField', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsVariable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsClass', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsInterface', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsModule', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsNamespace', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsProperty', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsUnit', { link = 'Number' })
|
||||||
|
nvim_set_hl('NavicIconsEnum', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsKeyword', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('NavicIconsSnippet', { link = 'Tag' })
|
||||||
|
nvim_set_hl('NavicIconsColor', { link = 'Special' })
|
||||||
|
nvim_set_hl('NavicIconsFile', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsReference', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('NavicIconsFolder', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||||
|
nvim_set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||||
|
nvim_set_hl('NavicIconsStruct', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsEvent', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||||
|
nvim_set_hl('NavicIconsTypeParameter', { link = 'Type' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.cmp then
|
||||||
|
nvim_set_hl('CmpItemKindText', { link = 'String' })
|
||||||
|
nvim_set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindField', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindClass', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindModule', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindProperty', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||||
|
nvim_set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('CmpItemKindSnippet', { link = 'Tag' })
|
||||||
|
nvim_set_hl('CmpItemKindColor', { link = 'Special' })
|
||||||
|
nvim_set_hl('CmpItemKindFile', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindReference', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('CmpItemKindFolder', { link = 'Directory' })
|
||||||
|
nvim_set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
||||||
|
nvim_set_hl('CmpItemKindConstant', { link = 'Constant' })
|
||||||
|
nvim_set_hl('CmpItemKindStruct', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindEvent', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindOperator', { link = 'Operator' })
|
||||||
|
nvim_set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.indentblankline then
|
||||||
|
nvim_set_hl('IblIndent', { fg = colors.mix_base1 })
|
||||||
|
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(
|
||||||
|
'NeoTreeNormal',
|
||||||
|
{ fg = colors.base1, bg = colors.base04 },
|
||||||
|
{ transparent = config.transparent.neotree and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' })
|
||||||
|
nvim_set_hl('NeoTreeDotFile', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('NeoTreeGitIgnored', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeFileStats', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeDimText', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeFileNameOpened', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NeoTreeFloatBorder', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NeoTreeFloatTitle', { link = 'Title' })
|
||||||
|
nvim_set_hl('NeoTreeGitAdded', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NeoTreeGitConflict', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitDeleted', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl('NeoTreeGitModified', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitUnstaged', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitUntracked', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitStaged', { fg = colors.git_add })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.nvimtree then
|
||||||
|
nvim_set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NvimTreeFolderName', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('NvimTreeRootFolder', { link = 'Title' })
|
||||||
|
nvim_set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NvimTreeEmptyFolderName', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('NvimTreeExecFile', { link = 'Function' })
|
||||||
|
nvim_set_hl('NvimTreeOpenedFile', { fg = colors.blue, bold = true })
|
||||||
|
nvim_set_hl('NvimTreeModifiedFile', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
||||||
|
nvim_set_hl('NvimTreeIndentMarker', { fg = colors.shade_violet })
|
||||||
|
nvim_set_hl('NvimTreeGitDirty', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitStaged', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NvimTreeGitMerge', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitRenamed', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitNew', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NvimTreeGitDeleted', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl(
|
||||||
|
'NvimTreeNormal',
|
||||||
|
{ fg = colors.base1, bg = colors.base04 },
|
||||||
|
{ transparent = config.transparent.neotree and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||||
|
nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base04 })
|
||||||
|
nvim_set_hl('NvimTreeWinSeparator', { link = 'WinSeparator' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.whichkey then
|
||||||
|
nvim_set_hl(
|
||||||
|
'WhichKeyNormal',
|
||||||
|
{ fg = colors.base0, bg = colors.base04 },
|
||||||
|
{ transparent = config.transparent.whichkey and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
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
|
||||||
|
nvim_set_hl('DashboardHeader', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('DashboardFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('DashboardDesc', { link = 'Directory' })
|
||||||
|
nvim_set_hl('DashboardKey', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('DashboardIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('DashboardShotCut', { fg = colors.base0 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.gitsigns then
|
||||||
|
nvim_set_hl(
|
||||||
|
'GitSignsAdd',
|
||||||
|
{ 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
|
||||||
|
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',
|
||||||
|
{ fg = colors.base0, bg = colors.base04 },
|
||||||
|
{ transparent = config.transparent.telescope and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||||
|
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||||
|
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||||
|
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', { link = 'FloatTitle' })
|
||||||
|
nvim_set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopeMatching', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
nvim_set_hl('TelescopePreviewMatch', { link = 'TelescopeMatching' })
|
||||||
|
nvim_set_hl('TelescopePromptCounter', { link = 'NonText' })
|
||||||
|
nvim_set_hl('TelescopePromptPrefix', { fg = colors.cyan })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.noice then
|
||||||
|
nvim_set_hl('NoiceFormatProgressTodo', { fg = colors.diag_ok, bg = colors.mix_green })
|
||||||
|
nvim_set_hl('NoiceFormatProgressDone', { fg = colors.diag_ok, reverse = true })
|
||||||
|
nvim_set_hl('NoiceLspProgressSpinner', { fg = colors.diag_ok })
|
||||||
|
nvim_set_hl('NoiceLspProgressClient', { fg = colors.diag_ok })
|
||||||
|
nvim_set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
||||||
|
nvim_set_hl('NoiceCmdlineIcon', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NoiceCmdlinePopupBorder', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NoiceCmdlinePopupTitle', { link = 'Title' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.hop then
|
||||||
|
nvim_set_hl('HopNextKey', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('HopNextKey1', { fg = colors.blue })
|
||||||
|
nvim_set_hl('HopNextKey2', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('HopUnmatched', { fg = colors.base01 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ministatusline then
|
||||||
|
nvim_set_hl('MiniStatuslineModeNormal', { fg = colors.base03, bg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStatuslineModeInsert', { fg = colors.base03, bg = colors.green })
|
||||||
|
nvim_set_hl('MiniStatuslineModeVisual', { fg = colors.base03, bg = colors.magenta })
|
||||||
|
nvim_set_hl('MiniStatuslineModeReplace', { fg = colors.base03, bg = colors.red })
|
||||||
|
nvim_set_hl('MiniStatuslineModeCommand', { fg = colors.base03, bg = colors.orange })
|
||||||
|
nvim_set_hl('MinistatusLineFileName', { fg = colors.base0, bg = colors.base04 })
|
||||||
|
nvim_set_hl('MiniStatuslineDevinfo', { fg = colors.base0, bg = colors.base02 })
|
||||||
|
nvim_set_hl('MiniStatuslineFileinfo', { fg = colors.base0, bg = colors.base02 })
|
||||||
|
nvim_set_hl('MiniStatuslineInactive', { fg = colors.base01, bg = colors.base03 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.minitabline then
|
||||||
|
nvim_set_hl('MiniTablineCurrent', { fg = colors.base0, bg = colors.base03 })
|
||||||
|
nvim_set_hl('MiniTablineVisible', { fg = colors.base0, bg = colors.base03 })
|
||||||
|
nvim_set_hl('MiniTablineHidden', { fg = colors.base01, bg = colors.base03 })
|
||||||
|
nvim_set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
||||||
|
nvim_set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
||||||
|
nvim_set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
||||||
|
nvim_set_hl('MiniTablineFill', { fg = colors.base0, bg = colors.base04 })
|
||||||
|
nvim_set_hl('MiniTablineTabpagesection', { fg = colors.base0, bg = colors.base04 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ministarter then
|
||||||
|
nvim_set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
||||||
|
nvim_set_hl('MiniStarterHeader', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('MiniStarterFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('MiniStarterItem', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('MiniStarterItemBullet', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStarterItemPrefix', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStarterSection', { link = 'Title' })
|
||||||
|
nvim_set_hl('MiniStarterQuery', { fg = colors.blue, bold = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.minicursorword then
|
||||||
|
nvim_set_hl('MiniCursorword', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.notify then
|
||||||
|
nvim_set_hl('NotifyBackground', { bg = colors.base03 })
|
||||||
|
nvim_set_hl('NotifyERRORBorder', { link = 'NotifyERRORBody' })
|
||||||
|
nvim_set_hl('NotifyWARNBorder', { link = 'NotifyWARNBody' })
|
||||||
|
nvim_set_hl('NotifyINFOBorder', { link = 'NotifyINFOBody' })
|
||||||
|
nvim_set_hl('NotifyDEBUGBorder', { link = 'NotifyDEBUGBody' })
|
||||||
|
nvim_set_hl('NotifyTRACEBorder', { link = 'NotifyTRACEBody' })
|
||||||
|
nvim_set_hl('NotifyERRORIcon', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNIcon', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOIcon', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGIcon', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACEIcon', { fg = colors.blue })
|
||||||
|
nvim_set_hl('NotifyERRORTitle', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNTitle', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOTitle', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGTitle', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACETitle', { fg = colors.blue })
|
||||||
|
nvim_set_hl('NotifyERRORBody', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNBody', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOBody', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGBody', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACEBody', { fg = colors.blue })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.rainbowdelimiters then
|
||||||
|
nvim_set_hl('RainbowDelimiterRed', { fg = colors.red })
|
||||||
|
nvim_set_hl('RainbowDelimiteYellow', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('RainbowDelimiterBlue', { fg = colors.blue })
|
||||||
|
nvim_set_hl('RainbowDelimiterOrange', { fg = colors.orange })
|
||||||
|
nvim_set_hl('RainbowDelimiterGreen', { fg = colors.green })
|
||||||
|
nvim_set_hl('RainbowDelimiterViolet', { fg = colors.violet })
|
||||||
|
nvim_set_hl('RainbowDelimiterCyan', { fg = colors.cyan })
|
||||||
|
end
|
||||||
|
|
||||||
|
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 })
|
||||||
|
nvim_set_hl('BufferLineSeparator', { fg = background })
|
||||||
|
nvim_set_hl('BufferLineSeparatorSelected', { fg = background })
|
||||||
|
nvim_set_hl('BufferLineSeparatorVisible', { fg = background })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.lazy then
|
||||||
|
nvim_set_hl('LazyNormal', { fg = colors.base0, bg = colors.base04 }, {
|
||||||
|
transparent = config.transparent.lazy and config.transparent.enabled,
|
||||||
|
})
|
||||||
|
nvim_set_hl('LazyH1', { fg = colors.blue, bold = true })
|
||||||
|
nvim_set_hl('LazyButton', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
nvim_set_hl('LazyButtonActive', { fg = colors.violet, bg = colors.mix_violet })
|
||||||
|
nvim_set_hl('LazyReasonStart', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('LazyReasonEvent', { fg = colors.magenta })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.rendermarkdown then
|
||||||
|
nvim_set_hl('RenderMarkdownH1Bg', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('RenderMarkdownH2Bg', { fg = colors.violet, bg = colors.mix_violet })
|
||||||
|
nvim_set_hl('RenderMarkdownH3Bg', { fg = colors.yellow, bg = colors.mix_yellow })
|
||||||
|
nvim_set_hl('RenderMarkdownH4Bg', { fg = colors.orange, bg = colors.mix_orange })
|
||||||
|
nvim_set_hl('RenderMarkdownH5Bg', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
nvim_set_hl('RenderMarkdownH6Bg', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.neogit then
|
||||||
|
nvim_set_hl('NeogitBranch', { fg = colors.red })
|
||||||
|
nvim_set_hl('NeogitRemote', { fg = colors.violet })
|
||||||
|
nvim_set_hl('NeogitHunkHeader', { fg = colors.blue, bg = colors.mix_blue, bold = true })
|
||||||
|
nvim_set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
||||||
|
nvim_set_hl('NeogitDiffContextHighlight', { fg = colors.base1, bg = colors.base02 })
|
||||||
|
nvim_set_hl('NeogitDiffContext', { fg = colors.base0, bg = colors.base03 })
|
||||||
|
nvim_set_hl('NeogitDiffDeleteHighlight', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
nvim_set_hl('NeogitDiffDelete', { fg = colors.red })
|
||||||
|
nvim_set_hl('NeogitDiffAddHighlight', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('NeogitDiffAdd', { fg = colors.blue })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.todocomments then
|
||||||
|
nvim_set_hl('TodoFgTODO', { fg = colors.blue })
|
||||||
|
nvim_set_hl('TodoFgWARN', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('TodoFgTEST', { fg = colors.violet })
|
||||||
|
nvim_set_hl('TodoFgPERF', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('TodoFgNOTE', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('TodoFgHACK', { fg = colors.orange })
|
||||||
|
nvim_set_hl('TodoFgFIX', { fg = colors.red })
|
||||||
|
|
||||||
|
nvim_set_hl('TodoSignTODO', { fg = colors.blue })
|
||||||
|
nvim_set_hl('TodoSignWARN', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('TodoSignTEST', { fg = colors.violet })
|
||||||
|
nvim_set_hl('TodoSignPERF', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('TodoSignNOTE', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('TodoSignHACK', { fg = colors.orange })
|
||||||
|
nvim_set_hl('TodoSignFIX', { fg = colors.red })
|
||||||
|
|
||||||
|
nvim_set_hl('TodoBgTODO', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('TodoBgWARN', { fg = colors.yellow, bg = colors.mix_yellow })
|
||||||
|
nvim_set_hl('TodoBgTEST', { fg = colors.violet, bg = colors.mix_violet })
|
||||||
|
nvim_set_hl('TodoBgPERF', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||||
|
nvim_set_hl('TodoBgNOTE', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
nvim_set_hl('TodoBgHACK', { fg = colors.orange, bg = colors.mix_orange })
|
||||||
|
nvim_set_hl('TodoBgFIX', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ale then
|
||||||
|
nvim_set_hl('ALEErrorSign', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('ALEWarningSign', { fg = colors.diag_warning })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.alpha then
|
||||||
|
nvim_set_hl('AlphaShortcut', { fg = colors.base0 })
|
||||||
|
nvim_set_hl('AlphaHeader', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('AlphaHeaderLabel', { fg = colors.orange })
|
||||||
|
nvim_set_hl('AlphaFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('AlphaButtons', { link = 'Directory' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.yanky then
|
||||||
|
nvim_set_hl('YankyPut', { link = 'Search' })
|
||||||
|
nvim_set_hl('YankyYanked', { link = 'IncSearch' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.gitgutter then
|
||||||
|
nvim_set_hl('GitGutterAdd', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('GitGutterChange', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('GitGutterDelete', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl('GitGutterAddLineNr', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('GitGutterChangeLineNr', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('GitGutterDeleteLineNr', { fg = colors.git_delete })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.coc then
|
||||||
|
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
|
||||||
|
nvim_set_hl('LeapMatch', { fg = colors.magenta, bg = colors.mix_magenta, bold = true })
|
||||||
|
nvim_set_hl('LeapLabel', { fg = colors.magenta, bold = true })
|
||||||
|
nvim_set_hl('LeapBackDrop', { fg = colors.base01 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.mason then
|
||||||
|
nvim_set_hl('MasonHeader', { link = 'FloatTitle' })
|
||||||
|
nvim_set_hl(
|
||||||
|
'MasonNormal',
|
||||||
|
{ fg = colors.base0, bg = colors.base04 },
|
||||||
|
{ transparent = config.transparent.mason and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('MasonHighlight', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('MasonHighlightBlock', { fg = colors.mix_cyan, bg = colors.cyan })
|
||||||
|
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 highlights = config.on_highlights(colors, color)
|
||||||
|
|
||||||
|
for group_name, group_val in pairs(highlights) do
|
||||||
|
local hl = nvim_get_hl { name = group_name, link = true }
|
||||||
|
local val = {}
|
||||||
|
|
||||||
|
if hl.link then
|
||||||
|
val = group_val
|
||||||
|
else
|
||||||
|
val = vim.tbl_extend('force', hl, group_val)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, group_name, val)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
823
lua/solarized/highlights/solarized-light.lua
Normal file
823
lua/solarized/highlights/solarized-light.lua
Normal file
|
|
@ -0,0 +1,823 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
local function nvim_get_hl(opts)
|
||||||
|
local hl = vim.api.nvim_get_hl(0, opts)
|
||||||
|
|
||||||
|
if hl.link then
|
||||||
|
return nvim_get_hl { name = hl.link }
|
||||||
|
end
|
||||||
|
|
||||||
|
return hl
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param group_name string
|
||||||
|
---@param group_val vim.api.keyset.highlight
|
||||||
|
---@param config? solarized.nvim_set_hl.config
|
||||||
|
local nvim_set_hl = function(group_name, group_val, config)
|
||||||
|
local val = { fg = 'NONE', bg = 'NONE' }
|
||||||
|
|
||||||
|
if not group_val.link then
|
||||||
|
if config and config.transparent then
|
||||||
|
group_val.bg = 'NONE'
|
||||||
|
end
|
||||||
|
|
||||||
|
if config and config.styles then
|
||||||
|
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
|
||||||
|
vim.api.nvim_set_hl(0, group_name, group_val)
|
||||||
|
end
|
||||||
|
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
|
||||||
|
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 })
|
||||||
|
nvim_set_hl('CurSearch', { link = 'IncSearch' })
|
||||||
|
nvim_set_hl('Cursor', { fg = colors.base3, bg = colors.base00 })
|
||||||
|
nvim_set_hl('lCursor', { link = 'Cursor' })
|
||||||
|
nvim_set_hl('CursorIM', { link = 'Cursor' })
|
||||||
|
nvim_set_hl('CursorColumn', { link = 'ColorColumn' })
|
||||||
|
nvim_set_hl('CursorLine', { bg = colors.base2 })
|
||||||
|
nvim_set_hl('Directory', { fg = colors.blue })
|
||||||
|
nvim_set_hl('DiffAdd', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('DiffChange', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('DiffDelete', { fg = colors.git_delete, reverse = true })
|
||||||
|
nvim_set_hl('DiffText', { fg = colors.cyan, reverse = true })
|
||||||
|
nvim_set_hl('EndOfBuffer', { fg = colors.base3 })
|
||||||
|
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('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(
|
||||||
|
'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('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('CursorLineFold', { link = 'FoldColumn' })
|
||||||
|
nvim_set_hl('CursorLineSign', { link = 'SignColumn' })
|
||||||
|
nvim_set_hl('MatchParen', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('ModeMsg', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MsgArea', { link = 'Normal' })
|
||||||
|
nvim_set_hl('MsgSeparator', { link = 'Normal' })
|
||||||
|
nvim_set_hl('MoreMsg', { link = 'ModeMsg' })
|
||||||
|
nvim_set_hl('NonText', { fg = colors.base01 })
|
||||||
|
nvim_set_hl(
|
||||||
|
'Normal',
|
||||||
|
{ fg = colors.base00, bg = colors.base3 },
|
||||||
|
{ transparent = config.transparent.normal and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
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('NormalNC', { link = 'Normal' })
|
||||||
|
nvim_set_hl('Pmenu', { fg = colors.base00, bg = colors.base4 }, {
|
||||||
|
transparent = config.transparent.pmenu and config.transparent.enabled,
|
||||||
|
})
|
||||||
|
nvim_set_hl('PmenuSel', { fg = colors.blue, reverse = true })
|
||||||
|
nvim_set_hl('PmenuKind', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('PmenuKindSel', { link = 'PmenuSel' })
|
||||||
|
nvim_set_hl('PmenuExtra', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('PmenuExtraSel', { link = 'PmenuSel' })
|
||||||
|
nvim_set_hl('PmenuSbar', { bg = colors.base2 })
|
||||||
|
nvim_set_hl('PmenuThumb', { bg = colors.blue })
|
||||||
|
nvim_set_hl('Question', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('QuickFixLine', { fg = colors.base00, bg = colors.base3 })
|
||||||
|
nvim_set_hl('Search', { fg = colors.green, bg = colors.mix_green })
|
||||||
|
nvim_set_hl('SpecialKey', { link = 'NonText' })
|
||||||
|
nvim_set_hl('SpellBad', { underline = true, strikethrough = true })
|
||||||
|
nvim_set_hl('SpellCap', { fg = colors.diag_hint })
|
||||||
|
nvim_set_hl('SpellLocal', { link = 'SpellCap' })
|
||||||
|
nvim_set_hl('SpellRare', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('StatusLine', { fg = colors.base01, bg = colors.base2 })
|
||||||
|
nvim_set_hl('StatusLineNC', { fg = colors.base01, bg = colors.base2 })
|
||||||
|
nvim_set_hl('TabLine', { fg = colors.base01, bg = colors.base2 })
|
||||||
|
nvim_set_hl('TabLineFill', { fg = colors.base0, bg = colors.base2 })
|
||||||
|
nvim_set_hl('TabLineSel', { fg = colors.base0, bg = colors.base3 })
|
||||||
|
nvim_set_hl('Title', { fg = colors.blue })
|
||||||
|
nvim_set_hl('Visual', { fg = colors.magenta, bg = colors.mix_magenta, bold = true })
|
||||||
|
nvim_set_hl('VisualNOS', { link = 'Visual' })
|
||||||
|
nvim_set_hl('warningMsg', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('Whitespace', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('WildMenu', { fg = colors.base2 })
|
||||||
|
nvim_set_hl('WinBar', { link = 'Pmenu' })
|
||||||
|
nvim_set_hl('WinBarNC', { link = 'WinBar' })
|
||||||
|
|
||||||
|
-- PLUGINS
|
||||||
|
if config.plugins.treesitter then
|
||||||
|
nvim_set_hl('@variable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@variable.builtin', { link = 'Constant' })
|
||||||
|
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' })
|
||||||
|
nvim_set_hl('@string', { link = 'String' })
|
||||||
|
nvim_set_hl('@string.documentation', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@string.regexp', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('@string.escape', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@string.special', { link = 'Special' })
|
||||||
|
nvim_set_hl('@string.special.symbol', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@string.special.url', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@character', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@character.special', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@character.printf', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@type', { link = 'Type' })
|
||||||
|
nvim_set_hl('@type.builtin', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@type.definition', { link = 'Type' })
|
||||||
|
nvim_set_hl('@type.qualifier', { link = 'Type' })
|
||||||
|
nvim_set_hl('@attribute', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@function', { link = 'Function' })
|
||||||
|
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 = '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 = 'Include' })
|
||||||
|
nvim_set_hl('@keyword.repeat', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.return', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.debug', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.exception', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.conditional', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.conditional.ternary', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.directive', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@keyword.directive.define', { link = 'Statement' })
|
||||||
|
nvim_set_hl('@punctuation.delimiter', { link = 'Delimiter' })
|
||||||
|
nvim_set_hl('@punctuation.bracket', { link = 'Delimiter' })
|
||||||
|
nvim_set_hl('@punctuation.special', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('@comment', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@comment.documentation', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@comment.error', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('@comment.warning', { fg = colors.diag_warning })
|
||||||
|
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', { 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 })
|
||||||
|
nvim_set_hl('@markup.heading.1', { fg = colors.red, bold = true })
|
||||||
|
nvim_set_hl('@markup.heading.2', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('@markup.heading.3', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('@markup.heading.4', { fg = colors.orange })
|
||||||
|
nvim_set_hl('@markup.heading.5', { fg = colors.blue })
|
||||||
|
nvim_set_hl('@markup.heading.6', { fg = colors.violet })
|
||||||
|
nvim_set_hl('@markup.quote', { fg = colors.green })
|
||||||
|
nvim_set_hl('@markup.math', { fg = colors.violet })
|
||||||
|
nvim_set_hl('@markup.environment', { link = 'Comment' })
|
||||||
|
nvim_set_hl('@markup.link', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@markup.link.label', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@markup.link.url', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('@markup.raw', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('@markup.raw.block', { fg = colors.base00 })
|
||||||
|
nvim_set_hl('@markup.list', { fg = colors.orange })
|
||||||
|
nvim_set_hl('@markup.list.checked', { fg = colors.green })
|
||||||
|
nvim_set_hl('@markup.list.unchecked', { fg = colors.base1 })
|
||||||
|
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', { 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' })
|
||||||
|
nvim_set_hl('@lsp.type.enum', { link = 'Type' })
|
||||||
|
nvim_set_hl('@lsp.type.enumMember', { link = 'Type' })
|
||||||
|
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 = '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' })
|
||||||
|
nvim_set_hl('@lsp.type.variable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.defaultLibrary', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' })
|
||||||
|
nvim_set_hl('@lsp.typemod.variable.global', { link = 'Constant' })
|
||||||
|
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 })
|
||||||
|
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 },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextWarn',
|
||||||
|
{ fg = colors.diag_warning },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextInfo',
|
||||||
|
{ fg = colors.diag_hint },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'DiagnosticVirtualTextHint',
|
||||||
|
{ fg = colors.diag_info },
|
||||||
|
{ error_lens = config.error_lens.text }
|
||||||
|
)
|
||||||
|
nvim_set_hl(
|
||||||
|
'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 }
|
||||||
|
)
|
||||||
|
nvim_set_hl('LspReferenceText', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
nvim_set_hl('LspReferenceRead', { link = 'Visual' })
|
||||||
|
nvim_set_hl('LspReferenceWrite', { link = 'Visual' })
|
||||||
|
nvim_set_hl('LspInlayHint', { fg = colors.base1 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.navic then
|
||||||
|
nvim_set_hl('NavicText', { fg = colors.base00 })
|
||||||
|
nvim_set_hl('NavicSeparator', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('NavicIconsMethod', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsFunction', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsField', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsVariable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsClass', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsInterface', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsModule', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsNamespace', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsProperty', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsUnit', { link = 'Number' })
|
||||||
|
nvim_set_hl('NavicIconsEnum', { link = 'Type' })
|
||||||
|
nvim_set_hl('NavicIconsKeyword', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('NavicIconsSnippet', { link = 'Tag' })
|
||||||
|
nvim_set_hl('NavicIconsColor', { fg = colors.orange })
|
||||||
|
nvim_set_hl('NavicIconsFile', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsReference', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('NavicIconsFolder', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||||
|
nvim_set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||||
|
nvim_set_hl('NavicIconsStruct', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('NavicIconsEvent', { link = 'Function' })
|
||||||
|
nvim_set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||||
|
nvim_set_hl('NavicIconsTypeParameter', { link = 'Type' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.cmp then
|
||||||
|
nvim_set_hl('CmpItemKindText', { link = 'String' })
|
||||||
|
nvim_set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindField', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindClass', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindModule', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindProperty', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||||
|
nvim_set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||||
|
nvim_set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('CmpItemKindSnippet', { link = 'Tag' })
|
||||||
|
nvim_set_hl('CmpItemKindColor', { fg = colors.orange })
|
||||||
|
nvim_set_hl('CmpItemKindFile', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindReference', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('CmpItemKindFolder', { link = 'Directory' })
|
||||||
|
nvim_set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
||||||
|
nvim_set_hl('CmpItemKindConstant', { link = 'Constant' })
|
||||||
|
nvim_set_hl('CmpItemKindStruct', { link = 'Identifier' })
|
||||||
|
nvim_set_hl('CmpItemKindEvent', { link = 'Function' })
|
||||||
|
nvim_set_hl('CmpItemKindOperator', { link = 'Operator' })
|
||||||
|
nvim_set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.indentblankline then
|
||||||
|
nvim_set_hl('IblIndent', { fg = colors.mix_base01 })
|
||||||
|
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(
|
||||||
|
'NeoTreeNormal',
|
||||||
|
{ fg = colors.base01, bg = colors.base4 },
|
||||||
|
{ transparent = config.transparent.neotree and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' })
|
||||||
|
nvim_set_hl('NeoTreeDotFile', { fg = colors.base1 })
|
||||||
|
nvim_set_hl('NeoTreeGitIgnored', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeFileStats', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeDimText', { link = 'NeoTreeDotFile' })
|
||||||
|
nvim_set_hl('NeoTreeFileNameOpened', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NeoTreeFloatBorder', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NeoTreeFloatTitle', { link = 'Title' })
|
||||||
|
nvim_set_hl('NeoTreeGitAdded', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NeoTreeGitConflict', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitDeleted', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl('NeoTreeGitModified', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitUnstaged', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitUntracked', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NeoTreeGitStaged', { fg = colors.git_add })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.nvimtree then
|
||||||
|
nvim_set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||||
|
nvim_set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NvimTreeFolderName', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('NvimTreeRootFolder', { link = 'Title' })
|
||||||
|
nvim_set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('NvimTreeEmptyFolderName', { fg = colors.base01 })
|
||||||
|
nvim_set_hl('NvimTreeExecFile', { link = 'Function' })
|
||||||
|
nvim_set_hl('NvimTreeOpenedFile', { fg = colors.blue, bold = true })
|
||||||
|
nvim_set_hl('NvimTreeModifiedFile', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
||||||
|
nvim_set_hl('NvimTreeIndentMarker', { fg = colors.shade_violet })
|
||||||
|
nvim_set_hl('NvimTreeGitDirty', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitStaged', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NvimTreeGitMerge', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitRenamed', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('NvimTreeGitNew', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('NvimTreeGitDeleted', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl(
|
||||||
|
'NvimTreeNormal',
|
||||||
|
{ fg = colors.base01, bg = colors.base4 },
|
||||||
|
{ transparent = config.transparent.nvimtree and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||||
|
nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base4 })
|
||||||
|
nvim_set_hl('NvimTreeWinSeparator', { link = 'WinSeparator' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.whichkey then
|
||||||
|
nvim_set_hl(
|
||||||
|
'WhichKeyNormal',
|
||||||
|
{ fg = colors.base01, bg = colors.base4 },
|
||||||
|
{ transparent = config.transparent.whichkey and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
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
|
||||||
|
nvim_set_hl('DashboardHeader', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('DashboardFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('DashboardDesc', { link = 'Directory' })
|
||||||
|
nvim_set_hl('DashboardKey', { link = 'Keyword' })
|
||||||
|
nvim_set_hl('DashboardIcon', { link = 'Directory' })
|
||||||
|
nvim_set_hl('DashboardShotCut', { fg = colors.base00 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.gitsigns then
|
||||||
|
nvim_set_hl(
|
||||||
|
'GitSignsAdd',
|
||||||
|
{ 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
|
||||||
|
nvim_set_hl('TelescopeSelection', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('TelescopeSelectionCaret', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('TelescopeMultiIcon', { fg = colors.blue })
|
||||||
|
nvim_set_hl(
|
||||||
|
'TelescopeNormal',
|
||||||
|
{ fg = colors.base0, bg = colors.base4 },
|
||||||
|
{ transparent = config.transparent.telescope and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||||
|
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||||
|
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||||
|
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', { link = 'FloatTitle' })
|
||||||
|
nvim_set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
||||||
|
nvim_set_hl('TelescopeMatching', { link = 'IncSearch' })
|
||||||
|
nvim_set_hl('TelescopePreviewMatch', { link = 'TelescopeMatching' })
|
||||||
|
nvim_set_hl('TelescopePromptCounter', { link = 'NonText' })
|
||||||
|
nvim_set_hl('TelescopePromptPrefix', { fg = colors.orange })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.noice then
|
||||||
|
nvim_set_hl('NoiceFormatProgressTodo', { fg = colors.diag_ok, bg = colors.mix_green })
|
||||||
|
nvim_set_hl('NoiceFormatProgressDone', { fg = colors.diag_ok, reverse = true })
|
||||||
|
nvim_set_hl('NoiceLspProgressSpinner', { fg = colors.diag_ok })
|
||||||
|
nvim_set_hl('NoiceLspProgressClient', { fg = colors.diag_ok })
|
||||||
|
nvim_set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
||||||
|
nvim_set_hl('NoiceCmdlineIcon', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NoiceCmdlinePopupBorder', { link = 'WinSeparator' })
|
||||||
|
nvim_set_hl('NoiceCmdlinePopupTitle', { link = 'Title' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.hop then
|
||||||
|
nvim_set_hl('HopNextKey', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('HopNextKey1', { fg = colors.blue })
|
||||||
|
nvim_set_hl('HopUnmatched', { fg = colors.base1 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ministatusline then
|
||||||
|
nvim_set_hl('MiniStatuslineModeNormal', { fg = colors.base3, bg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStatuslineModeInsert', { fg = colors.base3, bg = colors.green })
|
||||||
|
nvim_set_hl('MiniStatuslineModeVisual', { fg = colors.base3, bg = colors.magenta })
|
||||||
|
nvim_set_hl('MiniStatuslineModeReplace', { fg = colors.base3, bg = colors.red })
|
||||||
|
nvim_set_hl('MiniStatuslineModeCommand', { fg = colors.base3, bg = colors.orange })
|
||||||
|
nvim_set_hl('MinistatusLineFileName', { fg = colors.base0, bg = colors.base2 })
|
||||||
|
nvim_set_hl('MiniStatuslineDevinfo', { fg = colors.base0, bg = colors.base2 })
|
||||||
|
nvim_set_hl('MiniStatuslineFileinfo', { fg = colors.base0, bg = colors.base2 })
|
||||||
|
nvim_set_hl('MiniStatuslineInactive', { fg = colors.base1, bg = colors.base3 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.minitabline then
|
||||||
|
nvim_set_hl('MiniTablineCurrent', { fg = colors.base0, bg = colors.base3 })
|
||||||
|
nvim_set_hl('MiniTablineVisible', { fg = colors.base0, bg = colors.base3 })
|
||||||
|
nvim_set_hl('MiniTablineHidden', { fg = colors.base1, bg = colors.base3 })
|
||||||
|
nvim_set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
||||||
|
nvim_set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
||||||
|
nvim_set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
||||||
|
nvim_set_hl('MiniTablineFill', { fg = colors.base0, bg = colors.base2 })
|
||||||
|
nvim_set_hl('MiniTablineTabpagesection', { fg = colors.base00, bg = colors.base2 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ministarter then
|
||||||
|
nvim_set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
||||||
|
nvim_set_hl('MiniStarterHeader', { fg = colors.base1 })
|
||||||
|
nvim_set_hl('MiniStarterFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('MiniStarterItem', { fg = colors.base00 })
|
||||||
|
nvim_set_hl('MiniStarterItemBullet', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStarterItemPrefix', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MiniStarterSection', { link = 'Title' })
|
||||||
|
nvim_set_hl('MiniStarterQuery', { fg = colors.blue, bold = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.minicursorword then
|
||||||
|
nvim_set_hl('MiniCursorword', { link = 'Visual' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.notify then
|
||||||
|
nvim_set_hl('NotifyBackground', { bg = colors.base3 })
|
||||||
|
nvim_set_hl('NotifyERRORBorder', { link = 'NotifyERRORBody' })
|
||||||
|
nvim_set_hl('NotifyWARNBorder', { link = 'NotifyWARNBody' })
|
||||||
|
nvim_set_hl('NotifyINFOBorder', { link = 'NotifyINFOBody' })
|
||||||
|
nvim_set_hl('NotifyDEBUGBorder', { link = 'NotifyDEBUGBody' })
|
||||||
|
nvim_set_hl('NotifyTRACEBorder', { link = 'NotifyTRACEBody' })
|
||||||
|
nvim_set_hl('NotifyERRORIcon', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNIcon', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOIcon', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGIcon', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACEIcon', { fg = colors.blue })
|
||||||
|
nvim_set_hl('NotifyERRORTitle', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNTitle', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOTitle', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGTitle', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACETitle', { fg = colors.blue })
|
||||||
|
nvim_set_hl('NotifyERRORBody', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('NotifyWARNBody', { fg = colors.diag_warning })
|
||||||
|
nvim_set_hl('NotifyINFOBody', { fg = colors.diag_info })
|
||||||
|
nvim_set_hl('NotifyDEBUGBody', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NotifyTRACEBody', { fg = colors.blue })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.rainbowdelimiters then
|
||||||
|
nvim_set_hl('RainbowDelimiterRed', { fg = colors.red })
|
||||||
|
nvim_set_hl('RainbowDelimiteYellow', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('RainbowDelimiterBlue', { fg = colors.blue })
|
||||||
|
nvim_set_hl('RainbowDelimiterOrange', { fg = colors.orange })
|
||||||
|
nvim_set_hl('RainbowDelimiterGreen', { fg = colors.green })
|
||||||
|
nvim_set_hl('RainbowDelimiterViolet', { fg = colors.violet })
|
||||||
|
nvim_set_hl('RainbowDelimiterCyan', { fg = colors.cyan })
|
||||||
|
end
|
||||||
|
|
||||||
|
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 })
|
||||||
|
nvim_set_hl('BufferLineSeparator', { fg = background })
|
||||||
|
nvim_set_hl('BufferLineSeparatorSelected', { fg = background })
|
||||||
|
nvim_set_hl('BufferLineSeparatorVisible', { fg = background })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.lazy then
|
||||||
|
nvim_set_hl('LazyNormal', { fg = colors.base0, bg = colors.base4 }, {
|
||||||
|
transparent = config.transparent.lazy and config.transparent.enabled,
|
||||||
|
})
|
||||||
|
nvim_set_hl('LazyH1', { fg = colors.blue, bold = true })
|
||||||
|
nvim_set_hl('LazyButton', { fg = colors.green, bg = colors.mix_green })
|
||||||
|
nvim_set_hl('LazyButtonActive', { fg = colors.yellow, bg = colors.mix_yellow })
|
||||||
|
nvim_set_hl('LazyReasonStart', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('LazyReasonEvent', { fg = colors.red })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.rendermarkdown then
|
||||||
|
nvim_set_hl('RenderMarkdownH1Bg', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
nvim_set_hl('RenderMarkdownH2Bg', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||||
|
nvim_set_hl('RenderMarkdownH3Bg', { fg = colors.yellow, bg = colors.mix_yellow })
|
||||||
|
nvim_set_hl('RenderMarkdownH4Bg', { fg = colors.orange, bg = colors.mix_orange })
|
||||||
|
nvim_set_hl('RenderMarkdownH5Bg', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('RenderMarkdownH5Bg', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.neogit then
|
||||||
|
nvim_set_hl('NeogitBranch', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('NeogitRemote', { fg = colors.violet })
|
||||||
|
nvim_set_hl('NeogitHunkHeader', { fg = colors.red, bg = colors.mix_red, bold = true })
|
||||||
|
nvim_set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
||||||
|
nvim_set_hl('NeogitDiffContextHighlight', { fg = colors.base01, bg = colors.base2 })
|
||||||
|
nvim_set_hl('NeogitDiffContext', { fg = colors.base00, bg = colors.base3 })
|
||||||
|
nvim_set_hl('NeogitDiffDeleteHighlight', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
nvim_set_hl('NeogitDiffDelete', { fg = colors.red })
|
||||||
|
nvim_set_hl('NeogitDiffAddHighlight', { fg = colors.green, bg = colors.mix_green })
|
||||||
|
nvim_set_hl('NeogitDiffAdd', { fg = colors.green })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.todocomments then
|
||||||
|
nvim_set_hl('TodoFgTODO', { fg = colors.blue })
|
||||||
|
nvim_set_hl('TodoFgWARN', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('TodoFgTEST', { fg = colors.violet })
|
||||||
|
nvim_set_hl('TodoFgPERF', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('TodoFgNOTE', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('TodoFgHACK', { fg = colors.orange })
|
||||||
|
nvim_set_hl('TodoFgFIX', { fg = colors.red })
|
||||||
|
|
||||||
|
nvim_set_hl('TodoSignTODO', { fg = colors.blue })
|
||||||
|
nvim_set_hl('TodoSignWARN', { fg = colors.yellow })
|
||||||
|
nvim_set_hl('TodoSignTEST', { fg = colors.violet })
|
||||||
|
nvim_set_hl('TodoSignPERF', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('TodoSignNOTE', { fg = colors.cyan })
|
||||||
|
nvim_set_hl('TodoSignHACK', { fg = colors.orange })
|
||||||
|
nvim_set_hl('TodoSignFIX', { fg = colors.red })
|
||||||
|
|
||||||
|
nvim_set_hl('TodoBgTODO', { fg = colors.blue, bg = colors.mix_blue })
|
||||||
|
nvim_set_hl('TodoBgWARN', { fg = colors.yellow, bg = colors.mix_yellow })
|
||||||
|
nvim_set_hl('TodoBgTEST', { fg = colors.violet, bg = colors.mix_violet })
|
||||||
|
nvim_set_hl('TodoBgPERF', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||||
|
nvim_set_hl('TodoBgNOTE', { fg = colors.cyan, bg = colors.mix_cyan })
|
||||||
|
nvim_set_hl('TodoBgHACK', { fg = colors.orange, bg = colors.mix_orange })
|
||||||
|
nvim_set_hl('TodoBgFIX', { fg = colors.red, bg = colors.mix_red })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.ale then
|
||||||
|
nvim_set_hl('ALEErrorSign', { fg = colors.diag_error })
|
||||||
|
nvim_set_hl('ALEWarningSign', { fg = colors.diag_warning })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.alpha then
|
||||||
|
nvim_set_hl('AlphaShortcut', { fg = colors.base00 })
|
||||||
|
nvim_set_hl('AlphaHeader', { fg = colors.magenta })
|
||||||
|
nvim_set_hl('AlphaHeaderLabel', { fg = colors.red })
|
||||||
|
nvim_set_hl('AlphaFooter', { fg = colors.violet })
|
||||||
|
nvim_set_hl('AlphaButtons', { link = 'Directory' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.yanky then
|
||||||
|
nvim_set_hl('YankyPut', { link = 'Search' })
|
||||||
|
nvim_set_hl('YankyYanked', { link = 'IncSearch' })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.gitgutter then
|
||||||
|
nvim_set_hl('GitGutterAdd', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('GitGutterChange', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('GitGutterDelete', { fg = colors.git_delete })
|
||||||
|
nvim_set_hl('GitGutterAddLineNr', { fg = colors.git_add })
|
||||||
|
nvim_set_hl('GitGutterChangeLineNr', { fg = colors.git_modify })
|
||||||
|
nvim_set_hl('GitGutterDeleteLineNr', { fg = colors.git_delete })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.coc then
|
||||||
|
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
|
||||||
|
nvim_set_hl('LeapMatch', { fg = colors.magenta, bg = colors.mix_magenta, bold = true })
|
||||||
|
nvim_set_hl('LeapLabel', { fg = colors.magenta, bold = true })
|
||||||
|
nvim_set_hl('LeapBackDrop', { fg = colors.base01 })
|
||||||
|
end
|
||||||
|
|
||||||
|
if config.plugins.mason then
|
||||||
|
nvim_set_hl('MasonHeader', { link = 'FloatTitle' })
|
||||||
|
nvim_set_hl(
|
||||||
|
'MasonNormal',
|
||||||
|
{ fg = colors.base00, bg = colors.base4 },
|
||||||
|
{ transparent = config.transparent.mason and config.transparent.enabled }
|
||||||
|
)
|
||||||
|
nvim_set_hl('MasonHighlight', { fg = colors.blue })
|
||||||
|
nvim_set_hl('MasonHighlightBlock', { fg = colors.mix_blue, bg = colors.blue })
|
||||||
|
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 highlights = config.on_highlights(colors, color)
|
||||||
|
|
||||||
|
for group_name, group_val in pairs(highlights) do
|
||||||
|
local hl = nvim_get_hl { name = group_name, link = true }
|
||||||
|
local val = {}
|
||||||
|
|
||||||
|
if hl.link then
|
||||||
|
val = group_val
|
||||||
|
else
|
||||||
|
val = vim.tbl_extend('force', hl, group_val)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, group_name, val)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -1,7 +1,53 @@
|
||||||
local config = require('solarized.config')
|
---@class solarized
|
||||||
|
---@field config? solarized.config
|
||||||
|
---@field setup? fun(config: solarized.config)
|
||||||
|
---@field load? fun()
|
||||||
|
|
||||||
|
---@type solarized
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
M.setup = config.setup
|
M.config = require 'solarized.config'
|
||||||
|
|
||||||
|
M.setup = function(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()
|
||||||
|
if vim.g.colors_name then
|
||||||
|
vim.cmd 'hi clear'
|
||||||
|
end
|
||||||
|
|
||||||
|
if vim.fn.exists 'syntax_on' then
|
||||||
|
vim.cmd 'syntax reset'
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.g.colors_name = 'solarized'
|
||||||
|
local highlights = {}
|
||||||
|
local colors = {}
|
||||||
|
if vim.o.background == 'dark' then
|
||||||
|
highlights = require 'solarized.highlights'
|
||||||
|
local palette = require 'solarized.palette'
|
||||||
|
colors = palette[M.config.palette]
|
||||||
|
else
|
||||||
|
highlights = require 'solarized.highlights.solarized-light'
|
||||||
|
local palette = require 'solarized.palette.solarized-light'
|
||||||
|
colors = palette[M.config.palette]
|
||||||
|
end
|
||||||
|
|
||||||
|
highlights.set_highlight(colors, M.config)
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -1,160 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
--- Get the solarized colors based on the current Vim background setting
|
|
||||||
---
|
|
||||||
--- @return table colors A table containing the solarized colors
|
|
||||||
function M.get_colors()
|
|
||||||
local config = require('solarized.config')
|
|
||||||
local colors = {
|
|
||||||
solarized = {
|
|
||||||
dark = {
|
|
||||||
base03 = '#002b36', -- background tone dark (main)
|
|
||||||
base02 = '#073642', -- background tone (highlight/menu/LineNr)
|
|
||||||
base01 = '#586e75', -- content tone (comment)
|
|
||||||
base00 = '#657b83', -- content tone (winseparator)
|
|
||||||
base0 = '#839496', -- content tone (foreground)
|
|
||||||
base1 = '#93a1a1', -- content tone (statusline/tabline)
|
|
||||||
base2 = '#eee8d5', -- background tone light (highlight)
|
|
||||||
base3 = '#fdf6e3', -- background tone lighter (main)
|
|
||||||
-- accent
|
|
||||||
yellow = '#b58900',
|
|
||||||
orange = '#cb4b16',
|
|
||||||
red = '#dc322f',
|
|
||||||
magenta = '#d33682',
|
|
||||||
violet = '#6c71c4',
|
|
||||||
blue = '#268bd2',
|
|
||||||
cyan = '#2aa198',
|
|
||||||
green = '#859900',
|
|
||||||
-- git
|
|
||||||
add = '#859900',
|
|
||||||
change = '#b58900',
|
|
||||||
delete = '#dc322f',
|
|
||||||
-- diagnostic
|
|
||||||
info = '#268bd2',
|
|
||||||
hint = '#859900',
|
|
||||||
warning = '#b58900',
|
|
||||||
error = '#dc322f',
|
|
||||||
},
|
|
||||||
light = {
|
|
||||||
base3 = '#002b36', -- background tone darker (main)
|
|
||||||
base2 = '#073642', -- background tone dark (highlight)
|
|
||||||
base1 = '#586e75', -- content tone (statusline/tabline)
|
|
||||||
base0 = '#657b83', -- content tone (foreground)
|
|
||||||
base00 = '#839496', -- content tone (winseparator)
|
|
||||||
base01 = '#93a1a1', -- content tone (comment)
|
|
||||||
base02 = '#eee8d5', -- background tone (highlight/menu/LineNr)
|
|
||||||
base03 = '#fdf6e3', -- background tone lighter (main)
|
|
||||||
-- accent
|
|
||||||
yellow = '#b58900',
|
|
||||||
orange = '#cb4b16',
|
|
||||||
red = '#dc322f',
|
|
||||||
magenta = '#d33682',
|
|
||||||
violet = '#6c71c4',
|
|
||||||
blue = '#268bd2',
|
|
||||||
cyan = '#2aa198',
|
|
||||||
green = '#859900',
|
|
||||||
-- git
|
|
||||||
add = '#859900',
|
|
||||||
change = '#b58900',
|
|
||||||
delete = '#dc322f',
|
|
||||||
-- diagnostic
|
|
||||||
info = '#268bd2',
|
|
||||||
hint = '#859900',
|
|
||||||
warning = '#b58900',
|
|
||||||
error = '#dc322f',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
selenized = {
|
|
||||||
dark = {
|
|
||||||
base03 = '#103c48', -- background tone dark (main)
|
|
||||||
base02 = '#184956', -- background tone (highlight/menu/LineNr)
|
|
||||||
base01 = '#72898f', -- content tone (comment)
|
|
||||||
base00 = '#72898f', -- content tone (winseparator)
|
|
||||||
base0 = '#adbcbc', -- content tone (foreground)
|
|
||||||
base1 = '#cad8d9', -- content tone (statusline/tabline)
|
|
||||||
base2 = '#cfcebe', -- background tone light (highlight)
|
|
||||||
base3 = '#fbf3db', -- background tone lighter (main)
|
|
||||||
-- accent
|
|
||||||
yellow = '#dbb32d',
|
|
||||||
orange = '#ed8649',
|
|
||||||
red = '#fa5750',
|
|
||||||
magenta = '#f275be',
|
|
||||||
violet = '#af88eb',
|
|
||||||
blue = '#4695f7',
|
|
||||||
cyan = '#41c7b9',
|
|
||||||
green = '#75b938',
|
|
||||||
-- git
|
|
||||||
add = '#75b938',
|
|
||||||
change = '#dbb32d',
|
|
||||||
delete = '#fa5750',
|
|
||||||
-- diagnostic
|
|
||||||
info = '#4695f7',
|
|
||||||
hint = '#75b938',
|
|
||||||
warning = '#dbb32d',
|
|
||||||
error = '#fa5750',
|
|
||||||
},
|
|
||||||
light = {
|
|
||||||
base3 = '#103c48', -- background tone darker (main)
|
|
||||||
base2 = '#2d5b69', -- background tone dark (highlight)
|
|
||||||
base1 = '#3a4d53', -- content tone (statusline/tabline)
|
|
||||||
base0 = '#53676d', -- content tone (foreground)
|
|
||||||
base00 = '#909995', -- content tone (winseparator)
|
|
||||||
base01 = '#909995', -- content tone (comment)
|
|
||||||
base02 = '#e9e4d0', -- background tone (highlight/menu/LineNr)
|
|
||||||
base03 = '#fbf3db', -- background tone lighter (main)
|
|
||||||
-- accent
|
|
||||||
yellow = '#ad8900',
|
|
||||||
orange = '#ed8649',
|
|
||||||
red = '#dc322f',
|
|
||||||
magenta = '#ca4898',
|
|
||||||
violet = '#af88eb',
|
|
||||||
blue = '#0072d4',
|
|
||||||
cyan = '#009c8f',
|
|
||||||
green = '#489100',
|
|
||||||
-- git
|
|
||||||
add = '#489100',
|
|
||||||
change = '#ad8900',
|
|
||||||
delete = '#d2212d',
|
|
||||||
-- diagnostic
|
|
||||||
info = '#0072d4',
|
|
||||||
hint = '#489100',
|
|
||||||
warning = '#ad8900',
|
|
||||||
error = '#d2212d',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return colors[((config.config or {}).palette or 'solarized')][vim.o.background]
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Filter colors by selecting valid hexadecimal color values.
|
|
||||||
---
|
|
||||||
--- @param colors table A table containing color values to be filtered.
|
|
||||||
--- @return table Filtered colors table, containing only valid hexadecimal color values.
|
|
||||||
local function filter_colors(colors)
|
|
||||||
local filtered_colors = {}
|
|
||||||
|
|
||||||
for color_name, color_value in pairs(colors) do
|
|
||||||
if string.match(color_value, '#%x%x%x%x%x%x$') then
|
|
||||||
filtered_colors[color_name] = color_value
|
|
||||||
elseif string.match(color_value, '#%x%x%x$') then
|
|
||||||
color_value = string.sub(color_value, 2, #color_value)
|
|
||||||
filtered_colors[color_name] = '#' .. string.rep(color_value, 2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return filtered_colors
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Merge custom colors with solarized default colors
|
|
||||||
---
|
|
||||||
--- @param colors table A table containing new color values to be added.
|
|
||||||
--- @param custom_colors table
|
|
||||||
function M.extend_colors(colors, custom_colors)
|
|
||||||
local c = vim.deepcopy(colors)
|
|
||||||
custom_colors = filter_colors(custom_colors)
|
|
||||||
|
|
||||||
return vim.tbl_extend('force', c, custom_colors)
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
121
lua/solarized/palette/init.lua
Normal file
121
lua/solarized/palette/init.lua
Normal file
|
|
@ -0,0 +1,121 @@
|
||||||
|
---@class solarized.palette
|
||||||
|
---@field base0? string
|
||||||
|
---@field base00? string
|
||||||
|
---@field base01? string
|
||||||
|
---@field base02? string
|
||||||
|
---@field base03? string
|
||||||
|
---@field base04? string
|
||||||
|
---@field base1? string
|
||||||
|
---@field base2? string
|
||||||
|
---@field base3? string
|
||||||
|
---@field base4? string
|
||||||
|
---@field blue? string
|
||||||
|
---@field cyan? string
|
||||||
|
---@field diag_error? string
|
||||||
|
---@field diag_hint? string
|
||||||
|
---@field diag_info? string
|
||||||
|
---@field diag_ok? string
|
||||||
|
---@field diag_warning? string
|
||||||
|
---@field git_add? string
|
||||||
|
---@field git_delete? string
|
||||||
|
---@field git_modify? string
|
||||||
|
---@field green? string
|
||||||
|
---@field magenta? string
|
||||||
|
---@field mix_blue? string
|
||||||
|
---@field mix_cyan? string
|
||||||
|
---@field mix_green? string
|
||||||
|
---@field mix_magenta? string
|
||||||
|
---@field mix_orange? string
|
||||||
|
---@field mix_red? string
|
||||||
|
---@field mix_violet? string
|
||||||
|
---@field mix_yellow? string
|
||||||
|
---@field mix_base1? string
|
||||||
|
---@field mix_base01? string
|
||||||
|
---@field orange? string
|
||||||
|
---@field red? string
|
||||||
|
---@field violet? string
|
||||||
|
---@field yellow? string
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@type solarized.palette
|
||||||
|
M.solarized = {
|
||||||
|
base0 = '#839496',
|
||||||
|
base00 = '#657B83',
|
||||||
|
base01 = '#586E75',
|
||||||
|
base02 = '#073642',
|
||||||
|
base03 = '#002B36',
|
||||||
|
base04 = '#002731',
|
||||||
|
base1 = '#93A1A1',
|
||||||
|
base2 = '#eee8d5',
|
||||||
|
base3 = '#fdf6e3',
|
||||||
|
base4 = '#fbf3db',
|
||||||
|
blue = '#268BD2',
|
||||||
|
cyan = '#2AA198',
|
||||||
|
diag_error = '#DC322F',
|
||||||
|
diag_hint = '#268BD2',
|
||||||
|
diag_info = '#268BD2',
|
||||||
|
diag_ok = '#859900',
|
||||||
|
diag_warning = '#B58900',
|
||||||
|
git_add = '#268BD2',
|
||||||
|
git_delete = '#DC322F',
|
||||||
|
git_modify = '#B58900',
|
||||||
|
green = '#859900',
|
||||||
|
magenta = '#D33682',
|
||||||
|
mix_blue = '#0B4764',
|
||||||
|
mix_cyan = '#0C4E53',
|
||||||
|
mix_green = '#274C25',
|
||||||
|
mix_magenta = '#3F2E4C',
|
||||||
|
mix_orange = '#3C342C',
|
||||||
|
mix_red = '#422D33',
|
||||||
|
mix_violet = '#204060',
|
||||||
|
mix_yellow = '#364725',
|
||||||
|
mix_base1 = '#2C4E56',
|
||||||
|
mix_base01 = '#CCCDC2',
|
||||||
|
orange = '#CB4B16',
|
||||||
|
red = '#DC322F',
|
||||||
|
violet = '#6C71C4',
|
||||||
|
yellow = '#B58900',
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type solarized.palette
|
||||||
|
M.selenized = {
|
||||||
|
base04 = '#0e3641',
|
||||||
|
base03 = '#103c48',
|
||||||
|
base02 = '#184956',
|
||||||
|
base01 = '#72898f',
|
||||||
|
base00 = '#53676d',
|
||||||
|
base0 = '#adbcbc',
|
||||||
|
base1 = '#cad8d9',
|
||||||
|
base2 = '#ece3cc',
|
||||||
|
base3 = '#fbf3db',
|
||||||
|
base4 = '#ece3cc',
|
||||||
|
yellow = '#dbb32d',
|
||||||
|
orange = '#ed8649',
|
||||||
|
red = '#fa5750',
|
||||||
|
magenta = '#f275be',
|
||||||
|
violet = '#af88eb',
|
||||||
|
blue = '#4695f7',
|
||||||
|
cyan = '#41c7b9',
|
||||||
|
green = '#75b938',
|
||||||
|
mix_yellow = '#4c5f3f',
|
||||||
|
mix_orange = '#525248',
|
||||||
|
mix_red = '#56444a',
|
||||||
|
mix_magenta = '#534d6b',
|
||||||
|
mix_violet = '#3f5278',
|
||||||
|
mix_blue = '#20567c',
|
||||||
|
mix_cyan = '#1e6569',
|
||||||
|
mix_green = '#2e6143',
|
||||||
|
mix_base1 = '#486B74',
|
||||||
|
mix_base01 = '#CACBBC',
|
||||||
|
diag_error = '#fa5750',
|
||||||
|
diag_hint = '#75b938',
|
||||||
|
diag_info = '#75b938',
|
||||||
|
diag_ok = '#75b938',
|
||||||
|
diag_warning = '#dbb32d',
|
||||||
|
git_add = '#4695f7',
|
||||||
|
git_delete = '#fa5750',
|
||||||
|
git_modify = '#dbb32d',
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
||||||
83
lua/solarized/palette/solarized-light.lua
Normal file
83
lua/solarized/palette/solarized-light.lua
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@type solarized.palette
|
||||||
|
M.solarized = {
|
||||||
|
base04 = '#002731',
|
||||||
|
base03 = '#002b36',
|
||||||
|
base02 = '#073642',
|
||||||
|
base01 = '#586E75',
|
||||||
|
base00 = '#657B83',
|
||||||
|
base0 = '#839496',
|
||||||
|
base1 = '#93A1A1',
|
||||||
|
base2 = '#EEE8D5',
|
||||||
|
base3 = '#FDF6E3',
|
||||||
|
base4 = '#fbf3db',
|
||||||
|
blue = '#268BD2',
|
||||||
|
cyan = '#2AA198',
|
||||||
|
orange = '#CB4B16',
|
||||||
|
red = '#DC322F',
|
||||||
|
violet = '#6C71C4',
|
||||||
|
yellow = '#B58900',
|
||||||
|
green = '#859900',
|
||||||
|
magenta = '#D33682',
|
||||||
|
diag_error = '#DC322F',
|
||||||
|
diag_hint = '#268BD2',
|
||||||
|
diag_info = '#268BD2',
|
||||||
|
diag_ok = '#859900',
|
||||||
|
diag_warning = '#B58900',
|
||||||
|
git_add = '#859900',
|
||||||
|
git_delete = '#DC322F',
|
||||||
|
git_modify = '#B58900',
|
||||||
|
mix_blue = '#e7ebe1',
|
||||||
|
mix_cyan = '#e7eddb',
|
||||||
|
mix_green = '#f1eccc',
|
||||||
|
mix_magenta = '#f8e2d9',
|
||||||
|
mix_orange = '#f8e4ce',
|
||||||
|
mix_base1 = '#2C4E56',
|
||||||
|
mix_base01 = '#CCCDC2',
|
||||||
|
mix_red = '#f9e2d1',
|
||||||
|
mix_violet = '#eee8df',
|
||||||
|
mix_yellow = '#f5ebcc',
|
||||||
|
}
|
||||||
|
|
||||||
|
---@type solarized.palette
|
||||||
|
M.selenized = {
|
||||||
|
base04 = '#0e3641',
|
||||||
|
base03 = '#103c48',
|
||||||
|
base02 = '#184956',
|
||||||
|
base01 = '#3a4d53',
|
||||||
|
base00 = '#53676d',
|
||||||
|
base0 = '#53676d',
|
||||||
|
base1 = '#909995',
|
||||||
|
base2 = '#ece3cc',
|
||||||
|
base3 = '#fbf3db',
|
||||||
|
base4 = '#ece3cc',
|
||||||
|
yellow = '#ad8900',
|
||||||
|
orange = '#c25d1e',
|
||||||
|
red = '#d2212d',
|
||||||
|
magenta = '#ca4898',
|
||||||
|
violet = '#8762c6',
|
||||||
|
blue = '#0072d4',
|
||||||
|
cyan = '#009c8f',
|
||||||
|
green = '#489100',
|
||||||
|
diag_error = '#d2212d',
|
||||||
|
diag_hint = '#0072d4',
|
||||||
|
diag_info = '#0072d4',
|
||||||
|
diag_ok = '#489100',
|
||||||
|
diag_warning = '#ad8900',
|
||||||
|
git_add = '#489100',
|
||||||
|
git_delete = '#DC322F',
|
||||||
|
git_modify = '#ad8900',
|
||||||
|
mix_yellow = '#f3e8c5',
|
||||||
|
mix_orange = '#f5e4c8',
|
||||||
|
mix_red = '#f6dec9',
|
||||||
|
mix_magenta = '#f6e1d4',
|
||||||
|
mix_violet = '#efe4d8',
|
||||||
|
mix_blue = '#e1e6da',
|
||||||
|
mix_cyan = '#e1ead3',
|
||||||
|
mix_green = '#e9e9c5',
|
||||||
|
mix_base1 = '#486B74',
|
||||||
|
mix_base01 = '#CACBBC',
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- When `termguicolors` is enabled, this plugin is designed to work automatically,
|
|
||||||
-- deriving colours from the user's theme.
|
|
||||||
--
|
|
||||||
-- My attempt to fix bufferline on transparent background
|
|
||||||
if config.transparent then
|
|
||||||
set_hl('BufferLineFill', { bg = c.base02 })
|
|
||||||
set_hl('BufferLineBufferSelected', { fg = c.base2, italic = true })
|
|
||||||
set_hl('BufferLineSeparator', { fg = c.base02 })
|
|
||||||
set_hl('BufferLineSeparatorSelected', { fg = c.base02 })
|
|
||||||
set_hl('BufferLineSeparatorVisible', { fg = c.base02 })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- set_hl('CmpItemAbbr') -- Highlight group for unmatched characters of each completion field.
|
|
||||||
set_hl('CmpItemAbbrDeprecated', { fg = c.base1, strikethrough = true }) -- Highlight group for unmatched characters of each deprecated completion field.
|
|
||||||
set_hl('CmpItemAbbrMatch', { fg = c.yellow }) -- Highlight group for matched characters of each completion field.
|
|
||||||
set_hl('CmpItemAbbrMatchFuzzy', { fg = c.yellow }) -- Highlight group for fuzzy-matched characters of each completion field.
|
|
||||||
-- set_hl('CmpItemKind') -- Highlight group for the kind of the field.
|
|
||||||
-- set_hl('CmpItemMenu') -- The menu field's highlight group.
|
|
||||||
|
|
||||||
set_hl('CmpItemKindReference', { link = 'Underlined' })
|
|
||||||
set_hl('CmpItemKindUnit', { link = 'Number' })
|
|
||||||
set_hl('CmpItemKindEnum', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindField', { link = '@field' })
|
|
||||||
set_hl('CmpItemKindClass', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindFile', { fg = c.base0 })
|
|
||||||
set_hl('CmpItemKindProperty', { link = '@field' })
|
|
||||||
set_hl('CmpItemKindMethod', { link = 'Function' })
|
|
||||||
set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
|
||||||
set_hl('CmpItemKindFolder', { link = 'Directory' })
|
|
||||||
set_hl('CmpItemKindSnippet', { link = 'Keyword' })
|
|
||||||
set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
|
||||||
set_hl('CmpItemKindStruct', { link = 'Structure' })
|
|
||||||
set_hl('CmpItemKindInterface', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('CmpItemKindEvent', { fg = c.base2 })
|
|
||||||
set_hl('CmpItemKindConstructor', { link = '@constructor' })
|
|
||||||
set_hl('CmpItemKindConstant', { link = 'Constant' })
|
|
||||||
set_hl('CmpItemKindModule', { link = '@namespace' })
|
|
||||||
set_hl('CmpItemKindValue', { fg = c.base2 })
|
|
||||||
set_hl('CmpItemKindColor', { fg = c.magenta })
|
|
||||||
set_hl('CmpItemKindFunction', { link = 'Function' })
|
|
||||||
set_hl('CmpItemKindText', { link = 'String' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- general
|
|
||||||
set_hl('DashboardHeader', { fg = c.base00 })
|
|
||||||
set_hl('DashboardFooter', { fg = c.base00 })
|
|
||||||
|
|
||||||
-- Hyper
|
|
||||||
set_hl('DashboardProjectTitle', { fg = c.blue })
|
|
||||||
set_hl('DashboardProjectTitleIcon', { link = 'DashboardProjectTitle' })
|
|
||||||
set_hl('DashboardProjectIcon', { link = 'Directory' })
|
|
||||||
set_hl('DashboardMruTitle', { link = 'DashboardProjectTitle' })
|
|
||||||
set_hl('DashboardMruIcon', { link = 'DashboardMruTitle' })
|
|
||||||
set_hl('DashboardFiles', { fg = c.base0 })
|
|
||||||
set_hl('DashboardShotCutIcon', { fg = c.magenta })
|
|
||||||
|
|
||||||
-- Doom theme
|
|
||||||
set_hl('DashboardDesc', { fg = c.base0 })
|
|
||||||
set_hl('DashboardKey', { fg = c.magenta })
|
|
||||||
set_hl('DashboardIcon', { link = 'Directory' })
|
|
||||||
set_hl('DashboardShotCut', { fg = c.base00 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('DiagnosticError', { fg = c.error }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticWarn', { fg = c.warning }) --Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticInfo', { fg = c.info }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticHint', { fg = c.hint }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticOk', { fg = c.cyan }) -- Used as the base highlight group.(except Underline)
|
|
||||||
-- set_hl('DiagnosticVirtualTextError') -- Used for "Error" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextWarn') -- Used for "Warn" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextInfo') -- Used for "Info" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextHint') -- Used for "Hint" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextOk') -- Used for "Ok" diagnostic virtual text.
|
|
||||||
set_hl('DiagnosticUnderlineError', { fg = c.error, sp = c.error }) --Used to underline "Error" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineWarn', { fg = c.warning, sp = c.warning }) -- Used to underline "Warn" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineInfo', { fg = c.info, sp = c.info }) -- Used to underline "Info" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineHint', { fg = c.hint, sp = c.hint }) -- Used to underline "Hint" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineOk', { fg = c.cyan, sp = c.cyan }) -- Used to underline "Ok" diagnostics.
|
|
||||||
-- set_hl('DiagnosticFloatingError') -- Used to color "Error" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingWarn') -- Used to color "Warn" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingInfo') -- Used to color "Info" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingHint') -- Used to color "Hint" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingOk') -- Used to color "Ok" diagnostic messages in diagnostics float.
|
|
||||||
set_hl(
|
|
||||||
'DiagnosticSignError',
|
|
||||||
{ fg = c.error, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for "Error" signs in sign column.
|
|
||||||
set_hl(
|
|
||||||
'DiagnosticSignWarn',
|
|
||||||
{ fg = c.warning, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for "Warn" signs in sign column.
|
|
||||||
set_hl(
|
|
||||||
'DiagnosticSignInfo',
|
|
||||||
{ fg = c.info, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for "Info" signs in sign column.
|
|
||||||
set_hl(
|
|
||||||
'DiagnosticSignHint',
|
|
||||||
{ fg = c.hint, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for "Hint" signs in sign column.
|
|
||||||
set_hl(
|
|
||||||
'DiagnosticSignOk',
|
|
||||||
{ fg = c.cyan, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for "Ok" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticDeprecated') -- Used for deprecated or obsolete code.
|
|
||||||
-- set_hl('DiagnosticUnnecessary') -- Used for unnecessary or unused code.
|
|
||||||
end
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('ColorColumn', { bg = c.base02 }) -- used for columns
|
|
||||||
set_hl('Conceal', { fg = c.blue }) -- placeholder characters
|
|
||||||
set_hl('CurSearch', { fg = c.base2, bg = c.base02 }) -- highlight under cursor
|
|
||||||
set_hl('Cursor', { fg = c.base03, bg = c.base0 }) -- character under cursor
|
|
||||||
set_hl('lCursor', { link = 'Cursor' }) -- character under the cursor
|
|
||||||
set_hl('CursorIM', { link = 'Cursor' }) -- like cursor, but IME mode
|
|
||||||
set_hl('CursorColumn', { link = 'ColorColumn' }) -- screen-column at the cursor
|
|
||||||
set_hl('CursorLine', { bg = c.base02, sp = c.base1 }) -- screen-line at the cursor
|
|
||||||
set_hl('Directory', { fg = c.blue }) -- directory names
|
|
||||||
set_hl('DiffAdd', { fg = c.add, reverse = true }) -- Added line
|
|
||||||
set_hl('DiffChange', { fg = c.change, reverse = true }) -- Changed line
|
|
||||||
set_hl('DiffDelete', { fg = c.delete, reverse = true }) -- Deleted line
|
|
||||||
set_hl('DiffText', { fg = c.blue, reverse = true }) -- Changed Text
|
|
||||||
set_hl('EndOfBuffer', { fg = c.base03 }) -- Filler lines (~)
|
|
||||||
set_hl('TermCursor', { link = 'Cursor' }) -- Cursor in a focused terminal
|
|
||||||
set_hl('TermCursorNC', { fg = c.base03, bg = c.base0 }) -- Cursor in an unfocused terminal
|
|
||||||
set_hl('ErrorMsg', { fg = c.error, reverse = true }) -- Error messages on the command line
|
|
||||||
set_hl(
|
|
||||||
'WinSeparator',
|
|
||||||
{ fg = c.base00, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Separators between window splits
|
|
||||||
set_hl(
|
|
||||||
'Folded',
|
|
||||||
{ fg = c.base0, bg = c.base02, underline = true, bold = true }
|
|
||||||
) -- Line used for closed folds
|
|
||||||
set_hl('FoldColumn', { fg = c.base0, bg = c.base02, bold = true }) -- 'foldcolumn'
|
|
||||||
set_hl(
|
|
||||||
'SignColumn',
|
|
||||||
{ fg = c.base0, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Column were signs are displayed
|
|
||||||
set_hl('IncSearch', { fg = c.orange, standout = true }) -- 'incsearch' highlighting, also for the text replaced
|
|
||||||
set_hl('Substitute', { link = 'IncSearch' }) -- :substitute replacement text highlight
|
|
||||||
set_hl(
|
|
||||||
'LineNr',
|
|
||||||
{ fg = c.base01, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Line number for ":number" and ":#" commands
|
|
||||||
set_hl('LineNrAbove', { link = 'LineNr' }) -- Line number, above the cursor line
|
|
||||||
set_hl('LineNrBelow', { link = 'LineNr' }) -- Line number, below the cursor
|
|
||||||
set_hl(
|
|
||||||
'CursorLineNr',
|
|
||||||
{ fg = c.base1, bg = c.base02, bold = true },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Like LineNr when 'cursorline' is set
|
|
||||||
set_hl('CursorLineFold', { link = 'FoldColumn' }) -- Like FoldColumn when 'cursorline' is set
|
|
||||||
set_hl('CursorLineSign', { link = 'SignColumn' }) -- Like SignColumn when 'cursorline' is set
|
|
||||||
set_hl('MatchParen', { fg = c.red, bg = c.base01, bold = true }) -- Character under the cursor or just before it
|
|
||||||
set_hl('ModeMsg', { fg = c.blue }) -- 'showmode' message (e.g., "-- INSERT --")
|
|
||||||
set_hl('MsgArea', { link = 'Normal' }) -- 'Area for messages and cmdline'
|
|
||||||
set_hl('MsgSeparator', { link = 'Normal' }) -- Separator for scrolled messages msgsep.
|
|
||||||
set_hl('MoreMsg', { fg = c.blue }) -- more-prompt
|
|
||||||
set_hl('NonText', { fg = c.base1, bold = true }) -- '@' at the end of the window
|
|
||||||
set_hl(
|
|
||||||
'Normal',
|
|
||||||
{ fg = c.base0, bg = c.base03 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Normal text
|
|
||||||
set_hl('NormalFloat', { fg = c.base0, bg = c.base02 }) -- Normal text in floating windows
|
|
||||||
set_hl('FloatBorder', { link = 'WinSeparator', bold = true }) -- Border of floating windows.
|
|
||||||
set_hl('FloatTitle', { fg = c.orange }) -- Title of float windows.
|
|
||||||
set_hl('NormalNC', { link = 'Normal' }) -- Normal text in non-current windows.
|
|
||||||
set_hl(
|
|
||||||
'Pmenu',
|
|
||||||
{ fg = c.base0, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Popup menu: Normal item
|
|
||||||
set_hl('PmenuSel', { fg = c.base2, bg = c.base01 }) -- Popup menu: Selected item
|
|
||||||
set_hl('PmenuKind', { link = 'Pmenu' }) -- Popup menu: Normal item kind
|
|
||||||
set_hl('PmenuKindSel', { link = 'PmenuSel' }) -- Popup menu: Selected item kind
|
|
||||||
set_hl('PmenuExtra', { link = 'Pmenu' }) -- Popup menu: Normal item extra text
|
|
||||||
set_hl('PmenuExtraSel', { link = 'PmenuSel' }) -- Popup menu: Selected item extra text
|
|
||||||
set_hl('PmenuSbar', { fg = c.base0, bg = c.base2 }) -- Popup menu: Scrollbar
|
|
||||||
set_hl('PmenuThumb', { fg = c.base03, bg = c.base0 }) -- Popup menu: Thumb of the scrollbar
|
|
||||||
set_hl('Question', { fg = c.cyan, bold = true }) -- hit-enter prompt and yes/no questions.
|
|
||||||
set_hl('QuickFixLine', { fg = c.base0, bg = c.base03 }) -- Current quickfix item in the quickfix window
|
|
||||||
set_hl('Search', { fg = c.yellow, reverse = true }) -- Last search pattern highlighting
|
|
||||||
set_hl('SpecialKey', { fg = c.red, reverse = true }) -- Unprintable characters: Text displayed differently from what it really is.
|
|
||||||
set_hl('SpellBad', { sp = c.red, undercurl = true }) -- Word that is not recognized by the spellchecker.
|
|
||||||
set_hl('SpellCap', { sp = c.violet, undercurl = true }) -- Word that should start with a capital
|
|
||||||
set_hl('SpellLocal', { sp = c.yellow, undercurl = true }) -- Word that is recognized by the spellchecker as one that is used in another region
|
|
||||||
set_hl('SpellRare', { sp = c.cyan, undercurl = true }) -- Word that is recognized by the spellchecker as one that is hardly ever used.
|
|
||||||
set_hl('StatusLine', { fg = c.base02, bg = c.base1 }) -- Status line of current window.
|
|
||||||
set_hl('StatusLineNC', { fg = c.base02, bg = c.base00 }) -- Status lines of not-current windows.
|
|
||||||
set_hl(
|
|
||||||
'TabLine',
|
|
||||||
{ fg = c.base0, bg = c.base02, sp = c.base0, underline = true }
|
|
||||||
) -- Tab pages line, not active tab page label.
|
|
||||||
set_hl(
|
|
||||||
'TabLineFill',
|
|
||||||
{ fg = c.base0, bg = c.base02, sp = c.base0, underline = true }
|
|
||||||
) -- Tab pages line, where there are no labels.
|
|
||||||
set_hl(
|
|
||||||
'TabLineSel',
|
|
||||||
{ fg = c.base2, bg = c.base01, sp = c.base0, underline = true }
|
|
||||||
) -- Tab pages line, active tab page label.
|
|
||||||
set_hl('Title', { fg = c.orange, bold = true }) -- Titles for output from ":set all", ":autocmd" etc.
|
|
||||||
set_hl('Visual', { bg = c.base02, standout = true }) -- Visual mode selection.
|
|
||||||
set_hl('VisualNOS', { link = 'Visual' }) -- Visual mode selection when vim is "Not Owning the Selection".
|
|
||||||
set_hl('WarningMsg', { fg = c.warning, bold = true }) -- Warning messages.
|
|
||||||
set_hl('Whitespace', { fg = c.base01 }) -- "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'.
|
|
||||||
set_hl('WildMenu', { fg = c.base2, bg = c.base02 }) -- Current match in 'wildmenu' completion.
|
|
||||||
set_hl('WinBar', { link = 'Pmenu' }) -- Window bar of current window.
|
|
||||||
set_hl('WinBarNC', { link = 'WinBar' }) -- Window bar of not-current windows.
|
|
||||||
end
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl(
|
|
||||||
'GitSignsAdd',
|
|
||||||
{ fg = c.add, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for the text of 'add' signs
|
|
||||||
set_hl(
|
|
||||||
'GitSignsChange',
|
|
||||||
{ fg = c.change, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for the text of 'change' signs
|
|
||||||
set_hl(
|
|
||||||
'GitSignsDelete',
|
|
||||||
{ fg = c.delete, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Used for the text of 'delete' signs
|
|
||||||
end
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('HopNextKey', { fg = c.magenta })
|
|
||||||
set_hl('HopNextKey1', { fg = c.blue })
|
|
||||||
set_hl('HopNextKey2', { fg = '#1b6294' })
|
|
||||||
set_hl('HopUnmatched', { fg = c.base01 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('IndentBlanklineChar', { fg = c.base01 }) -- Highlight of indent character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineContextChar', { fg = c.base0 }) -- Highlight of indent character when base of current context. Default: Label
|
|
||||||
set_hl(
|
|
||||||
'IndentBlanklineContextSpaceChar',
|
|
||||||
{ link = 'IndentBlanklineContextChar' }
|
|
||||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
|
||||||
set_hl('IblIndent', { fg = c.base0, nocombine = true })
|
|
||||||
set_hl('IblScope', { fg = c.base01, nocombine = true })
|
|
||||||
|
|
||||||
-- set_hl('IndentBlanklineSpaceCharBlankline', {}) -- Highlight of space character on blank lines. Default: Whitespace
|
|
||||||
-- set_hl('IndentBlanklineContextStart', {}) -- Highlight of the first line of the current context. Default: Label
|
|
||||||
end
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colortool = require('solarized.utils.colors')
|
|
||||||
local darken = colortool.darken
|
|
||||||
local lighten = colortool.lighten
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('LspReferenceText', { link = 'Visual' }) -- used for highlighting "text" references
|
|
||||||
set_hl('LspReferenceRead', { link = 'Visual' }) -- used for highlighting "read" references
|
|
||||||
set_hl('LspReferenceWrite', { link = 'Visual' }) -- used for highlighting "write" references
|
|
||||||
|
|
||||||
if vim.o.background == 'dark' then
|
|
||||||
set_hl('LspInlayHint', { fg = darken(c.yellow, 20) }) -- used for highlighting inlay hints
|
|
||||||
else
|
|
||||||
set_hl('LspInlayHint', { fg = lighten(c.yellow, 20) })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if you want to me to enable the highlight groups bellow, please send a screenshot for me to see how
|
|
||||||
-- they look like or how to config for me to test.
|
|
||||||
|
|
||||||
-- set_hl('LspCodelens') -- Used to color the virtual text of the codelens.
|
|
||||||
-- set_hl('LspCodeLensSeparator') -- Used to color the separator between two or more code lenses.
|
|
||||||
-- set_hl('LspSignatureActiveParameter') -- Used to highlight the active parameter in the signature help. See
|
|
||||||
end
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- Float window
|
|
||||||
set_hl('SagaNormal', { link = 'Pmenu' })
|
|
||||||
set_hl(
|
|
||||||
'TitleString',
|
|
||||||
{ fg = c.orange, bold = true, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Outline
|
|
||||||
set_hl('OutlineIndent', { fg = c.green })
|
|
||||||
|
|
||||||
-- Icons
|
|
||||||
set_hl('SagaWinbarModule', { link = '@namespace' })
|
|
||||||
set_hl('SagaWinbarInterface', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarConstructor', { link = '@constructor' })
|
|
||||||
set_hl('SagaWinbarStruct', { link = 'Structure' })
|
|
||||||
set_hl('SagaWinbarObject', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarUnit', { link = 'Number' })
|
|
||||||
set_hl('SagaWinbarFile', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarSnippet', { link = 'Keyword' })
|
|
||||||
set_hl('SagaWinbarText', { fg = c.base1 })
|
|
||||||
set_hl('SagaWinbarTypeAlias', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarEvent', { fg = c.base2 })
|
|
||||||
set_hl('SagaWinbarParameter', { link = '@parameter' })
|
|
||||||
set_hl('SagaWinbarKey', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarValue', { fg = c.base2 })
|
|
||||||
set_hl('SagaWinbarMacro', { link = 'Macro' })
|
|
||||||
set_hl('SagaWinbarNumber', { link = 'Number' })
|
|
||||||
set_hl('SagaWinbarConstant', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarFunction', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarEnum', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarField', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarProperty', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarMethod', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarClass', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarFolder', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarPackage', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarStaticMethod', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarTypeParameter', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarOperator', { link = 'Operator' })
|
|
||||||
set_hl('SagaWinbarNull', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarNamespace', { link = '@namespace' })
|
|
||||||
set_hl('SagaWinbarArray', { link = 'Delimiter' })
|
|
||||||
set_hl('SagaWinbarBoolean', { link = 'Boolean' })
|
|
||||||
set_hl('SagaWinbarString', { link = 'String' })
|
|
||||||
set_hl('SagaWinbarVariable', { link = 'Identifier' })
|
|
||||||
set_hl('SagaWinbarFilename', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarFolderName', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarFileIcon', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarSep', { link = 'Keyword' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- MiniCursor
|
|
||||||
set_hl('MiniCursorword', { bg = c.base02 })
|
|
||||||
|
|
||||||
-- MiniStatusLine
|
|
||||||
set_hl('MiniStatuslineModeNormal', { fg = c.base03, bg = c.blue })
|
|
||||||
set_hl('MiniStatuslineModeInsert', { fg = c.base03, bg = c.green })
|
|
||||||
set_hl('MiniStatuslineModeVisual', { fg = c.base03, bg = c.magenta })
|
|
||||||
set_hl('MiniStatuslineModeReplace', { fg = c.base03, bg = c.red })
|
|
||||||
set_hl('MiniStatuslineModeCommand', { fg = c.base03, bg = c.orange })
|
|
||||||
set_hl('MinistatusLineFileName', { fg = c.base0, bg = c.base02 })
|
|
||||||
set_hl('MiniStatuslineDevinfo', { fg = c.base03, bg = c.base1 })
|
|
||||||
set_hl('MiniStatuslineFileinfo', { fg = c.base03, bg = c.base1 })
|
|
||||||
set_hl('MiniStatuslineInactive', { fg = c.base01, bg = c.base03 })
|
|
||||||
|
|
||||||
-- MiniTabLine
|
|
||||||
set_hl('MiniTablineCurrent', { fg = c.base2, bg = c.base1 })
|
|
||||||
set_hl('MiniTablineVisible', { fg = c.base2, bg = c.base03 })
|
|
||||||
set_hl('MiniTablineHidden', { fg = c.base01, bg = c.base03 })
|
|
||||||
set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
|
||||||
set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
|
||||||
set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
|
||||||
set_hl('MiniTablineFill', { link = 'NormalFloat' })
|
|
||||||
set_hl('MiniTablineTabpagesection', { link = 'NormalFloat' })
|
|
||||||
|
|
||||||
-- MiniStarter
|
|
||||||
set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
|
||||||
set_hl('MiniStarterHeader', { fg = c.base00 })
|
|
||||||
set_hl('MiniStarterFooter', { fg = c.base00 })
|
|
||||||
set_hl('MiniStarterItem', { fg = c.base0 })
|
|
||||||
set_hl('MiniStarterItemBullet', { fg = c.blue })
|
|
||||||
set_hl('MiniStarterItemPrefix', { fg = c.blue })
|
|
||||||
set_hl('MiniStarterSection', { link = 'Title' })
|
|
||||||
set_hl('MiniStarterQuery', { fg = c.magenta, bg = 'NONE', bold = true })
|
|
||||||
end
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NavicIconsFile', { fg = c.base00 })
|
|
||||||
set_hl('NavicIconsModule', { link = '@namespace' })
|
|
||||||
set_hl('NavicIconsNamespace', { link = '@namespace' })
|
|
||||||
set_hl('NavicIconsPackage', { link = 'Directory' })
|
|
||||||
set_hl('NavicIconsClass', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsMethod', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsProperty', { link = '@field' })
|
|
||||||
set_hl('NavicIconsField', { link = '@field' })
|
|
||||||
set_hl('NavicIconsConstructor', { link = '@constructor' })
|
|
||||||
set_hl('NavicIconsEnum', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsInterface', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsFunction', { link = 'Function' })
|
|
||||||
set_hl('NavicIconsVariable', { link = 'Identifier' })
|
|
||||||
set_hl('NavicIconsConstant', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsString', { link = 'String' })
|
|
||||||
set_hl('NavicIconsNumber', { link = 'Number' })
|
|
||||||
set_hl('NavicIconsBoolean', { link = 'Boolean' })
|
|
||||||
set_hl('NavicIconsArray', { link = 'Delimiter' })
|
|
||||||
set_hl('NavicIconsObject', { link = '@field' })
|
|
||||||
set_hl('NavicIconsKey', { link = '@field' })
|
|
||||||
set_hl('NavicIconsNull', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsStruct', { link = 'Structure' })
|
|
||||||
set_hl('NavicIconsEvent', { fg = c.base2 })
|
|
||||||
set_hl('NavicIconsOperator', { link = 'Operator' })
|
|
||||||
set_hl('NavicIconsTypeParameter', { link = '@parameter' })
|
|
||||||
set_hl('NavicText', { fg = c.base1 })
|
|
||||||
set_hl('NavicSeparator', { link = 'Keyword' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local blend = require('solarized.utils.colors').blend
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
local alpha = 0.05
|
|
||||||
|
|
||||||
set_hl('NeogitCursorLine', { link = 'CursorLine' })
|
|
||||||
set_hl('NeogitBranch', { fg = c.magenta })
|
|
||||||
set_hl('NeogitRemote', { fg = c.violet })
|
|
||||||
set_hl(
|
|
||||||
'NeogitHunkHeader',
|
|
||||||
{ fg = c.orange, bg = blend(c.orange, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
|
||||||
set_hl('NeogitDiffContextHighlight', { fg = c.base00, bg = c.base03 })
|
|
||||||
set_hl('NeogitDiffContext', { fg = c.base00, bg = c.base03 })
|
|
||||||
set_hl(
|
|
||||||
'NeogitDiffDeleteHighlight',
|
|
||||||
{ fg = c.red, bg = blend(c.red, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitDiffDelete', { fg = c.red })
|
|
||||||
set_hl(
|
|
||||||
'NeogitDiffAddHighlight',
|
|
||||||
{ fg = c.green, bg = blend(c.green, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitDiffAdd', { fg = c.green })
|
|
||||||
end
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NeoTreeNormal', { fg = c.base0, bg = c.base02 })
|
|
||||||
set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' })
|
|
||||||
set_hl('NeoTreeEndOfBuffer', { fg = c.base02 })
|
|
||||||
set_hl('NeoTreeRootName', { link = 'Directory' })
|
|
||||||
set_hl('NeoTreeFileName', { fg = c.base0 })
|
|
||||||
set_hl('NeoTreeFileNameOpened', { link = 'Directory' })
|
|
||||||
set_hl('NeoTreeFloatBorder', { link = 'WinSeparator' })
|
|
||||||
set_hl('NeoTreeFloatTitle', { link = 'Title' })
|
|
||||||
set_hl('NeoTreeGitAdded', { fg = c.add, bg = 'NONE' })
|
|
||||||
set_hl('NeoTreeGitConflict', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitDeleted', { fg = c.delete })
|
|
||||||
set_hl('NeoTreeGitIgnored', { fg = c.base01, italic = true })
|
|
||||||
set_hl('NeoTreeGitModified', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitUnstaged', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitUntracked', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitStaged', { fg = c.add })
|
|
||||||
set_hl('NeoTreeIndentMarker', { fg = c.base01 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local set_hl = require('solarized.utils').set_hl
|
|
||||||
|
|
||||||
set_hl('NoiceFormatProgressTodo', { fg = c.base01, reverse = true })
|
|
||||||
set_hl('NoiceFormatProgressDone', { fg = c.cyan, reverse = true })
|
|
||||||
set_hl('NoiceLspProgressSpinner', { fg = c.cyan })
|
|
||||||
set_hl('NoiceLspProgressClient', { fg = c.blue })
|
|
||||||
set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NotifyBackground', { bg = c.base03 })
|
|
||||||
set_hl('NotifyERRORBorder', { fg = c.error })
|
|
||||||
set_hl('NotifyWARNBorder', { fg = c.warn })
|
|
||||||
set_hl('NotifyINFOBorder', { fg = c.info })
|
|
||||||
set_hl('NotifyDEBUGBorder', { fg = c.magenta })
|
|
||||||
set_hl('NotifyTRACEBorder', { fg = c.violet })
|
|
||||||
set_hl('NotifyERRORIcon', { link = 'NotifyERRORBorder' })
|
|
||||||
set_hl('NotifyWARNIcon', { link = 'NotifyWARNBorder' })
|
|
||||||
set_hl('NotifyINFOIcon', { link = 'NotifyINFOBorder' })
|
|
||||||
set_hl('NotifyDEBUGIcon', { link = 'NotifyDEBUGBorder' })
|
|
||||||
set_hl('NotifyTRACEIcon', { link = 'NotifyTRACEBorder' })
|
|
||||||
set_hl('NotifyERRORTitle', { link = 'NotifyERRORBorder' })
|
|
||||||
set_hl('NotifyWARNTitle', { link = 'NotifyWARNBorder' })
|
|
||||||
set_hl('NotifyINFOTitle', { link = 'NotifyINFOBorder' })
|
|
||||||
set_hl('NotifyDEBUGTitle', { link = 'NotifyDEBUGTitle' })
|
|
||||||
set_hl('NotifyTRACETitle', { link = 'NotifyTRACEBorder' })
|
|
||||||
set_hl('NotifyERRORBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyWARNBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyINFOBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyDEBUGBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyTRACEBody', { link = 'Normal' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- Default highlight
|
|
||||||
set_hl('@lsp.type.class', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.decorator', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.enum', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.enumMember', { link = 'Constant' }) -- Constant
|
|
||||||
set_hl('@lsp.type.function', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.interface', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.macro', { link = 'Macro' }) -- Keyword
|
|
||||||
set_hl('@lsp.type.method', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.namespace', { link = '@namespace' }) -- Namespace
|
|
||||||
set_hl(
|
|
||||||
'@lsp.type.parameter',
|
|
||||||
{ fg = c.base0, italic = true },
|
|
||||||
{ styles = config.styles.parameters }
|
|
||||||
)
|
|
||||||
set_hl('@lsp.type.property', { link = '@field' }) -- Property
|
|
||||||
set_hl('@lsp.type.struct', { link = 'Structure' }) -- Structure
|
|
||||||
set_hl('@lsp.type.type', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.typeParameter', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.variable', { link = 'Identifier' }) -- Identifier
|
|
||||||
|
|
||||||
-- Extra highlight
|
|
||||||
set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' }) -- Constant variables ex: const hello = 'Hello World'
|
|
||||||
set_hl('@lsp.typemod.variable.global', { link = 'Constant' }) -- Global variables ex: HELLO = 'Hello World'
|
|
||||||
set_hl('@lsp.typemod.keyword.documentation', { link = 'Keyword' }) -- documentation comments
|
|
||||||
set_hl('@lsp.typemod.class.documentation', { link = 'Type' }) -- documentation comments
|
|
||||||
set_hl('@lsp.typemod.property.readonly', { link = 'Constant' }) -- Ex: System."out".println()
|
|
||||||
end
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl(
|
|
||||||
'Comment',
|
|
||||||
{ fg = c.base01, italic = true },
|
|
||||||
{ styles = config.styles.comments }
|
|
||||||
) -- any comment
|
|
||||||
set_hl('Constant', { fg = c.cyan }, { styles = config.styles.constants }) -- any constant
|
|
||||||
set_hl('String', { fg = c.cyan }) -- a string constant: "this is a string"
|
|
||||||
set_hl('Character', { link = 'String' }) -- a character constant: 'c', '\n'
|
|
||||||
set_hl('Number', { fg = c.magenta }, { styles = config.styles.numbers }) -- a number constant: 234, 0xff
|
|
||||||
set_hl('Boolean', { link = 'Constant' }) -- a boolean constant: TRUE, false
|
|
||||||
set_hl('Float', { link = 'Number' }) -- a floating point constant: 2.3e10
|
|
||||||
set_hl('Identifier', { fg = c.blue }, { styles = config.styles.variables }) -- any variable name
|
|
||||||
set_hl('Function', { fg = c.blue }, { styles = config.styles.functions }) -- function name (also: methods for classes)
|
|
||||||
set_hl('Statement', { fg = c.green }) -- any statement
|
|
||||||
set_hl('Conditional', { link = 'Statement' }) -- if, then, else, endif, switch, etc.
|
|
||||||
set_hl('Repeat', { link = 'Statement' }) -- for, do, while, etc.
|
|
||||||
set_hl('Label', { link = 'Statement' }) -- case, default, etc.
|
|
||||||
set_hl('Operator', { link = 'Statement' }) -- "sizeof", "+", "*", etc.
|
|
||||||
set_hl(
|
|
||||||
'Keyword',
|
|
||||||
{ fg = c.base1, bold = true },
|
|
||||||
{ styles = config.styles.keywords }
|
|
||||||
) -- any other keyword
|
|
||||||
set_hl('Exception', { link = 'Statement' }) -- try, catch, throw
|
|
||||||
set_hl('PreProc', { fg = c.orange }) -- generic Preprocessor
|
|
||||||
set_hl('Include', { link = 'PreProc' }) -- preprocessor #include
|
|
||||||
set_hl('Define', { link = 'PreProc' }) -- preprocessor #define
|
|
||||||
set_hl('Macro', { link = 'PreProc' }) -- same as Define
|
|
||||||
set_hl('PreCondit', { link = 'PreProc' }) -- preprocessor #if, #else, #endif, etc.
|
|
||||||
set_hl('Type', { fg = c.yellow }, { styles = config.styles.types }) -- int, long, char, etc.
|
|
||||||
set_hl('StorageClass', { fg = c.yellow }) -- static, register, volatile, etc.
|
|
||||||
set_hl('Structure', { fg = c.yellow }) -- struct, union, enum, etc.
|
|
||||||
set_hl('Typedef', { fg = c.yellow }) -- A typedef
|
|
||||||
set_hl('Special', { fg = c.red }) -- special symbol
|
|
||||||
set_hl('SpecialChar', { link = 'Special' }) -- special character in a constant
|
|
||||||
set_hl('Tag', { link = 'Special' }) -- you can use CTRL-] on this
|
|
||||||
set_hl('Delimiter', { fg = c.base00 }) -- character that needs attention
|
|
||||||
set_hl('SpecialComment', { link = 'Special' }) -- special things inside a comment
|
|
||||||
set_hl('Debug', { link = 'Special' }) -- debugging statements
|
|
||||||
set_hl('Underlined', { fg = c.violet }) --text that stands out, HTML links
|
|
||||||
set_hl('Ignore') --left blank, hidden |hl-Ignore|
|
|
||||||
set_hl('Error', { fg = c.error, bold = true }) --any erroneous construct
|
|
||||||
set_hl('Todo', { fg = c.magenta, bold = true }) --anything that needs extra attention; mostly the keywords TODO FIXME and XXX
|
|
||||||
end
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('TelescopeSelection', { link = 'Visual' })
|
|
||||||
set_hl('TelescopeSelectionCaret', { link = 'TelescopeSelection' })
|
|
||||||
set_hl('TelescopeMultiSelection', { link = 'Type' })
|
|
||||||
set_hl('TelescopeMultiIcon', { fg = c.cyan })
|
|
||||||
|
|
||||||
-- "Normal" in the floating windows created by telescope.
|
|
||||||
set_hl(
|
|
||||||
'TelescopeNormal',
|
|
||||||
{ fg = c.base0, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
|
||||||
set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
|
||||||
set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
|
||||||
|
|
||||||
-- Border highlight groups.
|
|
||||||
-- Use TelescopeBorder to override the default.
|
|
||||||
-- Otherwise set them specifically
|
|
||||||
set_hl('TelescopeBorder', { link = 'WinSeparator' })
|
|
||||||
set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
|
||||||
set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
|
||||||
set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
|
||||||
|
|
||||||
-- Title highlight groups.
|
|
||||||
-- Use TelescopeTitle to override the default.
|
|
||||||
-- Otherwise set them specifically
|
|
||||||
set_hl('TelescopeTitle', { fg = c.blue, reverse = true })
|
|
||||||
set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
|
||||||
set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
|
||||||
set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
|
||||||
|
|
||||||
set_hl('TelescopePromptCounter', { link = 'NonText' })
|
|
||||||
|
|
||||||
-- Used for highlighting characters that you match.
|
|
||||||
set_hl('TelescopeMatching', { fg = c.yellow })
|
|
||||||
|
|
||||||
-- Used for the prompt prefix
|
|
||||||
set_hl('TelescopePromptPrefix', { fg = c.magenta })
|
|
||||||
end
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colortool = require('solarized.utils.colors')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
local colorFunc
|
|
||||||
local percentage = 80
|
|
||||||
|
|
||||||
if vim.o.background == 'light' then
|
|
||||||
colorFunc = colortool.lighten
|
|
||||||
else
|
|
||||||
colorFunc = colortool.darken
|
|
||||||
end
|
|
||||||
|
|
||||||
-- TODO: TODO
|
|
||||||
-- WARN: WARN
|
|
||||||
-- TEST: TEST
|
|
||||||
-- PERF: PERF
|
|
||||||
-- NOTE: NOTE
|
|
||||||
-- HACK: HACK
|
|
||||||
|
|
||||||
set_hl('TodoFgTODO', { fg = c.info })
|
|
||||||
set_hl('TodoFgWARN', { fg = c.warning })
|
|
||||||
set_hl('TodoFgTEST', { fg = c.violet })
|
|
||||||
set_hl('TodoFgPERF', { fg = c.magenta })
|
|
||||||
set_hl('TodoFgNOTE', { fg = c.hint })
|
|
||||||
set_hl('TodoFgHACK', { fg = c.cyan })
|
|
||||||
set_hl('TodoFgFIX', { fg = c.error })
|
|
||||||
|
|
||||||
set_hl('TodoSignTODO', { fg = c.info })
|
|
||||||
set_hl('TodoSignWARN', { fg = c.warning })
|
|
||||||
set_hl('TodoSignTEST', { fg = c.violet })
|
|
||||||
set_hl('TodoSignPERF', { fg = c.magenta })
|
|
||||||
set_hl('TodoSignNOTE', { fg = c.hint })
|
|
||||||
set_hl('TodoSignHACK', { fg = c.cyan })
|
|
||||||
set_hl('TodoSignFIX', { fg = c.error })
|
|
||||||
|
|
||||||
set_hl('TodoBgTODO', { fg = c.info, bg = colorFunc(c.info, percentage) })
|
|
||||||
set_hl(
|
|
||||||
'TodoBgWARN',
|
|
||||||
{ fg = c.warning, bg = colorFunc(c.warning, percentage) }
|
|
||||||
)
|
|
||||||
set_hl('TodoBgTEST', { fg = c.violet, bg = colorFunc(c.violet, percentage) })
|
|
||||||
set_hl(
|
|
||||||
'TodoBgPERF',
|
|
||||||
{ fg = c.magenta, bg = colorFunc(c.magenta, percentage) }
|
|
||||||
)
|
|
||||||
set_hl('TodoBgNOTE', { fg = c.hint, bg = colorFunc(c.hint, percentage) })
|
|
||||||
set_hl('TodoBgHACK', { fg = c.cyan, bg = colorFunc(c.cyan, percentage) })
|
|
||||||
set_hl('TodoBgFIX', { fg = c.error, bg = colorFunc(c.error, percentage) })
|
|
||||||
end
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local base04 = darken(c.base03, 10)
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
|
||||||
set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
|
||||||
-- set_hl('NvimTreeSymlinkFolderName') -- (Directory)
|
|
||||||
set_hl('NvimTreeFolderName', { fg = c.base0 }) -- (Directory)
|
|
||||||
set_hl('NvimTreeRootFolder', { link = 'Title' })
|
|
||||||
set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
|
||||||
-- set_hl('NvimTreeOpenedFolderIcon') -- (NvimTreeFolderIcon)
|
|
||||||
-- set_hl('NvimTreeClosedFolderIcon') -- (NvimTreeFolderIcon)
|
|
||||||
-- set_hl('NvimTreeFileIcon')
|
|
||||||
set_hl('NvimTreeEmptyFolderName', { fg = c.base0 }) -- (Directory)
|
|
||||||
-- set_hl('NvimTreeOpenedFolderName') -- (Directory)
|
|
||||||
set_hl('NvimTreeExecFile', { link = 'Function' })
|
|
||||||
set_hl('NvimTreeOpenedFile', { fg = c.blue, bold = true })
|
|
||||||
set_hl('NvimTreeModifiedFile', { fg = c.change })
|
|
||||||
set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
|
||||||
-- set_hl('NvimTreeImageFile')
|
|
||||||
set_hl('NvimTreeIndentMarker', { fg = c.base01 })
|
|
||||||
-- set_hl('NvimTreeLspDiagnosticsError') -- (DiagnosticError)
|
|
||||||
-- set_hl('NvimTreeLspDiagnosticsWarning') -- (DiagnosticWarn)
|
|
||||||
set_hl('NvimTreeLspDiagnosticsInformation') -- (DiagnosticInfo)
|
|
||||||
set_hl('NvimTreeLspDiagnosticsHint') -- (DiagnosticHint)
|
|
||||||
set_hl('NvimTreeGitDirty', { fg = c.change })
|
|
||||||
set_hl('NvimTreeGitStaged', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitMerge', { fg = c.change })
|
|
||||||
set_hl('NvimTreeGitRenamed', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitNew', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitDeleted', { fg = c.delete })
|
|
||||||
-- set_hl('NvimTreeGitIgnored') -- (Comment)
|
|
||||||
-- set_hl('NvimTreeWindowPicker')
|
|
||||||
set_hl(
|
|
||||||
'NvimTreeNormal',
|
|
||||||
{ fg = c.base0, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
|
||||||
set_hl('NvimTreeEndOfBuffer', { fg = base04 }) -- (NonText)
|
|
||||||
-- set_hl('NvimTreeCursorLine') -- (CursorLine)
|
|
||||||
-- set_hl('NvimTreeCursorLineNr') -- (CursorLineNr)
|
|
||||||
-- set_hl('NvimTreeLineNr') -- (LineNr)
|
|
||||||
set_hl(
|
|
||||||
'NvimTreeWinSeparator',
|
|
||||||
{ fg = base04, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- (WinSeparator)
|
|
||||||
-- set_hl('NvimTreeCursorColumn') -- (CursorColumn)
|
|
||||||
--
|
|
||||||
-- There are also links for file highlight with git properties, linked to their
|
|
||||||
-- Git equivalent:
|
|
||||||
--
|
|
||||||
-- set_hl('NvimTreeFileDirty') -- (NvimTreeGitDirty)
|
|
||||||
-- set_hl('NvimTreeFileStaged') -- (NvimTreeGitStaged)
|
|
||||||
-- set_hl('NvimTreeFileMerge') -- (NvimTreeGitMerge)
|
|
||||||
-- set_hl('NvimTreeFileRenamed') -- (NvimTreeGitRenamed)
|
|
||||||
-- set_hl('NvimTreeFileNew') -- (NvimTreeGitNew)
|
|
||||||
-- set_hl('NvimTreeFileDeleted') -- (NvimTreeGitDeleted)
|
|
||||||
-- set_hl('NvimTreeFileIgnored') -- (NvimTreeGitIgnored)
|
|
||||||
-- set_hl('NvimTreeLiveFilterPrefix')
|
|
||||||
-- set_hl('NvimTreeLiveFilterValue')
|
|
||||||
-- set_hl('NvimTreeBookmark')
|
|
||||||
end
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
--[[ Highlight capture names as of nvim-treesitter commit `6806d7a` ]]--
|
|
||||||
|
|
||||||
-- Identifiers
|
|
||||||
set_hl('@variable', { link = 'Identifier' }) -- various variable names
|
|
||||||
set_hl('@variable.builtin', { link = 'Identifier' }) -- built-in variable names (e.g. `this`)
|
|
||||||
set_hl(
|
|
||||||
'@variable.parameter',
|
|
||||||
{ fg = c.base0, italic = true },
|
|
||||||
{ styles = config.styles.parameters }
|
|
||||||
) -- parameters of a function
|
|
||||||
set_hl('@variable.member', { fg = c.blue }) -- object and struct fields
|
|
||||||
set_hl('@constant', { link = 'Constant' }) -- constant identifiers
|
|
||||||
set_hl('@constant.builtin', { link = 'Constant' }) -- built-in constant values
|
|
||||||
set_hl('@constant.macro', { link = 'Constant' }) -- constants defined by the preprocessor
|
|
||||||
set_hl('@module', { fg = c.violet }) -- modules or namespaces
|
|
||||||
set_hl('@module.builtin', { fg = c.cyan }) -- built-in modules or namespaces
|
|
||||||
set_hl('@label', { link = 'Label' }) -- GOTO and other labels (e.g. `label:` in C), including heredoc labels
|
|
||||||
|
|
||||||
-- Literals
|
|
||||||
set_hl('@string', { link = 'String' }) -- string literals
|
|
||||||
set_hl('@string.documentation', { link = 'Comment' }) -- string documenting code (e.g. Python docstrings)
|
|
||||||
set_hl('@string.regexp', { fg = c.violet }) -- regular expressions
|
|
||||||
set_hl('@string.escape', { link = 'Keyword' }) -- escape sequences
|
|
||||||
set_hl('@string.special', { link = 'SpecialChar' }) -- other special strings (e.g. dates)
|
|
||||||
set_hl('@string.special.symbol', { fg = c.violet }) -- symbols or atoms
|
|
||||||
set_hl('@string.special.url', { link = 'Underlined' }) -- URIs (e.g. hyperlinks)
|
|
||||||
set_hl('@string.special.path', { link = 'Underlined'}) -- filenames
|
|
||||||
set_hl('@character', { link = 'String' }) -- character literals
|
|
||||||
set_hl('@character.special', { link = '@string.special' }) -- special characters (e.g. wildcards)
|
|
||||||
set_hl('@boolean', { link = 'Boolean' }) -- boolean literals
|
|
||||||
set_hl('@number', { link = 'Number' }) -- numeric literals
|
|
||||||
set_hl('@number.float', { link = 'Float' }) -- floating-point number literals
|
|
||||||
|
|
||||||
-- Types
|
|
||||||
set_hl('@type', { link = 'Type' }) -- type or class definitions and annotations
|
|
||||||
set_hl('@type.builtin', { link = 'Type' }) -- built-in types
|
|
||||||
set_hl('@type.definition', { link = 'Type' }) -- identifiers in type definitions (e.g. `typedef <type> <identifier>` in C)
|
|
||||||
set_hl('@type.qualifier', { link = 'Keyword' }) -- type qualifiers (e.g. `const`)
|
|
||||||
set_hl('@attribute', { link = 'Function' }) -- attribute annotations (e.g. Python decorators)
|
|
||||||
set_hl('@property', { link = '@variable.member' }) -- the key in key/value pairs
|
|
||||||
|
|
||||||
-- Functions
|
|
||||||
set_hl('@function', { link = 'Function' }) -- function definitions
|
|
||||||
set_hl('@function.builtin', { link = 'Function' }) -- built-in functions
|
|
||||||
set_hl('@function.call', { link = 'Function' }) -- function calls
|
|
||||||
set_hl('@function.macro', { link = 'Function' }) -- preprocessor macros
|
|
||||||
set_hl('@function.method', { link = 'Function' }) -- method definitions
|
|
||||||
set_hl('@function.method.call', { link = 'Function' }) -- method calls
|
|
||||||
set_hl('@constructor', { link = 'Function' }) -- constructor calls and definitions
|
|
||||||
set_hl('@operator', { link = 'Operator' }) -- symbolic operators (e.g. `+` / `*`)
|
|
||||||
|
|
||||||
-- Keywords
|
|
||||||
set_hl('@keyword', { link = 'Keyword' }) -- keywords not fitting into specific categories
|
|
||||||
set_hl('@keyword.coroutine', { link = 'Statement' }) -- keywords related to coroutines (e.g. `go` in Go, `async/await` in Python)
|
|
||||||
set_hl('@keyword.function', { link = 'Keyword' }) -- keywords that define a function (e.g. `func` in Go, `def` in Python)
|
|
||||||
set_hl('@keyword.operator', { link = 'Operator' }) -- operators that are English words (e.g. `and` / `or`)
|
|
||||||
set_hl('@keyword.import', { link = 'Include' }) -- keywords for including modules (e.g. `import` / `from` in Python)
|
|
||||||
set_hl('@keyword.storage', { link = 'StorageClass' }) -- modifiers that affect storage in memory or life-time
|
|
||||||
set_hl('@keyword.repeat', { link = 'Repeat' }) -- keywords related to loops (e.g. `for` / `while`)
|
|
||||||
set_hl('@keyword.return', { link = 'Statement' }) -- keywords like `return` and `yield`
|
|
||||||
set_hl('@keyword.debug', { link = 'Debug' }) -- keywords related to debugging
|
|
||||||
set_hl('@keyword.exception', { link = 'Exception' }) -- keywords related to exceptions (e.g. `throw` / `catch`)
|
|
||||||
set_hl('@keyword.conditional', { link = 'Conditional' }) -- keywords related to conditionals (e.g. `if` / `else`)
|
|
||||||
set_hl('@keyword.conditional.ternary', { link = 'Conditional' }) -- ternary operator (e.g. `?` / `:`)
|
|
||||||
set_hl('@keyword.directive', { link = 'PreProc' }) -- various preprocessor directives & shebangs
|
|
||||||
set_hl('@keyword.directive.define', { link = 'Define' }) -- preprocessor definition directives
|
|
||||||
|
|
||||||
-- Punctuations
|
|
||||||
set_hl('@punctuation.delimiter', { link = 'Delimiter' }) -- delimiters (e.g. `;` / `.` / `,`)
|
|
||||||
set_hl('@punctuation.bracket', { link = 'Delimiter' }) -- brackets (e.g. `()` / `{}` / `[]`)
|
|
||||||
set_hl('@punctuation.special', { link = 'Delimiter' }) -- special symbols (e.g. `{}` in string interpolation)
|
|
||||||
|
|
||||||
-- Comments
|
|
||||||
set_hl('@comment', { link = 'Comment' }) -- line and block comments
|
|
||||||
set_hl('@comment.documentation', { link = 'Comment' }) -- comments documenting code
|
|
||||||
set_hl('@comment.error', { fg = c.error }) -- error-type comments (e.g. `ERROR`, `FIXME`, `DEPRECATED:`)
|
|
||||||
set_hl('@comment.warning', { fg = c.warning }) -- warning-type comments (e.g. `WARNING:`, `FIX:`, `HACK:`)
|
|
||||||
set_hl('@comment.todo', { link = 'Todo' }) -- todo-type comments (e.g. `TODO:`, `WIP:`, `FIXME:`)
|
|
||||||
set_hl('@comment.note', { fg = c.info }) -- note-type comments (e.g. `NOTE:`, `INFO:`, `XXX`)
|
|
||||||
|
|
||||||
-- Markups
|
|
||||||
set_hl('@markup.strong', { fg = c.yellow }) -- bold text
|
|
||||||
set_hl('@markup.italic', { fg = c.yellow, italic = true }) -- italic text
|
|
||||||
set_hl('@markup.strikethrough', { fg = c.base01, strikethrough = true }) -- struck-through text
|
|
||||||
set_hl('@markup.underline', { link = 'Underlined' }) -- underlined text (only for literal underline markup!)
|
|
||||||
set_hl('@markup.heading', { link = 'Title' }) -- headings, titles (including markers)
|
|
||||||
set_hl('@markup.quote', { fg = c.cyan }) -- block quotes
|
|
||||||
set_hl('@markup.math', { link = 'Number' }) -- math environments (e.g. `$ ... $` in LaTeX)
|
|
||||||
set_hl('@markup.environment', { fg = c.base0 }) -- environments (e.g. in LaTeX)
|
|
||||||
set_hl('@markup.link', { link = 'Underlined' }) -- text references, footnotes, citations, etc.
|
|
||||||
set_hl('@markup.link.label', { link = 'Constant' }) -- link, reference descriptions
|
|
||||||
set_hl('@markup.link.url', { link = 'Underlined' }) -- URL-style links
|
|
||||||
set_hl('@markup.raw', { fg = c.base0 }) -- literal or verbatim text (e.g., inline code)
|
|
||||||
set_hl('@markup.raw.block', { fg = c.base0 }) -- literal or verbatim text as a stand-alone block (use priority 90 for blocks with injections)
|
|
||||||
set_hl('@markup.list', { link = 'Delimiter' }) -- list markers
|
|
||||||
set_hl('@markup.list.checked', { link = 'Delimiter' }) -- checked todo-style list markers
|
|
||||||
set_hl('@markup.list.unchecked', { link = 'Delimiter' }) -- unchecked todo-style list markers
|
|
||||||
|
|
||||||
-- Diffs
|
|
||||||
set_hl('@diff.plus', { fg = c.add }) -- added text (for diff files)
|
|
||||||
set_hl('@diff.minus', { fg = c.delete }) -- deleted text (for diff files)
|
|
||||||
set_hl('@diff.delta', { fg = c.change }) -- changed text (for diff files)
|
|
||||||
|
|
||||||
-- Tags
|
|
||||||
set_hl('@tag', { fg = c.blue, bold = true }) -- XML-style tag names (and similar)
|
|
||||||
set_hl('@tag.attribute', { fg = c.violet }) -- XML-style tag attributes
|
|
||||||
set_hl('@tag.delimiter', { fg = c.base01 }) -- XML-style tag delimiters
|
|
||||||
end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('WhichKey', { fg = c.base0 }) -- the key
|
|
||||||
set_hl('WhichKeyGroup', { fg = c.blue }) -- a group
|
|
||||||
set_hl('WhichKeySeparator', { fg = c.magenta }) -- the separator between the key and its label
|
|
||||||
set_hl('WhichKeyDesc', { fg = c.base2 }) -- the label of the key
|
|
||||||
-- set_hl('WhichKeyFloat') -- Normal in the popup window
|
|
||||||
-- set_hl('WhichKeyBorder', { link = 'WinSeparator' })
|
|
||||||
-- set_hl('WhichKeyValue') -- used by plugins that provide values
|
|
||||||
end
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- When `termguicolors` is enabled, this plugin is designed to work automatically,
|
|
||||||
-- deriving colours from the user's theme.
|
|
||||||
--
|
|
||||||
-- My attempt to fix bufferline on transparent background
|
|
||||||
if config.transparent then
|
|
||||||
set_hl('BufferLineFill', { bg = c.base02 })
|
|
||||||
set_hl('BufferLineBufferSelected', { fg = c.base2, italic = true })
|
|
||||||
set_hl('BufferLineSeparator', { fg = c.base02 })
|
|
||||||
set_hl('BufferLineSeparatorSelected', { fg = c.base02 })
|
|
||||||
set_hl('BufferLineSeparatorVisible', { fg = c.base02 })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- set_hl('CmpItemAbbr') -- Highlight group for unmatched characters of each completion field.
|
|
||||||
set_hl('CmpItemAbbrDeprecated', { fg = c.base1, strikethrough = true }) -- Highlight group for unmatched characters of each deprecated completion field.
|
|
||||||
set_hl('CmpItemAbbrMatch', { link = 'IncSearch' }) -- Highlight group for matched characters of each completion field.
|
|
||||||
set_hl('CmpItemAbbrMatchFuzzy', { link = 'IncSearch' }) -- Highlight group for fuzzy-matched characters of each completion field.
|
|
||||||
-- set_hl('CmpItemKind') -- Highlight group for the kind of the field.
|
|
||||||
-- set_hl('CmpItemMenu') -- The menu field's highlight group.
|
|
||||||
|
|
||||||
set_hl('CmpItemKindReference', { link = 'Underlined' })
|
|
||||||
set_hl('CmpItemKindUnit', { link = 'Number' })
|
|
||||||
set_hl('CmpItemKindEnum', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindField', { link = '@field' })
|
|
||||||
set_hl('CmpItemKindClass', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindFile', { fg = c.base0 })
|
|
||||||
set_hl('CmpItemKindProperty', { link = '@field' })
|
|
||||||
set_hl('CmpItemKindMethod', { link = 'Function' })
|
|
||||||
set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
|
||||||
set_hl('CmpItemKindFolder', { link = 'Directory' })
|
|
||||||
set_hl('CmpItemKindSnippet', { link = 'Keyword' })
|
|
||||||
set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
|
||||||
set_hl('CmpItemKindStruct', { link = 'Structure' })
|
|
||||||
set_hl('CmpItemKindInterface', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
|
||||||
set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('CmpItemKindEvent', { fg = c.base2 })
|
|
||||||
set_hl('CmpItemKindConstructor', { link = '@constructor' })
|
|
||||||
set_hl('CmpItemKindConstant', { link = 'Constant' })
|
|
||||||
set_hl('CmpItemKindModule', { link = '@namespace' })
|
|
||||||
set_hl('CmpItemKindValue', { fg = c.base2 })
|
|
||||||
set_hl('CmpItemKindColor', { fg = c.magenta })
|
|
||||||
set_hl('CmpItemKindFunction', { link = 'Function' })
|
|
||||||
set_hl('CmpItemKindText', { link = 'String' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- general
|
|
||||||
set_hl('DashboardHeader', { fg = c.red })
|
|
||||||
set_hl('DashboardFooter', { fg = c.violet })
|
|
||||||
|
|
||||||
-- Hyper
|
|
||||||
set_hl('DashboardProjectTitle', { fg = c.blue })
|
|
||||||
set_hl('DashboardProjectTitleIcon', { link = 'DashboardProjectTitle' })
|
|
||||||
set_hl('DashboardProjectIcon', { link = 'Directory' })
|
|
||||||
set_hl('DashboardMruTitle', { link = 'DashboardProjectTitle' })
|
|
||||||
set_hl('DashboardMruIcon', { link = 'DashboardMruTitle' })
|
|
||||||
set_hl('DashboardFiles', { fg = c.base0 })
|
|
||||||
set_hl('DashboardShotCutIcon', { fg = c.magenta })
|
|
||||||
|
|
||||||
-- Doom theme
|
|
||||||
set_hl('DashboardDesc', { fg = c.base00 })
|
|
||||||
set_hl('DashboardKey', { fg = c.magenta })
|
|
||||||
set_hl('DashboardIcon', { link = 'Directory' })
|
|
||||||
set_hl('DashboardShotCut', { fg = c.base00 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('DiagnosticError', { fg = c.error }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticWarn', { fg = c.warning }) --Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticInfo', { fg = c.info }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticHint', { fg = c.hint }) -- Used as the base highlight group.(except Underline)
|
|
||||||
set_hl('DiagnosticOk', { fg = c.cyan }) -- Used as the base highlight group.(except Underline)
|
|
||||||
-- set_hl('DiagnosticVirtualTextError') -- Used for "Error" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextWarn') -- Used for "Warn" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextInfo') -- Used for "Info" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextHint') -- Used for "Hint" diagnostic virtual text.
|
|
||||||
-- set_hl('DiagnosticVirtualTextOk') -- Used for "Ok" diagnostic virtual text.
|
|
||||||
set_hl('DiagnosticUnderlineError', { fg = c.error, sp = c.error }) --Used to underline "Error" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineWarn', { fg = c.warning, sp = c.warning }) -- Used to underline "Warn" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineInfo', { fg = c.info, sp = c.info }) -- Used to underline "Info" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineHint', { fg = c.hint, sp = c.hint }) -- Used to underline "Hint" diagnostics.
|
|
||||||
set_hl('DiagnosticUnderlineOk', { fg = c.cyan, sp = c.cyan }) -- Used to underline "Ok" diagnostics.
|
|
||||||
-- set_hl('DiagnosticFloatingError') -- Used to color "Error" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingWarn') -- Used to color "Warn" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingInfo') -- Used to color "Info" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingHint') -- Used to color "Hint" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticFloatingOk') -- Used to color "Ok" diagnostic messages in diagnostics float.
|
|
||||||
-- set_hl('DiagnosticSignError') -- Used for "Error" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticSignWarn') -- Used for "Warn" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticSignInfo') -- Used for "Info" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticSignHint') -- Used for "Hint" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticSignOk') -- Used for "Ok" signs in sign column.
|
|
||||||
-- set_hl('DiagnosticDeprecated') -- Used for deprecated or obsolete code.
|
|
||||||
-- set_hl('DiagnosticUnnecessary') -- Used for unnecessary or unused code.
|
|
||||||
end
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local base04 = darken(c.base03, 10)
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
if config.transparent then
|
|
||||||
set_hl('ColorColumn', { bg = c.base02 }) -- used for columns
|
|
||||||
else
|
|
||||||
set_hl('ColorColumn', { bg = base04 }) -- used for columns
|
|
||||||
end
|
|
||||||
|
|
||||||
set_hl('Conceal', { fg = c.blue }) -- placeholder characters
|
|
||||||
set_hl('CurSearch', { fg = c.base2, bg = c.base02 }) -- highlight under cursor
|
|
||||||
set_hl('Cursor', { fg = c.base03, bg = c.cyan }) -- character under cursor
|
|
||||||
set_hl('lCursor', { link = 'Cursor' }) -- character under the cursor
|
|
||||||
set_hl('CursorIM', { link = 'Cursor' }) -- like cursor, but IME mode
|
|
||||||
set_hl('CursorColumn', { link = 'ColorColumn' }) -- screen-column at the cursor
|
|
||||||
set_hl('CursorLine') -- screen-line at the cursor
|
|
||||||
set_hl('Directory', { fg = c.orange }) -- directory names
|
|
||||||
set_hl('DiffAdd', { fg = c.add }) -- Added line
|
|
||||||
set_hl('DiffChange', { fg = c.change }) -- Changed line
|
|
||||||
set_hl('DiffDelete', { fg = c.base03, bg = c.delete }) -- Deleted line
|
|
||||||
set_hl('DiffText', { fg = c.blue, reverse = true }) -- Changed Text
|
|
||||||
set_hl('EndOfBuffer', { fg = c.base03 }) -- Filler lines (~)
|
|
||||||
set_hl('TermCursor', { link = 'Cursor' }) -- Cursor in a focused terminal
|
|
||||||
set_hl('TermCursorNC', { fg = c.base03, bg = c.base0 }) -- Cursor in an unfocused terminal
|
|
||||||
set_hl('ErrorMsg', { fg = c.error }) -- Error messages on the command line
|
|
||||||
set_hl(
|
|
||||||
'WinSeparator',
|
|
||||||
{ fg = c.cyan, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Separators between window splits
|
|
||||||
set_hl('Folded', { fg = c.base0, bg = c.base02 }) -- Line used for closed folds
|
|
||||||
set_hl('FoldColumn', { fg = c.base0, bg = base04 }) -- 'foldcolumn'
|
|
||||||
set_hl(
|
|
||||||
'SignColumn',
|
|
||||||
{ fg = c.base0, bg = c.base03 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Column were signs are displayed
|
|
||||||
set_hl(
|
|
||||||
'IncSearch',
|
|
||||||
{ fg = c.base3, bg = base04, bold = true },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- 'incsearch' highlighting, also for the text replaced
|
|
||||||
set_hl('Substitute', { fg = c.orange, reverse = true }) -- :substitute replacement text highlight
|
|
||||||
set_hl(
|
|
||||||
'LineNr',
|
|
||||||
{ fg = c.base01, bg = c.base03 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Line number for ":number" and ":#" commands
|
|
||||||
set_hl('LineNrAbove', { link = 'LineNr' }) -- Line number, above the cursor line
|
|
||||||
set_hl('LineNrBelow', { link = 'LineNr' }) -- Line number, below the cursor
|
|
||||||
set_hl(
|
|
||||||
'CursorLineNr',
|
|
||||||
{ fg = c.base2, bg = c.base03 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Like LineNr when 'cursorline' is set
|
|
||||||
set_hl('CursorLineFold', { link = 'FoldColumn' }) -- Like FoldColumn when 'cursorline' is set
|
|
||||||
set_hl('CursorLineSign', { link = 'SignColumn' }) -- Like SignColumn when 'cursorline' is set
|
|
||||||
set_hl('MatchParen', { fg = c.base2 }) -- Character under the cursor or just before it
|
|
||||||
set_hl('ModeMsg', { link = 'Normal' }) -- 'showmode' message (e.g., "-- INSERT --")
|
|
||||||
set_hl('MsgArea', { link = 'Normal' }) -- 'Area for messages and cmdline'
|
|
||||||
set_hl('MsgSeparator', { link = 'Normal' }) -- Separator for scrolled messages msgsep.
|
|
||||||
set_hl('MoreMsg', { fg = c.cyan }) -- more-prompt
|
|
||||||
set_hl('NonText', { fg = c.base00 }) -- '@' at the end of the window
|
|
||||||
set_hl(
|
|
||||||
'Normal',
|
|
||||||
{ fg = c.base0, bg = c.base03 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Normal text
|
|
||||||
set_hl('NormalFloat', { fg = c.base0, bg = base04 }) -- Normal text in floating windows
|
|
||||||
set_hl('FloatBorder', { link = 'WinSeparator' }) -- Border of floating windows.
|
|
||||||
set_hl('FloatTitle', { fg = c.orange }) -- Title of float windows.
|
|
||||||
set_hl('NormalNC', { link = 'Normal' }) -- Normal text in non-current windows.
|
|
||||||
set_hl(
|
|
||||||
'Pmenu',
|
|
||||||
{ fg = c.base0, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- Popup menu: Normal item
|
|
||||||
set_hl('PmenuSel', { fg = c.base2 }) -- Popup menu: Selected item
|
|
||||||
set_hl('PmenuKind', { link = 'Pmenu' }) -- Popup menu: Normal item kind
|
|
||||||
set_hl('PmenuKindSel', { link = 'PmenuSel' }) -- Popup menu: Selected item kind
|
|
||||||
set_hl('PmenuExtra', { link = 'Pmenu' }) -- Popup menu: Normal item extra text
|
|
||||||
set_hl('PmenuExtraSel', { link = 'PmenuSel' }) -- Popup menu: Selected item extra text
|
|
||||||
set_hl('PmenuSbar', { bg = base04 }) -- Popup menu: Scrollbar
|
|
||||||
set_hl('PmenuThumb', { bg = c.base1 }) -- Popup menu: Thumb of the scrollbar
|
|
||||||
set_hl('Question', { fg = c.cyan, bg = c.base03 }) -- hit-enter prompt and yes/no questions.
|
|
||||||
set_hl('QuickFixLine', { fg = c.base0, bg = c.base03 }) -- Current quickfix item in the quickfix window
|
|
||||||
set_hl('Search', { bg = c.base02 }) -- Last search pattern highlighting
|
|
||||||
set_hl('SpecialKey', { fg = c.red }) -- Unprintable characters: Text displayed differently from what it really is.
|
|
||||||
set_hl('SpellBad', { fg = c.error, sp = c.error, underline = true }) -- Word that is not recognized by the spellchecker.
|
|
||||||
set_hl('SpellCap', { fg = c.hint, sp = c.hint, underline = true }) -- Word that should start with a capital
|
|
||||||
set_hl('SpellLocal', { fg = c.info, sp = c.info, underline = true }) -- Word that is recognized by the spellchecker as one that is used in another region
|
|
||||||
set_hl('SpellRare', { fg = c.warning, sp = c.warning, underline = true }) -- Word that is recognized by the spellchecker as one that is hardly ever used.
|
|
||||||
set_hl('StatusLine', { fg = c.base1, bg = base04 }) -- Status line of current window.
|
|
||||||
set_hl('StatusLineNC', { fg = c.base00, bg = base04 }) -- Status lines of not-current windows.
|
|
||||||
set_hl('TabLine', { bg = base04 }) -- Tab pages line, not active tab page label.
|
|
||||||
set_hl('TabLineFill', { fg = c.base0, bg = base04 }) -- Tab pages line, where there are no labels.
|
|
||||||
set_hl('TabLineSel', { fg = c.base2, bg = c.base03 }) -- Tab pages line, active tab page label.
|
|
||||||
set_hl('Title', { fg = c.orange }) -- Titles for output from ":set all", ":autocmd" etc.
|
|
||||||
set_hl('Visual', { bg = c.base02 }) -- Visual mode selection.
|
|
||||||
set_hl('VisualNOS', { link = 'Visual' }) -- Visual mode selection when vim is "Not Owning the Selection".
|
|
||||||
set_hl('WarningMsg', { fg = c.warning }) -- Warning messages.
|
|
||||||
set_hl('Whitespace', { fg = c.base01 }) -- "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'.
|
|
||||||
set_hl('WildMenu', { bg = c.base02 }) -- Current match in 'wildmenu' completion.
|
|
||||||
set_hl('WinBar', { link = 'Pmenu' }) -- Window bar of current window.
|
|
||||||
set_hl('WinBarNC', { link = 'WinBar' }) -- Window bar of not-current windows.
|
|
||||||
end
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('GitSignsAdd', { fg = c.add }) -- Used for the text of 'add' signs
|
|
||||||
set_hl('GitSignsChange', { fg = c.change }) -- Used for the text of 'change' signs
|
|
||||||
set_hl('GitSignsDelete', { fg = c.delete }) -- Used for the text of 'delete' signs
|
|
||||||
end
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('HopNextKey', { fg = c.magenta })
|
|
||||||
set_hl('HopNextKey1', { fg = c.blue })
|
|
||||||
set_hl('HopNextKey2', { fg = '#1b6294' })
|
|
||||||
set_hl('HopUnmatched', { fg = c.base01 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colortool = require('solarized.utils.colors')
|
|
||||||
local darken = colortool.darken
|
|
||||||
local lighten = colortool.lighten
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
if vim.o.background == 'dark' then
|
|
||||||
set_hl('IndentBlanklineChar', { fg = darken(c.green, 20) }) -- Highlight of indent character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineContextChar', { fg = c.green }) -- Highlight of indent character when base of current context. Default: Label
|
|
||||||
set_hl(
|
|
||||||
'IndentBlanklineContextSpaceChar',
|
|
||||||
{ link = 'IndentBlanklineContextChar' }
|
|
||||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
|
||||||
set_hl('IblIndent', { fg = darken(c.green, 20), nocombine = true })
|
|
||||||
set_hl('IblScope', { fg = c.green, nocombine = true })
|
|
||||||
else
|
|
||||||
set_hl('IndentBlanklineChar', { fg = lighten(c.blue, 20) }) -- Highlight of indent character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
|
||||||
set_hl('IndentBlanklineContextChar', { fg = c.blue }) -- Highlight of indent character when base of current context. Default: Label
|
|
||||||
set_hl(
|
|
||||||
'IndentBlanklineContextSpaceChar',
|
|
||||||
{ link = 'IndentBlanklineContextChar' }
|
|
||||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
|
||||||
set_hl('IblIndent', { fg = lighten(c.blue, 20), nocombine = true })
|
|
||||||
set_hl('IblScope', { fg = c.blue, nocombine = true })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- set_hl('IndentBlanklineSpaceCharBlankline', {}) -- Highlight of space character on blank lines. Default: Whitespace
|
|
||||||
-- set_hl('IndentBlanklineContextStart', {}) -- Highlight of the first line of the current context. Default: Label
|
|
||||||
end
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colortool = require('solarized.utils.colors')
|
|
||||||
local darken = colortool.darken
|
|
||||||
local lighten = colortool.lighten
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('LspReferenceText', { link = 'Visual' }) -- used for highlighting "text" references
|
|
||||||
set_hl('LspReferenceRead', { link = 'Visual' }) -- used for highlighting "read" references
|
|
||||||
set_hl('LspReferenceWrite', { link = 'Visual' }) -- used for highlighting "write" references
|
|
||||||
|
|
||||||
if vim.o.background == 'dark' then
|
|
||||||
set_hl('LspInlayHint', { fg = darken(c.yellow, 20) }) -- used for highlighting inlay hints
|
|
||||||
else
|
|
||||||
set_hl('LspInlayHint', { fg = lighten(c.yellow, 20) })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if you want to me to enable the highlight groups bellow, please send a screenshot for me to see how
|
|
||||||
-- they look like or how to config for me to test.
|
|
||||||
|
|
||||||
-- set_hl('LspCodelens') -- Used to color the virtual text of the codelens.
|
|
||||||
-- set_hl('LspCodeLensSeparator') -- Used to color the separator between two or more code lenses.
|
|
||||||
-- set_hl('LspSignatureActiveParameter') -- Used to highlight the active parameter in the signature help. See
|
|
||||||
end
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- Float window
|
|
||||||
set_hl('SagaNormal', { link = 'Pmenu' })
|
|
||||||
set_hl(
|
|
||||||
'TitleString',
|
|
||||||
{ fg = c.orange, bold = true, bg = c.base02 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Outline
|
|
||||||
set_hl('OutlineIndent', { fg = c.green })
|
|
||||||
|
|
||||||
set_hl('SagaWinbarModule', { link = '@namespace' })
|
|
||||||
set_hl('SagaWinbarInterface', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarConstructor', { link = '@constructor' })
|
|
||||||
set_hl('SagaWinbarStruct', { link = 'Structure' })
|
|
||||||
set_hl('SagaWinbarObject', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarUnit', { link = 'Number' })
|
|
||||||
set_hl('SagaWinbarFile', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarSnippet', { link = 'Keyword' })
|
|
||||||
set_hl('SagaWinbarText', { fg = c.base1 })
|
|
||||||
set_hl('SagaWinbarTypeAlias', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarEvent', { fg = c.base2 })
|
|
||||||
set_hl('SagaWinbarParameter', { link = '@parameter' })
|
|
||||||
set_hl('SagaWinbarKey', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarValue', { fg = c.base2 })
|
|
||||||
set_hl('SagaWinbarMacro', { link = 'Macro' })
|
|
||||||
set_hl('SagaWinbarNumber', { link = 'Number' })
|
|
||||||
set_hl('SagaWinbarConstant', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarFunction', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarEnum', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarField', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarProperty', { link = '@field' })
|
|
||||||
set_hl('SagaWinbarMethod', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarClass', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarFolder', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarPackage', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarStaticMethod', { link = 'Function' })
|
|
||||||
set_hl('SagaWinbarTypeParameter', { link = 'Type' })
|
|
||||||
set_hl('SagaWinbarEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarOperator', { link = 'Operator' })
|
|
||||||
set_hl('SagaWinbarNull', { link = 'Constant' })
|
|
||||||
set_hl('SagaWinbarNamespace', { link = '@namespace' })
|
|
||||||
set_hl('SagaWinbarArray', { link = 'Delimiter' })
|
|
||||||
set_hl('SagaWinbarBoolean', { link = 'Boolean' })
|
|
||||||
set_hl('SagaWinbarString', { link = 'String' })
|
|
||||||
set_hl('SagaWinbarVariable', { link = 'Identifier' })
|
|
||||||
set_hl('SagaWinbarFilename', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarFolderName', { fg = c.base0 })
|
|
||||||
set_hl('SagaWinbarFileIcon', { link = 'Directory' })
|
|
||||||
set_hl('SagaWinbarSep', { link = 'Keyword' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- MiniCursor
|
|
||||||
set_hl('MiniCursorword', { bg = c.base02 })
|
|
||||||
|
|
||||||
-- MiniStatusLine
|
|
||||||
set_hl('MiniStatuslineModeNormal', { fg = c.base03, bg = c.blue })
|
|
||||||
set_hl('MiniStatuslineModeInsert', { fg = c.base03, bg = c.green })
|
|
||||||
set_hl('MiniStatuslineModeVisual', { fg = c.base03, bg = c.magenta })
|
|
||||||
set_hl('MiniStatuslineModeReplace', { fg = c.base03, bg = c.red })
|
|
||||||
set_hl('MiniStatuslineModeCommand', { fg = c.base03, bg = c.orange })
|
|
||||||
set_hl('MinistatusLineFileName', { fg = c.base0, bg = c.base02 })
|
|
||||||
set_hl('MiniStatuslineDevinfo', { fg = c.base03, bg = c.base1 })
|
|
||||||
set_hl('MiniStatuslineFileinfo', { fg = c.base03, bg = c.base1 })
|
|
||||||
set_hl('MiniStatuslineInactive', { fg = c.base01, bg = c.base03 })
|
|
||||||
|
|
||||||
-- MiniTabLine
|
|
||||||
set_hl('MiniTablineCurrent', { fg = c.base2, bg = c.base1 })
|
|
||||||
set_hl('MiniTablineVisible', { fg = c.base2, bg = c.base03 })
|
|
||||||
set_hl('MiniTablineHidden', { fg = c.base01, bg = c.base03 })
|
|
||||||
set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
|
||||||
set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
|
||||||
set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
|
||||||
set_hl('MiniTablineFill', { link = 'NormalFloat' })
|
|
||||||
set_hl('MiniTablineTabpagesection', { link = 'NormalFloat' })
|
|
||||||
|
|
||||||
-- MiniStarter
|
|
||||||
set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
|
||||||
set_hl('MiniStarterHeader', { fg = c.base00 })
|
|
||||||
set_hl('MiniStarterFooter', { fg = c.base00 })
|
|
||||||
set_hl('MiniStarterItem', { fg = c.base0 })
|
|
||||||
set_hl('MiniStarterItemBullet', { fg = c.blue })
|
|
||||||
set_hl('MiniStarterItemPrefix', { fg = c.blue })
|
|
||||||
set_hl('MiniStarterSection', { link = 'Title' })
|
|
||||||
set_hl('MiniStarterQuery', { fg = c.magenta, bg = 'NONE', bold = true })
|
|
||||||
end
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NavicIconsFile', { fg = c.base00 })
|
|
||||||
set_hl('NavicIconsModule', { link = '@namespace' })
|
|
||||||
set_hl('NavicIconsNamespace', { link = '@namespace' })
|
|
||||||
set_hl('NavicIconsPackage', { link = 'Directory' })
|
|
||||||
set_hl('NavicIconsClass', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsMethod', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsProperty', { link = '@field' })
|
|
||||||
set_hl('NavicIconsField', { link = '@field' })
|
|
||||||
set_hl('NavicIconsConstructor', { link = '@constructor' })
|
|
||||||
set_hl('NavicIconsEnum', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsInterface', { link = 'Type' })
|
|
||||||
set_hl('NavicIconsFunction', { link = 'Function' })
|
|
||||||
set_hl('NavicIconsVariable', { link = 'Identifier' })
|
|
||||||
set_hl('NavicIconsConstant', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsString', { link = 'String' })
|
|
||||||
set_hl('NavicIconsNumber', { link = 'Number' })
|
|
||||||
set_hl('NavicIconsBoolean', { link = 'Boolean' })
|
|
||||||
set_hl('NavicIconsArray', { link = 'Delimiter' })
|
|
||||||
set_hl('NavicIconsObject', { link = '@field' })
|
|
||||||
set_hl('NavicIconsKey', { link = '@field' })
|
|
||||||
set_hl('NavicIconsNull', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
|
||||||
set_hl('NavicIconsStruct', { link = 'Structure' })
|
|
||||||
set_hl('NavicIconsEvent', { fg = c.base2 })
|
|
||||||
set_hl('NavicIconsOperator', { link = 'Operator' })
|
|
||||||
set_hl('NavicIconsTypeParameter', { link = '@parameter' })
|
|
||||||
set_hl('NavicText', { fg = c.base1 })
|
|
||||||
set_hl('NavicSeparator', { link = 'Keyword' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local blend = require('solarized.utils.colors').blend
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
local alpha = 0.05
|
|
||||||
|
|
||||||
set_hl('NeogitCursorLine', { link = 'CursorLine' })
|
|
||||||
set_hl('NeogitBranch', { fg = c.magenta })
|
|
||||||
set_hl('NeogitRemote', { fg = c.violet })
|
|
||||||
set_hl(
|
|
||||||
'NeogitHunkHeader',
|
|
||||||
{ fg = c.orange, bg = blend(c.orange, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
|
||||||
set_hl('NeogitDiffContextHighlight', { fg = c.base00, bg = c.base03 })
|
|
||||||
set_hl('NeogitDiffContext', { fg = c.base00, bg = c.base03 })
|
|
||||||
set_hl(
|
|
||||||
'NeogitDiffDeleteHighlight',
|
|
||||||
{ fg = c.red, bg = blend(c.red, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitDiffDelete', { fg = c.red })
|
|
||||||
set_hl(
|
|
||||||
'NeogitDiffAddHighlight',
|
|
||||||
{ fg = c.green, bg = blend(c.green, c.base03, alpha) }
|
|
||||||
)
|
|
||||||
set_hl('NeogitDiffAdd', { fg = c.green })
|
|
||||||
end
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NeoTreeNormal', { fg = c.base0, bg = c.base02 })
|
|
||||||
set_hl('NeoTreeNormalNC', { link = 'NeoTreeNormal' })
|
|
||||||
set_hl('NeoTreeEndOfBuffer', { fg = c.base02 })
|
|
||||||
set_hl('NeoTreeRootName', { link = 'Directory' })
|
|
||||||
set_hl('NeoTreeFileName', { fg = c.base0 })
|
|
||||||
set_hl('NeoTreeFileNameOpened', { link = 'Directory' })
|
|
||||||
set_hl('NeoTreeFloatBorder', { link = 'WinSeparator' })
|
|
||||||
set_hl('NeoTreeFloatTitle', { link = 'Title' })
|
|
||||||
set_hl('NeoTreeGitAdded', { fg = c.add, bg = 'NONE' })
|
|
||||||
set_hl('NeoTreeGitConflict', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitDeleted', { fg = c.delete })
|
|
||||||
set_hl('NeoTreeGitIgnored', { fg = c.base01, italic = true })
|
|
||||||
set_hl('NeoTreeGitModified', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitUnstaged', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitUntracked', { fg = c.change })
|
|
||||||
set_hl('NeoTreeGitStaged', { fg = c.add })
|
|
||||||
set_hl('NeoTreeIndentMarker', { fg = c.base01 })
|
|
||||||
end
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local set_hl = require('solarized.utils').set_hl
|
|
||||||
|
|
||||||
set_hl('NoiceFormatProgressTodo', { fg = c.base01, reverse = true })
|
|
||||||
set_hl('NoiceFormatProgressDone', { fg = c.cyan, reverse = true })
|
|
||||||
set_hl('NoiceLspProgressSpinner', { fg = c.cyan })
|
|
||||||
set_hl('NoiceLspProgressClient', { fg = c.blue })
|
|
||||||
set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NotifyBackground', { bg = c.base03 })
|
|
||||||
set_hl('NotifyERRORBorder', { fg = c.error })
|
|
||||||
set_hl('NotifyWARNBorder', { fg = c.warn })
|
|
||||||
set_hl('NotifyINFOBorder', { fg = c.info })
|
|
||||||
set_hl('NotifyDEBUGBorder', { fg = c.magenta })
|
|
||||||
set_hl('NotifyTRACEBorder', { fg = c.violet })
|
|
||||||
set_hl('NotifyERRORIcon', { link = 'NotifyERRORBorder' })
|
|
||||||
set_hl('NotifyWARNIcon', { link = 'NotifyWARNBorder' })
|
|
||||||
set_hl('NotifyINFOIcon', { link = 'NotifyINFOBorder' })
|
|
||||||
set_hl('NotifyDEBUGIcon', { link = 'NotifyDEBUGBorder' })
|
|
||||||
set_hl('NotifyTRACEIcon', { link = 'NotifyTRACEBorder' })
|
|
||||||
set_hl('NotifyERRORTitle', { link = 'NotifyERRORBorder' })
|
|
||||||
set_hl('NotifyWARNTitle', { link = 'NotifyWARNBorder' })
|
|
||||||
set_hl('NotifyINFOTitle', { link = 'NotifyINFOBorder' })
|
|
||||||
set_hl('NotifyDEBUGTitle', { link = 'NotifyDEBUGTitle' })
|
|
||||||
set_hl('NotifyTRACETitle', { link = 'NotifyTRACEBorder' })
|
|
||||||
set_hl('NotifyERRORBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyWARNBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyINFOBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyDEBUGBody', { link = 'Normal' })
|
|
||||||
set_hl('NotifyTRACEBody', { link = 'Normal' })
|
|
||||||
end
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
-- Default highlight
|
|
||||||
set_hl('@lsp.type.class', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.decorator', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.enum', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.enumMember', { link = 'Constant' }) -- Constant
|
|
||||||
set_hl('@lsp.type.function', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.interface', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.macro', { link = 'Keyword' }) -- Keyword
|
|
||||||
set_hl('@lsp.type.method', { link = 'Function' }) -- Function
|
|
||||||
set_hl('@lsp.type.namespace', { link = 'Constant' }) -- Constant
|
|
||||||
set_hl(
|
|
||||||
'@lsp.type.parameter',
|
|
||||||
{ fg = c.orange, italic = true },
|
|
||||||
{ styles = config.styles.parameters }
|
|
||||||
)
|
|
||||||
set_hl('@lsp.type.property', { fg = c.blue }) -- Property
|
|
||||||
set_hl('@lsp.type.struct', { link = 'Structure' }) -- Structure
|
|
||||||
set_hl('@lsp.type.type', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.typeParameter', { link = 'Type' }) -- Type
|
|
||||||
set_hl('@lsp.type.variable', { link = 'Identifier' }) -- Identifier
|
|
||||||
|
|
||||||
-- Extra highlight
|
|
||||||
set_hl('@lsp.typemod.variable.defaultLibrary', { link = 'Constant' }) -- ex: "vim".api.nvim_set_hl
|
|
||||||
set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' }) -- Constant variables ex: const hello = 'Hello World'
|
|
||||||
set_hl('@lsp.typemod.variable.global', { link = 'Constant' }) -- Global variables ex: HELLO = 'Hello World'
|
|
||||||
set_hl('@lsp.typemod.keyword.documentation', { link = 'Keyword' }) -- documentation comments
|
|
||||||
set_hl('@lsp.typemod.class.documentation', { link = 'Type' }) -- documentation comments
|
|
||||||
set_hl('@lsp.typemod.property.readonly', { link = 'Constant' }) -- Ex: System."out".println()
|
|
||||||
end
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl(
|
|
||||||
'Comment',
|
|
||||||
{ fg = c.base01, italic = true },
|
|
||||||
{ styles = config.styles.comments }
|
|
||||||
) -- any comment
|
|
||||||
set_hl('Constant', { fg = c.violet }, { styles = config.styles.constants }) -- any constant
|
|
||||||
set_hl('String', { fg = c.cyan }) -- a string constant: "this is a string"
|
|
||||||
set_hl('Character', { link = 'String' }) -- a character constant: 'c', '\n'
|
|
||||||
set_hl('Number', { fg = c.magenta }, { styles = config.styles.numbers }) -- a number constant: 234, 0xff
|
|
||||||
set_hl('Boolean', { fg = c.violet }) -- a boolean constant: TRUE, false
|
|
||||||
set_hl('Float', { link = 'Number' }) -- a floating point constant: 2.3e10
|
|
||||||
set_hl('Identifier', { fg = c.base0 }, { styles = config.styles.variables }) -- any variable name
|
|
||||||
set_hl('Function', { fg = c.blue }, { styles = config.styles.functions }) -- function name (also: methods for classes)
|
|
||||||
set_hl('Statement', { link = 'Keyword' }) -- any statement
|
|
||||||
set_hl('Conditional', { link = 'Keyword' }) -- if, then, else, endif, switch, etc.
|
|
||||||
set_hl('Repeat', { link = 'Keyword' }) -- for, do, while, etc.
|
|
||||||
set_hl('Label', { link = 'Keyword' }) -- case, default, etc.
|
|
||||||
set_hl('Operator', { link = 'Keyword' }) -- "sizeof", "+", "*", etc.
|
|
||||||
set_hl('Keyword', { fg = c.green }, { styles = config.styles.keywords }) -- any other keyword
|
|
||||||
set_hl('Exception', { link = 'Keyword' }) -- try, catch, throw
|
|
||||||
set_hl('PreProc', { link = 'Keyword' }) -- generic Preprocessor
|
|
||||||
set_hl('Include', { link = 'Keyword' }) -- preprocessor #include
|
|
||||||
set_hl('Define', { link = 'Keyword' }) -- preprocessor #define
|
|
||||||
set_hl('Macro', { link = 'Keyword' }) -- same as Define
|
|
||||||
set_hl('PreCondit', { link = 'Keyword' }) -- preprocessor #if, #else, #endif, etc.
|
|
||||||
set_hl('Type', { fg = c.yellow }, { styles = config.styles.types }) -- int, long, char, etc.
|
|
||||||
set_hl('StorageClass', { link = 'Keyword' }) -- static, register, volatile, etc.
|
|
||||||
set_hl('Structure', { fg = c.yellow }) -- struct, union, enum, etc.
|
|
||||||
set_hl('Typedef', { link = 'Keyword' }) -- A typedef
|
|
||||||
set_hl('Special', { fg = c.magenta }) -- special symbol
|
|
||||||
set_hl('SpecialChar', { fg = c.violet }) -- special character in a constant
|
|
||||||
set_hl('Tag', { link = 'Special' }) -- you can use CTRL-] on this
|
|
||||||
set_hl('Delimiter', { fg = c.orange }) -- character that needs attention
|
|
||||||
set_hl('SpecialComment', { link = 'Keyword' }) -- special things inside a comment
|
|
||||||
set_hl('Debug', { link = 'Keyword' }) -- debugging statements
|
|
||||||
set_hl('Underlined', { fg = c.violet, underline = true }) --text that stands out, HTML links
|
|
||||||
set_hl('Ignore') --left blank, hidden |hl-Ignore|
|
|
||||||
set_hl('Error', { fg = c.error }) --any erroneous construct
|
|
||||||
set_hl('Todo', { fg = c.violet }) --anything that needs extra attention; mostly the keywords TODO FIXME and XXX
|
|
||||||
end
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local base04 = darken(c.base03, 10)
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('TelescopeSelection', { link = 'CursorLine' })
|
|
||||||
set_hl('TelescopeSelectionCaret', { fg = c.red })
|
|
||||||
set_hl('TelescopeMultiSelection', { link = 'Type' })
|
|
||||||
set_hl('TelescopeMultiIcon', { fg = c.cyan })
|
|
||||||
|
|
||||||
-- "Normal" in the floating windows created by telescope.
|
|
||||||
set_hl(
|
|
||||||
'TelescopeNormal',
|
|
||||||
{ fg = c.base0, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
|
||||||
set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
|
||||||
set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
|
||||||
|
|
||||||
-- Border highlight groups.
|
|
||||||
-- Use TelescopeBorder to override the default.
|
|
||||||
-- Otherwise set them specifically
|
|
||||||
set_hl('TelescopeBorder', { link = 'WinSeparator' })
|
|
||||||
set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
|
||||||
set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
|
||||||
set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
|
||||||
|
|
||||||
-- Title highlight groups.
|
|
||||||
-- Use TelescopeTitle to override the default.
|
|
||||||
-- Otherwise set them specifically
|
|
||||||
set_hl('TelescopeTitle', { fg = c.blue, reverse = true })
|
|
||||||
set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
|
||||||
set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
|
||||||
set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
|
||||||
|
|
||||||
set_hl('TelescopePromptCounter', { link = 'NonText' })
|
|
||||||
|
|
||||||
-- Used for highlighting characters that you match.
|
|
||||||
set_hl('TelescopeMatching', { link = 'IncSearch' })
|
|
||||||
|
|
||||||
-- Used for the prompt prefix
|
|
||||||
set_hl('TelescopePromptPrefix', { fg = c.magenta })
|
|
||||||
end
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local colortool = require('solarized.utils.colors')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
local colorFunc
|
|
||||||
local percentage = 80
|
|
||||||
|
|
||||||
if vim.o.background == 'light' then
|
|
||||||
colorFunc = colortool.lighten
|
|
||||||
else
|
|
||||||
colorFunc = colortool.darken
|
|
||||||
end
|
|
||||||
|
|
||||||
-- TODO: TODO
|
|
||||||
-- WARN: WARN
|
|
||||||
-- TEST: TEST
|
|
||||||
-- PERF: PERF
|
|
||||||
-- NOTE: NOTE
|
|
||||||
-- HACK: HACK
|
|
||||||
|
|
||||||
set_hl('TodoFgTODO', { fg = c.info })
|
|
||||||
set_hl('TodoFgWARN', { fg = c.warning })
|
|
||||||
set_hl('TodoFgTEST', { fg = c.violet })
|
|
||||||
set_hl('TodoFgPERF', { fg = c.magenta })
|
|
||||||
set_hl('TodoFgNOTE', { fg = c.hint })
|
|
||||||
set_hl('TodoFgHACK', { fg = c.cyan })
|
|
||||||
set_hl('TodoFgFIX', { fg = c.error })
|
|
||||||
|
|
||||||
set_hl('TodoSignTODO', { fg = c.info })
|
|
||||||
set_hl('TodoSignWARN', { fg = c.warning })
|
|
||||||
set_hl('TodoSignTEST', { fg = c.violet })
|
|
||||||
set_hl('TodoSignPERF', { fg = c.magenta })
|
|
||||||
set_hl('TodoSignNOTE', { fg = c.hint })
|
|
||||||
set_hl('TodoSignHACK', { fg = c.cyan })
|
|
||||||
set_hl('TodoSignFIX', { fg = c.error })
|
|
||||||
|
|
||||||
set_hl('TodoBgTODO', { fg = c.info, bg = colorFunc(c.info, percentage) })
|
|
||||||
set_hl(
|
|
||||||
'TodoBgWARN',
|
|
||||||
{ fg = c.warning, bg = colorFunc(c.warning, percentage) }
|
|
||||||
)
|
|
||||||
set_hl('TodoBgTEST', { fg = c.violet, bg = colorFunc(c.violet, percentage) })
|
|
||||||
set_hl(
|
|
||||||
'TodoBgPERF',
|
|
||||||
{ fg = c.magenta, bg = colorFunc(c.magenta, percentage) }
|
|
||||||
)
|
|
||||||
set_hl('TodoBgNOTE', { fg = c.hint, bg = colorFunc(c.hint, percentage) })
|
|
||||||
set_hl('TodoBgHACK', { fg = c.cyan, bg = colorFunc(c.cyan, percentage) })
|
|
||||||
set_hl('TodoBgFIX', { fg = c.error, bg = colorFunc(c.error, percentage) })
|
|
||||||
end
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local darken = require('solarized.utils.colors').darken
|
|
||||||
local base04 = darken(c.base03, 10)
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
|
||||||
set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
|
||||||
-- set_hl('NvimTreeSymlinkFolderName') -- (Directory)
|
|
||||||
set_hl('NvimTreeFolderName', { fg = c.base0 }) -- (Directory)
|
|
||||||
set_hl('NvimTreeRootFolder', { link = 'Title' })
|
|
||||||
set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
|
||||||
-- set_hl('NvimTreeOpenedFolderIcon') -- (NvimTreeFolderIcon)
|
|
||||||
-- set_hl('NvimTreeClosedFolderIcon') -- (NvimTreeFolderIcon)
|
|
||||||
-- set_hl('NvimTreeFileIcon')
|
|
||||||
set_hl('NvimTreeEmptyFolderName', { fg = c.base0 }) -- (Directory)
|
|
||||||
-- set_hl('NvimTreeOpenedFolderName') -- (Directory)
|
|
||||||
set_hl('NvimTreeExecFile', { link = 'Function' })
|
|
||||||
set_hl('NvimTreeOpenedFile', { fg = c.orange, bold = true })
|
|
||||||
set_hl('NvimTreeModifiedFile', { fg = c.change })
|
|
||||||
set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
|
||||||
-- set_hl('NvimTreeImageFile')
|
|
||||||
set_hl('NvimTreeIndentMarker', { fg = c.base01 })
|
|
||||||
-- set_hl('NvimTreeLspDiagnosticsError') -- (DiagnosticError)
|
|
||||||
-- set_hl('NvimTreeLspDiagnosticsWarning') -- (DiagnosticWarn)
|
|
||||||
set_hl('NvimTreeLspDiagnosticsInformation') -- (DiagnosticInfo)
|
|
||||||
set_hl('NvimTreeLspDiagnosticsHint') -- (DiagnosticHint)
|
|
||||||
set_hl('NvimTreeGitDirty', { fg = c.change })
|
|
||||||
set_hl('NvimTreeGitStaged', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitMerge', { fg = c.change })
|
|
||||||
set_hl('NvimTreeGitRenamed', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitNew', { fg = c.add })
|
|
||||||
set_hl('NvimTreeGitDeleted', { fg = c.delete })
|
|
||||||
-- set_hl('NvimTreeGitIgnored') -- (Comment)
|
|
||||||
-- set_hl('NvimTreeWindowPicker')
|
|
||||||
set_hl(
|
|
||||||
'NvimTreeNormal',
|
|
||||||
{ fg = c.base0, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
)
|
|
||||||
set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
|
||||||
set_hl('NvimTreeEndOfBuffer', { fg = base04 }) -- (NonText)
|
|
||||||
-- set_hl('NvimTreeCursorLine') -- (CursorLine)
|
|
||||||
-- set_hl('NvimTreeCursorLineNr') -- (CursorLineNr)
|
|
||||||
-- set_hl('NvimTreeLineNr') -- (LineNr)
|
|
||||||
set_hl(
|
|
||||||
'NvimTreeWinSeparator',
|
|
||||||
{ fg = base04, bg = base04 },
|
|
||||||
{ transparent = config.transparent }
|
|
||||||
) -- (WinSeparator)
|
|
||||||
-- set_hl('NvimTreeCursorColumn') -- (CursorColumn)
|
|
||||||
--
|
|
||||||
-- There are also links for file highlight with git properties, linked to their
|
|
||||||
-- Git equivalent:
|
|
||||||
--
|
|
||||||
-- set_hl('NvimTreeFileDirty') -- (NvimTreeGitDirty)
|
|
||||||
-- set_hl('NvimTreeFileStaged') -- (NvimTreeGitStaged)
|
|
||||||
-- set_hl('NvimTreeFileMerge') -- (NvimTreeGitMerge)
|
|
||||||
-- set_hl('NvimTreeFileRenamed') -- (NvimTreeGitRenamed)
|
|
||||||
-- set_hl('NvimTreeFileNew') -- (NvimTreeGitNew)
|
|
||||||
-- set_hl('NvimTreeFileDeleted') -- (NvimTreeGitDeleted)
|
|
||||||
-- set_hl('NvimTreeFileIgnored') -- (NvimTreeGitIgnored)
|
|
||||||
-- set_hl('NvimTreeLiveFilterPrefix')
|
|
||||||
-- set_hl('NvimTreeLiveFilterValue')
|
|
||||||
-- set_hl('NvimTreeBookmark')
|
|
||||||
end
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
||||||
return function(c, config)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
--[[ Highlight capture names as of nvim-treesitter commit `6806d7a` ]]--
|
|
||||||
|
|
||||||
-- Identifiers
|
|
||||||
set_hl('@variable', { link = 'Identifier' }) -- various variable names
|
|
||||||
set_hl('@variable.builtin', { fg = c.violet, italic = true }) -- built-in variable names (e.g. `this`)
|
|
||||||
set_hl(
|
|
||||||
'@variable.parameter',
|
|
||||||
{ fg = c.orange, italic = true },
|
|
||||||
{ styles = config.styles.parameters }
|
|
||||||
) -- parameters of a function
|
|
||||||
set_hl('@variable.member', { fg = c.blue }) -- object and struct fields
|
|
||||||
set_hl('@constant', { link = 'Constant' }) -- constant identifiers
|
|
||||||
set_hl('@constant.builtin', { link = 'Constant' }) -- built-in constant values
|
|
||||||
set_hl('@constant.macro', { link = 'Constant' }) -- constants defined by the preprocessor
|
|
||||||
set_hl('@module', { fg = c.violet }) -- modules or namespaces
|
|
||||||
set_hl('@module.builtin', { fg = c.cyan }) -- built-in modules or namespaces
|
|
||||||
set_hl('@label', { link = 'Label' }) -- GOTO and other labels (e.g. `label:` in C), including heredoc labels
|
|
||||||
|
|
||||||
-- Literals
|
|
||||||
set_hl('@string', { link = 'String' }) -- string literals
|
|
||||||
set_hl('@string.documentation', { link = 'Comment' }) -- string documenting code (e.g. Python docstrings)
|
|
||||||
set_hl('@string.regexp', { fg = c.violet }) -- regular expressions
|
|
||||||
set_hl('@string.escape', { link = 'Keyword' }) -- escape sequences
|
|
||||||
set_hl('@string.special', { link = 'Constant' }) -- other special strings (e.g. dates)
|
|
||||||
set_hl('@string.special.symbol', { fg = c.violet }) -- symbols or atoms
|
|
||||||
set_hl('@string.special.url', { link = 'Underlined' }) -- URIs (e.g. hyperlinks)
|
|
||||||
set_hl('@string.special.path', { link = 'Underlined'}) -- filenames
|
|
||||||
set_hl('@character', { link = 'String' }) -- character literals
|
|
||||||
set_hl('@character.special', { link = 'Constant' }) -- special characters (e.g. wildcards)
|
|
||||||
set_hl('@boolean', { link = 'Constant' }) -- boolean literals
|
|
||||||
set_hl('@number', { link = 'Number' }) -- numeric literals
|
|
||||||
set_hl('@number.float', { link = 'Number' }) -- floating-point number literals
|
|
||||||
|
|
||||||
-- Types
|
|
||||||
set_hl('@type', { link = 'Type' }) -- type or class definitions and annotations
|
|
||||||
set_hl('@type.builtin', { link = 'Type' }) -- built-in types
|
|
||||||
set_hl('@type.definition', { link = 'Type' }) -- identifiers in type definitions (e.g. `typedef <type> <identifier>` in C)
|
|
||||||
set_hl('@type.qualifier', { link = 'Keyword' }) -- type qualifiers (e.g. `const`)
|
|
||||||
set_hl('@attribute', { link = 'Function' }) -- attribute annotations (e.g. Python decorators)
|
|
||||||
set_hl('@property', { link = '@variable.member' }) -- the key in key/value pairs
|
|
||||||
|
|
||||||
-- Functions
|
|
||||||
set_hl('@function', { link = 'Function' }) -- function definitions
|
|
||||||
set_hl('@function.builtin', { link = 'Function' }) -- built-in functions
|
|
||||||
set_hl('@function.call', { link = 'Function' }) -- function calls
|
|
||||||
set_hl('@function.macro', { link = 'Function' }) -- preprocessor macros
|
|
||||||
set_hl('@function.method', { link = 'Function' }) -- method definitions
|
|
||||||
set_hl('@function.method.call', { link = 'Function' }) -- method calls
|
|
||||||
set_hl('@constructor', { fg = c.magenta }) -- constructor calls and definitions
|
|
||||||
set_hl('@operator', { link = 'Keyword' }) -- symbolic operators (e.g. `+` / `*`)
|
|
||||||
|
|
||||||
-- Keywords
|
|
||||||
set_hl('@keyword', { link = 'Keyword' }) -- keywords not fitting into specific categories
|
|
||||||
set_hl('@keyword.coroutine', { link = 'Keyword' }) -- keywords related to coroutines (e.g. `go` in Go, `async/await` in Python)
|
|
||||||
set_hl('@keyword.function', { link = 'Keyword' }) -- keywords that define a function (e.g. `func` in Go, `def` in Python)
|
|
||||||
set_hl('@keyword.operator', { link = 'Keyword' }) -- operators that are English words (e.g. `and` / `or`)
|
|
||||||
set_hl('@keyword.import', { link = 'Keyword' }) -- keywords for including modules (e.g. `import` / `from` in Python)
|
|
||||||
set_hl('@keyword.storage', { link = 'Keyword' }) -- modifiers that affect storage in memory or life-time
|
|
||||||
set_hl('@keyword.repeat', { link = 'Keyword' }) -- keywords related to loops (e.g. `for` / `while`)
|
|
||||||
set_hl('@keyword.return', { link = 'Keyword' }) -- keywords like `return` and `yield`
|
|
||||||
set_hl('@keyword.debug', { link = 'Keyword' }) -- keywords related to debugging
|
|
||||||
set_hl('@keyword.exception', { link = 'Keyword' }) -- keywords related to exceptions (e.g. `throw` / `catch`)
|
|
||||||
set_hl('@keyword.conditional', { link = 'Keyword' }) -- keywords related to conditionals (e.g. `if` / `else`)
|
|
||||||
set_hl('@keyword.conditional.ternary', { link = 'Keyword' }) -- ternary operator (e.g. `?` / `:`)
|
|
||||||
set_hl('@keyword.directive', { link = 'Keyword' }) -- various preprocessor directives & shebangs
|
|
||||||
set_hl('@keyword.directive.define', { link = 'Keyword' }) -- preprocessor definition directives
|
|
||||||
|
|
||||||
-- Punctuations
|
|
||||||
set_hl('@punctuation.delimiter', { link = 'Delimiter' }) -- delimiters (e.g. `;` / `.` / `,`)
|
|
||||||
set_hl('@punctuation.bracket', { link = 'Delimiter' }) -- brackets (e.g. `()` / `{}` / `[]`)
|
|
||||||
set_hl('@punctuation.special', { link = 'Delimiter' }) -- special symbols (e.g. `{}` in string interpolation)
|
|
||||||
|
|
||||||
-- Comments
|
|
||||||
set_hl('@comment', { link = 'Comment' }) -- line and block comments
|
|
||||||
set_hl('@comment.documentation', { link = 'Comment' }) -- comments documenting code
|
|
||||||
set_hl('@comment.error', { fg = c.error }) -- error-type comments (e.g. `ERROR`, `FIXME`, `DEPRECATED:`)
|
|
||||||
set_hl('@comment.warning', { fg = c.warning }) -- warning-type comments (e.g. `WARNING:`, `FIX:`, `HACK:`)
|
|
||||||
set_hl('@comment.todo', { link = 'Todo' }) -- todo-type comments (e.g. `TODO:`, `WIP:`, `FIXME:`)
|
|
||||||
set_hl('@comment.note', { fg = c.info }) -- note-type comments (e.g. `NOTE:`, `INFO:`, `XXX`)
|
|
||||||
|
|
||||||
-- Markup
|
|
||||||
set_hl('@markup.strong', { fg = c.yellow }) -- bold text
|
|
||||||
set_hl('@markup.italic', { fg = c.yellow, italic = true }) -- italic text
|
|
||||||
set_hl('@markup.strikethrough', { fg = c.base01, strikethrough = true }) -- struck-through text
|
|
||||||
set_hl('@markup.underline', { link = 'Underlined' }) -- underlined text (only for literal underline markup!)
|
|
||||||
set_hl('@markup.heading', { link = 'Title' }) -- headings, titles (including markers)
|
|
||||||
set_hl('@markup.quote', { fg = c.cyan }) -- block quotes
|
|
||||||
set_hl('@markup.math', { link = 'Number' }) -- math environments (e.g. `$ ... $` in LaTeX)
|
|
||||||
set_hl('@markup.environment', { fg = c.base0 }) -- environments (e.g. in LaTeX)
|
|
||||||
set_hl('@markup.link', { link = 'Underlined' }) -- text references, footnotes, citations, etc.
|
|
||||||
set_hl('@markup.link.label', { link = 'Constant' }) -- link, reference descriptions
|
|
||||||
set_hl('@markup.link.url', { link = 'Underlined' }) -- URL-style links
|
|
||||||
set_hl('@markup.raw', { fg = c.base0 }) -- literal or verbatim text (e.g., inline code)
|
|
||||||
set_hl('@markup.raw.block', { fg = c.base0 }) -- literal or verbatim text as a stand-alone block (use priority 90 for blocks with injections)
|
|
||||||
set_hl('@markup.list', { link = 'Delimiter' }) -- list markers
|
|
||||||
set_hl('@markup.list.checked', { link = 'Delimiter' }) -- checked todo-style list markers
|
|
||||||
set_hl('@markup.list.unchecked', { link = 'Delimiter' }) -- unchecked todo-style list markers
|
|
||||||
|
|
||||||
-- Diffs
|
|
||||||
set_hl('@diff.plus', { fg = c.add }) -- added text (for diff files)
|
|
||||||
set_hl('@diff.minus', { fg = c.delete }) -- deleted text (for diff files)
|
|
||||||
set_hl('@diff.delta', { fg = c.change }) -- changed text (for diff files)
|
|
||||||
|
|
||||||
-- Tags
|
|
||||||
set_hl('@tag', { fg = c.green }) -- XML-style tag names (and similar)
|
|
||||||
set_hl('@tag.attribute', { link = '@variable.member' }) -- XML-style tag attributes
|
|
||||||
set_hl('@tag.delimiter', { link = 'Delimiter' }) -- XML-style tag delimiters
|
|
||||||
end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
return function(c)
|
|
||||||
local utils = require('solarized.utils')
|
|
||||||
local set_hl = utils.set_hl
|
|
||||||
|
|
||||||
set_hl('WhichKey', { fg = c.base0 }) -- the key
|
|
||||||
set_hl('WhichKeyGroup', { fg = c.blue }) -- a group
|
|
||||||
set_hl('WhichKeySeparator', { fg = c.magenta }) -- the separator between the key and its label
|
|
||||||
set_hl('WhichKeyDesc', { fg = c.base2 }) -- the label of the key
|
|
||||||
-- set_hl('WhichKeyFloat') -- Normal in the popup window
|
|
||||||
-- set_hl('WhichKeyBorder', { link = 'WinSeparator' })
|
|
||||||
-- set_hl('WhichKeyValue') -- used by plugins that provide values
|
|
||||||
end
|
|
||||||
37
lua/solarized/utils.lua
Normal file
37
lua/solarized/utils.lua
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
local function to_hex(decimal)
|
||||||
|
if type(decimal) ~= 'number' then
|
||||||
|
return decimal
|
||||||
|
end
|
||||||
|
local hex = string.format('#%06x', decimal)
|
||||||
|
return hex:upper()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function nvim_get_hl(name)
|
||||||
|
local output = vim.api.nvim_get_hl(0, { name = name, link = false })
|
||||||
|
|
||||||
|
local t = {}
|
||||||
|
|
||||||
|
for key, value in pairs(output) do
|
||||||
|
t[key] = to_hex(value)
|
||||||
|
end
|
||||||
|
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_colors()
|
||||||
|
local config = require('solarized').config
|
||||||
|
local colors = {}
|
||||||
|
if vim.o.background == 'dark' then
|
||||||
|
local palette = require 'solarized.palette'
|
||||||
|
colors = palette[config.palette]
|
||||||
|
else
|
||||||
|
local palette = require 'solarized.palette.solarized-light'
|
||||||
|
colors = palette[config.palette]
|
||||||
|
end
|
||||||
|
return colors
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
get_colors = get_colors,
|
||||||
|
nvim_get_hl = nvim_get_hl,
|
||||||
|
}
|
||||||
|
|
@ -1,88 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
--- Convert a hexadecimal color code to RGB color values
|
|
||||||
---
|
|
||||||
--- @param hex string The hexadecimal color code (e.g., "#RRGGBB" or "RRGGBB")
|
|
||||||
--- @return number red The red component of the RGB color (0-255)
|
|
||||||
--- @return number green The green component of the RGB color (0-255)
|
|
||||||
--- @return number blue The blue component of the RGB color (0-255)
|
|
||||||
function M.hex_to_rgb(hex)
|
|
||||||
local red = tonumber(hex:sub(2, 3), 16)
|
|
||||||
local green = tonumber(hex:sub(4, 5), 16)
|
|
||||||
local blue = tonumber(hex:sub(6, 7), 16)
|
|
||||||
|
|
||||||
return red, green, blue
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Convert rgb to hex
|
|
||||||
---
|
|
||||||
--- @param red number
|
|
||||||
--- @param green number
|
|
||||||
--- @param blue number
|
|
||||||
--- @return string color
|
|
||||||
function M.rgb_to_hex(red, green, blue)
|
|
||||||
return string.format('#%02x%02x%02x', red, green, blue)
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Darken a color by a given distance
|
|
||||||
---
|
|
||||||
--- @param color string The color to be darkened in any valid color format
|
|
||||||
--- @param percentage number The distance by which the color should be darkened (between 1 and 10)
|
|
||||||
--- @return string color The resulting darkened color in the same format as the input color
|
|
||||||
function M.darken(color, percentage)
|
|
||||||
local red, green, blue = M.hex_to_rgb(color)
|
|
||||||
local i = 1
|
|
||||||
local result = {
|
|
||||||
red = red * (1 - (percentage / 100) * i),
|
|
||||||
green = green * (1 - (percentage / 100) * i),
|
|
||||||
blue = blue * (1 - (percentage / 100) * i),
|
|
||||||
}
|
|
||||||
|
|
||||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Lighten a color by a given percentage
|
|
||||||
---
|
|
||||||
--- @param color string The color to be lightened in any valid color format
|
|
||||||
--- @param percentage number The percentage by which the color should be lightened (between 1 and 10)
|
|
||||||
--- @return string color The resulting lightened color in the same format as the input color
|
|
||||||
function M.lighten(color, percentage)
|
|
||||||
local red, green, blue = M.hex_to_rgb(color)
|
|
||||||
local i = 1
|
|
||||||
local result = {
|
|
||||||
red = red + (255 - red) * i * (percentage / 100),
|
|
||||||
green = green + (255 - green) * i * (percentage / 100),
|
|
||||||
blue = blue + (255 - blue) * i * (percentage / 100),
|
|
||||||
}
|
|
||||||
|
|
||||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Blend two colors with a given alpha value
|
|
||||||
---
|
|
||||||
--- @param hex_fg string The foreground color in hexadecimal format (e.g., "#RRGGBB")
|
|
||||||
--- @param hex_bg string The background color in hexadecimal format (e.g., "#RRGGBB")
|
|
||||||
--- @param alpha number The alpha value between 0 and 1, indicating the blending ratio
|
|
||||||
--- @return string color The resulting blended color in hexadecimal format
|
|
||||||
function M.blend(hex_fg, hex_bg, alpha)
|
|
||||||
local red_bg, green_bg, blue_bg = M.hex_to_rgb(hex_bg)
|
|
||||||
local red_fg, green_fg, blue_fg = M.hex_to_rgb(hex_fg)
|
|
||||||
|
|
||||||
local min = math.min
|
|
||||||
local max = math.max
|
|
||||||
local floor = math.floor
|
|
||||||
|
|
||||||
local function blend_channel(fg, bg)
|
|
||||||
local ret = alpha * fg + ((1 - alpha) * bg)
|
|
||||||
|
|
||||||
return floor(min(max(0, ret), 255) + 0.5)
|
|
||||||
end
|
|
||||||
|
|
||||||
return M.rgb_to_hex(
|
|
||||||
blend_channel(red_fg, red_bg),
|
|
||||||
blend_channel(green_fg, green_bg),
|
|
||||||
blend_channel(blue_fg, blue_bg)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
--- Sets a highlight group
|
|
||||||
--- @param name string
|
|
||||||
--- @param val? table
|
|
||||||
--- @param opts? table The opts object..
|
|
||||||
--- - opts.transparent: (boolean) Specifies whether transparency is enabled.
|
|
||||||
--- - opts.styles: (table) A table of custom styles for various elements.
|
|
||||||
---@return nil
|
|
||||||
function M.set_hl(name, val, opts)
|
|
||||||
local default_val = { fg = 'NONE', bg = 'NONE' }
|
|
||||||
val = val or {}
|
|
||||||
|
|
||||||
if not val.link then val = vim.tbl_extend('force', default_val, val) end
|
|
||||||
|
|
||||||
if opts then
|
|
||||||
if opts.styles then val = vim.tbl_extend('force', val, opts.styles) end
|
|
||||||
|
|
||||||
if opts.transparent then val.bg = 'NONE' end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_set_hl(0, name, val)
|
|
||||||
end
|
|
||||||
|
|
||||||
--- get highlight group
|
|
||||||
--- @param highlight_name string
|
|
||||||
--- @return table highlight
|
|
||||||
function M.get_hl(highlight_name)
|
|
||||||
local highlight =
|
|
||||||
vim.api.nvim_get_hl(0, { name = highlight_name, link = true })
|
|
||||||
|
|
||||||
if highlight.link then return M.get_hl(highlight.link) end
|
|
||||||
|
|
||||||
return highlight
|
|
||||||
end
|
|
||||||
|
|
||||||
--- @param opts table The user-specified custom configuration
|
|
||||||
--- - fnc (function): callback type configuration
|
|
||||||
--- - tbl (function): table type configuration
|
|
||||||
--- @param config (table|function): config to be used
|
|
||||||
function M.on_config(opts, config)
|
|
||||||
if type(config) == 'table' and not vim.tbl_isempty(config) then
|
|
||||||
opts.tbl()
|
|
||||||
elseif type(config) == 'function' then
|
|
||||||
opts.fnc()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
300
lua/solarized/variants/init.lua
Normal file
300
lua/solarized/variants/init.lua
Normal 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
|
||||||
294
lua/solarized/variants/solarized-light.lua
Normal file
294
lua/solarized/variants/solarized-light.lua
Normal 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
4
makefile
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
fmt:
|
||||||
|
stylua -f ./stylua.toml .
|
||||||
|
test: fmt
|
||||||
|
vusted ./tests
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
vim.api.nvim_create_user_command('Solarized', function(args)
|
vim.api.nvim_create_user_command('Solarized', function(args)
|
||||||
require('solarized.command').load(
|
require('solarized.command').load(args.fargs[1], vim.list_slice(args.fargs, 2))
|
||||||
args.fargs[1],
|
|
||||||
vim.list_slice(args.fargs, 2)
|
|
||||||
)
|
|
||||||
end, {
|
end, {
|
||||||
range = true,
|
range = true,
|
||||||
nargs = '+',
|
nargs = '+',
|
||||||
|
|
|
||||||
6
stylua.toml
Normal file
6
stylua.toml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
column_width = 100
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
quote_style = "AutoPreferSingle"
|
||||||
|
call_parentheses = "None"
|
||||||
23
tests/load_spec.lua
Normal file
23
tests/load_spec.lua
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
local nvim_get_hl = require('solarized.utils').nvim_get_hl
|
||||||
|
|
||||||
|
describe('solarized.load', function()
|
||||||
|
setup(function()
|
||||||
|
vim.o.background = 'dark'
|
||||||
|
vim.cmd.colorscheme 'solarized'
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('name', function()
|
||||||
|
local expected = 'solarized'
|
||||||
|
assert.equal(expected, vim.g.colors_name)
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('default config', function()
|
||||||
|
local config = require 'solarized.config'
|
||||||
|
assert.True(type(config) == 'table')
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('set_highlight', function()
|
||||||
|
local Comment = nvim_get_hl 'Comment'
|
||||||
|
assert.True('#586E75' == Comment.fg)
|
||||||
|
end)
|
||||||
|
end)
|
||||||
72
tests/setup_spec.lua
Normal file
72
tests/setup_spec.lua
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
local nvim_get_hl = require('solarized.utils').nvim_get_hl
|
||||||
|
|
||||||
|
describe('solarized.setup', function()
|
||||||
|
setup(function()
|
||||||
|
vim.o.background = 'light'
|
||||||
|
---@type solarized
|
||||||
|
local solarized = require 'solarized'
|
||||||
|
|
||||||
|
solarized.setup {
|
||||||
|
transparent = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
styles = {
|
||||||
|
strings = { italic = true },
|
||||||
|
comments = { bold = true },
|
||||||
|
},
|
||||||
|
on_colors = function()
|
||||||
|
return {
|
||||||
|
mycolor = '#ffffff',
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
on_highlights = function(colors)
|
||||||
|
return {
|
||||||
|
---@diagnostic disable-next-line: undefined-field
|
||||||
|
CustomHighlight = { fg = colors.mycolor },
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
vim.cmd 'colorscheme solarized'
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('transparent', function()
|
||||||
|
local normal = nvim_get_hl 'Normal'
|
||||||
|
assert.falsy(normal.bg)
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('on_colors and on_highlight', function()
|
||||||
|
local user_group = nvim_get_hl 'CustomHighlight'
|
||||||
|
local expected = { fg = '#FFFFFF' }
|
||||||
|
assert.are.same(expected, user_group)
|
||||||
|
end)
|
||||||
|
|
||||||
|
test('styles', function()
|
||||||
|
local strings = nvim_get_hl 'String'
|
||||||
|
local comments = nvim_get_hl 'Comment'
|
||||||
|
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)
|
||||||
Loading…
Reference in a new issue