Format with nixfmt

This commit is contained in:
Oliver Davies 2024-03-18 20:34:42 +00:00
parent 72dac789ef
commit 1b819937f7
2 changed files with 262 additions and 270 deletions

View file

@ -7,34 +7,23 @@
nixd-nightly.url = "github:nix-community/nixd"; nixd-nightly.url = "github:nix-community/nixd";
}; };
outputs = inputs @ { outputs = inputs@{ self, flake-parts, ... }:
self, flake-parts.lib.mkFlake { inherit inputs; } {
flake-parts, flake = { lib = import ./lib { inherit inputs; }; };
...
}:
flake-parts.lib.mkFlake {inherit inputs;} {
flake = {
lib = import ./lib {inherit inputs;};
};
systems = ["x86_64-linux"]; systems = [ "x86_64-linux" ];
perSystem = { perSystem = { pkgs, self', system, ... }:
pkgs, let
self', default = self.lib.mkVimPlugin { inherit system; };
system, neovim = self.lib.mkNeovim { inherit system; };
... in {
}: let devShells.default =
default = self.lib.mkVimPlugin {inherit system;}; pkgs.mkShell { nativeBuildInputs = [ pkgs.just pkgs.nixfmt ]; };
neovim = self.lib.mkNeovim {inherit system;};
in { packages = { inherit default neovim; };
devShells.default = pkgs.mkShell {
nativeBuildInputs = [pkgs.just]; formatter = pkgs.nixfmt;
}; };
packages = {inherit default neovim;};
formatter = pkgs.alejandra;
};
}; };
} }

View file

