-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTJ3.json-tmlanguage
75 lines (73 loc) · 2.58 KB
/
TJ3.json-tmlanguage
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
{ "name": "TaskJuggler III",
"scopeName": "source.tj3",
"fileTypes": ["tji", "tjp"],
"patterns": [
{ "name": "storage.type.tj3",
"begin": "project ",
"end": "\\d{4}-\\d{2}-\\d{2} - \\d{4}-\\d{2}-\\d{2} ",
"comment": "Project definition"
},
{ "name": "meta.preprocessor.macro.tj3",
"match": "include",
"comment": "Include statement for including files"
},
{ "name": "string.punctuation.tj3",
"begin": "\"",
"end": "\"",
"comment": "Strings between two double quotes"
},
{ "match": "((columns +)|(resourcereport +)|(task +)|(taskreport +)|(textreport +))([A-Za-z][A-Za-z0-9_]+)",
"name": "storage.type.tj3",
"captures": {
"1": { "name": "entity.name.function.preprocessor.tj3" }
},
"comment": "Task is like the start of a function. '1' is the name of the task"
},
{ "match": "scenario +([A-Za-z][A-Za-z0-9_]+)",
"name": "keyword.type.tj3",
"captures": {
"1": { "name": "entity.name.function.preprocessor.tj3" }
},
"comment": "Scenario is like the start of a function. '1' is the name of the scenatio"
},
{ "match": "projection +\\{(strict)|",
"name": "keyword.type.tj3",
"captures": {
"1": { "name": "entity.name.function.preprocessor.tj3" }
},
"comment": "projection is like the start of a function. '1' is the name of the scenatio"
},
{ "match": "\\#.*",
"name": "comment.source.tj3",
"comment": "Comments, meaning everything after the hash"
},
{ "name": "constant.numeric.tj3",
"match": "(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)",
"comment": "Keywords inside a task like flags, priority, effort"
},
{ "name": "keyword.control.tj3",
"match": "(allocate ?)|(celltext ?)|(currency ?)|(columns ?)|(cost ?)|(depends ?)|(duration ?)|(effort ?)|(end ?)|(flags ?)|(formats ?)|(minslackrate ?)|(priority ?)|(start ?)|(timeformat ?)|(timezone ?)|(weekstartsmonday ?)|(workinghours ?)",
"comment": "Keywords inside a task like flags, priority, effort"
},
{ "name": "keyword.constant.tj3",
"match": "(attribute ?)|(attributes ?)|(html ?)|(name ?)|(revenue ?)",
"comment": "constants"
},
{ "match": "(taskroot )([A-Za-z0-9].*)",
"name": "storage.type.tj3",
"captures": {
"1": { "name": "entity.name.function.preprocessor.tj3" }
},
"comment": "Taskroot with tasks separated by . (dot)"
},
{
"match": "\\b((([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(d|w|h|m)?\\b",
"name": "entity.name.function.preprocessor.tj3",
"captures": {
"0": { "name": "constant.numeric.tj3" }
},
"comment": "time as in days, weeks, months etc"
}
],
"uuid": "237ab900-915a-43cf-aead-96d9f9f12e1c"
}