diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..247a291 --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +source_url "https://raw.githubusercontent.com/cachix/devenv/95f329d49a8a5289d31e0982652f7058a189bfca/direnvrc" "sha256-d+8cBpDfDBj41inrADaJt+bDWhOktwslgoP5YiGJ1v0=" + +use devenv diff --git a/.gitignore b/.gitignore index 40e5032..61fb62a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ /_/ + +.devenv* +.direnv diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e02a1d6..715994c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,7 @@ { - "recommendations": ["esbenp.prettier-vscode", "jnoortheen.nix-ide"] + "recommendations": [ + "esbenp.prettier-vscode", + "jnoortheen.nix-ide", + "mkhl.direnv" + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 21ad8b5..b734ecf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,7 @@ "editor.formatOnSave": true, + "nix.formatterPath": "nixpkgs-fmt", "nix.enableLanguageServer": true, "nix.serverPath": "nixd", diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..2305638 --- /dev/null +++ b/devenv.lock @@ -0,0 +1,116 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1728740426, + "owner": "cachix", + "repo": "devenv", + "rev": "ef61728d91ad5eb91f86cdbcc16070602e7afa16", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1728538411, + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1728627514, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c505ebf777526041d792a49d5f6dd4095ea391a7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1728778939, + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..7de7593 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: + +{ + packages = with pkgs; [ + nixfmt-rfc-style + ]; + + # https://github.com/cachix/devenv/blob/main/src/modules/languages/nix.nix + # https://devenv.sh/supported-languages/nix + languages.nix = { + enable = true; + lsp.package = pkgs.nixd; + }; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..397b9cb --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,7 @@ +# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json + +inputs: + nixpkgs: + url: github:nixos/nixpkgs/nixpkgs-unstable + +allowUnfree: true