# Define SciTE settings for PostScript files.

file.patterns.ps=*.ps

filter.ps=PostScript (ps)|$(file.patterns.ps)|

*filter.ps=$(filter.ps)

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

*language.postscript=P&ostScript|ps||

ps.tokenize=0
ps.level=3

comment.block.ps=%~

# Postscript level 1 operators
keywords.$(file.patterns.ps)=\
$error = == FontDirectory StandardEncoding UserObjects abs add aload \
anchorsearch and arc arcn arcto array ashow astore atan awidthshow begin bind \
bitshift bytesavailable cachestatus ceiling charpath clear cleardictstack \
cleartomark clip clippath closefile closepath concat concatmatrix copy copypage \
cos count countdictstack countexecstack counttomark currentcmykcolor \
currentcolorspace currentdash currentdict currentfile currentflat currentfont \
currentgray currenthsbcolor currentlinecap currentlinejoin currentlinewidth \
currentmatrix currentmiterlimit currentpagedevice currentpoint currentrgbcolor \
currentscreen currenttransfer cvi cvlit cvn cvr cvrs cvs cvx def defaultmatrix \
definefont dict dictstack div dtransform dup echo end eoclip eofill eq \
erasepage errordict exch exec execstack executeonly executive exit exp false \
file fill findfont flattenpath floor flush flushfile for forall ge get \
getinterval grestore grestoreall gsave gt idetmatrix idiv idtransform if ifelse \
image imagemask index initclip initgraphics initmatrix inustroke invertmatrix \
itransform known kshow le length lineto ln load log loop lt makefont mark \
matrix maxlength mod moveto mul ne neg newpath noaccess nor not null nulldevice \
or pathbbox pathforall pop print prompt pstack put putinterval quit rand rcheck \
rcurveto read readhexstring readline readonly readstring rectstroke repeat \
resetfile restore reversepath rlineto rmoveto roll rotate round rrand run save \
scale scalefont search setblackgeneration setcachedevice setcachelimit \
setcharwidth setcolorscreen setcolortransfer setdash setflat setfont setgray \
sethsbcolor setlinecap setlinejoin setlinewidth setmatrix setmiterlimit \
setpagedevice setrgbcolor setscreen settransfer setvmthreshold show showpage \
sin sqrt srand stack start status statusdict stop stopped store string \
stringwidth stroke strokepath sub systemdict token token transform translate \
true truncate type ueofill undefineresource userdict usertime version vmstatus \
wcheck where widthshow write writehexstring writestring xcheck xor

# Postscript level 2 operators
keywords2.$(file.patterns.ps)=\
GlobalFontDirectory ISOLatin1Encoding SharedFontDirectory UserObject arct \
colorimage cshow currentblackgeneration currentcacheparams currentcmykcolor \
currentcolor currentcolorrendering currentcolorscreen currentcolorspace \
currentcolortransfer currentdevparams currentglobal currentgstate \
currenthalftone currentobjectformat currentoverprint currentpacking \
currentpagedevice currentshared currentstrokeadjust currentsystemparams \
currentundercolorremoval currentuserparams defineresource defineuserobject \
deletefile execform execuserobject filenameforall fileposition filter \
findencoding findresource gcheck globaldict glyphshow gstate ineofill infill \
instroke inueofill inufill inustroke languagelevel makepattern packedarray \
printobject product realtime rectclip rectfill rectstroke renamefile \
resourceforall resourcestatus revision rootfont scheck selectfont serialnumber \
setbbox setblackgeneration setcachedevice2 setcacheparams setcmykcolor setcolor \
setcolorrendering setcolorscreen setcolorspace setcolortranfer setdevparams \
setfileposition setglobal setgstate sethalftone setobjectformat setoverprint \
setpacking setpagedevice setpattern setshared setstrokeadjust setsystemparams \
setucacheparams setundercolorremoval setuserparams setvmthreshold shareddict \
startjob uappend ucache ucachestatus ueofill ufill undef undefinefont \
undefineresource undefineuserobject upath ustroke ustrokepath vmreclaim \
writeobject xshow xyshow yshow

# Postscript level 3 operators
keywords3.$(file.patterns.ps)=\
cliprestore clipsave composefont currentsmoothness findcolorrendering \
setsmoothness shfill

# RIP-specific operators (Ghostscript)
keywords4.$(file.patterns.ps)=\
.begintransparencygroup .begintransparencymask .bytestring .charboxpath \
.currentaccuratecurves .currentblendmode .currentcurvejoin .currentdashadapt \
.currentdotlength .currentfilladjust2 .currentlimitclamp .currentopacityalpha \
.currentoverprintmode .currentrasterop .currentshapealpha \
.currentsourcetransparent .currenttextknockout .currenttexturetransparent \
.dashpath .dicttomark .discardtransparencygroup .discardtransparencymask \
.endtransparencygroup .endtransparencymask .execn .filename .filename \
.fileposition .forceput .forceundef .forgetsave .getbitsrect .getdevice \
.inittransparencymask .knownget .locksafe .makeoperator .namestring .oserrno \
.oserrorstring .peekstring .rectappend .runandhide .setaccuratecurves \
.setblendmode .setcurvejoin .setdashadapt .setdebug .setdefaultmatrix \
.setdotlength .setfilladjust2 .setlimitclamp .setmaxlength .setopacityalpha \
.setoverprintmode .setrasterop .setsafe .setshapealpha .setsourcetransparent \
.settextknockout .settexturetransparent .stringbreak .stringmatch .tempfile \
.type1decrypt .type1encrypt .type1execchar .unread arccos arcsin copydevice \
copyscanlines currentdevice finddevice findlibfile findprotodevice flushpage \
getdeviceprops getenv makeimagedevice makewordimagedevice max min \
putdeviceprops setdevice

# PostScript styles

#Default
style.ps.0=$(font.base)
# Comment
style.ps.1=$(colour.code.comment.line),$(font.code.comment.line)
# DSC comment
style.ps.2=$(colour.code.comment.doc),$(font.code.comment.doc)
# DSC comment value
style.ps.3=fore:#3060A0,$(font.code.comment.doc)
# Number
style.ps.4=$(colour.number)
# Name
style.ps.5=$(colour.operator)
# Keyword
style.ps.6=$(colour.keyword),bold
# Literal
style.ps.7=$(colour.preproc)
# Immediately evaluated literal
style.ps.8=$(colour.preproc),bold
# Array parenthesis
style.ps.9=$(colour.keyword)
# Dictionary parenthesis
style.ps.10=fore:#3060A0
# Procedure parenthesis
style.ps.11=$(colour.operator),bold
# Text
style.ps.12=$(colour.string),$(font.text)
# Hex string
style.ps.13=fore:#3F7F3F
# Base85 string
style.ps.14=$(colour.string)
# Bad string character
style.ps.15=$(colour.error)
# Braces are only matched in procedure parenthesis style
braces.ps.style=11

if PLAT_WIN
    command.go.*.ps=gswin32c "$(FileNameExt)"

if PLAT_GTK
    command.go.*.ps=gs "$(FileNameExt)"

