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

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

base: start removing occurrences of NULL on our long journey to nullptr.

File size: 2.4 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" Ensure we know about nullptr
43au Syntax cpp
44   \ syn keyword cConstant
45   \ nullptr
46
47
48"""
49""" LolFx language handler
50"""
51
52" For now, pretend .lolfx is C++
53au BufRead,BufNewFile *.lolfx set syntax=cpp
54
55" New sampler types (GLSL)
56au BufRead,BufNewFile *.lolfx syn match cType
57   \ "\<sampler\(\([12]D\|Cube\)\(Array\|\)\(Shadow\|\)\)\>"
58   \ "\<sampler\(3D\|2DRect\|Buffer\|2DMS\|2DMSArray\|2DRectShadow\)\>"
59
60" Type constructs (LolFx)
61au BufRead,BufNewFile *.lolfx syn keyword cppStructure
62   \ technique pass precision
63
64" Variable attributes (GLSL and some HLSL)
65au BufRead,BufNewFile *.lolfx syn keyword cType
66   \ in out uniform attribute varying
67
68" Texture operators (GLSL and HLSL)
69au BufRead,BufNewFile *.lolfx syn keyword cppOperator
70   \ texture1D texture2D texture3D tex2D tex3D
71
72" Handle #version constructs
73au BufRead,BufNewFile *.lolfx syn region cPreProc
74   \ start="^\s*\(%:\|#\)\s*version\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
75
76" LolFx shader region
77au BufRead,BufNewFile *.lolfx syn region cSpecial
78   \ start="^\s*\[[^\]]*\(glsl\|hlsl\)\]" end="$" contains=ALLBUT,@cPreProcGroup,@Spell
79
Note: See TracBrowser for help on using the repository browser.