initial commit
This commit is contained in:
commit
120dbdbc64
21 changed files with 2413 additions and 0 deletions
180
home/nvim/default.nix
Normal file
180
home/nvim/default.nix
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.custom.neovim;
|
||||
in
|
||||
{
|
||||
options.custom.neovim = {
|
||||
enable = mkEnableOption "Custom Neovim";
|
||||
|
||||
colorscheme = mkOption {
|
||||
type = types.str;
|
||||
default = "unokai";
|
||||
};
|
||||
|
||||
hostname = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = false;
|
||||
vimdiffAlias = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = blink-cmp;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("blink.cmp").setup({
|
||||
keymap = {
|
||||
preset = "default",
|
||||
["<C-y>"] = { "select_and_accept", "snippet_forward", "fallback" },
|
||||
["<C-S-y>"] = { "snippet_backward", "fallback" },
|
||||
},
|
||||
})
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = conform-nvim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("conform").setup({
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
javascript = { "prettierd" },
|
||||
nix = { "nixfmt" },
|
||||
python = { "black" },
|
||||
php = { "php_cs_fixer" },
|
||||
zig = { "zigfmt" },
|
||||
css = { "prettierd" },
|
||||
scss = { "prettierd" },
|
||||
less = { "prettierd" },
|
||||
blade = { "blade-formatter" },
|
||||
go = { "go fmt" },
|
||||
},
|
||||
})
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
pattern = "*",
|
||||
callback = function(args)
|
||||
require("conform").format({ bufnr = args.buf })
|
||||
end,
|
||||
})
|
||||
vim.keymap.set("n", "<leader>c", function()
|
||||
require("conform").format({
|
||||
lsp_fallback = true,
|
||||
async = true,
|
||||
timeout_ms = 500,
|
||||
})
|
||||
end, { desc = "conform format" })
|
||||
'';
|
||||
}
|
||||
# (codecompanion-nvim.overrideAttrs (_: {
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "olimorris";
|
||||
# repo = "codecompanion.nvim";
|
||||
# tag = "v18.2.1";
|
||||
# sha256 = "sha256-94uX1Ie+BiKSPGCYcUwoZ6DZwSz8tUxaNsa+xTv1ejw=";
|
||||
# };
|
||||
# }))
|
||||
kanagawa-nvim
|
||||
leap-nvim
|
||||
{
|
||||
plugin = mini-icons;
|
||||
type = "lua";
|
||||
config = ''require("mini.icons").setup()'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("nvim-treesitter").setup({
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
indent = { enable = true },
|
||||
refactor = {
|
||||
highlight_definitions = { enable = true },
|
||||
},
|
||||
})
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-treesitter-context;
|
||||
type = "lua";
|
||||
config = ''require("treesitter-context").setup()'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-treesitter-textobjects;
|
||||
# type = "lua";
|
||||
# config = ''
|
||||
# vim.g.no_plugin_maps = true
|
||||
# require("treesitter-textobjects").setup()
|
||||
# '';
|
||||
}
|
||||
nvim-lspconfig
|
||||
{
|
||||
plugin = nvim-surround;
|
||||
type = "lua";
|
||||
config = ''require("nvim-surround").setup()'';
|
||||
}
|
||||
{
|
||||
plugin = nvim-web-devicons;
|
||||
type = "lua";
|
||||
config = ''require("nvim-web-devicons").setup()'';
|
||||
}
|
||||
{
|
||||
plugin = oil-nvim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
require("oil").setup()
|
||||
vim.keymap.set("n", "<leader>o", "<cmd>Oil<cr>", { desc = "Oil" })
|
||||
'';
|
||||
}
|
||||
phpactor
|
||||
{
|
||||
plugin = render-markdown-nvim;
|
||||
type = "lua";
|
||||
config = ''require("render-markdown").setup()'';
|
||||
}
|
||||
snacks-nvim
|
||||
tokyonight-nvim
|
||||
{
|
||||
plugin = undotree;
|
||||
type = "lua";
|
||||
config = ''vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle, { desc = "undotree" })'';
|
||||
}
|
||||
{
|
||||
plugin = vimtex;
|
||||
type = "lua";
|
||||
config = ''
|
||||
vim.g.vimtex_view_method = "zathura"
|
||||
vim.g.vimtex_compiler_method = "latexmk"
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = which-key-nvim;
|
||||
type = "lua";
|
||||
config = ''require("which-key").setup()'';
|
||||
}
|
||||
];
|
||||
extraConfig = ''
|
||||
colorscheme ${cfg.colorscheme}
|
||||
'';
|
||||
extraLuaConfig = ''
|
||||
${builtins.readFile ./settings.lua}
|
||||
${builtins.replaceStrings [ "@HOSTNAME@" ] [ cfg.hostname ] (builtins.readFile ./plugins.lua)}
|
||||
require("custom")
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue