aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/caelus/init.lua
blob: 836a66e5a3421cbef1043c03e39538a7d33df4fd (plain)
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 = 'caelus' },
    })
  end

end

return M