os/modules/terminal-life/nvim/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

177 lines
3.6 KiB
Nix
Raw Normal View History

2021-05-30 19:10:28 +00:00
{
config,
pkgs,
2022-12-26 14:06:47 +00:00
lib,
2021-05-30 19:10:28 +00:00
...
}: let
psCfg = config.pub-solar;
cfg = config.pub-solar.terminal-life;
2021-05-30 19:10:28 +00:00
xdg = config.home-manager.users."${psCfg.user.name}".xdg;
preview-file = pkgs.writeShellScriptBin "preview-file" (import ./preview-file.nix pkgs);
2021-05-30 19:10:28 +00:00
in {
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withRuby = true;
withPython3 = true;
extraPackages = with pkgs;
lib.mkIf (!cfg.lite) [
2023-06-09 15:06:11 +00:00
ansible-language-server
ccls
gopls
nixd
2021-05-30 19:10:28 +00:00
nodejs
nodePackages.bash-language-server
nodePackages.dockerfile-language-server-nodejs
nodePackages.svelte-language-server
nodePackages.typescript
nodePackages.typescript-language-server
2021-05-30 19:10:28 +00:00
nodePackages.vim-language-server
nodePackages.vue-language-server
2022-01-19 00:13:15 +00:00
nodePackages.vscode-langservers-extracted
2021-05-30 19:10:28 +00:00
nodePackages.yaml-language-server
python3Packages.python-lsp-server
2021-05-30 19:10:28 +00:00
python3Full
rust-analyzer
solargraph
2021-05-30 19:10:28 +00:00
terraform-ls
universal-ctags
2021-05-30 19:10:28 +00:00
];
plugins = with pkgs.vimPlugins;
[]
++ lib.optionals (!cfg.lite) [
(pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [
p.nix
p.markdown
p.json
p.json5
p.yaml
p.html
p.css
p.scss
p.typescript
p.tsx
p.javascript
p.graphql
p.vue
p.rust
p.go
p.gomod
p.gosum
p.ruby
p.python
p.haskell
p.c
p.cpp
p.vim
p.vimdoc
p.sql
p.passwd
p.gitcommit
p.gitignore
p.git_config
p.gitattributes
p.git_rebase
p.dockerfile
p.terraform
]))
nvim-cmp
cmp-nvim-lsp
cmp_luasnip
luasnip
lsp_extensions-nvim
nvim-lspconfig
instant-nvim-nvfetcher
# Search functionality behind :Ack
ack-vim
# The status bar in the bottom of the screen with the mode indication and file location
vim-airline
# Automatically load editorconfig files in repos to configure nvim settings
editorconfig-vim
# File browser. Use <leader>n to access
nnn-vim
2023-07-13 16:07:58 +00:00
# Highlight characters when using f, F, t, and T
quick-scope
2023-07-13 16:07:58 +00:00
# get sudo in vim; :SudaWrite <optional filename>
suda-vim
2023-07-13 16:07:58 +00:00
<<<<<<< Updated upstream
vim-gutentags
vim-vinegar
2023-07-13 16:07:58 +00:00
=======
# undo history etc. per project
>>>>>>> Stashed changes
vim-workspace-nvfetcher
2023-07-13 16:07:58 +00:00
# JSON schemas
SchemaStore-nvim
sonokai
vim-hybrid-material
vim-airline-themes
vim-apprentice-nvfetcher
fugitive
vim-gitgutter
vim-rhubarb
vimagit-nvfetcher
fzf-vim
fzfWrapper
vim-highlightedyank
vim-beautify-nvfetcher
vim-surround
vim-bufkill
vim-sensible
emmet-vim
vim-caddyfile-nvfetcher
];
2021-12-02 11:19:37 +00:00
extraConfig = builtins.concatStringsSep "\n" [
''
" Persistent undo
set undofile
set undodir=${xdg.cacheHome}/nvim/undo
set backupdir=${xdg.dataHome}/nvim/backup
set directory=${xdg.dataHome}/nvim/swap/
''
(builtins.readFile ./init.vim)
(builtins.readFile ./plugins.vim)
(builtins.readFile ./clipboard.vim)
(builtins.readFile ./ui.vim)
(builtins.readFile ./quickfixopenall.vim)
(builtins.readFile ./lsp.vim)
''
" fzf with file preview
command! -bang -nargs=? -complete=dir Files
\ call fzf#vim#files(<q-args>, { 'options': ['--keep-right', '--cycle', '--layout', 'reverse', '--preview', '${preview-file}/bin/preview-file {}'] }, <bang>0)
''
2021-05-30 19:10:28 +00:00
];
}