135 lines
2.6 KiB
Nix
135 lines
2.6 KiB
Nix
{
|
|
globals = {
|
|
mapleader = " ";
|
|
};
|
|
opts = {
|
|
number = true;
|
|
relativenumber = true;
|
|
tabstop = 2;
|
|
shiftwidth = 2;
|
|
expandtab = true;
|
|
smartindent = true;
|
|
scrolloff = 4;
|
|
|
|
undofile = true;
|
|
};
|
|
extraConfigLua = ''
|
|
vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo")
|
|
'';
|
|
keymaps = [
|
|
{
|
|
key = "<C-c>";
|
|
action = ''"+y'';
|
|
options.desc = "copy to clipboard";
|
|
}
|
|
{
|
|
key = "gl";
|
|
action = "g$";
|
|
}
|
|
{
|
|
key = "gh";
|
|
action = "g0";
|
|
}
|
|
{
|
|
key = "<leader>q";
|
|
action = ":bd<CR>";
|
|
options.desc = "close buffer";
|
|
}
|
|
{
|
|
key = "<leader>ggs";
|
|
action = ":Gitsigns stage_hunk<CR>";
|
|
options.desc = "git stage hunk";
|
|
}
|
|
{
|
|
key = "<leader>ggr";
|
|
action = ":LazyGit<CR>";
|
|
options.desc = "git restore hunk";
|
|
}
|
|
{
|
|
key = "<leader>ggb";
|
|
action = ":Gitsigns blame<CR>";
|
|
options.desc = "show git blame";
|
|
}
|
|
{
|
|
key = "<leader>ggg";
|
|
action = ":LazyGit<CR>";
|
|
options.desc = "open lazy git";
|
|
}
|
|
];
|
|
|
|
plugins = {
|
|
bufferline.enable = true;
|
|
surround.enable = true;
|
|
comment.enable = true;
|
|
|
|
markdown-preview.enable = true;
|
|
treesitter.enable = true;
|
|
|
|
telescope = {
|
|
enable = true;
|
|
keymaps = {
|
|
"<leader>fg" = "live_grep";
|
|
"<leader>/" = "live_grep";
|
|
"<leader>ff" = "find_files";
|
|
"<leader>fb" = "buffers";
|
|
"<leader>fh" = "help_tags";
|
|
"<leader>:" = "commands";
|
|
};
|
|
};
|
|
|
|
lsp = {
|
|
enable = true;
|
|
servers = {
|
|
tsserver.enable = true;
|
|
nixd.enable = true;
|
|
};
|
|
keymaps = {
|
|
lspBuf = {
|
|
"K" = "hover";
|
|
"<leader>ca" = "code_action";
|
|
"<C-.>" = "code_action";
|
|
"<leader>cr" = "rename";
|
|
"gd" = "definition";
|
|
};
|
|
diagnostic = {
|
|
"<leader>ch" = "open_float";
|
|
"<C-e>" = "open_float";
|
|
};
|
|
};
|
|
};
|
|
|
|
cmp = {
|
|
enable = true;
|
|
autoEnableSources = true;
|
|
};
|
|
|
|
cmp-nvim-lsp.enable = true;
|
|
cmp-path.enable = true;
|
|
|
|
ts-autotag.enable = true;
|
|
|
|
gitsigns.enable = true;
|
|
git-worktree = {
|
|
enable = true;
|
|
enableTelescope = true;
|
|
};
|
|
|
|
lazygit.enable = true;
|
|
which-key.enable = true;
|
|
toggleterm = {
|
|
enable = true;
|
|
settings = {open_mapping = "[[<c-`>]]";};
|
|
};
|
|
|
|
harpoon = {
|
|
enable = true;
|
|
keymaps = {
|
|
addFile = "<leader>ha";
|
|
toggleQuickMenu = "<leader>hf";
|
|
navNext = "<leader>n";
|
|
};
|
|
};
|
|
|
|
vim-css-color.enable = true;
|
|
};
|
|
}
|