neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

gdshader.vim (2017B)


      1 " Vim syntax file for Godot shading language
      2 " Language:     gdshader
      3 " Maintainer:   Maxim Kim <habamax@gmail.com>
      4 " Filenames:    *.gdshader
      5 
      6 if exists("b:current_syntax")
      7    finish
      8 endif
      9 
     10 syn keyword gdshaderConditional if else switch case default
     11 syn keyword gdshaderRepeat for while do
     12 syn keyword gdshaderStatement return discard
     13 syn keyword gdshaderBoolean true false
     14 
     15 syn keyword gdshaderKeyword shader_type render_mode
     16 syn keyword gdshaderKeyword in out inout
     17 syn keyword gdshaderKeyword lowp mediump highp
     18 syn keyword gdshaderKeyword uniform varying const
     19 syn keyword gdshaderKeyword flat smooth
     20 
     21 syn keyword gdshaderType float vec2 vec3 vec4
     22 syn keyword gdshaderType uint uvec2 uvec3 uvec4
     23 syn keyword gdshaderType int ivec2 ivec3 ivec4
     24 syn keyword gdshaderType void bool
     25 syn keyword gdshaderType bvec2 bvec3 bvec4
     26 syn keyword gdshaderType mat2 mat3 mat4
     27 syn keyword gdshaderType sampler2D isampler2D usampler2D samplerCube
     28 
     29 syn match gdshaderMember "\v<(\.)@<=[a-z_]+\w*>"
     30 syn match gdshaderBuiltin "\v<[A-Z_]+[A-Z0-9_]*>"
     31 syn match gdshaderFunction "\v<\w*>(\()@="
     32 
     33 syn match gdshaderNumber "\v<\d+(\.)@!>"
     34 syn match gdshaderFloat "\v<\d*\.\d+(\.)@!>"
     35 syn match gdshaderFloat "\v<\d*\.=\d+(e-=\d+)@="
     36 syn match gdshaderExponent "\v(\d*\.=\d+)@<=e-=\d+>"
     37 
     38 syn match gdshaderComment "\v//.*$" contains=@Spell
     39 syn region gdshaderComment start="/\*" end="\*/" contains=@Spell
     40 syn keyword gdshaderTodo TODO FIXME XXX NOTE BUG HACK OPTIMIZE containedin=gdshaderComment
     41 
     42 hi def link gdshaderConditional Conditional
     43 hi def link gdshaderRepeat Repeat
     44 hi def link gdshaderStatement Statement
     45 hi def link gdshaderBoolean Boolean
     46 hi def link gdshaderKeyword Keyword
     47 hi def link gdshaderMember Identifier
     48 hi def link gdshaderBuiltin Identifier
     49 hi def link gdshaderFunction Function
     50 hi def link gdshaderType Type
     51 hi def link gdshaderNumber Number
     52 hi def link gdshaderFloat Float
     53 hi def link gdshaderExponent Special
     54 hi def link gdshaderComment Comment
     55 hi def link gdshaderTodo Todo
     56 
     57 let b:current_syntax = "gdshader"