source: trunk/tools/vimlol/vimlol.vim @ 2181

Last change on this file since 2181 was 2181, checked in by sam, 7 years ago

vimlol: colourise section headers in LolFx files.

File size: 2.3 KB
Line 
1"""
2""" Experimental Lol Engine Vim plugin
3"""
4""" More info here:
5""" http://lol.zoy.org/wiki/dev/setup/vim
6"""
7
8
9"""
10""" Add syntax highlighting for new C++ types
11"""
12
13" some custom base types
14au Syntax cpp
15   \ syn keyword cType
16   \ half ldouble lldouble real uint
17
18" GLSL types and the Lol Engine extensions
19au Syntax cpp
20   \ syn keyword cType
21   \ f16vec2 f16cmplx f16vec3 f16vec4 f16quat f16mat2 f16mat3 f16mat4
22   \ vec2 cmplx vec3 vec4 quat mat2 mat3 mat4
23   \ f64vec2 f64cmplx f64vec3 f64vec4 f64quat f64mat2 f64mat3 f64mat4
24   \ f128vec2 f128cmplx f128vec3 f128vec4 f128quat f128mat2 f128mat3 f128mat4
25   \ rvec2 rcmplx rvec3 rvec4 rquat rmat2 rmat3 rmat4
26   \
27   \ i8vec2 i8cmplx i8vec3 i8vec4 i8quat i8mat2 i8mat3 i8mat4
28   \ u8vec2 u8cmplx u8vec3 u8vec4 u8quat u8mat2 u8mat3 u8mat4
29   \ i16vec2 i16cmplx i16vec3 i16vec4 i16quat i16mat2 i16mat3 i16mat4
30   \ u16vec2 u16cmplx u16vec3 u16vec4 u16quat u16mat2 u16mat3 u16mat4
31   \ ivec2 icmplx ivec3 ivec4 iquat imat2 imat3 imat4
32   \ uvec2 ucmplx uvec3 uvec4 uquat umat2 umat3 umat4
33   \ i64vec2 i64cmplx i64vec3 i64vec4 i64quat i64mat2 i64mat3 i64mat4
34   \ u64vec2 u64cmplx u64vec3 u64vec4 u64quat u64mat2 u64mat3 u64mat4
35
36" HLSL types
37au Syntax cpp
38   \ syn keyword cType
39   \ int2 int3 int4 int2x2 int3x3 int4x4
40   \ float2 float3 float4 float2x2 float3x3 float4x4
41
42
43"""
44""" LolFx language handler
45"""
46
47" For now, pretend .lolfx is C++
48au BufRead,BufNewFile *.lolfx set syntax=cpp
49
50" New sampler types (GLSL)
51au BufRead,BufNewFile *.lolfx syn match cType
52   \ "\<sampler\(\([12]D\|Cube\)\(Array\|\)\(Shadow\|\)\)\>"
53   \ "\<sampler\(3D\|2DRect\|Buffer\|2DMS\|2DMSArray\|2DRectShadow\)\>"
54
55" Type constructs (LolFx)
56au BufRead,BufNewFile *.lolfx syn keyword cppStructure
57   \ technique pass precision
58
59" Variable attributes (GLSL and some HLSL)
60au BufRead,BufNewFile *.lolfx syn keyword cType
61   \ in out uniform attribute varying
62
63" Texture operators (GLSL and HLSL)
64au BufRead,BufNewFile *.lolfx syn keyword cppOperator
65   \ texture1D texture2D texture3D tex2D tex3D
66
67" Handle #version constructs
68au BufRead,BufNewFile *.lolfx syn region cPreProc
69   \ start="^\s*\(%:\|#\)\s*version\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
70
71" LolFx shader region
72au BufRead,BufNewFile *.lolfx syn region cSpecial
73   \ start="^\s*\[[^\]]*\(glsl\|hlsl\)\]" end="$" contains=ALLBUT,@cPreProcGroup,@Spell
74
Note: See TracBrowser for help on using the repository browser.