/
alloy.sublime-syntax
70 lines (70 loc) · 2.54 KB
/
alloy.sublime-syntax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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