1# Defines SciTE settings for OScript sources; osx files and/or OSpace dumps.
2# OScript is a programming language used to develop applications for the
3# Livelink server platform.
4
5##############################################################################
6# Specify file extension and lexer class.
7
8file.patterns.oscript=*.osx
9filter.oscript=OScript (osx)|$(file.patterns.oscript)|
10*filter.oscript=$(filter.oscript)
11lexer.$(file.patterns.oscript)=oscript
12
13##############################################################################
14# Specify various editor parameters.
15
16word.chars.oscript=$(chars.alpha)$(chars.numeric)_$
17word.characters.$(file.patterns.oscript)=$(word.chars.oscript)
18
19#comment.block.at.line.start.oscript=1
20comment.block.oscript=//~
21#~ comment.stream.start.oscript=#ifdef DOC
22#~ comment.stream.end.oscript=#endif
23comment.stream.start.oscript=/*
24comment.stream.end.oscript=*/
25comment.box.start.oscript=/*
26comment.box.middle.oscript= *
27comment.box.end.oscript= */
28
29statement.indent.$(file.patterns.oscript)=6 case default else for if \
30repeat switch while
31statement.lookback.$(file.patterns.oscript)=20
32statement.end.$(file.patterns.oscript)=10 ;
33block.start.$(file.patterns.oscript)=10 if
34block.end.$(file.patterns.oscript)=10 end
35indent.maintain.$(file.patterns.oscript)=1
36indent.size.$(file.patterns.oscript)=4
37use.tabs.$(file.patterns.oscript)=1
38tab.size.$(file.patterns.oscript)=4
39
40preprocessor.symbol.$(file.patterns.oscript)=#
41preprocessor.start.$(file.patterns.oscript)=ifdef ifndef
42preprocessor.middle.$(file.patterns.oscript)=else
43preprocessor.end.$(file.patterns.oscript)=endif
44
45##############################################################################
46# Specify API autocompletion and calltip help.
47
48api.$(file.patterns.oscript)=$(SciteDefaultHome)\api\oscript.api
49autocomplete.oscript.ignorecase=1
50calltip.oscript.ignorecase=1
51calltip.oscript.use.escapes=1
52calltip.oscript.word.characters=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$.
53
54##############################################################################
55# Define keyword classes separately according to the language semantics
56# before grouping them to keywords for styling. OScript is not case-sensitive;
57# all keywords configured here must be entered in lower-case.
58
59# Language native value and reference types.
60keywordclass.type=\
61assoc boolean bytes date dynamic error extern file integer list long object \
62point real recarray record script string
63
64# Word-like (literal) operators (boolean).
65keywordclass.operator=\
66and eq ge gt le lt ne not or xor
67
68# Code-flow control statements.
69keywordclass.oscript.control=\
70break breakif by case continue continueif default downto else elseif end for \
71goto if in repeat switch to until while
72
73# Keywords to declare functions.
74keywordclass.function=\
75function return void
76
77# Various language native keywords and reserved words.
78keywordclass.miscellaneous=\
79dll inbyref inout linked nodebug super this xcmd xfcn
80
81# Constants with values and defaults for primitive types.
82keywordclass.constant=\
83false true undefined
84
85# Language native constants (type classification integers).
86keywordclass.coreconstant=\
87booleantype bytestype datatype dynamictype errortype externtype integertype \
88listtype longtype objecttype objreftype pointtype realtype scripttype \
89stringtype undefinedtype voidtype
90
91# Language native functions not bound to any object (global).
92keywordclass.corefunction=\
93datatypename echo echodebug echoerror echoinfo echostamp echowarn \
94getfeatures isdefined iserror isfeature isinvokable isnoterror isnotset \
95isobject isset isundefined length nparameters parameters pointh pointv type
96
97# Object types available in Livelink kernel and core modules.
98keywordclass.builtintype=\
99cachetree capiconnect capierr capilog capilogin compiler dapisession \
100dapinode dapiversion dapistream filecopy fileprefs frame javaobject \
101mailmessage pop3session smtpsession ssloptions patfind patchange regex \
102socket sqlconnection sqlcursor uapisession uapiuser wapisession wapimap \
103wapimaptask wapiwork wapisubwork domattr domcdatasection domcharacterdata \
104domcomment domdocument domdocumentfragment domdocumenttype domelement \
105domentity domentityreference domimplementation domnamednodemap domnode \
106domnodelist domnotation domparser domprocessinginstruction domtext saxparser \
107xslprocessor
108
109# Singletons available in Livelink kernel and core modules; they offer only
110# static methods to call.
111keywordclass.builtinobject=\
112capi dapi env global language logging math memcached otds pattern security \
113sql str system uapi vis wapi web zip
114
115# Keywords usable in WebLingo sources (HTML templates including OScript).
116keywordclass.weblingo=\
117call html oscript
118
119##############################################################################
120# Define keyword groups that are recognized by the lexer and can be assigned
121# different styles.
122
123# Language native keywords: SCE_OSCRIPT_KEYWORD state.
124keywords.$(file.patterns.oscript)=$(keywordclass.oscript.control) \
125$(keywordclass.function) $(keywordclass.miscellaneous)
126
127# Constants: SCE_OSCRIPT_CONSTANT state.
128keywords2.$(file.patterns.oscript)=$(keywordclass.constant) \
129$(keywordclass.coreconstant)
130
131# Word-like (literal) operators: SCE_OSCRIPT_OPERATOR state.
132keywords3.$(file.patterns.oscript)=$(keywordclass.operator)
133
134# Value and reference (object) types: SCE_OSCRIPT_TYPE state.
135keywords4.$(file.patterns.oscript)=$(keywordclass.type) \
136$(keywordclass.builtintype)
137
138# Language native (global) functions: SCE_OSCRIPT_FUNCTION state.
139keywords5.$(file.patterns.oscript)=$(keywordclass.corefunction)
140
141# Core static objects: SCE_OSCRIPT_OBJECT state.
142keywords6.$(file.patterns.oscript)=$(keywordclass.builtinobject)
143
144##############################################################################
145# Define Style definitions supported by the lexical states. There are multiple
146# states for language keyword groups although they all are reserved words; to
147# be able ot assign them different styles.
148
149# Default text style.
150style.oscript.0=
151# Single-line comment.
152style.oscript.1=$(colour.code.comment.line),$(font.code.comment.line)
153# Multi-line comment.
154style.oscript.2=$(colour.code.comment.box),$(font.code.comment.box)
155# Documentation comment; a text delimited by preprocessor directives
156# #ifdef DOC and #endif; the value of DOC is supposed to be never defined.
157style.oscript.3=$(colour.code.comment.doc),$(font.code.comment.doc)
158# Preprocessor directive.
159style.oscript.4=$(colour.preproc)
160# Number.
161style.oscript.5=$(colour.number)
162# String enclosed in single quotes (apostrophes).
163style.oscript.6=$(colour.string)
164# String enclosed in double quotes (quotation marks).
165style.oscript.7=$(colour.string)
166# Constant literal. See the property keywords2 above.
167style.oscript.8=fore:#FF7F3F
168# Identifier of a variable, an object or a script.
169style.oscript.9=
170# Server-global variable (prefixed by $).
171style.oscript.10=fore:#7F007F
172# Language native keyword or reserved word. See the property keywords above.
173style.oscript.11=$(colour.keyword),bold
174# Operator; either symbolic or literal. See the property keywords3 above.
175style.oscript.12=$(colour.operator),bold
176# Label to jump to with the GoTo statement.
177style.oscript.13=fore:#FF00FF
178# Type available in the language, in kernel or code modules.
179# See the property keywords4 above.
180style.oscript.14=fore:#00007F
181# Global function in the language, in kernel or code modules.
182# See the property keywords5 above.
183style.oscript.15=fore:#0000FF
184# Static built-in object. See the property keywords6 above.
185style.oscript.16=fore:#007F7F
186# Object property.
187style.oscript.17=
188# Object method.
189style.oscript.18=
190
191braces.oscript.style=12
192
193##############################################################################
194# Specify help.
195
196if PLAT_WIN
197	command.help.$(file.patterns.oscript)=$(CurrentWord)!C:\LL971\builder\documentation.chm
198	command.help.subsystem.$(file.patterns.oscript)=4
199