From 50f63458ab7948b852d6b7dea34907c4bbf046dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Mon, 9 Oct 2023 17:17:24 +0300 Subject: [PATCH] dev environment is now optional --- shared/home/default.nix | 69 +++++++++++++++++-------------- shared/home/{init.lua => dev.lua} | 67 +----------------------------- shared/home/vimrc | 64 ++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 96 deletions(-) rename shared/home/{init.lua => dev.lua} (67%) create mode 100644 shared/home/vimrc diff --git a/shared/home/default.nix b/shared/home/default.nix index 1b913a4..54e5af5 100644 --- a/shared/home/default.nix +++ b/shared/home/default.nix @@ -1,4 +1,5 @@ { + lib, pkgs, stateVersion, email, @@ -28,38 +29,44 @@ programs.direnv.enable = true; - programs.neovim = { - enable = true; - vimAlias = true; - vimdiffAlias = true; - defaultEditor = true; - plugins = with pkgs.vimPlugins; - [ - fugitive - ] - ++ ( - if devEnvironment - then [ - vim-go - - zig-vim - - cmp-nvim-lsp - nvim-cmp - nvim-metals - plenary-nvim + programs.neovim = lib.mkMerge [ + { + enable = true; + vimAlias = true; + vimdiffAlias = true; + defaultEditor = true; + plugins = with pkgs.vimPlugins; + [ + fugitive ] - else [] - ); - extraLuaConfig = - builtins.readFile - (pkgs.substituteAll { - src = ./init.lua; - inherit (pkgs) metals; - javaHome = pkgs.jdk.home; - }) - .outPath; - }; + ++ ( + if devEnvironment + then [ + vim-go + + zig-vim + + cmp-nvim-lsp + nvim-cmp + nvim-metals + plenary-nvim + ] + else [] + ); + extraConfig = builtins.readFile ./vimrc; + } + (lib.mkIf devEnvironment { + extraLuaConfig = + builtins.readFile + (pkgs.substituteAll { + src = ./dev.lua; + javaHome = pkgs.jdk.home; + inherit (pkgs) metals; + inherit (pkgs) gotools; + }) + .outPath; + }) + ]; programs.git = { enable = true; diff --git a/shared/home/init.lua b/shared/home/dev.lua similarity index 67% rename from shared/home/init.lua rename to shared/home/dev.lua index e4d0aa5..5070080 100644 --- a/shared/home/init.lua +++ b/shared/home/dev.lua @@ -1,71 +1,7 @@ vim.api.nvim_exec([[ - syntax on - filetype plugin indent on - set et ts=4 sw=4 sts=4 nu hlsearch ruler ignorecase smartcase nomodeline bg=dark incsearch - set path=**/* grepprg=rg\ --vimgrep grepformat^=%f:%l:%c:%m backspace=2 nojs - set laststatus=1 - nnoremap \ gqj - command OLD :enew | setl buftype=nofile | 0put =v:oldfiles | nnoremap :e =getline('.') - - call matchadd('ColorColumn', '\%81v', 100) - " thanks to drew de vault's vimrc, except swearing - set mouse= - set backupdir=~/.cache directory=~/.cache - "nnoremap Q :grep - nmap gs :grep - - " bits from vim-sensible - set autoindent smarttab nrformats-=octal - nnoremap :nohlsearch=has('diff')?'diffupdate':'' - set wildmenu sidescrolloff=5 display+=lastline encoding=utf-8 - set formatoptions+=j history=1000 tabpagemax=50 sessionoptions-=options - - " so Gdiff and vimdiff output are somewhat readable - if &diff - syntax off - endif - - if has("patch-8.1-0360") - set diffopt+=algorithm:patience - endif - - " html - au FileType html,gohtmltmpl setlocal ts=2 sw=2 sts=2 - - " ruby - au BufRead,BufNewFile Vagrantfile setfiletype ruby - - " puppet - au BufRead,BufNewFile *.j2 setfiletype django - - " avro - au BufRead,BufNewFile *.avsc setfiletype json - au BufRead,BufNewFile *.avsc setlocal ts=2 sw=2 sts=2 - - " redo - au BufRead,BufNewFile *.do setfiletype sh - - " go - au FileType go setlocal noet au FileType go nnoremap :GoDef au FileType go let g:go_template_autocreate = 0 - au FileType go let g:go_fmt_command = "goimports" - - " strace - au FileType strace setlocal nonu - - " yaml - au FileType yaml setlocal ts=2 sw=2 sts=2 - - " sql - au FileType sql setlocal formatprg=pg_format\ - - au FileType sql setlocal ts=2 sw=2 sts=2 - - " mail - autocmd BufRead,BufNewFile *mutt-* setfiletype mail - - " TeX - au FileType tex setlocal spell spelllang=en_us ts=2 sw=2 sts=2 + au FileType go let g:go_fmt_command = "@gotools@/bin/goimports" ]], false) local api = vim.api @@ -195,3 +131,4 @@ api.nvim_create_autocmd("FileType", { end, group = nvim_metals_group, }) + diff --git a/shared/home/vimrc b/shared/home/vimrc new file mode 100644 index 0000000..645feda --- /dev/null +++ b/shared/home/vimrc @@ -0,0 +1,64 @@ +syntax on +filetype plugin indent on +set et ts=4 sw=4 sts=4 nu hlsearch ruler ignorecase smartcase nomodeline bg=dark incsearch +set path=**/* grepprg=rg\ --vimgrep grepformat^=%f:%l:%c:%m backspace=2 nojs +set laststatus=1 +nnoremap \ gqj +command OLD :enew | setl buftype=nofile | 0put =v:oldfiles | nnoremap :e =getline('.') + +call matchadd('ColorColumn', '\%81v', 100) +" thanks to drew de vault's vimrc, except swearing +set mouse= +set backupdir=~/.cache directory=~/.cache +"nnoremap Q :grep +nmap gs :grep + +" bits from vim-sensible +set autoindent smarttab nrformats-=octal +nnoremap :nohlsearch=has('diff')?'diffupdate':'' +set wildmenu sidescrolloff=5 display+=lastline encoding=utf-8 +set formatoptions+=j history=1000 tabpagemax=50 sessionoptions-=options + +" so Gdiff and vimdiff output are somewhat readable +if &diff + syntax off +endif + +if has("patch-8.1-0360") + set diffopt+=algorithm:patience +endif + +" html +au FileType html,gohtmltmpl setlocal ts=2 sw=2 sts=2 + +" ruby +au BufRead,BufNewFile Vagrantfile setfiletype ruby + +" puppet +au BufRead,BufNewFile *.j2 setfiletype django + +" avro +au BufRead,BufNewFile *.avsc setfiletype json +au BufRead,BufNewFile *.avsc setlocal ts=2 sw=2 sts=2 + +" redo +au BufRead,BufNewFile *.do setfiletype sh + +" go +au FileType go setlocal noet + +" strace +au FileType strace setlocal nonu + +" yaml +au FileType yaml setlocal ts=2 sw=2 sts=2 + +" sql +au FileType sql setlocal formatprg=pg_format\ - +au FileType sql setlocal ts=2 sw=2 sts=2 + +" mail +autocmd BufRead,BufNewFile *mutt-* setfiletype mail + +" TeX +au FileType tex setlocal spell spelllang=en_us ts=2 sw=2 sts=2