1# Define SciTE settings for C++, C, C#, Ch, Java, IDL, JavaScript, Flash (ActionScript 2) files.
2
3# sma files are Small script (C-like)
4file.patterns.cpp=*.c;*.cc;*.cpp;*.cxx;*.h;*.hh;*.hpp;*.hxx;*.ipp;*.m;*.mm;*.sma
5file.patterns.cplusplus=*.cc;*.cpp;*.cxx
6# jad = decompiled class files; pde = Processing.org sketch files
7file.patterns.java=*.java;*.jad;*.pde
8# pln, inc and t are SilkTest (4Test) files.
9file.patterns.test=*.pln;*.inc;*.t
10# es = JS dialect of Abobe for SVG
11file.patterns.js=*.js;*.es;*.ts;*.jse;*.jsm;*.mjs;*.qs
12file.patterns.cs=*.cs
13file.patterns.rc=*.rc;*.rc2;*.dlg
14file.patterns.idl=*.idl;*.odl
15file.patterns.flash=*.as;*.asc;*.jsfl
16file.patterns.ch=*.ch;*.chf;*.chs
17file.patterns.vala=*.vala
18file.patterns.go=*.go
19file.patterns.pike=*.pike
20file.patterns.swift=*.swift
21file.patterns.c.like=$(file.patterns.cpp);$(file.patterns.cs);$(file.patterns.idl);$(file.patterns.java);$(file.patterns.js);$(file.patterns.flash);$(file.patterns.ch);$(file.patterns.vala);$(file.patterns.pike)
22file.patterns.meson=meson.build
23
24*source.patterns.cpp=$(file.patterns.c.like);
25*source.patterns.resource=$(file.patterns.rc);*.def;
26
27shbang.tcc=cpp
28shbang.tinycc=cpp
29
30filter.cpp=C/C++ (c cc cpp cxx cs vala h hh hxx hpp ipp dlg rc rc2 mak)|\
31$(file.patterns.cpp);$(file.patterns.cs);$(file.patterns.rc);$(file.patterns.vala);*.mak;make*|
32filter.java=Java (java)|*.java|
33filter.js=JavaScript (js es ts)|$(file.patterns.js)|
34filter.idl=IDL (idl odl)|$(file.patterns.idl)|
35filter.test=SilkTest (pln inc t)|$(file.patterns.test)|
36filter.flash=Flash (as asc jsfl)|$(file.patterns.flash)|
37filter.ch=Ch (ch chf chs)|$(file.patterns.ch)|
38filter.go=Go (go)|$(file.patterns.go)|
39filter.pike=Pike (pike)|$(file.patterns.pike)|
40filter.swift=Swift (swift)|$(file.patterns.swift)|
41
42*filter.cpp=$(filter.cpp)
43*filter.java=$(filter.java)
44*filter.javascript=$(filter.js)
45*filter.idl=$(filter.idl)
46
47lexer.$(file.patterns.java)=cpp
48lexer.$(file.patterns.cpp)=cpp
49lexer.$(file.patterns.rc)=cpp
50lexer.$(file.patterns.idl)=cpp
51lexer.$(file.patterns.cs)=cpp
52lexer.$(file.patterns.js)=cpp
53lexer.$(file.patterns.test)=cpp
54lexer.$(file.patterns.flash)=cpp
55lexer.$(file.patterns.ch)=cpp
56lexer.$(file.patterns.vala)=cpp
57lexer.$(file.patterns.go)=cpp
58lexer.$(file.patterns.pike)=cpp
59lexer.$(file.patterns.swift)=cpp
60lexer.$(file.patterns.meson)=cpp
61
62*language.c=&C / C++|c||
63*language.csharp=C&#|cs||
64*language.java=&Java|java||
65*language.javascript=Java&Script|js||
66#*language.resource=Reso&urce|rc||
67
68keywordclass.cpp=alignas alignof and and_eq asm audit auto axiom bitand bitor bool break \
69case catch char char8_t char16_t char32_t class compl concept \
70const consteval constexpr const_cast continue co_await co_return co_yield \
71decltype default delete do double dynamic_cast else enum explicit export extern false final float for \
72friend goto if import inline int long module mutable namespace new noexcept not not_eq nullptr \
73operator or or_eq override private protected public \
74register reinterpret_cast requires return \
75short signed sizeof static static_assert static_cast struct switch \
76template this thread_local throw true try typedef typeid typename union unsigned using \
77virtual void volatile wchar_t while xor xor_eq
78
79directives.objective.c=\
80@class @defs @protocol @required @optional @end \
81@interface @public @package @protected @private @property \
82@implementation @synthesize @dynamic \
83@throw @try @catch @finally \
84@synchronized @autoreleasepool \
85@selector @encode \
86@compatibility_alias
87
88# Since Objective C and C++ share the .h extension, allow Objective C directives as keywords
89# For stricter display of pure C++, specify keywords.$(file.patterns.cpp)=$(keywordclass.cpp)
90keywords.$(file.patterns.cpp)=$(keywordclass.cpp) $(directives.objective.c)
91
92# keywords2 is for highlighting user defined keywords or function calls or similar
93#keywords2.$(file.patterns.cpp)=file
94
95# keywords3 is for doc comment keywords, highlighted in style 17
96#CPP doxygen
97file.patterns.doxygen.langs=$(file.patterns.cpp);$(file.patterns.java)
98keywordclass.doxygen=a addindex addtogroup anchor arg attention \
99author b brief bug c class code date def defgroup deprecated dontinclude \
100e em endcode endhtmlonly endif endlatexonly endlink endverbatim enum example exception \
101f$ f[ f] file fn hideinitializer htmlinclude htmlonly \
102if image include ingroup internal invariant interface latexonly li line link \
103mainpage name namespace nosubgrouping note overload \
104p page par param param[in] param[out] \
105post pre ref relates remarks return retval \
106sa section see showinitializer since skip skipline struct subsection \
107test throw throws todo typedef union until \
108var verbatim verbinclude version warning weakgroup $ @ \ & < > # { }
109keywords3.$(file.patterns.doxygen.langs)=$(keywordclass.doxygen)
110
111# keywords5 is for preprocessor definitions and will cause inactive code
112# to be greyed out. This setting is a space separated list of definitions
113# where a definition may be of the form NAME=VALUE or simply NAME.
114#keywords5.$(file.patterns.cpp)=_MSC_VER SCI_NAMESPACE GTK_MAJOR_VERSION=2
115
116word.chars.cxx=$(chars.alpha)$(chars.numeric)_#
117word.characters.$(file.patterns.cpp)=$(word.chars.cxx)
118calltip.cpp.word.characters=$(chars.alpha)$(chars.numeric)_
119comment.block.cpp=//~
120#comment.block.at.line.start.cpp=1
121comment.stream.start.cpp=/*
122comment.stream.end.cpp=*/
123comment.box.start.cpp=/*
124comment.box.middle.cpp= *
125comment.box.end.cpp= */
126
127# Folding
128#fold.cpp.syntax.based=0
129#fold.comment=0
130#fold.cpp.comment.multiline=0
131#fold.cpp.comment.explicit=0
132#defaults for fold.cpp.explicit.start=//{ and fold.cpp.explicit.end=//}
133#  can be replaced by defining custom strings, e.g. //[ and //]
134#fold.cpp.explicit.start=//[
135#fold.cpp.explicit.end=//]
136#if fold strings are set to something like /*{{{ and /*}}} (Origami/WinF style fold strings), enable
137#  fold.cpp.explicit.anywhere, allowing explicit fold points being anywhere, not just in line comments
138#fold.cpp.explicit.anywhere=1
139#fold.preprocessor=1
140#fold.compact=1
141#fold.at.else=1
142
143file.patterns.c.except.cpp=$(file.patterns.cs);$(file.patterns.idl);*.java;$(file.patterns.flash);$(file.patterns.ch)
144statement.indent.$(file.patterns.c.except.cpp)=5 case default do else for if while
145statement.indent.$(file.patterns.cpp)=5 case default do else for if private protected public while
146statement.end.$(file.patterns.c.like)=10 ;
147statement.lookback.$(file.patterns.c.like)=20
148block.start.$(file.patterns.c.like)=10 {
149block.end.$(file.patterns.c.like)=10 }
150
151#autocomplete.cpp.fillups=(
152
153#styling.within.preprocessor=1
154preprocessor.symbol.$(file.patterns.cpp)=#
155preprocessor.start.$(file.patterns.cpp)=if ifdef ifndef
156preprocessor.middle.$(file.patterns.cpp)=else elif
157preprocessor.end.$(file.patterns.cpp)=endif
158
159preprocessor.symbol.$(file.patterns.cs)=#
160preprocessor.start.$(file.patterns.cs)=if region
161preprocessor.middle.$(file.patterns.cs)=else elif
162preprocessor.end.$(file.patterns.cs)=endif endregion
163
164keywordclass.ch=\
165auto array bool break case char class complex ComplexInf ComplexNaN \
166const continue default delete \
167do double else enum export extern float for foreach goto if Inf inline int \
168long namespace NaN new NULL private public register restrict return short \
169signed sizeof static string_t struct switch this typedef union unsigned \
170using void volatile wchar_t while __declspec
171keywords.$(file.patterns.ch)=$(keywordclass.ch)
172word.chars.ch=$(chars.alpha)$(chars.numeric)_#
173word.characters.$(file.patterns.ch)=$(word.chars.cxx)
174comment.block.ch=//~
175#comment.block.at.line.start.ch=1
176comment.stream.start.ch=/*
177comment.stream.end.ch=*/
178comment.box.start.ch=/*
179comment.box.middle.ch= *
180comment.box.end.ch= */
181preprocessor.symbol.$(file.patterns.ch)=#
182preprocessor.start.$(file.patterns.ch)=if ifdef ifndef
183preprocessor.middle.$(file.patterns.ch)=else elif
184preprocessor.end.$(file.patterns.ch)=endif
185
186keywordclass.cs=abstract as ascending base bool break by byte case catch char checked \
187class const continue decimal default delegate descending do double else enum \
188equals event explicit extern false finally fixed float for foreach from goto group if \
189implicit in int interface internal into is join lock let long namespace new null \
190object on operator orderby out override params private protected public \
191readonly ref return sbyte sealed select short sizeof stackalloc static \
192string struct switch this throw true try typeof uint ulong \
193unchecked unsafe ushort using var virtual void volatile where while
194keywords.$(file.patterns.cs)=$(keywordclass.cs)
195word.characters.$(file.patterns.cs)=$(word.chars.cxx)
196
197keywordclass.go=\
198bool byte break case chan complex64 complex128 const continue defer default  \
199else  for func go goto fallthrough false float32 float64 if import int interface int8 int16 int32 int64 \
200len map nil package range return select string struct switch true type \
201uint uintptr uint8 uint16 uint32 uint64  var
202keywords.$(file.patterns.go)=$(keywordclass.go)
203
204keywordclass.rc=\
205ACCELERATORS ALT AUTO3STATE AUTOCHECKBOX AUTORADIOBUTTON \
206BEGIN BITMAP BLOCK BUTTON CAPTION CHARACTERISTICS CHECKBOX CLASS \
207COMBOBOX CONTROL CTEXT CURSOR DEFPUSHBUTTON DIALOG DIALOGEX DISCARDABLE \
208EDITTEXT END EXSTYLE FONT GROUPBOX ICON LANGUAGE LISTBOX LTEXT \
209MENU MENUEX MENUITEM MESSAGETABLE POPUP \
210PUSHBUTTON RADIOBUTTON RCDATA RTEXT SCROLLBAR SEPARATOR SHIFT STATE3 \
211STRINGTABLE STYLE TEXTINCLUDE VALUE VERSION VERSIONINFO VIRTKEY
212keywords.$(file.patterns.rc)=$(keywordclass.rc)
213
214keywordclass.idl=\
215aggregatable allocate appobject arrays async async_uuid \
216auto_handle \
217bindable boolean broadcast byte byte_count \
218call_as callback char coclass code comm_status \
219const context_handle context_handle_noserialize \
220context_handle_serialize control cpp_quote custom \
221decode default defaultbind defaultcollelem \
222defaultvalue defaultvtable dispinterface displaybind dllname \
223double dual \
224enable_allocate encode endpoint entry enum error_status_t \
225explicit_handle \
226fault_status first_is float \
227handle_t heap helpcontext helpfile helpstring \
228helpstringcontext helpstringdll hidden hyper \
229id idempotent ignore iid_as iid_is immediatebind implicit_handle \
230import importlib in include in_line int __int64 __int3264 interface \
231last_is lcid length_is library licensed local long \
232max_is maybe message methods midl_pragma \
233midl_user_allocate midl_user_free min_is module ms_union \
234ncacn_at_dsp ncacn_dnet_nsp ncacn_http ncacn_ip_tcp \
235ncacn_nb_ipx ncacn_nb_nb ncacn_nb_tcp ncacn_np \
236ncacn_spx ncacn_vns_spp ncadg_ip_udp ncadg_ipx ncadg_mq \
237ncalrpc nocode nonbrowsable noncreatable nonextensible notify \
238object odl oleautomation optimize optional out out_of_line \
239pipe pointer_default pragma properties propget propput propputref \
240ptr public \
241range readonly ref represent_as requestedit restricted retval \
242shape short signed size_is small source strict_context_handle \
243string struct switch switch_is switch_type \
244transmit_as typedef \
245uidefault union unique unsigned user_marshal usesgetlasterror uuid \
246v1_enum vararg version void wchar_t wire_marshal
247
248keywordclass.msidl=handle
249keywordclass.xpidl=attribute native noscript scriptable shared wstring inout
250keywords.$(file.patterns.idl)=$(keywordclass.idl) $(keywordclass.xpidl)
251
252# http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
253keywordclass.java=abstract assert boolean break byte case catch char class \
254const continue default do double else enum extends final finally float for \
255goto if implements import instanceof int interface long \
256native new package private protected public \
257return short static strictfp super switch synchronized this throw throws \
258transient try var void volatile while
259keywords.$(file.patterns.java)=$(keywordclass.java)
260
261keywordclass.javascript=abstract boolean break byte case catch char class \
262const continue debugger default delete do double else enum export extends \
263final finally float for function goto if implements import in instanceof \
264int interface long native new package private protected public \
265return short static super switch synchronized this throw throws \
266transient try typeof var void volatile while with
267keywords.$(file.patterns.js)=$(keywordclass.javascript)
268
269keywordclass.flash=add and break case catch class continue default delete do \
270dynamic else eq extends false finally for function ge get gt if implements import in \
271instanceof interface intrinsic le lt ne new not null or private public return \
272set static super switch this throw true try typeof undefined var void while with
273
274keywordclass2.flash=Array Arguments Accessibility Boolean Button Camera Color \
275ContextMenu ContextMenuItem Date Error Function Key LoadVars LocalConnection Math \
276Microphone Mouse MovieClip MovieClipLoader NetConnection NetStream Number Object \
277PrintJob Selection SharedObject Sound Stage String StyleSheet System TextField \
278TextFormat TextSnapshot Video Void XML XMLNode XMLSocket \
279_accProps _focusrect _global _highquality _parent _quality _root _soundbuftime \
280arguments asfunction call capabilities chr clearInterval duplicateMovieClip \
281escape eval fscommand getProperty getTimer getURL getVersion gotoAndPlay gotoAndStop \
282ifFrameLoaded Infinity -Infinity int isFinite isNaN length loadMovie loadMovieNum \
283loadVariables loadVariablesNum maxscroll mbchr mblength mbord mbsubstring MMExecute \
284NaN newline nextFrame nextScene on onClipEvent onUpdate ord parseFloat parseInt play \
285prevFrame prevScene print printAsBitmap printAsBitmapNum printNum random removeMovieClip \
286scroll set setInterval setProperty startDrag stop stopAllSounds stopDrag substring \
287targetPath tellTarget toggleHighQuality trace unescape unloadMovie unLoadMovieNum updateAfterEvent
288
289keywords.$(file.patterns.flash)=$(keywordclass.flash)
290keywords2.$(file.patterns.flash)=$(keywordclass2.flash)
291
292keywordclass.vala=if else switch case default break continue return yield for foreach in \
293do while try catch finally throw
294
295keywordclass2.vala=namespace interface class struct enum delegate signal errordomain \
296construct get set value base const static var dynamic weak unowned virtual abstract \
297override public protected private extern throws requires ensures yields out ref lock \
298using true false null delete generic new this typeof sizeof as owned int string char bool
299
300keywords.$(file.patterns.vala)=$(keywordclass.vala)
301keywords2.$(file.patterns.vala)=$(keywordclass2.vala)
302
303keywordclass.pike=constant enum if do for while else foreach case switch break continue \
304return typeof catch class lambda import inherit static void int string float mixed object \
305function program array mapping multiset
306keywords.$(file.patterns.pike)=$(keywordclass.pike)
307
308keywordclass.swift.declarations=class deinit enum extension func import init \
309internal let operator private protocol public static struct subscript typealias var
310keywordclass.swift.statements=break case continue default do else fallthrough \
311for if in return switch where while
312keywordclass.swift.expressions=as dynamicType false is nil self Self super \
313true __COLUMN__ __FILE__ __FUNCTION__ __LINE__
314# The contextual keywords are only keywords in particular contexts
315keywordclass.swift.contextual=associativity convenience dynamic didSet final get \
316infix inout lazy left mutating none nonmutating optional override postfix \
317precedence prefix Protocol required right set Type unowned weak willSet
318
319keywords.$(file.patterns.swift)=$(keywordclass.swift.declarations) \
320$(keywordclass.swift.statements) $(keywordclass.swift.expressions) \
321$(keywordclass.swift.contextual)
322
323keywords.$(file.patterns.meson)=if else elif endif
324keywords2.$(file.patterns.meson)=import meson project \
325executable static_library shared_library dependencies \
326include_directories get_option get_compiler get_id compile_resources \
327cpp_args link_args override_options name_prefix link_with
328
329# Substyles can be used for extra lists of highlighted identifiers and doc comment keywords
330# Identifiers
331#substyles.cpp.11=2
332#substylewords.11.1.$(file.patterns.cpp)=std map string vector
333#style.cpp.11.1=fore:#EE00AA
334#style.cpp.75.1=$(style.cpp.75),fore:#BB6666
335# Doc comment keywords
336#substyles.cpp.17=1
337#style.cpp.17.1=$(style.cpp.17),fore:#00AAEE
338#style.cpp.81.1=$(style.cpp.81),fore:#6699AA
339#substylewords.17.1.$(file.patterns.cpp)=check
340
341# Markers
342# keywords6.$(file.patterns.c.like)=FIXME TODO XXX HACK UnresolvedMergeConflict UNDONE
343
344#styling.within.preprocessor=1
345#lexer.cpp.allow.dollars=1
346#lexer.cpp.track.preprocessor=1
347#lexer.cpp.update.preprocessor=1
348# For C# leave lexer.cpp.verbatim.strings.allow.escapes as 0 but change to 1 for Objective C
349#lexer.cpp.verbatim.strings.allow.escapes=1
350#lexer.cpp.triplequoted.strings=1
351#lexer.cpp.hashquoted.strings=1
352#lexer.cpp.backquoted.strings=1
353#lexer.cpp.escape.sequence=1
354
355#lexer.cpp.escape.sequence=1
356
357# C++ styles
358
359# Default
360style.cpp.32=$(font.base)
361# White space
362style.cpp.0=fore:#808080
363# Comment: /* */.
364style.cpp.1=$(colour.code.comment.box),$(font.code.comment.box)
365# Line Comment: //.
366style.cpp.2=$(colour.code.comment.line),$(font.code.comment.line)
367# Doc comment: block comments beginning with /** or /*!
368style.cpp.3=$(colour.code.comment.doc),$(font.code.comment.doc)
369# Number
370style.cpp.4=$(colour.number)
371# Keyword
372style.cpp.5=$(colour.keyword),bold
373# Double quoted string
374style.cpp.6=$(colour.string)
375# Single quoted string
376style.cpp.7=$(colour.char)
377# UUIDs (only in IDL)
378style.cpp.8=fore:#804080
379# Preprocessor
380style.cpp.9=$(colour.preproc)
381# Operators
382style.cpp.10=$(colour.operator),bold
383# Identifiers
384style.cpp.11=
385# End of line where string is not closed
386style.cpp.12=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
387# Verbatim strings for C#
388style.cpp.13=fore:#007F00,$(font.monospace),back:#E0FFE0,eolfilled
389# Regular expressions for JavaScript
390style.cpp.14=fore:#3F7F3F,$(font.monospace),back:#E0F0FF,eolfilled
391# Doc Comment Line: line comments beginning with /// or //!.
392style.cpp.15=$(colour.code.comment.doc),$(font.code.comment.doc)
393# Keywords2
394style.cpp.16=fore:#B00040
395# Comment keyword
396style.cpp.17=fore:#3060A0,$(font.code.comment.doc)
397# Comment keyword error
398style.cpp.18=fore:#804020,$(font.code.comment.doc)
399# Global class
400style.cpp.19=fore:#DD9900
401# Raw strings for C++0x
402style.cpp.20=$(colour.string),back:#FFF3FF,eolfilled
403# Triple-quoted strings for Vala
404style.cpp.21=$(font.monospace),fore:#007F00,back:#E0FFE0,eolfilled
405# Hash-quoted strings for Pike
406style.cpp.22=$(font.monospace),fore:#007F00,back:#E7FFD7,eolfilled
407# Preprocessor stream comment
408style.cpp.23=fore:#659900
409# Preprocessor stream doc comment
410style.cpp.24=$(colour.code.comment.doc)
411# User defined literals
412style.cpp.25=fore:#C06000
413# Task Marker
414style.cpp.26=fore:#BE07FF,$(font.code.comment.line)
415# Escape sequence
416style.cpp.27=$(colour.string)
417
418# Inactive states are 64 greater than their active counterparts
419
420# White space
421style.cpp.64=fore:#C0C0C0,$(traits.inactive)
422# Comment: /* */.
423style.cpp.65=$(style.cpp.1),fore:#90B090,$(traits.inactive)
424# Line Comment: //.
425style.cpp.66=$(style.cpp.2),fore:#90B090,$(traits.inactive)
426# Doc comment: block comments beginning with /** or /*!
427style.cpp.67=$(style.cpp.3),fore:#D0D0D0,$(traits.inactive)
428# Number
429style.cpp.68=$(style.cpp.4),fore:#90B0B0,$(traits.inactive)
430# Keyword
431style.cpp.69=$(style.cpp.5),fore:#9090B0,$(traits.inactive)
432# Double quoted string
433style.cpp.70=$(style.cpp.6),fore:#B090B0,$(traits.inactive)
434# Single quoted string
435style.cpp.71=$(style.cpp.7),fore:#B090B0,$(traits.inactive)
436# UUIDs (only in IDL)
437style.cpp.72=$(style.cpp.8),fore:#C0C0C0,$(traits.inactive)
438# Preprocessor
439style.cpp.73=$(style.cpp.9),fore:#B0B090,$(traits.inactive)
440# Operators
441style.cpp.74=$(style.cpp.10),fore:#B0B0B0,$(traits.inactive)
442# Identifiers
443style.cpp.75=$(style.cpp.11),fore:#B0B0B0,$(traits.inactive)
444# End of line where string is not closed
445style.cpp.76=$(style.cpp.12),fore:#000000,$(traits.inactive)
446# Verbatim strings for C#
447style.cpp.77=$(style.cpp.13),fore:#90B090,$(traits.inactive)
448# Regular expressions for JavaScript
449style.cpp.78=$(style.cpp.14),fore:#7FAF7F,$(traits.inactive)
450# Doc Comment Line: line comments beginning with /// or //!.
451style.cpp.79=$(style.cpp.15),fore:#C0C0C0,$(traits.inactive)
452# Keywords2
453style.cpp.80=$(style.cpp.16),fore:#C0C0C0,$(traits.inactive)
454# Comment keyword
455style.cpp.81=$(style.cpp.17),fore:#C0C0C0,$(traits.inactive)
456# Comment keyword error
457style.cpp.82=$(style.cpp.18),fore:#C0C0C0,$(traits.inactive)
458# Raw strings for C++0x
459style.cpp.84=$(style.cpp.20),fore:#B090B0,$(traits.inactive)
460# Triple-quoted strings for Vala
461style.cpp.85=$(style.cpp.21),fore:#90B090,$(traits.inactive)
462# Hash-quoted strings for Pike
463style.cpp.86=$(style.cpp.22),fore:#90B090,$(traits.inactive)
464# Preprocessor stream comment
465style.cpp.87=$(style.cpp.23),fore:#A0C090,$(traits.inactive)
466# Preprocessor stream doc comment
467style.cpp.88=$(style.cpp.23),fore:#C0C0C0,$(traits.inactive)
468# User defined literals
469style.cpp.89=fore:#D7A090,$(traits.inactive)
470# Task Marker
471style.cpp.90=fore:#C3A1CF,$(font.code.comment.line),$(traits.inactive)
472
473# Braces are only matched in operator style
474braces.cpp.style=10
475
476ccopts=-pedantic -Os
477cc=g++ $(ccopts) -c $(FileNameExt) -o $(FileName).o
478ccc=gcc $(ccopts) -c $(FileNameExt) -o $(FileName).o
479
480make.command=make
481command.compile.*.c=$(ccc) -std=c99
482command.build.*.c=$(make.command)
483command.build.*.h=$(make.command)
484command.clean.*.c=$(make.command) clean
485command.clean.*.h=$(make.command) clean
486command.go.*.c=./$(FileName)
487# To make the Go command both compile (if needed) and execute, use this setting:
488#command.go.needs.*.c=gcc $(ccopts) -std=c99 $(FileNameExt) -o $(FileName)
489
490command.compile.$(file.patterns.cplusplus)=$(cc)
491command.build.$(file.patterns.cplusplus)=$(make.command)
492command.clean.$(file.patterns.cplusplus)=$(make.command) clean
493command.go.$(file.patterns.cplusplus)=./$(FileName)
494command.go.needs.$(file.patterns.cplusplus)=g++ $(ccopts) $(FileNameExt) -o $(FileName)
495
496command.name.0.$(file.patterns.cpp)=Indent
497command.0.$(file.patterns.cpp)=astyle --style=attach --indent=force-tab=8 --keep-one-line-blocks \
498--pad-header --unpad-paren --pad-comma --indent-cases --align-pointer=name --pad-method-prefix \
499--pad-return-type --pad-param-type --align-method-colon --pad-method-colon=after $(FileNameExt)
500command.is.filter.0.$(file.patterns.cpp)=1
501
502command.name.1.$(file.patterns.cplusplus)=Lint
503command.1.$(file.patterns.cplusplus)=g++ -W -Wall -Wshadow -Wwrite-strings -Wold-style-cast \
504	-Woverloaded-virtual -pedantic -Os -fno-exceptions -c $(FileNameExt)
505
506if PLAT_WIN
507	command.compile.*.rc=windres $(FileNameExt) $(FileName).o
508	command.build.*.rc=$(make.command)
509	command.help.$(file.patterns.cpp)=$(CurrentWord)!G:\Program Files\Microsoft Visual Studio\MSDN98\98VSa\1033\MSDNVS6A.COL
510	command.help.subsystem.$(file.patterns.cpp)=4
511	command.go.*.js=cscript /nologo $(FileNameExt)
512# When maintaining old Win16 programs...
513#	command.help.$(file.patterns.cpp)=$(CurrentWord)!I:\msvc\help\win31wh.hlp
514#	command.help.subsystem.$(file.patterns.cpp)=5
515
516if PLAT_GTK
517	command.help.$(file.patterns.cpp)=man $(CurrentWord) | col -b
518
519if PLAT_WIN
520	command.build.*.cs=csc /t:winexe $(FileNameExt) /r:system.dll,system.drawing.dll
521	command.go.*.cs=$(FileName)
522	command.go.subsystem.*.cs=0
523if PLAT_GTK
524	command.build.*.cs=mcs /t:winexe $(FileNameExt) /r:System,System.Drawing
525	command.go.*.cs=mono $(FileName).exe
526	command.go.subsystem.*.cs=1
527
528command.compile.*.java=javac $(FileNameExt)
529command.build.*.java=javac *.java
530command.go.*.java=java -cp . $(FileName)
531
532if PLAT_WIN
533	command.help.*.java=http://java.sun.com/javase/6/docs/api/java/util/$(CurrentWord).html
534	command.help.subsystem.*.java=2
535
536command.compile.*.ch=ch -n $(FileNameExt)
537command.build.*.ch=ch -n  $(FileNameExt)
538command.go.*.ch=ch -u $(FileNameExt)
539
540command.compile.*.as=mtasc -strict $(FileNameExt)
541command.build.*.as=mtasc -strict *.as
542
543command.build.$(file.patterns.vala)=valac $(FileNameExt)
544command.go.*.vala=./$(FileName)
545
546# can also be 6g for 64-bit systems!
547command.compile.*.go=8g $(FileNameExt)
548command.build.*.go=$(make.command)
549command.go.*.go=./$(FileName)
550
551command.compile.*.ts=tsc $(FileNameExt)
552