flake.nix 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. {
  2. description = "Neovim configuration";
  3. outputs = { self, nixpkgs }: {
  4. packages.x86_64-linux.default =
  5. with nixpkgs.legacyPackages.x86_64-linux;
  6. let
  7. seti-vim = vimUtils.buildVimPlugin {
  8. pname = "seti.vim";
  9. version = "1.0.0";
  10. src = fetchFromGitHub {
  11. owner = "trusktr";
  12. repo = "seti.vim";
  13. rev = "a4781817e75a627b54403a92683516aee6230091";
  14. sha256 = "sha256-3XIEKC0fs9v2a73qcbWA+b9gvCbCaHwGs0uoAn9mprg=";
  15. };
  16. };
  17. extraPath = [
  18. fzf
  19. nodePackages.typescript-language-server
  20. nodePackages.eslint_d
  21. ];
  22. in
  23. neovim.override {
  24. extraMakeWrapperArgs = "--prefix PATH : ${lib.makeBinPath extraPath}";
  25. configure = {
  26. customRC = ''
  27. source ${./vimrc}
  28. source ${./init.lua}
  29. '';
  30. packages.myVimPackage = with vimPlugins; {
  31. start = [
  32. vim-sensible
  33. vim-sleuth
  34. vim-fugitive
  35. vim-surround
  36. vim-abolish
  37. undotree
  38. vim-merginal
  39. fzf-vim
  40. mini-nvim
  41. gitsigns-nvim
  42. seti-vim
  43. (nvim-treesitter.withPlugins (p: with p; [
  44. tree-sitter-css
  45. tree-sitter-go
  46. tree-sitter-javascript
  47. tree-sitter-json
  48. tree-sitter-lua
  49. tree-sitter-nix
  50. tree-sitter-ruby
  51. tree-sitter-tsx
  52. tree-sitter-typescript
  53. ]))
  54. nvim-lspconfig
  55. nvim-lsp-ts-utils
  56. null-ls-nvim
  57. ];
  58. };
  59. };
  60. };
  61. };
  62. }