dotfiles-nix/nix/programs/neovim/default.nix
2025-01-23 09:26:51 -05:00

84 lines
2.2 KiB
Nix

{ config, lib, pkgs, ... }:
let
colorschemeLua = ''
-- [[ COLORSCHEME ]] --
local colorscheme = require('base16-colorscheme')
colorscheme.setup({
base00 = '#${config.theme.colors.base00}',
base01 = '#${config.theme.colors.base01}',
base02 = '#${config.theme.colors.base02}',
base03 = '#${config.theme.colors.base03}',
base04 = '#${config.theme.colors.base04}',
base05 = '#${config.theme.colors.base05}',
base06 = '#${config.theme.colors.base06}',
base07 = '#${config.theme.colors.base07}',
base08 = '#${config.theme.colors.base08}',
base09 = '#${config.theme.colors.base09}',
base0A = '#${config.theme.colors.base0A}',
base0B = '#${config.theme.colors.base0B}',
base0C = '#${config.theme.colors.base0C}',
base0D = '#${config.theme.colors.base0D}',
base0E = '#${config.theme.colors.base0E}',
base0F = '#${config.theme.colors.base0F}',
})
'';
initLua = lib.fileContents ./init.lua;
luaConfig = colorschemeLua + initLua;
in
{
environment.variables.EDITOR = "nvim";
home-manager.users.${config.user} = {
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
extraLuaConfig = luaConfig;
plugins = with pkgs.vimPlugins; [
# Deoendencies
vim-devicons
nvim-web-devicons
# Lua functions
plenary-nvim
# Lines
lualine-nvim # mode line
bufferline-nvim # buffer line
# Menus
nvim-tree-lua # file browser
undotree # undo menu
trouble-nvim # error menu
telescope-nvim # grep/find menus
# Snippets
vim-vsnip
vim-vsnip-integ
friendly-snippets
# Completion
nvim-cmp
cmp-buffer
cmp-nvim-lsp
cmp-vsnip
nvim-surround # delimiter
# Lsp
base16-nvim # colorscheme
nerdcommenter # comment functions
nvim-treesitter.withAllGrammars # hilighting
vim-illuminate # hilighting
todo-comments-nvim # todo comments
nvim-lspconfig # lsp server
fidget-nvim # notifications
indent-o-matic # auto indentation
hologram-nvim # images
virt-column-nvim # 80 col line
];
};
};
}