aboutsummaryrefslogtreecommitdiff
path: root/tools/amber.sublime-syntax
blob: a21ab9219f9b7acd879e502abfa957bc07198fde (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
%YAML 1.2
---
name: amber
file_extensions: [amber]
scope: source.amber
contexts:
  main:
    # Strings begin and end with quotes, and use backslashes as an escape
    # character
    - match: '"'
      scope: punctuation.definition.string.begin.amber
      push: double_quoted_string

    # Comments begin with a '#' and finish at the end of the line
    - match: '#'
      scope: punctuation.definition.comment.amber
      push: line_comment

    # Keywords
    - match: '\b(END|SHADER|BUFFER|DATA_TYPE|SIZE|DATA|FILL|SERIES_FROM)\b'
      scope: keyword.control.amber
    - match: '\b(PASSTHROUGH|PIPELINE|ATTACH|ENTRY_POINT|DESCRIPTOR_SET|INC_BY)\b'
      scope: keyword.control.amber
    - match: '\b(BINDING|IDX|TO|RUN|DRAW_RECT|POS|DRAW_ARRAY|IN|AS|START_IDX)\b'
      scope: keyword.control.amber
    - match: '\b(COUNT|CLEAR_COLOR|CLEAR|EXPECT|TYPE|FRAMEBUFFER|SHADER_OPTIMIZATION)\b'
      scope: keyword.control.amber
    - match: '\b(FORMAT|FRAMEBUFFER_SIZE|BIND|SAMPLER|VERTEX_DATA|INDEX_DATA|INDEXED)\b'
      scope: keyword.control.amber
    - match: '\b(IMAGE_ATTACHMENT|DEPTH_STENCIL_ATTACHMENT|LOCATION|DEVICE_FEATURE)\b'
      scope: keyword.control.amber
    - match: '\b(DERIVE_PIPELINE|FROM|STD140|STD430)\b'
      scope: keyword.control.amber
    - match : '\b(COPY|TOLERANCE|REPEAT)\b'
      scope: keyword.control.amber

    - match: '\b(vertex|fragment|compute|geometry|tessellation_evaluation|tessellation_control|multi)\b'
      scope: constant.character.escape.amber
    - match: '\b(framebuffer|graphics)\b'
      scope: constant.character.escape.amber
    - match: '\b(uniform|storage|push_constant|color|depth_stencil)\b'
      scope: constant.character.escape.amber
    - match: '\b(EQ|NE|LT|LE|GT|GE|EQ_RGB|EQ_RGBA|EQ_BUFFER|RMSE_BUFFER)\b'
      scope: constant.character.esape.amber
    - match: '\b(GLSL|HLSL|SPIRV-ASM|SPIRV-HEX|OPENCL-C)\b'
      scope: constant.character.escape.amber

    - match: '\b(point_list|line_list|line_list_with_adjacency|line_strip)\b'
      scope: entity.name.type.amber
    - match: '\b(line_strip_with_adjacency|triangle_list|triangle_list_with_adjacency)\b'
      scope: entity.name.type.amber
    - match: '\b(triangle_strip|triangle_strip_with_adjacency|triangle_fan|patch_list)\b'
      scope: entity.name.type.amber

    - match: '\b(u?int\d*|float|double|vec\d*|mat\d*)\b'
      scope: entity.name.type.amber

    # Numbers
    - match: '\b(-)?[0-9.]+\b'
      scope: constant.numeric.amber

  double_quoted_string:
    - meta_scope: string.quoted.double.amber
    - match: '\\.'
      scope: constant.character.escape.amber
    - match: '"'
      scope: punctuation.definition.string.end.amber
      pop: true

  line_comment:
    - meta_scope: comment.line.amber
    - match: $
      pop: true