WhileySyntaxBundle
April 26, 2022 ยท View on GitHub
This provides TextMate and Sublime bundles to enable syntax highlighting for programs written in the Whiley. This also serves as the grammar for github/linguist (which enables syntax highlighting on Github).
An example Whiley program is the following:
type nat is (int x) where x >= 0
function indexOf(int[] items, int item) -> (int r)
// If valid index returned, element matches item
ensures r >= 0 ==> items[r] == item
// If invalid index return, no element matches item
ensures r < 0 ==> all { i in 0..|items| | items[i] != item }
// Return value is between -1 and size of items
ensures r >= -1 && r < |items|:
//
nat i = 0
while i < |items|
where all { k in 0 .. i | items[k] != item }:
//
if items[i] == item:
return i
i = i + 1
//
return -1
Install (Sublime)
Eventually you will be able to install via
PackageControl. For now, you can copy
the whiley.submlime-text file into
.config/sublime-tests/Packages/User.
Install (TextMate)
mkdir -p ~/Library/Application\ Support/TextMate/Bundles
cd ~/Library/Application\ Support/TextMate/Bundles
git clone git://github.com/Whiley/WhileySyntaxBundle Whiley.tmbundle
Developers
The single source of truth is the file
Syntaxes/whiley.YAML-tmLanguage. This is used to generate the
remaining files:
-
whiley.tmLanguage. This is generated by installing PackageDev and then runningTools > Buildonwhiley.YAML-tmLanguageand choosingConvert to: Property List. -
whiley.sublime-text. This is generated by selecting the filewhiley.tmLanguageand runningTools > Developer > New Syntax from whiley.tmLanguage ....