2022-04-18 11:38:06 -05:00
|
|
|
{ pkgs, ... }:
|
|
|
|
|
|
|
|
|
|
let
|
2022-11-14 23:49:23 -06:00
|
|
|
vim-xonsh = pkgs.vimUtils.buildVimPlugin {
|
|
|
|
|
name = "vim-xonsh";
|
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
|
owner = "meatballs";
|
|
|
|
|
repo = "vim-xonsh";
|
2024-10-02 15:34:32 -05:00
|
|
|
rev = "929f35e";
|
|
|
|
|
hash = "sha256-ugHLu2Z9bTtQsIp4FQPKxgjVe9oZNjfQYrP+aHu+/uU=";
|
2022-11-14 23:49:23 -06:00
|
|
|
};
|
|
|
|
|
};
|
2022-04-18 11:38:06 -05:00
|
|
|
in
|
|
|
|
|
{
|
2024-10-02 15:34:32 -05:00
|
|
|
fonts.fontconfig.enable = true;
|
|
|
|
|
home.packages = [ (pkgs.nerdfonts.override { fonts = [ "Hack" ]; }) ];
|
2024-06-10 11:06:04 -05:00
|
|
|
programs.nixvim = {
|
2022-04-18 11:38:06 -05:00
|
|
|
enable = true;
|
2024-06-10 11:06:04 -05:00
|
|
|
colorschemes.gruvbox.enable = true;
|
2023-06-20 19:28:14 -05:00
|
|
|
globals = {
|
|
|
|
|
indent_guides_enable_on_vim_startup = 1;
|
|
|
|
|
nix_recommended_style = 0;
|
|
|
|
|
};
|
2024-06-10 11:06:04 -05:00
|
|
|
opts = {
|
2023-06-20 19:28:14 -05:00
|
|
|
background = "dark";
|
|
|
|
|
backup = false;
|
|
|
|
|
copyindent = true;
|
|
|
|
|
cursorline = true;
|
|
|
|
|
expandtab = false;
|
|
|
|
|
hidden = true;
|
|
|
|
|
hlsearch = true;
|
|
|
|
|
ignorecase = true;
|
|
|
|
|
lazyredraw = true;
|
|
|
|
|
list = true;
|
|
|
|
|
listchars = "tab:→ ,extends:→,precedes:←,trail:·,eol:¬";
|
|
|
|
|
mouse = "a";
|
|
|
|
|
number = true;
|
|
|
|
|
preserveindent = true;
|
|
|
|
|
relativenumber = true;
|
|
|
|
|
shiftwidth = 4;
|
|
|
|
|
showcmd = true;
|
|
|
|
|
showmatch = true;
|
|
|
|
|
signcolumn = "yes";
|
|
|
|
|
smartcase = true;
|
|
|
|
|
softtabstop = 4;
|
|
|
|
|
tabstop = 4;
|
|
|
|
|
# Setting for CtrlP
|
|
|
|
|
wildignore = "*.swp,*.pyc,*.class,.tox";
|
|
|
|
|
wrap = false;
|
|
|
|
|
writebackup = false;
|
|
|
|
|
};
|
2024-06-10 11:06:04 -05:00
|
|
|
keymaps = let
|
|
|
|
|
winMove = key: { mode = "n"; key = "<C-${key}>"; action = "<C-w>${key}<C-w><CR>"; };
|
|
|
|
|
in [ {
|
|
|
|
|
mode = "n";
|
|
|
|
|
key = "<C-e>";
|
2024-06-10 11:34:53 -05:00
|
|
|
action = "<Esc>:BufExplorer<CR>";
|
2024-06-10 11:06:04 -05:00
|
|
|
} {
|
|
|
|
|
mode = "n";
|
|
|
|
|
key = "<C-t>";
|
2024-10-02 15:55:11 -05:00
|
|
|
#action = "<Esc>:NERDTreeToggle<CR>";
|
|
|
|
|
action = "<Esc>:Neotree toggle<CR>";
|
|
|
|
|
} {
|
|
|
|
|
mode = "n";
|
|
|
|
|
key = "<C-g>";
|
|
|
|
|
action = "<Esc>:Neotree float git_status toggle<CR>";
|
2024-06-10 11:06:04 -05:00
|
|
|
}
|
|
|
|
|
(winMove "h")
|
|
|
|
|
(winMove "j")
|
|
|
|
|
(winMove "k")
|
|
|
|
|
(winMove "l")
|
|
|
|
|
];
|
2023-06-20 19:28:14 -05:00
|
|
|
plugins = {
|
2024-06-24 16:04:48 -04:00
|
|
|
airline.enable = true;
|
2024-10-02 15:34:32 -05:00
|
|
|
cmp = {
|
|
|
|
|
enable = true;
|
|
|
|
|
autoEnableSources = true;
|
|
|
|
|
settings.sources = [
|
|
|
|
|
{ name = "nvim_lsp"; }
|
|
|
|
|
{ name = "buffer"; group_index = 2; }
|
|
|
|
|
{ name = "path"; gruop_index = 3; }
|
|
|
|
|
];
|
|
|
|
|
};
|
2024-06-24 16:04:48 -04:00
|
|
|
direnv.enable = true;
|
2023-06-20 19:28:14 -05:00
|
|
|
gitgutter.enable = true;
|
|
|
|
|
fugitive.enable = true;
|
2024-06-24 16:04:48 -04:00
|
|
|
fzf-lua = {
|
|
|
|
|
enable = true;
|
|
|
|
|
keymaps = {
|
|
|
|
|
"<C-o>" = {
|
|
|
|
|
action = "files";
|
|
|
|
|
settings = {
|
|
|
|
|
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
|
|
|
|
|
winopts.height = 0.5;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
"<C-p>" = {
|
|
|
|
|
action = "git_files";
|
|
|
|
|
settings = {
|
|
|
|
|
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
|
|
|
|
|
winopts.height = 0.5;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
profile = "fzf-vim";
|
|
|
|
|
};
|
2024-10-02 15:34:32 -05:00
|
|
|
lsp = {
|
|
|
|
|
enable = true;
|
|
|
|
|
servers = {
|
2024-10-02 16:05:03 -05:00
|
|
|
ansiblels.enable = true;
|
2024-10-02 15:34:32 -05:00
|
|
|
cmake.enable = true;
|
|
|
|
|
gopls.enable = true;
|
|
|
|
|
html.enable = true;
|
|
|
|
|
nixd.enable = true;
|
|
|
|
|
pylsp.enable = true;
|
|
|
|
|
pyright.enable = true;
|
|
|
|
|
rust-analyzer = {
|
|
|
|
|
# No need to have these installed on every one of my systems
|
|
|
|
|
installCargo = false;
|
|
|
|
|
installRustc = false;
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
terraformls.enable = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-10-02 15:55:11 -05:00
|
|
|
neo-tree.enable = true;
|
2023-06-20 19:28:14 -05:00
|
|
|
notify.enable = true;
|
2024-10-02 15:34:32 -05:00
|
|
|
web-devicons.enable = true;
|
2023-06-20 19:28:14 -05:00
|
|
|
};
|
2024-03-28 09:36:46 -05:00
|
|
|
extraConfigLua = builtins.replaceStrings [ "@git@" ] [ "${pkgs.git}/bin/git" ] (builtins.readFile ./vim/extra.lua);
|
2023-06-20 19:28:14 -05:00
|
|
|
extraConfigVim = builtins.readFile ./vim/extra.vimrc;
|
|
|
|
|
extraPlugins = with pkgs.vimPlugins; [
|
2022-04-18 11:38:06 -05:00
|
|
|
bufexplorer
|
2023-06-15 15:37:57 -05:00
|
|
|
|
2022-11-15 23:31:05 -06:00
|
|
|
context-vim
|
2022-04-18 11:38:06 -05:00
|
|
|
vim-indent-guides
|
2022-11-14 23:49:23 -06:00
|
|
|
vim-xonsh
|
2022-04-18 11:38:06 -05:00
|
|
|
];
|
2023-06-20 19:28:14 -05:00
|
|
|
viAlias = true;
|
|
|
|
|
vimAlias = true;
|
2022-04-18 11:38:06 -05:00
|
|
|
};
|
|
|
|
|
}
|