aboutsummaryrefslogtreecommitdiff
path: root/api-notation.YAML-tmLanguage
blob: d7312523e0c47a1f0f41304a81a0814127cb6512 (plain)
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
# [PackageDev] target_format: plist, ext: tmLanguage
---
name: API Notation
scopeName: source.api-notation
fileTypes: ['api']
uuid: fc8dc5cf-b7aa-4b64-a665-80e8dc1b2553
patterns:
  - begin: '([a-zA-Z0-9_.]+)'
    end: '\n'
    name: constant.language
    patterns:
      - include: '#dataTypes'
      - include: '#comment'
  - begin: '^//.*'
    end: '\n'
    name: 'comment.line'
  - begin: '[ \t]+'
    end: '\n'
    patterns:
      - include: '#apiMember'
      - include: '#parameterList'
      - include: '#dataTypes'
      - include: '#operators'
      - include: '#parameters'
      - include: '#comment'
  - begin: '^.'
    end: '\n'
    patterns:
      - include: '#comment'
repository:
  dataTypes:
    begin: '\<'
    end: '\>'
    name: 'keyword.operator'
    patterns:
      - include: '#dataType'
      - include: '#separators'
  parameterList:
    begin: '\('
    end: '\)'
    name: 'keyword.operator'
    patterns:
      - 'include': '#parameters'
      - 'include': '#optionalParameters'
      - 'include': '#dataTypes'
      - 'include': '#separators'
  dataType:
    match: '[a-zA-Z0-9_.]+'
    name: 'support.function'
  parameters:
    match: '[a-zA-Z0-9_.]+'
    name: 'string.other'
  optionalParameters:
    begin: '\['
    end: '\]'
    patterns:
      - 'include': '#optionalParameter'
  optionalParameter:
    match: '[a-zA-Z0-9_.]+'
    name: 'comment.line'
  separators:
    match: '\||,'
    name: 'comment.line'
  apiMember:
    match: '((?:<\+)|(?:<\~)|(?:<\-)|(?:\+>)|(?:\~>)|(?:\->)|\-|\+|(?:::)|#)([a-zA-z0-9_]+)'
    captures:
      '1':
        name: 'keyword.control'
      '2':
        name: 'variable.language'
  comment:
    match: '[ \t]*//[ \t]*.*'
    name: 'comment.line'
  operators:
    match: '(?:\->)|(?:\=>)'
    name: 'keyword.control'