mirror of
https://github.com/maxmx03/solarized.nvim.git
synced 2026-09-10 07:26:26 -04:00
Compare commits
No commits in common. "main" and "v3.0.0" have entirely different histories.
27
.github/workflows/ci.yml
vendored
27
.github/workflows/ci.yml
vendored
|
|
@ -32,3 +32,30 @@ jobs:
|
|||
commit_user_name: "github-actions[bot]"
|
||||
commit_user_email: "github-actions[bot]@users.noreply.github.com"
|
||||
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"
|
||||
|
||||
test:
|
||||
name: Run Test
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: rhysd/action-setup-vim@v1
|
||||
with:
|
||||
neovim: true
|
||||
|
||||
- name: luajit
|
||||
uses: leafo/gh-actions-lua@v10
|
||||
with:
|
||||
luaVersion: "luajit-2.1.0-beta3"
|
||||
|
||||
- name: luarocks
|
||||
uses: leafo/gh-actions-luarocks@v4
|
||||
|
||||
- name: run test
|
||||
shell: bash
|
||||
run: |
|
||||
luarocks install luacheck
|
||||
luarocks install vusted
|
||||
vusted ./tests
|
||||
|
|
|
|||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
|||
sample
|
||||
vscode
|
||||
build
|
||||
13
.luarc.json
13
.luarc.json
|
|
@ -1,12 +1,3 @@
|
|||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
"diagnostics.disable": ["undefined-field"]
|
||||
}
|
||||
|
|
|
|||
97
CHANGELOG.md
97
CHANGELOG.md
|
|
@ -1,102 +1,5 @@
|
|||
# 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)
|
||||
|
||||
|
||||
|
|
|
|||
188
CONTRIBUTING.md
188
CONTRIBUTING.md
|
|
@ -1,188 +0,0 @@
|
|||
# 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)
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
FROM archlinux
|
||||
WORKDIR /solarized
|
||||
WORKDIR /dracula
|
||||
COPY . .
|
||||
RUN pacman -Syu --noconfirm
|
||||
RUN pacman -S luarocks neovim gcc lua51 --noconfirm
|
||||
|
|
|
|||
421
README.md
421
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.
|
||||
[click here to learn more](https://ethanschoonover.com/solarized/)
|
||||
|
||||

|
||||

|
||||
|
||||
<!--toc:start-->
|
||||
|
||||
- [Features](#features)
|
||||
- [Requirements](#requirements)
|
||||
- [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)
|
||||
- [Docs](#docs)
|
||||
- [Help](#help)
|
||||
- [Commands](#commands)
|
||||
- [Default Config](#default-config)
|
||||
- [Config Variant](#config-variant)
|
||||
- [Config Transparency](#config-transparency)
|
||||
- [Config Themes](#config-themes)
|
||||
- [Config Styles](#config-styles)
|
||||
- [Config Highlights](#config-highlights)
|
||||
- [Config Colors](#config-colors)
|
||||
- [Config Plugins](#config-plugins)
|
||||
- [Config Error Lens](#config-error-lens)
|
||||
- [Config Enables](#config-enables)
|
||||
- [Config Autocmd](#config-autocmd)
|
||||
- [Lualine](#lualine)
|
||||
- [Barbecue](#barbecue)
|
||||
- [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)
|
||||
- [Designed by](#designed-by)
|
||||
- [Credits and Reference](#credits-and-reference)
|
||||
- [Credits and Reference 🎉](#credits-and-reference-🎉)
|
||||
<!--toc:end-->
|
||||
|
||||
## Features
|
||||
|
|
@ -64,19 +64,16 @@ Download using your preferred package manager.
|
|||
[lazy](https://github.com/folke/lazy.nvim)
|
||||
|
||||
```lua
|
||||
return {
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
---@type solarized.config
|
||||
opts = {},
|
||||
config = function(_, opts)
|
||||
vim.o.termguicolors = true
|
||||
vim.o.background = 'light'
|
||||
require('solarized').setup(opts)
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
end,
|
||||
}
|
||||
{
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.o.background = 'dark' -- or 'light'
|
||||
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
end,
|
||||
},
|
||||
```
|
||||
|
||||
[packer](https://github.com/wbthomason/packer.nvim)
|
||||
|
|
@ -85,52 +82,13 @@ return {
|
|||
use {
|
||||
'maxmx03/solarized.nvim',
|
||||
config = function()
|
||||
vim.o.background = 'dark'
|
||||
---@type solarized
|
||||
local solarized = require('solarized')
|
||||
vim.o.termguicolors = true
|
||||
vim.o.background = 'dark'
|
||||
solarized.setup({})
|
||||
vim.o.background = 'dark' -- or 'light'
|
||||
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
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
|
||||
|
||||
To manually install Solarized, follow these steps:
|
||||
|
|
@ -141,13 +99,14 @@ To manually install Solarized, follow these steps:
|
|||
`lua`, `plugin`.
|
||||
4. Copy these folders to the `~/.config/nvim` directory.
|
||||
|
||||
## Docs
|
||||
## Help
|
||||
|
||||
Use `:h solarized.nvim.txt` to see docs
|
||||
Use `:h solarized.nvim.txt` to get some help
|
||||
|
||||
## Commands
|
||||
|
||||
- `:Solarized colors` - Display the Solarized palette in a new buffer
|
||||
- `:Solarized zen`- Removes highlight colors, emphasizing important code segments.
|
||||
|
||||
## Default Config
|
||||
|
||||
|
|
@ -156,106 +115,61 @@ vim.o.background = 'dark'
|
|||
|
||||
-- default config
|
||||
require('solarized').setup({
|
||||
transparent = {
|
||||
enabled = false,
|
||||
pmenu = true,
|
||||
normal = true,
|
||||
normalfloat = true,
|
||||
neotree = true,
|
||||
nvimtree = true,
|
||||
whichkey = true,
|
||||
telescope = true,
|
||||
lazy = true,
|
||||
},
|
||||
on_highlights = nil,
|
||||
on_colors = nil,
|
||||
palette = 'solarized', -- solarized (default) | selenized
|
||||
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||
error_lens = {
|
||||
text = false,
|
||||
symbol = false,
|
||||
},
|
||||
styles = {
|
||||
enabled = true,
|
||||
types = {},
|
||||
functions = {},
|
||||
parameters = {},
|
||||
comments = {},
|
||||
strings = {},
|
||||
keywords = {},
|
||||
variables = {},
|
||||
constants = {},
|
||||
},
|
||||
plugins = {
|
||||
treesitter = true,
|
||||
lspconfig = true,
|
||||
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,
|
||||
ale = true,
|
||||
coc = true,
|
||||
leap = true,
|
||||
alpha = true,
|
||||
yanky = true,
|
||||
gitgutter = true,
|
||||
mason = true,
|
||||
flash = true,
|
||||
},
|
||||
transparent = false, -- enable transparent background
|
||||
palette = 'solarized', -- or 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', -- or 'neo'
|
||||
autocmd = true,
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme = 'solarized'
|
||||
vim.cmd.colorscheme = 'solarized' -- or selenized
|
||||
```
|
||||
|
||||
## Config Variant
|
||||
## Config Themes
|
||||
|
||||
Solarized includes four variants: spring, summer, autumn, and winter.
|
||||
|
||||
[preview](https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md)
|
||||
Solarized offers two themes: the default Solarized theme and Neo.
|
||||
These themes provide different visual styles to enhance your experience.
|
||||
|
||||
```lua
|
||||
require('solarized').setup {
|
||||
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||
}
|
||||
```
|
||||
|
||||
## Config Transparency
|
||||
|
||||
By default, transparency is turned off, but you can easily enable it and
|
||||
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
|
||||
},
|
||||
}
|
||||
require('solarized').setup({
|
||||
theme = 'neo' -- or comment to use solarized default theme.
|
||||
})
|
||||
```
|
||||
|
||||
## Config Styles
|
||||
|
|
@ -264,21 +178,12 @@ The `styles` config allows you to customize the style of a highlight
|
|||
group.
|
||||
|
||||
```lua
|
||||
---@type solarized.styles
|
||||
local styles = {
|
||||
require('solarized').setup({
|
||||
styles = {
|
||||
comments = { italic = true, bold = false },
|
||||
functions = { italic = true },
|
||||
variables = { italic = false },
|
||||
}
|
||||
require('solarized').setup({
|
||||
styles = styles,
|
||||
})
|
||||
```
|
||||
|
||||
You can also disable all highlight group styles.
|
||||
```lua
|
||||
require('solarized').setup({
|
||||
styles = { enabled = false },
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
|
|
@ -290,23 +195,18 @@ example:
|
|||
|
||||
```lua
|
||||
require('solarized').setup {
|
||||
on_highlights = function (colors, color)
|
||||
local darken = color.darken
|
||||
local lighten = color.lighten
|
||||
local blend = color.blend
|
||||
local shade = color.shade
|
||||
local tint = color.tint
|
||||
highlights = function (colors, colorhelper)
|
||||
local darken = colorhelper.darken
|
||||
local lighten = colorhelper.lighten
|
||||
local blend = colorhelper.blend
|
||||
|
||||
---@type solarized.highlights
|
||||
local groups = {
|
||||
Visual = { bg = colors.base02, standout = true },
|
||||
Function = { fg = colors.yellow },
|
||||
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
|
||||
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
|
||||
NormalFloat = { bg = darken(colors.base03, 25) }
|
||||
return {
|
||||
LineNr = { fg = c.base1, bg = c.base02 },
|
||||
CursorLineNr = { bg = c.base02 },
|
||||
CursorLine = { bg = c.base02 },
|
||||
Function = { italic = false },
|
||||
Visual = { bg = c.cyan },
|
||||
}
|
||||
|
||||
return groups
|
||||
end
|
||||
}
|
||||
```
|
||||
|
|
@ -316,20 +216,18 @@ require('solarized').setup {
|
|||
The `colors` config allows you to extend or modify the color palette used by
|
||||
solarized.
|
||||
|
||||
> [!TIP]
|
||||
> Use `:Solarized colors` to see available colors.
|
||||
|
||||
example:
|
||||
|
||||
```lua
|
||||
require('solarized').setup {
|
||||
on_colors = function(colors, color)
|
||||
local lighten = color.tint
|
||||
local darken = color.darken
|
||||
colors = function(colors, colorhelper)
|
||||
local darken = colorhelper.darken
|
||||
local lighten = colorhelper.lighten
|
||||
local blend = colorhelper.blend
|
||||
|
||||
return {
|
||||
fg = lighten(colors.base00, 2),
|
||||
bg = darken(colors.base03, 30)
|
||||
fg = '#fff', -- output: #ffffff
|
||||
bg = darken(colors.base03, 100)
|
||||
}
|
||||
end,
|
||||
highlights = function(colors)
|
||||
|
|
@ -340,60 +238,43 @@ require('solarized').setup {
|
|||
}
|
||||
```
|
||||
|
||||
## Config Plugins
|
||||
## Config Enables
|
||||
|
||||
The plugins config allows you to enable or disable solarized support for
|
||||
The enables config allows you to enable or disable solarized support for
|
||||
spefic plugins or neovim's default highlights
|
||||
|
||||
example:
|
||||
|
||||
```lua
|
||||
return {
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
---@type solarized.config
|
||||
opts = {
|
||||
plugins = {
|
||||
navic = false,
|
||||
nvimtree = false,
|
||||
dashboard = false,
|
||||
noice = false,
|
||||
ministatusline = false,
|
||||
minitabline = false,
|
||||
ministarter = false,
|
||||
rainbowdelimiters = false,
|
||||
require('solarized').setup {
|
||||
enables = {
|
||||
editor = true,
|
||||
syntax = true,
|
||||
|
||||
-- PLUGINS
|
||||
bufferline = true,
|
||||
cmp = false, -- disabled
|
||||
diagnostic = true,
|
||||
indentblankline = true,
|
||||
lsp = true,
|
||||
lspsaga = false, -- disabled
|
||||
navic = true,
|
||||
semantic = true,
|
||||
telescope = true,
|
||||
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 Error Lens
|
||||
## Config Autocmd
|
||||
|
||||
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,
|
||||
}
|
||||
```
|
||||
This option enhances highlighting by enabling Solarized's autocmd feature.
|
||||
|
||||
## Lualine
|
||||
|
||||
|
|
@ -401,7 +282,6 @@ return {
|
|||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'solarized',
|
||||
-- theme = 'selenized',
|
||||
disabled_filetypes = {
|
||||
'NvimTree',
|
||||
},
|
||||
|
|
@ -431,37 +311,55 @@ require('barbecue').setup {
|
|||
|
||||
## Api
|
||||
|
||||
You can utilize useful functions to customize your Neovim plugins.
|
||||
|
||||
### Get Colors
|
||||
|
||||
```lua
|
||||
---@type solarized.palette
|
||||
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
|
||||
local palette = require('solarized.palette')
|
||||
local colors = palette.get_colors()
|
||||
```
|
||||
|
||||
-- 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
|
||||
print(shade(colors.yellow, i))
|
||||
end
|
||||
local shade = darken(colors.blue, i * 10)
|
||||
|
||||
for i = 1, 100, 10 do
|
||||
print(darken(colors.yellow, i))
|
||||
print(shade)
|
||||
end
|
||||
```
|
||||
|
||||
### How to get color tints
|
||||
|
||||
```lua
|
||||
local lighten = require('solarized.utils.colors').lighten
|
||||
|
||||
-- example 2: get tints
|
||||
for i = 1, 10, 1 do
|
||||
print(tint(colors.yellow, i))
|
||||
end
|
||||
local tints = lighten(colors.blue, i * 10)
|
||||
|
||||
for i = 1, 100, 10 do
|
||||
print(lighten(colors.yellow, i))
|
||||
print(tints)
|
||||
end
|
||||
|
||||
-- example 3: blend color
|
||||
local new_color = blend(colors.yellow, colors.base03, 0.2)
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
|
@ -474,8 +372,9 @@ Pull requests are welcome and appreciated.
|
|||
|
||||
Ethan Schoonover
|
||||
|
||||
## Credits and Reference
|
||||
## Credits and Reference 🎉
|
||||
|
||||
- [onedarkpro](https://github.com/olimorris/onedarkpro.nvim)
|
||||
- [solarized-vim](https://github.com/altercation/vim-colors-solarized)
|
||||
- [tokyonight](https://github.com/folke/tokyonight.nvim)
|
||||
|
||||
|
|
|
|||
17
VARIANTS.md
17
VARIANTS.md
|
|
@ -1,17 +0,0 @@
|
|||
# Variants
|
||||
|
||||
autumn
|
||||
|
||||

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

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

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

|
||||
|
|
@ -1,7 +1,8 @@
|
|||
; extends
|
||||
((pseudo_class_selector) @type (#set! "priority" 125))
|
||||
((class_selector) @type (#set! "priority" 125))
|
||||
((plain_value) @constant (#set! "priority" 125))
|
||||
((selectors) @type (#set! "priority" 125))
|
||||
((id_selector) @constructor (#set! "priority" 125))
|
||||
(tag_name) @tag
|
||||
(unit) @keyword
|
||||
(integer_value) @number
|
||||
(property_name) @field
|
||||
|
|
|
|||
|
|
@ -1,3 +1,2 @@
|
|||
; extends
|
||||
((nesting_selector) @keyword (#set! "priority" 125))
|
||||
(declaration (variable_value) @string)
|
||||
|
|
|
|||
|
|
@ -1,5 +1 @@
|
|||
-- Solarized colorscheme
|
||||
-- Repo: maxmx03/solarized.nvim
|
||||
-- Maintainer: Milianor github.com/maxmx03
|
||||
-- License: MIT License
|
||||
require('solarized').load()
|
||||
require('solarized.config').load()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
*solarized.nvim.txt*
|
||||
For NVIM v0.9.4 Last change: 2026 April 17
|
||||
*solarized.nvim.txt* For NVIM v0.9.4 Last change: 2024 May 13
|
||||
|
||||
==============================================================================
|
||||
Table of Contents *solarized.nvim-table-of-contents*
|
||||
|
|
@ -7,24 +6,22 @@ Table of Contents *solarized.nvim-table-of-contents*
|
|||
- Features |solarized.nvim-features|
|
||||
- Requirements |solarized.nvim-requirements|
|
||||
- Install from package manager |solarized.nvim-install-from-package-manager|
|
||||
- Solarized’s Annotations |solarized.nvim-solarized’s-annotations|
|
||||
- Manual Installation |solarized.nvim-manual-installation|
|
||||
- Docs |solarized.nvim-docs|
|
||||
- Help |solarized.nvim-help|
|
||||
- Commands |solarized.nvim-commands|
|
||||
- Default Config |solarized.nvim-default-config|
|
||||
- Config Variant |solarized.nvim-config-variant|
|
||||
- Config Transparency |solarized.nvim-config-transparency|
|
||||
- Config Themes |solarized.nvim-config-themes|
|
||||
- Config Styles |solarized.nvim-config-styles|
|
||||
- Config Highlights |solarized.nvim-config-highlights|
|
||||
- Config Colors |solarized.nvim-config-colors|
|
||||
- Config Plugins |solarized.nvim-config-plugins|
|
||||
- Config Error Lens |solarized.nvim-config-error-lens|
|
||||
- Config Enables |solarized.nvim-config-enables|
|
||||
- Config Autocmd |solarized.nvim-config-autocmd|
|
||||
- Lualine |solarized.nvim-lualine|
|
||||
- Barbecue |solarized.nvim-barbecue|
|
||||
- Api |solarized.nvim-api|
|
||||
- Contributing |solarized.nvim-contributing|
|
||||
- Designed by |solarized.nvim-designed-by|
|
||||
- Credits and Reference |solarized.nvim-credits-and-reference|
|
||||
- Credits and Reference 🎉 |solarized.nvim-credits-and-reference-🎉|
|
||||
1. Links |solarized.nvim-links|
|
||||
|
||||
Solarized is a sixteen color palette (eight monotones, eight accent colors)
|
||||
|
|
@ -34,26 +31,26 @@ designed for use with terminal and gui applications. click here to learn more
|
|||
- |solarized.nvim-features|
|
||||
- |solarized.nvim-requirements|
|
||||
- |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-docs|
|
||||
- |solarized.nvim-help|
|
||||
- |solarized.nvim-commands|
|
||||
- |solarized.nvim-default-config|
|
||||
- |solarized.nvim-config-variant|
|
||||
- |solarized.nvim-config-transparency|
|
||||
- |solarized.nvim-config-themes|
|
||||
- |solarized.nvim-config-styles|
|
||||
- |solarized.nvim-config-highlights|
|
||||
- |solarized.nvim-config-colors|
|
||||
- |solarized.nvim-config-plugins|
|
||||
- |solarized.nvim-config-error-lens|
|
||||
- |solarized.nvim-config-enables|
|
||||
- |solarized.nvim-config-autocmd|
|
||||
- |solarized.nvim-lualine|
|
||||
- |solarized.nvim-barbecue|
|
||||
- |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-designed-by|
|
||||
- |solarized.nvim-credits-and-reference|
|
||||
- |solarized.nvim-credits-and-reference-🎉|
|
||||
|
||||
|
||||
FEATURES *solarized.nvim-features*
|
||||
|
|
@ -82,19 +79,16 @@ Download using your preferred package manager.
|
|||
lazy <https://github.com/folke/lazy.nvim>
|
||||
|
||||
>lua
|
||||
return {
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
---@type solarized.config
|
||||
opts = {},
|
||||
config = function(_, opts)
|
||||
vim.o.termguicolors = true
|
||||
vim.o.background = 'light'
|
||||
require('solarized').setup(opts)
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
end,
|
||||
}
|
||||
{
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.o.background = 'dark' -- or 'light'
|
||||
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
end,
|
||||
},
|
||||
<
|
||||
|
||||
packer <https://github.com/wbthomason/packer.nvim>
|
||||
|
|
@ -103,56 +97,14 @@ packer <https://github.com/wbthomason/packer.nvim>
|
|||
use {
|
||||
'maxmx03/solarized.nvim',
|
||||
config = function()
|
||||
vim.o.background = 'dark'
|
||||
---@type solarized
|
||||
local solarized = require('solarized')
|
||||
vim.o.termguicolors = true
|
||||
vim.o.background = 'dark'
|
||||
solarized.setup({})
|
||||
vim.o.background = 'dark' -- or 'light'
|
||||
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
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*
|
||||
|
||||
To manually install Solarized, follow these steps:
|
||||
|
|
@ -164,14 +116,15 @@ To manually install Solarized, follow these steps:
|
|||
4. Copy these folders to the `~/.config/nvim` directory.
|
||||
|
||||
|
||||
DOCS *solarized.nvim-docs*
|
||||
HELP *solarized.nvim-help*
|
||||
|
||||
Use |solarized.nvim.txt| to see docs
|
||||
Use |solarized.nvim.txt| to get some help
|
||||
|
||||
|
||||
COMMANDS *solarized.nvim-commands*
|
||||
|
||||
- `: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*
|
||||
|
|
@ -181,108 +134,62 @@ DEFAULT CONFIG *solarized.nvim-default-config*
|
|||
|
||||
-- default config
|
||||
require('solarized').setup({
|
||||
transparent = {
|
||||
enabled = false,
|
||||
pmenu = true,
|
||||
normal = true,
|
||||
normalfloat = true,
|
||||
neotree = true,
|
||||
nvimtree = true,
|
||||
whichkey = true,
|
||||
telescope = true,
|
||||
lazy = true,
|
||||
},
|
||||
on_highlights = nil,
|
||||
on_colors = nil,
|
||||
palette = 'solarized', -- solarized (default) | selenized
|
||||
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||
error_lens = {
|
||||
text = false,
|
||||
symbol = false,
|
||||
},
|
||||
styles = {
|
||||
enabled = true,
|
||||
types = {},
|
||||
functions = {},
|
||||
parameters = {},
|
||||
comments = {},
|
||||
strings = {},
|
||||
keywords = {},
|
||||
variables = {},
|
||||
constants = {},
|
||||
},
|
||||
plugins = {
|
||||
treesitter = true,
|
||||
lspconfig = true,
|
||||
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,
|
||||
ale = true,
|
||||
coc = true,
|
||||
leap = true,
|
||||
alpha = true,
|
||||
yanky = true,
|
||||
gitgutter = true,
|
||||
mason = true,
|
||||
flash = true,
|
||||
},
|
||||
transparent = false, -- enable transparent background
|
||||
palette = 'solarized', -- or 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', -- or 'neo'
|
||||
autocmd = true,
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme = 'solarized'
|
||||
vim.cmd.colorscheme = 'solarized' -- or selenized
|
||||
<
|
||||
|
||||
|
||||
CONFIG VARIANT *solarized.nvim-config-variant*
|
||||
CONFIG THEMES *solarized.nvim-config-themes*
|
||||
|
||||
Solarized includes four variants: spring, summer, autumn, and winter.
|
||||
|
||||
preview <https://github.com/maxmx03/solarized.nvim/blob/main/VARIANTS.md>
|
||||
Solarized offers two themes: the default Solarized theme and Neo. These themes
|
||||
provide different visual styles to enhance your experience.
|
||||
|
||||
>lua
|
||||
require('solarized').setup {
|
||||
variant = 'winter', -- "spring" | "summer" | "autumn" | "winter" (default)
|
||||
}
|
||||
<
|
||||
|
||||
|
||||
CONFIG TRANSPARENCY *solarized.nvim-config-transparency*
|
||||
|
||||
By default, transparency is turned off, but you can easily enable it and
|
||||
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
|
||||
},
|
||||
}
|
||||
require('solarized').setup({
|
||||
theme = 'neo' -- or comment to use solarized default theme.
|
||||
})
|
||||
<
|
||||
|
||||
|
||||
|
|
@ -291,22 +198,12 @@ CONFIG STYLES *solarized.nvim-config-styles*
|
|||
The `styles` config allows you to customize the style of a highlight group.
|
||||
|
||||
>lua
|
||||
---@type solarized.styles
|
||||
local styles = {
|
||||
require('solarized').setup({
|
||||
styles = {
|
||||
comments = { italic = true, bold = false },
|
||||
functions = { italic = true },
|
||||
variables = { italic = false },
|
||||
}
|
||||
require('solarized').setup({
|
||||
styles = styles,
|
||||
})
|
||||
<
|
||||
|
||||
You can also disable all highlight group styles.
|
||||
|
||||
>lua
|
||||
require('solarized').setup({
|
||||
styles = { enabled = false },
|
||||
}
|
||||
})
|
||||
<
|
||||
|
||||
|
|
@ -319,23 +216,18 @@ example:
|
|||
|
||||
>lua
|
||||
require('solarized').setup {
|
||||
on_highlights = function (colors, color)
|
||||
local darken = color.darken
|
||||
local lighten = color.lighten
|
||||
local blend = color.blend
|
||||
local shade = color.shade
|
||||
local tint = color.tint
|
||||
highlights = function (colors, colorhelper)
|
||||
local darken = colorhelper.darken
|
||||
local lighten = colorhelper.lighten
|
||||
local blend = colorhelper.blend
|
||||
|
||||
---@type solarized.highlights
|
||||
local groups = {
|
||||
Visual = { bg = colors.base02, standout = true },
|
||||
Function = { fg = colors.yellow },
|
||||
IncSearch = { fg = colors.orange, bg = colors.mix_orange },
|
||||
Search = { fg = colors.violet, bg = shade(colors.violet, 5) },
|
||||
NormalFloat = { bg = darken(colors.base03, 25) }
|
||||
return {
|
||||
LineNr = { fg = c.base1, bg = c.base02 },
|
||||
CursorLineNr = { bg = c.base02 },
|
||||
CursorLine = { bg = c.base02 },
|
||||
Function = { italic = false },
|
||||
Visual = { bg = c.cyan },
|
||||
}
|
||||
|
||||
return groups
|
||||
end
|
||||
}
|
||||
<
|
||||
|
|
@ -346,19 +238,18 @@ CONFIG COLORS *solarized.nvim-config-colors*
|
|||
The `colors` config allows you to extend or modify the color palette used by
|
||||
solarized.
|
||||
|
||||
|
||||
[!TIP] Use `:Solarized colors` to see available colors.
|
||||
example:
|
||||
|
||||
>lua
|
||||
require('solarized').setup {
|
||||
on_colors = function(colors, color)
|
||||
local lighten = color.tint
|
||||
local darken = color.darken
|
||||
colors = function(colors, colorhelper)
|
||||
local darken = colorhelper.darken
|
||||
local lighten = colorhelper.lighten
|
||||
local blend = colorhelper.blend
|
||||
|
||||
return {
|
||||
fg = lighten(colors.base00, 2),
|
||||
bg = darken(colors.base03, 30)
|
||||
fg = '#fff', -- output: #ffffff
|
||||
bg = darken(colors.base03, 100)
|
||||
}
|
||||
end,
|
||||
highlights = function(colors)
|
||||
|
|
@ -370,61 +261,44 @@ example:
|
|||
<
|
||||
|
||||
|
||||
CONFIG PLUGINS *solarized.nvim-config-plugins*
|
||||
CONFIG ENABLES *solarized.nvim-config-enables*
|
||||
|
||||
The plugins config allows you to enable or disable solarized support for spefic
|
||||
The enables config allows you to enable or disable solarized support for spefic
|
||||
plugins or neovim’s default highlights
|
||||
|
||||
example:
|
||||
|
||||
>lua
|
||||
return {
|
||||
'maxmx03/solarized.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
---@type solarized.config
|
||||
opts = {
|
||||
plugins = {
|
||||
navic = false,
|
||||
nvimtree = false,
|
||||
dashboard = false,
|
||||
noice = false,
|
||||
ministatusline = false,
|
||||
minitabline = false,
|
||||
ministarter = false,
|
||||
rainbowdelimiters = false,
|
||||
require('solarized').setup {
|
||||
enables = {
|
||||
editor = true,
|
||||
syntax = true,
|
||||
|
||||
-- PLUGINS
|
||||
bufferline = true,
|
||||
cmp = false, -- disabled
|
||||
diagnostic = true,
|
||||
indentblankline = true,
|
||||
lsp = true,
|
||||
lspsaga = false, -- disabled
|
||||
navic = true,
|
||||
semantic = true,
|
||||
telescope = true,
|
||||
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 ERROR LENS *solarized.nvim-config-error-lens*
|
||||
CONFIG AUTOCMD *solarized.nvim-config-autocmd*
|
||||
|
||||
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,
|
||||
}
|
||||
<
|
||||
This option enhances highlighting by enabling Solarized’s autocmd feature.
|
||||
|
||||
|
||||
LUALINE *solarized.nvim-lualine*
|
||||
|
|
@ -433,7 +307,6 @@ LUALINE *solarized.nvim-lualine*
|
|||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'solarized',
|
||||
-- theme = 'selenized',
|
||||
disabled_filetypes = {
|
||||
'NvimTree',
|
||||
},
|
||||
|
|
@ -466,37 +339,59 @@ BARBECUE *solarized.nvim-barbecue*
|
|||
|
||||
API *solarized.nvim-api*
|
||||
|
||||
You can utilize useful functions to customize your Neovim plugins.
|
||||
|
||||
|
||||
GET COLORS ~
|
||||
|
||||
>lua
|
||||
---@type solarized.palette
|
||||
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
|
||||
local palette = require('solarized.palette')
|
||||
local colors = palette.get_colors()
|
||||
<
|
||||
|
||||
|
||||
COLOR UTILS ~
|
||||
|
||||
>lua
|
||||
local color = require('solarized.utils.colors')
|
||||
|
||||
-- example 1: get shades
|
||||
-- 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
|
||||
print(shade(colors.yellow, i))
|
||||
end
|
||||
local shade = darken(colors.blue, i * 10)
|
||||
|
||||
for i = 1, 100, 10 do
|
||||
print(darken(colors.yellow, i))
|
||||
print(shade)
|
||||
end
|
||||
<
|
||||
|
||||
|
||||
HOW TO GET COLOR TINTS ~
|
||||
|
||||
>lua
|
||||
local lighten = require('solarized.utils.colors').lighten
|
||||
|
||||
-- example 2: get tints
|
||||
for i = 1, 10, 1 do
|
||||
print(tint(colors.yellow, i))
|
||||
end
|
||||
local tints = lighten(colors.blue, i * 10)
|
||||
|
||||
for i = 1, 100, 10 do
|
||||
print(lighten(colors.yellow, i))
|
||||
print(tints)
|
||||
end
|
||||
|
||||
-- example 3: blend color
|
||||
local new_color = blend(colors.yellow, colors.base03, 0.2)
|
||||
<
|
||||
|
||||
|
||||
|
|
@ -512,8 +407,9 @@ DESIGNED BY *solarized.nvim-designed-by*
|
|||
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>
|
||||
- tokyonight <https://github.com/folke/tokyonight.nvim>
|
||||
|
||||
|
|
@ -522,7 +418,7 @@ CREDITS AND REFERENCE *solarized.nvim-credits-and-reference*
|
|||
==============================================================================
|
||||
1. Links *solarized.nvim-links*
|
||||
|
||||
1. *Component 1*: https://github.com/user-attachments/assets/11d8bd97-0f99-4413-937a-a5eaf4b2a4db
|
||||
1. *solarized*: https://github.com/maxmx03/solarized.nvim/assets/50273941/3c2ffda7-9efb-46f4-ad82-7dfd257dda39
|
||||
2. *Ethan Schoonover*: https://github.com/altercation.png?size=100
|
||||
3. *Raphael*: https://github.com/glepnir.png?size=100
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
services:
|
||||
solarized:
|
||||
build: .
|
||||
|
|
@ -1,78 +1,40 @@
|
|||
local config = require 'solarized.config'
|
||||
if vim.o.background == 'dark' then
|
||||
local palette = require 'solarized.palette'
|
||||
local c = palette[config.palette]
|
||||
return {
|
||||
normal = {},
|
||||
ellipsis = { fg = c.base0 },
|
||||
separator = { link = 'Keyword' },
|
||||
modified = { fg = c.diag_warning },
|
||||
dirname = { link = 'Directory' },
|
||||
basename = { fg = c.base0, bold = true },
|
||||
context = { fg = c.base0 },
|
||||
context_file = { fg = c.base0 },
|
||||
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' },
|
||||
}
|
||||
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
|
||||
local palette = require('solarized.palette')
|
||||
local c = palette.get_colors()
|
||||
|
||||
local M = {
|
||||
normal = {},
|
||||
ellipsis = { fg = c.base0 },
|
||||
separator = { link = 'Keyword' },
|
||||
modified = { fg = c.warning },
|
||||
dirname = { link = 'Directory' },
|
||||
basename = { fg = c.base0, bold = true },
|
||||
context = { fg = c.base0 },
|
||||
context_file = { fg = c.base0 },
|
||||
context_module = { link = '@namespace' },
|
||||
context_namespace = { link = '@namespace' },
|
||||
context_package = { link = 'Directory' },
|
||||
context_class = { link = 'Type' },
|
||||
context_method = { link = 'Function' },
|
||||
context_property = { link = '@field' },
|
||||
context_field = { link = '@field' },
|
||||
context_constructor = { link = '@constructor' },
|
||||
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 = '@field' },
|
||||
context_key = { link = 'Delimiter' },
|
||||
context_null = { link = 'Constant' },
|
||||
context_enum_member = { link = 'Constant' },
|
||||
context_struct = { link = 'Structure' },
|
||||
context_event = { fg = c.base2 },
|
||||
context_operator = { link = 'Operator' },
|
||||
context_type_parameter = { link = 'Type' },
|
||||
}
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
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,47 +1,25 @@
|
|||
if vim.o.background == 'dark' then
|
||||
local palette = require 'solarized.palette'
|
||||
local c = palette.solarized
|
||||
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.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
|
||||
local solarized_palette = require('solarized.palette')
|
||||
local colors = solarized_palette.get_colors()
|
||||
|
||||
local M = {
|
||||
normal = {
|
||||
a = { fg = colors.base03, bg = colors.blue, gui = 'bold' },
|
||||
b = { fg = colors.base02, bg = colors.base1 },
|
||||
c = { fg = colors.base1, bg = colors.base02 },
|
||||
z = { fg = colors.base03, bg = colors.blue },
|
||||
},
|
||||
insert = {
|
||||
a = { fg = colors.base03, bg = colors.green },
|
||||
},
|
||||
visual = {
|
||||
a = { fg = colors.base03, bg = colors.magenta },
|
||||
},
|
||||
replace = {
|
||||
a = { fg = colors.base03, bg = colors.red },
|
||||
},
|
||||
command = {
|
||||
a = { fg = colors.base03, bg = colors.orange },
|
||||
},
|
||||
}
|
||||
|
||||
return M
|
||||
|
|
|
|||
68
lua/solarized/autocmd.lua
Normal file
68
lua/solarized/autocmd.lua
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
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
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
---@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,42 +1,38 @@
|
|||
local command = {}
|
||||
local command = {
|
||||
zen_mode = false,
|
||||
}
|
||||
|
||||
local subcommands = {
|
||||
colors = function(_)
|
||||
local config = require 'solarized.config'
|
||||
local palette = require 'solarized.palette'
|
||||
local colors = palette[config.palette]
|
||||
colors = function(arg)
|
||||
local palette = require('solarized.palette')
|
||||
local colors = palette.get_colors()
|
||||
|
||||
local buf = vim.api.nvim_create_buf(true, true)
|
||||
local max_length = vim.tbl_count(colors)
|
||||
|
||||
local function color_desc(color)
|
||||
local colors_desc = {
|
||||
base03 = 'background (dark)',
|
||||
base02 = 'background highlight (dark)',
|
||||
base01 = 'comments (dark)',
|
||||
base00 = 'foreground (light)',
|
||||
base0 = 'foreground (dark)',
|
||||
base1 = 'comments (light)',
|
||||
base2 = ' background highlight (light)',
|
||||
base3 = 'background (light)',
|
||||
base03 = 'background tone (main)',
|
||||
base02 = 'background tone (highlight/menu/LineNr)',
|
||||
base01 = 'content tone (comment)',
|
||||
base00 = 'content tone (winseparator)',
|
||||
base0 = 'content tone (foreground)',
|
||||
base1 = 'content tone (statusline/tabline)',
|
||||
base2 = 'background tone (highlight)',
|
||||
base3 = 'background tone (main)',
|
||||
}
|
||||
local desc = colors_desc[color]
|
||||
|
||||
if not desc then
|
||||
return ''
|
||||
end
|
||||
if not desc then return '' end
|
||||
|
||||
return desc
|
||||
end
|
||||
|
||||
local function set_lines(color, hex, line)
|
||||
vim.api.nvim_buf_set_lines(buf, line, (line + 1), false, {
|
||||
color
|
||||
.. string.rep('.', max_length - #color)
|
||||
.. ' = "'
|
||||
.. tostring(hex)
|
||||
.. '" '
|
||||
.. color_desc(color),
|
||||
color .. string.rep('.', max_length - #color) .. ' = "' .. tostring(
|
||||
hex
|
||||
) .. '" ' .. color_desc(color),
|
||||
})
|
||||
return line + 1
|
||||
end
|
||||
|
|
@ -57,6 +53,31 @@ local subcommands = {
|
|||
vim.api.nvim_buf_set_name(buf, 'Solarized Colors')
|
||||
vim.api.nvim_win_set_buf(0, buf)
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -1,141 +1,104 @@
|
|||
---@class solarized.transparent
|
||||
---@field normal? boolean
|
||||
---@field normalfloat? boolean
|
||||
---@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 palette = require('solarized.palette')
|
||||
local solarized = require('solarized.highlights')
|
||||
local colorhelper = require('solarized.utils.colors')
|
||||
local utils = require('solarized.utils')
|
||||
|
||||
---@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
|
||||
local M = {}
|
||||
|
||||
---@class solarized.plugins
|
||||
---@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
|
||||
M.config = nil
|
||||
M.colors = nil
|
||||
|
||||
---@class solarized.error_lens
|
||||
---@field text? boolean
|
||||
---@field symbol? boolean
|
||||
--- Define and return default config
|
||||
---@return table default_config
|
||||
function M.default_config()
|
||||
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
|
||||
|
||||
---@class solarized.config
|
||||
---@field transparent? solarized.transparent
|
||||
---@field on_highlights? fun(colors: solarized.palette, color: solarized.color): solarized.highlights
|
||||
---@field on_colors? fun(colors: solarized.palette, color: solarized.color): solarized.palette
|
||||
---@field styles? solarized.styles
|
||||
---@field palette? "solarized" | "selenized"
|
||||
---@field variant? "spring" | "summer" | "autumn" | "winter"
|
||||
---@field plugins? solarized.plugins
|
||||
---@field error_lens? solarized.error_lens
|
||||
return {
|
||||
transparent = {
|
||||
enabled = false,
|
||||
pmenu = true,
|
||||
normal = true,
|
||||
normalfloat = true,
|
||||
neotree = true,
|
||||
nvimtree = true,
|
||||
whichkey = true,
|
||||
telescope = true,
|
||||
lazy = true,
|
||||
mason = true,
|
||||
},
|
||||
on_highlights = nil,
|
||||
on_colors = nil,
|
||||
palette = 'solarized',
|
||||
variant = 'winter',
|
||||
error_lens = {
|
||||
text = false,
|
||||
symbol = false,
|
||||
},
|
||||
styles = {
|
||||
enabled = true,
|
||||
types = {},
|
||||
functions = {},
|
||||
parameters = {},
|
||||
comments = {},
|
||||
strings = {},
|
||||
keywords = {},
|
||||
variables = {},
|
||||
statements = {},
|
||||
constants = {},
|
||||
},
|
||||
plugins = {
|
||||
treesitter = true,
|
||||
lspconfig = true,
|
||||
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,
|
||||
},
|
||||
}
|
||||
function M.load()
|
||||
if vim.g.colors_name then vim.cmd('hi clear') end
|
||||
|
||||
if vim.fn.exists('syntax_on') then vim.cmd('syntax reset') end
|
||||
|
||||
vim.o.termguicolors = true
|
||||
vim.g.colors_name = 'solarized'
|
||||
|
||||
local colors = {}
|
||||
|
||||
colors = palette.get_colors()
|
||||
solarized.highlights(M.colors or colors, M.config or M.default_config())
|
||||
end
|
||||
|
||||
--- Solarized setup
|
||||
---
|
||||
--- @param opts? table The user-provided configuration to be merged.
|
||||
--- - transparent (boolean): Specifies if transparency is enabled.
|
||||
--- - styles (table): A table specifying various style options.
|
||||
--- - comments (table): Specifies if comments should be styled.
|
||||
--- - functions (table): Specifies if functions should be styled.
|
||||
--- - variables (table): Specifies if variables should be styled.
|
||||
--- - numbers (table): Specifies if numbers should be styled.
|
||||
--- - constants (table): Specifies if constants should be styled.
|
||||
--- - parameters (table): Specifies if parameters should be styled.
|
||||
--- - conditionals (table): Specifies if conditionals should be styled.
|
||||
--- - highlights (table): A table specifying custom highlight values.
|
||||
--- - colors (table): A table specifying custom color values.
|
||||
--- - enables (table): A table specifying plugins to be enabled or disabled
|
||||
--- - theme (string): Specifies the theme to be used.
|
||||
function M.setup(opts)
|
||||
M.config = vim.tbl_deep_extend('force', M.default_config(), opts or {})
|
||||
local colors = palette.get_colors()
|
||||
|
||||
utils.on_config({
|
||||
tbl = function()
|
||||
M.colors = palette.extend_colors(colors, M.config.colors)
|
||||
end,
|
||||
fnc = function()
|
||||
M.colors =
|
||||
palette.extend_colors(colors, M.config.colors(colors, colorhelper))
|
||||
end,
|
||||
}, M.config.colors)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,395 +0,0 @@
|
|||
---@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
|
||||
69
lua/solarized/highlights.lua
Normal file
69
lua/solarized/highlights.lua
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
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 = {}
|
||||
|
||||
if highlight_value.link then
|
||||
val = highlight_value
|
||||
else
|
||||
val = vim.tbl_extend('force', highlight, highlight_value)
|
||||
end
|
||||
|
||||
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
|
||||
|
|
@ -1,830 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,823 +0,0 @@
|
|||
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,53 +1,7 @@
|
|||
---@class solarized
|
||||
---@field config? solarized.config
|
||||
---@field setup? fun(config: solarized.config)
|
||||
---@field load? fun()
|
||||
local config = require('solarized.config')
|
||||
|
||||
---@type solarized
|
||||
local M = {}
|
||||
|
||||
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
|
||||
M.setup = config.setup
|
||||
|
||||
return M
|
||||
|
|
|
|||
160
lua/solarized/palette.lua
Normal file
160
lua/solarized/palette.lua
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
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 = '#ece3cc', -- 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 = '#ece3cc', -- background tone (highlight/menu/LineNr)
|
||||
base03 = '#fbf3db', -- background tone lighter (main)
|
||||
-- accent
|
||||
yellow = '#ad8900',
|
||||
orange = '#c25d1e',
|
||||
red = '#d2212d',
|
||||
magenta = '#ca4898',
|
||||
violet = '#8762c6',
|
||||
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
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
---@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
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
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
|
||||
16
lua/solarized/themes/default/bufferline.lua
Normal file
16
lua/solarized/themes/default/bufferline.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
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
|
||||
36
lua/solarized/themes/default/cmp.lua
Normal file
36
lua/solarized/themes/default/cmp.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
23
lua/solarized/themes/default/dashboard.lua
Normal file
23
lua/solarized/themes/default/dashboard.lua
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
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
|
||||
52
lua/solarized/themes/default/diagnostic.lua
Normal file
52
lua/solarized/themes/default/diagnostic.lua
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
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
|
||||
110
lua/solarized/themes/default/editor.lua
Normal file
110
lua/solarized/themes/default/editor.lua
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
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
|
||||
20
lua/solarized/themes/default/gitsign.lua
Normal file
20
lua/solarized/themes/default/gitsign.lua
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
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
|
||||
9
lua/solarized/themes/default/hop.lua
Normal file
9
lua/solarized/themes/default/hop.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
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
|
||||
17
lua/solarized/themes/default/indentblankline.lua
Normal file
17
lua/solarized/themes/default/indentblankline.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
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
|
||||
24
lua/solarized/themes/default/lsp.lua
Normal file
24
lua/solarized/themes/default/lsp.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
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
|
||||
56
lua/solarized/themes/default/lspsaga.lua
Normal file
56
lua/solarized/themes/default/lspsaga.lua
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
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
|
||||
38
lua/solarized/themes/default/mini.lua
Normal file
38
lua/solarized/themes/default/mini.lua
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
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
|
||||
33
lua/solarized/themes/default/navic.lua
Normal file
33
lua/solarized/themes/default/navic.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
27
lua/solarized/themes/default/neogit.lua
Normal file
27
lua/solarized/themes/default/neogit.lua
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
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
|
||||
28
lua/solarized/themes/default/neotree.lua
Normal file
28
lua/solarized/themes/default/neotree.lua
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NeoTreeNormal', {
|
||||
fg = c.base0,
|
||||
}, { transparent = config.transparent })
|
||||
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 })
|
||||
set_hl('NeoTreeDotfile', { fg = c.base01 })
|
||||
set_hl('NeoTreeFileStats', { fg = c.base01 })
|
||||
set_hl('NeoTreeTitleBar', { fg = darken(c.blue, 50), bg = c.blue })
|
||||
end
|
||||
9
lua/solarized/themes/default/noice.lua
Normal file
9
lua/solarized/themes/default/noice.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
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
|
||||
26
lua/solarized/themes/default/notify.lua
Normal file
26
lua/solarized/themes/default/notify.lua
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
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
|
||||
32
lua/solarized/themes/default/semantic.lua
Normal file
32
lua/solarized/themes/default/semantic.lua
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
48
lua/solarized/themes/default/syntax.lua
Normal file
48
lua/solarized/themes/default/syntax.lua
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
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
|
||||
43
lua/solarized/themes/default/telescope.lua
Normal file
43
lua/solarized/themes/default/telescope.lua
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
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
|
||||
50
lua/solarized/themes/default/todo.lua
Normal file
50
lua/solarized/themes/default/todo.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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
|
||||
66
lua/solarized/themes/default/tree.lua
Normal file
66
lua/solarized/themes/default/tree.lua
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
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
|
||||
114
lua/solarized/themes/default/treesitter.lua
Normal file
114
lua/solarized/themes/default/treesitter.lua
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
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('@character.printf', { fg = c.violet }) -- 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
|
||||
12
lua/solarized/themes/default/whichkey.lua
Normal file
12
lua/solarized/themes/default/whichkey.lua
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
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
|
||||
16
lua/solarized/themes/neo/bufferline.lua
Normal file
16
lua/solarized/themes/neo/bufferline.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
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
|
||||
36
lua/solarized/themes/neo/cmp.lua
Normal file
36
lua/solarized/themes/neo/cmp.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
23
lua/solarized/themes/neo/dashboard.lua
Normal file
23
lua/solarized/themes/neo/dashboard.lua
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
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
|
||||
32
lua/solarized/themes/neo/diagnostic.lua
Normal file
32
lua/solarized/themes/neo/diagnostic.lua
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
109
lua/solarized/themes/neo/editor.lua
Normal file
109
lua/solarized/themes/neo/editor.lua
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
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
|
||||
8
lua/solarized/themes/neo/gitsign.lua
Normal file
8
lua/solarized/themes/neo/gitsign.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
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
|
||||
9
lua/solarized/themes/neo/hop.lua
Normal file
9
lua/solarized/themes/neo/hop.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
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
|
||||
32
lua/solarized/themes/neo/indentblankline.lua
Normal file
32
lua/solarized/themes/neo/indentblankline.lua
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
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
|
||||
24
lua/solarized/themes/neo/lsp.lua
Normal file
24
lua/solarized/themes/neo/lsp.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
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
|
||||
55
lua/solarized/themes/neo/lspsaga.lua
Normal file
55
lua/solarized/themes/neo/lspsaga.lua
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
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
|
||||
38
lua/solarized/themes/neo/mini.lua
Normal file
38
lua/solarized/themes/neo/mini.lua
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
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
|
||||
33
lua/solarized/themes/neo/navic.lua
Normal file
33
lua/solarized/themes/neo/navic.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
27
lua/solarized/themes/neo/neogit.lua
Normal file
27
lua/solarized/themes/neo/neogit.lua
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
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
|
||||
28
lua/solarized/themes/neo/neotree.lua
Normal file
28
lua/solarized/themes/neo/neotree.lua
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NeoTreeNormal', {
|
||||
fg = c.base0,
|
||||
}, { transparent = config.transparent })
|
||||
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 })
|
||||
set_hl('NeoTreeDotfile', { fg = c.base01 })
|
||||
set_hl('NeoTreeFileStats', { fg = c.base01 })
|
||||
set_hl('NeoTreeTitleBar', { fg = darken(c.cyan, 50), bg = c.cyan })
|
||||
end
|
||||
9
lua/solarized/themes/neo/noice.lua
Normal file
9
lua/solarized/themes/neo/noice.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
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
|
||||
26
lua/solarized/themes/neo/notify.lua
Normal file
26
lua/solarized/themes/neo/notify.lua
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
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
|
||||
33
lua/solarized/themes/neo/semantic.lua
Normal file
33
lua/solarized/themes/neo/semantic.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
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
|
||||
44
lua/solarized/themes/neo/syntax.lua
Normal file
44
lua/solarized/themes/neo/syntax.lua
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
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
|
||||
45
lua/solarized/themes/neo/telescope.lua
Normal file
45
lua/solarized/themes/neo/telescope.lua
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
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
|
||||
50
lua/solarized/themes/neo/todo.lua
Normal file
50
lua/solarized/themes/neo/todo.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
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
|
||||
66
lua/solarized/themes/neo/tree.lua
Normal file
66
lua/solarized/themes/neo/tree.lua
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
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
|
||||
114
lua/solarized/themes/neo/treesitter.lua
Normal file
114
lua/solarized/themes/neo/treesitter.lua
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
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('@character.printf', { fg = c.violet }) -- 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
|
||||
12
lua/solarized/themes/neo/whichkey.lua
Normal file
12
lua/solarized/themes/neo/whichkey.lua
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
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,37 +0,0 @@
|
|||
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,
|
||||
}
|
||||
88
lua/solarized/utils/colors.lua
Normal file
88
lua/solarized/utils/colors.lua
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
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
|
||||
49
lua/solarized/utils/init.lua
Normal file
49
lua/solarized/utils/init.lua
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
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
|
||||
7
lua/solarized/utils/test.lua
Normal file
7
lua/solarized/utils/test.lua
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
local M = {}
|
||||
|
||||
function M.to_hex(decimal)
|
||||
return string.format('#%06x', decimal)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,300 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,294 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
vim.api.nvim_create_user_command('Solarized', function(args)
|
||||
require('solarized.command').load(args.fargs[1], vim.list_slice(args.fargs, 2))
|
||||
require('solarized.command').load(
|
||||
args.fargs[1],
|
||||
vim.list_slice(args.fargs, 2)
|
||||
)
|
||||
end, {
|
||||
range = true,
|
||||
nargs = '+',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
column_width = 100
|
||||
column_width = 80
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferSingle"
|
||||
call_parentheses = "None"
|
||||
call_parentheses = "Always"
|
||||
collapse_simple_statement = "ConditionalOnly"
|
||||
|
|
|
|||
27
test.py
Executable file
27
test.py
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def run_commands(commands):
|
||||
for command in commands:
|
||||
process = subprocess.Popen(command, shell=True)
|
||||
process.wait()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
install_dependencies = False
|
||||
if len(sys.argv) > 1 and sys.argv[1] == '--install':
|
||||
install_dependencies = True
|
||||
|
||||
commands = []
|
||||
if install_dependencies:
|
||||
commands.append('cargo install stylua')
|
||||
commands.append('sudo luarocks install luacheck')
|
||||
commands.append('sudo luarocks install vusted')
|
||||
|
||||
commands.append('stylua . -f ./stylua.toml')
|
||||
commands.append('vusted ./tests')
|
||||
|
||||
run_commands(commands)
|
||||
19
tests/autocmd_spec.lua
Normal file
19
tests/autocmd_spec.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
describe('Autocmd', function()
|
||||
test('Solarized Highlights is being created', function()
|
||||
vim.cmd.colorscheme('solarized')
|
||||
local todo = {
|
||||
'TODO',
|
||||
'WARN',
|
||||
'TEST',
|
||||
'PERF',
|
||||
'NOTE',
|
||||
'HACK',
|
||||
'FIX',
|
||||
}
|
||||
|
||||
for _, name in pairs(todo) do
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'SolarizedToken' .. name })
|
||||
assert.is_true(type(output.fg) == 'number')
|
||||
end
|
||||
end)
|
||||
end)
|
||||
47
tests/colors_spec.lua
Normal file
47
tests/colors_spec.lua
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
local colorhelper = require('solarized.utils.colors')
|
||||
local solarized_palette = require('solarized.palette')
|
||||
|
||||
describe('Color Conversions', function()
|
||||
test('Convert hex to RGB', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local red, green, blue = colorhelper.hex_to_rgb(colors.yellow)
|
||||
local expect = { red = 181, green = 137, blue = 0 }
|
||||
|
||||
assert.are.same(expect.red, red)
|
||||
assert.are.same(expect.green, green)
|
||||
assert.are.same(expect.blue, blue)
|
||||
end)
|
||||
|
||||
test('Convert RGB to hex', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local yellow = { red = 181, green = 137, blue = 0 }
|
||||
local output = colorhelper.rgb_to_hex(yellow.red, yellow.green, yellow.blue)
|
||||
local expect = colors.yellow
|
||||
|
||||
assert.equals(expect, string.lower(output))
|
||||
end)
|
||||
|
||||
test('Darken the color by percentage', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local output = colorhelper.darken(colors.green, 100)
|
||||
local expect = '#000000'
|
||||
assert.equals(expect, output)
|
||||
end)
|
||||
|
||||
test('Lighten the color by percentage', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local output = colorhelper.lighten(colors.green, 100)
|
||||
local expect = '#ffffff'
|
||||
assert.equals(expect, output)
|
||||
end)
|
||||
|
||||
test('Blend colors', function()
|
||||
local blend = require('solarized.utils.colors').blend
|
||||
local alpha = 0.15
|
||||
local expect = '#27383f'
|
||||
|
||||
local output = blend('#73daca', '#1a1b26', alpha)
|
||||
|
||||
assert.equals(output, expect)
|
||||
end)
|
||||
end)
|
||||
34
tests/config_spec.lua
Normal file
34
tests/config_spec.lua
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
describe('Configuration', function()
|
||||
local default_config = require('solarized.config').default_config()
|
||||
|
||||
test('Default configuration', function()
|
||||
local expect = 'table'
|
||||
|
||||
assert.equals(expect, type(default_config))
|
||||
end)
|
||||
|
||||
test('Unique configuration table instances', function()
|
||||
local config1 = require('solarized.config').default_config()
|
||||
local config2 = require('solarized.config').default_config()
|
||||
|
||||
assert.are_not.equals(config1, config2)
|
||||
end)
|
||||
|
||||
test('Extend default configuration', function()
|
||||
local user_config = {
|
||||
transparent = true,
|
||||
styles = {},
|
||||
}
|
||||
local config = vim.tbl_deep_extend('force', default_config, user_config)
|
||||
local expect = 'table'
|
||||
local expect2 = true
|
||||
|
||||
assert.equals(expect, type(config.styles.comments))
|
||||
assert.equals(expect, type(config.styles.functions))
|
||||
assert.equals(expect, type(config.styles.variables))
|
||||
assert.equals(expect, type(config.styles.numbers))
|
||||
assert.equals(expect, type(config.colors))
|
||||
assert.equals(expect, type(config.highlights))
|
||||
assert.equals(expect2, config.transparent)
|
||||
end)
|
||||
end)
|
||||
|
|
@ -1,23 +1,30 @@
|
|||
local nvim_get_hl = require('solarized.utils').nvim_get_hl
|
||||
local utils = require('solarized.utils.test')
|
||||
local to_hex = utils.to_hex
|
||||
|
||||
describe('solarized.load', function()
|
||||
describe('Initialization', function()
|
||||
setup(function()
|
||||
vim.o.background = 'dark'
|
||||
vim.cmd.colorscheme 'solarized'
|
||||
vim.o.background = 'light'
|
||||
vim.cmd.colorscheme('solarized')
|
||||
end)
|
||||
|
||||
test('name', function()
|
||||
local expected = 'solarized'
|
||||
assert.equal(expected, vim.g.colors_name)
|
||||
test('Loads without encountering any errors', function()
|
||||
assert.equal('solarized', vim.g.colors_name)
|
||||
assert.is_true(vim.o.termguicolors)
|
||||
end)
|
||||
|
||||
test('default config', function()
|
||||
local config = require 'solarized.config'
|
||||
assert.True(type(config) == 'table')
|
||||
test('Background is set to light', function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Normal' })
|
||||
local expect = '#fdf6e3'
|
||||
|
||||
assert.equals(expect, to_hex(output.bg))
|
||||
end)
|
||||
|
||||
test('set_highlight', function()
|
||||
local Comment = nvim_get_hl 'Comment'
|
||||
assert.True('#586E75' == Comment.fg)
|
||||
test('Selenized is being loaded', function()
|
||||
require('solarized').setup({ palette = 'selenized' })
|
||||
vim.cmd.colorscheme('solarized')
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Normal' })
|
||||
local expect = '#fbf3db'
|
||||
|
||||
assert.equals(expect, to_hex(output.bg))
|
||||
end)
|
||||
end)
|
||||
|
|
|
|||
39
tests/palette_spec.lua
Normal file
39
tests/palette_spec.lua
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
local solarized_palette = require('solarized.palette')
|
||||
|
||||
describe('Palette', function()
|
||||
test('Extend solarized color palette', function()
|
||||
local default_colors = solarized_palette.get_colors()
|
||||
local custom_colors = {
|
||||
blue2 = '#c7e8f3',
|
||||
purple = '#cf9aca',
|
||||
magenta2 = '#8e4162',
|
||||
}
|
||||
local output =
|
||||
solarized_palette.extend_colors(default_colors, custom_colors)
|
||||
local expect = vim.deepcopy(default_colors)
|
||||
expect.blue2 = custom_colors.blue2
|
||||
expect.purple = custom_colors.purple
|
||||
expect.magenta2 = custom_colors.magenta2
|
||||
|
||||
assert.are.same(expect, output)
|
||||
end)
|
||||
|
||||
test(
|
||||
'Correct any invalid colors when extending the solarized palette',
|
||||
function()
|
||||
local default_colors = solarized_palette.get_colors()
|
||||
local custom_colors = {
|
||||
white = '#aaaaaaa',
|
||||
pink = '#cf9',
|
||||
purple = '#8e4',
|
||||
}
|
||||
local output =
|
||||
solarized_palette.extend_colors(default_colors, custom_colors)
|
||||
local expect = vim.deepcopy(default_colors)
|
||||
expect.pink = '#cf9cf9'
|
||||
expect.purple = '#8e48e4'
|
||||
|
||||
assert.are.same(expect, output)
|
||||
end
|
||||
)
|
||||
end)
|
||||
|
|
@ -1,72 +1,85 @@
|
|||
local nvim_get_hl = require('solarized.utils').nvim_get_hl
|
||||
local solarized_palette = require('solarized.palette')
|
||||
local utils = require('solarized.utils.test')
|
||||
local to_hex = utils.to_hex
|
||||
|
||||
describe('solarized.setup', function()
|
||||
describe('Setup', function()
|
||||
setup(function()
|
||||
vim.o.background = 'light'
|
||||
---@type solarized
|
||||
local solarized = require 'solarized'
|
||||
local solarized = require('solarized')
|
||||
|
||||
solarized.setup {
|
||||
transparent = {
|
||||
enabled = true,
|
||||
},
|
||||
styles = {
|
||||
strings = { italic = true },
|
||||
comments = { bold = true },
|
||||
},
|
||||
on_colors = function()
|
||||
solarized.setup({
|
||||
theme = 'neo',
|
||||
colors = function(c, helper)
|
||||
return {
|
||||
mycolor = '#ffffff',
|
||||
fg = '#c7e8f3',
|
||||
bg = '#000',
|
||||
yellow2 = helper.darken(c.yellow, 20),
|
||||
}
|
||||
end,
|
||||
on_highlights = function(colors)
|
||||
styles = {
|
||||
comments = { italic = false, bold = true, underline = true },
|
||||
functions = { italic = true },
|
||||
},
|
||||
highlights = function(c)
|
||||
return {
|
||||
---@diagnostic disable-next-line: undefined-field
|
||||
CustomHighlight = { fg = colors.mycolor },
|
||||
Normal = { fg = c.fg, bg = c.bg },
|
||||
Function = { italic = false },
|
||||
Type = { fg = c.yellow2 },
|
||||
['@function.builtin'] = { link = 'Special' },
|
||||
}
|
||||
end,
|
||||
}
|
||||
vim.cmd 'colorscheme solarized'
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme('solarized')
|
||||
end)
|
||||
|
||||
test('transparent', function()
|
||||
local normal = nvim_get_hl 'Normal'
|
||||
assert.falsy(normal.bg)
|
||||
test('Customizing Highlight Groups', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local output1 = vim.api.nvim_get_hl(0, { name = 'Normal' })
|
||||
local output2 = vim.api.nvim_get_hl(0, { name = 'Function' })
|
||||
|
||||
assert.equals('#c7e8f3', to_hex(output1.fg))
|
||||
assert.equals('#000000', to_hex(output1.bg))
|
||||
assert.are_not.same(colors.yellow, to_hex(output2.fg))
|
||||
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)
|
||||
test('Changing Comment Style', function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Comment' })
|
||||
|
||||
assert.is_true(output.bold)
|
||||
assert.is_true(output.underline)
|
||||
assert.is_nil(output.italic)
|
||||
end)
|
||||
|
||||
test('styles', function()
|
||||
local strings = nvim_get_hl 'String'
|
||||
local comments = nvim_get_hl 'Comment'
|
||||
assert.True(strings.italic)
|
||||
assert.True(comments.bold)
|
||||
test('Changing Function Style', function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Function' })
|
||||
|
||||
assert.is_true(output.cterm.italic)
|
||||
end)
|
||||
|
||||
test('styles.enabled', function()
|
||||
local solarized = require 'solarized'
|
||||
solarized.setup {
|
||||
styles = {
|
||||
enabled = false,
|
||||
strings = { italic = true },
|
||||
comments = { bold = true },
|
||||
},
|
||||
}
|
||||
vim.cmd 'colorscheme solarized'
|
||||
test(
|
||||
'Customizable Highlight Groups Without Losing Previous Configuration',
|
||||
function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Function' })
|
||||
local default_colors = solarized_palette.get_colors()
|
||||
|
||||
local strings = nvim_get_hl 'String'
|
||||
local comments = nvim_get_hl 'Comment'
|
||||
assert.Nil(strings.italic)
|
||||
assert.Nil(comments.bold)
|
||||
assert.is_nil(output.italic)
|
||||
assert.equals(default_colors.blue, to_hex(output.fg))
|
||||
end
|
||||
)
|
||||
|
||||
test('Ability to Change the Default Theme', function()
|
||||
local colors = solarized_palette.get_colors()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Directory' })
|
||||
|
||||
assert.equals(colors.orange, to_hex(output.fg))
|
||||
end)
|
||||
|
||||
test('nil config', function()
|
||||
local solarized = require 'solarized'
|
||||
solarized.setup()
|
||||
vim.cmd 'colorscheme solarized'
|
||||
end)
|
||||
test(
|
||||
'Function.builtin in linked to special, but doesnt have guifg',
|
||||
function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = '@function.builtin' })
|
||||
local expected = { link = 'Special' }
|
||||
assert.are.same(expected, output)
|
||||
end
|
||||
)
|
||||
end)
|
||||
|
|
|
|||
Loading…
Reference in a new issue