97 lines
2.9 KiB
Nix
97 lines
2.9 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.modules.nvim;
|
|
# Source my theme
|
|
jabuti-nvim = pkgs.vimUtils.buildVimPlugin {
|
|
name = "jabuti-nvim";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "jabuti-theme";
|
|
repo = "jabuti-nvim";
|
|
rev = "17f1b94cbf1871a89cdc264e4a8a2b3b4f7c76d2";
|
|
sha256 = "sha256-iPjwx/rTd98LUPK1MUfqKXZhQ5NmKx/rN8RX1PIuDFA=";
|
|
};
|
|
};
|
|
in {
|
|
options.modules.nvim = { enable = mkEnableOption "nvim"; };
|
|
config = mkIf cfg.enable {
|
|
|
|
home.file.".config/nvim/settings.lua".source = ./init.lua;
|
|
|
|
home.packages = with pkgs; [
|
|
nixfmt # Nix
|
|
sumneko-lua-language-server stylua # Lua
|
|
];
|
|
|
|
programs.zsh = {
|
|
initExtra = ''
|
|
export EDITOR="nvim"
|
|
'';
|
|
|
|
shellAliases = {
|
|
v = "nvim -i NONE";
|
|
nvim = "nvim -i NONE";
|
|
};
|
|
};
|
|
|
|
programs.neovim = {
|
|
enable = true;
|
|
plugins = with pkgs.vimPlugins; [
|
|
vim-nix
|
|
plenary-nvim
|
|
{
|
|
plugin = zk-nvim;
|
|
config = "require('zk').setup()";
|
|
}
|
|
{
|
|
plugin = jabuti-nvim;
|
|
config = "colorscheme jabuti";
|
|
}
|
|
{
|
|
plugin = impatient-nvim;
|
|
config = "lua require('impatient')";
|
|
}
|
|
{
|
|
plugin = lualine-nvim;
|
|
config = "lua require('lualine').setup()";
|
|
}
|
|
{
|
|
plugin = telescope-nvim;
|
|
config = "lua require('telescope').setup()";
|
|
}
|
|
{
|
|
plugin = indent-blankline-nvim;
|
|
config = "lua require('indent_blankline').setup()";
|
|
}
|
|
{
|
|
plugin = nvim-lspconfig;
|
|
config = ''
|
|
lua << EOF
|
|
require('lspconfig').rust_analyzer.setup{}
|
|
require('lspconfig').sumneko_lua.setup{}
|
|
require('lspconfig').rnix.setup{}
|
|
require('lspconfig').zk.setup{}
|
|
EOF
|
|
'';
|
|
}
|
|
{
|
|
plugin = nvim-treesitter;
|
|
config = ''
|
|
lua << EOF
|
|
require('nvim-treesitter.configs').setup {
|
|
highlight = {
|
|
enable = true,
|
|
additional_vim_regex_highlighting = false,
|
|
},
|
|
}
|
|
EOF
|
|
'';
|
|
}
|
|
];
|
|
|
|
extraConfig = ''
|
|
luafile ~/.config/nvim/settings.lua
|
|
'';
|
|
};
|
|
};
|
|
}
|