Skip to content

Commit

Permalink
refactor(neovim): plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
henry40408 committed Feb 18, 2025
1 parent 6ec49dc commit b9c9046
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 0 deletions.
10 changes: 10 additions & 0 deletions home-manager/common/nixvim/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
{
imports = [
./lsp.nix
./mini.nix
./toggleterm.nix
];
programs.nixvim = {
enable = true;
colorschemes.base16 = {
enable = true;
colorscheme = "irblack";
};
plugins.which-key.enable = true;
};
}
70 changes: 70 additions & 0 deletions home-manager/common/nixvim/lsp.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
programs.nixvim = {
plugins.cmp = {
enable = true;
autoEnableSources = true;
settings = {
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-e>" = "cmp.mapping.abort()";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-j>" = "cmp.mapping.select_next_item()";
"<C-k>" = "cmp.mapping.select_prev_item()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
};
snippet.expand = ''
function(args)
require('luasnip').lsp_expand(args.body)
end'';
sources = [
{ name = "buffer"; }
{ name = "nvim_lsp"; }
{ name = "nvim_lsp_signature_help"; }
{ name = "path"; }
{
name = "luasnip";
keywordLength = 3;
}
];
};
};
plugins.conform-nvim = {
enable = true;
formatOnSave = { };
formattersByFt = {
nix = [ "nixfmt" ];
};
};
plugins.friendly-snippets.enable = true;
plugins.lsp = {
enable = true;
onAttach = ''
local opts = { buffer = bufnr }
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
vim.keymap.set("n", "<leader>vws", vim.lsp.buf.workspace_symbol, opts)
vim.keymap.set("n", "<leader>vd", vim.diagnostic.open_float, opts)
vim.keymap.set("n", "[d", vim.diagnostic.goto_next, opts)
vim.keymap.set("n", "]d", vim.diagnostic.goto_prev, opts)
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
vim.keymap.set("n", "<leader>rr", vim.lsp.buf.references, opts)
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
'';
servers.nixd.enable = true;
servers.pyright.enable = true;
servers.rust-analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
};
plugins.luasnip.enable = true;
plugins.treesitter = {
enable = true;
ensureInstalled = [ "nix" ];
};
};
}
52 changes: 52 additions & 0 deletions home-manager/common/nixvim/mini.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
programs.nixvim = {
plugins.mini = {
enable = true;
modules = {
ai = { };
basics = { };
bracketed = { };
comment = { };
cursorword = { };
diff = { };
extra = { };
files = { };
icons = { };
indentscope = { };
operators = { };
jump2d = { };
notify = { };
pairs = { };
pick = { };
statusline = { };
surround = { };
tabline = { };
trailspace = { };
};
};
keymaps = [
{
key = "<leader>fe";
action = {
__raw = ''function() require("mini.files").open() end'';
};
options.desc = "Explorer";
}
{
key = "<leader>ff";
action = "<cmd>Pick files<cr>";
options.desc = "Open files";
}
{
key = "<leader>fg";
action = "<cmd>Pick git_files<cr>";
options.desc = "Open files (git)";
}
{
key = "<leader>sg";
action = "<cmd>Pick grep_live<cr>";
options.desc = "Live grep";
}
];
};
}
11 changes: 11 additions & 0 deletions home-manager/common/nixvim/toggleterm.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
programs.nixvim = {
plugins.toggleterm = {
enable = true;
settings = {
direction = "float";
open_mapping = "[[<c-\\>]]";
};
};
};
}

0 comments on commit b9c9046

Please sign in to comment.