69 lines
2.3 KiB
Lua
69 lines
2.3 KiB
Lua
vim.g.mapleader = " "
|
|
|
|
vim.opt.termguicolors = true -- use terminal colors
|
|
vim.opt.relativenumber = true
|
|
vim.opt.wrap = false
|
|
vim.opt.colorcolumn = "80"
|
|
|
|
require("plugins")
|
|
require("lsp")
|
|
|
|
local uv = vim.loop
|
|
local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors"
|
|
local colors = {}
|
|
|
|
-- function to load colors
|
|
local function load_colors()
|
|
local new_colors = {}
|
|
for line in io.lines(colorscheme_filepath) do
|
|
table.insert(new_colors, line)
|
|
end
|
|
|
|
-- ensure the table has enough entries to avoid indexing issues
|
|
if #new_colors >= 18 then
|
|
colors = new_colors
|
|
require('base16-colorscheme').setup({
|
|
base00 = colors[17], base01 = colors[1], base02 = colors[3], base03 = colors[3],
|
|
base04 = colors[5], base05 = colors[8], base06 = colors[5], base07 = colors[8],
|
|
base08 = colors[18], base09 = colors[4], base0A = colors[11], base0B = colors[5],
|
|
base0C = colors[6], base0D = colors[7], base0E = colors[6], base0F = colors[16],
|
|
})
|
|
|
|
-- set colors for blink.cmp's completion menu
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpMenu', { bg = colors[17] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpMenuBorder', { bg = colors[17], fg = colors[13] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpMenuSelection', { bg = colors[15], fg = colors[17] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpScrollBarThumb', { bg = colors[18] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpKind', { bg = colors[17], fg = colors[14] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpLabel', { bg = colors[17], fg = colors[18] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpLabelMatch', { bg = colors[17], fg = colors[18] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpLabelDetail', { bg = colors[17], fg = colors[18] })
|
|
vim.api.nvim_set_hl(0, 'BlinkCmpLabelDescription', { bg = colors[17], fg = colors[18] })
|
|
else
|
|
print("Error: Not enough colors in file")
|
|
end
|
|
end
|
|
|
|
-- initial load
|
|
load_colors()
|
|
|
|
-- vim.defer_fn(load_colors, 1)
|
|
|
|
-- set up a file watcher
|
|
local function watch_colorscheme()
|
|
local handle
|
|
handle = uv.new_fs_event()
|
|
if handle then
|
|
uv.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _)
|
|
if err then
|
|
print("Error watching colorscheme file:", err)
|
|
return
|
|
end
|
|
-- debounce by adding a slight delay before reloading
|
|
vim.defer_fn(load_colors, 100)
|
|
end)
|
|
end
|
|
end
|
|
|
|
watch_colorscheme()
|
|
|