2024-03-01 12:59:24 -05:00
|
|
|
{pkgs, ...}: {
|
2024-02-29 22:20:26 -05:00
|
|
|
config = {
|
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
|
|
plugins = {
|
2024-03-11 16:38:47 -04:00
|
|
|
lualine = {
|
|
|
|
|
enable = true;
|
|
|
|
|
sections.lualine_x = ["overseer"];
|
|
|
|
|
};
|
2024-02-29 22:20:26 -05:00
|
|
|
telescope.enable = true;
|
|
|
|
|
treesitter.enable = true;
|
|
|
|
|
luasnip.enable = true;
|
|
|
|
|
rustaceanvim.enable = true;
|
|
|
|
|
comment-nvim.enable = true;
|
|
|
|
|
lsp-format.enable = true;
|
|
|
|
|
toggleterm.enable = true;
|
|
|
|
|
which-key.enable = true;
|
|
|
|
|
todo-comments.enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
plugins.neo-tree = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableGitStatus = true;
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-02 12:47:20 -05:00
|
|
|
plugins.gitsigns.enable = true;
|
|
|
|
|
|
2024-03-11 15:26:59 -04:00
|
|
|
# colorschemes.dracula.enable = true;
|
|
|
|
|
# colorschemes.catppuccin.enable = true;
|
2024-03-11 16:52:31 -04:00
|
|
|
# colorschemes.kanagawa.enable = true;
|
2024-03-11 15:26:59 -04:00
|
|
|
# colorschemes.oxocarbon.enable = true;
|
2024-03-13 12:06:05 -04:00
|
|
|
colorschemes.tokyonight = {
|
|
|
|
|
enable = true;
|
|
|
|
|
onColors = '' function(colors)
|
|
|
|
|
colors.gitSigns.add = colors.green
|
|
|
|
|
colors.gitSigns.change = colors.blue
|
|
|
|
|
colors.gitSigns.delete = colors.red
|
|
|
|
|
colors.gitSigns.ignored = colors.bg
|
|
|
|
|
colors.status_line = colors.none
|
|
|
|
|
return colors
|
|
|
|
|
end'';
|
|
|
|
|
onHighlights = '' function(hl, c)
|
|
|
|
|
local highlights = {
|
|
|
|
|
NormalSB = { bg = nil },
|
|
|
|
|
NormalFloat = { bg = nil },
|
|
|
|
|
FloatBorder = { fg = c.dark3 },
|
|
|
|
|
FloatTitle = { fg = c.dark3 },
|
|
|
|
|
CursorLineNr = { fg = c.blue },
|
|
|
|
|
Breakpoint = { fg = c.orange },
|
|
|
|
|
WinSeparator = { fg = c.terminal_black },
|
|
|
|
|
WinBar = { bg = nil },
|
|
|
|
|
WinBarNC = { bg = nil },
|
|
|
|
|
LspInlayHint = { fg = c.comment },
|
|
|
|
|
|
|
|
|
|
DiagnosticSignError = { fg = c.red },
|
|
|
|
|
DiagnosticSignWarn = { fg = c.yellow },
|
|
|
|
|
DiagnosticSignHint = { fg = c.blue },
|
|
|
|
|
DiagnosticSignInfo = { fg = c.blue },
|
|
|
|
|
DiagnosticError = { fg = c.red },
|
|
|
|
|
DiagnosticWarn = { fg = c.yellow },
|
|
|
|
|
DiagnosticHint = { fg = c.blue },
|
|
|
|
|
DiagnosticInfo = { fg = c.blue },
|
|
|
|
|
|
|
|
|
|
BufferLineFill = { bg = c.bg },
|
|
|
|
|
BufferLineCloseButtonSelected = { fg = c.red },
|
|
|
|
|
BufferLineError = { fg = c.red, bg = c.bg, bold = true },
|
|
|
|
|
BufferLineWarning = { fg = c.yellow, bg = c.bg, bold = true },
|
|
|
|
|
BufferLineHint = { fg = c.blue, bg = c.bg, bold = true },
|
|
|
|
|
BufferLineInfo = { fg = c.blue, bg = c.bg, bold = true },
|
|
|
|
|
BufferLineModified = { fg = c.green, bg = c.bg },
|
|
|
|
|
BufferLineDuplicate = { fg = c.comment, bg = c.bg, bold = true },
|
|
|
|
|
BufferLineDuplicateSelected = { fg = c.fg, bg = c.bg, bold = true, italic = true },
|
|
|
|
|
BufferLineTruncMarker = { bg = c.bg },
|
|
|
|
|
|
|
|
|
|
NeoTreeDirectoryName = { fg = c.fg },
|
|
|
|
|
NeoTreeNormalNC = { bg = c.bg },
|
|
|
|
|
NeoTreeNormal = { bg = c.bg },
|
|
|
|
|
NeoTreeGitUntracked = { fg = c.orange },
|
|
|
|
|
NeoTreeGitUnstaged = { fg = c.cyan },
|
|
|
|
|
|
|
|
|
|
WhichKeyFloat = { bg = c.bg },
|
|
|
|
|
FlashLabel = { fg = c.red, bg = c.bg },
|
|
|
|
|
FlashCurrent = { bg = c.fg },
|
|
|
|
|
|
|
|
|
|
TelescopeNormal = { bg = nil },
|
|
|
|
|
TelescopePromptPrefix = { fg = c.dark3 },
|
|
|
|
|
TelescopeBorder = { link = "FloatBorder" },
|
|
|
|
|
|
|
|
|
|
NotifyINFOBorder = { fg = c.blue },
|
|
|
|
|
NotifyINFOTitle = { fg = c.blue },
|
|
|
|
|
NotifyINFOIcon = { fg = c.blue },
|
|
|
|
|
NotifyERRORBorder = { fg = c.red },
|
|
|
|
|
NotifyERRORTitle = { fg = c.red },
|
|
|
|
|
NotifyERRORIcon = { fg = c.red },
|
|
|
|
|
NotifyWARNBorder = { fg = c.yellow },
|
|
|
|
|
NotifyWARNTitle = { fg = c.yellow },
|
|
|
|
|
NotifyWARNIcon = { fg = c.yellow },
|
|
|
|
|
ErrorMsg = { fg = c.red },
|
|
|
|
|
|
|
|
|
|
diffAdded = { fg = c.green },
|
|
|
|
|
diffRemoved = { fg = c.red },
|
|
|
|
|
diffChanged = { fg = c.blue },
|
|
|
|
|
diffNewFile = { fg = c.cyan },
|
|
|
|
|
diffOldFile = { fg = c.comment },
|
|
|
|
|
DiffAdd = { fg = c.green },
|
|
|
|
|
DiffChange = { fg = c.blue },
|
|
|
|
|
DiffDelete = { fg = c.red },
|
|
|
|
|
DiffText = { fg = c.purple },
|
|
|
|
|
|
|
|
|
|
DropBarSeparator = { fg = c.dark5 },
|
|
|
|
|
DropBarPick = { fg = c.red, bold = true, italic = true },
|
|
|
|
|
DropBarKind = { fg = c.fg },
|
|
|
|
|
DropBarKindFolder = { fg = c.dark5 },
|
|
|
|
|
DropBarIconUIPickPivot = { link = "DropBarPick" },
|
|
|
|
|
DropBarIconUISeparator = { link = "DropBarSeparator" },
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for key, value in pairs(highlights) do
|
|
|
|
|
hl[key] = value
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local dropbar_hl = {
|
|
|
|
|
"Array",
|
|
|
|
|
"Boolean",
|
|
|
|
|
"Constant",
|
|
|
|
|
"Constructor",
|
|
|
|
|
"Enum",
|
|
|
|
|
"EnumMember",
|
|
|
|
|
"Field",
|
|
|
|
|
"Function",
|
|
|
|
|
"Identifier",
|
|
|
|
|
"List",
|
|
|
|
|
"Macro",
|
|
|
|
|
"Number",
|
|
|
|
|
"Object",
|
|
|
|
|
"Operator",
|
|
|
|
|
"Package",
|
|
|
|
|
"Property",
|
|
|
|
|
"Reference",
|
|
|
|
|
"String",
|
|
|
|
|
"Type",
|
|
|
|
|
"TypeParameter",
|
|
|
|
|
"Unit",
|
|
|
|
|
"Value",
|
|
|
|
|
"Variable",
|
|
|
|
|
"Null",
|
|
|
|
|
"Specifier",
|
|
|
|
|
"BreakStatement",
|
|
|
|
|
"CaseStatement",
|
|
|
|
|
"ContinueStatement",
|
|
|
|
|
"Declaration",
|
|
|
|
|
"Delete",
|
|
|
|
|
"DoStatement",
|
|
|
|
|
"ElseStatement",
|
|
|
|
|
"ForStatement",
|
|
|
|
|
"IfStatement",
|
|
|
|
|
"Repeat",
|
|
|
|
|
"Scope",
|
|
|
|
|
"Specifier",
|
|
|
|
|
"Statement",
|
|
|
|
|
"SwitchStatement",
|
|
|
|
|
"WhileStatement",
|
|
|
|
|
"Class",
|
|
|
|
|
"Event",
|
|
|
|
|
"Interface",
|
|
|
|
|
"Method",
|
|
|
|
|
"Module",
|
|
|
|
|
"Namespace",
|
|
|
|
|
"MarkdownH1",
|
|
|
|
|
"MarkdownH2",
|
|
|
|
|
"MarkdownH3",
|
|
|
|
|
"MarkdownH4",
|
|
|
|
|
"MarkdownH5",
|
|
|
|
|
"MarkdownH6",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, value in pairs(dropbar_hl) do
|
|
|
|
|
hl["DropBarKind" .. value] = { link = "DropBarKind" }
|
|
|
|
|
end'';
|
|
|
|
|
};
|
2024-02-29 22:20:26 -05:00
|
|
|
options = {
|
|
|
|
|
number = true;
|
|
|
|
|
relativenumber = true;
|
2024-03-02 12:40:36 -05:00
|
|
|
clipboard = "unnamedplus";
|
2024-03-06 13:25:32 -05:00
|
|
|
|
|
|
|
|
tabstop = 2;
|
|
|
|
|
shiftwidth = 2;
|
|
|
|
|
expandtab = true;
|
|
|
|
|
softtabstop = 2;
|
2024-02-29 22:20:26 -05:00
|
|
|
};
|
|
|
|
|
globals.mapleader = " ";
|
|
|
|
|
|
|
|
|
|
plugins.bufferline = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-02 13:16:25 -05:00
|
|
|
# plugins.nvim-jdtls = {
|
|
|
|
|
# enable = true;
|
|
|
|
|
#
|
|
|
|
|
# cmd = [
|
|
|
|
|
# "${pkgs.jdt-language-server}/bin/jdtls"
|
|
|
|
|
# "-data"
|
|
|
|
|
# "/home/zack/.cache/jdtls/workspace"
|
|
|
|
|
# "-configuration"
|
|
|
|
|
# "/home/zack/.cache/jdtls/config"
|
|
|
|
|
# ];
|
|
|
|
|
# };
|
2024-03-02 13:02:14 -05:00
|
|
|
|
2024-02-29 22:20:26 -05:00
|
|
|
plugins.lsp = {
|
|
|
|
|
enable = true;
|
|
|
|
|
servers = {
|
|
|
|
|
tsserver.enable = true;
|
|
|
|
|
lua-ls.enable = true;
|
|
|
|
|
rust-analyzer = {
|
|
|
|
|
enable = true;
|
|
|
|
|
installRustc = false;
|
|
|
|
|
installCargo = false;
|
|
|
|
|
};
|
|
|
|
|
nil_ls.enable = true;
|
|
|
|
|
};
|
2024-03-01 13:06:00 -05:00
|
|
|
keymaps = {
|
|
|
|
|
lspBuf = {
|
|
|
|
|
K = "hover";
|
|
|
|
|
gD = "references";
|
|
|
|
|
gd = "definition";
|
|
|
|
|
gi = "implementation";
|
|
|
|
|
gt = "type_definition";
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-02-29 22:20:26 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
keymaps = [
|
|
|
|
|
{
|
|
|
|
|
action = "<cmd>Neotree<CR>";
|
|
|
|
|
key = "<leader>fe";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
action = "<cmd>lua _lazygit_toggle()<CR>";
|
|
|
|
|
key = "<leader>gg";
|
|
|
|
|
}
|
2024-03-01 11:57:29 -05:00
|
|
|
{
|
|
|
|
|
action = "<cmd>ToggleTerm<CR>";
|
|
|
|
|
key = "<leader>h";
|
|
|
|
|
}
|
2024-03-11 16:25:43 -04:00
|
|
|
{
|
|
|
|
|
action = "<cmd>OverseerRun<CR>";
|
|
|
|
|
key = "<F36>";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
action = "<cmd>OverseerToggle<CR>";
|
2024-03-11 16:32:55 -04:00
|
|
|
key = "<F48>";
|
2024-03-11 16:25:43 -04:00
|
|
|
}
|
2024-02-29 22:20:26 -05:00
|
|
|
];
|
|
|
|
|
|
2024-03-07 19:42:36 -05:00
|
|
|
plugins.cmp = {
|
2024-02-29 22:20:26 -05:00
|
|
|
enable = true;
|
|
|
|
|
autoEnableSources = true;
|
2024-03-07 19:43:16 -05:00
|
|
|
settings = {
|
2024-03-07 19:42:36 -05:00
|
|
|
sources = [
|
|
|
|
|
{name = "nvim_lsp";}
|
|
|
|
|
{name = "path";}
|
|
|
|
|
{name = "buffer";}
|
|
|
|
|
];
|
|
|
|
|
snippet = {expand = "luasnip";};
|
|
|
|
|
mappingPresets = ["insert"];
|
|
|
|
|
mapping = {
|
|
|
|
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
|
|
|
"<C-space>" = "cmp.mapping.complete()";
|
|
|
|
|
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
|
|
|
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
|
|
|
|
};
|
2024-02-29 22:20:26 -05:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-01 12:59:24 -05:00
|
|
|
extraPlugins = with pkgs.vimPlugins; [
|
2024-03-11 16:29:32 -04:00
|
|
|
{
|
|
|
|
|
plugin = dressing-nvim;
|
|
|
|
|
config = ''lua require('dressing').setup()'';
|
|
|
|
|
}
|
2024-03-01 13:01:34 -05:00
|
|
|
{
|
|
|
|
|
plugin = overseer-nvim;
|
2024-03-11 16:38:47 -04:00
|
|
|
config = ''lua require('overseer').setup({ task_list = { direction = "bottom" } })'';
|
2024-03-01 13:01:34 -05:00
|
|
|
}
|
2024-03-01 12:59:24 -05:00
|
|
|
];
|
|
|
|
|
|
2024-02-29 22:20:26 -05:00
|
|
|
extraConfigLua = ''
|
|
|
|
|
local Terminal = require('toggleterm.terminal').Terminal
|
|
|
|
|
local lazygit = Terminal:new({ cmd = "lazygit", hidden = true, direction = "float" })
|
|
|
|
|
|
|
|
|
|
function _lazygit_toggle()
|
|
|
|
|
lazygit:toggle()
|
|
|
|
|
end
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
}
|