@ -1,13 +1,13 @@
{inputs}: let { inputs }:
inherit (inputs.nixpkgs) legacyPackages; let inherit (inputs.nixpkgs) legacyPackages;
in rec { in rec {
mkVimPlugin = {system}: let mkVimPlugin = { system }:
inherit (pkgs) vimUtils; let
inherit (vimUtils) buildVimPlugin; inherit (pkgs) vimUtils;
inherit (vimUtils) buildVimPlugin;
pkgs = legacyPackages.${system}; pkgs = legacyPackages.${system};
in in buildVimPlugin {
buildVimPlugin {
name = "opdavies"; name = "opdavies";
postInstall = '' postInstall = ''
rm -rf $out/.envrc rm -rf $out/.envrc
@ -24,148 +24,148 @@ in rec {
src = ../.; src = ../.;
}; };
mkNeovimPlugins = {system}: let mkNeovimPlugins = { system }:
inherit (pkgs) php82Packages vimPlugins; let
inherit (pkgs.vimUtils) buildVimPlugin; inherit (pkgs) php82Packages vimPlugins;
inherit (pkgs.vimUtils) buildVimPlugin;
pkgs = import inputs.nixpkgs { pkgs = import inputs.nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
pkgs2305 = inputs.nixpkgs-2305.legacyPackages.${system}; pkgs2305 = inputs.nixpkgs-2305.legacyPackages.${system};
customVim = { customVim = {
nvim-tmux-navigation = buildVimPlugin { nvim-tmux-navigation = buildVimPlugin {
name = "nvim-tmux-navigation"; name = "nvim-tmux-navigation";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "alexghergh"; owner = "alexghergh";
repo = "nvim-tmux-navigation"; repo = "nvim-tmux-navigation";
rev = "4898c98702954439233fdaf764c39636681e2861"; rev = "4898c98702954439233fdaf764c39636681e2861";
sha256 = "CxAgQSbOrg/SsQXupwCv8cyZXIB7tkWO+Y6FDtoR8xk="; sha256 = "CxAgQSbOrg/SsQXupwCv8cyZXIB7tkWO+Y6FDtoR8xk=";
};
};
tabline-vim = buildVimPlugin {
name = "tabline-vim";
src = pkgs.fetchFromGitHub {
owner = "mkitt";
repo = "tabline.vim";
rev = "69c9698a3240860adaba93615f44778a9ab724b4";
sha256 = "51b8PxyKqBdeIvmmZyF2hpMBjkyrlZDdTB1opr5JZ7Y=";
};
};
vim-caser = buildVimPlugin {
name = "vim-caser";
src = pkgs.fetchFromGitHub {
owner = "arthurxavierx";
repo = "vim-caser";
rev = "6bc9f41d170711c58e0157d882a5fe8c30f34bf6";
sha256 = "PXAY01O/cHvAdWx3V/pyWFeiV5qJGvLcAKhl5DQc0Ps=";
};
};
vim-heritage = buildVimPlugin {
name = "vim-heritage";
src = pkgs.fetchFromGitHub {
owner = "jessarcher";
repo = "vim-heritage";
rev = "cffa05c78c0991c998adc4504d761b3068547db6";
sha256 = "Lebe5V1XFxn4kSZ+ImZ69Vst9Nbc0N7eA9IzOCijFS0=";
};
};
vim-textobj-xmlattr = buildVimPlugin {
name = "vim-textobj-xmlattr";
src = pkgs.fetchFromGitHub {
owner = "whatyouhide";
repo = "vim-textobj-xmlattr";
rev = "694a297f1d75fd527e87da9769f3c6519a87ebb1";
sha256 = "+91FVP95oh00flINdltqx6qJuijYo56tHIh3J098G2Q=";
};
};
vim-zoom = buildVimPlugin {
name = "vim-zoom";
src = pkgs.fetchFromGitHub {
owner = "dhruvasagar";
repo = "vim-zoom";
rev = "01c737005312c09e0449d6518decf8cedfee32c7";
sha256 = "/ADzScsG0u6RJbEtfO23Gup2NYdhPkExqqOPVcQa7aQ=";
};
}; };
}; };
tabline-vim = buildVimPlugin { opdavies-nvim = mkVimPlugin { inherit system; };
name = "tabline-vim"; in [
src = pkgs.fetchFromGitHub { customVim.nvim-tmux-navigation
owner = "mkitt"; customVim.tabline-vim
repo = "tabline.vim"; customVim.vim-caser
rev = "69c9698a3240860adaba93615f44778a9ab724b4"; customVim.vim-heritage
sha256 = "51b8PxyKqBdeIvmmZyF2hpMBjkyrlZDdTB1opr5JZ7Y="; customVim.vim-textobj-xmlattr
}; customVim.vim-zoom
};
vim-caser = buildVimPlugin { vimPlugins.comment-nvim
name = "vim-caser"; vimPlugins.dial-nvim
src = pkgs.fetchFromGitHub { vimPlugins.fidget-nvim
owner = "arthurxavierx"; vimPlugins.gitsigns-nvim
repo = "vim-caser"; vimPlugins.harpoon
rev = "6bc9f41d170711c58e0157d882a5fe8c30f34bf6"; vimPlugins.impatient-nvim
sha256 = "PXAY01O/cHvAdWx3V/pyWFeiV5qJGvLcAKhl5DQc0Ps="; vimPlugins.mini-nvim
}; vimPlugins.neodev-nvim
}; vimPlugins.nvim-web-devicons
vimPlugins.refactoring-nvim
vimPlugins.rest-nvim
vimPlugins.undotree
vimPlugins.vim-eunuch
vimPlugins.vim-highlightedyank
vimPlugins.vim-just
vimPlugins.vim-nix
vimPlugins.nvim-spectre
vimPlugins.vim-obsession
vimPlugins.vim-pasta
vimPlugins.vim-polyglot
vimPlugins.vim-repeat
vimPlugins.vim-sleuth
vimPlugins.vim-terraform
vimPlugins.vim-textobj-user
vimPlugins.vim-unimpaired
vim-heritage = buildVimPlugin { # {
name = "vim-heritage"; # plugin = vimPlugins.vim-sort-motion;
src = pkgs.fetchFromGitHub { # type = "lua";
owner = "jessarcher"; # config = ''
repo = "vim-heritage"; # vim.g.sort_motion_flags = "ui"
rev = "cffa05c78c0991c998adc4504d761b3068547db6"; # '';
sha256 = "Lebe5V1XFxn4kSZ+ImZ69Vst9Nbc0N7eA9IzOCijFS0="; # }
}; # {
}; # plugin = vimPlugins.treesj;
# type = "lua";
# config = ''
# require "treesj".setup {}
# '';
# }
vimPlugins.vim-sort-motion
vimPlugins.treesj
vim-textobj-xmlattr = buildVimPlugin { # Testing
name = "vim-textobj-xmlattr"; vimPlugins.vim-test
src = pkgs.fetchFromGitHub {
owner = "whatyouhide";
repo = "vim-textobj-xmlattr";
rev = "694a297f1d75fd527e87da9769f3c6519a87ebb1";
sha256 = "+91FVP95oh00flINdltqx6qJuijYo56tHIh3J098G2Q=";
};
};
vim-zoom = buildVimPlugin { # Git
name = "vim-zoom"; vimPlugins.committia-vim
src = pkgs.fetchFromGitHub { vimPlugins.diffview-nvim
owner = "dhruvasagar"; vimPlugins.vim-fugitive
repo = "vim-zoom";
rev = "01c737005312c09e0449d6518decf8cedfee32c7";
sha256 = "/ADzScsG0u6RJbEtfO23Gup2NYdhPkExqqOPVcQa7aQ=";
};
};
};
opdavies-nvim = mkVimPlugin {inherit system;}; # Debugging
in [ vimPlugins.nvim-dap
customVim.nvim-tmux-navigation vimPlugins.nvim-dap-ui
customVim.tabline-vim vimPlugins.nvim-dap-virtual-text
customVim.vim-caser
customVim.vim-heritage
customVim.vim-textobj-xmlattr
customVim.vim-zoom
vimPlugins.comment-nvim # Treesitter
vimPlugins.dial-nvim (vimPlugins.nvim-treesitter.withPlugins (p: [
vimPlugins.fidget-nvim
vimPlugins.gitsigns-nvim
vimPlugins.harpoon
vimPlugins.impatient-nvim
vimPlugins.mini-nvim
vimPlugins.neodev-nvim
vimPlugins.nvim-web-devicons
vimPlugins.refactoring-nvim
vimPlugins.rest-nvim
vimPlugins.undotree
vimPlugins.vim-eunuch
vimPlugins.vim-highlightedyank
vimPlugins.vim-just
vimPlugins.vim-nix
vimPlugins.nvim-spectre
vimPlugins.vim-obsession
vimPlugins.vim-pasta
vimPlugins.vim-polyglot
vimPlugins.vim-repeat
vimPlugins.vim-sleuth
vimPlugins.vim-terraform
vimPlugins.vim-textobj-user
vimPlugins.vim-unimpaired
# {
# plugin = vimPlugins.vim-sort-motion;
# type = "lua";
# config = ''
# vim.g.sort_motion_flags = "ui"
# '';
# }
# {
# plugin = vimPlugins.treesj;
# type = "lua";
# config = ''
# require "treesj".setup {}
# '';
# }
vimPlugins.vim-sort-motion
vimPlugins.treesj
# Testing
vimPlugins.vim-test
# Git
vimPlugins.committia-vim
vimPlugins.diffview-nvim
vimPlugins.vim-fugitive
# Debugging
vimPlugins.nvim-dap
vimPlugins.nvim-dap-ui
vimPlugins.nvim-dap-virtual-text
# Treesitter
(vimPlugins.nvim-treesitter.withPlugins
(p: [
p.bash p.bash
p.comment p.comment
p.css p.css
@ -199,111 +199,112 @@ in rec {
p.xml p.xml
p.yaml p.yaml
])) ]))
vimPlugins.nvim-treesitter-context vimPlugins.nvim-treesitter-context
vimPlugins.nvim-treesitter-textobjects vimPlugins.nvim-treesitter-textobjects
# LSP, linting and formatting # LSP, linting and formatting
vimPlugins.conform-nvim vimPlugins.conform-nvim
vimPlugins.lsp-status-nvim vimPlugins.lsp-status-nvim
vimPlugins.nvim-lint vimPlugins.nvim-lint
vimPlugins.nvim-lspconfig vimPlugins.nvim-lspconfig
# Completion # Completion
pkgs2305.vimPlugins.phpactor pkgs2305.vimPlugins.phpactor
vimPlugins.cmp-buffer vimPlugins.cmp-buffer
vimPlugins.cmp-cmdline vimPlugins.cmp-cmdline
vimPlugins.cmp-nvim-lsp vimPlugins.cmp-nvim-lsp
vimPlugins.cmp-path vimPlugins.cmp-path
vimPlugins.cmp-treesitter vimPlugins.cmp-treesitter
vimPlugins.cmp_luasnip vimPlugins.cmp_luasnip
vimPlugins.lspkind-nvim vimPlugins.lspkind-nvim
vimPlugins.nvim-cmp vimPlugins.nvim-cmp
# Snippets # Snippets
vimPlugins.friendly-snippets vimPlugins.friendly-snippets
vimPlugins.luasnip vimPlugins.luasnip
# Telescope # Telescope
vimPlugins.plenary-nvim vimPlugins.plenary-nvim
vimPlugins.popup-nvim vimPlugins.popup-nvim
vimPlugins.telescope-file-browser-nvim vimPlugins.telescope-file-browser-nvim
vimPlugins.telescope-frecency-nvim vimPlugins.telescope-frecency-nvim
vimPlugins.telescope-fzf-native-nvim vimPlugins.telescope-fzf-native-nvim
vimPlugins.telescope-live-grep-args-nvim vimPlugins.telescope-live-grep-args-nvim
vimPlugins.telescope-nvim vimPlugins.telescope-nvim
vimPlugins.telescope-ui-select-nvim vimPlugins.telescope-ui-select-nvim
# Databases # Databases
vimPlugins.vim-dadbod vimPlugins.vim-dadbod
vimPlugins.vim-dadbod-ui vimPlugins.vim-dadbod-ui
vimPlugins.vim-dadbod-completion vimPlugins.vim-dadbod-completion
vimPlugins.markdown-preview-nvim vimPlugins.markdown-preview-nvim
# # Markdown # # Markdown
# { # {
# plugin = vimPlugins.markdown-preview-nvim; # plugin = vimPlugins.markdown-preview-nvim;
# type = "lua"; # type = "lua";
# config = '' # config = ''
# vim.g.mkdp_refresh_slow = 1 # vim.g.mkdp_refresh_slow = 1
# ''; # '';
# } # }
# Themes # Themes
vimPlugins.catppuccin-nvim vimPlugins.catppuccin-nvim
# Configuration. # Configuration.
opdavies-nvim opdavies-nvim
]; ];
mkExtraPackages = {system}: let mkExtraPackages = { system }:
inherit (inputs) nixd-nightly; let
inherit (pkgs) nodePackages lua54Packages php82Packages; inherit (inputs) nixd-nightly;
inherit (pkgs) nodePackages lua54Packages php82Packages;
pkgs = import inputs.nixpkgs { pkgs = import inputs.nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
in [ in [
# Languages # Languages
nodePackages.typescript nodePackages.typescript
pkgs.php81 pkgs.php81
# Language servers # Language servers
lua54Packages.luacheck lua54Packages.luacheck
nixd-nightly.packages.${system}.nixd nixd-nightly.packages.${system}.nixd
nodePackages."@tailwindcss/language-server" nodePackages."@tailwindcss/language-server"
nodePackages.bash-language-server nodePackages.bash-language-server
nodePackages.dockerfile-language-server-nodejs nodePackages.dockerfile-language-server-nodejs
nodePackages.intelephense nodePackages.intelephense
nodePackages.typescript-language-server nodePackages.typescript-language-server
nodePackages.vls nodePackages.vls
nodePackages.volar nodePackages.volar
nodePackages.vscode-langservers-extracted nodePackages.vscode-langservers-extracted
nodePackages.vue-language-server nodePackages.vue-language-server
nodePackages.yaml-language-server nodePackages.yaml-language-server
pkgs.gopls pkgs.gopls
pkgs.lua-language-server pkgs.lua-language-server
pkgs.phpactor pkgs.phpactor
pkgs.terraform-ls pkgs.terraform-ls
# Formatters # Formatters
pkgs.alejandra pkgs.alejandra
pkgs.black pkgs.black
pkgs.eslint_d pkgs.eslint_d
pkgs.nodePackages.prettier pkgs.nodePackages.prettier
pkgs.stylua pkgs.stylua
# Tools # Tools
nodePackages.jsonlint nodePackages.jsonlint
nodePackages.markdownlint-cli nodePackages.markdownlint-cli
php82Packages.php-codesniffer php82Packages.php-codesniffer
php82Packages.phpstan php82Packages.phpstan
pkgs.html-tidy pkgs.html-tidy
pkgs.proselint pkgs.proselint
pkgs.shellcheck pkgs.shellcheck
]; ];
mkExtraConfig = '' mkExtraConfig = ''
lua << EOF lua << EOF
@ -311,28 +312,30 @@ in rec {
EOF EOF
''; '';
mkNeovim = {system}: let mkNeovim = { system }:
inherit (pkgs) lib neovim; let
extraPackages = mkExtraPackages {inherit system;}; inherit (pkgs) lib neovim;
pkgs = legacyPackages.${system}; extraPackages = mkExtraPackages { inherit system; };
start = mkNeovimPlugins {inherit system;}; pkgs = legacyPackages.${system};
in start = mkNeovimPlugins { inherit system; };
neovim.override { in neovim.override {
configure = { configure = {
customRC = mkExtraConfig; customRC = mkExtraConfig;
packages.main = {inherit start;}; packages.main = { inherit start; };
}; };
extraMakeWrapperArgs = ''--suffix PATH : "${lib.makeBinPath extraPackages}"''; extraMakeWrapperArgs =
''--suffix PATH : "${lib.makeBinPath extraPackages}"'';
}; };
mkHomeManager = {system}: let mkHomeManager = { system }:
extraConfig = mkExtraConfig; let
extraPackages = mkExtraPackages {inherit system;}; extraConfig = mkExtraConfig;
plugins = mkNeovimPlugins {inherit system;}; extraPackages = mkExtraPackages { inherit system; };
in { plugins = mkNeovimPlugins { inherit system; };
inherit extraConfig extraPackages plugins; in {
inherit extraConfig extraPackages plugins;
enable = true; enable = true;
}; };
} }