Skip to content

v0.1.12 Beta

Pre-release
Pre-release
Compare
Choose a tag to compare
@electrikmilk electrikmilk released this 04 Feb 01:04
· 236 commits to main since this release

What's Changed

  • Adds built-in base64File() action.
  • General improvements to vCards, removes PHOTO from generated vCards if not using an image.
  • Adds explicit comment() action.
  • Improves automatic nothing actions after if/else, menu, etc.
  • Fixes and improves the for and repeat statements.
  • Chore: added speak and dictate actions by @mikeogezi in #30.
  • chore: allow newContact action to handle variables for phoneNumber and emailAddress by @mikeogezi in #43.
  • Implements raw text by @electrikmilk in #46.
  • Throws error when translation language is not supported.
  • Reduces general complexity.
  • Improves speed of collecting values when parsing.
  • Move inline string reference checking to when we are parsing the file so that if a reference does not exist, the parser error will be at the correct position.
  • Simplifies some parsing using Regex.
  • Removes auto-incrementing action arguments asking for an index of a list, so that counting can start at 0. However, we can only do this when it's an integer literal. So, this accepts the fact that Shortcuts starts counting at 1.
  • Fixed setting WFWorkflowHasShortcutInputVariables.
  • Refactors list actions to getFirstItem(), getLastItem(), getRandomItem().
  • bugfix #22 & #41: Do not increment index if variable
  • bugfix #31: Skip enum check for non string values
  • bugfix #32: Add string type check to measurement enum checks
  • bugfix #33: Ignore includes in a single-line comment
  • bugfix #34: Fix client version number values in plist
  • bugfix #35: Fix using variable references for magnitude values
  • bugfix #36: Fix handling variables in infinite argument actions
  • bugfix #37 & #38: Fix variables in app actions
  • bugfix #40: advance past double quote for stopwith
  • bugfix #42: Correct repeat index variable value type to integer

Full Changelog: v0.1.11-beta...v0.1.12-beta

External stuff

RoutineHub

I'm excited to talk about the fact that RoutineHub (a Shortcuts distribution platform), has taken an interest in the project and their support is greatly appreciated.

When I first got into Shortcuts like many people I found RoutineHub and their community very welcoming. It's a super cool and easy way to share your Shortcuts for others to use.

The RoutineHub team has been instrumental in creating the final piece of the playground: Signing.

This was a huge issue for a long time as only those with a Mac could use the compiler to produce Shortcuts they could import and run using the latest version of Shortcuts.

I had a path forward to accomplish this but not much experience in cloud deployment. Their team took this path forward and delivered a signing server the playground could use that signs Shortcuts.

Their discord, site, courses, etc. provide a lot of support to Shortcut development, and now they've helped this language to be accessible to A LOT more people.

They also wrote up an article about Cherri on their blog! This is huge for the project and I'm so excited to see where this relationship with them can go in the future.

macOS IDE

I made a Cherri IDE for macOS. I was thinking about if a macOS app would work over an iOS app, turns out it was super easy to bundle the compiler with the app and call it from within the Swift code as a resource. This is not meant to replace the playground, as it will always have a purpose for those who only have Apple mobile devices and not a Mac.

It is for people who use macOS as their daily driver. It is a step further to make using Cherri even more accessible. I am hoping to someday release it on the Mac App Store, I think it would be a cool way for people to get into the language in a similar way to an iOS app on its App Store.

What's Next?

  • Fixing issues with syntax highlighting in the playground and trying to improve it by adding more helpful features now that it has more interest, throwing some love to Windows, Linux, etc. users.
  • Finish refactoring custom actions to work more like functions by allowing users to define arguments and use them in their custom actions. This will also give them scope so you don't need to worry about overwriting outside variables. I still wanna keep the macro style copy-paste way that it works right now but that will likely have a separate keyword or will be reworked, as I think only giving custom actions their own scope if they have defined arguments is confusing.