aboutsummaryrefslogtreecommitdiff
path: root/syntax/glsl.vim
blob: 71c099e14ae830bff16e6e082f42b26ac5b5c0ef (plain) (blame)
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
" Vim syntax file
" Language:	OpenGL Shading Language
" Maintainer:	Sergey Tikhomirov <me@stikhomirov.com>
" URL:
" Last Change:	2012 July 7

if exists("b:current_syntax")
  finish
endif

" Statements
syn keyword   glslConditional      if else
syn keyword   glslRepeat           for while do
syn keyword   glslStatement        discard return break continue

" Comments
syn keyword	  glslTodo             contained TODO FIXME XXX
syn region    glslCommentL         start="//" skip="\\$" end="$" keepend contains=glslTodo
syn region    glslComment          matchgroup=glslCommentStart start="/\*" end="\*/" extend contains=glslTodo

" Preprocessor
syn region    glslPreCondit        start="^\s*#\s*\(if\|ifdef\|ifndef\|else\|elif\|endif\)" skip="\\$" end="$" keepend
syn region    glslDefine           start="^\s*#\s*\(define\|undef\)" skip="\\$" end="$" keepend
syn keyword   glslTokenConcat      ##
syn keyword   glslPredefinedMacro  __LINE__ __FILE__ __VERSION__ GL_ES
syn region    glslPreProc          start="^\s*#\s*\(error\|pragma\|extension\|version\|line\)" skip="\\$" end="$" keepend

" Boolean Constants
syn keyword   glslBoolean         true false

" Integer Numbers
syn match     glslDecimalInt      "\(0\|[1-9]\d*\)"
syn match     glslOctalInt        "0\o\+"
syn match     glslHexInt          "0[xX]\x\+"

" Float Numbers
syn match     glslFloat           "\d\+\.\d\+\([eE][+-]\=\d\+\)\="
syn match     glslFloat           "\d\+\.\([eE][+-]\=\d\+\)\="
syn match     glslFloat           "\.\d\+\([eE][+-]\=\d\+\)\="
syn match     glslFloat           "\d\+[eE][+-]\=\d\+"

hi def link glslConditional       Conditional
hi def link glslRepeat            Repeat
hi def link glslStatement         Statement
hi def link glslTodo              Todo
hi def link glslCommentL          glslComment
hi def link glslCommentStart      glslComment
hi def link glslComment           Comment
hi def link glslPreCondit         PreCondit
hi def link glslDefine            Define
hi def link glslTokenConcat       glslPreProc
hi def link glslPredefinedMacro   Macro
hi def link glslPreProc           PreProc
hi def link glslBoolean           Boolean
hi def link glslDecimalInt        glslNumber
hi def link glslOctalInt          glslNumber
hi def link glslHexInt            glslNumber
hi def link glslNumber            Number
hi def link glslFloat             Float

let b:current_syntax = "glsl"

" vim:set sw=2: