You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.8 KiB

  1. """
  2. """ Experimental Lol Engine Vim plugin
  3. """
  4. """ More info here:
  5. """ http://lolengine.net/wiki/dev/setup/vim
  6. """
  7. """
  8. """ Add syntax highlighting for new C++ types
  9. """
  10. " some custom base types
  11. au Syntax cpp
  12. \ syn keyword cType
  13. \ half ldouble lldouble real uint
  14. " Some custom container types
  15. au Syntax cpp
  16. \ syn keyword cType
  17. \ array array2d array3d hash map
  18. " GLSL types and the Lol Engine extensions
  19. au 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. " HLSL types
  36. au Syntax cpp
  37. \ syn keyword cType
  38. \ int2 int3 int4 int2x2 int3x3 int4x4
  39. \ float2 float3 float4 float2x2 float3x3 float4x4
  40. " More GLSL-like types from the Lol Engine
  41. au Syntax cpp
  42. \ syn keyword cType
  43. \ box2 dbox2 ibox2 ubox2
  44. \ box3 dbox3 ibox3 ubox3
  45. " Ensure we know about nullptr
  46. au Syntax cpp
  47. \ syn keyword cConstant
  48. \ nullptr
  49. " New maths constants
  50. au Syntax cpp
  51. \ syn match cConstant
  52. \ "\<\(F\|D\|LD\)_\(PI\|PI_[234]\|[12]_PI\|SQRT_[23]\|SQRT_1_2\)\>"
  53. " Global keywords
  54. au Syntax cpp
  55. \ syn keyword cConstant
  56. \ UNUSED ASSERT
  57. """
  58. """ LolFx language handler
  59. """
  60. " For now, pretend .lolfx is C++
  61. au BufRead,BufNewFile *.lolfx set syntax=cpp
  62. " New sampler types (GLSL)
  63. au BufRead,BufNewFile *.lolfx syn match cType
  64. \ "\<sampler\(\([12]D\|Cube\)\(Array\|\)\(Shadow\|\)\)\>"
  65. \ "\<sampler\(3D\|2DRect\|Buffer\|2DMS\|2DMSArray\|2DRectShadow\)\>"
  66. " Type constructs (LolFx)
  67. au BufRead,BufNewFile *.lolfx syn keyword cppStructure
  68. \ technique pass precision
  69. " Variable attributes (GLSL and some HLSL)
  70. au BufRead,BufNewFile *.lolfx syn keyword cType
  71. \ in out uniform attribute varying
  72. " Texture operators (GLSL and HLSL)
  73. au BufRead,BufNewFile *.lolfx syn keyword cppOperator
  74. \ texture1D texture2D texture3D tex2D tex3D
  75. " Handle #version constructs
  76. au BufRead,BufNewFile *.lolfx syn region cPreProc
  77. \ start="^\s*\(%:\|#\)\s*version\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
  78. " LolFx shader region
  79. au BufRead,BufNewFile *.lolfx syn region cSpecial
  80. \ start="^\s*\[[^\]]*\(glsl\|hlsl\)\]" end="$" contains=ALLBUT,@cPreProcGroup,@Spell