Releases: nicklockwood/ShapeScript
Releases · nicklockwood/ShapeScript
1.3.7
- Added debug command for highlighting invisible geometry
- Custom blocks can now return any value type, not just meshes or paths
- Infix expressions are now handled correctly when used in a statement position
- Improved type mismatch error messages for block parameters
- String values are no longer nullable and empty strings are handled more correctly
- Nested command calls without parentheses are now handled correctly
- Improved type reporting for single-value tuples in error messages
- Updated print behavior to better match text interpolation
1.3.6
- Added text interpolation, allowing text strings to be constructed dynamically
- Import and textures file paths can now be constructed dynamically
- Alpha component of colors can now be overridden with a convenient syntax
- Removed confusing references to "string" and "identifier" from error messages
- Added ability to load text fonts from a file name or path
- Fixed bug where font getter returned texture instead
- Improved help documentation
1.3.5
- Numbers can now be used in text blocks
- Fixed bug with times/divide operator associativity
- Fixed default zoom level in viewer when axes are shown
- Fixed bug in scene bounds calculation when children have a transform applied
- Improved error message for missing files specified by full path
- Limited maximum lineWidth when rendering paths
1.3.4
- The position/size/orientation options can now be used inside
text
blocks - Fixed parsing error when using inline expressions in loop range
- Unsupported string escape sequences are now treated as an error
- Command parameters are now included in assertion failure error highlighting
- Fixed bug with sequential escape sequences in text
1.3.3
- Fixed crash when font is set to an empty string
- Fixed incorrect suggestion of
option
for typos in contexts where it isn't available - Print logging in a long/infinite loop no longer freezes UI
- Help index is now generated automatically
- Improved help for colors and text
1.3.2
- Added stack overflow detection, preventing crashes due to infinite recursion
- Added support for underscores in identifiers
- Empty and single-element tuples are now permitted (useful in loops and data structures)
- Looping over vector, size and color values is no longer permitted (only tuples and ranges)
- Geometry
Hashable
implementation is now based on value rather than reference - Bumped Euclid to 0.5.12, which fixes the getters for
Rotation.pitch
/yaw
/roll
- Shape position/orientation/size are now read/write properties instead of setters
- Wireframes are now rendered with polygons instead of lines on x86, for better quality
- Added open/create document prompt when opening app
- Improved Welcome view
1.3.1
- Disabled axes by default and added instructions for enabling to help
- Added ordinal members for accessing arbitrary tuple elements
- Fixed rendering bug when using negative scale values
- Fixed bug where functions were able to access local variables of the caller
- Fixed dot operator (member lookup) chaining
- Added documentation for tuples and structured data access
- Bumped Euclid to 0.5.11, which includes several performance optimizations
- Fixed issue where console would not clear correctly when reloading
- Fixed hint message when missing closing brace
- Added
colour
andgrey
as aliases forcolor
andgray
- Made stroke line width proportional to the scene size
- Improved logic for default camera zoom level
- Increase antialiasing quality in viewer
- Updated screenshots and fixed bugs in help examples
1.3.0
- Added new standalone range expression with optional
step
value - For loops can now be used with either range or tuple/vector values
- Added support for hex color literals
- Added standard color names as constants
- Inherited standard library symbols no longer override user-defined constants
- All ShapeScript value types now conform to
AnyHashable
- Removed
CustomStringConvertible
conformance fromGeometryType
as it made debugging harder - Renamed
StatementType.node
toStatementType.block
, since the term was confusing - Bumped Euclid to 0.5.10, which includes several bug fixes and features
- Fixed crash when trying to access vector or color members from a non-numeric tuple
- Fixed crash when trying to color members from a tuple with more than 4 elements
- Accessing vector members on a tuple with more than 3 elements now raises an error
- Made unchecked Color initializer private
- Removed SceneViewController.snapshot() method
- Added option to show axes in ShapeScript Viewer
- Wireframe view option in viewer is now rendered using lines instead of SceneKit Debug option
- Made wireframe view option persistent across app launches
1.2.4
- Fixed a crash when logging large integer values
- Fixed bug where negative numbers would be logged as zero when using the print command
- Improved formatting of logged numeric values generally
1.2.3
- Enabled parenthesized expressions to span multiple lines
- Improved error message when assigning multiple values to single type
- Fixed assigning color literal value to background without parens
- Added Color initializers
- Added SceneViewController.snapshot() method