* Buffer file writes, because writing to file after every keypress does bad things
* fix: kevin -- added timeouts for the time being since the workflow for saving data to disk is now changed
---------
Co-authored-by: Kevin Nadro <kevin@zoo.dev>
* Fix test settings to actually get used
Co-authored-by: Frank Noirot <frank@zoo.dev>
* Export file size changed out from under us again, relax this test to just be above a reasonable size
* Missed on updated export expectation
* Wrong check, should just be greater than
* Fix E2E test, remove console log
* fmt
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Sketchy rectangle commit fix
* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)
* Re-run CI
* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)
* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"
This reverts commit 2ace7a3b0e.
* 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)
* Bump timeouts for snapshots
* 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)
* Re-run CI
---------
Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Revert "KCL: Fix duplicate 'type' key"
This reverts commit f650281855.
* Revert "Remove duplicate "type" field in the snapshots (#4211)"
This reverts commit 824b4c823e.
* Remove duplicate "type" field in the snapshots
* 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>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
* 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