diff --git a/config.toml b/config.toml index ba29708..94752f1 100644 --- a/config.toml +++ b/config.toml @@ -18,6 +18,8 @@ feed_filename = "index.xml" highlight_code = true highlight_theme = "one-dark" +extra_syntaxes_and_themes = ["syntaxes"] + [[taxonomies]] name = "series" diff --git a/syntaxes/alloy.sublime-syntax b/syntaxes/alloy.sublime-syntax new file mode 100644 index 0000000..e6a45d7 --- /dev/null +++ b/syntaxes/alloy.sublime-syntax @@ -0,0 +1,70 @@ +%YAML 1.2 +--- +# converted from https://github.com/corbanmailloux/sublime-mit-alloy. +# +# MIT License: https://github.com/corbanmailloux/sublime-mit-alloy/blob/master/LICENSE.txt +# +# > The MIT License (MIT) +# > +# > Copyright (c) 2016 Corban Mailloux +# > +# > Permission is hereby granted, free of charge, to any person obtaining a copy +# > of this software and associated documentation files (the "Software"), to deal +# > in the Software without restriction, including without limitation the rights +# > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# > copies of the Software, and to permit persons to whom the Software is +# > furnished to do so, subject to the following conditions: +# > +# > The above copyright notice and this permission notice shall be included in all +# > copies or substantial portions of the Software. +# > +# > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# > SOFTWARE. +# +# http://www.sublimetext.com/docs/syntax.html +name: MIT Alloy +file_extensions: + - als + - alloy +scope: source.mit_alloy +contexts: + main: + - match: /\* + comment: Block comment + push: + - meta_scope: comment.block + - match: \*/ + pop: true + - match: //.*$ + comment: Line comment + scope: comment.double-slash + - match: '--.*$' + comment: Line comment + scope: comment.double-dash + - match: (\\|`|\$|%|\?) + comment: Invalid characters + scope: invalid.illegal + - match: '([a-zA-Z_])+\s*\[' + comment: Function calls + push: + - meta_scope: entity.name.function + - meta_content_scope: variable.parameter + - match: '\]' + pop: true + - match: \b(fun|fact|pred|assert|enum|sig|module)\b + comment: type + scope: storage.type + - match: \b(abstract)\b + comment: modifiers + scope: storage.modifier + - match: '\b([0-9])+\b' + comment: integer + scope: constant.numeric + - match: \b(not|and|or|implies|in|iff|all|some|one|lone|no|none|univ|iden|let|extends|run|for|but|disj|disjoint|set|else|sum|open|check)\b|(=>|->|\||&|=|:|~|\.|\^|\*|<:|:>|\+\+|\+|-|!|&&|<=>|\|\|) + comment: Operators + scope: keyword.operator