1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
local M = {};
local colors = {
bg = "#0f0f0f",
gray0 = "#141514";
gray1 = "#1e1f1e";
gray2 = "#272a28";
gray3 = "#3b403c";
gray4 = "#585f5b";
gray5 = "#6c756f";
gray6 = "#888e7b";
gray7 = "#9a9c8b";
gray8 = "#b6b69a";
gray9 = "#d9cdb5";
gray10 = "#e3d6c9";
fg = "#f4decd",
red = "#f16e65";
lred = "#ef968f";
orange = "#ef934d";
yellow = "#efbf71";
green = "#7ec97e";
lgreen = "#a4daa4";
cyan = "#7ec9a3";
lcyan = "#abd4bf";
blue = "#71b4d6";
lblue = "#b0d4e8";
magenta = "#e28dc6";
lmagenta = "#ebadd6";
}
function M.colorscheme()
vim.cmd("highlight clear")
vim.cmd("syntax reset")
vim.o.background = "dark";
vim.g.colors_name = "caelus";
local set = vim.api.nvim_set_hl
-- ui
set(0, "Normal", { fg = colors.fg, bg = colors.bg })
set(0, "NormalFloat", { fg = colors.fg, bg = colors.bg })
set(0, "FloatBorder", { fg = colors.fg, bg = colors.bg })
set(0, "CursorLine", { bg = colors.gray2 })
set(0, "Visual", { bg = colors.gray3 })
set(0, "Search", { fg = colors.bg, bg = colors.orange })
set(0, "IncSearch", { fg = colors.bg, bg = colors.orange })
set(0, "StatusLine", { bg = colors.gray2 })
set(0, "StatusLineNC", { bg = colors.orange })
set(0, "VertSplit", { fg = colors.gray8 })
set(0, "WinSeparator", { fg = colors.gray8 })
set(0, "LineNr", { fg = colors.gray6 })
set(0, "CursorLineNr", { fg = colors.orange, bold = true })
set(0, "SignColumn", { bg = colors.bg })
set(0, "Folded", { fg = colors.gray8, bg = colors.gray3 })
-- popup
set(0, "Pmenu", { fg = colors.fg, bg = colors.gray10 })
set(0, "PmenuSel", { fg = colors.bg, bg = colors.orange })
set(0, "PmenuSbar", { bg = colors.gray10 })
set(0, "PmenuThumb", { bg = colors.orange })
-- syntax
set(0, "Comment", { fg = colors.gray8, italic = true })
set(0, "Constant", { fg = colors.magenta })
set(0, "String", { fg = colors.green })
set(0, "Identifier", { fg = colors.blue })
set(0, "Function", { fg = colors.yellow })
set(0, "Statement", { fg = colors.red })
set(0, "Type", { fg = colors.cyan, bold = true })
set(0, "Special", { fg = colors.yellow })
set(0, "Error", { fg = colors.red, bold = true })
set(0, "Keyword", { fg = colors.red })
set(0, "Variable", { fg = colors.fg })
set(0, "TSKeyword", { fg = colors.red })
set(0, "TSFunction", { fg = colors.yellow })
set(0, "TSVariable", { fg = colors.fg })
set(0, "TSType", { fg = colors.cyan })
-- blink
set(0, "BlinkCmpMenu", { bg = colors.gray1 })
set(0, "BlinkCmpMenuBorder", { fg = colors.gray6, bg = colors.gray1 })
set(0, "BlinkCmpMenuSelection", { fg = colors.bg, bg = colors.orange })
set(0, "BlinkCmpLabel", { fg = colors.fg })
set(0, "BlinkCmpLabelDetail", { fg = colors.gray7 })
set(0, "BlinkCmpLabelDescription",{ fg = colors.gray8 })
set(0, "BlinkCmpLabelMatch", { fg = colors.orange, bold = true })
set(0, "BlinkCmpKind", { fg = colors.cyan })
set(0, "BlinkCmpDoc", { fg = colors.fg, bg = colors.gray2 })
set(0, "BlinkCmpDocBorder", { fg = colors.gray5, bg = colors.gray2 })
if package.loaded['lualine'] then
require('lualine').setup({
options = { theme = 'auto' },
})
end
end
return M
|