-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathemerald.YAML-tmLanguage
More file actions
71 lines (66 loc) · 2.17 KB
/
emerald.YAML-tmLanguage
File metadata and controls
71 lines (66 loc) · 2.17 KB
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
# [PackageDev] target_format: plist, ext: tmLanguage
name: Emerald
scopeName: source.emerald
fileTypes:
- em
patterns:
- include: '#line-comment'
- include: '#declarations'
- include: '#keywords'
- include: '#literals'
repository:
declarations:
patterns:
- begin: '\b(def)\b\s*([_a-zA-Z][_a-zA-Z0-9]*)\s*(:)?'
beginCaptures:
'1': {name: keyword.other.declaration.emerald}
'2': {name: entity.name.function.emerald}
'3': {name: punctuation.separator.colon.emerald}
patterns:
- match: ([_a-zA-Z][_a-zA-Z0-9]*)
name: variable.parameter.emerald
- match: ','
name: punctuation.separator.comma.emerald
end: \n
- match: '\b(object)\b\s*([_a-zA-Z][_a-zA-Z0-9]*)\s*(?:(clones) ([_a-zA-Z][_a-zA-Z0-9]*))?'
captures:
'1': {name: keyword.other.declaration.emerald}
'2': {name: entity.name.object.emerald}
'3': {name: keyword.other.emerald}
'4': {name: entity.name.object-parent.emerald}
keywords:
patterns:
- name: keyword.other.declaration.emerald
match: \b(let)\b
- name: keyword.control.emerald
match: \b(import|if|then|else|do|end)\b
- name: keyword.control.loop.emerald
match: \b(for|to|downto|by|while)\b
- name: keyword.other.emerald
match: \b(clone|clones|super|print|return)\b
- name: keyword.operator.logical.emerald
match: (!|&&|\|\|)
- name: keyword.operator.comparison.emerald
match: (==|!=|<|>|<=|>=)
- name: keyword.operator.arithmetic.emerald
match: (\||^|&|<<|>>|+|\-|\*|\/|%)
- name: keyword.operator.assignment.emerald
match: (=|+=|-=|*=|/=|%=)
line-comment:
name: comment.line.emerald
begin: '#'
end: \n
literals:
patterns:
- name: constant.language.emerald
match: \b(None|True|False)\b
- name: constant.numeric.emerald
match: \b(-?[0-9]+(?:\.[0-9]+)?)\b
- name: string.quoted.single.emerald
begin: ''''
end: ''''
- name: string.quoted.double.emerald
begin: '"'
end: '"'
- name: variable.other.emerald
match: \b([_a-zA-Z][_a-zA-Z0-9]*)\b