mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
flake-modules -> flake
This commit is contained in:
parent
cf647bc045
commit
998bae9dac
17 changed files with 1 additions and 1 deletions
122
flake/dev/devshell.nix
Normal file
122
flake/dev/devshell.nix
Normal file
|
@ -0,0 +1,122 @@
|
|||
{ lib, inputs, ... }:
|
||||
{
|
||||
imports = lib.optional (inputs.devshell ? flakeModule) inputs.devshell.flakeModule;
|
||||
|
||||
perSystem =
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
self',
|
||||
system,
|
||||
...
|
||||
}:
|
||||
lib.optionalAttrs (inputs.devshell ? flakeModule) {
|
||||
devshells.default = {
|
||||
devshell.startup.pre-commit.text = config.pre-commit.installationScript;
|
||||
|
||||
commands =
|
||||
let
|
||||
# Thanks to this, the user can choose to use `nix-output-monitor` (`nom`) instead of plain `nix`
|
||||
nix = ''$([ "$\{NIXVIM_NOM:-0}" = '1' ] && echo ${pkgs.lib.getExe pkgs.nix-output-monitor} || echo nix)'';
|
||||
in
|
||||
[
|
||||
{
|
||||
name = "checks";
|
||||
help = "Run all nixvim checks";
|
||||
command = ''
|
||||
echo "=> Running all nixvim checks..."
|
||||
|
||||
${nix} flake check "$@"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "tests";
|
||||
help = "Run nixvim tests";
|
||||
command =
|
||||
let
|
||||
launchTest = pkgs.writeShellApplication {
|
||||
name = "launch-tests";
|
||||
runtimeInputs = with pkgs; [
|
||||
getopt
|
||||
jq
|
||||
fzf
|
||||
];
|
||||
|
||||
text = builtins.readFile ./launch-test.sh;
|
||||
};
|
||||
|
||||
tests =
|
||||
let
|
||||
checks' = self'.checks;
|
||||
names = builtins.filter (n: builtins.match "test-.*" n != null) (builtins.attrNames checks');
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
builtins.concatMap (
|
||||
checkName:
|
||||
map (testName: {
|
||||
name = testName;
|
||||
value = "${checkName}.passthru.entries.${testName}";
|
||||
}) (builtins.attrNames checks'.${checkName}.passthru.entries)
|
||||
) names
|
||||
);
|
||||
in
|
||||
''
|
||||
export NIXVIM_SYSTEM=${system}
|
||||
export NIXVIM_NIX_COMMAND=${nix}
|
||||
export NIXVIM_TESTS=${pkgs.writers.writeJSON "tests.json" tests}
|
||||
${lib.getExe launchTest} "$@"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "test-lib";
|
||||
help = "Run nixvim library tests";
|
||||
command = ''
|
||||
echo "=> Running nixvim library tests for the '${system}' architecture..."
|
||||
|
||||
${nix} build .#checks.${system}.lib-tests "$@"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "format";
|
||||
help = "Format the entire codebase";
|
||||
command = "nix fmt";
|
||||
}
|
||||
{
|
||||
name = "docs";
|
||||
help = "Build nixvim documentation";
|
||||
command = ''
|
||||
echo "=> Building nixvim documentation..."
|
||||
|
||||
${nix} build .#docs "$@"
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "serve-docs";
|
||||
help = "Build and serve documentation locally";
|
||||
command = ''
|
||||
echo -e "=> Building nixvim documentation...\n"
|
||||
|
||||
doc_derivation=$(${nix} build .#docs --no-link --print-out-paths)
|
||||
|
||||
echo -e "\n=> Documentation successfully built ('$doc_derivation')"
|
||||
|
||||
echo -e "\n=> You can then open your browser to view the doc\n"
|
||||
|
||||
(cd "$doc_derivation"/share/doc && ${pkgs.lib.getExe pkgs.python3} ${./server.py})
|
||||
'';
|
||||
}
|
||||
{
|
||||
name = "locate-lsp-packages";
|
||||
command = ''${pkgs.python3.interpreter} ${./locate-lsp-packages.py}'';
|
||||
help = "Locate (with nix-index) LSP servers in nixpkgs";
|
||||
}
|
||||
{
|
||||
name = "new-plugin";
|
||||
command = ''${pkgs.python3.interpreter} ${./new-plugin.py} "$@"'';
|
||||
help = "Create a new plugin";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue