2024-03-13 13:15:15 -04:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
inputs,
|
|
|
|
|
...
|
|
|
|
|
}: {
|
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-13 13:54:16 -04:00
|
|
|
closeIfLastWindow = true;
|
|
|
|
|
autoCleanAfterSessionRestore = true;
|
|
|
|
|
window = {
|
|
|
|
|
width = 30;
|
|
|
|
|
};
|
|
|
|
|
filesystem = {
|
|
|
|
|
followCurrentFile.enabled = true;
|
|
|
|
|
hijackNetrwBehavior = "open_current";
|
|
|
|
|
useLibuvFileWatcher = true;
|
|
|
|
|
};
|
|
|
|
|
defaultComponentConfigs = {
|
|
|
|
|
icon = {
|
|
|
|
|
folderEmpty = "";
|
|
|
|
|
default = "";
|
|
|
|
|
};
|
|
|
|
|
indent = {
|
|
|
|
|
padding = 0;
|
|
|
|
|
indentSize = 1;
|
|
|
|
|
};
|
|
|
|
|
modified = {
|
|
|
|
|
symbol = "";
|
|
|
|
|
};
|
|
|
|
|
name = {
|
|
|
|
|
useGitStatusColors = true;
|
|
|
|
|
};
|
|
|
|
|
gitStatus = {
|
|
|
|
|
symbols = {
|
|
|
|
|
deleted = "D";
|
|
|
|
|
renamed = "R";
|
|
|
|
|
modified = "M";
|
|
|
|
|
added = "A";
|
|
|
|
|
untracked = "U";
|
|
|
|
|
ignored = "";
|
|
|
|
|
staged = "";
|
|
|
|
|
unstaged = "!";
|
|
|
|
|
conflict = "C";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
diagnostics = {
|
|
|
|
|
symbols = {
|
|
|
|
|
hint = "";
|
|
|
|
|
info = "";
|
|
|
|
|
warn = "";
|
|
|
|
|
error = "";
|
|
|
|
|
};
|
|
|
|
|
highlights = {
|
|
|
|
|
hint = "DiagnosticSignHint";
|
|
|
|
|
info = "DiagnosticSignInfo";
|
|
|
|
|
warn = "DiagnosticSignWarn";
|
|
|
|
|
error = "DiagnosticSignError";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-02-29 22:20:26 -05:00
|
|
|
};
|
|
|
|
|
|
2024-03-13 13:59:58 -04:00
|
|
|
plugins.noice = {
|
|
|
|
|
enable = true;
|
|
|
|
|
lsp = {
|
|
|
|
|
override = {
|
|
|
|
|
"vim.lsp.util.convert_input_to_markdown_lines" = true;
|
|
|
|
|
"vim.lsp.util.stylize_markdown" = true;
|
|
|
|
|
"cmp.entry.get_documentation" = true;
|
|
|
|
|
};
|
|
|
|
|
hover = {
|
|
|
|
|
opts = {
|
|
|
|
|
silent = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
presets = {
|
|
|
|
|
bottom_search = false;
|
2024-03-13 14:02:45 -04:00
|
|
|
command_palette = true;
|
2024-03-13 13:59:58 -04:00
|
|
|
long_message_to_split = true;
|
|
|
|
|
inc_rename = false;
|
|
|
|
|
lsp_doc_border = "rounded";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2024-03-13 14:01:06 -04:00
|
|
|
plugins.notify.enable = true;
|
|
|
|
|
|
2024-03-02 12:47:20 -05:00
|
|
|
plugins.gitsigns.enable = true;
|
2024-03-13 14:04:27 -04:00
|
|
|
plugins.crates-nvim.enable = true;
|
2024-03-02 12:47:20 -05:00
|
|
|
|
2024-03-13 14:05:52 -04:00
|
|
|
plugins.dap = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extensions.dap-ui.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'';
|
2024-03-13 12:07:48 -04:00
|
|
|
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
|
|
|
|
|
end'';
|
2024-03-13 12:06:05 -04:00
|
|
|
};
|
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-13 12:27:12 -04:00
|
|
|
diagnostics = "nvim_lsp";
|
|
|
|
|
diagnosticsUpdateInInsert = true;
|
|
|
|
|
diagnosticsIndicator = null;
|
|
|
|
|
offsets = [
|
|
|
|
|
{
|
|
|
|
|
filetype = "neo-tree";
|
|
|
|
|
text = " NeoTree";
|
|
|
|
|
text_align = "left";
|
|
|
|
|
separator = "│";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
filetype = "dapui_watches";
|
|
|
|
|
text = " DapUI";
|
|
|
|
|
text_align = "left";
|
|
|
|
|
separator = "|";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
filetype = "dbui";
|
|
|
|
|
text = " DbUI";
|
|
|
|
|
text_align = "left";
|
|
|
|
|
separator = "|";
|
|
|
|
|
}
|
|
|
|
|
];
|
2024-02-29 22:20:26 -05:00
|
|
|
};
|
|
|
|
|
|
2024-03-13 13:15:15 -04:00
|
|
|
plugins.indent-blankline = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraOptions = {
|
|
|
|
|
exclude = {
|
|
|
|
|
buftypes = [
|
|
|
|
|
"nofile"
|
|
|
|
|
"terminal"
|
|
|
|
|
];
|
|
|
|
|
filetypes = [
|
|
|
|
|
"help"
|
|
|
|
|
"startify"
|
|
|
|
|
"aerial"
|
|
|
|
|
"alpha"
|
|
|
|
|
"dashboard"
|
|
|
|
|
"neogitstatus"
|
|
|
|
|
"neo-tree"
|
|
|
|
|
"TelescopePrompt"
|
|
|
|
|
];
|
2024-03-13 13:20:15 -04:00
|
|
|
};
|
|
|
|
|
scope = {
|
|
|
|
|
show_start = false;
|
|
|
|
|
show_end = false;
|
|
|
|
|
highlight = ["@keyword"];
|
|
|
|
|
char = "▏";
|
|
|
|
|
include = {
|
|
|
|
|
node_type = {
|
|
|
|
|
lua = ["table_constructor"];
|
2024-03-13 13:15:15 -04:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-03-13 13:21:35 -04:00
|
|
|
whitespace = {
|
|
|
|
|
remove_blankline_trail = true;
|
|
|
|
|
};
|
2024-03-13 13:20:15 -04:00
|
|
|
indent = {char = "▏";};
|
2024-03-13 13:15:15 -04:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
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;
|
2024-03-13 13:27:57 -04:00
|
|
|
config = ''lua require("dressing").setup()'';
|
2024-03-11 16:29:32 -04:00
|
|
|
}
|
2024-03-01 13:01:34 -05:00
|
|
|
{
|
|
|
|
|
plugin = overseer-nvim;
|
2024-03-13 13:27:57 -04:00
|
|
|
config = ''lua require('overseer').setup({ task_list = { direction = "bottom" } })'';
|
2024-03-01 13:01:34 -05:00
|
|
|
}
|
2024-03-13 14:02:45 -04:00
|
|
|
{
|
|
|
|
|
plugin = nui-nvim;
|
|
|
|
|
}
|
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
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
}
|