/
eno.sublime-syntax
89 lines (77 loc) · 2.26 KB
/
eno.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
%YAML 1.2
---
name: Eno
file_extensions: [eno]
scope: text.eno
contexts:
main:
# flag
- match: '^\s*+(?![>\-#=:\\|`])([^<=:]+?)\s*$'
captures:
1: entity.name.flag.eno
# entry = value
- match: '^\s*+(?![>\-#\\|`])([^<=:]+?)\s*(=)\s*+(\S.*?)?\s*$'
captures:
1: entity.name.attribute.eno
2: punctuation.separator.attribute.eno
3: value.eno
# > comment
- match: '^\s*+(>).*$'
scope: comment.eno
captures:
1: punctuation.definition.comment.eno
# field: value
- match: '^\s*+(?![>\-#\\|`])([^<=:]+?)\s*(:)\s*+(\S.*?)?\s*$'
captures:
1: entity.name.field.eno
2: punctuation.separator.field.eno
3: value.eno
# -- embed
- match: '^\s*+(--++)\s*+(\S.*?)\s*$'
push: embed
captures:
1: punctuation.definition.embed.begin.eno
2: entity.name.embed.eno
# - item
- match: '^\s*+(-)(?!-)\s*+(\S.*?)?\s*$'
captures:
1: punctuation.definition.item.eno
2: value.eno
# # section
- match: '^\s*+(#++)\s*+(\S.*?)\s*$'
captures:
1: punctuation.definition.section.eno
2: entity.name.section.eno
# `flag`
- match: '^\s*+(`++)\s*+((?:(?!\1).)+)\s*(\1)\s*$'
captures:
1: punctuation.definition.key.begin.eno
2: entity.name.flag.eno
3: punctuation.definition.key.end.eno
# `field`: value
- match: '^\s*+(`++)\s*+((?:(?!\1).)+)\s*(\1)\s*+(:)\s*+(\S.*?)?\s*$'
captures:
1: punctuation.definition.key.begin.eno
2: entity.name.field.eno
3: punctuation.definition.key.end.eno
4: punctuation.separator.field.eno
5: value.eno
# `entry` = value
- match: '^\s*+(`++)\s*+((?:(?!\1).)+)\s*(\1)\s*+(=)\s*+(.+?)?\s*$'
captures:
1: punctuation.definition.key.begin.eno
2: entity.name.attribute.eno
3: punctuation.definition.key.end.eno
4: punctuation.separator.attribute.eno
5: value.eno
# Invalid
- match: '^\s*+(\S.*?)\s*$'
scope: invalid.illegal.eno
embed:
- match: '^\s*+(\1)(?!-)\s*+(\2)\s*$'
captures:
1: punctuation.definition.embed.end.eno
2: entity.name.embed.eno
pop: true
- match: '^.*$'
scope: value.eno