Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { pkgs, mylib, lib, ... }:
- let
- inherit (pkgs) unstable;
- inherit (unstable) vimPlugins;
- in
- {
- xdg.configFile =
- {
- nvim-lua = {
- enable = true;
- recursive = true;
- source = mylib.relativeToConfD "neovim/lua";
- target = "nvim/lua";
- };
- nvim-snippets = {
- enable = true;
- recursive = true;
- source = mylib.relativeToConfD "neovim/snippets";
- target = "nvim/snippets";
- };
- };
- programs.neovim = lib.mkMerge [
- {
- enable = true;
- package = unstable.neovim-unwrapped;
- defaultEditor = true;
- viAlias = true;
- vimAlias = true;
- withNodeJs = false;
- withPython3 = false;
- withRuby = false;
- extraPackages = with unstable; [ ripgrep ];
- plugins = with vimPlugins; [ vim-fugitive vim-cool ];
- extraLuaConfig = builtins.readFile (mylib.relativeToConfD "neovim/init.lua");
- }
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-lspconfig;
- requires = with vimPlugins; [ cmp-nvim-lsp pkgs.myVimPlugins.lazydev ];
- extraNodePackages = with unstable; [ typescript nodePackages.volar ];
- extraPackages = with unstable; [
- nil
- lua-language-server
- nodePackages.volar
- nodePackages.typescript-language-server
- nodePackages.bash-language-server
- pkgs.myNodePkgs.vtsls
- ];
- runtime."after/plugin/lsp.lua".source = mylib.relativeToConfD "neovim/after/plugin/lsp.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.mini-nvim;
- runtime."after/plugin/mini.lua".source = mylib.relativeToConfD "neovim/after/plugin/mini.lua";
- initPre = /** lua **/''
- -- NOTE(2024-06-13): loading this first so we start with mini notify enabled
- local is_debug = string.lower(vim.env.DEBUG) == "true" or string.lower(vim.env.NVIM_DEBUG) == "true"
- local default_duration = 3000
- local long_duration = 5000
- local disabled_duration = 0
- local debug_duration = is_debug and long_duration or disabled_duration
- vim.notify = require("mini.notify").make_notify({
- ERROR = { duration = long_duration, hl_group = "DiagnosticError" },
- WARN = { duration = default_duration, hl_group = "DiagnosticWarn" },
- INFO = { duration = default_duration, hl_group = "DiagnosticInfo" },
- DEBUG = { duration = debug_duration, hl_group = "DiagnosticHint" },
- TRACE = { duration = disabled_duration, hl_group = "DiagnosticOk" },
- OFF = { duration = disabled_duration, hl_group = "MiniNotifyNormal" },
- })
- '';
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.oil-nvim;
- runtime."after/plugin/oil.lua".source = mylib.relativeToConfD "neovim/after/plugin/oil.lua";
- initPre = ''vim.has = vim.fn.has''; # fixes oil nvim, see https://github.com/stevearc/oil.nvim/pull/411
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.comment-nvim;
- runtime."after/plugin/comment.lua".source = mylib.relativeToConfD "neovim/after/plugin/comment.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.fzf-lua;
- requires = with vimPlugins; [ nvim-web-devicons ];
- extraPackages = with unstable; [ fzf ripgrep fd bat ];
- runtime."after/plugin/fzf.lua".source = mylib.relativeToConfD "neovim/after/plugin/fzf.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-treesitter.withPlugins (p: [
- p.bash
- p.comment
- p.diff
- p.fish
- p.git_config
- p.git_rebase
- p.gitattributes
- p.gitcommit
- p.gitignore
- p.html
- p.ini
- p.javascript
- p.lua
- p.luadoc
- p.markdown
- p.nix
- p.python
- p.query
- p.toml
- p.vim
- p.vimdoc
- p.vue
- p.yaml
- ]);
- runtime."after/plugin/treesitter.lua".source = mylib.relativeToConfD "neovim/after/plugin/treesitter.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-ufo;
- requires = with vimPlugins; [ promise-async ];
- runtime."after/plugin/ufo.lua".source = mylib.relativeToConfD "neovim/after/plugin/ufo.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-bqf;
- runtime."after/plugin/bqf.lua".source = mylib.relativeToConfD "neovim/after/plugin/bqf.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.conform-nvim;
- extraPackages = with unstable; [ nixpkgs-fmt stylua shfmt shellcheck ];
- runtime."after/plugin/conform.lua".source = mylib.relativeToConfD "neovim/after/plugin/conform.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.luasnip;
- extraLuaPackages = lp: [ lp.jsregexp ];
- runtime."after/plugin/luasnip.lua".source = mylib.relativeToConfD "neovim/after/plugin/luasnip.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-cmp;
- requires = with vimPlugins; [ cmp-path cmp-buffer cmp_luasnip cmp-nvim-lsp luasnip ];
- runtime."after/plugin/cmp.lua".source = mylib.relativeToConfD "neovim/after/plugin/cmp.lua";
- })
- (mylib.myMkPlugin {
- plugin = vimPlugins.nvim-lint;
- extraPackages = with unstable; [ deadnix statix selene shellcheck ];
- runtime."after/plugin/lint.lua".source = mylib.relativeToConfD "neovim/after/plugin/lint.lua";
- })
- ];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement