* Add syntax highlighting for comparison operators
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Confirm
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Split builds per os and per architecture to minimize artifacts size
Fixes#3920
* Add missing if case; Add nightly build updater support
* Fix linux x86_64
* Improve upload filtering
* Attempt to fix matrix
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Test release builds
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Clean up
* Clean up win arm64 builds
* Add temp fake-publish to check on artifacts
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Trigger CI
* Fix win arm
* Clean up
* Remove forced release builds
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Addresses #4080. (Not ready to close it yet.)
# Important
Requires a fix for #4147 before it can work in ZMA.
# Overview
```kcl
// numbers.kcl
export fn inc = (x) => {
return x + 1
}
```
```kcl
import inc from "numbers.kcl"
answer = inc(41)
```
This also implements multiple imports with optional renaming.
```kcl
import inc, dec from "numbers.kcl"
import identity as id, length as len from "utils.kcl"
```
Note: Imported files _must_ be in the same directory.
Things for a follow-up PR:
- #4147. Currently, we cannot read files in WebAssembly, i.e. ZMA.
- Docs
- Should be an error to `import` anywhere besides the top level. Needs parser restructuring to track the context of a "function body".
- Should be an error to have `export` anywhere besides the top level. It has no effect, but we should tell people it's not valid instead of silently ignoring it.
- Error message for cycle detection is funky because the Rust side doesn't actually know the name of the first file. Message will say "b -> a -> b" instead of "a -> b -> a" when "a" is the top-level file.
- Cache imported files so that they don't need to be re-parsed and re-executed.
* CI: Remove rust-cache from static analysis
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Look at this (photo)Graph *in the voice of Nickelback*
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Fixes#4150 by ignoring whitespace before a colon just like how whitespace after a colon is already ignored.
Added snapshot parser::parser_impl::snapshot_tests::bh for a kcl snippet that has whitespace before a colon.
Co-authored-by: 49fl <ircsurfer33@gmail.com>
Closes#4021
Allows array ranges (e.g., `[0..10]`) to take expression instead of just numeric literals as their start and end values. Both expressions are required (we don't support `[0..]`, etc.).
I've created a new kind of expression in the AST. The alternative was to represent the internals of an array as some kind of pattern which could initially be fully explicit or ranges. I figured the chosen version was simpler and easier to extend to open ranges, whereas the latter would be easier to extend to mixed ranges or other patterns. I chose simpler, it'll be easy enough to refactor if necessary.
Parsing is tested implicitly by the tests of execution and unparsing.
---------
Signed-off-by: Nick Cameron <nrc@ncameron.org>
Co-authored-by: Adam Chalmers <adam.chalmers@zoo.dev>
Previously, map was wrapping KCL values in a JSON object unnecessarily. The new `double_map` test would emit this error:
```
Syntax(KclErrorDetails {
source_ranges: [SourceRange([31, 32])],
message: "Invalid number: {\"type\":\"UserVal\",\"value\":1.0,\"__meta\":[{\"sourceRange\":[31,36]}]}"
})
```
In other words, the second `map` statement is being passed an array of JSON STRINGS, not an array of numbers.
The strings contain JSON stringified representations of user values which are numbers.
Bug is now fixed.
Josh Gomez requests pattern calculations take the total number of instances,
not the number of extra repetitions to do. This is how we designed the
patternTransform API, but we didn't do that for patternLinear/Circular.
* Add collapsible element to updater toast notification showing release notes
* Temp create release artifacts to test updater
* Fix tsc error
* Fix some styling, make release notes not appear if no notes are present
* Add component tests
* Remove test release builds
---------
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
* add support for opposite and adjacent edges
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* update playwright
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* update unit tests
* enable button state checker for selections
* typos
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* trigger ci
* fix typo
* remove leave(node)
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* typo
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* pull getEdgeTagCall into a utility function
* mask model-state-indicator
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Rerun CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Rerun CI
* screenshot fix
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Don't mutate the user's `codeBasedSelections` when they apply a multi-selection constraint
* Fix to not mutate the input parameter
* Format
---------
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* Sort selections in order of appearance before applying `transformSecondarySketchLinesTagFirst`
* Add an integration test for this sorting behavior
* Remove console logs from test
* Upload release-notes.md on release
Contributes to #3984
* Test release builds with updater-test-release-notes
* Change to releaseNotesFile conf, tested locally
* Clean up for merge
* Add a loading toast when update download begins
* Temporarily turn on artifact builds to test
* fmt
* Oops forgot to rename where I used a type
* Update src/index.tsx
* Update src/index.tsx
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Add an `update-error` listener
* Flatten autoupdater hooks
* Revert "Temporarily turn on artifact builds to test"
This reverts commit e2e1991977.
* Switch branch to build-publish-apps on to this one
* Make the loading toast not attempt to display a version number
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* fmt
* Update .github/workflows/build-test-publish-apps.yml
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pierre Jacquier <pierrejacquier39@gmail.com>
* Add ID generator to ExecState
* Change default plane IDs to be hardcoded
* Fix lint warning
* Add exposing ID generator as output of executor
* Change to use generated definition of ExecState in TS
* Fix IdGenerator to use camel case in TS
* Fix TS type errors
* Add exposing id_generator parameter
* Add using the previously generated ID generator
* wip: Add display of feature tree in debug pane
* Remove artifact graph augmentation
* Change default planes to use id generator instead of hardcoded UUIDs
* Fix to reuse previously generated IDs
* Add e2e test
* Change feature tree to be collapsed by default
* Remove debug prints
* Fix unit test to use execState
* Fix type to be more general
* Remove outdated comment
* Update derive-docs output
* Fix object display component to be more general
* Remove unused ArtifactId type
* Fix test to be less brittle
* Remove codeRef and pathToNode from display
* Fix to remove test.only
Co-authored-by: Frank Noirot <frank@zoo.dev>
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Move plane conversion code to be next to type
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)"
This reverts commit 3455cc951b.
* Rename file
* Rename components and add doc comments
* Revive the collapse button
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Confirm
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* bug: fixing multiple state issues with the engine and modeling app to enable/disable planes/axis/delete code
* fix: yarn tsc fmt lint xgen
* fix: adding a comment back that I deleted on accident
* fix: adding formatting back?
* fix: reverting syntax
* fix: removing click line tool because the line tool is automatically selected. Clicking this will exit
* fix: Fixed a E2E test that had a line tool workflow with no points
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: 49fl <ircsurfer33@gmail.com>
* fix: added more documentation on the cut and release process
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>