108 lines
2.4 KiB
Nix
108 lines
2.4 KiB
Nix
{ inputs, pkgs, lib, ... }:
|
|
{
|
|
programs.neovim =
|
|
let
|
|
toLua = str: "lua << EOF\n${str}\nEOF\n";
|
|
toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n";
|
|
fromGitHub = rev: ref: repo: pkgs.vimUtils.buildVimPlugin {
|
|
pname = "${lib.strings.sanitizeDerivationName repo}";
|
|
version = ref;
|
|
src = builtins.fetchGit {
|
|
url = "https://github.com/${repo}.git";
|
|
ref = ref;
|
|
rev = rev;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
enable = true;
|
|
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
vimdiffAlias = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
plugins = with pkgs; [
|
|
# Colorschemes
|
|
{
|
|
plugin = vimPlugins.catppuccin-nvim;
|
|
config = toLuaFile ./plugins/colorschemes/catppuccin.lua;
|
|
}
|
|
|
|
# LSP
|
|
{
|
|
plugin = vimPlugins.nvim-lspconfig;
|
|
config = toLuaFile ./plugins/lsp.lua;
|
|
}
|
|
|
|
vimPlugins.cmp-buffer
|
|
vimPlugins.cmp-cmdline
|
|
vimPlugins.cmp-nvim-lsp
|
|
vimPlugins.cmp-nvim-lua
|
|
vimPlugins.cmp-path
|
|
vimPlugins.cmp_luasnip
|
|
vimPlugins.luasnip
|
|
vimPlugins.nvim-cmp
|
|
|
|
# The rest
|
|
{
|
|
plugin = vimPlugins.indent-blankline-nvim;
|
|
config = toLuaFile ./plugins/indent.lua;
|
|
}
|
|
|
|
# HTML
|
|
|
|
# TODO: enable this when treesitter is installed
|
|
# {
|
|
# plugin = vimPlugins.nvim-ts-autotag;
|
|
# config = toLuaFile ./plugins/autotag.lua;
|
|
# }
|
|
|
|
{
|
|
plugin = vimPlugins.nvim-colorizer-lua;
|
|
config = toLuaFile ./plugins/colorizer.lua;
|
|
}
|
|
|
|
# GIT
|
|
{
|
|
plugin = vimPlugins.gitsigns-nvim;
|
|
config = toLuaFile ./plugins/gitsigns.lua;
|
|
}
|
|
|
|
vimPlugins.vim-fugitive
|
|
|
|
{
|
|
plugin = (fromGitHub "3af6232c8d39d51062702e875ff6407c1eeb0391" "main" "xiyaowong/transparent.nvim");
|
|
config = toLuaFile ./plugins/transparent.lua;
|
|
}
|
|
|
|
{
|
|
plugin = vimPlugins.presence-nvim;
|
|
config = toLuaFile ./plugins/presence.lua;
|
|
}
|
|
|
|
{
|
|
plugin = vimPlugins.comment-nvim;
|
|
config = toLuaFile ./plugins/comment.lua;
|
|
}
|
|
|
|
{
|
|
plugin = vimPlugins.which-key-nvim;
|
|
config = toLuaFile ./plugins/whichkey.lua;
|
|
}
|
|
];
|
|
|
|
extraLuaConfig = ''
|
|
${builtins.readFile ./core/colors.lua}
|
|
${builtins.readFile ./core/options.lua}
|
|
'';
|
|
|
|
extraPackages = with pkgs; [
|
|
lua-language-server
|
|
nodePackages_latest.vscode-langservers-extracted
|
|
nixd
|
|
];
|
|
};
|
|
}
|