{ description = "preview.nvim — async document compilation for Neovim"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; systems.url = "github:nix-systems/default"; }; outputs = { nixpkgs, systems, ... }: let forEachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system}); in { formatter = forEachSystem (pkgs: pkgs.nixfmt-tree); devShells = forEachSystem ( pkgs: let devTools = [ (pkgs.luajit.withPackages ( ps: with ps; [ busted nlua ] )) pkgs.prettier pkgs.stylua pkgs.selene pkgs.lua-language-server ]; okular-wrapped = pkgs.symlinkJoin { name = "okular"; paths = [ pkgs.kdePackages.okular ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/okular \ --prefix XDG_DATA_DIRS : "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" \ --prefix XDG_DATA_DIRS : "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}" ''; }; in { default = pkgs.mkShell { packages = devTools; }; presets = pkgs.mkShell { packages = devTools ++ [ pkgs.typst pkgs.texliveMedium pkgs.tectonic pkgs.pandoc pkgs.asciidoctor pkgs.quarto pkgs.plantuml pkgs.mermaid-cli pkgs.zathura pkgs.sioyek okular-wrapped ]; }; } ); }; }