Skip to content

Releases: nicklockwood/ShapeScript

1.3.7

26 Sep 22:27
Compare
Choose a tag to compare
  • 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

21 Sep 20:32
Compare
Choose a tag to compare
  • 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

19 Sep 20:54
Compare
Choose a tag to compare
  • 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

17 Sep 22:36
Compare
Choose a tag to compare
  • 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

14 Sep 18:04
Compare
Choose a tag to compare
  • 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

13 Sep 22:04
Compare
Choose a tag to compare
  • 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

07 Sep 22:49
Compare
Choose a tag to compare
  • 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 and grey as aliases for color and gray
  • 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

31 Aug 19:02
Compare
Choose a tag to compare
  • 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 from GeometryType as it made debugging harder
  • Renamed StatementType.node to StatementType.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

25 Aug 17:13
Compare
Choose a tag to compare
  • 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

24 Aug 23:59
Compare
Choose a tag to compare
  • 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