1" Vim syntax file 2" This is a GENERATED FILE. Please always refer to source file at the URI below. 3" Language: PoV-Ray(tm) 3.5 Scene Description Language 4" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> 5" Last Change: 2003 Apr 25 6" URL: http://physics.muni.cz/~yeti/download/syntax/pov.vim 7" Required Vim Version: 6.0 8 9" Setup 10if version >= 600 11 " Quit when a syntax file was already loaded 12 if exists("b:current_syntax") 13 finish 14 endif 15else 16 " Croak when an old Vim is sourcing us. 17 echo "Sorry, but this syntax file relies on Vim 6 features. Either upgrade Vim or use a version of " . expand("<sfile>:t:r") . " syntax file appropriate for Vim " . version/100 . "." . version %100 . "." 18 finish 19endif 20 21syn case match 22 23" Top level stuff 24syn keyword povCommands global_settings 25syn keyword povObjects array atmosphere background bicubic_patch blob box camera component cone cubic cylinder disc fog height_field isosurface julia_fractal lathe light_group light_source mesh mesh2 object parametric pattern photons plane poly polygon prism quadric quartic rainbow sky_sphere smooth_triangle sor sphere sphere_sweep spline superellipsoid text torus triangle 26syn keyword povCSG clipped_by composite contained_by difference intersection merge union 27syn keyword povAppearance interior material media texture interior_texture texture_list 28syn keyword povGlobalSettings ambient_light assumed_gamma charset hf_gray_16 irid_wavelength max_intersections max_trace_level number_of_waves radiosity noise_generator 29syn keyword povTransform inverse matrix rotate scale translate transform 30 31" Descriptors 32syn keyword povDescriptors finish normal pigment uv_mapping uv_vectors vertex_vectors 33syn keyword povDescriptors adc_bailout always_sample brightness count error_bound distance_maximum gray_threshold load_file low_error_factor max_sample media minimum_reuse nearest_count normal pretrace_end pretrace_start recursion_limit save_file 34syn keyword povDescriptors color colour gray rgb rgbt rgbf rgbft red green blue 35syn keyword povDescriptors bump_map color_map colour_map image_map material_map pigment_map quick_color quick_colour normal_map texture_map image_pattern pigment_pattern 36syn keyword povDescriptors ambient brilliance conserve_energy crand diffuse fresnel irid metallic phong phong_size refraction reflection reflection_exponent roughness specular 37syn keyword povDescriptors cylinder fisheye omnimax orthographic panoramic perspective spherical ultra_wide_angle 38syn keyword povDescriptors agate average brick boxed bozo bumps cells checker crackle cylindrical dents facets function gradient granite hexagon julia leopard magnet mandel marble onion planar quilted radial ripples slope spherical spiral1 spiral2 spotted tiles tiles2 toroidal waves wood wrinkles 39syn keyword povDescriptors density_file 40syn keyword povDescriptors area_light shadowless spotlight parallel 41syn keyword povDescriptors absorption confidence density emission intervals ratio samples scattering variance 42syn keyword povDescriptors distance fog_alt fog_offset fog_type turb_depth 43syn keyword povDescriptors b_spline bezier_spline cubic_spline evaluate face_indices form linear_spline max_gradient natural_spline normal_indices normal_vectors quadratic_spline uv_indices 44syn keyword povDescriptors target 45 46" Modifiers 47syn keyword povModifiers caustics dispersion dispersion_samples fade_color fade_colour fade_distance fade_power ior 48syn keyword povModifiers bounded_by double_illuminate hierarchy hollow no_shadow open smooth sturm threshold water_level 49syn keyword povModifiers hypercomplex max_iteration precision quaternion slice 50syn keyword povModifiers conic_sweep linear_sweep 51syn keyword povModifiers flatness type u_steps v_steps 52syn keyword povModifiers aa_level aa_threshold adaptive falloff jitter looks_like media_attenuation media_interaction method point_at radius tightness 53syn keyword povModifiers angle aperture blur_samples confidence direction focal_point h_angle location look_at right sky up v_angle variance 54syn keyword povModifiers all bump_size filter interpolate map_type once slope_map transmit use_alpha use_color use_colour use_index 55syn keyword povModifiers black_hole agate_turb brick_size control0 control1 cubic_wave density_map flip frequency interpolate inverse lambda metric mortar octaves offset omega phase poly_wave ramp_wave repeat scallop_wave sine_wave size strength triangle_wave thickness turbulence turb_depth type warp 56syn keyword povModifiers eccentricity extinction 57syn keyword povModifiers arc_angle falloff_angle width 58syn keyword povModifiers accuracy all_intersections altitude autostop circular collect coords cutaway_textures dist_exp expand_thresholds exponent exterior gather global_lights major_radius max_trace no_bump_scale no_image no_reflection orient orientation pass_through precompute projected_through range_divider solid spacing split_union tolerance 59 60" Words not marked `reserved' in documentation, but... 61syn keyword povBMPType alpha gif iff jpeg pgm png pot ppm sys tga tiff contained 62syn keyword povFontType ttf contained 63syn keyword povDensityType df3 contained 64syn keyword povCharset ascii utf8 contained 65 66" Math functions on floats, vectors and strings 67syn keyword povFunctions abs acos acosh asc asin asinh atan atan2 atanh ceil cos cosh defined degrees dimensions dimension_size div exp file_exists floor int internal ln log max min mod pow radians rand seed select sin sinh sqrt strcmp strlen tan tanh val vdot vlength vstr vturbulence 68syn keyword povFunctions min_extent max_extent trace vcross vrotate vaxis_rotate vnormalize vturbulence 69syn keyword povFunctions chr concat substr str strupr strlwr 70syn keyword povJuliaFunctions acosh asinh atan cosh cube pwr reciprocal sinh sqr tanh 71 72" Specialities 73syn keyword povConsts clock clock_delta clock_on final_clock final_frame frame_number initial_clock initial_frame image_width image_height false no off on pi t true u v version x y yes z 74syn match povDotItem "\.\@<=\(blue\|green\|filter\|red\|transmit\|t\|u\|v\|x\|y\|z\)\>" display 75 76" Comments 77syn region povComment start="/\*" end="\*/" contains=povTodo,povComment 78syn match povComment "//.*" contains=povTodo 79syn match povCommentError "\*/" 80syn sync ccomment povComment 81syn sync minlines=50 82syn keyword povTodo TODO FIXME XXX NOT contained 83syn cluster povPRIVATE add=povTodo 84 85" Language directives 86syn match povConditionalDir "#\s*\(else\|end\|if\|ifdef\|ifndef\|switch\|while\)\>" 87syn match povLabelDir "#\s*\(break\|case\|default\|range\)\>" 88syn match povDeclareDir "#\s*\(declare\|default\|local\|macro\|undef\|version\)\>" 89syn match povIncludeDir "#\s*include\>" 90syn match povFileDir "#\s*\(fclose\|fopen\|read\|write\)\>" 91syn match povMessageDir "#\s*\(debug\|error\|render\|statistics\|warning\)\>" 92syn region povFileOpen start="#\s*fopen\>" skip=+"[^"]*"+ matchgroup=povOpenType end="\<\(read\|write\|append\)\>" contains=ALLBUT,PovParenError,PovBraceError,@PovPRIVATE transparent keepend 93 94" Literal strings 95syn match povSpecialChar "\\\d\d\d\|\\." contained 96syn region povString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=povSpecialChar oneline 97syn cluster povPRIVATE add=povSpecialChar 98 99" Catch errors caused by wrong parenthesization 100syn region povParen start='(' end=')' contains=ALLBUT,povParenError,@povPRIVATE transparent 101syn match povParenError ")" 102syn region povBrace start='{' end='}' contains=ALLBUT,povBraceError,@povPRIVATE transparent 103syn match povBraceError "}" 104 105" Numbers 106syn match povNumber "\(^\|\W\)\@<=[+-]\=\(\d\+\)\=\.\=\d\+\([eE][+-]\=\d\+\)\=" 107 108" Define the default highlighting 109hi def link povComment Comment 110hi def link povTodo Todo 111hi def link povNumber Number 112hi def link povString String 113hi def link povFileOpen Constant 114hi def link povConsts Constant 115hi def link povDotItem Constant 116hi def link povBMPType povSpecial 117hi def link povCharset povSpecial 118hi def link povDensityType povSpecial 119hi def link povFontType povSpecial 120hi def link povOpenType povSpecial 121hi def link povSpecialChar povSpecial 122hi def link povSpecial Special 123hi def link povConditionalDir PreProc 124hi def link povLabelDir PreProc 125hi def link povDeclareDir Define 126hi def link povIncludeDir Include 127hi def link povFileDir PreProc 128hi def link povMessageDir Debug 129hi def link povAppearance povDescriptors 130hi def link povObjects povDescriptors 131hi def link povGlobalSettings povDescriptors 132hi def link povDescriptors Type 133hi def link povJuliaFunctions PovFunctions 134hi def link povModifiers povFunctions 135hi def link povFunctions Function 136hi def link povCommands Operator 137hi def link povTransform Operator 138hi def link povCSG Operator 139hi def link povParenError povError 140hi def link povBraceError povError 141hi def link povCommentError povError 142hi def link povError Error 143 144let b:current_syntax = "pov" 145