Skip to content

Commit 5a907a8

Browse files
committed
add language generator YAML for reference. Uses AAPackageDev to convert YAML->tmLanguage
1 parent fa756bb commit 5a907a8

File tree

2 files changed

+141
-0
lines changed

2 files changed

+141
-0
lines changed

flow-build-output.YAML-tmLanguage

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# [PackageDev] target_format: plist, ext: tmLanguage
2+
---
3+
name: flow build output
4+
scopeName: source.flow-build-output
5+
fileTypes: []
6+
uuid: a7f13cbf-e607-408a-802f-bfa6e909d299
7+
8+
patterns:
9+
10+
- include: '#errors'
11+
- include: '#flow_target_line'
12+
- include: '#flow_build_info'
13+
- include: '#flow_haxe_ver'
14+
- include: '#flow_logs'
15+
- include: '#haxe_trace_line'
16+
17+
repository:
18+
19+
errors:
20+
name: invalid.error.flow-build-output
21+
match: >
22+
(?:(^.*[.]hx):(\d+): (?:characters|lines) (\d+)-).+
23+
24+
flow_logs:
25+
name: meta.logging.flow
26+
match: ^(flow \/ )(.+ - )?(.+)
27+
captures:
28+
'1': { name: keyword.control.logging.flow }
29+
'2': { name: storage.type.log_type.flow }
30+
'3': { name: meta }
31+
32+
flow_target_line:
33+
name: meta.logging.flow
34+
match: ^(flow \/ )(target) is (mac|linux|windows|web|android) \( (.+) \)
35+
captures:
36+
'1': { name: keyword.control.logging.flow }
37+
'2': { name: meta }
38+
'3': { name: storage.type.target.flow }
39+
'4': { name: storage.type.target_arch.flow }
40+
41+
flow_build_info:
42+
name: meta.logging.flow
43+
match: ^(flow \/ )(build only, )?(debug = true)
44+
captures:
45+
'1': { name: keyword.control.logging.flow }
46+
'2': { name: meta }
47+
'3': { name: entity.name.function.flow }
48+
49+
flow_haxe_ver:
50+
name: meta.logging.flow
51+
match: ^(flow \/ )(haxe version )(\d+.\d+.\d+)
52+
captures:
53+
'1': { name: keyword.control.logging.flow }
54+
'2': { name: meta.haxe_version.flow }
55+
'3': { name: storage.type.haxe_version.flow }
56+
57+
haxe_trace_line:
58+
name: meta.logging.flow
59+
match: (.+\.hx)[:](\d+)[:]
60+
captures:
61+
'1': { name: storage.type.trace_filename.flow }
62+
'2': { name: constant.numeric.flow }

flow-file.YAML-tmLanguage

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# [PackageDev] target_format: plist, ext: tmLanguage
2+
---
3+
name: flow file
4+
scopeName: source.flow
5+
fileTypes: ['flow']
6+
uuid: dda0dbdd-79ee-4944-a477-0b74c43d65b1
7+
8+
patterns:
9+
10+
- include: '#keyword_objects'
11+
- include: '#keyword_roots'
12+
- include: '#keyword_arrays'
13+
- include: '#keyword_string'
14+
15+
- include: '#numeric_values'
16+
- include: '#bool_values'
17+
- include: '#string_values'
18+
19+
- include: '#normal_objects'
20+
- include: '#normal_numeric'
21+
22+
repository:
23+
24+
bool_values:
25+
name: constant.numeric.flow
26+
match: \"?\b(true|false)\b\"?
27+
28+
numeric_values:
29+
name: constant.numeric.flow
30+
match: \"?\b(\d+)\b\"?
31+
32+
string_values:
33+
patterns:
34+
- name: string.quoted.flow
35+
begin: ("|')
36+
end: ("|')
37+
38+
keyword_objects:
39+
name: meta.keyword_objects.flow
40+
match: \"?\b(dependencies|flags|defines|web|mobile|ios|android|libs|native)\b\"?(?:.*[:]\s*[{])
41+
captures:
42+
'1': { name: keyword.control.definition.keyword_objects.flow }
43+
44+
normal_objects:
45+
name: meta.normal_objects.flow
46+
match: \"?\b(.*)\b\"?(?:.*[:]\s*[{])
47+
captures:
48+
'1': { name: entity.name.function.normal_objects.flow }
49+
50+
normal_numeric:
51+
name: meta.normal_numeric.flow
52+
match: \"?\b(.*)\b\"?\s*[:]\s*(\d+)
53+
captures:
54+
'1': { name: entity.name.identifier.normal_numeric.flow }
55+
'2': { name: constant.numeric.normal_numeric.flow }
56+
57+
58+
keyword_roots:
59+
name: meta.keyword_roots.flow
60+
match: \"?\b(project|flow|app|build|files|if)\"?\b\"?(?:.*[:]\s*[{])
61+
captures:
62+
'1': { name: support.type.keyword_roots.flow }
63+
64+
keyword_arrays:
65+
name: meta.keyword_arrays.flow
66+
match: \"?\b(flags|defines|codepaths)\b\"?(?:.*[:]\s*[\[])
67+
captures:
68+
'1': { name: keyword.control.definition.keyword_arrays.flow }
69+
70+
keyword_string:
71+
name: meta.keyword_string.flow
72+
match: \"?\b(name|version|author|package|icon|main|output)\b\"?\s*[:]\s*(['].*[']|["].*["])
73+
captures:
74+
'1': { name: keyword.control.definition.keyword_string.flow }
75+
'2': { name: string.quoted.keyword_string.flow }
76+
77+
# illegal:
78+
# name: invalid.illegal.unescaped.characters.flow
79+
# match: (?:([^\/"']+|\/\*(?:[^*]|\*+[^*\/])*\*+\/|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')|\/\/.*)

0 commit comments

Comments
 (0)