Files
LiNix/modules/home/vim.nix

88 lines
2.0 KiB
Nix

{ pkgs, lib, nixvim, ... }:
{
imports = [ /*inputs.nixvim.nixosModules.nixvim*/ ];
programs.nixvim = {
enable = true;
defaultEditor = true;
enableMan = true;
globals.mapleader = "`";
viAlias = true;
vimAlias = true;
opts = {
tabstop = 4;
softtabstop = 0;
shiftwidth = 4;
expandtab = false;
autoindent = true;
number = true;
relativenumber = true;
ignorecase = true;
smartcase = true;
};
plugins.lsp = {
enable = true;
servers = {
rust_analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
nixd = {
enable = true;
# settings.formatting.command = [ "alejandra" ];
};
};
};
plugins.treesitter = {
enable = true;
nixvimInjections = true;
# ensure_installed = "all";
settings = {
highlight = {
enable = true;
disable = [ "org" ];
};
};
grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars;
};
extraPlugins = with pkgs.vimPlugins; [
orgmode
vim-nix
];
extraConfigLua = ''
-- Tree-sitter configuration
require'nvim-treesitter.configs'.setup {
-- If TS highlights are not enabled at all, or disabled via ``disable`` prop, highlighting will fallback to default Vim syntax highlighting
highlight = {
-- enable = true,
-- disable = {'org'}, -- Remove this to use TS highlighter for some of the highlights (Experimental)
additional_vim_regex_highlighting = {'org'}, -- Required since TS highlighter doesn't support all syntax features (conceal)
},
-- ensure_installed = {'org'}, -- Or run :TSUpdate org
}
require('orgmode').setup({
org_agenda_files = {'~/Org/Agenda/agenda.org', '~/Public/Org/Agenda/agenda.org'},
org_default_notes_file = '~/Dropbox/org/refile.org',
})
'';
extraConfigVim = ''
filetype indent off
set noexpandtab
set list
set listchars=tab:\ ,trail:·
autocmd FileType nix setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0
'';
colorschemes.base16.enable = true;
};
}