" Vim syntax file " Language: Amber Script if exists("b:current_syntax") finish endif " Regular int like number with - + or nothing in front syn match amberNumber '\d\+' contained display syn match amberNumber '[-+]\d\+' contained display " Floating point number with decimal no E or e (+,-) syn match amberNumber '\d\+\.\d*' contained display syn match amberNumber '[-+]\d\+\.\d*' contained display " Floating point like number with E and no decimal point (+,-) syn match amberNumber '[-+]\=\d[[:digit:]]*[eE][\-+]\=\d\+' contained display syn match amberNumber '\d[[:digit:]]*[eE][\-+]\=\d\+' contained display " Floating point like number with E and decimal point (+,-) syn match amberNumber '[-+]\=\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display syn match amberNumber '\d[[:digit:]]*\.\d*[eE][\-+]\=\d\+' contained display syn region amberString start='"' end='"' contained syn region amberDesc start='"' end='"' syn keyword amberTodo contained TODO FIXME syn match amberBang "\v#!.*$" syn match amberComment "#.*$" contains=amberTodo syn keyword amberBlockCmd SHADER BUFFER PIPELINE ATTACH END RUN TYPE SIZE FILL syn keyword amberBlockCmd DESCRIPTOR_SET BINDING IDX TO EXPECT PASSTHROUGH syn keyword amberBlockCmd DATA_TYPE DATA SERIES_FROM DRAW_ARRAY IN START_IDX syn keyword amberBlockCmd COUNT CLEAR CLEAR_COLOR AS POS DRAW_RECT INC_BY syn keyword amberBlockCmd FRAMEBUFFER ENTRY_POINT SHADER_OPTIMIZATION syn keyword amberBlockCmd FORMAT FRAMEBUFFER_SIZE LOCATION BIND SAMPLER syn keyword amberBlockCmd VERTEX_DATA INDEX_DATA INDEXED IMAGE_ATTACHMENT syn keyword amberBlockCmd DEPTH_STENCIL_ATTACHMENT DEVICE_FEATURE TOLERANCE syn keyword amberBlockCmd REPEAT COPY DERIVE_PIPELINE FROM STD140 STD430 syn keyword amberBlockCmd DEVICE_EXTENSION IMAGE INSTANCE_EXTENSION SET syn keyword amberBlockCmd STRUCT VIRTUAL_FILE CLEAR_DEPTH CLEAR_STENCIL syn keyword amberBlockCmd DEBUG TARGET_ENV SHADER_OPTIMIZATION COMPILE_OPTIONS syn keyword amberBlockCmd POLYGON_MODE DEPTH STENCIL SUBGROUP SPECIALIZE syn keyword amberBlockCmd FULLY_POPULATED VARYING_SIZE REQUIRED_SIZE syn keyword amberBlockCmd MIN MAX BUFFER_ARRAY SAMPLER_ARRAY KERNEL OFFSET syn keyword amberBlockCmd BASE_MIP_LEVEL ARG_NUMBER RATE TEST CLAMP syn keyword amberBlockCmd WRITE COMPARE_OP BOUNDS BIAS FAIL_OP PASS_OP syn keyword amberBlockCmd DEPTH_FAIL_OP COMPARE_MASK WRITE_MASK REFERENCE syn keyword amberBlockCmd STRIDE ARRAY_STRIDE MATRIX_STRIDE MIP_LEVELS syn keyword amberBlockCmd FILE DIM_1D DIM_2D DIM_3D WIDTH HEIGHT SAMPLES syn keyword amberBlockCmd TEXT BINARY PNG DRAW_GRID CELLS INSTANCE_COUNT syn keyword amberBlockCmd START_INSTANCE THREAD GLOBAL_INVOCATION_ID syn keyword amberBlockCmd VERTEX_INDEX FRAGMENT_WINDOW_SPACE_POSITION syn keyword amberBlockCmd CALLSTACK STEP_IN STEP_OUT STEP_OVER CONTINUE TO syn keyword amberBlockCmd ENGINE_DATA MAG_FILTER MIN_FILTER ADDRESS_MODE_U syn keyword amberBlockCmd ADDRESS_MODE_V ADDRESS_MODE_W BORDER_COLOR syn keyword amberBlockCmd MIN_LOD MAX_LOD NORMALIZED_COORDS UNNORMALIZED_COORDS syn keyword amberBlockCmd ARG_NAME syn keyword amberComparator EQ NE LT LE GT GE EQ_RGB EQ_RGBA EQ_BUFFER RMSE_BUFFER syn keyword amberComparator EQ_HISTOGRAM_EMD_BUFFER syn keyword amberKeyword compute vertex geometry fragment graphics syn keyword amberKeyword tessellation_evaulation tessellation_control multi syn keyword amberFormat GLSL HLSL SPIRV-ASM SPIRV-HEX OPENCL-C syn keyword amberTopology point_list line_list line_list_with_adjacency syn keyword amberTopology line_strip line_strip_with_adjacency triangle_list syn keyword amberTopology triangle_list_with_adjacench triangle_strip syn keyword amberTopology triangle_strip_with_adjacency triangle_fan patch_list syn keyword amberBufferType uniform storage push_constant color depth_stencil syn keyword amberBufferType uniform_dynamic storage_dynamic combined_image_sampler syn keyword amberBufferType storage_image sampled_image uniform_texel_buffer syn keyword amberBufferType storage_texel_buffer syn keyword amberAddressMode repeat mirrored_repeat clamp_to_edge clamp_to_border syn keyword amberAddressMode mirror_clamp_to_edge syn keyword amberCompareOp never less equal less_or_equal greater not_equal syn keyword amberCompareOp greater_or_equal always syn keyword amberStencilOp keep zero replace increment_and_clamp decrement_and_clamp syn keyword amberStencilOp invert increment_and_wrap decrement_and_wrap syn keyword amberBorderColor float_transparent_black int_transparent_black syn keyword amberBorderColor float_opaque_black int_opaque_black float_opaque_white syn keyword amberBorderColor int_opaque_white syn keyword amberFace front back front_and_back syn keyword amberFilter nearest linear syn keyword amberPolygonMode fill line point let b:current_syntax = "amber" hi def link amberTodo Todo hi def link amberBang Comment hi def link amberComment Comment hi def link amberBlockCmd Keyword hi def link amberString String hi def link amberNumber Number hi def link amberDesc PreProc hi def link amberKeyword String hi def link amberFormat Type hi def link amberComparator Keyword hi def link amberTopology Type hi def link amberBufferType Type hi def link amberAddressMode Type hi def link amberCompareOp Type hi def link amberStencilOp Type hi def link amberBorderColor Type hi def link amberFace Type hi def link amberFilter Type hi def link amberPolygonMode Type