# Define SciTE settings for POV-Ray SDL files.

file.patterns.pov=*.pov;*.inc

filter.pov=POV-Ray SDL (pov)|$(file.patterns.pov)|

*filter.pov=$(filter.pov)

indent.size.*.pov=2
tab.size.*.pov=2
use.tabs.*.pov=0
indent.size.*.inc=2
tab.size.*.inc=2
use.tabs.*.inc=0

lexer.$(file.patterns.pov)=pov

*language.povray=P&OV-Ray SDL|pov||

word.chars.pov=$(chars.alpha)$(chars.numeric)_#
word.characters.$(file.patterns.pov)=$(word.chars.pov)

api.*.pov=POV-Ray_SDL.api
#autocomplete.pov.ignorecase=1
autocomplete.pov.start.characters=.
#autocomplete.pov.fillups=(
#calltip.pov_quote.ignorecase=1
calltip.pov.word.characters=.$(word.chars.pov)

comment.block.at.line.start.pov=1
comment.block.pov=//~
#~ comment.stream.start.pov=#ifdef BOOFOO
#~ comment.stream.end.pov=#endif
comment.stream.start.pov=/*
comment.stream.end.pov=*/
comment.box.start.pov=/*
comment.box.middle.pov= *
comment.box.end.pov= */

#~ statement.indent.$(file.patterns.pov)=5 case catch class default do else for if \
#~ private protected public struct try union while
#~ statement.lookback.$(file.patterns.pov)=20
#~ block.start.$(file.patterns.pov)=10 {
#~ block.end.$(file.patterns.pov)=10 }
#indent.maintain.$(file.patterns.pov)=1
#indent.size.$(file.patterns.pov)=4
#tab.size.$(file.patterns.pov)=4
#use.tabs.$(file.patterns.pov)=1

# Actually, these are SDL directives, but SciTE is seeking for the preprocessor.* properties
preprocessor.symbol.$(file.patterns.pov)=#
preprocessor.start.$(file.patterns.pov)=if ifdef ifndef switch while macro
preprocessor.middle.$(file.patterns.pov)=else
preprocessor.end.$(file.patterns.pov)=end

# keywords(1) is for Language directives (#xxx)
keywordclass.pov=declare local include undef fopen fclose read write default version \
case range break debug error warning \
if ifdef ifndef switch while macro else end

keywords.$(file.patterns.pov)=$(keywordclass.pov)

# keywords2 is for Objects & CSG & Appearance (xxx {})
keywords2.$(file.patterns.pov)=camera light_source light_group \
object blob sphere cylinder box cone height_field julia_fractal \
lathe prism sphere_sweep superellipsoid sor text torus \
bicubic_patch disc mesh mesh2 polygon triangle smooth_triangle \
plane poly cubic quartic quadric isosurface parametric \
union intersection difference merge function array spline \
vertex_vectors normal_vectors uv_vectors face_indices normal_indices uv_indices \
texture texture_list interior_texture \
texture_map material_map image_map color_map colour_map pigment_map \
normal_map slope_map bump_map density_map \
pigment normal material interior finish reflection irid slope pigment_pattern image_pattern \
warp media scattering density background fog sky_sphere rainbow \
global_settings radiosity photons pattern \
transform looks_like projected_through contained_by clipped_by bounded_by

# keywords3 is for Types & Modifiers & Items
keywords3.$(file.patterns.pov)=linear_spline quadratic_spline cubic_spline natural_spline bezier_spline b_spline \
read write append inverse open \
perspective orthographic fisheye ultra_wide_angle omnimax panoramic \
spherical spotlight jitter circular orient \
media_attenuation media_interaction shadowless parallel \
refraction collect pass_through global_lights hierarchy sturm smooth \
gif tga iff pot png pgm ppm jpeg tiff sys ttf \
quaternion hypercomplex linear_sweep conic_sweep \
type all_intersections split_union cutaway_textures \
no_shadow no_image no_reflection double_illuminate hollow \
uv_mapping all use_index use_color use_colour no_bump_scale \
conserve_energy fresnel \
average agate boxed bozo bumps cells crackle cylindrical density_file dents \
facets granite leopard marble onion planar quilted radial ripples spotted waves wood wrinkles \
solid use_alpha interpolate magnet noise_generator toroidal \
ramp_wave triangle_wave sine_wave scallop_wave cubic_wave poly_wave \
once map_type method fog_type hf_gray_16 charset ascii utf8 \
rotate scale translate matrix location right up direction sky \
angle look_at aperture blur_samples focal_point confidence variance \
radius falloff tightness point_at area_light adaptive fade_distance fade_power \
threshold strength water_level tolerance max_iteration precision slice \
u_steps v_steps flatness inside_vector \
accuracy max_gradient evaluate max_trace precompute \
target ior dispersion dispersion_samples caustics \
color colour rgb rgbf rgbt rgbft red green blue filter transmit gray hf \
fade_color fade_colour quick_color quick_colour \
brick checker hexagon brick_size mortar bump_size \
ambient diffuse brilliance crand phong phong_size metallic specular \
roughness reflection_exponent exponent thickness \
gradient spiral1 spiral2 agate_turb form metric \
offset df3 coords size mandel exterior julia \
control0 control1 altitude turbulence octaves omega lambda \
repeat flip black-hole orientation dist_exp major_radius \
frequency phase intervals samples ratio absorption emission aa_threshold aa_level \
eccentricity extinction distance turb_depth fog_offset fog_alt width arc_angle falloff_angle \
adc_bailout ambient_light assumed_gamma irid_wavelength number_of_waves \
always_sample brigthness count error_bound gray_threshold load_file \
low_error_factor max_sample minimum_reuse nearest_count \
pretrace_end pretrace_start recursion_limit save_file \
spacing gather max_trace_level autostop expand_thresholds

