-
Notifications
You must be signed in to change notification settings - Fork 0
/
eiffel.syntax
78 lines (78 loc) · 2.17 KB
/
eiffel.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
71
72
73
74
75
76
77
78
---
name: Eiffel
fileTypes:
- e
scopeName: source.eiffel
repository:
number:
match: "[0-9]+"
variable:
match: "[a-zA-Z0-9_]+"
uuid: 34672373-DED9-45B8-AF7E-2E4B6C3D6B76
foldingStartMarker: (class|once|do|external)
patterns:
- name: comment.line.double-dash.eiffel
captures:
"1":
name: punctuation.definition.comment.eiffel
match: (--).*$\n?
- name: keyword.control.eiffel
match: \b(Indexing|indexing|deferred|expanded|class|inherit|rename|as|export|undefine|redefine|select|all|create|creation|feature|prefix|infix|separate|frozen|obsolete|local|is|unique|do|once|external|alias|require|ensure|invariant|variant|rescue|retry|like|check|if|else|elseif|then|inspect|when|from|loop|until|debug|not|or|and|xor|implies|old|end)\b
- name: variable.other.eiffel
match: "[a-zA-Z_]+"
- name: constant.language.eiffel
match: \b(True|true|False|false|Void|void|Result|result)\b
- name: meta.features.eiffel
begin: feature
end: end
- name: meta.effective_routine_body.eiffel
begin: (do|once)
end: (ensure|end)
- name: meta.rescue.eiffel
begin: rescue
end: end
- name: string.quoted.double.eiffel
endCaptures:
"0":
name: punctuation.definition.string.end.eiffel
begin: "\""
beginCaptures:
"0":
name: punctuation.definition.string.begin.eiffel
end: "\""
patterns:
- name: constant.character.escape.eiffel
match: \\.
- name: constant.numeric.eiffel
match: "[0-9]+"
- name: storage.modifier.eiffel
match: \b(deferred|expanded)\b
- name: meta.definition.class.eiffel
captures:
"1":
name: storage.modifier.eiffel
begin: |-
^\s*
((?:\b(deferred|expanded)\b\s*)*) # modifier
(class)\s+
(\w+)\s* # identifier
end: (?=end)
patterns:
- name: meta.definition.class.extends.java
captures:
"1":
name: storage.modifier.java
begin: \b(extends)\b\s+
end: (?={|implements)
patterns:
- include: "#all-types"
- name: meta.definition.class.implements.java
captures:
"1":
name: storage.modifier.java
begin: \b(implements)\b\s+
end: (?={|extends)
patterns:
- include: "#all-types"
foldingStopMarker: (ensure|end)
keyEquivalent: ^~E