{ pkgs, lib, paths, ... }: let paq = pkgs.fetchFromGitHub { owner = "savq"; repo = "paq-nvim"; rev = "bc5950b990729464f2493b1eaab5a7721bd40bf5"; sha256 = "0rsv3j5rxfv7ys9zvq775f63vy6w880b0xhyr164y8fcadhpypb3"; }; theme = pkgs.myThemes.current; extraPackages = with pkgs; [ # Language servers nodePackages.typescript-language-server # typescript easy-purescript-nix.purescript-language-server # purescript sumneko-lua-language-server # lua rnix-lsp # nix haskell-language-server # haskell tectonic # also latex something? texlab # latex # vscode-langservers-extracted # css and shit # Formatters luaformatter # lua ormolu # haskell easy-purescript-nix.purs-tidy # prettierd # prettier but faster # Others nodePackages.typescript # typescript wakatime # time tracking fd # file finder ripgrep # grep rewrite (I think?) update-nix-fetchgit # useful for nix stuff tree-sitter # syntax highlighting libstdcxx5 # required by treesitter aparently zathura # pdf reader xdotool # for zathura reverse search or whatever it's called texlive.combined.scheme-full # latex stuff python38Packages.pygments # required for latex syntax highlighting ]; base = pkgs.neovim-nightly; # base = pkgs.neovim; neovim = pkgs.symlinkJoin { inherit (base) name meta; paths = [ base ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/nvim \ --prefix PATH : ${lib.makeBinPath extraPackages} ''; }; nixPlugins = ".local/share/nvim/site/pack/nix"; in { home-manager.users.adrielus = { config, ... }: let simlink = config.lib.file.mkOutOfStoreSymlink; in { home.file.".local/share/nvim/site/pack/paqs/start/paq-nvim".source = paq; home.file."${nixPlugins}/start/theming/lua/my/theme.lua".source = theme.neovim.theme; home.file."${nixPlugins}/start/snippets".source = simlink "${paths.dotfiles}/vscode-snippets"; home.file.".config/nvim".source = simlink "${paths.dotfiles}/neovim"; programs.neovim.enable = false; home.packages = [ neovim ]; }; }