diff --git a/.envrc b/.envrc index ae4dc27..a1d3540 100755 --- a/.envrc +++ b/.envrc @@ -1 +1 @@ -use flake -Lv +use flake . -Lv diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a8aa634..0077427 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,18 +13,12 @@ This project uses ## Development I use [`nix`](https://nixos.org/download.html#download-nix) -for development and testing. +(with flakes enabled) for development and testing. Formatting is done with [`stylua`](https://github.com/JohnnyMorganz/StyLua). To enter a development shell: -```console -nix-shell -``` - -or (with flakes enabled) - ```console nix develop ``` @@ -40,33 +34,43 @@ just run `direnv allow` and you will be dropped in this devShell. ## Tests -To run tests locally +### Running tests -```console -nix-build -A ci -``` +I use [`busted`](https://lunarmodules.github.io/busted/) for testing, +but with Neovim as the Lua interpreter. -or (with flakes enabled) +The easiest way to run tests is with Nix (see below). -```console -nix build .#checks..ci --print-build-logs -``` +If you do not use Nix, you can also run the test suite using `luarocks test`. +For more information on how to set up Neovim as a Lua interpreter, see -For formatting: +- The [neorocks tutorial](https://github.com/nvim-neorocks/neorocks#without-neolua). + +Or + +- [`nlua`](https://github.com/mfussenegger/nlua). + +> [!NOTE] +> +> The Nix devShell sets up `luarocks test` to use Neovim as the interpreter. + +### Running tests and checks with Nix + +If you just want to run all checks that are available, +run: ```console -nix-build -A formatting +nix flake check --print-build-logs ``` -or (with flakes enabled) +To run tests locally ```console -nix build .#checks..formatting --print-build-logs +nix build .#checks..ci --print-build-logs ``` -If you have flakes enabled and just want to run all checks that are available, -run: +For formatting: ```console -nix flake check --print-build-logs +nix build .#checks..formatting --print-build-logs ``` diff --git a/flake.lock b/flake.lock index 7673be8..a14a595 100755 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -53,11 +53,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1696203690, - "narHash": "sha256-774XMEL7VHSTLDYVkqrbl5GCdmkVKsjMs+KLM4N4t7k=", + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "21928e6758af0a258002647d14363d5ffc85545b", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", "type": "github" }, "original": { @@ -71,11 +71,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "type": "github" }, "original": { @@ -184,11 +184,11 @@ "neodev-nvim": { "flake": false, "locked": { - "lastModified": 1696226756, - "narHash": "sha256-+OKggMXkUc2W/TN7tZu6EbYV6POCSqB6MwOSEaVl0gk=", + "lastModified": 1702577150, + "narHash": "sha256-YOTpOwFZTEyDroI+u2YV6oZPssCcq0gfvFYHrep/iu8=", "owner": "folke", "repo": "neodev.nvim", - "rev": "5147640bc8435ca3557a105ebd1143bc20420b60", + "rev": "ef351fae5df2559956398923c5d38c9b64e7d898", "type": "github" }, "original": { @@ -206,11 +206,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1696224247, - "narHash": "sha256-baGYauo7CDuzkOERPefIy2NpDM7r9QhGAsdJCFRJiLY=", + "lastModified": 1702531358, + "narHash": "sha256-7lCbmEeGJYu2x+UPa2DVK+VcK3P5RlqOmevXG4hWfCo=", "owner": "nvim-neorocks", "repo": "neorocks", - "rev": "9779c4d07e6df487a155967ccce7e6b02e3a019a", + "rev": "508096268464badc9a7ab9e3d11d28ecefa68cc1", "type": "github" }, "original": { @@ -229,11 +229,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1696214733, - "narHash": "sha256-2IqDjWfqhy7MbCbFs3GDRYIpfK2usL+CYGfh6uskK/0=", + "lastModified": 1702519619, + "narHash": "sha256-AGQdEbRaOZJ6gV/4DFQYou2RUUjupnjHo2wGGluNhP0=", "owner": "neovim", "repo": "neovim", - "rev": "09a17f91d0d362c6e58bfdbe3ccdeacffb0b44b9", + "rev": "36552adb39edff2d909743f16c1f061bc74b5c4e", "type": "github" }, "original": { @@ -245,11 +245,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1696125185, - "narHash": "sha256-zJTpVLKg5YhbNJdILfBzYGz9zhM4Cjs5ySaD3eVWcTA=", + "lastModified": 1702272962, + "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0396d3b0fb7f62ddc79a506ad3e6124f01d2ed0a", + "rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d", "type": "github" }, "original": { @@ -262,11 +262,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", "type": "github" }, "original": { @@ -311,11 +311,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1696234590, - "narHash": "sha256-mgOzQYTvaTT4bFopVOadlndy2RPwLy60rDjIWOGujwo=", + "lastModified": 1702272962, + "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f902cb49892d300ff15cb237e48aa1cad79d68c3", + "rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d", "type": "github" }, "original": { @@ -353,11 +353,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1696158581, - "narHash": "sha256-h0vY4E7Lx95lpYQbG2w4QH4yG5wCYOvPJzK93wVQbT0=", + "lastModified": 1702456155, + "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "033453f85064ccac434dfd957f95d8457901ecd6", + "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", "type": "github" }, "original": { @@ -375,11 +375,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1696158581, - "narHash": "sha256-h0vY4E7Lx95lpYQbG2w4QH4yG5wCYOvPJzK93wVQbT0=", + "lastModified": 1702456155, + "narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "033453f85064ccac434dfd957f95d8457901ecd6", + "rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e19909e..a0c1cd8 100755 --- a/flake.nix +++ b/flake.nix @@ -104,13 +104,20 @@ }; }; - devShell = pkgs.mkShell { + devShell = pkgs.nvim-nightly-tests.overrideAttrs (oa: { name = "devShell"; # TODO: Choose a name inherit (pre-commit-check) shellHook; - buildInputs = with pkgs; [ - zlib - ]; - }; + buildInputs = with pre-commit-hooks.packages.${system}; + [ + alejandra + lua-language-server + stylua + luacheck + editorconfig-checker + markdownlint-cli + ] + ++ oa.buildInputs; + }); in { devShells = { default = devShell;