From a9d84e22107eeccfef8ce9f5456ed49a086414ae Mon Sep 17 00:00:00 2001 From: figsoda Date: Tue, 7 Mar 2023 23:08:06 -0500 Subject: [PATCH 1/3] Consider system attributes when typing flake outputs --- crates/ide/src/ty/known.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/ide/src/ty/known.rs b/crates/ide/src/ty/known.rs index a8860ab..6fe2dcb 100644 --- a/crates/ide/src/ty/known.rs +++ b/crates/ide/src/ty/known.rs @@ -115,8 +115,10 @@ pub fn flake(inputs: &[&str]) -> Ty { } }, "devShells": { - "default": derivation, - _: derivation + _: { + "default": derivation, + _: derivation + } }, "formatter": { _: derivation @@ -143,8 +145,10 @@ pub fn flake(inputs: &[&str]) -> Ty { _: ({ } -> { } -> { }) }, "packages": { - "default": derivation, - _: derivation + _: { + "default": derivation, + _: derivation + } }, "templates": { "default": { "description": string, "path": string }, From b168c81264b79f1199465dd20e16110234a7cac4 Mon Sep 17 00:00:00 2001 From: figsoda Date: Tue, 7 Mar 2023 23:17:45 -0500 Subject: [PATCH 2/3] Correct and extend types for nixosConfigurations --- crates/ide/src/ty/known.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/ide/src/ty/known.rs b/crates/ide/src/ty/known.rs index 6fe2dcb..81e1fb0 100644 --- a/crates/ide/src/ty/known.rs +++ b/crates/ide/src/ty/known.rs @@ -134,7 +134,19 @@ pub fn flake(inputs: &[&str]) -> Ty { } }, "nixosConfigurations": { - _: derivation + _: { + "config": { }, + "extendModules": + ({ + "modules": [?], + "specialArgs": { }, + "prefix": [string] + } -> { }), + "extraArgs": { }, + "options": { }, + "pkgs": { }, + "type": { } + } }, "nixosModules": { "default": ({ "config": { } } -> { "options": { }, "config": { } }), From 35ed766b9ec04e2a940dabf929fc284caa154226 Mon Sep 17 00:00:00 2001 From: figsoda Date: Wed, 8 Mar 2023 08:15:18 -0500 Subject: [PATCH 3/3] Briefly document `_` attributes --- crates/ide/src/ty/known.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/ide/src/ty/known.rs b/crates/ide/src/ty/known.rs index 81e1fb0..9a03ec0 100644 --- a/crates/ide/src/ty/known.rs +++ b/crates/ide/src/ty/known.rs @@ -104,36 +104,47 @@ pub fn flake(inputs: &[&str]) -> Ty { // https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-develop.html?highlight=flake#flake-output-attributes "outputs": ((#outputs_param_ty) -> { "apps": { + // System _: { "default": { "type": string, "program": string }, + // Name _: { "type": string, "program": string } } }, "checks": { + // System _: { + // Name _: derivation } }, "devShells": { + // System _: { "default": derivation, + // Name _: derivation } }, "formatter": { + // System _: derivation }, "hydraJobs": { + // Name _: { + // System _: derivation } }, "legacyPackages": { + // System _: { _: ? } }, "nixosConfigurations": { + // Name _: { "config": { }, "extendModules": @@ -150,20 +161,25 @@ pub fn flake(inputs: &[&str]) -> Ty { }, "nixosModules": { "default": ({ "config": { } } -> { "options": { }, "config": { } }), + // Name _: ({ "config": { } } -> { "options": { }, "config": { } }) }, "overlays": { "default": ({ } -> { } -> { }), + // Name _: ({ } -> { } -> { }) }, "packages": { + // System _: { "default": derivation, + // Name _: derivation } }, "templates": { "default": { "description": string, "path": string }, + // Name _: { "description": string, "path": string } }, }),