Awesome
WhileySyntaxBundle
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 > Build
onwhiley.YAML-tmLanguage
and choosingConvert to: Property List
. -
whiley.sublime-text
. This is generated by selecting the filewhiley.tmLanguage
and runningTools > Developer > New Syntax from whiley.tmLanguage ...
.