Releases: nicklockwood/ShapeScript
Releases · nicklockwood/ShapeScript
1.6.7
- Added
arc
command - Added vector algebra operators
- Setting unequal width/height no longer distorts corner radius for
roundrect
command - Added
sign
,dot
,cross
,length
andnormalize
functions - Added implicit casting between vector and size values
- Select Shape menu is now disabled when empty
- Improved argument error messages
- Fixed bug where modulo operator sometimes returned negative values
- Fixed bug when mixing points and subpaths in a
path
command - Fixed retain cycle in iOS file dialog
- Fixed potential crash in
selectCamera()
function - Increased code sharing between Mac and iOS Viewer implementations
- Bumped Euclid to version 0.6.12
1.6.6
- The position and transform of mesh and path values can now be set as if they were a block
- Setting name on a block that returns a path no longer makes the result unusable in a builder
- Constants and property symbols are no longer called "function" in error messages
- Removed unhelpful "did you mean" suggestions when a valid symbol is used in wrong context
- Improved error description for numeric list type
- Fixed various bugs in the iOS source editor
- Bumped SVGPath to version 1.1.3
1.6.5
- Fixed performance regression in
GeometryType.bounds
when using lathe shapes - Fixed line number display in iOS source editor
- Bumped Euclid to version 0.6.11
1.6.4
- The
bounds
andpolygons
members now correctly take object transform into account - ShapeScript Viewer for iPad now supports multiple viewer/editor windows
- Fixed some bugs and improved editing experience for source editor on iOS
- Fixed bug where iOS editor would sometimes close spontaneously while editing
- Added
shapescript:
URL scheme and improved URL handling - Bumped Euclid to version 0.6.10
1.6.3
- iOS Viewer now supports editing
.shape
files directly inside the app - Added
Edit > Select Shape
andClear Selection
menus in macOS viewer - Added selection hotkeys and VoiceOver support for macOS viewer
- Fixed selection being cleared whenever geometry is refreshed
- Fixed dynamic dark mode updates on iOS viewer
- Fixed iOS split view bounds crash
- Fixed bug where camera hotkeys failed after reload
- Fixed error overlay translucency
- Fixed various member type bugs
1.6.2
- Improved info panel display
- Fixed twisted extrusion offset
- Fixed roundrect detail level (previously 4x higher than intended)
- Fixed incorrect output when intersecting groups of meshes
- Empty scenes are no longer hidden if they contain debug geometry
- Scene now conforms to Equatable protocol
- Fixed misleading error message for excess color arguments
- Fixed spurious forward declaration error for options that shadow global define
- Added automatic casting of hex strings to colors (useful for JSON data)
- Made polygon members available on all geometries, not just manually-created meshes
- Excluded source location from Geometry equality comparisons
- Fixed vector member access on tuples containing string elements
- Fixed vector member access on nested numeric tuples
- Fixed color member access on tuples and strings
- Fixed polygon member lookup on meshes
- Fixed handling of blocks with optional children (e.g. polygon)
- Improved symbol lookup performance
- Bumped Euclid to version 0.6.8
1.6.1
- Added twist option to extrude command
- Fixed inconsistent view menu options when switching between open documents
- Bumped Euclid to version 0.6.7
1.6.0
- Added hull command for creating convex hulls from points, paths or other meshes
- Added mesh command for manually creating meshes from individual polygons
- Added axisAligned property for controlling extrusion along paths
- Added support for importing plain text files as a string and JSON files as a tuple
- Added modulo operator for calculating remainder of division
- Significantly overhauled type system to support lists, unions and objects
- Improved static analysis, allowing type errors to be caught earlier
- Improved handling of background property scope
- The min and max functions are now variadic (accept any number of arguments)
- Added split(), join() and trim() functions for working with strings
- Added automatic conversion of strings to numbers or boolean values where applicable
- Added string.lines, .words and .characters members
- Added tuple.count, .last, .allButFirst and .allButLast members
- Fixed member lookup on numeric literals
- Fixed bug where material of imported shapes could not be overridden
- Background and texture can now be cleared by setting them to an empty string
- Logging geometry values to console now produces more useful output
- Added proper logging for bounds and point values
- Added fileTimedOut and circularImport errors
- Refactored and improved error handling
- Renamed ImportError to ProgramError
- Raised minimum Euclid version to 0.6.6
- Added Spirals example
1.5.14
- Added support for C-style block comments using /* ... */ syntax
- Fixed bug where source file could incorrectly be inferred as UTF-7, causing parsing errors
- Fixed issue where error messages would sometimes suggest the same identifier you already used
- Improved script execution performance by making source location lookup lazy
- Bumped Euclid to version 0.6.6
1.5.13
- Fixed crash when importing external .shape files
- When error occurs in imported file, Cmd-E now opens that file instead of the main file
- Bumped Euclid to version 0.6.5