102 lines
2.5 KiB
Nix
102 lines
2.5 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
cfg = config.dot.nvim;
|
|
in
|
|
{
|
|
options.dot.nvim = {
|
|
workMode = lib.mkEnableOption "work-specific neovim configuration";
|
|
};
|
|
|
|
config = {
|
|
programs.neovim = {
|
|
enable = true;
|
|
|
|
defaultEditor = true;
|
|
vimAlias = true;
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
vim-repeat
|
|
vim-surround
|
|
ts-comments-nvim
|
|
vim-fugitive
|
|
gitsigns-nvim
|
|
nvim-tree-lua
|
|
targets-vim
|
|
mini-pairs
|
|
mini-align
|
|
mini-bracketed
|
|
mini-splitjoin
|
|
mini-move
|
|
mini-ai
|
|
mini-icons
|
|
flash-nvim
|
|
trouble-nvim
|
|
conform-nvim
|
|
nvim-lint
|
|
promise-async
|
|
nvim-ufo
|
|
vim-windowswap
|
|
plenary-nvim
|
|
telescope-nvim
|
|
telescope-fzf-native-nvim
|
|
telescope-ui-select-nvim
|
|
yanky-nvim
|
|
lualine-nvim
|
|
undotree
|
|
luasnip
|
|
nvim-cmp
|
|
cmp_luasnip
|
|
cmp-buffer
|
|
cmp-path
|
|
cmp-cmdline
|
|
cmp-nvim-lsp
|
|
cmp-nvim-lsp-signature-help
|
|
cmp_yanky
|
|
cmp-git
|
|
nvim-lspconfig
|
|
lspkind-nvim
|
|
copilot-lua
|
|
copilot-cmp
|
|
CopilotChat-nvim
|
|
opencode-nvim
|
|
bullets-vim
|
|
nvim-dap
|
|
nvim-nio
|
|
nvim-dap-ui
|
|
nvim-dap-virtual-text
|
|
nvim-dap-go
|
|
nvim-dap-python
|
|
nvim-dap-lldb
|
|
todo-comments-nvim
|
|
vim-markdown
|
|
zen-mode-nvim
|
|
plantuml-syntax
|
|
obsidian-nvim
|
|
render-markdown-nvim
|
|
image-nvim
|
|
img-clip-nvim
|
|
vim-nix
|
|
(nvim-treesitter.withPlugins (p: [ p.awk p.bash p.c p.c_sharp p.cpp p.css p.diff p.dockerfile p.doxygen p.git_config p.gitcommit p.go p.gomod p.gosum p.gotmpl p.helm p.haskell p.html p.http p.java p.javascript p.json p.latex p.lua p.markdown p.markdown_inline p.matlab p.nix p.printf p.python p.regex p.rust p.sql p.strace p.supercollider p.svelte p.swift p.terraform p.tmux p.toml p.typescript p.vim p.xml p.yaml p.zig ]))
|
|
];
|
|
|
|
extraLuaConfig = ''
|
|
_G.is_work = ${if cfg.workMode then "true" else "false"}
|
|
_G.is_home = ${if pkgs.stdenv.isDarwin then "true" else "false"}
|
|
|
|
require('base')
|
|
require('keymaps')
|
|
require('plugins')
|
|
require('filetype')
|
|
'';
|
|
};
|
|
|
|
# Allow for editing the lua modules without a nix rebuild
|
|
xdg.configFile."nvim/lua".source = config.lib.file.mkOutOfStoreSymlink "${config.dot.dotfilesPath}/modules/nvim/lua";
|
|
|
|
home.packages = with pkgs; [
|
|
nodejs-slim
|
|
];
|
|
};
|
|
}
|