mirror of
https://github.com/maxmx03/solarized.nvim.git
synced 2026-09-10 07:26:26 -04:00
feat: Solarized theme restructuring
The "Solarized Neo" theme, which included both light and dark variants, has been dropped. The light variant of "Neo" is now the "Solarized Light" theme. The original "Solarized" by Ethan Schoonover, which also had light and dark versions, is now solely represented as the "Solarized Dark" theme.
This commit is contained in:
parent
322be5da46
commit
5b304a17ae
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
sample
|
||||
vscode
|
||||
build
|
||||
|
|
@ -1,3 +1,8 @@
|
|||
{
|
||||
"diagnostics.disable": ["undefined-field"]
|
||||
"workspace.library": [
|
||||
"/home/milianor/neovim/share/nvim/runtime",
|
||||
"${3rd}/luv/library",
|
||||
"${3rd}/busted/library",
|
||||
"${3rd}/luassert/library"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ form the core values (with an optional fifth for emphasized content).
|
|||
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/)
|
||||
- [maketintshade](https://maketintsandshades.com/)
|
||||
- [pinetools](https://pinetools.com/blend-colors)
|
||||
- [colordesigner](https://colordesigner.io/)
|
||||
|
||||
Additionally, I provide custom functions for color manipulation within the
|
||||
plugin. These functions are designed to give users more control over their
|
||||
|
|
@ -48,7 +48,7 @@ colorscheme.
|
|||
| cyan | #2aa198 | optional |
|
||||
| green | #859900 | optional |
|
||||
|
||||
#### Extra colors
|
||||
#### Solarized Dark Extra colors
|
||||
|
||||
| Name | Hex (balance 70) | Description |
|
||||
| ----------- | ---------------- | --------------------------------- |
|
||||
|
|
@ -83,6 +83,20 @@ colorscheme.
|
|||
| cyan | #41c7b9 | optional |
|
||||
| green | #75b938 | optional |
|
||||
|
||||
#### Selenized Dark Extra colors
|
||||
|
||||
| Name | Hex (balance 70) | Description |
|
||||
| ----------- | ---------------- | --------------------------------- |
|
||||
| base04 | #184956 | 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 |
|
||||
|
||||
### Solarized Light
|
||||
|
||||
> [!NOTE]
|
||||
|
|
@ -109,6 +123,19 @@ colorscheme.
|
|||
| cyan | #2aa198 | optional |
|
||||
| green | #859900 | optional |
|
||||
|
||||
#### Solarized Light Extra colors
|
||||
|
||||
| Name | Hex (balance 70) | Description |
|
||||
| ----------- | ---------------- | -------------------------- |
|
||||
| mix_yellow | #e7d59e | yellow + base3 / optional |
|
||||
| mix_orange | #eec2a5 | orange + base3 /optional |
|
||||
| mix_red | #f3bbac | red + base3 / optional |
|
||||
| mix_magenta | #f0bcc5 | magenta + base3 / optional |
|
||||
| mix_violet | #d1ced9 | violet + base3 / optional |
|
||||
| mix_blue | #bcd5dd | blue + base3 / optional |
|
||||
| mix_cyan | #bddccc | cyan + base3 / optional |
|
||||
| mix_green | #d9da9e | green + base3 /optional |
|
||||
|
||||
### Selenized Light
|
||||
|
||||
| Name | Hex | Description |
|
||||
|
|
@ -119,7 +146,7 @@ colorscheme.
|
|||
| base00 | #53676d | body text / default code / primary content |
|
||||
| base0 | #adbcbc | none |
|
||||
| base1 | #909995 | comments / secondary content |
|
||||
| base2 | #d5cdb6 | background highlights |
|
||||
| base2 | #ece3cc | background highlights |
|
||||
| base3 | #fbf3db | background |
|
||||
| yellow | #ad8900 | optional |
|
||||
| orange | #c25d1e | optional |
|
||||
|
|
@ -130,7 +157,20 @@ colorscheme.
|
|||
| cyan | #009c8f | optional |
|
||||
| green | #489100 | optional |
|
||||
|
||||
#### Selenized Light Extra colors
|
||||
|
||||
| Name | Hex (balance 70) | Description |
|
||||
| ----------- | ---------------- | -------------------------- |
|
||||
| mix_yellow | #e3d399 | yellow + base3 / optional |
|
||||
| mix_orange | #e9c6a2 | orange + base3 / optional |
|
||||
| mix_red | #eeb4a6 | red + base3 / optional |
|
||||
| mix_magenta | #ecbfc6 | magenta + base3 / optional |
|
||||
| mix_violet | #d8c7d4 | violet + base3 / optional |
|
||||
| mix_blue | #afccd8 | blue + base3 / optional |
|
||||
| mix_cyan | #afd8c4 | cyan + base3 / optional |
|
||||
| mix_green | #c5d599 | green + base3 / optional |
|
||||
|
||||
## Solarized & Selenized Website
|
||||
|
||||
[ethanschoonover](https://ethanschoonover.com/solarized/)
|
||||
[jan-warchol](https://github.com/jan-warchol/selenized/blob/master/README.md)
|
||||
- [ethanschoonover](https://ethanschoonover.com/solarized/)
|
||||
- [jan-warchol](https://github.com/jan-warchol/selenized/blob/master/README.md)
|
||||
|
|
|
|||
|
|
@ -1 +1,5 @@
|
|||
require('solarized.config').load()
|
||||
-- Solarized colorscheme
|
||||
-- Repo: maxmx03/solarized.nvim
|
||||
-- Maintainer: Milianor github.com/maxmx03
|
||||
-- License: MIT License
|
||||
require('solarized').load()
|
||||
|
|
|
|||
|
|
@ -1,40 +1,78 @@
|
|||
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
|
||||
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 = '@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.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.base0, bold = true },
|
||||
context = { fg = c.base0 },
|
||||
context_file = { fg = c.base00 },
|
||||
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.yellow },
|
||||
context_operator = { link = 'Operator' },
|
||||
context_type_parameter = { link = 'Type' },
|
||||
}
|
||||
end
|
||||
|
|
|
|||
47
lua/lualine/themes/selenized.lua
Normal file
47
lua/lualine/themes/selenized.lua
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
if vim.o.background == 'dark' then
|
||||
local palette = require 'solarized.palette'
|
||||
local c = palette.selenized
|
||||
return {
|
||||
normal = {
|
||||
a = { fg = c.base03, bg = c.blue, gui = 'bold' },
|
||||
b = { fg = c.base02, bg = c.base1 },
|
||||
c = { fg = c.base1, bg = c.base02 },
|
||||
z = { fg = c.base03, bg = c.blue },
|
||||
},
|
||||
insert = {
|
||||
a = { fg = c.base03, bg = c.green },
|
||||
},
|
||||
visual = {
|
||||
a = { fg = c.base03, bg = c.magenta },
|
||||
},
|
||||
replace = {
|
||||
a = { fg = c.base03, bg = c.red },
|
||||
},
|
||||
command = {
|
||||
a = { fg = c.base03, bg = c.orange },
|
||||
},
|
||||
}
|
||||
else
|
||||
local palette = require 'solarized.palette'
|
||||
local c = palette.selenized
|
||||
return {
|
||||
normal = {
|
||||
a = { fg = c.base3, bg = c.blue, gui = 'bold' },
|
||||
b = { fg = c.base2, bg = c.base01 },
|
||||
c = { fg = c.base01, bg = c.base2 },
|
||||
z = { fg = c.base3, bg = c.blue },
|
||||
},
|
||||
insert = {
|
||||
a = { fg = c.base3, bg = c.green },
|
||||
},
|
||||
visual = {
|
||||
a = { fg = c.base3, bg = c.magenta },
|
||||
},
|
||||
replace = {
|
||||
a = { fg = c.base3, bg = c.red },
|
||||
},
|
||||
command = {
|
||||
a = { fg = c.base3, bg = c.orange },
|
||||
},
|
||||
}
|
||||
end
|
||||
|
|
@ -1,25 +1,49 @@
|
|||
local solarized_palette = require('solarized.palette')
|
||||
local colors = solarized_palette.get_colors()
|
||||
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 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
|
||||
return theme
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
function M.load_autocmd()
|
||||
local group = vim.api.nvim_create_augroup('solarized', { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd('ColorSchemePre', {
|
||||
group = group,
|
||||
callback = function()
|
||||
vim.api.nvim_del_augroup_by_id(group)
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd('LspTokenUpdate', {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
local token = args.data.token
|
||||
local buffer = args.buf
|
||||
local text = vim.api.nvim_buf_get_text(
|
||||
buffer,
|
||||
token.line,
|
||||
token.start_col,
|
||||
token.line,
|
||||
token.end_col,
|
||||
{}
|
||||
)[1]
|
||||
|
||||
local highlights = {
|
||||
'TODO',
|
||||
'WARN',
|
||||
'TEST',
|
||||
'PERF',
|
||||
'NOTE',
|
||||
'HACK',
|
||||
'FIX',
|
||||
}
|
||||
local name = 'SolarizedToken'
|
||||
|
||||
for _, group_name in pairs(highlights) do
|
||||
if
|
||||
text ~= nil
|
||||
and token.type == 'comment'
|
||||
and text:match(group_name)
|
||||
then
|
||||
vim.lsp.semantic_tokens.highlight_token(
|
||||
token,
|
||||
buffer,
|
||||
args.data.client_id,
|
||||
name .. group_name
|
||||
)
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
function M.load_autocmd_highlights(c)
|
||||
local set_hl = require('solarized.utils').set_hl
|
||||
|
||||
set_hl('SolarizedTokenTODO', { fg = c.info })
|
||||
set_hl('SolarizedTokenWARN', { fg = c.warning })
|
||||
set_hl('SolarizedTokenTEST', { fg = c.violet })
|
||||
set_hl('SolarizedTokenPERF', { fg = c.magenta })
|
||||
set_hl('SolarizedTokenNOTE', { fg = c.hint })
|
||||
set_hl('SolarizedTokenHACK', { fg = c.cyan })
|
||||
set_hl('SolarizedTokenFIX', { fg = c.error })
|
||||
end
|
||||
|
||||
return M
|
||||
86
lua/solarized/color.lua
Normal file
86
lua/solarized/color.lua
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
---@class solarized.color
|
||||
---@field hex_to_rgb fun(hex: string): number, number, number
|
||||
---@field rgb_to_hex fun(red: number, green: number, blue: number): string
|
||||
---@field darken fun(hex: string, percentage: number): string
|
||||
---@field lighten fun(hex: string, percentage: number): string
|
||||
---@field shade fun(hex: string, i: number): string
|
||||
---@field tint fun(hex: string, i: number): string
|
||||
---@field blend fun(fg: string, bg: string, alpha: number): string
|
||||
local M = {}
|
||||
|
||||
function M.hex_to_rgb(hex)
|
||||
local red = tonumber(hex:sub(2, 3), 16)
|
||||
local green = tonumber(hex:sub(4, 5), 16)
|
||||
local blue = tonumber(hex:sub(6, 7), 16)
|
||||
return red, green, blue
|
||||
end
|
||||
|
||||
function M.rgb_to_hex(red, green, blue)
|
||||
return string.format('#%02x%02x%02x', red, green, blue)
|
||||
end
|
||||
|
||||
function M.darken(hex, percentage)
|
||||
local red, green, blue = M.hex_to_rgb(hex)
|
||||
local i = 1
|
||||
local result = {
|
||||
red = red * (1 - (percentage / 100) * i),
|
||||
green = green * (1 - (percentage / 100) * i),
|
||||
blue = blue * (1 - (percentage / 100) * i),
|
||||
}
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
function M.lighten(color, percentage)
|
||||
local red, green, blue = M.hex_to_rgb(color)
|
||||
local i = 1
|
||||
local result = {
|
||||
red = red + (255 - red) * i * (percentage / 100),
|
||||
green = green + (255 - green) * i * (percentage / 100),
|
||||
blue = blue + (255 - blue) * i * (percentage / 100),
|
||||
}
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
function M.shade(hex, i)
|
||||
local red, green, blue = M.hex_to_rgb(hex)
|
||||
local result = {
|
||||
red = red * (1 - 0.1 * i),
|
||||
green = green * (1 - 0.1 * i),
|
||||
blue = blue * (1 - 0.1 * i),
|
||||
}
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
function M.tint(hex, i)
|
||||
local red, green, blue = M.hex_to_rgb(hex)
|
||||
local result = {
|
||||
red = red + (255 - red) * i * 0.1,
|
||||
green = green + (255 - green) * i * 0.1,
|
||||
blue = blue + (255 - blue) * i * 0.1,
|
||||
}
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
---@param fg number
|
||||
---@param bg number
|
||||
---@param alpha number
|
||||
---@return number
|
||||
local function blend_channel(fg, bg, alpha)
|
||||
local ret = alpha * fg + ((1 - alpha) * bg)
|
||||
local min = math.min
|
||||
local max = math.max
|
||||
local floor = math.floor
|
||||
return floor(min(max(0, ret), 255) + 0.5)
|
||||
end
|
||||
|
||||
function M.blend(fg, bg, alpha)
|
||||
local red_bg, green_bg, blue_bg = M.hex_to_rgb(bg)
|
||||
local red_fg, green_fg, blue_fg = M.hex_to_rgb(fg)
|
||||
return M.rgb_to_hex(
|
||||
blend_channel(red_fg, red_bg, alpha),
|
||||
blend_channel(green_fg, green_bg, alpha),
|
||||
blend_channel(blue_fg, blue_bg, alpha)
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -3,36 +3,42 @@ local command = {
|
|||
}
|
||||
|
||||
local subcommands = {
|
||||
colors = function(arg)
|
||||
local palette = require('solarized.palette')
|
||||
local colors = palette.get_colors()
|
||||
colors = function(_)
|
||||
local config = require 'solarized.config'
|
||||
local palette = require 'solarized.palette'
|
||||
local colors = palette[config.palette]
|
||||
|
||||
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 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)',
|
||||
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)',
|
||||
}
|
||||
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
|
||||
|
|
@ -53,31 +59,6 @@ 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,104 +1,56 @@
|
|||
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 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
|
||||
|
||||
local M = {}
|
||||
---@class solarized.plugins
|
||||
|
||||
M.config = nil
|
||||
M.colors = nil
|
||||
|
||||
--- 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
|
||||
|
||||
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
|
||||
---@class solarized.config
|
||||
---@field transparent? boolean
|
||||
---@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 plugins? solarized.plugins
|
||||
return {
|
||||
transparent = false,
|
||||
on_highlights = nil,
|
||||
on_colors = nil,
|
||||
palette = 'solarized',
|
||||
styles = {
|
||||
types = {},
|
||||
functions = {},
|
||||
parameters = {},
|
||||
comments = {},
|
||||
strings = {},
|
||||
keywords = {},
|
||||
variables = {},
|
||||
constants = {},
|
||||
},
|
||||
plugins = {
|
||||
['nvim-treesitter'] = true,
|
||||
['nvim-lspconfig'] = true,
|
||||
['nvim-navic'] = true,
|
||||
['nvim-cmp'] = true,
|
||||
['indent-blankline.nvim'] = true,
|
||||
['neo-tree.nvim'] = true,
|
||||
['nvim-tree.lua'] = true,
|
||||
['which-key.nvim'] = true,
|
||||
['dashboard-nvim'] = true,
|
||||
['gitsigns.nvim'] = true,
|
||||
['telescope.nvim'] = true,
|
||||
['noice.nvim'] = true,
|
||||
['hop.nvim'] = true,
|
||||
['mini.statusline'] = true,
|
||||
['mini.tabline'] = true,
|
||||
['mini.starter'] = true,
|
||||
['mini.cursorword'] = true,
|
||||
['nvim-notify'] = true,
|
||||
['rainbow-delimiters'] = true,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,69 +0,0 @@
|
|||
local utils = require('solarized.utils')
|
||||
local colorhelper = require('solarized.utils.colors')
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Update or override highlights defined by the user
|
||||
---
|
||||
--- @param highlights table A table containing highlight names as keys and their updated values as values
|
||||
function M.custom_hl(highlights)
|
||||
local get_hl = utils.get_hl
|
||||
|
||||
for highlight_name, highlight_value in pairs(highlights) do
|
||||
local highlight = get_hl(highlight_name)
|
||||
local val = {}
|
||||
|
||||
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
|
||||
880
lua/solarized/highlights/init.lua
Normal file
880
lua/solarized/highlights/init.lua
Normal file
|
|
@ -0,0 +1,880 @@
|
|||
---@class solarized.highlights
|
||||
---@field ColorColumn? table
|
||||
---@field Conceal? table
|
||||
---@field CurSearch? table
|
||||
---@field Cursor? table
|
||||
---@field lCursor? table
|
||||
---@field CursorIM? table
|
||||
---@field CursorColumn? table
|
||||
---@field CursorLine? table
|
||||
---@field Directory? table
|
||||
---@field DiffAdd? table
|
||||
---@field DiffChange? table
|
||||
---@field DiffDelete? table
|
||||
---@field DiffText? table
|
||||
---@field EndOfBuffer? table
|
||||
---@field TermCursor? table
|
||||
---@field TermCursorNC? table
|
||||
---@field ErrorMsg? table
|
||||
---@field WinSeparator? table
|
||||
---@field Folded? table
|
||||
---@field FoldColumn? table
|
||||
---@field SignColumn? table
|
||||
---@field IncSearch? table
|
||||
---@field Substitute? table
|
||||
---@field LineNr? table
|
||||
---@field LineNrAbove? table
|
||||
---@field LineNrBelow? table
|
||||
---@field CursorLineNr? table
|
||||
---@field CursorLineFold? table
|
||||
---@field CursorLineSign? table
|
||||
---@field MatchParen? table
|
||||
---@field ModeMsg? table
|
||||
---@field MsgArea? table
|
||||
---@field MsgSeparator? table
|
||||
---@field MoreMsg? table
|
||||
---@field NonText? table
|
||||
---@field Normal? table
|
||||
---@field NormalFloat? table
|
||||
---@field FloatBorder? table
|
||||
---@field FloatTitle? table
|
||||
---@field NormalNC? table
|
||||
---@field Pmenu? table
|
||||
---@field PmenuSel? table
|
||||
---@field PmenuKind? table
|
||||
---@field PmenuKindSel? table
|
||||
---@field PmenuExtra? table
|
||||
---@field PmenuExtraSel? table
|
||||
---@field PmenuSbar? table
|
||||
---@field PmenuThumb? table
|
||||
---@field Question? table
|
||||
---@field QuickFixLine? table
|
||||
---@field Search? table
|
||||
---@field SpecialKey? table
|
||||
---@field SpellBad? table
|
||||
---@field SpellCap? table
|
||||
---@field SpellLocal? table
|
||||
---@field SpellRare? table
|
||||
---@field StatusLine? table
|
||||
---@field StatusLineNC? table
|
||||
---@field TabLine? table
|
||||
---@field TabLineFill? table
|
||||
---@field TabLineSel? table
|
||||
---@field Title? table
|
||||
---@field Visual? table
|
||||
---@field VisualNOS? table
|
||||
---@field warningMsg? table
|
||||
---@field Whitespace? table
|
||||
---@field WildMenu? table
|
||||
---@field WinBar? table
|
||||
---@field WinBarNC? table
|
||||
---@field Comment? table
|
||||
---@field Constant? table
|
||||
---@field String? table
|
||||
---@field Character? table
|
||||
---@field Number? table
|
||||
---@field Boolean? table
|
||||
---@field Float? table
|
||||
---@field Identifier? table
|
||||
---@field Function? table
|
||||
---@field Statement? table
|
||||
---@field Conditional? table
|
||||
---@field Repeat? table
|
||||
---@field Label? table
|
||||
---@field Operator? table
|
||||
---@field Keyword? table
|
||||
---@field Exception? table
|
||||
---@field PreProc? table
|
||||
---@field Include? table
|
||||
---@field Define? table
|
||||
---@field Macro? table
|
||||
---@field PreCondit? table
|
||||
---@field Type? table
|
||||
---@field StorageClass? table
|
||||
---@field Structure? table
|
||||
---@field Typedef? table
|
||||
---@field Special? table
|
||||
---@field SpecialChar? table
|
||||
---@field Tag? table
|
||||
---@field Delimiter? table
|
||||
---@field SpecialComment? table
|
||||
---@field Debug? table
|
||||
---@field Underlined? table
|
||||
---@field Ignore? table
|
||||
---@field Error? table
|
||||
---@field Todo? table
|
||||
---@field Added? table
|
||||
---@field Changed? table
|
||||
---@field Removed? table
|
||||
---@field DiagnosticError? table
|
||||
---@field DiagnosticWarn? table
|
||||
---@field DiagnosticInfo? table
|
||||
---@field DiagnosticHint? table
|
||||
---@field DiagnosticOk? table
|
||||
---@field DiagnosticVirtualTextError? table
|
||||
---@field DiagnosticVirtualTextWarn? table
|
||||
---@field DiagnosticVirtualTextInfo? table
|
||||
---@field DiagnosticVirtualTextHint? table
|
||||
---@field DiagnosticVirtualTextOk? table
|
||||
---@field DiagnosticUnderlineError? table
|
||||
---@field DiagnosticUnderlineWarn? table
|
||||
---@field DiagnosticUnderlineInfo? table
|
||||
---@field DiagnosticUnderlineHint? table
|
||||
---@field DiagnosticUnderlineOk? table
|
||||
---@field LspReferenceText? table
|
||||
---@field LspReferenceRead? table
|
||||
---@field LspReferenceWrite? table
|
||||
---@field LspInlayHint? table
|
||||
---@field NavicText? table
|
||||
---@field NavicSeparator? table
|
||||
---@field NavicIconsMethod? table
|
||||
---@field NavicIconsFunction? table
|
||||
---@field NavicIconsField? table
|
||||
---@field NavicIconsVariable? table
|
||||
---@field NavicIconsClass? table
|
||||
---@field NavicIconsInterface? table
|
||||
---@field NavicIconsModule? table
|
||||
---@field NavicIconsNamespace? table
|
||||
---@field NavicIconsProperty? table
|
||||
---@field NavicIconsUnit? table
|
||||
---@field NavicIconsEnum? table
|
||||
---@field NavicIconsKeyword? table
|
||||
---@field NavicIconsSnippet? table
|
||||
---@field NavicIconsColor? table
|
||||
---@field NavicIconsFile? table
|
||||
---@field NavicIconsReference? table
|
||||
---@field NavicIconsFolder? table
|
||||
---@field NavicIconsEnumMember? table
|
||||
---@field NavicIconsConstant? table
|
||||
---@field NavicIconsStruct? table
|
||||
---@field NavicIconsEvent? table
|
||||
---@field NavicIconsOperator? table
|
||||
---@field NavicIconsTypeParameter? table
|
||||
---@field CmpItemKindText? table
|
||||
---@field CmpItemKindMethod? table
|
||||
---@field CmpItemKindFunction? table
|
||||
---@field CmpItemKindField? table
|
||||
---@field CmpItemKindVariable? table
|
||||
---@field CmpItemKindClass? table
|
||||
---@field CmpItemKindInterface? table
|
||||
---@field CmpItemKindModule? table
|
||||
---@field CmpItemKindProperty? table
|
||||
---@field CmpItemKindUnit? table
|
||||
---@field CmpItemKindEnum? table
|
||||
---@field CmpItemKindKeyword? table
|
||||
---@field CmpItemKindSnippet? table
|
||||
---@field CmpItemKindColor? table
|
||||
---@field CmpItemKindFile? table
|
||||
---@field CmpItemKindReference? table
|
||||
---@field CmpItemKindFolder? table
|
||||
---@field CmpItemKindEnumMember? table
|
||||
---@field CmpItemKindConstant? table
|
||||
---@field CmpItemKindStruct? table
|
||||
---@field CmpItemKindEvent? table
|
||||
---@field CmpItemKindOperator? table
|
||||
---@field CmpItemKindTypeParameter? table
|
||||
---@field IblIndent? table
|
||||
---@field IblScope? table
|
||||
---@field NeoTreeNormal? table
|
||||
---@field NeoTreeNormalNC? table
|
||||
---@field NeoTreeDotFile? table
|
||||
---@field NeoTreeFileNameOpened? table
|
||||
---@field NeoTreeFloatBorder? table
|
||||
---@field NeoTreeFloatTitle? table
|
||||
---@field NeoTreeGitAdded? table
|
||||
---@field NeoTreeGitConflict? table
|
||||
---@field NeoTreeGitDeleted? table
|
||||
---@field NeoTreeGitIgnored? table
|
||||
---@field NeoTreeGitModified? table
|
||||
---@field NeoTreeGitUnstaged? table
|
||||
---@field NeoTreeGitUntracked? table
|
||||
---@field NeoTreeGitStaged? table
|
||||
---@field NvimTreeSymlink? table
|
||||
---@field NvimTreeSymlinkIcon? table
|
||||
---@field NvimTreeFolderName? table
|
||||
---@field NvimTreeRootFolder? table
|
||||
---@field NvimTreeFolderIcon? table
|
||||
---@field NvimTreeEmptyFolderName? table
|
||||
---@field NvimTreeExecFile? table
|
||||
---@field NvimTreeOpenedFile? table
|
||||
---@field NvimTreeModifiedFile? table
|
||||
---@field NvimTreeSpecialFile? table
|
||||
---@field NvimTreeIndentMarker? table
|
||||
---@field NvimTreeGitDirty? table
|
||||
---@field NvimTreeGitStaged? table
|
||||
---@field NvimTreeGitMerge? table
|
||||
---@field NvimTreeGitRenamed? table
|
||||
---@field NvimTreeGitNew? table
|
||||
---@field NvimTreeGitDeleted? table
|
||||
---@field NvimTreeNormal? table
|
||||
---@field NvimTreeNormalFloat? table
|
||||
---@field NvimTreeEndOfBuffer? table
|
||||
---@field NvimTreeWinSeparator? table
|
||||
---@field WhichKeyNormal? table
|
||||
---@field WhichKey? table
|
||||
---@field WhichKeyDesc? table
|
||||
---@field WhichKeySeparator? table
|
||||
---@field WhichKeyGroup? table
|
||||
---@field DashboardHeader? table
|
||||
---@field DashboardFooter? table
|
||||
---@field DashboardDesc? table
|
||||
---@field DashboardKey? table
|
||||
---@field DashboardIcon? table
|
||||
---@field DashboardShotCut? table
|
||||
---@field GitSignsAdd? table
|
||||
---@field GitSignsChange? table
|
||||
---@field GitSignsDelete? table
|
||||
---@field TelescopeSelection? table
|
||||
---@field TelescopeSelectionCaret? table
|
||||
---@field TelescopeMultiIcon? table
|
||||
---@field TelescopeNormal? table
|
||||
---@field TelescopePreviewNormal? table
|
||||
---@field TelescopePromptNormal? table
|
||||
---@field TelescopeResultsNormal? table
|
||||
---@field TelescopeBorder? table
|
||||
---@field TelescopePromptBorder? table
|
||||
---@field TelescopeResultsBorder? table
|
||||
---@field TelescopePreviewBorder? table
|
||||
---@field TelescopeTitle? table
|
||||
---@field TelescopePromptTitle? table
|
||||
---@field TelescopeResultsTitle? table
|
||||
---@field TelescopePreviewTitle? table
|
||||
---@field TelescopeMatching? table
|
||||
---@field TelescopePreviewMatch? table
|
||||
---@field TelescopePromptCounter? table
|
||||
---@field TelescopePromptPrefix? table
|
||||
---@field NoiceFormatProgressTodo? table
|
||||
---@field NoiceFormatProgressDone? table
|
||||
---@field NoiceLspProgressSpinner? table
|
||||
---@field NoiceLspProgressClient? table
|
||||
---@field NoiceLspProgressTitle? table
|
||||
---@field HopNextKey? table
|
||||
---@field HopNextKey1? table
|
||||
---@field HopUnmatched? table
|
||||
---@field MiniStatuslineModeNormal? table
|
||||
---@field MiniStatuslineModeInsert? table
|
||||
---@field MiniStatuslineModeVisual? table
|
||||
---@field MiniStatuslineModeReplace? table
|
||||
---@field MiniStatuslineModeCommand? table
|
||||
---@field MinistatusLineFileName? table
|
||||
---@field MiniStatuslineDevinfo? table
|
||||
---@field MiniStatuslineFileinfo? table
|
||||
---@field MiniStatuslineInactive? table
|
||||
---@field MiniTablineCurrent? table
|
||||
---@field MiniTablineVisible? table
|
||||
---@field MiniTablineHidden? table
|
||||
---@field MiniTablineModifiedCurrent? table
|
||||
---@field MiniTablineModifiedVisible? table
|
||||
---@field MiniTablineModifiedHidden? table
|
||||
---@field MiniTablineFill? table
|
||||
---@field MiniTablineTabpagesection? table
|
||||
---@field MiniStarterCurrent? table
|
||||
---@field MiniStarterHeader? table
|
||||
---@field MiniStarterFooter? table
|
||||
---@field MiniStarterItem? table
|
||||
---@field MiniStarterItemBullet? table
|
||||
---@field MiniStarterItemPrefix? table
|
||||
---@field MiniStarterSection? table
|
||||
---@field MiniStarterQuery? table
|
||||
---@field MiniCursorword? table
|
||||
---@field NotifyBackground? table
|
||||
---@field NotifyERRORBorder? table
|
||||
---@field NotifyWARNBorder? table
|
||||
---@field NotifyINFOBorder? table
|
||||
---@field NotifyDEBUGBorder? table
|
||||
---@field NotifyTRACEBorder? table
|
||||
---@field NotifyERRORIcon? table
|
||||
---@field NotifyWARNIcon? table
|
||||
---@field NotifyINFOIcon? table
|
||||
---@field NotifyDEBUGIcon? table
|
||||
---@field NotifyTRACEIcon? table
|
||||
---@field NotifyERRORTitle? table
|
||||
---@field NotifyWARNTitle? table
|
||||
---@field NotifyINFOTitle? table
|
||||
---@field NotifyDEBUGTitle? table
|
||||
---@field NotifyTRACETitle? table
|
||||
---@field NotifyERRORBody? table
|
||||
---@field NotifyWARNBody? table
|
||||
---@field NotifyINFOBody? table
|
||||
---@field NotifyDEBUGBody? table
|
||||
---@field NotifyTRACEBody? table
|
||||
---@field RainbowDelimiterRed? table
|
||||
---@field RainbowDelimiteYellow? table
|
||||
---@field RainbowDelimiterBlue? table
|
||||
---@field RainbowDelimiterOrange? table
|
||||
---@field RainbowDelimiterGreen? table
|
||||
---@field RainbowDelimiterViolet? table
|
||||
---@field RainbowDelimiterCyan? table
|
||||
|
||||
local M = {}
|
||||
|
||||
local function nvim_get_hl(opts)
|
||||
local hl = vim.api.nvim_get_hl(0, opts)
|
||||
|
||||
if hl.link then
|
||||
return nvim_get_hl { name = hl.link }
|
||||
end
|
||||
|
||||
return hl
|
||||
end
|
||||
|
||||
---@class solarized.nvim_set_hl.config
|
||||
---@field transparent? boolean
|
||||
---@field styles? vim.api.keyset.highlight
|
||||
|
||||
---@param group_name string
|
||||
---@param group_val vim.api.keyset.highlight
|
||||
---@param config? 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
|
||||
|
||||
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)
|
||||
if config.on_colors then
|
||||
local color = require 'solarized.color'
|
||||
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
|
||||
end
|
||||
-- EDITOR :h highlight-groups
|
||||
nvim_set_hl('ColorColumn', { bg = colors.base04 })
|
||||
nvim_set_hl('Conceal', { fg = colors.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.cyan, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('Folded', { fg = colors.base0, bg = colors.base02 })
|
||||
nvim_set_hl('FoldColumn', { fg = colors.base0, bg = colors.base04 })
|
||||
nvim_set_hl('SignColumn', { link = 'Normal' })
|
||||
nvim_set_hl(
|
||||
'IncSearch',
|
||||
{ fg = colors.cyan, bg = colors.mix_cyan, bold = true },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('Substitute', { link = 'IncSearch' })
|
||||
nvim_set_hl(
|
||||
'LineNr',
|
||||
{ fg = colors.base01, bg = colors.base02 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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 }
|
||||
)
|
||||
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 }
|
||||
)
|
||||
nvim_set_hl(
|
||||
'NormalFloat',
|
||||
{ fg = colors.base0, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('FloatBorder', { link = 'WinSeparator' })
|
||||
nvim_set_hl('FloatTitle', { fg = colors.blue })
|
||||
nvim_set_hl('NormalNC', { link = 'Normal' })
|
||||
nvim_set_hl(
|
||||
'Pmenu',
|
||||
{ fg = colors.base0, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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.base04 })
|
||||
nvim_set_hl('PmenuThumb', { bg = colors.blue })
|
||||
nvim_set_hl('Question', { fg = colors.diag_info })
|
||||
nvim_set_hl('QuickFixLine', { fg = colors.base0, bg = colors.base03 })
|
||||
nvim_set_hl('Search', { fg = colors.violet, bg = colors.mix_violet })
|
||||
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', { bg = colors.mix_cyan })
|
||||
nvim_set_hl('VisualNOS', { link = 'Visual' })
|
||||
nvim_set_hl('warningMsg', { fg = colors.diag_warning })
|
||||
nvim_set_hl('Whitespace', { fg = colors.base01 })
|
||||
nvim_set_hl('WildMenu', { fg = colors.base02 })
|
||||
nvim_set_hl('WinBar', { link = 'Pmenu' })
|
||||
nvim_set_hl('WinBarNC', { link = 'WinBar' }) -- SYNTAX :h group-name
|
||||
nvim_set_hl('Comment', { fg = colors.base01 })
|
||||
nvim_set_hl('Constant', { fg = colors.violet })
|
||||
nvim_set_hl('String', { fg = colors.cyan })
|
||||
nvim_set_hl('Character', { link = 'String' })
|
||||
nvim_set_hl('Number', { link = 'Constant' })
|
||||
nvim_set_hl('Boolean', { link = 'Constant' })
|
||||
nvim_set_hl('Float', { link = 'Constant' })
|
||||
nvim_set_hl('Identifier', { fg = colors.blue })
|
||||
nvim_set_hl('Function', { link = 'Identifier' })
|
||||
nvim_set_hl('Statement', { fg = colors.green })
|
||||
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 })
|
||||
nvim_set_hl('Exception', { link = 'Statement' })
|
||||
nvim_set_hl('PreProc', { link = 'Statement' })
|
||||
nvim_set_hl('Include', { link = 'Statement' })
|
||||
nvim_set_hl('Define', { link = 'Statement' })
|
||||
nvim_set_hl('Macro', { link = 'Statement' })
|
||||
nvim_set_hl('PreCondit', { link = 'Statement' })
|
||||
nvim_set_hl('Type', { fg = colors.orange })
|
||||
nvim_set_hl('StorageClass', { link = 'Statement' })
|
||||
nvim_set_hl('Structure', { link = 'Type' })
|
||||
nvim_set_hl('Typedef', { link = 'Statement' })
|
||||
nvim_set_hl('Special', { fg = colors.violet })
|
||||
nvim_set_hl('SpecialChar', { fg = colors.violet })
|
||||
nvim_set_hl('Tag', { fg = colors.blue })
|
||||
nvim_set_hl('Delimiter', { fg = colors.base01 })
|
||||
nvim_set_hl('SpecialComment', { link = 'Statement' })
|
||||
nvim_set_hl('Debug', { fg = colors.magenta })
|
||||
nvim_set_hl('Underlined', { fg = colors.magenta, underline = true })
|
||||
nvim_set_hl('Ignore', {})
|
||||
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
|
||||
nvim_set_hl('Todo', { fg = colors.blue })
|
||||
nvim_set_hl('Added', { fg = colors.git_add })
|
||||
nvim_set_hl('Changed', { fg = colors.git_modify })
|
||||
nvim_set_hl('Removed', { fg = colors.git_delete })
|
||||
|
||||
-- PLUGINS
|
||||
if config.plugins['nvim-treesitter'] then
|
||||
nvim_set_hl('@variable', { link = 'Identifier' })
|
||||
nvim_set_hl('@variable.builtin', { link = 'Constant' })
|
||||
nvim_set_hl('@variable.parameter', { fg = colors.blue, italic = true })
|
||||
nvim_set_hl('@variable.member', { link = 'Identifier' })
|
||||
nvim_set_hl('@constant', { link = 'Constant' })
|
||||
nvim_set_hl('@constant.builtin', { link = 'Constant' })
|
||||
nvim_set_hl('@constant.macro', { link = 'Constant' })
|
||||
nvim_set_hl('@module', { link = 'Identifier' })
|
||||
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('@function', { link = 'Function' })
|
||||
nvim_set_hl('@function.builtin', { fg = colors.yellow })
|
||||
nvim_set_hl('@function.call', { link = 'Function' })
|
||||
nvim_set_hl('@function.macro', { link = 'Function' })
|
||||
nvim_set_hl('@function.method', { link = 'Function' })
|
||||
nvim_set_hl('@function.method.call', { link = 'Function' })
|
||||
nvim_set_hl('@constructor', { link = 'Type' })
|
||||
nvim_set_hl('@constructor.lua', { link = 'Delimiter' })
|
||||
nvim_set_hl('@operator', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword', { link = 'Keyword' })
|
||||
nvim_set_hl('@keyword.coroutine', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.function', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.operator', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.import', { link = 'Keyword' })
|
||||
nvim_set_hl('@keyword.repeat', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.return', { link = 'Keyword' })
|
||||
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', { link = 'Underlined' })
|
||||
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', { fg = colors.blue })
|
||||
nvim_set_hl('@tag.attribute', { fg = colors.base1 })
|
||||
nvim_set_hl('@tag.delimiter', { link = 'Delimiter' })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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 = 'Keyword' })
|
||||
nvim_set_hl('@lsp.type.namespace', { link = 'Type' })
|
||||
nvim_set_hl('@lsp.type.parameter', { link = '@parameter' })
|
||||
nvim_set_hl('@lsp.type.property', { link = 'Identifier' })
|
||||
nvim_set_hl('@lsp.type.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, bg = colors.mix_red })
|
||||
nvim_set_hl('DiagnosticVirtualTextWarn', { fg = colors.diag_warning, bg = colors.mix_yellow })
|
||||
nvim_set_hl('DiagnosticVirtualTextInfo', { fg = colors.diag_info, bg = colors.mix_violet })
|
||||
nvim_set_hl('DiagnosticVirtualTextHint', { fg = colors.diag_hint, bg = colors.mix_violet })
|
||||
nvim_set_hl('DiagnosticVirtualTextOk', { fg = colors.diag_ok, bg = colors.mix_green })
|
||||
nvim_set_hl('DiagnosticUnderlineError', { fg = colors.diag_error, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineWarn', { fg = colors.diag_warning, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineInfo', { fg = colors.diag_info, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineHint', { fg = colors.diag_hint, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineOk', { fg = colors.diag_ok, underline = true })
|
||||
nvim_set_hl('LspReferenceText', { link = 'Visual' })
|
||||
nvim_set_hl('LspReferenceRead', { link = 'Visual' })
|
||||
nvim_set_hl('LspReferenceWrite', { link = 'Visual' })
|
||||
nvim_set_hl('LspInlayHint', { fg = colors.base01 })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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', { fg = colors.orange })
|
||||
nvim_set_hl('NavicIconsFile', { link = 'Identifier' })
|
||||
nvim_set_hl('NavicIconsReference', { link = 'Underlined' })
|
||||
nvim_set_hl('NavicIconsFolder', { link = 'Directory' })
|
||||
nvim_set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||
nvim_set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||
nvim_set_hl('NavicIconsStruct', { link = 'Identifier' })
|
||||
nvim_set_hl('NavicIconsEvent', { link = 'Function' })
|
||||
nvim_set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||
nvim_set_hl('NavicIconsTypeParameter', { link = 'Type' })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-cmp'] then
|
||||
nvim_set_hl('CmpItemKindText', { link = 'String' })
|
||||
nvim_set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||
nvim_set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||
nvim_set_hl('CmpItemKindField', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindClass', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindModule', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindProperty', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||
nvim_set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindKeyword', { link = '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['indent-blankline.nvim'] then
|
||||
nvim_set_hl('IblIndent', { fg = colors.base01, nocombine = true })
|
||||
nvim_set_hl('IblScope', { fg = colors.base0, nocombine = true })
|
||||
end
|
||||
|
||||
if config.plugins['neo-tree.nvim'] then
|
||||
nvim_set_hl(
|
||||
'NeoTreeNormal',
|
||||
{ fg = colors.base1, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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['nvim-tree.lua'] then
|
||||
nvim_set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||
nvim_set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||
nvim_set_hl('NvimTreeFolderName', { fg = colors.base0 })
|
||||
nvim_set_hl('NvimTreeRootFolder', { 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 }
|
||||
)
|
||||
nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||
nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base04 })
|
||||
nvim_set_hl('NvimTreeWinSeparator', { link = 'WinSeparator' })
|
||||
end
|
||||
|
||||
if config.plugins['which-key.nvim'] then
|
||||
nvim_set_hl('WhichKeyNormal', { link = 'NormalFloat' })
|
||||
nvim_set_hl('WhichKey', { link = 'Function' })
|
||||
nvim_set_hl('WhichKeyDesc', { fg = colors.base1 })
|
||||
nvim_set_hl('WhichKeySeparator', { link = 'Keyword' })
|
||||
nvim_set_hl('WhichKeyGroup', { link = 'Type' })
|
||||
end
|
||||
|
||||
if config.plugins['dashboard-nvim'] 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.nvim'] then
|
||||
nvim_set_hl('GitSignsAdd', { fg = colors.git_add })
|
||||
nvim_set_hl('GitSignsChange', { fg = colors.git_modify })
|
||||
nvim_set_hl('GitSignsDelete', { fg = colors.git_delete })
|
||||
end
|
||||
|
||||
if config.plugins['telescope.nvim'] then
|
||||
nvim_set_hl('TelescopeSelection', { fg = colors.base0 })
|
||||
nvim_set_hl('TelescopeSelectionCaret', { fg = colors.blue })
|
||||
nvim_set_hl('TelescopeMultiIcon', { fg = colors.blue })
|
||||
nvim_set_hl(
|
||||
'TelescopeNormal',
|
||||
{ fg = colors.base0, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl(
|
||||
'TelescopeBorder',
|
||||
{ fg = colors.cyan, bg = colors.base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopeTitle', { link = 'Title' })
|
||||
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.nvim'] 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' })
|
||||
end
|
||||
|
||||
if config.plugins['hop.nvim'] then
|
||||
nvim_set_hl('HopNextKey', { fg = colors.magenta })
|
||||
nvim_set_hl('HopNextKey1', { fg = colors.blue })
|
||||
nvim_set_hl('HopUnmatched', { fg = colors.base01 })
|
||||
end
|
||||
|
||||
if config.plugins['mini.statusline'] 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['mini.tabline'] then
|
||||
nvim_set_hl('MiniTablineCurrent', { fg = colors.base0, bg = colors.base03 })
|
||||
nvim_set_hl('MiniTablineVisible', { fg = colors.base0, bg = colors.base03 })
|
||||
nvim_set_hl('MiniTablineHidden', { fg = colors.base01, bg = colors.base03 })
|
||||
nvim_set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
||||
nvim_set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
||||
nvim_set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
||||
nvim_set_hl('MiniTablineFill', { fg = colors.base0, bg = colors.base04 })
|
||||
nvim_set_hl('MiniTablineTabpagesection', { fg = colors.base0, bg = colors.base04 })
|
||||
end
|
||||
|
||||
if config.plugins['mini.starter'] then
|
||||
nvim_set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
||||
nvim_set_hl('MiniStarterHeader', { fg = colors.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['mini.cursorword'] then
|
||||
nvim_set_hl('MiniCursorword', { bg = colors.base02 })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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, bg = colors.mix_red })
|
||||
nvim_set_hl('NotifyWARNBody', { fg = colors.diag_warning, bg = colors.mix_yellow })
|
||||
nvim_set_hl('NotifyINFOBody', { fg = colors.diag_info, bg = colors.mix_violet })
|
||||
nvim_set_hl('NotifyDEBUGBody', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||
nvim_set_hl('NotifyTRACEBody', { fg = colors.blue, bg = colors.mix_blue })
|
||||
end
|
||||
|
||||
if config.plugins['rainbow-delimiters'] 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.on_highlights then
|
||||
local color = require 'solarized.color'
|
||||
local highlights = config.on_highlights(colors, color)
|
||||
|
||||
for group_name, group_val in pairs(highlights) do
|
||||
local hl = nvim_get_hl { name = group_name, link = true }
|
||||
local val = vim.tbl_extend('force', hl, group_val)
|
||||
vim.api.nvim_set_hl(0, group_name, val)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
561
lua/solarized/highlights/solarized-light.lua
Normal file
561
lua/solarized/highlights/solarized-light.lua
Normal file
|
|
@ -0,0 +1,561 @@
|
|||
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
|
||||
|
||||
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)
|
||||
if config.on_colors then
|
||||
local color = require 'solarized.color'
|
||||
colors = vim.tbl_extend('force', colors, config.on_colors(colors, color))
|
||||
end
|
||||
-- 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.cyan, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('Folded', { fg = colors.base00, bg = colors.base2 })
|
||||
nvim_set_hl('FoldColumn', { fg = colors.base00, bg = colors.base2 })
|
||||
nvim_set_hl('SignColumn', { link = 'Normal' })
|
||||
nvim_set_hl(
|
||||
'IncSearch',
|
||||
{ fg = colors.green, bg = colors.mix_green, bold = true },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('Substitute', { link = 'IncSearch' })
|
||||
nvim_set_hl(
|
||||
'LineNr',
|
||||
{ fg = colors.base01, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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 }
|
||||
)
|
||||
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 }
|
||||
)
|
||||
nvim_set_hl(
|
||||
'NormalFloat',
|
||||
{ fg = colors.base00, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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.magenta, bg = colors.mix_magenta })
|
||||
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', { bg = colors.mix_cyan })
|
||||
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' }) -- SYNTAX :h group-name
|
||||
nvim_set_hl('Comment', { fg = colors.base1 })
|
||||
nvim_set_hl('Constant', { fg = colors.magenta })
|
||||
nvim_set_hl('String', { fg = colors.cyan })
|
||||
nvim_set_hl('Character', { link = 'String' })
|
||||
nvim_set_hl('Number', { link = 'Constant' })
|
||||
nvim_set_hl('Boolean', { link = 'Constant' })
|
||||
nvim_set_hl('Float', { link = 'Constant' })
|
||||
nvim_set_hl('Identifier', { fg = colors.blue })
|
||||
nvim_set_hl('Function', { link = 'Identifier' })
|
||||
nvim_set_hl('Statement', { fg = colors.green })
|
||||
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 })
|
||||
nvim_set_hl('Exception', { link = 'Statement' })
|
||||
nvim_set_hl('PreProc', { link = 'Statement' })
|
||||
nvim_set_hl('Include', { link = 'Statement' })
|
||||
nvim_set_hl('Define', { link = 'Statement' })
|
||||
nvim_set_hl('Macro', { link = 'Statement' })
|
||||
nvim_set_hl('PreCondit', { link = 'Statement' })
|
||||
nvim_set_hl('Type', { fg = colors.orange })
|
||||
nvim_set_hl('StorageClass', { link = 'Statement' })
|
||||
nvim_set_hl('Structure', { link = 'Type' })
|
||||
nvim_set_hl('Typedef', { link = 'Statement' })
|
||||
nvim_set_hl('Special', { fg = colors.magenta })
|
||||
nvim_set_hl('SpecialChar', { fg = colors.magenta })
|
||||
nvim_set_hl('Tag', { fg = colors.blue })
|
||||
nvim_set_hl('Delimiter', { fg = colors.base01 })
|
||||
nvim_set_hl('SpecialComment', { link = 'Statement' })
|
||||
nvim_set_hl('Debug', { fg = colors.magenta })
|
||||
nvim_set_hl('Underlined', { fg = colors.violet, underline = true })
|
||||
nvim_set_hl('Ignore', {})
|
||||
nvim_set_hl('Error', { fg = colors.diag_error, bold = true })
|
||||
nvim_set_hl('Todo', { fg = colors.blue })
|
||||
nvim_set_hl('Added', { fg = colors.git_add })
|
||||
nvim_set_hl('Changed', { fg = colors.git_modify })
|
||||
nvim_set_hl('Removed', { fg = colors.git_delete }) -- PLUGINS
|
||||
if config.plugins['nvim-treesitter'] then
|
||||
nvim_set_hl('@variable', { link = 'Identifier' })
|
||||
nvim_set_hl('@variable.builtin', { link = 'Constant' })
|
||||
nvim_set_hl('@variable.parameter', { fg = colors.blue, italic = true })
|
||||
nvim_set_hl('@variable.member', { link = 'Identifier' })
|
||||
nvim_set_hl('@constant', { link = 'Constant' })
|
||||
nvim_set_hl('@constant.builtin', { link = 'Constant' })
|
||||
nvim_set_hl('@constant.macro', { link = 'Constant' })
|
||||
nvim_set_hl('@module', { link = 'Identifier' })
|
||||
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('@property.json', { fg = colors.green })
|
||||
nvim_set_hl('@function', { link = 'Function' })
|
||||
nvim_set_hl('@function.builtin', { fg = colors.yellow })
|
||||
nvim_set_hl('@function.call', { link = 'Function' })
|
||||
nvim_set_hl('@function.macro', { link = 'Function' })
|
||||
nvim_set_hl('@function.method', { link = 'Function' })
|
||||
nvim_set_hl('@function.method.call', { link = 'Function' })
|
||||
nvim_set_hl('@constructor', { link = 'Type' })
|
||||
nvim_set_hl('@constructor.lua', { link = 'Delimiter' })
|
||||
nvim_set_hl('@operator', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword', { link = 'Keyword' })
|
||||
nvim_set_hl('@keyword.coroutine', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.function', { link = 'Keyword' })
|
||||
nvim_set_hl('@keyword.operator', { link = 'Statement' })
|
||||
nvim_set_hl('@keyword.import', { link = 'Keyword' })
|
||||
nvim_set_hl('@keyword.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 })
|
||||
nvim_set_hl('@markup.italic', { link = 'Underlined' })
|
||||
nvim_set_hl('@markup.strikethrough', { fg = colors.base1 })
|
||||
nvim_set_hl('@markup.underline', { link = 'Underlined' })
|
||||
nvim_set_hl('@markup.heading', { fg = colors.blue })
|
||||
nvim_set_hl('@markup.quote', { fg = colors.base1 })
|
||||
nvim_set_hl('@markup.math', { fg = colors.magenta })
|
||||
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', { link = 'Constant' })
|
||||
nvim_set_hl('@markup.raw.block', { fg = colors.base0 })
|
||||
nvim_set_hl('@markup.list', { fg = colors.base0 })
|
||||
nvim_set_hl('@markup.list.checked', { fg = colors.git_add })
|
||||
nvim_set_hl('@markup.list.unchecked', { fg = colors.git_modify })
|
||||
nvim_set_hl('@diff.plus', { fg = colors.git_add })
|
||||
nvim_set_hl('@diff.minus', { fg = colors.git_delete })
|
||||
nvim_set_hl('@diff.delta', { fg = colors.git_modify })
|
||||
nvim_set_hl('@tag', { fg = colors.red })
|
||||
nvim_set_hl('@tag.attribute', { fg = colors.blue })
|
||||
nvim_set_hl('@tag.delimiter', { fg = colors.red })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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 = 'Keyword' })
|
||||
nvim_set_hl('@lsp.type.namespace', { link = 'Type' })
|
||||
nvim_set_hl('@lsp.type.parameter', { link = '@parameter' })
|
||||
nvim_set_hl('@lsp.type.property', { link = 'Identifier' })
|
||||
nvim_set_hl('@lsp.type.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, bg = colors.mix_red })
|
||||
nvim_set_hl('DiagnosticVirtualTextWarn', { fg = colors.diag_warning, bg = colors.mix_yellow })
|
||||
nvim_set_hl('DiagnosticVirtualTextInfo', { fg = colors.diag_blue, bg = colors.mix_blue })
|
||||
nvim_set_hl('DiagnosticVirtualTextHint', { fg = colors.diag_blue, bg = colors.mix_blue })
|
||||
nvim_set_hl('DiagnosticVirtualTextOk', { fg = colors.diag_ok, bg = colors.mix_green })
|
||||
nvim_set_hl('DiagnosticUnderlineError', { fg = colors.diag_error, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineWarn', { fg = colors.diag_warning, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineInfo', { fg = colors.diag_info, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineHint', { fg = colors.diag_hint, underline = true })
|
||||
nvim_set_hl('DiagnosticUnderlineOk', { fg = colors.diag_ok, underline = true })
|
||||
nvim_set_hl('LspReferenceText', { link = 'Visual' })
|
||||
nvim_set_hl('LspReferenceRead', { link = 'Visual' })
|
||||
nvim_set_hl('LspReferenceWrite', { link = 'Visual' })
|
||||
nvim_set_hl('LspInlayHint', { fg = colors.base1 })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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', { fg = colors.orange })
|
||||
nvim_set_hl('NavicIconsFile', { link = 'Identifier' })
|
||||
nvim_set_hl('NavicIconsReference', { link = 'Underlined' })
|
||||
nvim_set_hl('NavicIconsFolder', { link = 'Directory' })
|
||||
nvim_set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||
nvim_set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||
nvim_set_hl('NavicIconsStruct', { link = 'Identifier' })
|
||||
nvim_set_hl('NavicIconsEvent', { link = 'Function' })
|
||||
nvim_set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||
nvim_set_hl('NavicIconsTypeParameter', { link = 'Type' })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-cmp'] then
|
||||
nvim_set_hl('CmpItemKindText', { link = 'String' })
|
||||
nvim_set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||
nvim_set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||
nvim_set_hl('CmpItemKindField', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindClass', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindModule', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindProperty', { link = 'Identifier' })
|
||||
nvim_set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||
nvim_set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||
nvim_set_hl('CmpItemKindKeyword', { link = '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['indent-blankline.nvim'] then
|
||||
nvim_set_hl('IblIndent', { fg = colors.base01, nocombine = true })
|
||||
nvim_set_hl('IblScope', { fg = colors.base0, nocombine = true })
|
||||
end
|
||||
|
||||
if config.plugins['neo-tree.nvim'] then
|
||||
nvim_set_hl(
|
||||
'NeoTreeNormal',
|
||||
{ fg = colors.base01, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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['nvim-tree.lua'] then
|
||||
nvim_set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||
nvim_set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||
nvim_set_hl('NvimTreeFolderName', { fg = colors.base0 })
|
||||
nvim_set_hl('NvimTreeRootFolder', { 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.base01, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||
nvim_set_hl('NvimTreeEndOfBuffer', { fg = colors.base2 })
|
||||
nvim_set_hl('NvimTreeWinSeparator', { link = 'WinSeparator' })
|
||||
end
|
||||
|
||||
if config.plugins['which-key.nvim'] then
|
||||
nvim_set_hl('WhichKeyNormal', { link = 'NormalFloat' })
|
||||
nvim_set_hl('WhichKey', { link = 'Function' })
|
||||
nvim_set_hl('WhichKeyDesc', { fg = colors.base01 })
|
||||
nvim_set_hl('WhichKeySeparator', { link = 'Keyword' })
|
||||
nvim_set_hl('WhichKeyGroup', { link = 'Type' })
|
||||
end
|
||||
|
||||
if config.plugins['dashboard-nvim'] then
|
||||
nvim_set_hl('DashboardHeader', { fg = colors.base01 })
|
||||
nvim_set_hl('DashboardFooter', { fg = colors.magenta })
|
||||
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.nvim'] then
|
||||
nvim_set_hl('GitSignsAdd', { fg = colors.git_add })
|
||||
nvim_set_hl('GitSignsChange', { fg = colors.git_modify })
|
||||
nvim_set_hl('GitSignsDelete', { fg = colors.git_delete })
|
||||
end
|
||||
|
||||
if config.plugins['telescope.nvim'] then
|
||||
nvim_set_hl('TelescopeSelection', { fg = colors.base0 })
|
||||
nvim_set_hl('TelescopeSelectionCaret', { fg = colors.blue })
|
||||
nvim_set_hl('TelescopeMultiIcon', { fg = colors.blue })
|
||||
nvim_set_hl(
|
||||
'TelescopeNormal',
|
||||
{ fg = colors.base0, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||
nvim_set_hl(
|
||||
'TelescopeBorder',
|
||||
{ fg = colors.cyan, bg = colors.base2 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
nvim_set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
||||
nvim_set_hl('TelescopeTitle', { link = 'Title' })
|
||||
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.nvim'] 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' })
|
||||
end
|
||||
|
||||
if config.plugins['hop.nvim'] 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['mini.statusline'] 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['mini.tabline'] 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.base0, bg = colors.base2 })
|
||||
end
|
||||
|
||||
if config.plugins['mini.starter'] 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['mini.cursorword'] then
|
||||
nvim_set_hl('MiniCursorword', { bg = colors.base2 })
|
||||
end
|
||||
|
||||
if config.plugins['nvim-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, bg = colors.mix_red })
|
||||
nvim_set_hl('NotifyWARNBody', { fg = colors.diag_warning, bg = colors.mix_yellow })
|
||||
nvim_set_hl('NotifyINFOBody', { fg = colors.diag_info, bg = colors.mix_violet })
|
||||
nvim_set_hl('NotifyDEBUGBody', { fg = colors.magenta, bg = colors.mix_magenta })
|
||||
nvim_set_hl('NotifyTRACEBody', { fg = colors.blue, bg = colors.mix_blue })
|
||||
end
|
||||
|
||||
if config.plugins['rainbow-delimiters'] 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.on_highlights then
|
||||
local color = require 'solarized.color'
|
||||
local highlights = config.on_highlights(colors, color)
|
||||
|
||||
for group_name, group_val in pairs(highlights) do
|
||||
local hl = nvim_get_hl { name = group_name, link = true }
|
||||
local val = vim.tbl_extend('force', hl, group_val)
|
||||
vim.api.nvim_set_hl(0, group_name, val)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,7 +1,38 @@
|
|||
local config = require('solarized.config')
|
||||
|
||||
---@class solarized
|
||||
---@field config solarized.config
|
||||
---@field setup fun(config: solarized.config)
|
||||
---@field load fun()
|
||||
local M = {}
|
||||
|
||||
M.setup = config.setup
|
||||
M.config = require 'solarized.config'
|
||||
|
||||
M.setup = function(config)
|
||||
M.config = vim.tbl_deep_extend('force', M.config, config)
|
||||
end
|
||||
|
||||
M.load = function()
|
||||
if vim.g.colors_name then
|
||||
vim.cmd 'hi clear'
|
||||
end
|
||||
|
||||
if vim.fn.exists 'syntax_on' then
|
||||
vim.cmd 'syntax reset'
|
||||
end
|
||||
|
||||
vim.g.colors_name = 'solarized'
|
||||
local highlights = {}
|
||||
local colors = {}
|
||||
if vim.o.background == 'dark' then
|
||||
highlights = require 'solarized.highlights'
|
||||
local palette = require 'solarized.palette'
|
||||
colors = palette[M.config.palette]
|
||||
else
|
||||
highlights = require 'solarized.highlights.solarized-light'
|
||||
local palette = require 'solarized.palette.solarized-light'
|
||||
colors = palette[M.config.palette]
|
||||
end
|
||||
|
||||
highlights.set_highlight(colors, M.config)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,160 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
--- Get the solarized colors based on the current Vim background setting
|
||||
---
|
||||
--- @return table colors A table containing the solarized colors
|
||||
function M.get_colors()
|
||||
local config = require('solarized.config')
|
||||
local colors = {
|
||||
solarized = {
|
||||
dark = {
|
||||
base03 = '#002b36', -- background tone dark (main)
|
||||
base02 = '#073642', -- background tone (highlight/menu/LineNr)
|
||||
base01 = '#586e75', -- content tone (comment)
|
||||
base00 = '#657b83', -- content tone (winseparator)
|
||||
base0 = '#839496', -- content tone (foreground)
|
||||
base1 = '#93a1a1', -- content tone (statusline/tabline)
|
||||
base2 = '#eee8d5', -- background tone light (highlight)
|
||||
base3 = '#fdf6e3', -- background tone lighter (main)
|
||||
-- accent
|
||||
yellow = '#b58900',
|
||||
orange = '#cb4b16',
|
||||
red = '#dc322f',
|
||||
magenta = '#d33682',
|
||||
violet = '#6c71c4',
|
||||
blue = '#268bd2',
|
||||
cyan = '#2aa198',
|
||||
green = '#859900',
|
||||
-- git
|
||||
add = '#859900',
|
||||
change = '#b58900',
|
||||
delete = '#dc322f',
|
||||
-- diagnostic
|
||||
info = '#268bd2',
|
||||
hint = '#859900',
|
||||
warning = '#b58900',
|
||||
error = '#dc322f',
|
||||
},
|
||||
light = {
|
||||
base3 = '#002b36', -- background tone darker (main)
|
||||
base2 = '#073642', -- background tone dark (highlight)
|
||||
base1 = '#586e75', -- content tone (statusline/tabline)
|
||||
base0 = '#657b83', -- content tone (foreground)
|
||||
base00 = '#839496', -- content tone (winseparator)
|
||||
base01 = '#93a1a1', -- content tone (comment)
|
||||
base02 = '#eee8d5', -- background tone (highlight/menu/LineNr)
|
||||
base03 = '#fdf6e3', -- background tone lighter (main)
|
||||
-- accent
|
||||
yellow = '#b58900',
|
||||
orange = '#cb4b16',
|
||||
red = '#dc322f',
|
||||
magenta = '#d33682',
|
||||
violet = '#6c71c4',
|
||||
blue = '#268bd2',
|
||||
cyan = '#2aa198',
|
||||
green = '#859900',
|
||||
-- git
|
||||
add = '#859900',
|
||||
change = '#b58900',
|
||||
delete = '#dc322f',
|
||||
-- diagnostic
|
||||
info = '#268bd2',
|
||||
hint = '#859900',
|
||||
warning = '#b58900',
|
||||
error = '#dc322f',
|
||||
},
|
||||
},
|
||||
selenized = {
|
||||
dark = {
|
||||
base03 = '#103c48', -- background tone dark (main)
|
||||
base02 = '#184956', -- background tone (highlight/menu/LineNr)
|
||||
base01 = '#72898f', -- content tone (comment)
|
||||
base00 = '#72898f', -- content tone (winseparator)
|
||||
base0 = '#adbcbc', -- content tone (foreground)
|
||||
base1 = '#cad8d9', -- content tone (statusline/tabline)
|
||||
base2 = '#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
|
||||
112
lua/solarized/palette/init.lua
Normal file
112
lua/solarized/palette/init.lua
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
---@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 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 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 = '#001E26',
|
||||
base1 = '#93A1A1',
|
||||
base2 = '#eee8d5 ',
|
||||
base3 = '#fdf6e3 ',
|
||||
blue = '#268BD2',
|
||||
cyan = '#2AA198',
|
||||
diag_error = '#DC322F',
|
||||
diag_hint = '#6C71C4',
|
||||
diag_info = '#6C71C4',
|
||||
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',
|
||||
orange = '#CB4B16',
|
||||
red = '#DC322F',
|
||||
violet = '#6C71C4',
|
||||
yellow = '#B58900',
|
||||
}
|
||||
|
||||
---@type solarized.palette
|
||||
M.selenized = {
|
||||
base03 = '#103c48',
|
||||
base02 = '#2d5b69',
|
||||
base01 = '#72898f',
|
||||
base00 = '#53676d',
|
||||
base0 = '#adbcbc',
|
||||
base1 = '#cad8d9',
|
||||
base2 = '#ece3cc',
|
||||
base3 = '#fbf3db',
|
||||
yellow = '#dbb32d',
|
||||
orange = '#ed8649',
|
||||
red = '#fa5750',
|
||||
magenta = '#f275be',
|
||||
violet = '#af88eb',
|
||||
blue = '#4695f7',
|
||||
cyan = '#41c7b9',
|
||||
green = '#75b938',
|
||||
base04 = '#184956',
|
||||
mix_yellow = '#4c5f3f',
|
||||
mix_orange = '#525248',
|
||||
mix_red = '#56444a',
|
||||
mix_magenta = '#534d6b',
|
||||
mix_violet = '#3f5278',
|
||||
mix_blue = '#20567c',
|
||||
mix_cyan = '#1e6569',
|
||||
mix_green = '#2e6143',
|
||||
diag_error = '#fa5750',
|
||||
diag_hint = '#af88eb',
|
||||
diag_info = '#af88eb',
|
||||
diag_ok = '#75b938',
|
||||
diag_warning = '#dbb32d',
|
||||
git_add = '#4695f7',
|
||||
git_delete = '#fa5750',
|
||||
git_modify = '#dbb32d',
|
||||
}
|
||||
|
||||
return M
|
||||
75
lua/solarized/palette/solarized-light.lua
Normal file
75
lua/solarized/palette/solarized-light.lua
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
local M = {}
|
||||
|
||||
---@type solarized.palette
|
||||
M.solarized = {
|
||||
base03 = '#002b36',
|
||||
base02 = '#073642',
|
||||
base01 = '#586E75',
|
||||
base00 = '#657B83',
|
||||
base0 = '#839496',
|
||||
base1 = '#93A1A1',
|
||||
base2 = '#EEE8D5',
|
||||
base3 = '#FDF6E3',
|
||||
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 = '#bcd5dd',
|
||||
mix_cyan = '#bddccc',
|
||||
mix_green = '#d9da9e',
|
||||
mix_magenta = '#f0bcc5',
|
||||
mix_orange = '#eec2a5',
|
||||
mix_red = '#f3bbac',
|
||||
mix_violet = '#d1ced9',
|
||||
mix_yellow = '#e7d59e',
|
||||
}
|
||||
|
||||
---@type solarized.palette
|
||||
M.selenized = {
|
||||
base03 = '#103c48',
|
||||
base02 = '#2d5b69',
|
||||
base01 = '#3a4d53',
|
||||
base00 = '#53676d',
|
||||
base0 = '#53676d',
|
||||
base1 = '#909995',
|
||||
base2 = '#ece3cc',
|
||||
base3 = '#fbf3db',
|
||||
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 = '#e3d399',
|
||||
mix_orange = '#e9c6a2',
|
||||
mix_red = '#eeb4a6',
|
||||
mix_magenta = '#ecbfc6',
|
||||
mix_violet = '#d8c7d4',
|
||||
mix_blue = '#afccd8',
|
||||
mix_cyan = '#afd8c4',
|
||||
mix_green = '#c5d599',
|
||||
}
|
||||
|
||||
return M
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- When `termguicolors` is enabled, this plugin is designed to work automatically,
|
||||
-- deriving colours from the user's theme.
|
||||
--
|
||||
-- My attempt to fix bufferline on transparent background
|
||||
if config.transparent then
|
||||
set_hl('BufferLineFill', { bg = c.base02 })
|
||||
set_hl('BufferLineBufferSelected', { fg = c.base2, italic = true })
|
||||
set_hl('BufferLineSeparator', { fg = c.base02 })
|
||||
set_hl('BufferLineSeparatorSelected', { fg = c.base02 })
|
||||
set_hl('BufferLineSeparatorVisible', { fg = c.base02 })
|
||||
end
|
||||
end
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- set_hl('CmpItemAbbr') -- Highlight group for unmatched characters of each completion field.
|
||||
set_hl('CmpItemAbbrDeprecated', { fg = c.base1, strikethrough = true }) -- Highlight group for unmatched characters of each deprecated completion field.
|
||||
set_hl('CmpItemAbbrMatch', { fg = c.yellow }) -- Highlight group for matched characters of each completion field.
|
||||
set_hl('CmpItemAbbrMatchFuzzy', { fg = c.yellow }) -- Highlight group for fuzzy-matched characters of each completion field.
|
||||
-- set_hl('CmpItemKind') -- Highlight group for the kind of the field.
|
||||
-- set_hl('CmpItemMenu') -- The menu field's highlight group.
|
||||
|
||||
set_hl('CmpItemKindReference', { link = 'Underlined' })
|
||||
set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||
set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||
set_hl('CmpItemKindField', { link = '@field' })
|
||||
set_hl('CmpItemKindClass', { link = 'Type' })
|
||||
set_hl('CmpItemKindFile', { fg = c.base0 })
|
||||
set_hl('CmpItemKindProperty', { link = '@field' })
|
||||
set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||
set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
||||
set_hl('CmpItemKindFolder', { link = 'Directory' })
|
||||
set_hl('CmpItemKindSnippet', { link = 'Keyword' })
|
||||
set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||
set_hl('CmpItemKindStruct', { link = 'Structure' })
|
||||
set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||
set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
||||
set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
||||
set_hl('CmpItemKindEvent', { fg = c.base2 })
|
||||
set_hl('CmpItemKindConstructor', { link = '@constructor' })
|
||||
set_hl('CmpItemKindConstant', { link = 'Constant' })
|
||||
set_hl('CmpItemKindModule', { link = '@namespace' })
|
||||
set_hl('CmpItemKindValue', { fg = c.base2 })
|
||||
set_hl('CmpItemKindColor', { fg = c.magenta })
|
||||
set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||
set_hl('CmpItemKindText', { link = 'String' })
|
||||
end
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- general
|
||||
set_hl('DashboardHeader', { fg = c.base00 })
|
||||
set_hl('DashboardFooter', { fg = c.base00 })
|
||||
|
||||
-- Hyper
|
||||
set_hl('DashboardProjectTitle', { fg = c.blue })
|
||||
set_hl('DashboardProjectTitleIcon', { link = 'DashboardProjectTitle' })
|
||||
set_hl('DashboardProjectIcon', { link = 'Directory' })
|
||||
set_hl('DashboardMruTitle', { link = 'DashboardProjectTitle' })
|
||||
set_hl('DashboardMruIcon', { link = 'DashboardMruTitle' })
|
||||
set_hl('DashboardFiles', { fg = c.base0 })
|
||||
set_hl('DashboardShotCutIcon', { fg = c.magenta })
|
||||
|
||||
-- Doom theme
|
||||
set_hl('DashboardDesc', { fg = c.base0 })
|
||||
set_hl('DashboardKey', { fg = c.magenta })
|
||||
set_hl('DashboardIcon', { link = 'Directory' })
|
||||
set_hl('DashboardShotCut', { fg = c.base00 })
|
||||
end
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('DiagnosticError', { fg = c.error }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticWarn', { fg = c.warning }) --Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticInfo', { fg = c.info }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticHint', { fg = c.hint }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticOk', { fg = c.cyan }) -- Used as the base highlight group.(except Underline)
|
||||
-- set_hl('DiagnosticVirtualTextError') -- Used for "Error" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextWarn') -- Used for "Warn" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextInfo') -- Used for "Info" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextHint') -- Used for "Hint" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextOk') -- Used for "Ok" diagnostic virtual text.
|
||||
set_hl('DiagnosticUnderlineError', { fg = c.error, sp = c.error }) --Used to underline "Error" diagnostics.
|
||||
set_hl('DiagnosticUnderlineWarn', { fg = c.warning, sp = c.warning }) -- Used to underline "Warn" diagnostics.
|
||||
set_hl('DiagnosticUnderlineInfo', { fg = c.info, sp = c.info }) -- Used to underline "Info" diagnostics.
|
||||
set_hl('DiagnosticUnderlineHint', { fg = c.hint, sp = c.hint }) -- Used to underline "Hint" diagnostics.
|
||||
set_hl('DiagnosticUnderlineOk', { fg = c.cyan, sp = c.cyan }) -- Used to underline "Ok" diagnostics.
|
||||
-- set_hl('DiagnosticFloatingError') -- Used to color "Error" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingWarn') -- Used to color "Warn" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingInfo') -- Used to color "Info" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingHint') -- Used to color "Hint" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingOk') -- Used to color "Ok" diagnostic messages in diagnostics float.
|
||||
set_hl(
|
||||
'DiagnosticSignError',
|
||||
{ fg = c.error, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for "Error" signs in sign column.
|
||||
set_hl(
|
||||
'DiagnosticSignWarn',
|
||||
{ fg = c.warning, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for "Warn" signs in sign column.
|
||||
set_hl(
|
||||
'DiagnosticSignInfo',
|
||||
{ fg = c.info, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for "Info" signs in sign column.
|
||||
set_hl(
|
||||
'DiagnosticSignHint',
|
||||
{ fg = c.hint, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for "Hint" signs in sign column.
|
||||
set_hl(
|
||||
'DiagnosticSignOk',
|
||||
{ fg = c.cyan, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for "Ok" signs in sign column.
|
||||
-- set_hl('DiagnosticDeprecated') -- Used for deprecated or obsolete code.
|
||||
-- set_hl('DiagnosticUnnecessary') -- Used for unnecessary or unused code.
|
||||
end
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('ColorColumn', { bg = c.base02 }) -- used for columns
|
||||
set_hl('Conceal', { fg = c.blue }) -- placeholder characters
|
||||
set_hl('CurSearch', { fg = c.base2, bg = c.base02 }) -- highlight under cursor
|
||||
set_hl('Cursor', { fg = c.base03, bg = c.base0 }) -- character under cursor
|
||||
set_hl('lCursor', { link = 'Cursor' }) -- character under the cursor
|
||||
set_hl('CursorIM', { link = 'Cursor' }) -- like cursor, but IME mode
|
||||
set_hl('CursorColumn', { link = 'ColorColumn' }) -- screen-column at the cursor
|
||||
set_hl('CursorLine', { bg = c.base02, sp = c.base1 }) -- screen-line at the cursor
|
||||
set_hl('Directory', { fg = c.blue }) -- directory names
|
||||
set_hl('DiffAdd', { fg = c.add, reverse = true }) -- Added line
|
||||
set_hl('DiffChange', { fg = c.change, reverse = true }) -- Changed line
|
||||
set_hl('DiffDelete', { fg = c.delete, reverse = true }) -- Deleted line
|
||||
set_hl('DiffText', { fg = c.blue, reverse = true }) -- Changed Text
|
||||
set_hl('EndOfBuffer', { fg = c.base03 }) -- Filler lines (~)
|
||||
set_hl('TermCursor', { link = 'Cursor' }) -- Cursor in a focused terminal
|
||||
set_hl('TermCursorNC', { fg = c.base03, bg = c.base0 }) -- Cursor in an unfocused terminal
|
||||
set_hl('ErrorMsg', { fg = c.error, reverse = true }) -- Error messages on the command line
|
||||
set_hl(
|
||||
'WinSeparator',
|
||||
{ fg = c.base00, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Separators between window splits
|
||||
set_hl(
|
||||
'Folded',
|
||||
{ fg = c.base0, bg = c.base02, underline = true, bold = true }
|
||||
) -- Line used for closed folds
|
||||
set_hl('FoldColumn', { fg = c.base0, bg = c.base02, bold = true }) -- 'foldcolumn'
|
||||
set_hl(
|
||||
'SignColumn',
|
||||
{ fg = c.base0, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Column were signs are displayed
|
||||
set_hl('IncSearch', { fg = c.orange, standout = true }) -- 'incsearch' highlighting, also for the text replaced
|
||||
set_hl('Substitute', { link = 'IncSearch' }) -- :substitute replacement text highlight
|
||||
set_hl(
|
||||
'LineNr',
|
||||
{ fg = c.base01, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Line number for ":number" and ":#" commands
|
||||
set_hl('LineNrAbove', { link = 'LineNr' }) -- Line number, above the cursor line
|
||||
set_hl('LineNrBelow', { link = 'LineNr' }) -- Line number, below the cursor
|
||||
set_hl(
|
||||
'CursorLineNr',
|
||||
{ fg = c.base1, bg = c.base02, bold = true },
|
||||
{ transparent = config.transparent }
|
||||
) -- Like LineNr when 'cursorline' is set
|
||||
set_hl('CursorLineFold', { link = 'FoldColumn' }) -- Like FoldColumn when 'cursorline' is set
|
||||
set_hl('CursorLineSign', { link = 'SignColumn' }) -- Like SignColumn when 'cursorline' is set
|
||||
set_hl('MatchParen', { fg = c.red, bg = c.base01, bold = true }) -- Character under the cursor or just before it
|
||||
set_hl('ModeMsg', { fg = c.blue }) -- 'showmode' message (e.g., "-- INSERT --")
|
||||
set_hl('MsgArea', { link = 'Normal' }) -- 'Area for messages and cmdline'
|
||||
set_hl('MsgSeparator', { link = 'Normal' }) -- Separator for scrolled messages msgsep.
|
||||
set_hl('MoreMsg', { fg = c.blue }) -- more-prompt
|
||||
set_hl('NonText', { fg = c.base1, bold = true }) -- '@' at the end of the window
|
||||
set_hl(
|
||||
'Normal',
|
||||
{ fg = c.base0, bg = c.base03 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Normal text
|
||||
set_hl('NormalFloat', { fg = c.base0, bg = c.base02 }) -- Normal text in floating windows
|
||||
set_hl('FloatBorder', { link = 'WinSeparator', bold = true }) -- Border of floating windows.
|
||||
set_hl('FloatTitle', { fg = c.orange }) -- Title of float windows.
|
||||
set_hl('NormalNC', { link = 'Normal' }) -- Normal text in non-current windows.
|
||||
set_hl(
|
||||
'Pmenu',
|
||||
{ fg = c.base0, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Popup menu: Normal item
|
||||
set_hl('PmenuSel', { fg = c.base2, bg = c.base01 }) -- Popup menu: Selected item
|
||||
set_hl('PmenuKind', { link = 'Pmenu' }) -- Popup menu: Normal item kind
|
||||
set_hl('PmenuKindSel', { link = 'PmenuSel' }) -- Popup menu: Selected item kind
|
||||
set_hl('PmenuExtra', { link = 'Pmenu' }) -- Popup menu: Normal item extra text
|
||||
set_hl('PmenuExtraSel', { link = 'PmenuSel' }) -- Popup menu: Selected item extra text
|
||||
set_hl('PmenuSbar', { fg = c.base0, bg = c.base2 }) -- Popup menu: Scrollbar
|
||||
set_hl('PmenuThumb', { fg = c.base03, bg = c.base0 }) -- Popup menu: Thumb of the scrollbar
|
||||
set_hl('Question', { fg = c.cyan, bold = true }) -- hit-enter prompt and yes/no questions.
|
||||
set_hl('QuickFixLine', { fg = c.base0, bg = c.base03 }) -- Current quickfix item in the quickfix window
|
||||
set_hl('Search', { fg = c.yellow, reverse = true }) -- Last search pattern highlighting
|
||||
set_hl('SpecialKey', { fg = c.red, reverse = true }) -- Unprintable characters: Text displayed differently from what it really is.
|
||||
set_hl('SpellBad', { sp = c.red, undercurl = true }) -- Word that is not recognized by the spellchecker.
|
||||
set_hl('SpellCap', { sp = c.violet, undercurl = true }) -- Word that should start with a capital
|
||||
set_hl('SpellLocal', { sp = c.yellow, undercurl = true }) -- Word that is recognized by the spellchecker as one that is used in another region
|
||||
set_hl('SpellRare', { sp = c.cyan, undercurl = true }) -- Word that is recognized by the spellchecker as one that is hardly ever used.
|
||||
set_hl('StatusLine', { fg = c.base02, bg = c.base1 }) -- Status line of current window.
|
||||
set_hl('StatusLineNC', { fg = c.base02, bg = c.base00 }) -- Status lines of not-current windows.
|
||||
set_hl(
|
||||
'TabLine',
|
||||
{ fg = c.base0, bg = c.base02, sp = c.base0, underline = true }
|
||||
) -- Tab pages line, not active tab page label.
|
||||
set_hl(
|
||||
'TabLineFill',
|
||||
{ fg = c.base0, bg = c.base02, sp = c.base0, underline = true }
|
||||
) -- Tab pages line, where there are no labels.
|
||||
set_hl(
|
||||
'TabLineSel',
|
||||
{ fg = c.base2, bg = c.base01, sp = c.base0, underline = true }
|
||||
) -- Tab pages line, active tab page label.
|
||||
set_hl('Title', { fg = c.orange, bold = true }) -- Titles for output from ":set all", ":autocmd" etc.
|
||||
set_hl('Visual', { bg = c.base02, standout = true }) -- Visual mode selection.
|
||||
set_hl('VisualNOS', { link = 'Visual' }) -- Visual mode selection when vim is "Not Owning the Selection".
|
||||
set_hl('WarningMsg', { fg = c.warning, bold = true }) -- Warning messages.
|
||||
set_hl('Whitespace', { fg = c.base01 }) -- "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'.
|
||||
set_hl('WildMenu', { fg = c.base2, bg = c.base02 }) -- Current match in 'wildmenu' completion.
|
||||
set_hl('WinBar', { link = 'Pmenu' }) -- Window bar of current window.
|
||||
set_hl('WinBarNC', { link = 'WinBar' }) -- Window bar of not-current windows.
|
||||
end
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl(
|
||||
'GitSignsAdd',
|
||||
{ fg = c.add, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for the text of 'add' signs
|
||||
set_hl(
|
||||
'GitSignsChange',
|
||||
{ fg = c.change, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for the text of 'change' signs
|
||||
set_hl(
|
||||
'GitSignsDelete',
|
||||
{ fg = c.delete, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Used for the text of 'delete' signs
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('HopNextKey', { fg = c.magenta })
|
||||
set_hl('HopNextKey1', { fg = c.blue })
|
||||
set_hl('HopNextKey2', { fg = '#1b6294' })
|
||||
set_hl('HopUnmatched', { fg = c.base01 })
|
||||
end
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('IndentBlanklineChar', { fg = c.base01 }) -- Highlight of indent character. Default: Whitespace
|
||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
||||
set_hl('IndentBlanklineContextChar', { fg = c.base0 }) -- Highlight of indent character when base of current context. Default: Label
|
||||
set_hl(
|
||||
'IndentBlanklineContextSpaceChar',
|
||||
{ link = 'IndentBlanklineContextChar' }
|
||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
||||
set_hl('IblIndent', { fg = c.base0, nocombine = true })
|
||||
set_hl('IblScope', { fg = c.base01, nocombine = true })
|
||||
|
||||
-- set_hl('IndentBlanklineSpaceCharBlankline', {}) -- Highlight of space character on blank lines. Default: Whitespace
|
||||
-- set_hl('IndentBlanklineContextStart', {}) -- Highlight of the first line of the current context. Default: Label
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
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
|
||||
set_hl('LspInlayHint', { fg = c.base01 }) -- used for highlighting inlay hints
|
||||
|
||||
-- if you want to me to enable the highlight groups bellow, please send a screenshot for me to see how
|
||||
-- they look like or how to config for me to test.
|
||||
|
||||
-- set_hl('LspCodelens') -- Used to color the virtual text of the codelens.
|
||||
-- set_hl('LspCodeLensSeparator') -- Used to color the separator between two or more code lenses.
|
||||
-- set_hl('LspSignatureActiveParameter') -- Used to highlight the active parameter in the signature help. See
|
||||
end
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- Float window
|
||||
set_hl('SagaNormal', { link = 'Pmenu' })
|
||||
set_hl(
|
||||
'TitleString',
|
||||
{ fg = c.orange, bold = true, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
|
||||
-- Outline
|
||||
set_hl('OutlineIndent', { fg = c.green })
|
||||
|
||||
-- Icons
|
||||
set_hl('SagaWinbarModule', { link = '@namespace' })
|
||||
set_hl('SagaWinbarInterface', { link = 'Type' })
|
||||
set_hl('SagaWinbarConstructor', { link = '@constructor' })
|
||||
set_hl('SagaWinbarStruct', { link = 'Structure' })
|
||||
set_hl('SagaWinbarObject', { link = '@field' })
|
||||
set_hl('SagaWinbarUnit', { link = 'Number' })
|
||||
set_hl('SagaWinbarFile', { fg = c.base0 })
|
||||
set_hl('SagaWinbarSnippet', { link = 'Keyword' })
|
||||
set_hl('SagaWinbarText', { fg = c.base1 })
|
||||
set_hl('SagaWinbarTypeAlias', { link = 'Type' })
|
||||
set_hl('SagaWinbarEvent', { fg = c.base2 })
|
||||
set_hl('SagaWinbarParameter', { link = '@parameter' })
|
||||
set_hl('SagaWinbarKey', { link = '@field' })
|
||||
set_hl('SagaWinbarValue', { fg = c.base2 })
|
||||
set_hl('SagaWinbarMacro', { link = 'Macro' })
|
||||
set_hl('SagaWinbarNumber', { link = 'Number' })
|
||||
set_hl('SagaWinbarConstant', { link = 'Constant' })
|
||||
set_hl('SagaWinbarFunction', { link = 'Function' })
|
||||
set_hl('SagaWinbarEnum', { link = 'Type' })
|
||||
set_hl('SagaWinbarField', { link = '@field' })
|
||||
set_hl('SagaWinbarProperty', { link = '@field' })
|
||||
set_hl('SagaWinbarMethod', { link = 'Function' })
|
||||
set_hl('SagaWinbarClass', { link = 'Type' })
|
||||
set_hl('SagaWinbarFolder', { link = 'Directory' })
|
||||
set_hl('SagaWinbarPackage', { link = 'Directory' })
|
||||
set_hl('SagaWinbarStaticMethod', { link = 'Function' })
|
||||
set_hl('SagaWinbarTypeParameter', { link = 'Type' })
|
||||
set_hl('SagaWinbarEnumMember', { link = 'Constant' })
|
||||
set_hl('SagaWinbarOperator', { link = 'Operator' })
|
||||
set_hl('SagaWinbarNull', { link = 'Constant' })
|
||||
set_hl('SagaWinbarNamespace', { link = '@namespace' })
|
||||
set_hl('SagaWinbarArray', { link = 'Delimiter' })
|
||||
set_hl('SagaWinbarBoolean', { link = 'Boolean' })
|
||||
set_hl('SagaWinbarString', { link = 'String' })
|
||||
set_hl('SagaWinbarVariable', { link = 'Identifier' })
|
||||
set_hl('SagaWinbarFilename', { fg = c.base0 })
|
||||
set_hl('SagaWinbarFolderName', { fg = c.base0 })
|
||||
set_hl('SagaWinbarFileIcon', { link = 'Directory' })
|
||||
set_hl('SagaWinbarSep', { link = 'Keyword' })
|
||||
end
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- MiniCursor
|
||||
set_hl('MiniCursorword', { bg = c.base02 })
|
||||
|
||||
-- MiniStatusLine
|
||||
set_hl('MiniStatuslineModeNormal', { fg = c.base03, bg = c.blue })
|
||||
set_hl('MiniStatuslineModeInsert', { fg = c.base03, bg = c.green })
|
||||
set_hl('MiniStatuslineModeVisual', { fg = c.base03, bg = c.magenta })
|
||||
set_hl('MiniStatuslineModeReplace', { fg = c.base03, bg = c.red })
|
||||
set_hl('MiniStatuslineModeCommand', { fg = c.base03, bg = c.orange })
|
||||
set_hl('MinistatusLineFileName', { fg = c.base0, bg = c.base02 })
|
||||
set_hl('MiniStatuslineDevinfo', { fg = c.base03, bg = c.base1 })
|
||||
set_hl('MiniStatuslineFileinfo', { fg = c.base03, bg = c.base1 })
|
||||
set_hl('MiniStatuslineInactive', { fg = c.base01, bg = c.base03 })
|
||||
|
||||
-- MiniTabLine
|
||||
set_hl('MiniTablineCurrent', { fg = c.base2, bg = c.base1 })
|
||||
set_hl('MiniTablineVisible', { fg = c.base2, bg = c.base03 })
|
||||
set_hl('MiniTablineHidden', { fg = c.base01, bg = c.base03 })
|
||||
set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
||||
set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
||||
set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
||||
set_hl('MiniTablineFill', { link = 'NormalFloat' })
|
||||
set_hl('MiniTablineTabpagesection', { link = 'NormalFloat' })
|
||||
|
||||
-- MiniStarter
|
||||
set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
||||
set_hl('MiniStarterHeader', { fg = c.base00 })
|
||||
set_hl('MiniStarterFooter', { fg = c.base00 })
|
||||
set_hl('MiniStarterItem', { fg = c.base0 })
|
||||
set_hl('MiniStarterItemBullet', { fg = c.blue })
|
||||
set_hl('MiniStarterItemPrefix', { fg = c.blue })
|
||||
set_hl('MiniStarterSection', { link = 'Title' })
|
||||
set_hl('MiniStarterQuery', { fg = c.magenta, bg = 'NONE', bold = true })
|
||||
end
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NavicIconsFile', { fg = c.base00 })
|
||||
set_hl('NavicIconsModule', { link = '@namespace' })
|
||||
set_hl('NavicIconsNamespace', { link = '@namespace' })
|
||||
set_hl('NavicIconsPackage', { link = 'Directory' })
|
||||
set_hl('NavicIconsClass', { link = 'Type' })
|
||||
set_hl('NavicIconsMethod', { link = 'Type' })
|
||||
set_hl('NavicIconsProperty', { link = '@field' })
|
||||
set_hl('NavicIconsField', { link = '@field' })
|
||||
set_hl('NavicIconsConstructor', { link = '@constructor' })
|
||||
set_hl('NavicIconsEnum', { link = 'Type' })
|
||||
set_hl('NavicIconsInterface', { link = 'Type' })
|
||||
set_hl('NavicIconsFunction', { link = 'Function' })
|
||||
set_hl('NavicIconsVariable', { link = 'Identifier' })
|
||||
set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||
set_hl('NavicIconsString', { link = 'String' })
|
||||
set_hl('NavicIconsNumber', { link = 'Number' })
|
||||
set_hl('NavicIconsBoolean', { link = 'Boolean' })
|
||||
set_hl('NavicIconsArray', { link = 'Delimiter' })
|
||||
set_hl('NavicIconsObject', { link = '@field' })
|
||||
set_hl('NavicIconsKey', { link = '@field' })
|
||||
set_hl('NavicIconsNull', { link = 'Constant' })
|
||||
set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||
set_hl('NavicIconsStruct', { link = 'Structure' })
|
||||
set_hl('NavicIconsEvent', { fg = c.base2 })
|
||||
set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||
set_hl('NavicIconsTypeParameter', { link = '@parameter' })
|
||||
set_hl('NavicText', { fg = c.base1 })
|
||||
set_hl('NavicSeparator', { link = 'Keyword' })
|
||||
end
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
return function(c)
|
||||
local blend = require('solarized.utils.colors').blend
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
local alpha = 0.05
|
||||
|
||||
set_hl('NeogitCursorLine', { link = 'CursorLine' })
|
||||
set_hl('NeogitBranch', { fg = c.magenta })
|
||||
set_hl('NeogitRemote', { fg = c.violet })
|
||||
set_hl(
|
||||
'NeogitHunkHeader',
|
||||
{ fg = c.orange, bg = blend(c.orange, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
||||
set_hl('NeogitDiffContextHighlight', { fg = c.base00, bg = c.base03 })
|
||||
set_hl('NeogitDiffContext', { fg = c.base00, bg = c.base03 })
|
||||
set_hl(
|
||||
'NeogitDiffDeleteHighlight',
|
||||
{ fg = c.red, bg = blend(c.red, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitDiffDelete', { fg = c.red })
|
||||
set_hl(
|
||||
'NeogitDiffAddHighlight',
|
||||
{ fg = c.green, bg = blend(c.green, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitDiffAdd', { fg = c.green })
|
||||
end
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
return function(c)
|
||||
local set_hl = require('solarized.utils').set_hl
|
||||
|
||||
set_hl('NoiceFormatProgressTodo', { fg = c.base01, reverse = true })
|
||||
set_hl('NoiceFormatProgressDone', { fg = c.cyan, reverse = true })
|
||||
set_hl('NoiceLspProgressSpinner', { fg = c.cyan })
|
||||
set_hl('NoiceLspProgressClient', { fg = c.blue })
|
||||
set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
||||
end
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NotifyBackground', { bg = c.base03 })
|
||||
set_hl('NotifyERRORBorder', { fg = c.error })
|
||||
set_hl('NotifyWARNBorder', { fg = c.warn })
|
||||
set_hl('NotifyINFOBorder', { fg = c.info })
|
||||
set_hl('NotifyDEBUGBorder', { fg = c.magenta })
|
||||
set_hl('NotifyTRACEBorder', { fg = c.violet })
|
||||
set_hl('NotifyERRORIcon', { link = 'NotifyERRORBorder' })
|
||||
set_hl('NotifyWARNIcon', { link = 'NotifyWARNBorder' })
|
||||
set_hl('NotifyINFOIcon', { link = 'NotifyINFOBorder' })
|
||||
set_hl('NotifyDEBUGIcon', { link = 'NotifyDEBUGBorder' })
|
||||
set_hl('NotifyTRACEIcon', { link = 'NotifyTRACEBorder' })
|
||||
set_hl('NotifyERRORTitle', { link = 'NotifyERRORBorder' })
|
||||
set_hl('NotifyWARNTitle', { link = 'NotifyWARNBorder' })
|
||||
set_hl('NotifyINFOTitle', { link = 'NotifyINFOBorder' })
|
||||
set_hl('NotifyDEBUGTitle', { link = 'NotifyDEBUGTitle' })
|
||||
set_hl('NotifyTRACETitle', { link = 'NotifyTRACEBorder' })
|
||||
set_hl('NotifyERRORBody', { link = 'Normal' })
|
||||
set_hl('NotifyWARNBody', { link = 'Normal' })
|
||||
set_hl('NotifyINFOBody', { link = 'Normal' })
|
||||
set_hl('NotifyDEBUGBody', { link = 'Normal' })
|
||||
set_hl('NotifyTRACEBody', { link = 'Normal' })
|
||||
end
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- Default highlight
|
||||
set_hl('@lsp.type.class', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.decorator', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.enum', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.enumMember', { link = 'Constant' }) -- Constant
|
||||
set_hl('@lsp.type.function', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.interface', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.macro', { link = 'Macro' }) -- Keyword
|
||||
set_hl('@lsp.type.method', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.namespace', { link = '@namespace' }) -- Namespace
|
||||
set_hl(
|
||||
'@lsp.type.parameter',
|
||||
{ fg = c.base0, italic = true },
|
||||
{ styles = config.styles.parameters }
|
||||
)
|
||||
set_hl('@lsp.type.property', { link = '@field' }) -- Property
|
||||
set_hl('@lsp.type.struct', { link = 'Structure' }) -- Structure
|
||||
set_hl('@lsp.type.type', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.typeParameter', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.variable', { link = 'Identifier' }) -- Identifier
|
||||
|
||||
-- Extra highlight
|
||||
set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' }) -- Constant variables ex: const hello = 'Hello World'
|
||||
set_hl('@lsp.typemod.variable.global', { link = 'Constant' }) -- Global variables ex: HELLO = 'Hello World'
|
||||
set_hl('@lsp.typemod.keyword.documentation', { link = 'Keyword' }) -- documentation comments
|
||||
set_hl('@lsp.typemod.class.documentation', { link = 'Type' }) -- documentation comments
|
||||
set_hl('@lsp.typemod.property.readonly', { link = 'Constant' }) -- Ex: System."out".println()
|
||||
end
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl(
|
||||
'Comment',
|
||||
{ fg = c.base01, italic = true },
|
||||
{ styles = config.styles.comments }
|
||||
) -- any comment
|
||||
set_hl('Constant', { fg = c.cyan }, { styles = config.styles.constants }) -- any constant
|
||||
set_hl('String', { fg = c.cyan }) -- a string constant: "this is a string"
|
||||
set_hl('Character', { link = 'String' }) -- a character constant: 'c', '\n'
|
||||
set_hl('Number', { fg = c.magenta }, { styles = config.styles.numbers }) -- a number constant: 234, 0xff
|
||||
set_hl('Boolean', { link = 'Constant' }) -- a boolean constant: TRUE, false
|
||||
set_hl('Float', { link = 'Number' }) -- a floating point constant: 2.3e10
|
||||
set_hl('Identifier', { fg = c.blue }, { styles = config.styles.variables }) -- any variable name
|
||||
set_hl('Function', { fg = c.blue }, { styles = config.styles.functions }) -- function name (also: methods for classes)
|
||||
set_hl('Statement', { fg = c.green }) -- any statement
|
||||
set_hl('Conditional', { link = 'Statement' }) -- if, then, else, endif, switch, etc.
|
||||
set_hl('Repeat', { link = 'Statement' }) -- for, do, while, etc.
|
||||
set_hl('Label', { link = 'Statement' }) -- case, default, etc.
|
||||
set_hl('Operator', { link = 'Statement' }) -- "sizeof", "+", "*", etc.
|
||||
set_hl(
|
||||
'Keyword',
|
||||
{ fg = c.base1, bold = true },
|
||||
{ styles = config.styles.keywords }
|
||||
) -- any other keyword
|
||||
set_hl('Exception', { link = 'Statement' }) -- try, catch, throw
|
||||
set_hl('PreProc', { fg = c.orange }) -- generic Preprocessor
|
||||
set_hl('Include', { link = 'PreProc' }) -- preprocessor #include
|
||||
set_hl('Define', { link = 'PreProc' }) -- preprocessor #define
|
||||
set_hl('Macro', { link = 'PreProc' }) -- same as Define
|
||||
set_hl('PreCondit', { link = 'PreProc' }) -- preprocessor #if, #else, #endif, etc.
|
||||
set_hl('Type', { fg = c.yellow }, { styles = config.styles.types }) -- int, long, char, etc.
|
||||
set_hl('StorageClass', { fg = c.yellow }) -- static, register, volatile, etc.
|
||||
set_hl('Structure', { fg = c.yellow }) -- struct, union, enum, etc.
|
||||
set_hl('Typedef', { fg = c.yellow }) -- A typedef
|
||||
set_hl('Special', { fg = c.red }) -- special symbol
|
||||
set_hl('SpecialChar', { link = 'Special' }) -- special character in a constant
|
||||
set_hl('Tag', { link = 'Special' }) -- you can use CTRL-] on this
|
||||
set_hl('Delimiter', { fg = c.base00 }) -- character that needs attention
|
||||
set_hl('SpecialComment', { link = 'Special' }) -- special things inside a comment
|
||||
set_hl('Debug', { link = 'Special' }) -- debugging statements
|
||||
set_hl('Underlined', { fg = c.violet }) --text that stands out, HTML links
|
||||
set_hl('Ignore') --left blank, hidden |hl-Ignore|
|
||||
set_hl('Error', { fg = c.error, bold = true }) --any erroneous construct
|
||||
set_hl('Todo', { fg = c.magenta, bold = true }) --anything that needs extra attention; mostly the keywords TODO FIXME and XXX
|
||||
end
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('TelescopeSelection', { link = 'Visual' })
|
||||
set_hl('TelescopeSelectionCaret', { link = 'TelescopeSelection' })
|
||||
set_hl('TelescopeMultiSelection', { link = 'Type' })
|
||||
set_hl('TelescopeMultiIcon', { fg = c.cyan })
|
||||
|
||||
-- "Normal" in the floating windows created by telescope.
|
||||
set_hl(
|
||||
'TelescopeNormal',
|
||||
{ fg = c.base0, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||
set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||
set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||
|
||||
-- Border highlight groups.
|
||||
-- Use TelescopeBorder to override the default.
|
||||
-- Otherwise set them specifically
|
||||
set_hl('TelescopeBorder', { link = 'WinSeparator' })
|
||||
set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
||||
set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
||||
set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
||||
|
||||
-- Title highlight groups.
|
||||
-- Use TelescopeTitle to override the default.
|
||||
-- Otherwise set them specifically
|
||||
set_hl('TelescopeTitle', { fg = c.blue, reverse = true })
|
||||
set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
||||
set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
||||
set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
||||
|
||||
set_hl('TelescopePromptCounter', { link = 'NonText' })
|
||||
|
||||
-- Used for highlighting characters that you match.
|
||||
set_hl('TelescopeMatching', { fg = c.yellow })
|
||||
|
||||
-- Used for the prompt prefix
|
||||
set_hl('TelescopePromptPrefix', { fg = c.magenta })
|
||||
end
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local colortool = require('solarized.utils.colors')
|
||||
local set_hl = utils.set_hl
|
||||
local colorFunc
|
||||
local percentage = 80
|
||||
|
||||
if vim.o.background == 'light' then
|
||||
colorFunc = colortool.lighten
|
||||
else
|
||||
colorFunc = colortool.darken
|
||||
end
|
||||
|
||||
-- TODO: TODO
|
||||
-- WARN: WARN
|
||||
-- TEST: TEST
|
||||
-- PERF: PERF
|
||||
-- NOTE: NOTE
|
||||
-- HACK: HACK
|
||||
|
||||
set_hl('TodoFgTODO', { fg = c.info })
|
||||
set_hl('TodoFgWARN', { fg = c.warning })
|
||||
set_hl('TodoFgTEST', { fg = c.violet })
|
||||
set_hl('TodoFgPERF', { fg = c.magenta })
|
||||
set_hl('TodoFgNOTE', { fg = c.hint })
|
||||
set_hl('TodoFgHACK', { fg = c.cyan })
|
||||
set_hl('TodoFgFIX', { fg = c.error })
|
||||
|
||||
set_hl('TodoSignTODO', { fg = c.info })
|
||||
set_hl('TodoSignWARN', { fg = c.warning })
|
||||
set_hl('TodoSignTEST', { fg = c.violet })
|
||||
set_hl('TodoSignPERF', { fg = c.magenta })
|
||||
set_hl('TodoSignNOTE', { fg = c.hint })
|
||||
set_hl('TodoSignHACK', { fg = c.cyan })
|
||||
set_hl('TodoSignFIX', { fg = c.error })
|
||||
|
||||
set_hl('TodoBgTODO', { fg = c.info, bg = colorFunc(c.info, percentage) })
|
||||
set_hl(
|
||||
'TodoBgWARN',
|
||||
{ fg = c.warning, bg = colorFunc(c.warning, percentage) }
|
||||
)
|
||||
set_hl('TodoBgTEST', { fg = c.violet, bg = colorFunc(c.violet, percentage) })
|
||||
set_hl(
|
||||
'TodoBgPERF',
|
||||
{ fg = c.magenta, bg = colorFunc(c.magenta, percentage) }
|
||||
)
|
||||
set_hl('TodoBgNOTE', { fg = c.hint, bg = colorFunc(c.hint, percentage) })
|
||||
set_hl('TodoBgHACK', { fg = c.cyan, bg = colorFunc(c.cyan, percentage) })
|
||||
set_hl('TodoBgFIX', { fg = c.error, bg = colorFunc(c.error, percentage) })
|
||||
end
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local base04 = darken(c.base03, 10)
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||
set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||
-- set_hl('NvimTreeSymlinkFolderName') -- (Directory)
|
||||
set_hl('NvimTreeFolderName', { fg = c.base0 }) -- (Directory)
|
||||
set_hl('NvimTreeRootFolder', { link = 'Title' })
|
||||
set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
||||
-- set_hl('NvimTreeOpenedFolderIcon') -- (NvimTreeFolderIcon)
|
||||
-- set_hl('NvimTreeClosedFolderIcon') -- (NvimTreeFolderIcon)
|
||||
-- set_hl('NvimTreeFileIcon')
|
||||
set_hl('NvimTreeEmptyFolderName', { fg = c.base0 }) -- (Directory)
|
||||
-- set_hl('NvimTreeOpenedFolderName') -- (Directory)
|
||||
set_hl('NvimTreeExecFile', { link = 'Function' })
|
||||
set_hl('NvimTreeOpenedFile', { fg = c.blue, bold = true })
|
||||
set_hl('NvimTreeModifiedFile', { fg = c.change })
|
||||
set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
||||
-- set_hl('NvimTreeImageFile')
|
||||
set_hl('NvimTreeIndentMarker', { fg = c.base01 })
|
||||
-- set_hl('NvimTreeLspDiagnosticsError') -- (DiagnosticError)
|
||||
-- set_hl('NvimTreeLspDiagnosticsWarning') -- (DiagnosticWarn)
|
||||
set_hl('NvimTreeLspDiagnosticsInformation') -- (DiagnosticInfo)
|
||||
set_hl('NvimTreeLspDiagnosticsHint') -- (DiagnosticHint)
|
||||
set_hl('NvimTreeGitDirty', { fg = c.change })
|
||||
set_hl('NvimTreeGitStaged', { fg = c.add })
|
||||
set_hl('NvimTreeGitMerge', { fg = c.change })
|
||||
set_hl('NvimTreeGitRenamed', { fg = c.add })
|
||||
set_hl('NvimTreeGitNew', { fg = c.add })
|
||||
set_hl('NvimTreeGitDeleted', { fg = c.delete })
|
||||
-- set_hl('NvimTreeGitIgnored') -- (Comment)
|
||||
-- set_hl('NvimTreeWindowPicker')
|
||||
set_hl(
|
||||
'NvimTreeNormal',
|
||||
{ fg = c.base0, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||
set_hl('NvimTreeEndOfBuffer', { fg = base04 }) -- (NonText)
|
||||
-- set_hl('NvimTreeCursorLine') -- (CursorLine)
|
||||
-- set_hl('NvimTreeCursorLineNr') -- (CursorLineNr)
|
||||
-- set_hl('NvimTreeLineNr') -- (LineNr)
|
||||
set_hl(
|
||||
'NvimTreeWinSeparator',
|
||||
{ fg = base04, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
) -- (WinSeparator)
|
||||
-- set_hl('NvimTreeCursorColumn') -- (CursorColumn)
|
||||
--
|
||||
-- There are also links for file highlight with git properties, linked to their
|
||||
-- Git equivalent:
|
||||
--
|
||||
-- set_hl('NvimTreeFileDirty') -- (NvimTreeGitDirty)
|
||||
-- set_hl('NvimTreeFileStaged') -- (NvimTreeGitStaged)
|
||||
-- set_hl('NvimTreeFileMerge') -- (NvimTreeGitMerge)
|
||||
-- set_hl('NvimTreeFileRenamed') -- (NvimTreeGitRenamed)
|
||||
-- set_hl('NvimTreeFileNew') -- (NvimTreeGitNew)
|
||||
-- set_hl('NvimTreeFileDeleted') -- (NvimTreeGitDeleted)
|
||||
-- set_hl('NvimTreeFileIgnored') -- (NvimTreeGitIgnored)
|
||||
-- set_hl('NvimTreeLiveFilterPrefix')
|
||||
-- set_hl('NvimTreeLiveFilterValue')
|
||||
-- set_hl('NvimTreeBookmark')
|
||||
end
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
--[[ Highlight capture names as of nvim-treesitter commit `6806d7a` ]]
|
||||
--
|
||||
|
||||
-- Identifiers
|
||||
set_hl('@variable', { link = 'Identifier' }) -- various variable names
|
||||
set_hl('@variable.builtin', { link = 'Identifier' }) -- built-in variable names (e.g. `this`)
|
||||
set_hl(
|
||||
'@variable.parameter',
|
||||
{ fg = c.base0, italic = true },
|
||||
{ styles = config.styles.parameters }
|
||||
) -- parameters of a function
|
||||
set_hl('@variable.member', { fg = c.blue }) -- object and struct fields
|
||||
set_hl('@constant', { link = 'Constant' }) -- constant identifiers
|
||||
set_hl('@constant.builtin', { link = 'Constant' }) -- built-in constant values
|
||||
set_hl('@constant.macro', { link = 'Constant' }) -- constants defined by the preprocessor
|
||||
set_hl('@module', { fg = c.violet }) -- modules or namespaces
|
||||
set_hl('@module.builtin', { fg = c.cyan }) -- built-in modules or namespaces
|
||||
set_hl('@label', { link = 'Label' }) -- GOTO and other labels (e.g. `label:` in C), including heredoc labels
|
||||
|
||||
-- Literals
|
||||
set_hl('@string', { link = 'String' }) -- string literals
|
||||
set_hl('@string.documentation', { link = 'Comment' }) -- string documenting code (e.g. Python docstrings)
|
||||
set_hl('@string.regexp', { fg = c.violet }) -- regular expressions
|
||||
set_hl('@string.escape', { link = 'Keyword' }) -- escape sequences
|
||||
set_hl('@string.special', { link = 'SpecialChar' }) -- other special strings (e.g. dates)
|
||||
set_hl('@string.special.symbol', { fg = c.violet }) -- symbols or atoms
|
||||
set_hl('@string.special.url', { link = 'Underlined' }) -- URIs (e.g. hyperlinks)
|
||||
set_hl('@string.special.path', { link = 'Underlined' }) -- filenames
|
||||
set_hl('@character', { link = 'String' }) -- character literals
|
||||
set_hl('@character.special', { link = '@string.special' }) -- special characters (e.g. wildcards)
|
||||
set_hl('@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
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('WhichKey', { fg = c.base0 }) -- the key
|
||||
set_hl(
|
||||
'WhichKeyNormal',
|
||||
{ fg = c.base0, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
set_hl('WhichKeyGroup', { fg = c.blue }) -- a group
|
||||
set_hl('WhichKeySeparator', { fg = c.magenta }) -- the separator between the key and its label
|
||||
set_hl('WhichKeyDesc', { fg = c.base2 }) -- the label of the key
|
||||
-- set_hl('WhichKeyFloat') -- Normal in the popup window
|
||||
-- set_hl('WhichKeyBorder', { link = 'WinSeparator' })
|
||||
-- set_hl('WhichKeyValue') -- used by plugins that provide values
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- When `termguicolors` is enabled, this plugin is designed to work automatically,
|
||||
-- deriving colours from the user's theme.
|
||||
--
|
||||
-- My attempt to fix bufferline on transparent background
|
||||
if config.transparent then
|
||||
set_hl('BufferLineFill', { bg = c.base02 })
|
||||
set_hl('BufferLineBufferSelected', { fg = c.base2, italic = true })
|
||||
set_hl('BufferLineSeparator', { fg = c.base02 })
|
||||
set_hl('BufferLineSeparatorSelected', { fg = c.base02 })
|
||||
set_hl('BufferLineSeparatorVisible', { fg = c.base02 })
|
||||
end
|
||||
end
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- set_hl('CmpItemAbbr') -- Highlight group for unmatched characters of each completion field.
|
||||
set_hl('CmpItemAbbrDeprecated', { fg = c.base1, strikethrough = true }) -- Highlight group for unmatched characters of each deprecated completion field.
|
||||
set_hl('CmpItemAbbrMatch', { link = 'IncSearch' }) -- Highlight group for matched characters of each completion field.
|
||||
set_hl('CmpItemAbbrMatchFuzzy', { link = 'IncSearch' }) -- Highlight group for fuzzy-matched characters of each completion field.
|
||||
-- set_hl('CmpItemKind') -- Highlight group for the kind of the field.
|
||||
-- set_hl('CmpItemMenu') -- The menu field's highlight group.
|
||||
|
||||
set_hl('CmpItemKindReference', { link = 'Underlined' })
|
||||
set_hl('CmpItemKindUnit', { link = 'Number' })
|
||||
set_hl('CmpItemKindEnum', { link = 'Type' })
|
||||
set_hl('CmpItemKindField', { link = '@field' })
|
||||
set_hl('CmpItemKindClass', { link = 'Type' })
|
||||
set_hl('CmpItemKindFile', { fg = c.base0 })
|
||||
set_hl('CmpItemKindProperty', { link = '@field' })
|
||||
set_hl('CmpItemKindMethod', { link = 'Function' })
|
||||
set_hl('CmpItemKindKeyword', { link = 'Keyword' })
|
||||
set_hl('CmpItemKindFolder', { link = 'Directory' })
|
||||
set_hl('CmpItemKindSnippet', { link = 'Keyword' })
|
||||
set_hl('CmpItemKindVariable', { link = 'Identifier' })
|
||||
set_hl('CmpItemKindStruct', { link = 'Structure' })
|
||||
set_hl('CmpItemKindInterface', { link = 'Type' })
|
||||
set_hl('CmpItemKindTypeParameter', { link = 'Type' })
|
||||
set_hl('CmpItemKindEnumMember', { link = 'Constant' })
|
||||
set_hl('CmpItemKindEvent', { fg = c.base2 })
|
||||
set_hl('CmpItemKindConstructor', { link = '@constructor' })
|
||||
set_hl('CmpItemKindConstant', { link = 'Constant' })
|
||||
set_hl('CmpItemKindModule', { link = '@namespace' })
|
||||
set_hl('CmpItemKindValue', { fg = c.base2 })
|
||||
set_hl('CmpItemKindColor', { fg = c.magenta })
|
||||
set_hl('CmpItemKindFunction', { link = 'Function' })
|
||||
set_hl('CmpItemKindText', { link = 'String' })
|
||||
end
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- general
|
||||
set_hl('DashboardHeader', { fg = c.red })
|
||||
set_hl('DashboardFooter', { fg = c.violet })
|
||||
|
||||
-- Hyper
|
||||
set_hl('DashboardProjectTitle', { fg = c.blue })
|
||||
set_hl('DashboardProjectTitleIcon', { link = 'DashboardProjectTitle' })
|
||||
set_hl('DashboardProjectIcon', { link = 'Directory' })
|
||||
set_hl('DashboardMruTitle', { link = 'DashboardProjectTitle' })
|
||||
set_hl('DashboardMruIcon', { link = 'DashboardMruTitle' })
|
||||
set_hl('DashboardFiles', { fg = c.base0 })
|
||||
set_hl('DashboardShotCutIcon', { fg = c.magenta })
|
||||
|
||||
-- Doom theme
|
||||
set_hl('DashboardDesc', { fg = c.base00 })
|
||||
set_hl('DashboardKey', { fg = c.magenta })
|
||||
set_hl('DashboardIcon', { link = 'Directory' })
|
||||
set_hl('DashboardShotCut', { fg = c.base00 })
|
||||
end
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('DiagnosticError', { fg = c.error }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticWarn', { fg = c.warning }) --Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticInfo', { fg = c.info }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticHint', { fg = c.hint }) -- Used as the base highlight group.(except Underline)
|
||||
set_hl('DiagnosticOk', { fg = c.cyan }) -- Used as the base highlight group.(except Underline)
|
||||
-- set_hl('DiagnosticVirtualTextError') -- Used for "Error" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextWarn') -- Used for "Warn" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextInfo') -- Used for "Info" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextHint') -- Used for "Hint" diagnostic virtual text.
|
||||
-- set_hl('DiagnosticVirtualTextOk') -- Used for "Ok" diagnostic virtual text.
|
||||
set_hl('DiagnosticUnderlineError', { fg = c.error, sp = c.error }) --Used to underline "Error" diagnostics.
|
||||
set_hl('DiagnosticUnderlineWarn', { fg = c.warning, sp = c.warning }) -- Used to underline "Warn" diagnostics.
|
||||
set_hl('DiagnosticUnderlineInfo', { fg = c.info, sp = c.info }) -- Used to underline "Info" diagnostics.
|
||||
set_hl('DiagnosticUnderlineHint', { fg = c.hint, sp = c.hint }) -- Used to underline "Hint" diagnostics.
|
||||
set_hl('DiagnosticUnderlineOk', { fg = c.cyan, sp = c.cyan }) -- Used to underline "Ok" diagnostics.
|
||||
-- set_hl('DiagnosticFloatingError') -- Used to color "Error" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingWarn') -- Used to color "Warn" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingInfo') -- Used to color "Info" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingHint') -- Used to color "Hint" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticFloatingOk') -- Used to color "Ok" diagnostic messages in diagnostics float.
|
||||
-- set_hl('DiagnosticSignError') -- Used for "Error" signs in sign column.
|
||||
-- set_hl('DiagnosticSignWarn') -- Used for "Warn" signs in sign column.
|
||||
-- set_hl('DiagnosticSignInfo') -- Used for "Info" signs in sign column.
|
||||
-- set_hl('DiagnosticSignHint') -- Used for "Hint" signs in sign column.
|
||||
-- set_hl('DiagnosticSignOk') -- Used for "Ok" signs in sign column.
|
||||
-- set_hl('DiagnosticDeprecated') -- Used for deprecated or obsolete code.
|
||||
-- set_hl('DiagnosticUnnecessary') -- Used for unnecessary or unused code.
|
||||
end
|
||||
|
|
@ -1,109 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local base04 = darken(c.base03, 10)
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
if config.transparent then
|
||||
set_hl('ColorColumn', { bg = c.base02 }) -- used for columns
|
||||
else
|
||||
set_hl('ColorColumn', { bg = base04 }) -- used for columns
|
||||
end
|
||||
|
||||
set_hl('Conceal', { fg = c.blue }) -- placeholder characters
|
||||
set_hl('CurSearch', { fg = c.base2, bg = c.base02 }) -- highlight under cursor
|
||||
set_hl('Cursor', { fg = c.base03, bg = c.cyan }) -- character under cursor
|
||||
set_hl('lCursor', { link = 'Cursor' }) -- character under the cursor
|
||||
set_hl('CursorIM', { link = 'Cursor' }) -- like cursor, but IME mode
|
||||
set_hl('CursorColumn', { link = 'ColorColumn' }) -- screen-column at the cursor
|
||||
set_hl('CursorLine') -- screen-line at the cursor
|
||||
set_hl('Directory', { fg = c.orange }) -- directory names
|
||||
set_hl('DiffAdd', { fg = c.add }) -- Added line
|
||||
set_hl('DiffChange', { fg = c.change }) -- Changed line
|
||||
set_hl('DiffDelete', { fg = c.base03, bg = c.delete }) -- Deleted line
|
||||
set_hl('DiffText', { fg = c.blue, reverse = true }) -- Changed Text
|
||||
set_hl('EndOfBuffer', { fg = c.base03 }) -- Filler lines (~)
|
||||
set_hl('TermCursor', { link = 'Cursor' }) -- Cursor in a focused terminal
|
||||
set_hl('TermCursorNC', { fg = c.base03, bg = c.base0 }) -- Cursor in an unfocused terminal
|
||||
set_hl('ErrorMsg', { fg = c.error }) -- Error messages on the command line
|
||||
set_hl(
|
||||
'WinSeparator',
|
||||
{ fg = c.cyan, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Separators between window splits
|
||||
set_hl('Folded', { fg = c.base0, bg = c.base02 }) -- Line used for closed folds
|
||||
set_hl('FoldColumn', { fg = c.base0, bg = base04 }) -- 'foldcolumn'
|
||||
set_hl(
|
||||
'SignColumn',
|
||||
{ fg = c.base0, bg = c.base03 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Column were signs are displayed
|
||||
set_hl(
|
||||
'IncSearch',
|
||||
{ fg = c.base3, bg = base04, bold = true },
|
||||
{ transparent = config.transparent }
|
||||
) -- 'incsearch' highlighting, also for the text replaced
|
||||
set_hl('Substitute', { fg = c.orange, reverse = true }) -- :substitute replacement text highlight
|
||||
set_hl(
|
||||
'LineNr',
|
||||
{ fg = c.base01, bg = c.base03 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Line number for ":number" and ":#" commands
|
||||
set_hl('LineNrAbove', { link = 'LineNr' }) -- Line number, above the cursor line
|
||||
set_hl('LineNrBelow', { link = 'LineNr' }) -- Line number, below the cursor
|
||||
set_hl(
|
||||
'CursorLineNr',
|
||||
{ fg = c.base2, bg = c.base03 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Like LineNr when 'cursorline' is set
|
||||
set_hl('CursorLineFold', { link = 'FoldColumn' }) -- Like FoldColumn when 'cursorline' is set
|
||||
set_hl('CursorLineSign', { link = 'SignColumn' }) -- Like SignColumn when 'cursorline' is set
|
||||
set_hl('MatchParen', { fg = c.base2 }) -- Character under the cursor or just before it
|
||||
set_hl('ModeMsg', { link = 'Normal' }) -- 'showmode' message (e.g., "-- INSERT --")
|
||||
set_hl('MsgArea', { link = 'Normal' }) -- 'Area for messages and cmdline'
|
||||
set_hl('MsgSeparator', { link = 'Normal' }) -- Separator for scrolled messages msgsep.
|
||||
set_hl('MoreMsg', { fg = c.cyan }) -- more-prompt
|
||||
set_hl('NonText', { fg = c.base00 }) -- '@' at the end of the window
|
||||
set_hl(
|
||||
'Normal',
|
||||
{ fg = c.base0, bg = c.base03 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Normal text
|
||||
set_hl('NormalFloat', { fg = c.base0, bg = base04 }) -- Normal text in floating windows
|
||||
set_hl('FloatBorder', { link = 'WinSeparator' }) -- Border of floating windows.
|
||||
set_hl('FloatTitle', { fg = c.orange }) -- Title of float windows.
|
||||
set_hl('NormalNC', { link = 'Normal' }) -- Normal text in non-current windows.
|
||||
set_hl(
|
||||
'Pmenu',
|
||||
{ fg = c.base0, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
) -- Popup menu: Normal item
|
||||
set_hl('PmenuSel', { fg = c.base2 }) -- Popup menu: Selected item
|
||||
set_hl('PmenuKind', { link = 'Pmenu' }) -- Popup menu: Normal item kind
|
||||
set_hl('PmenuKindSel', { link = 'PmenuSel' }) -- Popup menu: Selected item kind
|
||||
set_hl('PmenuExtra', { link = 'Pmenu' }) -- Popup menu: Normal item extra text
|
||||
set_hl('PmenuExtraSel', { link = 'PmenuSel' }) -- Popup menu: Selected item extra text
|
||||
set_hl('PmenuSbar', { bg = base04 }) -- Popup menu: Scrollbar
|
||||
set_hl('PmenuThumb', { bg = c.base1 }) -- Popup menu: Thumb of the scrollbar
|
||||
set_hl('Question', { fg = c.cyan, bg = c.base03 }) -- hit-enter prompt and yes/no questions.
|
||||
set_hl('QuickFixLine', { fg = c.base0, bg = c.base03 }) -- Current quickfix item in the quickfix window
|
||||
set_hl('Search', { bg = c.base02 }) -- Last search pattern highlighting
|
||||
set_hl('SpecialKey', { fg = c.red }) -- Unprintable characters: Text displayed differently from what it really is.
|
||||
set_hl('SpellBad', { fg = c.error, sp = c.error, underline = true }) -- Word that is not recognized by the spellchecker.
|
||||
set_hl('SpellCap', { fg = c.hint, sp = c.hint, underline = true }) -- Word that should start with a capital
|
||||
set_hl('SpellLocal', { fg = c.info, sp = c.info, underline = true }) -- Word that is recognized by the spellchecker as one that is used in another region
|
||||
set_hl('SpellRare', { fg = c.warning, sp = c.warning, underline = true }) -- Word that is recognized by the spellchecker as one that is hardly ever used.
|
||||
set_hl('StatusLine', { fg = c.base1, bg = base04 }) -- Status line of current window.
|
||||
set_hl('StatusLineNC', { fg = c.base00, bg = base04 }) -- Status lines of not-current windows.
|
||||
set_hl('TabLine', { bg = base04 }) -- Tab pages line, not active tab page label.
|
||||
set_hl('TabLineFill', { fg = c.base0, bg = base04 }) -- Tab pages line, where there are no labels.
|
||||
set_hl('TabLineSel', { fg = c.base2, bg = c.base03 }) -- Tab pages line, active tab page label.
|
||||
set_hl('Title', { fg = c.orange }) -- Titles for output from ":set all", ":autocmd" etc.
|
||||
set_hl('Visual', { bg = c.base02 }) -- Visual mode selection.
|
||||
set_hl('VisualNOS', { link = 'Visual' }) -- Visual mode selection when vim is "Not Owning the Selection".
|
||||
set_hl('WarningMsg', { fg = c.warning }) -- Warning messages.
|
||||
set_hl('Whitespace', { fg = c.base01 }) -- "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'.
|
||||
set_hl('WildMenu', { bg = c.base02 }) -- Current match in 'wildmenu' completion.
|
||||
set_hl('WinBar', { link = 'Pmenu' }) -- Window bar of current window.
|
||||
set_hl('WinBarNC', { link = 'WinBar' }) -- Window bar of not-current windows.
|
||||
end
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('GitSignsAdd', { fg = c.add }) -- Used for the text of 'add' signs
|
||||
set_hl('GitSignsChange', { fg = c.change }) -- Used for the text of 'change' signs
|
||||
set_hl('GitSignsDelete', { fg = c.delete }) -- Used for the text of 'delete' signs
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('HopNextKey', { fg = c.magenta })
|
||||
set_hl('HopNextKey1', { fg = c.blue })
|
||||
set_hl('HopNextKey2', { fg = '#1b6294' })
|
||||
set_hl('HopUnmatched', { fg = c.base01 })
|
||||
end
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local colortool = require('solarized.utils.colors')
|
||||
local darken = colortool.darken
|
||||
local lighten = colortool.lighten
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
if vim.o.background == 'dark' then
|
||||
set_hl('IndentBlanklineChar', { fg = darken(c.green, 20) }) -- Highlight of indent character. Default: Whitespace
|
||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
||||
set_hl('IndentBlanklineContextChar', { fg = c.green }) -- Highlight of indent character when base of current context. Default: Label
|
||||
set_hl(
|
||||
'IndentBlanklineContextSpaceChar',
|
||||
{ link = 'IndentBlanklineContextChar' }
|
||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
||||
set_hl('IblIndent', { fg = darken(c.green, 20), nocombine = true })
|
||||
set_hl('IblScope', { fg = c.green, nocombine = true })
|
||||
else
|
||||
set_hl('IndentBlanklineChar', { fg = lighten(c.blue, 20) }) -- Highlight of indent character. Default: Whitespace
|
||||
set_hl('IndentBlanklineSpaceChar', { link = 'IndentBlanklineChar' }) -- Highlight of space character. Default: Whitespace
|
||||
set_hl('IndentBlanklineContextChar', { fg = c.blue }) -- Highlight of indent character when base of current context. Default: Label
|
||||
set_hl(
|
||||
'IndentBlanklineContextSpaceChar',
|
||||
{ link = 'IndentBlanklineContextChar' }
|
||||
) -- Highlight of space characters one indent level of the current context. Default: Label
|
||||
set_hl('IblIndent', { fg = lighten(c.blue, 20), nocombine = true })
|
||||
set_hl('IblScope', { fg = c.blue, nocombine = true })
|
||||
end
|
||||
|
||||
-- set_hl('IndentBlanklineSpaceCharBlankline', {}) -- Highlight of space character on blank lines. Default: Whitespace
|
||||
-- set_hl('IndentBlanklineContextStart', {}) -- Highlight of the first line of the current context. Default: Label
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
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
|
||||
set_hl('LspInlayHint', { fg = c.base01 }) -- used for highlighting inlay hints
|
||||
|
||||
-- if you want to me to enable the highlight groups bellow, please send a screenshot for me to see how
|
||||
-- they look like or how to config for me to test.
|
||||
|
||||
-- set_hl('LspCodelens') -- Used to color the virtual text of the codelens.
|
||||
-- set_hl('LspCodeLensSeparator') -- Used to color the separator between two or more code lenses.
|
||||
-- set_hl('LspSignatureActiveParameter') -- Used to highlight the active parameter in the signature help. See
|
||||
end
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- Float window
|
||||
set_hl('SagaNormal', { link = 'Pmenu' })
|
||||
set_hl(
|
||||
'TitleString',
|
||||
{ fg = c.orange, bold = true, bg = c.base02 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
|
||||
-- Outline
|
||||
set_hl('OutlineIndent', { fg = c.green })
|
||||
|
||||
set_hl('SagaWinbarModule', { link = '@namespace' })
|
||||
set_hl('SagaWinbarInterface', { link = 'Type' })
|
||||
set_hl('SagaWinbarConstructor', { link = '@constructor' })
|
||||
set_hl('SagaWinbarStruct', { link = 'Structure' })
|
||||
set_hl('SagaWinbarObject', { link = '@field' })
|
||||
set_hl('SagaWinbarUnit', { link = 'Number' })
|
||||
set_hl('SagaWinbarFile', { fg = c.base0 })
|
||||
set_hl('SagaWinbarSnippet', { link = 'Keyword' })
|
||||
set_hl('SagaWinbarText', { fg = c.base1 })
|
||||
set_hl('SagaWinbarTypeAlias', { link = 'Type' })
|
||||
set_hl('SagaWinbarEvent', { fg = c.base2 })
|
||||
set_hl('SagaWinbarParameter', { link = '@parameter' })
|
||||
set_hl('SagaWinbarKey', { link = '@field' })
|
||||
set_hl('SagaWinbarValue', { fg = c.base2 })
|
||||
set_hl('SagaWinbarMacro', { link = 'Macro' })
|
||||
set_hl('SagaWinbarNumber', { link = 'Number' })
|
||||
set_hl('SagaWinbarConstant', { link = 'Constant' })
|
||||
set_hl('SagaWinbarFunction', { link = 'Function' })
|
||||
set_hl('SagaWinbarEnum', { link = 'Type' })
|
||||
set_hl('SagaWinbarField', { link = '@field' })
|
||||
set_hl('SagaWinbarProperty', { link = '@field' })
|
||||
set_hl('SagaWinbarMethod', { link = 'Function' })
|
||||
set_hl('SagaWinbarClass', { link = 'Type' })
|
||||
set_hl('SagaWinbarFolder', { link = 'Directory' })
|
||||
set_hl('SagaWinbarPackage', { link = 'Directory' })
|
||||
set_hl('SagaWinbarStaticMethod', { link = 'Function' })
|
||||
set_hl('SagaWinbarTypeParameter', { link = 'Type' })
|
||||
set_hl('SagaWinbarEnumMember', { link = 'Constant' })
|
||||
set_hl('SagaWinbarOperator', { link = 'Operator' })
|
||||
set_hl('SagaWinbarNull', { link = 'Constant' })
|
||||
set_hl('SagaWinbarNamespace', { link = '@namespace' })
|
||||
set_hl('SagaWinbarArray', { link = 'Delimiter' })
|
||||
set_hl('SagaWinbarBoolean', { link = 'Boolean' })
|
||||
set_hl('SagaWinbarString', { link = 'String' })
|
||||
set_hl('SagaWinbarVariable', { link = 'Identifier' })
|
||||
set_hl('SagaWinbarFilename', { fg = c.base0 })
|
||||
set_hl('SagaWinbarFolderName', { fg = c.base0 })
|
||||
set_hl('SagaWinbarFileIcon', { link = 'Directory' })
|
||||
set_hl('SagaWinbarSep', { link = 'Keyword' })
|
||||
end
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- MiniCursor
|
||||
set_hl('MiniCursorword', { bg = c.base02 })
|
||||
|
||||
-- MiniStatusLine
|
||||
set_hl('MiniStatuslineModeNormal', { fg = c.base03, bg = c.blue })
|
||||
set_hl('MiniStatuslineModeInsert', { fg = c.base03, bg = c.green })
|
||||
set_hl('MiniStatuslineModeVisual', { fg = c.base03, bg = c.magenta })
|
||||
set_hl('MiniStatuslineModeReplace', { fg = c.base03, bg = c.red })
|
||||
set_hl('MiniStatuslineModeCommand', { fg = c.base03, bg = c.orange })
|
||||
set_hl('MinistatusLineFileName', { fg = c.base0, bg = c.base02 })
|
||||
set_hl('MiniStatuslineDevinfo', { fg = c.base03, bg = c.base1 })
|
||||
set_hl('MiniStatuslineFileinfo', { fg = c.base03, bg = c.base1 })
|
||||
set_hl('MiniStatuslineInactive', { fg = c.base01, bg = c.base03 })
|
||||
|
||||
-- MiniTabLine
|
||||
set_hl('MiniTablineCurrent', { fg = c.base2, bg = c.base1 })
|
||||
set_hl('MiniTablineVisible', { fg = c.base2, bg = c.base03 })
|
||||
set_hl('MiniTablineHidden', { fg = c.base01, bg = c.base03 })
|
||||
set_hl('MiniTablineModifiedCurrent', { link = 'MiniTabLineCurrent' })
|
||||
set_hl('MiniTablineModifiedVisible', { link = 'MiniTablineVisible' })
|
||||
set_hl('MiniTablineModifiedHidden', { link = 'MiniTablineHidden' })
|
||||
set_hl('MiniTablineFill', { link = 'NormalFloat' })
|
||||
set_hl('MiniTablineTabpagesection', { link = 'NormalFloat' })
|
||||
|
||||
-- MiniStarter
|
||||
set_hl('MiniStarterCurrent', { link = 'CursorLine' })
|
||||
set_hl('MiniStarterHeader', { fg = c.base00 })
|
||||
set_hl('MiniStarterFooter', { fg = c.base00 })
|
||||
set_hl('MiniStarterItem', { fg = c.base0 })
|
||||
set_hl('MiniStarterItemBullet', { fg = c.blue })
|
||||
set_hl('MiniStarterItemPrefix', { fg = c.blue })
|
||||
set_hl('MiniStarterSection', { link = 'Title' })
|
||||
set_hl('MiniStarterQuery', { fg = c.magenta, bg = 'NONE', bold = true })
|
||||
end
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NavicIconsFile', { fg = c.base00 })
|
||||
set_hl('NavicIconsModule', { link = '@namespace' })
|
||||
set_hl('NavicIconsNamespace', { link = '@namespace' })
|
||||
set_hl('NavicIconsPackage', { link = 'Directory' })
|
||||
set_hl('NavicIconsClass', { link = 'Type' })
|
||||
set_hl('NavicIconsMethod', { link = 'Type' })
|
||||
set_hl('NavicIconsProperty', { link = '@field' })
|
||||
set_hl('NavicIconsField', { link = '@field' })
|
||||
set_hl('NavicIconsConstructor', { link = '@constructor' })
|
||||
set_hl('NavicIconsEnum', { link = 'Type' })
|
||||
set_hl('NavicIconsInterface', { link = 'Type' })
|
||||
set_hl('NavicIconsFunction', { link = 'Function' })
|
||||
set_hl('NavicIconsVariable', { link = 'Identifier' })
|
||||
set_hl('NavicIconsConstant', { link = 'Constant' })
|
||||
set_hl('NavicIconsString', { link = 'String' })
|
||||
set_hl('NavicIconsNumber', { link = 'Number' })
|
||||
set_hl('NavicIconsBoolean', { link = 'Boolean' })
|
||||
set_hl('NavicIconsArray', { link = 'Delimiter' })
|
||||
set_hl('NavicIconsObject', { link = '@field' })
|
||||
set_hl('NavicIconsKey', { link = '@field' })
|
||||
set_hl('NavicIconsNull', { link = 'Constant' })
|
||||
set_hl('NavicIconsEnumMember', { link = 'Constant' })
|
||||
set_hl('NavicIconsStruct', { link = 'Structure' })
|
||||
set_hl('NavicIconsEvent', { fg = c.base2 })
|
||||
set_hl('NavicIconsOperator', { link = 'Operator' })
|
||||
set_hl('NavicIconsTypeParameter', { link = '@parameter' })
|
||||
set_hl('NavicText', { fg = c.base1 })
|
||||
set_hl('NavicSeparator', { link = 'Keyword' })
|
||||
end
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
return function(c)
|
||||
local blend = require('solarized.utils.colors').blend
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
local alpha = 0.05
|
||||
|
||||
set_hl('NeogitCursorLine', { link = 'CursorLine' })
|
||||
set_hl('NeogitBranch', { fg = c.magenta })
|
||||
set_hl('NeogitRemote', { fg = c.violet })
|
||||
set_hl(
|
||||
'NeogitHunkHeader',
|
||||
{ fg = c.orange, bg = blend(c.orange, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitHunkHeaderHighlight', { link = 'Title' })
|
||||
set_hl('NeogitDiffContextHighlight', { fg = c.base00, bg = c.base03 })
|
||||
set_hl('NeogitDiffContext', { fg = c.base00, bg = c.base03 })
|
||||
set_hl(
|
||||
'NeogitDiffDeleteHighlight',
|
||||
{ fg = c.red, bg = blend(c.red, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitDiffDelete', { fg = c.red })
|
||||
set_hl(
|
||||
'NeogitDiffAddHighlight',
|
||||
{ fg = c.green, bg = blend(c.green, c.base03, alpha) }
|
||||
)
|
||||
set_hl('NeogitDiffAdd', { fg = c.green })
|
||||
end
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
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
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
return function(c)
|
||||
local set_hl = require('solarized.utils').set_hl
|
||||
|
||||
set_hl('NoiceFormatProgressTodo', { fg = c.base01, reverse = true })
|
||||
set_hl('NoiceFormatProgressDone', { fg = c.cyan, reverse = true })
|
||||
set_hl('NoiceLspProgressSpinner', { fg = c.cyan })
|
||||
set_hl('NoiceLspProgressClient', { fg = c.blue })
|
||||
set_hl('NoiceLspProgressTitle', { link = 'Title' })
|
||||
end
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NotifyBackground', { bg = c.base03 })
|
||||
set_hl('NotifyERRORBorder', { fg = c.error })
|
||||
set_hl('NotifyWARNBorder', { fg = c.warn })
|
||||
set_hl('NotifyINFOBorder', { fg = c.info })
|
||||
set_hl('NotifyDEBUGBorder', { fg = c.magenta })
|
||||
set_hl('NotifyTRACEBorder', { fg = c.violet })
|
||||
set_hl('NotifyERRORIcon', { link = 'NotifyERRORBorder' })
|
||||
set_hl('NotifyWARNIcon', { link = 'NotifyWARNBorder' })
|
||||
set_hl('NotifyINFOIcon', { link = 'NotifyINFOBorder' })
|
||||
set_hl('NotifyDEBUGIcon', { link = 'NotifyDEBUGBorder' })
|
||||
set_hl('NotifyTRACEIcon', { link = 'NotifyTRACEBorder' })
|
||||
set_hl('NotifyERRORTitle', { link = 'NotifyERRORBorder' })
|
||||
set_hl('NotifyWARNTitle', { link = 'NotifyWARNBorder' })
|
||||
set_hl('NotifyINFOTitle', { link = 'NotifyINFOBorder' })
|
||||
set_hl('NotifyDEBUGTitle', { link = 'NotifyDEBUGTitle' })
|
||||
set_hl('NotifyTRACETitle', { link = 'NotifyTRACEBorder' })
|
||||
set_hl('NotifyERRORBody', { link = 'Normal' })
|
||||
set_hl('NotifyWARNBody', { link = 'Normal' })
|
||||
set_hl('NotifyINFOBody', { link = 'Normal' })
|
||||
set_hl('NotifyDEBUGBody', { link = 'Normal' })
|
||||
set_hl('NotifyTRACEBody', { link = 'Normal' })
|
||||
end
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
-- Default highlight
|
||||
set_hl('@lsp.type.class', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.decorator', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.enum', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.enumMember', { link = 'Constant' }) -- Constant
|
||||
set_hl('@lsp.type.function', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.interface', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.macro', { link = 'Keyword' }) -- Keyword
|
||||
set_hl('@lsp.type.method', { link = 'Function' }) -- Function
|
||||
set_hl('@lsp.type.namespace', { link = 'Constant' }) -- Constant
|
||||
set_hl(
|
||||
'@lsp.type.parameter',
|
||||
{ fg = c.orange, italic = true },
|
||||
{ styles = config.styles.parameters }
|
||||
)
|
||||
set_hl('@lsp.type.property', { fg = c.blue }) -- Property
|
||||
set_hl('@lsp.type.struct', { link = 'Structure' }) -- Structure
|
||||
set_hl('@lsp.type.type', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.typeParameter', { link = 'Type' }) -- Type
|
||||
set_hl('@lsp.type.variable', { link = 'Identifier' }) -- Identifier
|
||||
|
||||
-- Extra highlight
|
||||
set_hl('@lsp.typemod.variable.defaultLibrary', { link = 'Constant' }) -- ex: "vim".api.nvim_set_hl
|
||||
set_hl('@lsp.typemod.variable.readonly', { link = 'Constant' }) -- Constant variables ex: const hello = 'Hello World'
|
||||
set_hl('@lsp.typemod.variable.global', { link = 'Constant' }) -- Global variables ex: HELLO = 'Hello World'
|
||||
set_hl('@lsp.typemod.keyword.documentation', { link = 'Keyword' }) -- documentation comments
|
||||
set_hl('@lsp.typemod.class.documentation', { link = 'Type' }) -- documentation comments
|
||||
set_hl('@lsp.typemod.property.readonly', { link = 'Constant' }) -- Ex: System."out".println()
|
||||
end
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl(
|
||||
'Comment',
|
||||
{ fg = c.base01, italic = true },
|
||||
{ styles = config.styles.comments }
|
||||
) -- any comment
|
||||
set_hl('Constant', { fg = c.violet }, { styles = config.styles.constants }) -- any constant
|
||||
set_hl('String', { fg = c.cyan }) -- a string constant: "this is a string"
|
||||
set_hl('Character', { link = 'String' }) -- a character constant: 'c', '\n'
|
||||
set_hl('Number', { fg = c.magenta }, { styles = config.styles.numbers }) -- a number constant: 234, 0xff
|
||||
set_hl('Boolean', { fg = c.violet }) -- a boolean constant: TRUE, false
|
||||
set_hl('Float', { link = 'Number' }) -- a floating point constant: 2.3e10
|
||||
set_hl('Identifier', { fg = c.base0 }, { styles = config.styles.variables }) -- any variable name
|
||||
set_hl('Function', { fg = c.blue }, { styles = config.styles.functions }) -- function name (also: methods for classes)
|
||||
set_hl('Statement', { link = 'Keyword' }) -- any statement
|
||||
set_hl('Conditional', { link = 'Keyword' }) -- if, then, else, endif, switch, etc.
|
||||
set_hl('Repeat', { link = 'Keyword' }) -- for, do, while, etc.
|
||||
set_hl('Label', { link = 'Keyword' }) -- case, default, etc.
|
||||
set_hl('Operator', { link = 'Keyword' }) -- "sizeof", "+", "*", etc.
|
||||
set_hl('Keyword', { fg = c.green }, { styles = config.styles.keywords }) -- any other keyword
|
||||
set_hl('Exception', { link = 'Keyword' }) -- try, catch, throw
|
||||
set_hl('PreProc', { link = 'Keyword' }) -- generic Preprocessor
|
||||
set_hl('Include', { link = 'Keyword' }) -- preprocessor #include
|
||||
set_hl('Define', { link = 'Keyword' }) -- preprocessor #define
|
||||
set_hl('Macro', { link = 'Keyword' }) -- same as Define
|
||||
set_hl('PreCondit', { link = 'Keyword' }) -- preprocessor #if, #else, #endif, etc.
|
||||
set_hl('Type', { fg = c.yellow }, { styles = config.styles.types }) -- int, long, char, etc.
|
||||
set_hl('StorageClass', { link = 'Keyword' }) -- static, register, volatile, etc.
|
||||
set_hl('Structure', { fg = c.yellow }) -- struct, union, enum, etc.
|
||||
set_hl('Typedef', { link = 'Keyword' }) -- A typedef
|
||||
set_hl('Special', { fg = c.magenta }) -- special symbol
|
||||
set_hl('SpecialChar', { fg = c.violet }) -- special character in a constant
|
||||
set_hl('Tag', { link = 'Special' }) -- you can use CTRL-] on this
|
||||
set_hl('Delimiter', { fg = c.orange }) -- character that needs attention
|
||||
set_hl('SpecialComment', { link = 'Keyword' }) -- special things inside a comment
|
||||
set_hl('Debug', { link = 'Keyword' }) -- debugging statements
|
||||
set_hl('Underlined', { fg = c.violet, underline = true }) --text that stands out, HTML links
|
||||
set_hl('Ignore') --left blank, hidden |hl-Ignore|
|
||||
set_hl('Error', { fg = c.error }) --any erroneous construct
|
||||
set_hl('Todo', { fg = c.violet }) --anything that needs extra attention; mostly the keywords TODO FIXME and XXX
|
||||
end
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local base04 = darken(c.base03, 10)
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('TelescopeSelection', { link = 'CursorLine' })
|
||||
set_hl('TelescopeSelectionCaret', { fg = c.red })
|
||||
set_hl('TelescopeMultiSelection', { link = 'Type' })
|
||||
set_hl('TelescopeMultiIcon', { fg = c.cyan })
|
||||
|
||||
-- "Normal" in the floating windows created by telescope.
|
||||
set_hl(
|
||||
'TelescopeNormal',
|
||||
{ fg = c.base0, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
set_hl('TelescopePreviewNormal', { link = 'TelescopeNormal' })
|
||||
set_hl('TelescopePromptNormal', { link = 'TelescopeNormal' })
|
||||
set_hl('TelescopeResultsNormal', { link = 'TelescopeNormal' })
|
||||
|
||||
-- Border highlight groups.
|
||||
-- Use TelescopeBorder to override the default.
|
||||
-- Otherwise set them specifically
|
||||
set_hl('TelescopeBorder', { link = 'WinSeparator' })
|
||||
set_hl('TelescopePromptBorder', { link = 'TelescopeBorder' })
|
||||
set_hl('TelescopeResultsBorder', { link = 'TelescopeBorder' })
|
||||
set_hl('TelescopePreviewBorder', { link = 'TelescopeBorder' })
|
||||
|
||||
-- Title highlight groups.
|
||||
-- Use TelescopeTitle to override the default.
|
||||
-- Otherwise set them specifically
|
||||
set_hl('TelescopeTitle', { fg = c.blue, reverse = true })
|
||||
set_hl('TelescopePromptTitle', { link = 'TelescopeTitle' })
|
||||
set_hl('TelescopeResultsTitle', { link = 'TelescopeTitle' })
|
||||
set_hl('TelescopePreviewTitle', { link = 'TelescopeTitle' })
|
||||
|
||||
set_hl('TelescopePromptCounter', { link = 'NonText' })
|
||||
|
||||
-- Used for highlighting characters that you match.
|
||||
set_hl('TelescopeMatching', { link = 'IncSearch' })
|
||||
|
||||
-- Used for the prompt prefix
|
||||
set_hl('TelescopePromptPrefix', { fg = c.magenta })
|
||||
end
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
return function(c)
|
||||
local utils = require('solarized.utils')
|
||||
local colortool = require('solarized.utils.colors')
|
||||
local set_hl = utils.set_hl
|
||||
local colorFunc
|
||||
local percentage = 80
|
||||
|
||||
if vim.o.background == 'light' then
|
||||
colorFunc = colortool.lighten
|
||||
else
|
||||
colorFunc = colortool.darken
|
||||
end
|
||||
|
||||
-- TODO: TODO
|
||||
-- WARN: WARN
|
||||
-- TEST: TEST
|
||||
-- PERF: PERF
|
||||
-- NOTE: NOTE
|
||||
-- HACK: HACK
|
||||
|
||||
set_hl('TodoFgTODO', { fg = c.info })
|
||||
set_hl('TodoFgWARN', { fg = c.warning })
|
||||
set_hl('TodoFgTEST', { fg = c.violet })
|
||||
set_hl('TodoFgPERF', { fg = c.magenta })
|
||||
set_hl('TodoFgNOTE', { fg = c.hint })
|
||||
set_hl('TodoFgHACK', { fg = c.cyan })
|
||||
set_hl('TodoFgFIX', { fg = c.error })
|
||||
|
||||
set_hl('TodoSignTODO', { fg = c.info })
|
||||
set_hl('TodoSignWARN', { fg = c.warning })
|
||||
set_hl('TodoSignTEST', { fg = c.violet })
|
||||
set_hl('TodoSignPERF', { fg = c.magenta })
|
||||
set_hl('TodoSignNOTE', { fg = c.hint })
|
||||
set_hl('TodoSignHACK', { fg = c.cyan })
|
||||
set_hl('TodoSignFIX', { fg = c.error })
|
||||
|
||||
set_hl('TodoBgTODO', { fg = c.info, bg = colorFunc(c.info, percentage) })
|
||||
set_hl(
|
||||
'TodoBgWARN',
|
||||
{ fg = c.warning, bg = colorFunc(c.warning, percentage) }
|
||||
)
|
||||
set_hl('TodoBgTEST', { fg = c.violet, bg = colorFunc(c.violet, percentage) })
|
||||
set_hl(
|
||||
'TodoBgPERF',
|
||||
{ fg = c.magenta, bg = colorFunc(c.magenta, percentage) }
|
||||
)
|
||||
set_hl('TodoBgNOTE', { fg = c.hint, bg = colorFunc(c.hint, percentage) })
|
||||
set_hl('TodoBgHACK', { fg = c.cyan, bg = colorFunc(c.cyan, percentage) })
|
||||
set_hl('TodoBgFIX', { fg = c.error, bg = colorFunc(c.error, percentage) })
|
||||
end
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local base04 = darken(c.base03, 10)
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('NvimTreeSymlink', { link = 'Underlined' })
|
||||
set_hl('NvimTreeSymlinkIcon', { link = 'Directory' })
|
||||
-- set_hl('NvimTreeSymlinkFolderName') -- (Directory)
|
||||
set_hl('NvimTreeFolderName', { fg = c.base0 }) -- (Directory)
|
||||
set_hl('NvimTreeRootFolder', { link = 'Title' })
|
||||
set_hl('NvimTreeFolderIcon', { link = 'Directory' })
|
||||
-- set_hl('NvimTreeOpenedFolderIcon') -- (NvimTreeFolderIcon)
|
||||
-- set_hl('NvimTreeClosedFolderIcon') -- (NvimTreeFolderIcon)
|
||||
-- set_hl('NvimTreeFileIcon')
|
||||
set_hl('NvimTreeEmptyFolderName', { fg = c.base0 }) -- (Directory)
|
||||
-- set_hl('NvimTreeOpenedFolderName') -- (Directory)
|
||||
set_hl('NvimTreeExecFile', { link = 'Function' })
|
||||
set_hl('NvimTreeOpenedFile', { fg = c.orange, bold = true })
|
||||
set_hl('NvimTreeModifiedFile', { fg = c.change })
|
||||
set_hl('NvimTreeSpecialFile', { link = 'Special' })
|
||||
-- set_hl('NvimTreeImageFile')
|
||||
set_hl('NvimTreeIndentMarker', { fg = c.base01 })
|
||||
-- set_hl('NvimTreeLspDiagnosticsError') -- (DiagnosticError)
|
||||
-- set_hl('NvimTreeLspDiagnosticsWarning') -- (DiagnosticWarn)
|
||||
set_hl('NvimTreeLspDiagnosticsInformation') -- (DiagnosticInfo)
|
||||
set_hl('NvimTreeLspDiagnosticsHint') -- (DiagnosticHint)
|
||||
set_hl('NvimTreeGitDirty', { fg = c.change })
|
||||
set_hl('NvimTreeGitStaged', { fg = c.add })
|
||||
set_hl('NvimTreeGitMerge', { fg = c.change })
|
||||
set_hl('NvimTreeGitRenamed', { fg = c.add })
|
||||
set_hl('NvimTreeGitNew', { fg = c.add })
|
||||
set_hl('NvimTreeGitDeleted', { fg = c.delete })
|
||||
-- set_hl('NvimTreeGitIgnored') -- (Comment)
|
||||
-- set_hl('NvimTreeWindowPicker')
|
||||
set_hl(
|
||||
'NvimTreeNormal',
|
||||
{ fg = c.base0, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
set_hl('NvimTreeNormalFloat', { link = 'NvimTreeNormal' })
|
||||
set_hl('NvimTreeEndOfBuffer', { fg = base04 }) -- (NonText)
|
||||
-- set_hl('NvimTreeCursorLine') -- (CursorLine)
|
||||
-- set_hl('NvimTreeCursorLineNr') -- (CursorLineNr)
|
||||
-- set_hl('NvimTreeLineNr') -- (LineNr)
|
||||
set_hl(
|
||||
'NvimTreeWinSeparator',
|
||||
{ fg = base04, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
) -- (WinSeparator)
|
||||
-- set_hl('NvimTreeCursorColumn') -- (CursorColumn)
|
||||
--
|
||||
-- There are also links for file highlight with git properties, linked to their
|
||||
-- Git equivalent:
|
||||
--
|
||||
-- set_hl('NvimTreeFileDirty') -- (NvimTreeGitDirty)
|
||||
-- set_hl('NvimTreeFileStaged') -- (NvimTreeGitStaged)
|
||||
-- set_hl('NvimTreeFileMerge') -- (NvimTreeGitMerge)
|
||||
-- set_hl('NvimTreeFileRenamed') -- (NvimTreeGitRenamed)
|
||||
-- set_hl('NvimTreeFileNew') -- (NvimTreeGitNew)
|
||||
-- set_hl('NvimTreeFileDeleted') -- (NvimTreeGitDeleted)
|
||||
-- set_hl('NvimTreeFileIgnored') -- (NvimTreeGitIgnored)
|
||||
-- set_hl('NvimTreeLiveFilterPrefix')
|
||||
-- set_hl('NvimTreeLiveFilterValue')
|
||||
-- set_hl('NvimTreeBookmark')
|
||||
end
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
--[[ Highlight capture names as of nvim-treesitter commit `6806d7a` ]]
|
||||
--
|
||||
|
||||
-- Identifiers
|
||||
set_hl('@variable', { link = 'Identifier' }) -- various variable names
|
||||
set_hl('@variable.builtin', { fg = c.violet, italic = true }) -- built-in variable names (e.g. `this`)
|
||||
set_hl(
|
||||
'@variable.parameter',
|
||||
{ fg = c.orange, italic = true },
|
||||
{ styles = config.styles.parameters }
|
||||
) -- parameters of a function
|
||||
set_hl('@variable.member', { fg = c.blue }) -- object and struct fields
|
||||
set_hl('@constant', { link = 'Constant' }) -- constant identifiers
|
||||
set_hl('@constant.builtin', { link = 'Constant' }) -- built-in constant values
|
||||
set_hl('@constant.macro', { link = 'Constant' }) -- constants defined by the preprocessor
|
||||
set_hl('@module', { fg = c.violet }) -- modules or namespaces
|
||||
set_hl('@module.builtin', { fg = c.cyan }) -- built-in modules or namespaces
|
||||
set_hl('@label', { link = 'Label' }) -- GOTO and other labels (e.g. `label:` in C), including heredoc labels
|
||||
|
||||
-- Literals
|
||||
set_hl('@string', { link = 'String' }) -- string literals
|
||||
set_hl('@string.documentation', { link = 'Comment' }) -- string documenting code (e.g. Python docstrings)
|
||||
set_hl('@string.regexp', { fg = c.violet }) -- regular expressions
|
||||
set_hl('@string.escape', { link = 'Keyword' }) -- escape sequences
|
||||
set_hl('@string.special', { link = 'Constant' }) -- other special strings (e.g. dates)
|
||||
set_hl('@string.special.symbol', { fg = c.violet }) -- symbols or atoms
|
||||
set_hl('@string.special.url', { link = 'Underlined' }) -- URIs (e.g. hyperlinks)
|
||||
set_hl('@string.special.path', { link = 'Underlined' }) -- filenames
|
||||
set_hl('@character', { link = 'String' }) -- character literals
|
||||
set_hl('@character.special', { link = 'Constant' }) -- special characters (e.g. wildcards)
|
||||
set_hl('@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
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
return function(c, config)
|
||||
local utils = require('solarized.utils')
|
||||
local darken = require('solarized.utils.colors').darken
|
||||
local base04 = darken(c.base03, 10)
|
||||
local set_hl = utils.set_hl
|
||||
|
||||
set_hl('WhichKey', { fg = c.base0 }) -- the key
|
||||
set_hl(
|
||||
'WhichKeyNormal',
|
||||
{ fg = c.base0, bg = base04 },
|
||||
{ transparent = config.transparent }
|
||||
)
|
||||
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
|
||||
23
lua/solarized/utils.lua
Normal file
23
lua/solarized/utils.lua
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
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
|
||||
|
||||
return {
|
||||
nvim_get_hl = nvim_get_hl,
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
--- Convert a hexadecimal color code to RGB color values
|
||||
---
|
||||
--- @param hex string The hexadecimal color code (e.g., "#RRGGBB" or "RRGGBB")
|
||||
--- @return number red The red component of the RGB color (0-255)
|
||||
--- @return number green The green component of the RGB color (0-255)
|
||||
--- @return number blue The blue component of the RGB color (0-255)
|
||||
function M.hex_to_rgb(hex)
|
||||
local red = tonumber(hex:sub(2, 3), 16)
|
||||
local green = tonumber(hex:sub(4, 5), 16)
|
||||
local blue = tonumber(hex:sub(6, 7), 16)
|
||||
|
||||
return red, green, blue
|
||||
end
|
||||
|
||||
--- Convert rgb to hex
|
||||
---
|
||||
--- @param red number
|
||||
--- @param green number
|
||||
--- @param blue number
|
||||
--- @return string color
|
||||
function M.rgb_to_hex(red, green, blue)
|
||||
return string.format('#%02x%02x%02x', red, green, blue)
|
||||
end
|
||||
|
||||
--- Darken a color by a given distance
|
||||
---
|
||||
--- @param color string The color to be darkened in any valid color format
|
||||
--- @param percentage number The distance by which the color should be darkened (between 1 and 10)
|
||||
--- @return string color The resulting darkened color in the same format as the input color
|
||||
function M.darken(color, percentage)
|
||||
local red, green, blue = M.hex_to_rgb(color)
|
||||
local i = 1
|
||||
local result = {
|
||||
red = red * (1 - (percentage / 100) * i),
|
||||
green = green * (1 - (percentage / 100) * i),
|
||||
blue = blue * (1 - (percentage / 100) * i),
|
||||
}
|
||||
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
--- Lighten a color by a given percentage
|
||||
---
|
||||
--- @param color string The color to be lightened in any valid color format
|
||||
--- @param percentage number The percentage by which the color should be lightened (between 1 and 10)
|
||||
--- @return string color The resulting lightened color in the same format as the input color
|
||||
function M.lighten(color, percentage)
|
||||
local red, green, blue = M.hex_to_rgb(color)
|
||||
local i = 1
|
||||
local result = {
|
||||
red = red + (255 - red) * i * (percentage / 100),
|
||||
green = green + (255 - green) * i * (percentage / 100),
|
||||
blue = blue + (255 - blue) * i * (percentage / 100),
|
||||
}
|
||||
|
||||
return M.rgb_to_hex(result.red, result.green, result.blue)
|
||||
end
|
||||
|
||||
--- Blend two colors with a given alpha value
|
||||
---
|
||||
--- @param hex_fg string The foreground color in hexadecimal format (e.g., "#RRGGBB")
|
||||
--- @param hex_bg string The background color in hexadecimal format (e.g., "#RRGGBB")
|
||||
--- @param alpha number The alpha value between 0 and 1, indicating the blending ratio
|
||||
--- @return string color The resulting blended color in hexadecimal format
|
||||
function M.blend(hex_fg, hex_bg, alpha)
|
||||
local red_bg, green_bg, blue_bg = M.hex_to_rgb(hex_bg)
|
||||
local red_fg, green_fg, blue_fg = M.hex_to_rgb(hex_fg)
|
||||
|
||||
local min = math.min
|
||||
local max = math.max
|
||||
local floor = math.floor
|
||||
|
||||
local function blend_channel(fg, bg)
|
||||
local ret = alpha * fg + ((1 - alpha) * bg)
|
||||
|
||||
return floor(min(max(0, ret), 255) + 0.5)
|
||||
end
|
||||
|
||||
return M.rgb_to_hex(
|
||||
blend_channel(red_fg, red_bg),
|
||||
blend_channel(green_fg, green_bg),
|
||||
blend_channel(blue_fg, blue_bg)
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
--- Sets a highlight group
|
||||
--- @param name string
|
||||
--- @param val? table
|
||||
--- @param opts? table The opts object..
|
||||
--- - opts.transparent: (boolean) Specifies whether transparency is enabled.
|
||||
--- - opts.styles: (table) A table of custom styles for various elements.
|
||||
---@return nil
|
||||
function M.set_hl(name, val, opts)
|
||||
local default_val = { fg = 'NONE', bg = 'NONE' }
|
||||
val = val or {}
|
||||
|
||||
if not val.link then val = vim.tbl_extend('force', default_val, val) end
|
||||
|
||||
if opts then
|
||||
if opts.styles then val = vim.tbl_extend('force', val, opts.styles) end
|
||||
|
||||
if opts.transparent then val.bg = 'NONE' end
|
||||
end
|
||||
|
||||
vim.api.nvim_set_hl(0, name, val)
|
||||
end
|
||||
|
||||
--- get highlight group
|
||||
--- @param highlight_name string
|
||||
--- @return table highlight
|
||||
function M.get_hl(highlight_name)
|
||||
local highlight =
|
||||
vim.api.nvim_get_hl(0, { name = highlight_name, link = true })
|
||||
|
||||
if highlight.link then return M.get_hl(highlight.link) end
|
||||
|
||||
return highlight
|
||||
end
|
||||
|
||||
--- @param opts table The user-specified custom configuration
|
||||
--- - fnc (function): callback type configuration
|
||||
--- - tbl (function): table type configuration
|
||||
--- @param config (table|function): config to be used
|
||||
function M.on_config(opts, config)
|
||||
if type(config) == 'table' and not vim.tbl_isempty(config) then
|
||||
opts.tbl()
|
||||
elseif type(config) == 'function' then
|
||||
opts.fnc()
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
local M = {}
|
||||
|
||||
function M.to_hex(decimal)
|
||||
return string.format('#%06x', decimal)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
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 = '+',
|
||||
|
|
|
|||
27
test.py
27
test.py
|
|
@ -1,27 +0,0 @@
|
|||
#!/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)
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
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)
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
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)
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
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,30 +0,0 @@
|
|||
local utils = require('solarized.utils.test')
|
||||
local to_hex = utils.to_hex
|
||||
|
||||
describe('Initialization', function()
|
||||
setup(function()
|
||||
vim.o.background = 'light'
|
||||
vim.cmd.colorscheme('solarized')
|
||||
end)
|
||||
|
||||
test('Loads without encountering any errors', function()
|
||||
assert.equal('solarized', vim.g.colors_name)
|
||||
assert.is_true(vim.o.termguicolors)
|
||||
end)
|
||||
|
||||
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('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)
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
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,85 +0,0 @@
|
|||
local solarized_palette = require('solarized.palette')
|
||||
local utils = require('solarized.utils.test')
|
||||
local to_hex = utils.to_hex
|
||||
|
||||
describe('Setup', function()
|
||||
setup(function()
|
||||
local solarized = require('solarized')
|
||||
|
||||
solarized.setup({
|
||||
theme = 'neo',
|
||||
colors = function(c, helper)
|
||||
return {
|
||||
fg = '#c7e8f3',
|
||||
bg = '#000',
|
||||
yellow2 = helper.darken(c.yellow, 20),
|
||||
}
|
||||
end,
|
||||
styles = {
|
||||
comments = { italic = false, bold = true, underline = true },
|
||||
functions = { italic = true },
|
||||
},
|
||||
highlights = function(c)
|
||||
return {
|
||||
Normal = { fg = c.fg, bg = c.bg },
|
||||
Function = { italic = false },
|
||||
Type = { fg = c.yellow2 },
|
||||
['@function.builtin'] = { link = 'Special' },
|
||||
}
|
||||
end,
|
||||
})
|
||||
|
||||
vim.cmd.colorscheme('solarized')
|
||||
end)
|
||||
|
||||
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('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('Changing Function Style', function()
|
||||
local output = vim.api.nvim_get_hl(0, { name = 'Function' })
|
||||
|
||||
assert.is_true(output.cterm.italic)
|
||||
end)
|
||||
|
||||
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()
|
||||
|
||||
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(
|
||||
'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