1e5c31af7Sopenharmony_ci%YAML 1.2
2e5c31af7Sopenharmony_ci---
3e5c31af7Sopenharmony_ciname: amber
4e5c31af7Sopenharmony_cifile_extensions: [amber]
5e5c31af7Sopenharmony_ciscope: source.amber
6e5c31af7Sopenharmony_cicontexts:
7e5c31af7Sopenharmony_ci  main:
8e5c31af7Sopenharmony_ci    # Strings begin and end with quotes, and use backslashes as an escape
9e5c31af7Sopenharmony_ci    # character
10e5c31af7Sopenharmony_ci    - match: '"'
11e5c31af7Sopenharmony_ci      scope: punctuation.definition.string.begin.amber
12e5c31af7Sopenharmony_ci      push: double_quoted_string
13e5c31af7Sopenharmony_ci
14e5c31af7Sopenharmony_ci    # Comments begin with a '#' and finish at the end of the line
15e5c31af7Sopenharmony_ci    - match: '#'
16e5c31af7Sopenharmony_ci      scope: punctuation.definition.comment.amber
17e5c31af7Sopenharmony_ci      push: line_comment
18e5c31af7Sopenharmony_ci
19e5c31af7Sopenharmony_ci    # Keywords
20e5c31af7Sopenharmony_ci    - match: '\b(END|SHADER|BUFFER|DATA_TYPE|SIZE|DATA|FILL|SERIES_FROM)\b'
21e5c31af7Sopenharmony_ci      scope: keyword.control.amber
22e5c31af7Sopenharmony_ci    - match: '\b(PASSTHROUGH|PIPELINE|ATTACH|ENTRY_POINT|DESCRIPTOR_SET|INC_BY)\b'
23e5c31af7Sopenharmony_ci      scope: keyword.control.amber
24e5c31af7Sopenharmony_ci    - match: '\b(BINDING|IDX|TO|RUN|DRAW_RECT|POS|DRAW_GRID|CELLS|DRAW_ARRAY|IN|AS|START_IDX)\b'
25e5c31af7Sopenharmony_ci      scope: keyword.control.amber
26e5c31af7Sopenharmony_ci    - match: '\b(COUNT|CLEAR_COLOR|CLEAR|EXPECT|TYPE|FRAMEBUFFER|SHADER_OPTIMIZATION)\b'
27e5c31af7Sopenharmony_ci      scope: keyword.control.amber
28e5c31af7Sopenharmony_ci    - match: '\b(FORMAT|FRAMEBUFFER_SIZE|BIND|SAMPLER|VERTEX_DATA|INDEX_DATA|INDEXED)\b'
29e5c31af7Sopenharmony_ci      scope: keyword.control.amber
30e5c31af7Sopenharmony_ci    - match: '\b(IMAGE_ATTACHMENT|DEPTH_STENCIL_ATTACHMENT|LOCATION|DEVICE_FEATURE)\b'
31e5c31af7Sopenharmony_ci      scope: keyword.control.amber
32e5c31af7Sopenharmony_ci    - match: '\b(DERIVE_PIPELINE|FROM|STD140|STD430)\b'
33e5c31af7Sopenharmony_ci      scope: keyword.control.amber
34e5c31af7Sopenharmony_ci    - match : '\b(COPY|TOLERANCE|REPEAT)\b'
35e5c31af7Sopenharmony_ci      scope: keyword.control.amber
36e5c31af7Sopenharmony_ci
37e5c31af7Sopenharmony_ci    - match: '\b(vertex|fragment|compute|geometry|tessellation_evaluation|tessellation_control|multi)\b'
38e5c31af7Sopenharmony_ci      scope: constant.character.escape.amber
39e5c31af7Sopenharmony_ci    - match: '\b(framebuffer|graphics)\b'
40e5c31af7Sopenharmony_ci      scope: constant.character.escape.amber
41e5c31af7Sopenharmony_ci    - match: '\b(uniform|storage|push_constant|color|depth_stencil)\b'
42e5c31af7Sopenharmony_ci      scope: constant.character.escape.amber
43e5c31af7Sopenharmony_ci    - match: '\b(EQ|NE|LT|LE|GT|GE|EQ_RGB|EQ_RGBA|EQ_BUFFER|RMSE_BUFFER)\b'
44e5c31af7Sopenharmony_ci      scope: constant.character.esape.amber
45e5c31af7Sopenharmony_ci    - match: '\b(GLSL|HLSL|SPIRV-ASM|SPIRV-HEX|OPENCL-C)\b'
46e5c31af7Sopenharmony_ci      scope: constant.character.escape.amber
47e5c31af7Sopenharmony_ci
48e5c31af7Sopenharmony_ci    - match: '\b(point_list|line_list|line_list_with_adjacency|line_strip)\b'
49e5c31af7Sopenharmony_ci      scope: entity.name.type.amber
50e5c31af7Sopenharmony_ci    - match: '\b(line_strip_with_adjacency|triangle_list|triangle_list_with_adjacency)\b'
51e5c31af7Sopenharmony_ci      scope: entity.name.type.amber
52e5c31af7Sopenharmony_ci    - match: '\b(triangle_strip|triangle_strip_with_adjacency|triangle_fan|patch_list)\b'
53e5c31af7Sopenharmony_ci      scope: entity.name.type.amber
54e5c31af7Sopenharmony_ci
55e5c31af7Sopenharmony_ci    - match: '\b(u?int\d*|float|double|vec\d*|mat\d*)\b'
56e5c31af7Sopenharmony_ci      scope: entity.name.type.amber
57e5c31af7Sopenharmony_ci
58e5c31af7Sopenharmony_ci    # Numbers
59e5c31af7Sopenharmony_ci    - match: '\b(-)?[0-9.]+\b'
60e5c31af7Sopenharmony_ci      scope: constant.numeric.amber
61e5c31af7Sopenharmony_ci
62e5c31af7Sopenharmony_ci  double_quoted_string:
63e5c31af7Sopenharmony_ci    - meta_scope: string.quoted.double.amber
64e5c31af7Sopenharmony_ci    - match: '\\.'
65e5c31af7Sopenharmony_ci      scope: constant.character.escape.amber
66e5c31af7Sopenharmony_ci    - match: '"'
67e5c31af7Sopenharmony_ci      scope: punctuation.definition.string.end.amber
68e5c31af7Sopenharmony_ci      pop: true
69e5c31af7Sopenharmony_ci
70e5c31af7Sopenharmony_ci  line_comment:
71e5c31af7Sopenharmony_ci    - meta_scope: comment.line.amber
72e5c31af7Sopenharmony_ci    - match: $
73e5c31af7Sopenharmony_ci      pop: true
74