Add and use alejandra to format Nix files

This commit is contained in:
Oliver Davies 2024-02-13 21:47:56 +00:00
parent b55886673f
commit 98737c69e9
3 changed files with 274 additions and 272 deletions

View file

@ -1,23 +1,34 @@
{ {
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = inputs@{ self, flake-parts, ... }: outputs = inputs @ {
flake-parts.lib.mkFlake { inherit inputs; } { self,
flake-parts,
...
}:
flake-parts.lib.mkFlake {inherit inputs;} {
flake = { flake = {
lib = import ./lib { inherit inputs; }; lib = import ./lib {inherit inputs;};
}; };
systems = [ "x86_64-linux" ]; systems = ["x86_64-linux"];
perSystem = { pkgs, self', system, ... }: perSystem = {
let pkgs,
default = self.lib.mkVimPlugin { inherit system; }; self',
neovim = self.lib.mkNeovim { inherit system; }; system,
in ...
{ }: let
packages = { inherit default neovim; }; default = self.lib.mkVimPlugin {inherit system;};
neovim = self.lib.mkNeovim {inherit system;};
in {
devShells.default = pkgs.mkShell {
nativeBuildInputs = [pkgs.just];
};
formatter = pkgs.nixpkgs-fmt; packages = {inherit default neovim;};
formatter = pkgs.alejandra;
}; };
}; };
} }

View file

@ -1,11 +1,7 @@
{ inputs }: {inputs}: let
let
inherit (inputs.nixpkgs) legacyPackages; inherit (inputs.nixpkgs) legacyPackages;
in in rec {
rec { mkVimPlugin = {system}: let
mkVimPlugin = { system }:
let
inherit (pkgs) vimUtils; inherit (pkgs) vimUtils;
inherit (vimUtils) buildVimPlugin; inherit (vimUtils) buildVimPlugin;
pkgs = legacyPackages.${system}; pkgs = legacyPackages.${system};
@ -25,15 +21,14 @@ rec {
src = ../.; src = ../.;
}; };
mkNeovimPlugins = { system }: mkNeovimPlugins = {system}: let
let
inherit (pkgs) vimPlugins; inherit (pkgs) vimPlugins;
pkgs = (import inputs.nixpkgs { pkgs = import inputs.nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}); };
customVim = { customVim = {
tabline-vim = pkgs.vimUtils.buildVimPlugin { tabline-vim = pkgs.vimUtils.buildVimPlugin {
@ -97,9 +92,8 @@ rec {
}; };
}; };
opdavies-nvim = mkVimPlugin { inherit system; }; opdavies-nvim = mkVimPlugin {inherit system;};
in in [
[
customVim.tabline-vim customVim.tabline-vim
customVim.vim-caser customVim.vim-caser
customVim.vim-heritage customVim.vim-heritage
@ -236,17 +230,15 @@ rec {
opdavies-nvim opdavies-nvim
]; ];
mkExtraPackages = { system }: mkExtraPackages = {system}: let
let
inherit (pkgs) nodePackages; inherit (pkgs) nodePackages;
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
@ -272,6 +264,7 @@ rec {
pkgs.terraform-ls pkgs.terraform-ls
# Formatters # Formatters
pkgs.alejandra
pkgs.black pkgs.black
pkgs.nodePackages.prettier pkgs.nodePackages.prettier
pkgs.stylua pkgs.stylua
@ -292,29 +285,26 @@ rec {
EOF EOF
''; '';
mkNeovim = { system }: mkNeovim = {system}: let
let
inherit (pkgs) lib neovim; inherit (pkgs) lib neovim;
extraPackages = mkExtraPackages { inherit system; }; extraPackages = mkExtraPackages {inherit system;};
pkgs = legacyPackages.${system}; pkgs = legacyPackages.${system};
start = mkNeovimPlugins { inherit system; }; start = mkNeovimPlugins {inherit system;};
in in
neovim.override { 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 }: mkHomeManager = {system}: let
let
extraConfig = mkExtraConfig; extraConfig = mkExtraConfig;
extraPackages = mkExtraPackages { inherit system; }; extraPackages = mkExtraPackages {inherit system;};
plugins = mkNeovimPlugins { inherit system; }; plugins = mkNeovimPlugins {inherit system;};
in in {
{
inherit extraConfig extraPackages plugins; inherit extraConfig extraPackages plugins;
enable = true; enable = true;

View file

@ -11,6 +11,7 @@ null_ls.setup {
sources = { sources = {
code_actions.gitsigns, code_actions.gitsigns,
formatting.alejandra,
formatting.black, formatting.black,
formatting.markdownlint, formatting.markdownlint,
formatting.phpcbf.with { formatting.phpcbf.with {