223
modules/home-manager/nixvim/default.nix
Normal file
223
modules/home-manager/nixvim/default.nix
Normal file
@@ -0,0 +1,223 @@
|
||||
{ inputs, pkgs, config, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
||||
colorschemes = {
|
||||
kanagawa = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = " ";
|
||||
};
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
mouse = "a";
|
||||
showmode = false;
|
||||
laststatus = 3;
|
||||
swapfile = false;
|
||||
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
};
|
||||
|
||||
breakindent = true;
|
||||
undofile = true;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
signcolumn = "yes";
|
||||
updatetime = 50;
|
||||
timeoutlen = 300;
|
||||
inccommand = "split";
|
||||
cursorline = true;
|
||||
scrolloff = 10;
|
||||
hlsearch = true;
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fe";
|
||||
action = "<cmd>Oil<CR>";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>ff";
|
||||
action = "<cmd>Pick files<CR>";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fg";
|
||||
action = "<cmd>Pick grep_live<CR>";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>u";
|
||||
action = "<cmd>UndotreeToggle<CR>";
|
||||
}
|
||||
];
|
||||
|
||||
plugins = {
|
||||
web-devicons.enable = true;
|
||||
sleuth = {
|
||||
enable = true;
|
||||
};
|
||||
treesitter = {
|
||||
enable = true;
|
||||
settings = {
|
||||
highlight = {
|
||||
enable = true;
|
||||
additional_vim_regex_highlighting = true;
|
||||
};
|
||||
indent = {
|
||||
enable = true;
|
||||
};
|
||||
autotag = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
harpoon = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
addFile = "<leader>a";
|
||||
toggleQuickMenu = "<leader>e";
|
||||
navNext = "<leader>k";
|
||||
navPrev = "<leader>j";
|
||||
};
|
||||
};
|
||||
mini = {
|
||||
enable = true;
|
||||
modules = {
|
||||
ai = {
|
||||
n_lines = 500;
|
||||
};
|
||||
surround = {};
|
||||
statusline = {
|
||||
use_icons = true;
|
||||
};
|
||||
comment = {};
|
||||
trailspace = {};
|
||||
pick = {};
|
||||
};
|
||||
};
|
||||
friendly-snippets = {
|
||||
enable = true;
|
||||
};
|
||||
cmp = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
snippet = {
|
||||
expand = ''
|
||||
function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end
|
||||
'';
|
||||
};
|
||||
completion = {
|
||||
completeopt = "menu,menuone,noinsert";
|
||||
};
|
||||
mapping = {
|
||||
"<C-n>" = "cmp.mapping.select_next_item()";
|
||||
"<C-p>" = "cmp.mapping.select_prev_item()";
|
||||
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<C-y>" = "cmp.mapping.confirm { select = true }";
|
||||
"<C-Space>" = "cmp.mapping.complete {}";
|
||||
"<C-l>" = ''
|
||||
cmp.mapping(function()
|
||||
if luasnip.expand_or_locally_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
end
|
||||
end, { 'i', 's' })
|
||||
'';
|
||||
"<C-h>" = ''
|
||||
cmp.mapping(function()
|
||||
if luasnip.locally_jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
end
|
||||
end, { 'i', 's' })
|
||||
'';
|
||||
};
|
||||
sources = [
|
||||
{
|
||||
name = "luasnip";
|
||||
}
|
||||
{
|
||||
name = "nvim_lsp";
|
||||
}
|
||||
{
|
||||
name = "path";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
oil = {
|
||||
enable = true;
|
||||
};
|
||||
undotree = {
|
||||
enable = true;
|
||||
};
|
||||
tmux-navigator = {
|
||||
enable = true;
|
||||
};
|
||||
cmp-nvim-lsp = {
|
||||
enable = true;
|
||||
};
|
||||
fidget = {
|
||||
enable = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
nixd = {
|
||||
enable = true;
|
||||
};
|
||||
ts_ls = {
|
||||
enable = true;
|
||||
};
|
||||
eslint = {
|
||||
enable = true;
|
||||
};
|
||||
html = {
|
||||
enable = true;
|
||||
};
|
||||
cssls = {
|
||||
enable = true;
|
||||
};
|
||||
volar = {
|
||||
enable = true;
|
||||
tslsIntegration = true;
|
||||
};
|
||||
};
|
||||
keymaps = {
|
||||
diagnostic = {
|
||||
"[d" = "goto_next";
|
||||
"]d" = "goto_prev";
|
||||
"<leader>d" = "open_float";
|
||||
};
|
||||
lspBuf = {
|
||||
"K" = "hover";
|
||||
"gd" = "definition";
|
||||
"gr" = "references";
|
||||
"<leader>rn" = "rename";
|
||||
"<leader>ca" = "code_action";
|
||||
"<C-h>" = "signature_help";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
modules/home-manager/nixvim/plugins/treesitter.nix
Normal file
0
modules/home-manager/nixvim/plugins/treesitter.nix
Normal file
Reference in New Issue
Block a user