A programming language that compiles to the iOS Visual Scripting tool, Shortcuts. Had a web editor and compiler, command line compiler, and vscode extension with diagnostics and autocomplete. ScPL is no longer maintained and is missing new actions that were added in recent iOS updates.
Made with Typescript, React, CodeMirror
Note that ScPL has not been updated to support the new iOS 13/14+ actions. If you are looking for a text shortcuts language, consider Jellycuts.
ScPL
ScPL is a programming language for writing iOS Shortcuts in text.
ScPL is a programming language for Shortcuts that allows you to write shortcuts in text instead of dragging and dropping blocks. ScPL lets you work with large shortcuts easily by letting you copy and paste actions, view long shortcuts without scrolling, and type actions instead of dragging them in. Get Started
ShowResult "Hello ScPL"
ChooseFromMenu prompt="ScPL" items=["Getting Started", "View Documentation"]
Case "Getting Started"
URL "https://docs.scpl.dev/gettingstarted"
Case "View Documentation"
URL "https://docs.scpl.dev/"
End Menu
OpenURLs
See what your shortcut looks like in ScPL by uploading it in the ScPL Editor.
What is ScPL
ScPL lets you write shortcuts in text. Instead of dragging actions
around on a small screen in a slow app, you can write text like
ShowResult "My shortcut"
to build long and complex
shortcuts.
Editors
Web Editor
The ScPL Web Editor (editor.scpl.dev) is the easiest way to write ScPL.
Visual Studio Code
ScPL has a plugin for Visual Studio Code with autocompletion, error messages, and hover documentation. VSCode Extension.
To compile your ScPL code you can use the scpl-cli npm package.
npm install --global scpl-cli
. Then you can run
scpl <filename.scpl> -o <outputfile.shortcut>
Usage (in other Javascript projects)
npm install --save scpl
or yarn add scpl
const {parse, inverse} = require("scpl");
const {shortcutjson, shortcutplist} = parse("text 'hello scpl'", {make: ["shortcutjson", "shortcutplist"]});
// shortcutjson is a json object containing the shortcut file.
// shortcutplist is a buffer containing the shortcut file bplist.
const inverted = inverse(shortcutplist);
// text "hello scpl"
Contributing
Prerequisites
ScPL uses yarn for package management. Install Yarn
Installing
git clone https://github.com/pfgithub/scpl.git
cd scpl
yarn install
The ScPL repository does not have any tools for converting ScPL code to .shortcut files. That can be found in the scpl-editor or the scpl-cli projects.
Running tests
yarn test
ScPL tests using Jest and automatically generates coverage reports. You can use the coverage report lcov file in coverage/lcov.info
to set your editor to show test coverage.
Before making a pull request
yarn prepublishOnly
prepublishOnly will automatically format your code using prettier and make sure tests pass.
Acknowledgements
- xAlien95 for finding the actions plist file within the shortcuts ipa and manually making lists of all the variable types and aggrandizements.
- Shortcuts JS for the complete shortcut glyph and color list.