# keywords4 is for Predefined Identifiers
keywords4.$(file.patterns.pov)=x y z t u v \
yes no true false on off \
clock clock_delta clock_on final_clock final_frame frame_number \
image_height image_width initial_clock initial_frame pi version

# keywords5 is for Predefined Functions
keywords5.$(file.patterns.pov)=abs acos acosh asc asin asinh atan atanh atan2 \
ceil cos cosh defined degrees dimensions dimension_size div exp file_exists floor \
inside int ln log max min mod pow prod radians rand seed select sin sinh sqrt strcmp \
strlen sum tan tanh val vdot vlength min_extent max_extent trace vaxis_rotate \
vcross vrotate vnormalize vturbulence chr concat str strlwr strupr substr vstr \
sqr cube reciprocal pwr

# keywords6 is for User defined keywords 1
keywords6.$(file.patterns.pov)=

# keywords7 is for User defined keywords 2
keywords7.$(file.patterns.pov)=

# keywords8 is for User defined keywords 3
keywords8.$(file.patterns.pov)=

# POV-Ray SDL styles

# Default
style.pov.32=$(font.code.base)
# White space: Visible only in View Whitespace mode (or if it has a back colour)
style.pov.0=fore:#FF0080
# Comment: /* */. Use fixed font to keep boxed comments as boxes
style.pov.1=$(colour.code.comment.box),$(font.code.comment.box)
# Line Comment: //. Proportionnal font is generally OK here
style.pov.2=$(colour.code.comment.line),$(font.code.comment.line)
# Number
style.pov.3=$(colour.number)
# Operators
style.pov.4=$(colour.operator)
# Identifiers (everything else...)
style.pov.5=
# Double quoted string
style.pov.6=$(colour.string)
# End of line where string is not closed
style.pov.7=back:#E0C0E0,eolfilled,$(font.computer),bold
# Directive: #keyword
style.pov.8=$(colour.preproc)
# Directive keyword error
style.pov.9=fore:#804020,$(font.code.comment.doc),italics
# Keywords (bozo test colors :-)
# Keyword 2: Objects & CSG & Appearance (xxx {})
style.pov.10=$(colour.keyword),back:#FFD0D0
# Keyword 3: Types & Modifiers & Items
style.pov.11=$(colour.keyword),back:#FFFFD0
# Keyword 4: Predefined Identifiers
style.pov.12=$(colour.keyword),bold
# Keyword 5: Predefined Functions
style.pov.13=$(colour.keyword),back:#D0D0FF
# Keyword 6
style.pov.14=$(colour.keyword),back:#D0FFD0
# Keyword 7
style.pov.15=$(colour.keyword),back:#D0D0D0
# Keyword 8
style.pov.16=$(colour.keyword),back:#E0E0E0
# Braces are only matched in operator style
braces.pov.style=4

if PLAT_WIN
	command.compile.*.pov=pvengine.exe "$(FileName)"
	command.build.*.pov=
	command.go.*.pov=pvengine.exe "$(FileName)"
if PLAT_GTK
	command.compile.*.pov=povray +P "$(FileName).pov"
	command.build.*.pov=
	command.go.*.pov=povray +P "$(FileName).pov"

if PLAT_WIN
	command.help.$(file.patterns.pov)=$(CurrentWord)!D:\Programmes\UImages\POV-Ray 3.5\help\povray35.chm
	command.help.subsystem.$(file.patterns.pov)=4
