make sure the nix flake never breaks (#6273)
make sure teh nix flake never breaks Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
55
.github/workflows/nix.yml
vendored
Normal file
55
.github/workflows/nix.yml
vendored
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
name: Test Nix Flake
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
jobs:
|
||||||
|
nix-flake-check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- uses: cachix/install-nix-action@v31
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
|
||||||
|
- name: nix flake check for all platforms
|
||||||
|
run: |
|
||||||
|
nix flake check --all-systems
|
||||||
|
|
||||||
|
nix-build-linux:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- uses: cachix/install-nix-action@v31
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
|
||||||
|
- name: nix build . for x86_64-linux
|
||||||
|
run: nix build .
|
||||||
|
|
||||||
|
nix-build-macos:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- uses: cachix/install-nix-action@v31
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
|
||||||
|
- name: nix build . for x86_64-darwin
|
||||||
|
run: nix build .
|
||||||
|
|
24
flake.lock
generated
24
flake.lock
generated
@ -20,11 +20,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744096231,
|
"lastModified": 1744157173,
|
||||||
"narHash": "sha256-kUfx3FKU1Etnua3EaKvpeuXs7zoFiAcli1gBwkPvGSs=",
|
"narHash": "sha256-bWSjxDwq7iVePrhmA7tY2dyMWHuNJo8knkO4y+q4ZkY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b2b0718004cc9a5bca610326de0a82e6ea75920b",
|
"rev": "6a39c6e495eefabc935d8ddf66aa45d85b85fa3f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -36,11 +36,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736320768,
|
"lastModified": 1744157173,
|
||||||
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
|
"narHash": "sha256-bWSjxDwq7iVePrhmA7tY2dyMWHuNJo8knkO4y+q4ZkY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
|
"rev": "6a39c6e495eefabc935d8ddf66aa45d85b85fa3f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -52,11 +52,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728538411,
|
"lastModified": 1736320768,
|
||||||
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
|
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
|
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -78,11 +78,11 @@
|
|||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736476219,
|
"lastModified": 1744338850,
|
||||||
"narHash": "sha256-+qyv3QqdZCdZ3cSO/cbpEY6tntyYjfe1bB12mdpNFaY=",
|
"narHash": "sha256-pwMIVmsb8fjjT92n5XFDqCsplcX70qVMMT7NulumPXs=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "de30cc5963da22e9742bbbbb9a3344570ed237b9",
|
"rev": "5e64aecc018e6f775572609e7d7485fdba6985a7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
extensions = ["rustfmt" "llvm-tools-preview" "rust-src"];
|
extensions = ["rustfmt" "llvm-tools-preview" "rust-src"];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(self: super: {
|
|
||||||
cargo-llvm-cov = super.cargo-llvm-cov.overrideAttrs (oa: {
|
|
||||||
doCheck = false;
|
|
||||||
doInstallCheck = false;
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
allSystems = [
|
allSystems = [
|
||||||
@ -41,7 +35,6 @@
|
|||||||
f {
|
f {
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit overlays system;
|
inherit overlays system;
|
||||||
config.allowBroken = true;
|
|
||||||
};
|
};
|
||||||
system = system;
|
system = system;
|
||||||
});
|
});
|
||||||
@ -51,7 +44,6 @@
|
|||||||
packages =
|
packages =
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
rustToolchain
|
rustToolchain
|
||||||
cargo-llvm-cov
|
|
||||||
cargo-nextest
|
cargo-nextest
|
||||||
just
|
just
|
||||||
postgresql.lib
|
postgresql.lib
|
||||||
|
24
rust/Cargo.lock
generated
24
rust/Cargo.lock
generated
@ -1780,7 +1780,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1791,7 +1791,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"Inflector",
|
"Inflector",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -1810,7 +1810,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -1819,7 +1819,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
version = "0.2.59"
|
version = "0.2.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1840,7 +1840,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@ -1860,7 +1860,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
version = "0.2.59"
|
version = "0.2.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"approx 0.5.1",
|
"approx 0.5.1",
|
||||||
@ -1928,7 +1928,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-python-bindings"
|
name = "kcl-python-bindings"
|
||||||
version = "0.3.59"
|
version = "0.3.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"kcl-lib",
|
"kcl-lib",
|
||||||
@ -1943,7 +1943,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-test-server"
|
name = "kcl-test-server"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hyper 0.14.32",
|
"hyper 0.14.32",
|
||||||
@ -1956,7 +1956,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-to-core"
|
name = "kcl-to-core"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -1970,7 +1970,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kcl-wasm-lib"
|
name = "kcl-wasm-lib"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bson",
|
"bson",
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
@ -2033,9 +2033,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "kittycad-modeling-cmds"
|
name = "kittycad-modeling-cmds"
|
||||||
version = "0.2.112"
|
version = "0.2.113"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "08f06b4eb4e98ded7cda21586347baeb8055c4898f609f55f7c544cfed2b229c"
|
checksum = "fa1c927569925425a1b03711617c384a30cb7554394e8a6a01266910b22421de"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -36,7 +36,7 @@ dashmap = { version = "6.1.0" }
|
|||||||
http = "1"
|
http = "1"
|
||||||
indexmap = "2.7.0"
|
indexmap = "2.7.0"
|
||||||
kittycad = { version = "0.3.36", default-features = false, features = ["js", "requests"] }
|
kittycad = { version = "0.3.36", default-features = false, features = ["js", "requests"] }
|
||||||
kittycad-modeling-cmds = { version = "0.2.112", features = ["ts-rs", "websocket"] }
|
kittycad-modeling-cmds = { version = "0.2.113", features = ["ts-rs", "websocket"] }
|
||||||
lazy_static = "1.5.0"
|
lazy_static = "1.5.0"
|
||||||
miette = "7.5.0"
|
miette = "7.5.0"
|
||||||
pyo3 = { version = "0.24.0" }
|
pyo3 = { version = "0.24.0" }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "kcl-bumper"
|
name = "kcl-bumper"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/KittyCAD/modeling-api"
|
repository = "https://github.com/KittyCAD/modeling-api"
|
||||||
rust-version = "1.76"
|
rust-version = "1.76"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-derive-docs"
|
name = "kcl-derive-docs"
|
||||||
description = "A tool for generating documentation from Rust derive macros"
|
description = "A tool for generating documentation from Rust derive macros"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-directory-test-macro"
|
name = "kcl-directory-test-macro"
|
||||||
description = "A tool for generating tests from a directory of kcl files"
|
description = "A tool for generating tests from a directory of kcl files"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-language-server-release"
|
name = "kcl-language-server-release"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
publish = false
|
publish = false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = "kcl-language-server"
|
name = "kcl-language-server"
|
||||||
description = "A language server for KCL."
|
description = "A language server for KCL."
|
||||||
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
authors = ["KittyCAD Inc <kcl@kittycad.io>"]
|
||||||
version = "0.2.59"
|
version = "0.2.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-lib"
|
name = "kcl-lib"
|
||||||
description = "KittyCAD Language implementation and tools"
|
description = "KittyCAD Language implementation and tools"
|
||||||
version = "0.2.59"
|
version = "0.2.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -444,7 +444,6 @@ impl FnData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
pub(super) fn to_autocomplete_snippet(&self) -> String {
|
pub(super) fn to_autocomplete_snippet(&self) -> String {
|
||||||
if self.name == "loft" {
|
if self.name == "loft" {
|
||||||
return "loft([${0:sketch000}, ${1:sketch001}])".to_owned();
|
return "loft([${0:sketch000}, ${1:sketch001}])".to_owned();
|
||||||
|
@ -498,10 +498,15 @@ pub trait StdLibFn: std::fmt::Debug + Send + Sync {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn to_autocomplete_snippet(&self) -> Result<String> {
|
fn to_autocomplete_snippet(&self) -> Result<String> {
|
||||||
if self.name() == "loft" {
|
if self.name() == "loft" {
|
||||||
return Ok("loft([${0:sketch000}, ${1:sketch001}])".to_string());
|
return Ok("loft([${0:sketch000}, ${1:sketch001}])".to_string());
|
||||||
|
} else if self.name() == "union" {
|
||||||
|
return Ok("union([${0:extrude001}, ${1:extrude002}])".to_string());
|
||||||
|
} else if self.name() == "subtract" {
|
||||||
|
return Ok("subtract([${0:extrude001}], tools = [${1:extrude002}])".to_string());
|
||||||
|
} else if self.name() == "intersect" {
|
||||||
|
return Ok("intersect([${0:extrude001}, ${1:extrude002}])".to_string());
|
||||||
} else if self.name() == "hole" {
|
} else if self.name() == "hole" {
|
||||||
return Ok("hole(${0:holeSketch}, ${1:%})".to_string());
|
return Ok("hole(${0:holeSketch}, ${1:%})".to_string());
|
||||||
}
|
}
|
||||||
@ -888,7 +893,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_line() {
|
fn get_autocomplete_snippet_line() {
|
||||||
let line_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Line);
|
let line_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Line);
|
||||||
let snippet = line_fn.to_autocomplete_snippet().unwrap();
|
let snippet = line_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -896,7 +900,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_extrude() {
|
fn get_autocomplete_snippet_extrude() {
|
||||||
let extrude_fn: Box<dyn StdLibFn> = Box::new(crate::std::extrude::Extrude);
|
let extrude_fn: Box<dyn StdLibFn> = Box::new(crate::std::extrude::Extrude);
|
||||||
let snippet = extrude_fn.to_autocomplete_snippet().unwrap();
|
let snippet = extrude_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -904,7 +907,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_fillet() {
|
fn get_autocomplete_snippet_fillet() {
|
||||||
let fillet_fn: Box<dyn StdLibFn> = Box::new(crate::std::fillet::Fillet);
|
let fillet_fn: Box<dyn StdLibFn> = Box::new(crate::std::fillet::Fillet);
|
||||||
let snippet = fillet_fn.to_autocomplete_snippet().unwrap();
|
let snippet = fillet_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -922,7 +924,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_pattern_circular_3d() {
|
fn get_autocomplete_snippet_pattern_circular_3d() {
|
||||||
// We test this one specifically because it has ints and floats and strings.
|
// We test this one specifically because it has ints and floats and strings.
|
||||||
let pattern_fn: Box<dyn StdLibFn> = Box::new(crate::std::patterns::PatternCircular3D);
|
let pattern_fn: Box<dyn StdLibFn> = Box::new(crate::std::patterns::PatternCircular3D);
|
||||||
@ -944,7 +945,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_circle() {
|
fn get_autocomplete_snippet_circle() {
|
||||||
let data = kcl_doc::walk_prelude();
|
let data = kcl_doc::walk_prelude();
|
||||||
let DocData::Fn(circle_fn) = data.into_iter().find(|d| d.name() == "circle").unwrap() else {
|
let DocData::Fn(circle_fn) = data.into_iter().find(|d| d.name() == "circle").unwrap() else {
|
||||||
@ -958,7 +958,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_arc() {
|
fn get_autocomplete_snippet_arc() {
|
||||||
let arc_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Arc);
|
let arc_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Arc);
|
||||||
let snippet = arc_fn.to_autocomplete_snippet().unwrap();
|
let snippet = arc_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -980,7 +979,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_pattern_linear_2d() {
|
fn get_autocomplete_snippet_pattern_linear_2d() {
|
||||||
let pattern_fn: Box<dyn StdLibFn> = Box::new(crate::std::patterns::PatternLinear2D);
|
let pattern_fn: Box<dyn StdLibFn> = Box::new(crate::std::patterns::PatternLinear2D);
|
||||||
let snippet = pattern_fn.to_autocomplete_snippet().unwrap();
|
let snippet = pattern_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1001,7 +999,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_loft() {
|
fn get_autocomplete_snippet_loft() {
|
||||||
let loft_fn: Box<dyn StdLibFn> = Box::new(crate::std::loft::Loft);
|
let loft_fn: Box<dyn StdLibFn> = Box::new(crate::std::loft::Loft);
|
||||||
let snippet = loft_fn.to_autocomplete_snippet().unwrap();
|
let snippet = loft_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1009,7 +1006,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_sweep() {
|
fn get_autocomplete_snippet_sweep() {
|
||||||
let sweep_fn: Box<dyn StdLibFn> = Box::new(crate::std::sweep::Sweep);
|
let sweep_fn: Box<dyn StdLibFn> = Box::new(crate::std::sweep::Sweep);
|
||||||
let snippet = sweep_fn.to_autocomplete_snippet().unwrap();
|
let snippet = sweep_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1017,7 +1013,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_hole() {
|
fn get_autocomplete_snippet_hole() {
|
||||||
let hole_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Hole);
|
let hole_fn: Box<dyn StdLibFn> = Box::new(crate::std::sketch::Hole);
|
||||||
let snippet = hole_fn.to_autocomplete_snippet().unwrap();
|
let snippet = hole_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1025,7 +1020,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_helix() {
|
fn get_autocomplete_snippet_helix() {
|
||||||
let data = kcl_doc::walk_prelude();
|
let data = kcl_doc::walk_prelude();
|
||||||
let DocData::Fn(helix_fn) = data.into_iter().find(|d| d.name() == "helix").unwrap() else {
|
let DocData::Fn(helix_fn) = data.into_iter().find(|d| d.name() == "helix").unwrap() else {
|
||||||
@ -1039,31 +1033,27 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_union() {
|
fn get_autocomplete_snippet_union() {
|
||||||
let union_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Union);
|
let union_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Union);
|
||||||
let snippet = union_fn.to_autocomplete_snippet().unwrap();
|
let snippet = union_fn.to_autocomplete_snippet().unwrap();
|
||||||
assert_eq!(snippet, r#"union(${0:%})"#);
|
assert_eq!(snippet, r#"union([${0:extrude001}, ${1:extrude002}])"#);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_subtract() {
|
fn get_autocomplete_snippet_subtract() {
|
||||||
let subtract_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Subtract);
|
let subtract_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Subtract);
|
||||||
let snippet = subtract_fn.to_autocomplete_snippet().unwrap();
|
let snippet = subtract_fn.to_autocomplete_snippet().unwrap();
|
||||||
assert_eq!(snippet, r#"subtract(${0:%}, tools = ${1:%})"#);
|
assert_eq!(snippet, r#"subtract([${0:extrude001}], tools = [${1:extrude002}])"#);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_intersect() {
|
fn get_autocomplete_snippet_intersect() {
|
||||||
let intersect_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Intersect);
|
let intersect_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Intersect);
|
||||||
let snippet = intersect_fn.to_autocomplete_snippet().unwrap();
|
let snippet = intersect_fn.to_autocomplete_snippet().unwrap();
|
||||||
assert_eq!(snippet, r#"intersect(${0:%})"#);
|
assert_eq!(snippet, r#"intersect([${0:extrude001}, ${1:extrude002}])"#);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_get_common_edge() {
|
fn get_autocomplete_snippet_get_common_edge() {
|
||||||
let get_common_edge_fn: Box<dyn StdLibFn> = Box::new(crate::std::edge::GetCommonEdge);
|
let get_common_edge_fn: Box<dyn StdLibFn> = Box::new(crate::std::edge::GetCommonEdge);
|
||||||
let snippet = get_common_edge_fn.to_autocomplete_snippet().unwrap();
|
let snippet = get_common_edge_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1076,7 +1066,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_scale() {
|
fn get_autocomplete_snippet_scale() {
|
||||||
let scale_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Scale);
|
let scale_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Scale);
|
||||||
let snippet = scale_fn.to_autocomplete_snippet().unwrap();
|
let snippet = scale_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1084,7 +1073,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_translate() {
|
fn get_autocomplete_snippet_translate() {
|
||||||
let translate_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Translate);
|
let translate_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Translate);
|
||||||
let snippet = translate_fn.to_autocomplete_snippet().unwrap();
|
let snippet = translate_fn.to_autocomplete_snippet().unwrap();
|
||||||
@ -1095,7 +1083,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[allow(clippy::literal_string_with_formatting_args)]
|
|
||||||
fn get_autocomplete_snippet_rotate() {
|
fn get_autocomplete_snippet_rotate() {
|
||||||
let rotate_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Rotate);
|
let rotate_fn: Box<dyn StdLibFn> = Box::new(crate::std::transform::Rotate);
|
||||||
let snippet = rotate_fn.to_autocomplete_snippet().unwrap();
|
let snippet = rotate_fn.to_autocomplete_snippet().unwrap();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-python-bindings"
|
name = "kcl-python-bindings"
|
||||||
version = "0.3.59"
|
version = "0.3.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/kittycad/modeling-app"
|
repository = "https://github.com/kittycad/modeling-app"
|
||||||
exclude = ["tests/*", "files/*", "venv/*"]
|
exclude = ["tests/*", "files/*", "venv/*"]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-test-server"
|
name = "kcl-test-server"
|
||||||
description = "A test server for KCL"
|
description = "A test server for KCL"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-to-core"
|
name = "kcl-to-core"
|
||||||
description = "Utility methods to convert kcl to engine core executable tests"
|
description = "Utility methods to convert kcl to engine core executable tests"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "kcl-wasm-lib"
|
name = "kcl-wasm-lib"
|
||||||
version = "0.1.59"
|
version = "0.1.60"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/KittyCAD/modeling-app"
|
repository = "https://github.com/KittyCAD/modeling-app"
|
||||||
rust-version = "1.83"
|
rust-version = "1.83"
|
||||||
|
Reference in New Issue
Block a user