config/modules/home-manager/vim.nix

133 lines
3 KiB
Nix
Raw Normal View History

{pkgs, ...}: {
2024-02-29 22:20:26 -05:00
config = {
enable = true;
plugins = {
lualine.enable = true;
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;
};
plugins.gitsigns.enable = true;
# colorschemes.dracula.enable = true;
# colorschemes.catppuccin.enable = true;
colorschemes.kanagawa.enable = true;
# colorschemes.oxocarbon.enable = true;
# colorschemes.tokyonight.enable = true;
2024-02-29 22:20:26 -05:00
options = {
number = true;
relativenumber = true;
clipboard = "unnamedplus";
tabstop = 2;
shiftwidth = 2;
expandtab = true;
softtabstop = 2;
2024-02-29 22:20:26 -05:00
};
globals.mapleader = " ";
plugins.bufferline = {
enable = true;
};
# 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-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;
};
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";
}
{
action = "<cmd>ToggleTerm<CR>";
key = "<leader>h";
}
2024-02-29 22:20:26 -05:00
];
plugins.cmp = {
2024-02-29 22:20:26 -05:00
enable = true;
autoEnableSources = true;
settings = {
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
};
};
extraPlugins = with pkgs.vimPlugins; [
{
plugin = overseer-nvim;
config = ''lua require('overseer').setup()'';
}
];
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
'';
};
}