{ pkgs, config, ... }: let obsidian-nvim = pkgs.vimUtils.buildVimPlugin { pname = "obsidian.nvim"; version = "v3.5.1"; src = pkgs.fetchFromGitHub { owner = "epwalsh"; repo = "obsidian.nvim"; rev = "4eb44381811ab6af67b9f9fe3117616afbe1e118"; sha256 = "sha256-/zj12pwppb1RGi3EovXla6Ahzkoxh3qhxQFOfnfPwac="; }; meta.homepage = "https://github.com/epwalsh/obsidian.nvim"; }; in { home.sessionVariables = { EDITOR = "nvim"; }; programs.neovim = { enable = true; withNodeJs = true; withPython3 = true; plugins = with pkgs.vimPlugins; [ bufferline-nvim catppuccin-nvim cmp-buffer# cmp-conjure# cmp-nvim-lua# cmp-path# cmp_luasnip# comment-nvim# conform-nvim conjure dropbar-nvim friendly-snippets# lazy-nvim# lean-nvim leap-nvim lspkind-nvim# lualine-lsp-progress# lualine-nvim luasnip# markdown-preview-nvim neoconf-nvim# neodev-nvim# neoscroll-nvim nvim-autopairs nvim-cmp nvim-lspconfig nvim-surround nvim-tree-lua nvim-treesitter.withAllGrammars nvim-treesitter-textobjects nvim-ts-context-commentstring nvim-web-devicons# obsidian-nvim oil-nvim plenary-nvim rainbow-delimiters-nvim# telescope-fzf-native-nvim telescope-nvim vimtex which-key-nvim ]; extraPackages = with pkgs; [ ripgrep fd codespell prettierd # Lua lua-language-server stylua # Haskell haskell-language-server ghc stack cabal-install haskellPackages.fourmolu # Lean lean4 # Python ruff-lsp nodePackages.pyright isort python311Packages.autopep8 # LaTeX texliveFull texlab xdotool pplatex neovim-remote # Nix nixd nixfmt # Rust rust-analyzer # Bash nodePackages.bash-language-server shellcheck shellharden # sh shfmt # Scheme chez ]; extraLuaConfig = '' vim.g.mapleader = " " require("lazy").setup({ spec = { -- Import plugins from lua/plugins { import = "plugins" }, }, performance = { reset_packpath = false, rtp = { reset = false, } }, dev = { path = "${ pkgs.vimUtils.packDir config.programs.neovim.finalPackage.passthru.packpathDirs }/pack/myNeovimPackages/start", patterns = {"folke", "catppuccin", "epwalsh"}, }, install = { -- Safeguard in case we forget to install a plugin with Nix missing = false, }, }) require("config/options") ''; }; xdg.configFile."nvim/lua"= { recursive = true; source = ./lua; }; }