Merge pull request #3823 from ntrel/msg-tree-search
[geany-mirror.git] / src / highlightingmappings.h
blob3aca5356078d435bdb45039403a5b9739faf84d6
1 /*
2 * highlightingmappings.h - this file is part of Geany, a fast and lightweight IDE
4 * Copyright 2005 The Geany contributors
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #ifndef GEANY_HIGHLIGHTING_MAPPINGS_H
23 #define GEANY_HIGHLIGHTING_MAPPINGS_H 1
25 #include "Scintilla.h"
26 #include "SciLexer.h"
28 #include <glib.h>
31 G_BEGIN_DECLS
33 /* contains all filtypes informations in the form of:
34 * - highlighting_lexer_LANG: the SCI lexer
35 * - highlighting_styles_LANG: SCI style/named style mappings. The first
36 * item is also used for the default style.
37 * - highlighting_keywords_LANG: keywords ID/name mappings
38 * - highlighting_properties_LANG: default SCI properties and their value
39 * where LANG is the lang part from GEANY_FILETYPE_LANG
41 * Using this scheme makes possible to automate style setup by simply listing LANG
42 * and let [init_]styleset_case() macros (in highlighting.c) prepare the correct
43 * calls.
47 typedef struct
49 guint style; /* SCI style */
50 const gchar *name; /* style name in the filetypes.* file */
51 gboolean fill_eol; /* whether to set EOLFILLED flag to this style */
52 } HLStyle;
54 typedef struct
56 guint id; /* SCI keyword ID */
57 const gchar *key; /* keywords entry name in the filetypes.* file */
58 gboolean merge; /* whether to merge with session types */
59 } HLKeyword;
61 typedef struct
63 const gchar *property;
64 const gchar *value;
65 } HLProperty;
68 #define EMPTY_KEYWORDS ((HLKeyword *) NULL)
69 #define EMPTY_PROPERTIES ((HLProperty *) NULL)
71 /* like G_N_ELEMENTS() but supports @array being NULL (for empty entries).
72 * The straightforward `((array != NULL) ? G_N_ELEMENTS(array) : 0)` is not
73 * used here because of GCC8's -Wsizeof-pointer-div which doesn't realize the
74 * result of G_N_ELEMENTS() is never actually used when `array` is NULL.
75 * This implementation gives the same result as the LHS of the division
76 * becomes 0 when `array` is NULL, but is not a case that GCC can misinterpret
77 * and warn about.
78 * An alternative solution would be using zero-sized arrays instead of NULLs,
79 * but zero-sized arrays are forbidden by ISO C */
80 #define HL_N_ENTRIES(array) ((sizeof(array) * ((array) != NULL)) / sizeof((array)[0]))
83 /* Abaqus */
84 #define highlighting_lexer_ABAQUS SCLEX_ABAQUS
85 static const HLStyle highlighting_styles_ABAQUS[] =
87 { SCE_ABAQUS_DEFAULT, "default", FALSE },
88 { SCE_ABAQUS_COMMENT, "comment", FALSE },
89 { SCE_ABAQUS_NUMBER, "number", FALSE },
90 { SCE_ABAQUS_STRING, "string", FALSE },
91 { SCE_ABAQUS_OPERATOR, "operator", FALSE },
92 { SCE_ABAQUS_PROCESSOR, "processor", FALSE },
93 { SCE_ABAQUS_STARCOMMAND, "starcommand", FALSE },
94 { SCE_ABAQUS_ARGUMENT, "argument", FALSE }
96 static const HLKeyword highlighting_keywords_ABAQUS[] =
98 { 0, "processors", FALSE },
99 { 1, "commands", FALSE },
100 { 2, "slashommands", FALSE },
101 { 3, "starcommands", FALSE },
102 { 4, "arguments", FALSE },
103 { 5, "functions", FALSE }
105 #define highlighting_properties_ABAQUS EMPTY_PROPERTIES
108 /* Ada */
109 #define highlighting_lexer_ADA SCLEX_ADA
110 static const HLStyle highlighting_styles_ADA[] =
112 { SCE_ADA_DEFAULT, "default", FALSE },
113 { SCE_ADA_WORD, "word", FALSE },
114 { SCE_ADA_IDENTIFIER, "identifier", FALSE },
115 { SCE_ADA_NUMBER, "number", FALSE },
116 { SCE_ADA_DELIMITER, "delimiter", FALSE },
117 { SCE_ADA_CHARACTER, "character", FALSE },
118 { SCE_ADA_CHARACTEREOL, "charactereol", FALSE },
119 { SCE_ADA_STRING, "string", FALSE },
120 { SCE_ADA_STRINGEOL, "stringeol", FALSE },
121 { SCE_ADA_LABEL, "label", FALSE },
122 { SCE_ADA_COMMENTLINE, "commentline", FALSE },
123 { SCE_ADA_ILLEGAL, "illegal", FALSE }
125 static const HLKeyword highlighting_keywords_ADA[] =
127 { 0, "primary", FALSE }
129 #define highlighting_properties_ADA EMPTY_PROPERTIES
132 /* ActionScript */
133 #define highlighting_lexer_AS SCLEX_CPP
134 #define highlighting_styles_AS highlighting_styles_C
135 static const HLKeyword highlighting_keywords_AS[] =
137 { 0, "primary", FALSE },
138 { 1, "secondary", FALSE },
139 { 3, "classes", FALSE }
141 #define highlighting_properties_AS highlighting_properties_C
144 /* Asccidoc */
145 #define highlighting_lexer_ASCIIDOC SCLEX_ASCIIDOC
146 static const HLStyle highlighting_styles_ASCIIDOC[] =
148 { SCE_ASCIIDOC_DEFAULT, "default", FALSE },
149 { SCE_ASCIIDOC_STRONG1, "strong", FALSE },
150 { SCE_ASCIIDOC_STRONG2, "strong", FALSE },
151 { SCE_ASCIIDOC_EM1, "emphasis", FALSE },
152 { SCE_ASCIIDOC_EM2, "emphasis", FALSE },
153 { SCE_ASCIIDOC_HEADER1, "header1", FALSE },
154 { SCE_ASCIIDOC_HEADER2, "header2", FALSE },
155 { SCE_ASCIIDOC_HEADER3, "header3", FALSE },
156 { SCE_ASCIIDOC_HEADER4, "header4", FALSE },
157 { SCE_ASCIIDOC_HEADER5, "header5", FALSE },
158 { SCE_ASCIIDOC_HEADER6, "header6", FALSE },
159 { SCE_ASCIIDOC_ULIST_ITEM, "ulist_item", FALSE },
160 { SCE_ASCIIDOC_OLIST_ITEM, "olist_item", FALSE },
161 { SCE_ASCIIDOC_BLOCKQUOTE, "blockquote", FALSE },
162 { SCE_ASCIIDOC_LINK, "link", FALSE },
163 { SCE_ASCIIDOC_CODEBK, "code", FALSE },
164 { SCE_ASCIIDOC_PASSBK, "passthrough", FALSE },
165 { SCE_ASCIIDOC_COMMENT, "comment", FALSE },
166 { SCE_ASCIIDOC_COMMENTBK, "comment", FALSE },
167 { SCE_ASCIIDOC_LITERAL, "literal", FALSE },
168 { SCE_ASCIIDOC_LITERALBK, "literal", FALSE },
169 { SCE_ASCIIDOC_ATTRIB, "attrib", FALSE },
170 { SCE_ASCIIDOC_ATTRIBVAL, "attribval", FALSE },
171 { SCE_ASCIIDOC_MACRO, "macro", FALSE }
173 #define highlighting_keywords_ASCIIDOC EMPTY_KEYWORDS
174 #define highlighting_properties_ASCIIDOC EMPTY_PROPERTIES
177 /* ASM */
178 #define highlighting_lexer_ASM SCLEX_ASM
179 static const HLStyle highlighting_styles_ASM[] =
181 { SCE_ASM_DEFAULT, "default", FALSE },
182 { SCE_ASM_COMMENT, "comment", FALSE },
183 { SCE_ASM_NUMBER, "number", FALSE },
184 { SCE_ASM_STRING, "string", FALSE },
185 { SCE_ASM_OPERATOR, "operator", FALSE },
186 { SCE_ASM_IDENTIFIER, "identifier", FALSE },
187 { SCE_ASM_CPUINSTRUCTION, "cpuinstruction", FALSE },
188 { SCE_ASM_MATHINSTRUCTION, "mathinstruction", FALSE },
189 { SCE_ASM_REGISTER, "register", FALSE },
190 { SCE_ASM_DIRECTIVE, "directive", FALSE },
191 { SCE_ASM_DIRECTIVEOPERAND, "directiveoperand", FALSE },
192 { SCE_ASM_COMMENTBLOCK, "commentblock", FALSE },
193 { SCE_ASM_CHARACTER, "character", FALSE },
194 { SCE_ASM_STRINGEOL, "stringeol", FALSE },
195 { SCE_ASM_EXTINSTRUCTION, "extinstruction", FALSE },
196 { SCE_ASM_COMMENTDIRECTIVE, "commentdirective", FALSE }
198 static const HLKeyword highlighting_keywords_ASM[] =
200 { 0, "instructions", FALSE },
201 /*{ 1, "instructions", FALSE },*/
202 { 2, "registers", FALSE },
203 { 3, "directives", FALSE }
204 /*{ 5, "instructions", FALSE }*/
206 #define highlighting_properties_ASM EMPTY_PROPERTIES
209 /* BASIC */
210 #define highlighting_lexer_BASIC SCLEX_FREEBASIC
211 static const HLStyle highlighting_styles_BASIC[] =
213 { SCE_B_DEFAULT, "default", FALSE },
214 { SCE_B_COMMENT, "comment", FALSE },
215 { SCE_B_COMMENTBLOCK, "commentblock", FALSE },
216 { SCE_B_DOCLINE, "docline", FALSE },
217 { SCE_B_DOCBLOCK, "docblock", FALSE },
218 { SCE_B_DOCKEYWORD, "dockeyword", FALSE },
219 { SCE_B_NUMBER, "number", FALSE },
220 { SCE_B_KEYWORD, "word", FALSE },
221 { SCE_B_STRING, "string", FALSE },
222 { SCE_B_PREPROCESSOR, "preprocessor", FALSE },
223 { SCE_B_OPERATOR, "operator", FALSE },
224 { SCE_B_IDENTIFIER, "identifier", FALSE },
225 { SCE_B_DATE, "date", FALSE },
226 { SCE_B_STRINGEOL, "stringeol", FALSE },
227 { SCE_B_KEYWORD2, "word2", FALSE },
228 { SCE_B_KEYWORD3, "word3", FALSE },
229 { SCE_B_KEYWORD4, "word4", FALSE },
230 { SCE_B_CONSTANT, "constant", FALSE },
231 { SCE_B_ASM, "asm", FALSE },
232 { SCE_B_LABEL, "label", FALSE },
233 { SCE_B_ERROR, "error", FALSE },
234 { SCE_B_HEXNUMBER, "hexnumber", FALSE },
235 { SCE_B_BINNUMBER, "binnumber", FALSE }
237 static const HLKeyword highlighting_keywords_BASIC[] =
239 { 0, "keywords", FALSE },
240 { 1, "preprocessor", FALSE },
241 { 2, "user1", FALSE },
242 { 3, "user2", FALSE }
244 #define highlighting_properties_BASIC EMPTY_PROPERTIES
247 /* BATCH */
248 #define highlighting_lexer_BATCH SCLEX_BATCH
249 static const HLStyle highlighting_styles_BATCH[] =
251 { SCE_BAT_DEFAULT, "default", FALSE },
252 { SCE_BAT_COMMENT, "comment", FALSE },
253 { SCE_BAT_LABEL, "label", FALSE },
254 { SCE_BAT_WORD, "word", FALSE },
255 { SCE_BAT_HIDE, "hide", FALSE },
256 { SCE_BAT_COMMAND, "command", FALSE },
257 { SCE_BAT_IDENTIFIER, "identifier", FALSE },
258 { SCE_BAT_OPERATOR, "operator", FALSE }
260 static const HLKeyword highlighting_keywords_BATCH[] =
262 { 0, "keywords", FALSE },
263 { 1, "keywords_optional", FALSE }
265 #define highlighting_properties_BATCH EMPTY_PROPERTIES
268 /* C */
269 /* Also used by some other SCLEX_CPP-based filetypes */
270 #define highlighting_lexer_C SCLEX_CPP
271 static const HLStyle highlighting_styles_C[] =
273 { SCE_C_DEFAULT, "default", FALSE },
274 { SCE_C_COMMENT, "comment", FALSE },
275 { SCE_C_COMMENTLINE, "commentline", FALSE },
276 { SCE_C_COMMENTDOC, "commentdoc", FALSE },
277 { SCE_C_PREPROCESSORCOMMENT, "preprocessorcomment", FALSE },
278 { SCE_C_PREPROCESSORCOMMENTDOC, "preprocessorcommentdoc", FALSE },
279 { SCE_C_NUMBER, "number", FALSE },
280 { SCE_C_WORD, "word", FALSE },
281 { SCE_C_WORD2, "word2", FALSE },
282 { SCE_C_STRING, "string", FALSE },
283 { SCE_C_STRINGRAW, "stringraw", FALSE },
284 { SCE_C_CHARACTER, "character", FALSE },
285 { SCE_C_USERLITERAL, "userliteral", FALSE },
286 { SCE_C_UUID, "uuid", FALSE },
287 { SCE_C_PREPROCESSOR, "preprocessor", FALSE },
288 { SCE_C_OPERATOR, "operator", FALSE },
289 { SCE_C_IDENTIFIER, "identifier", FALSE },
290 { SCE_C_STRINGEOL, "stringeol", FALSE },
291 { SCE_C_VERBATIM, "verbatim", FALSE },
292 /* triple verbatims use the same style */
293 { SCE_C_TRIPLEVERBATIM, "verbatim", FALSE },
294 { SCE_C_REGEX, "regex", FALSE },
295 { SCE_C_HASHQUOTEDSTRING, "hashquotedstring", FALSE },
296 { SCE_C_COMMENTLINEDOC, "commentlinedoc", FALSE },
297 { SCE_C_COMMENTDOCKEYWORD, "commentdockeyword", FALSE },
298 { SCE_C_COMMENTDOCKEYWORDERROR, "commentdockeyworderror", FALSE },
299 /* used for local structs and typedefs */
300 { SCE_C_GLOBALCLASS, "globalclass", FALSE },
301 { SCE_C_TASKMARKER, "taskmarker", FALSE },
302 { SCE_C_ESCAPESEQUENCE, "escapesequence", FALSE }
304 static const HLKeyword highlighting_keywords_C[] =
306 { 0, "primary", FALSE },
307 /* SCI_SETKEYWORDS = 1 - secondary + global tags file types, see below */
308 { 1, "secondary", TRUE },
309 { 2, "docComment", FALSE }
310 /* SCI_SETKEYWORDS = 3 is for current session types - see document_highlight_tags() */
312 static const HLProperty highlighting_properties_C[] =
314 { "fold.cpp.comment.explicit", "0" }
318 /* Caml */
319 #define highlighting_lexer_CAML SCLEX_CAML
320 static const HLStyle highlighting_styles_CAML[] =
322 { SCE_CAML_DEFAULT, "default", FALSE },
323 { SCE_CAML_COMMENT, "comment", FALSE },
324 { SCE_CAML_COMMENT1, "comment1", FALSE },
325 { SCE_CAML_COMMENT2, "comment2", FALSE },
326 { SCE_CAML_COMMENT3, "comment3", FALSE },
327 { SCE_CAML_NUMBER, "number", FALSE },
328 { SCE_CAML_KEYWORD, "keyword", FALSE },
329 { SCE_CAML_KEYWORD2, "keyword2", FALSE },
330 { SCE_CAML_KEYWORD3, "keyword3", FALSE },
331 { SCE_CAML_STRING, "string", FALSE },
332 { SCE_CAML_CHAR, "char", FALSE },
333 { SCE_CAML_OPERATOR, "operator", FALSE },
334 { SCE_CAML_IDENTIFIER, "identifier", FALSE },
335 { SCE_CAML_TAGNAME, "tagname", FALSE },
336 { SCE_CAML_LINENUM, "linenum", FALSE },
337 { SCE_CAML_WHITE, "white", FALSE }
339 static const HLKeyword highlighting_keywords_CAML[] =
341 { 0, "keywords", FALSE },
342 { 1, "keywords_optional", FALSE }
344 #define highlighting_properties_CAML EMPTY_PROPERTIES
347 /* CMake */
348 #define highlighting_lexer_CMAKE SCLEX_CMAKE
349 static const HLStyle highlighting_styles_CMAKE[] =
351 { SCE_CMAKE_DEFAULT, "default", FALSE },
352 { SCE_CMAKE_COMMENT, "comment", FALSE },
353 { SCE_CMAKE_STRINGDQ, "stringdq", FALSE },
354 { SCE_CMAKE_STRINGLQ, "stringlq", FALSE },
355 { SCE_CMAKE_STRINGRQ, "stringrq", FALSE },
356 { SCE_CMAKE_COMMANDS, "command", FALSE },
357 { SCE_CMAKE_PARAMETERS, "parameters", FALSE },
358 { SCE_CMAKE_VARIABLE, "variable", FALSE },
359 { SCE_CMAKE_USERDEFINED, "userdefined", FALSE },
360 { SCE_CMAKE_WHILEDEF, "whiledef", FALSE },
361 { SCE_CMAKE_FOREACHDEF, "foreachdef", FALSE },
362 { SCE_CMAKE_IFDEFINEDEF, "ifdefinedef", FALSE },
363 { SCE_CMAKE_MACRODEF, "macrodef", FALSE },
364 { SCE_CMAKE_STRINGVAR, "stringvar", FALSE },
365 { SCE_CMAKE_NUMBER, "number", FALSE }
367 static const HLKeyword highlighting_keywords_CMAKE[] =
369 { 0, "commands", FALSE },
370 { 1, "parameters", FALSE },
371 { 2, "userdefined", FALSE }
373 #define highlighting_properties_CMAKE EMPTY_PROPERTIES
375 /* CoffeeScript */
376 #define highlighting_lexer_COFFEESCRIPT SCLEX_COFFEESCRIPT
377 static const HLStyle highlighting_styles_COFFEESCRIPT[] =
379 { SCE_COFFEESCRIPT_DEFAULT, "default", FALSE },
380 { SCE_COFFEESCRIPT_COMMENTLINE, "commentline", FALSE },
381 { SCE_COFFEESCRIPT_NUMBER, "number", FALSE },
382 { SCE_COFFEESCRIPT_WORD, "word", FALSE },
383 { SCE_COFFEESCRIPT_STRING, "string", FALSE },
384 { SCE_COFFEESCRIPT_CHARACTER, "character", FALSE },
385 { SCE_COFFEESCRIPT_OPERATOR, "operator", FALSE },
386 { SCE_COFFEESCRIPT_IDENTIFIER, "identifier", FALSE },
387 { SCE_COFFEESCRIPT_STRINGEOL, "stringeol", FALSE },
388 { SCE_COFFEESCRIPT_REGEX, "regex", FALSE },
389 { SCE_COFFEESCRIPT_WORD2, "word2", FALSE },
390 { SCE_COFFEESCRIPT_GLOBALCLASS, "globalclass", FALSE },
391 { SCE_COFFEESCRIPT_COMMENTBLOCK, "commentblock", FALSE },
392 { SCE_COFFEESCRIPT_VERBOSE_REGEX, "verbose_regex", FALSE },
393 { SCE_COFFEESCRIPT_VERBOSE_REGEX_COMMENT, "verbose_regex_comment",FALSE },
394 { SCE_COFFEESCRIPT_INSTANCEPROPERTY, "instanceproperty", FALSE }
396 static const HLKeyword highlighting_keywords_COFFEESCRIPT[] =
398 { 0, "primary", FALSE },
399 { 1, "secondary", FALSE },
400 { 3, "globalclass", FALSE }
402 #define highlighting_properties_COFFEESCRIPT EMPTY_PROPERTIES
405 /* CSS */
406 #define highlighting_lexer_CSS SCLEX_CSS
407 static const HLStyle highlighting_styles_CSS[] =
409 { SCE_CSS_DEFAULT, "default", FALSE },
410 { SCE_CSS_COMMENT, "comment", FALSE },
411 { SCE_CSS_TAG, "tag", FALSE },
412 { SCE_CSS_CLASS, "class", FALSE },
413 { SCE_CSS_PSEUDOCLASS, "pseudoclass", FALSE },
414 { SCE_CSS_UNKNOWN_PSEUDOCLASS, "unknown_pseudoclass", FALSE },
415 { SCE_CSS_UNKNOWN_IDENTIFIER, "unknown_identifier", FALSE },
416 { SCE_CSS_OPERATOR, "operator", FALSE },
417 { SCE_CSS_IDENTIFIER, "identifier", FALSE },
418 { SCE_CSS_DOUBLESTRING, "doublestring", FALSE },
419 { SCE_CSS_SINGLESTRING, "singlestring", FALSE },
420 { SCE_CSS_ATTRIBUTE, "attribute", FALSE },
421 { SCE_CSS_VALUE, "value", FALSE },
422 { SCE_CSS_ID, "id", FALSE },
423 { SCE_CSS_IDENTIFIER2, "identifier2", FALSE },
424 { SCE_CSS_VARIABLE, "variable", FALSE },
425 { SCE_CSS_IMPORTANT, "important", FALSE },
426 { SCE_CSS_DIRECTIVE, "directive", FALSE },
427 { SCE_CSS_IDENTIFIER3, "identifier3", FALSE },
428 { SCE_CSS_PSEUDOELEMENT, "pseudoelement", FALSE },
429 { SCE_CSS_EXTENDED_IDENTIFIER, "extended_identifier", FALSE },
430 { SCE_CSS_EXTENDED_PSEUDOCLASS, "extended_pseudoclass", FALSE },
431 { SCE_CSS_EXTENDED_PSEUDOELEMENT, "extended_pseudoelement", FALSE },
432 { SCE_CSS_GROUP_RULE, "group_rule", FALSE }
434 static const HLKeyword highlighting_keywords_CSS[] =
436 { 0, "primary", FALSE },
437 { 1, "pseudoclasses", FALSE },
438 { 2, "secondary", FALSE },
439 { 3, "css3_properties", FALSE },
440 { 4, "pseudo_elements", FALSE },
441 { 5, "browser_css_properties", FALSE },
442 { 6, "browser_pseudo_classes", FALSE },
443 { 7, "browser_pseudo_elements", FALSE }
445 #define highlighting_properties_CSS EMPTY_PROPERTIES
448 /* Cobol */
449 #define highlighting_lexer_COBOL SCLEX_COBOL
450 #define highlighting_styles_COBOL highlighting_styles_C
451 static const HLKeyword highlighting_keywords_COBOL[] =
453 { 0, "primary", FALSE },
454 { 1, "secondary", FALSE },
455 { 2, "extended_keywords", FALSE }
457 #define highlighting_properties_COBOL highlighting_properties_C
460 /* Conf */
461 #define highlighting_lexer_CONF SCLEX_PROPERTIES
462 static const HLStyle highlighting_styles_CONF[] =
464 { SCE_PROPS_DEFAULT, "default", FALSE },
465 { SCE_PROPS_COMMENT, "comment", FALSE },
466 { SCE_PROPS_SECTION, "section", FALSE },
467 { SCE_PROPS_KEY, "key", FALSE },
468 { SCE_PROPS_ASSIGNMENT, "assignment", FALSE },
469 { SCE_PROPS_DEFVAL, "defval", FALSE }
471 #define highlighting_keywords_CONF EMPTY_KEYWORDS
472 #define highlighting_properties_CONF EMPTY_PROPERTIES
475 /* D */
476 #define highlighting_lexer_D SCLEX_D
477 static const HLStyle highlighting_styles_D[] =
479 { SCE_D_DEFAULT, "default", FALSE },
480 { SCE_D_COMMENT, "comment", FALSE },
481 { SCE_D_COMMENTLINE, "commentline", FALSE },
482 { SCE_D_COMMENTDOC, "commentdoc", FALSE },
483 { SCE_D_COMMENTNESTED, "commentnested", FALSE },
484 { SCE_D_NUMBER, "number", FALSE },
485 { SCE_D_WORD, "word", FALSE },
486 { SCE_D_WORD2, "word2", FALSE },
487 { SCE_D_WORD3, "word3", FALSE },
488 { SCE_D_TYPEDEF, "typedef", FALSE }, /* FIXME: don't remap here */
489 { SCE_D_WORD5, "typedef", FALSE },
490 { SCE_D_STRING, "string", FALSE },
491 { SCE_D_STRINGB, "string", FALSE },
492 { SCE_D_STRINGR, "string", FALSE },
493 { SCE_D_STRINGEOL, "stringeol", FALSE },
494 { SCE_D_CHARACTER, "character", FALSE },
495 { SCE_D_OPERATOR, "operator", FALSE },
496 { SCE_D_IDENTIFIER, "identifier", FALSE },
497 { SCE_D_COMMENTLINEDOC, "commentlinedoc", FALSE },
498 { SCE_D_COMMENTDOCKEYWORD, "commentdockeyword", FALSE },
499 { SCE_D_COMMENTDOCKEYWORDERROR, "commentdockeyworderror", FALSE }
500 /* these are for user-defined keywords we don't set yet */
501 /*{ SCE_D_WORD6, "word6", FALSE },
502 { SCE_D_WORD7, "word7", FALSE }*/
504 static const HLKeyword highlighting_keywords_D[] =
506 { 0, "primary", FALSE },
507 /* SCI_SETKEYWORDS = 1 - secondary + global tags file types */
508 { 1, "secondary", TRUE },
509 { 2, "docComment", FALSE },
510 /* SCI_SETKEYWORDS = 3 is for current session types - see document_highlight_tags() */
511 { 4, "types", FALSE },
513 #define highlighting_properties_D EMPTY_PROPERTIES
516 /* Diff */
517 #define highlighting_lexer_DIFF SCLEX_DIFF
518 static const HLStyle highlighting_styles_DIFF[] =
520 { SCE_DIFF_DEFAULT, "default", FALSE },
521 { SCE_DIFF_COMMENT, "comment", FALSE },
522 { SCE_DIFF_COMMAND, "command", FALSE },
523 { SCE_DIFF_HEADER, "header", FALSE },
524 { SCE_DIFF_POSITION, "position", FALSE },
525 { SCE_DIFF_DELETED, "deleted", FALSE },
526 { SCE_DIFF_ADDED, "added", FALSE },
527 { SCE_DIFF_CHANGED, "changed", FALSE },
528 { SCE_DIFF_PATCH_ADD, "patch_add", FALSE },
529 { SCE_DIFF_PATCH_DELETE, "patch_delete", FALSE },
530 { SCE_DIFF_REMOVED_PATCH_ADD, "removed_patch_add", FALSE },
531 { SCE_DIFF_REMOVED_PATCH_DELETE, "removed_patch_delete", FALSE }
533 #define highlighting_keywords_DIFF EMPTY_KEYWORDS
534 #define highlighting_properties_DIFF EMPTY_PROPERTIES
537 #define highlighting_lexer_DOCBOOK SCLEX_XML
538 static const HLStyle highlighting_styles_DOCBOOK[] =
540 { SCE_H_DEFAULT, "default", FALSE },
541 { SCE_H_TAG, "tag", FALSE },
542 { SCE_H_TAGUNKNOWN, "tagunknown", FALSE },
543 { SCE_H_ATTRIBUTE, "attribute", FALSE },
544 { SCE_H_ATTRIBUTEUNKNOWN, "attributeunknown", FALSE },
545 { SCE_H_NUMBER, "number", FALSE },
546 { SCE_H_DOUBLESTRING, "doublestring", FALSE },
547 { SCE_H_SINGLESTRING, "singlestring", FALSE },
548 { SCE_H_OTHER, "other", FALSE },
549 { SCE_H_COMMENT, "comment", FALSE },
550 { SCE_H_ENTITY, "entity", FALSE },
551 { SCE_H_TAGEND, "tagend", FALSE },
552 { SCE_H_XMLSTART, "xmlstart", TRUE },
553 { SCE_H_XMLEND, "xmlend", FALSE },
554 { SCE_H_CDATA, "cdata", FALSE },
555 { SCE_H_QUESTION, "question", FALSE },
556 { SCE_H_VALUE, "value", FALSE },
557 { SCE_H_XCCOMMENT, "xccomment", FALSE },
558 { SCE_H_SGML_DEFAULT, "sgml_default", FALSE },
559 { SCE_H_SGML_COMMENT, "sgml_comment", FALSE },
560 { SCE_H_SGML_SPECIAL, "sgml_special", FALSE },
561 { SCE_H_SGML_COMMAND, "sgml_command", FALSE },
562 { SCE_H_SGML_DOUBLESTRING, "sgml_doublestring", FALSE },
563 { SCE_H_SGML_SIMPLESTRING, "sgml_simplestring", FALSE },
564 { SCE_H_SGML_1ST_PARAM, "sgml_1st_param", FALSE },
565 { SCE_H_SGML_ENTITY, "sgml_entity", FALSE },
566 { SCE_H_SGML_BLOCK_DEFAULT, "sgml_block_default", FALSE },
567 { SCE_H_SGML_1ST_PARAM_COMMENT, "sgml_1st_param_comment", FALSE },
568 { SCE_H_SGML_ERROR, "sgml_error", FALSE }
570 static const HLKeyword highlighting_keywords_DOCBOOK[] =
572 { 0, "elements", FALSE },
573 { 5, "dtd", FALSE }
575 #define highlighting_properties_DOCBOOK EMPTY_PROPERTIES
578 /* Erlang */
579 #define highlighting_lexer_ERLANG SCLEX_ERLANG
580 static const HLStyle highlighting_styles_ERLANG[] =
582 { SCE_ERLANG_DEFAULT, "default", FALSE },
583 { SCE_ERLANG_COMMENT, "comment", FALSE },
584 { SCE_ERLANG_VARIABLE, "variable", FALSE },
585 { SCE_ERLANG_NUMBER, "number", FALSE },
586 { SCE_ERLANG_KEYWORD, "keyword", FALSE },
587 { SCE_ERLANG_STRING, "string", FALSE },
588 { SCE_ERLANG_OPERATOR, "operator", FALSE },
589 { SCE_ERLANG_ATOM, "atom", FALSE },
590 { SCE_ERLANG_FUNCTION_NAME, "function_name", FALSE },
591 { SCE_ERLANG_CHARACTER, "character", FALSE },
592 { SCE_ERLANG_MACRO, "macro", FALSE },
593 { SCE_ERLANG_RECORD, "record", FALSE },
594 { SCE_ERLANG_PREPROC, "preproc", FALSE },
595 { SCE_ERLANG_NODE_NAME, "node_name", FALSE },
596 { SCE_ERLANG_COMMENT_FUNCTION, "comment_function", FALSE },
597 { SCE_ERLANG_COMMENT_MODULE, "comment_module", FALSE },
598 { SCE_ERLANG_COMMENT_DOC, "comment_doc", FALSE },
599 { SCE_ERLANG_COMMENT_DOC_MACRO, "comment_doc_macro", FALSE },
600 { SCE_ERLANG_ATOM_QUOTED, "atom_quoted", FALSE },
601 { SCE_ERLANG_MACRO_QUOTED, "macro_quoted", FALSE },
602 { SCE_ERLANG_RECORD_QUOTED, "record_quoted", FALSE },
603 { SCE_ERLANG_NODE_NAME_QUOTED, "node_name_quoted", FALSE },
604 { SCE_ERLANG_BIFS, "bifs", FALSE },
605 { SCE_ERLANG_MODULES, "modules", FALSE },
606 { SCE_ERLANG_MODULES_ATT, "modules_att", FALSE },
607 { SCE_ERLANG_UNKNOWN, "unknown", FALSE }
609 static const HLKeyword highlighting_keywords_ERLANG[] =
611 { 0, "keywords", FALSE },
612 { 1, "bifs", FALSE },
613 { 2, "preproc", FALSE },
614 { 3, "module", FALSE },
615 { 4, "doc", FALSE },
616 { 5, "doc_macro", FALSE }
618 #define highlighting_properties_ERLANG EMPTY_PROPERTIES
621 /* F77 */
622 #define highlighting_lexer_F77 SCLEX_F77
623 static const HLStyle highlighting_styles_F77[] =
625 { SCE_F_DEFAULT, "default", FALSE },
626 { SCE_F_COMMENT, "comment", FALSE },
627 { SCE_F_NUMBER, "number", FALSE },
628 { SCE_F_STRING1, "string", FALSE },
629 { SCE_F_OPERATOR, "operator", FALSE },
630 { SCE_F_IDENTIFIER, "identifier", FALSE },
631 { SCE_F_STRING2, "string2", FALSE },
632 { SCE_F_WORD, "word", FALSE },
633 { SCE_F_WORD2, "word2", FALSE },
634 { SCE_F_WORD3, "word3", FALSE },
635 { SCE_F_PREPROCESSOR, "preprocessor", FALSE },
636 { SCE_F_OPERATOR2, "operator2", FALSE },
637 { SCE_F_CONTINUATION, "continuation", FALSE },
638 { SCE_F_STRINGEOL, "stringeol", FALSE },
639 { SCE_F_LABEL, "label", FALSE }
641 static const HLKeyword highlighting_keywords_F77[] =
643 { 0, "primary", FALSE },
644 { 1, "intrinsic_functions", FALSE },
645 { 2, "user_functions", FALSE }
647 #define highlighting_properties_F77 EMPTY_PROPERTIES
650 /* Forth */
651 #define highlighting_lexer_FORTH SCLEX_FORTH
652 static const HLStyle highlighting_styles_FORTH[] =
654 { SCE_FORTH_DEFAULT, "default", FALSE },
655 { SCE_FORTH_COMMENT, "comment", FALSE },
656 { SCE_FORTH_COMMENT_ML, "commentml", FALSE },
657 { SCE_FORTH_IDENTIFIER, "identifier", FALSE },
658 { SCE_FORTH_CONTROL, "control", FALSE },
659 { SCE_FORTH_KEYWORD, "keyword", FALSE },
660 { SCE_FORTH_DEFWORD, "defword", FALSE },
661 { SCE_FORTH_PREWORD1, "preword1", FALSE },
662 { SCE_FORTH_PREWORD2, "preword2", FALSE },
663 { SCE_FORTH_NUMBER, "number", FALSE },
664 { SCE_FORTH_STRING, "string", FALSE },
665 { SCE_FORTH_LOCALE, "locale", FALSE }
667 static const HLKeyword highlighting_keywords_FORTH[] =
669 { 0, "primary", FALSE },
670 { 1, "keyword", FALSE },
671 { 2, "defword", FALSE },
672 { 3, "preword1", FALSE },
673 { 4, "preword2", FALSE },
674 { 5, "string", FALSE }
676 #define highlighting_properties_FORTH EMPTY_PROPERTIES
679 /* Fortran */
680 /* F77 and Fortran (F9x) uses different lexers but shares styles and keywords */
681 #define highlighting_lexer_FORTRAN SCLEX_FORTRAN
682 #define highlighting_styles_FORTRAN highlighting_styles_F77
683 #define highlighting_keywords_FORTRAN highlighting_keywords_F77
684 #define highlighting_properties_FORTRAN highlighting_properties_F77
687 /* GDScript */
688 #define highlighting_lexer_GDSCRIPT SCLEX_GDSCRIPT
689 static const HLStyle highlighting_styles_GDSCRIPT[] =
691 { SCE_GD_DEFAULT, "default", FALSE },
692 { SCE_GD_COMMENTLINE, "commentline", FALSE },
693 { SCE_GD_NUMBER, "number", FALSE },
694 { SCE_GD_STRING, "string", FALSE },
695 { SCE_GD_CHARACTER, "character", FALSE },
696 { SCE_GD_WORD, "word", FALSE },
697 { SCE_GD_TRIPLE, "triple", FALSE },
698 { SCE_GD_TRIPLEDOUBLE, "tripledouble", FALSE },
699 { SCE_GD_CLASSNAME, "classname", FALSE },
700 { SCE_GD_FUNCNAME, "funcname", FALSE },
701 { SCE_GD_OPERATOR, "operator", FALSE },
702 { SCE_GD_IDENTIFIER, "identifier", FALSE },
703 { SCE_GD_COMMENTBLOCK, "commentblock", FALSE },
704 { SCE_GD_STRINGEOL, "stringeol", FALSE },
705 { SCE_GD_WORD2, "word2", FALSE },
706 { SCE_GD_ANNOTATION, "annotation", FALSE },
707 { SCE_GD_NODEPATH, "notepath", FALSE }
709 static const HLKeyword highlighting_keywords_GDSCRIPT[] =
711 { 0, "primary", FALSE },
712 { 1, "identifiers", FALSE }
714 #define highlighting_properties_GDSCRIPT EMPTY_PROPERTIES
717 /* Go */
718 #define highlighting_lexer_GO SCLEX_CPP
719 #define highlighting_styles_GO highlighting_styles_C
720 #define highlighting_keywords_GO highlighting_keywords_C
721 #define highlighting_properties_GO highlighting_properties_C
724 /* Haskell */
725 #define highlighting_lexer_HASKELL SCLEX_HASKELL
726 static const HLStyle highlighting_styles_HASKELL[] =
728 { SCE_HA_DEFAULT, "default", FALSE },
729 { SCE_HA_COMMENTLINE, "commentline", FALSE },
730 { SCE_HA_COMMENTBLOCK, "commentblock", FALSE },
731 { SCE_HA_COMMENTBLOCK2, "commentblock2", FALSE },
732 { SCE_HA_COMMENTBLOCK3, "commentblock3", FALSE },
733 { SCE_HA_NUMBER, "number", FALSE },
734 { SCE_HA_KEYWORD, "keyword", FALSE },
735 { SCE_HA_IMPORT, "import", FALSE },
736 { SCE_HA_STRING, "string", FALSE },
737 { SCE_HA_CHARACTER, "character", FALSE },
738 { SCE_HA_CLASS, "class", FALSE },
739 { SCE_HA_OPERATOR, "operator", FALSE },
740 { SCE_HA_IDENTIFIER, "identifier", FALSE },
741 { SCE_HA_INSTANCE, "instance", FALSE },
742 { SCE_HA_CAPITAL, "capital", FALSE },
743 { SCE_HA_MODULE, "module", FALSE },
744 { SCE_HA_DATA, "data", FALSE },
745 { SCE_HA_PRAGMA, "pragma", FALSE },
746 { SCE_HA_PREPROCESSOR, "preprocessor", FALSE },
747 { SCE_HA_STRINGEOL, "stringeol", FALSE },
748 { SCE_HA_RESERVED_OPERATOR, "reserved_operator", FALSE },
749 { SCE_HA_LITERATE_COMMENT, "literate_comment", FALSE },
750 { SCE_HA_LITERATE_CODEDELIM, "literate_codedelim", FALSE }
752 static const HLKeyword highlighting_keywords_HASKELL[] =
754 { 0, "keywords", FALSE },
755 { 1, "ffi", FALSE },
756 { 2, "reserved_operators", FALSE }
758 #define highlighting_properties_HASKELL EMPTY_PROPERTIES
761 /* HAXE */
762 #define highlighting_lexer_HAXE SCLEX_CPP
763 #define highlighting_styles_HAXE highlighting_styles_C
764 static const HLKeyword highlighting_keywords_HAXE[] =
766 { 0, "primary", FALSE },
767 { 1, "secondary", FALSE },
768 { 3, "classes", FALSE }
770 #define highlighting_properties_HAXE highlighting_properties_C
773 /* HTML */
774 #define highlighting_lexer_HTML SCLEX_HTML
775 static const HLStyle highlighting_styles_HTML[] =
777 { SCE_H_DEFAULT, "html_default", FALSE },
778 { SCE_H_TAG, "html_tag", FALSE },
779 { SCE_H_TAGUNKNOWN, "html_tagunknown", FALSE },
780 { SCE_H_ATTRIBUTE, "html_attribute", FALSE },
781 { SCE_H_ATTRIBUTEUNKNOWN, "html_attributeunknown", FALSE },
782 { SCE_H_NUMBER, "html_number", FALSE },
783 { SCE_H_DOUBLESTRING, "html_doublestring", FALSE },
784 { SCE_H_SINGLESTRING, "html_singlestring", FALSE },
785 { SCE_H_OTHER, "html_other", FALSE },
786 { SCE_H_COMMENT, "html_comment", FALSE },
787 { SCE_H_ENTITY, "html_entity", FALSE },
788 { SCE_H_TAGEND, "html_tagend", FALSE },
789 { SCE_H_XMLSTART, "html_xmlstart", TRUE },
790 { SCE_H_XMLEND, "html_xmlend", FALSE },
791 { SCE_H_SCRIPT, "html_script", FALSE },
792 { SCE_H_ASP, "html_asp", TRUE },
793 { SCE_H_ASPAT, "html_aspat", TRUE },
794 { SCE_H_CDATA, "html_cdata", FALSE },
795 { SCE_H_QUESTION, "html_question", FALSE },
796 { SCE_H_VALUE, "html_value", FALSE },
797 { SCE_H_XCCOMMENT, "html_xccomment", FALSE },
799 { SCE_H_SGML_DEFAULT, "sgml_default", FALSE },
800 { SCE_H_SGML_COMMENT, "sgml_comment", FALSE },
801 { SCE_H_SGML_SPECIAL, "sgml_special", FALSE },
802 { SCE_H_SGML_COMMAND, "sgml_command", FALSE },
803 { SCE_H_SGML_DOUBLESTRING, "sgml_doublestring", FALSE },
804 { SCE_H_SGML_SIMPLESTRING, "sgml_simplestring", FALSE },
805 { SCE_H_SGML_1ST_PARAM, "sgml_1st_param", FALSE },
806 { SCE_H_SGML_ENTITY, "sgml_entity", FALSE },
807 { SCE_H_SGML_BLOCK_DEFAULT, "sgml_block_default", FALSE },
808 { SCE_H_SGML_1ST_PARAM_COMMENT, "sgml_1st_param_comment", FALSE },
809 { SCE_H_SGML_ERROR, "sgml_error", FALSE },
811 /* embedded JavaScript */
812 { SCE_HJ_START, "jscript_start", FALSE },
813 { SCE_HJ_DEFAULT, "jscript_default", FALSE },
814 { SCE_HJ_COMMENT, "jscript_comment", FALSE },
815 { SCE_HJ_COMMENTLINE, "jscript_commentline", FALSE },
816 { SCE_HJ_COMMENTDOC, "jscript_commentdoc", FALSE },
817 { SCE_HJ_NUMBER, "jscript_number", FALSE },
818 { SCE_HJ_WORD, "jscript_word", FALSE },
819 { SCE_HJ_KEYWORD, "jscript_keyword", FALSE },
820 { SCE_HJ_DOUBLESTRING, "jscript_doublestring", FALSE },
821 { SCE_HJ_SINGLESTRING, "jscript_singlestring", FALSE },
822 { SCE_HJ_SYMBOLS, "jscript_symbols", FALSE },
823 { SCE_HJ_STRINGEOL, "jscript_stringeol", FALSE },
824 { SCE_HJ_REGEX, "jscript_regex", FALSE },
826 /* for HB, VBScript?, use the same styles as for JavaScript */
827 { SCE_HB_START, "jscript_start", FALSE },
828 { SCE_HB_DEFAULT, "jscript_default", FALSE },
829 { SCE_HB_COMMENTLINE, "jscript_commentline", FALSE },
830 { SCE_HB_NUMBER, "jscript_number", FALSE },
831 { SCE_HB_WORD, "jscript_keyword", FALSE }, /* keywords */
832 { SCE_HB_STRING, "jscript_doublestring", FALSE },
833 { SCE_HB_IDENTIFIER, "jscript_symbols", FALSE },
834 { SCE_HB_STRINGEOL, "jscript_stringeol", FALSE },
836 /* for HBA, VBScript?, use the same styles as for JavaScript */
837 { SCE_HBA_START, "jscript_start", FALSE },
838 { SCE_HBA_DEFAULT, "jscript_default", FALSE },
839 { SCE_HBA_COMMENTLINE, "jscript_commentline", FALSE },
840 { SCE_HBA_NUMBER, "jscript_number", FALSE },
841 { SCE_HBA_WORD, "jscript_keyword", FALSE }, /* keywords */
842 { SCE_HBA_STRING, "jscript_doublestring", FALSE },
843 { SCE_HBA_IDENTIFIER, "jscript_symbols", FALSE },
844 { SCE_HBA_STRINGEOL, "jscript_stringeol", FALSE },
846 /* for HJA, ASP Javascript, use the same styles as for JavaScript */
847 { SCE_HJA_START, "jscript_start", FALSE },
848 { SCE_HJA_DEFAULT, "jscript_default", FALSE },
849 { SCE_HJA_COMMENT, "jscript_comment", FALSE },
850 { SCE_HJA_COMMENTLINE, "jscript_commentline", FALSE },
851 { SCE_HJA_COMMENTDOC, "jscript_commentdoc", FALSE },
852 { SCE_HJA_NUMBER, "jscript_number", FALSE },
853 { SCE_HJA_WORD, "jscript_word", FALSE },
854 { SCE_HJA_KEYWORD, "jscript_keyword", FALSE },
855 { SCE_HJA_DOUBLESTRING, "jscript_doublestring", FALSE },
856 { SCE_HJA_SINGLESTRING, "jscript_singlestring", FALSE },
857 { SCE_HJA_SYMBOLS, "jscript_symbols", FALSE },
858 { SCE_HJA_STRINGEOL, "jscript_stringeol", FALSE },
859 { SCE_HJA_REGEX, "jscript_regex", FALSE },
861 /* embedded Python */
862 { SCE_HP_START, "jscript_start", FALSE },
863 { SCE_HP_DEFAULT, "python_default", FALSE },
864 { SCE_HP_COMMENTLINE, "python_commentline", FALSE },
865 { SCE_HP_NUMBER, "python_number", FALSE },
866 { SCE_HP_STRING, "python_string", FALSE },
867 { SCE_HP_CHARACTER, "python_character", FALSE },
868 { SCE_HP_WORD, "python_word", FALSE },
869 { SCE_HP_TRIPLE, "python_triple", FALSE },
870 { SCE_HP_TRIPLEDOUBLE, "python_tripledouble", FALSE },
871 { SCE_HP_CLASSNAME, "python_classname", FALSE },
872 { SCE_HP_DEFNAME, "python_defname", FALSE },
873 { SCE_HP_OPERATOR, "python_operator", FALSE },
874 { SCE_HP_IDENTIFIER, "python_identifier", FALSE },
876 /* for embedded HPA (what is this?) we use the Python styles */
877 { SCE_HPA_START, "jscript_start", FALSE },
878 { SCE_HPA_DEFAULT, "python_default", FALSE },
879 { SCE_HPA_COMMENTLINE, "python_commentline", FALSE },
880 { SCE_HPA_NUMBER, "python_number", FALSE },
881 { SCE_HPA_STRING, "python_string", FALSE },
882 { SCE_HPA_CHARACTER, "python_character", FALSE },
883 { SCE_HPA_WORD, "python_word", FALSE },
884 { SCE_HPA_TRIPLE, "python_triple", FALSE },
885 { SCE_HPA_TRIPLEDOUBLE, "python_tripledouble", FALSE },
886 { SCE_HPA_CLASSNAME, "python_classname", FALSE },
887 { SCE_HPA_DEFNAME, "python_defname", FALSE },
888 { SCE_HPA_OPERATOR, "python_operator", FALSE },
889 { SCE_HPA_IDENTIFIER, "python_identifier", FALSE },
891 /* PHP */
892 { SCE_HPHP_DEFAULT, "php_default", FALSE },
893 { SCE_HPHP_SIMPLESTRING, "php_simplestring", FALSE },
894 { SCE_HPHP_HSTRING, "php_hstring", FALSE },
895 { SCE_HPHP_NUMBER, "php_number", FALSE },
896 { SCE_HPHP_WORD, "php_word", FALSE },
897 { SCE_HPHP_VARIABLE, "php_variable", FALSE },
898 { SCE_HPHP_COMMENT, "php_comment", FALSE },
899 { SCE_HPHP_COMMENTLINE, "php_commentline", FALSE },
900 { SCE_HPHP_OPERATOR, "php_operator", FALSE },
901 { SCE_HPHP_HSTRING_VARIABLE, "php_hstring_variable", FALSE },
902 { SCE_HPHP_COMPLEX_VARIABLE, "php_complex_variable", FALSE }
904 static const HLKeyword highlighting_keywords_HTML[] =
906 { 0, "html", FALSE },
907 { 1, "javascript", FALSE },
908 { 2, "vbscript", FALSE },
909 { 3, "python", FALSE },
910 { 4, "php", FALSE },
911 { 5, "sgml", FALSE }
913 static const HLProperty highlighting_properties_HTML[] =
915 { "fold.html", "1" },
916 { "fold.html.preprocessor", "0" }
920 /* Java */
921 #define highlighting_lexer_JAVA SCLEX_CPP
922 #define highlighting_styles_JAVA highlighting_styles_C
923 static const HLKeyword highlighting_keywords_JAVA[] =
925 { 0, "primary", FALSE },
926 /* SCI_SETKEYWORDS = 1 - secondary + global tags file types, see below */
927 { 1, "secondary", TRUE },
928 { 2, "doccomment", FALSE },
929 /* SCI_SETKEYWORDS = 3 is for current session types - see document_highlight_tags() */
930 { 4, "typedefs", FALSE }
932 #define highlighting_properties_JAVA highlighting_properties_C
935 /* JavaScript */
936 #define highlighting_lexer_JS SCLEX_CPP
937 #define highlighting_styles_JS highlighting_styles_C
938 static const HLKeyword highlighting_keywords_JS[] =
940 { 0, "primary", FALSE },
941 { 1, "secondary", FALSE }
943 #define highlighting_properties_JS highlighting_properties_C
945 /* Julia */
946 #define highlighting_lexer_JULIA SCLEX_JULIA
947 static const HLStyle highlighting_styles_JULIA[] =
949 { SCE_JULIA_DEFAULT, "default", FALSE },
950 { SCE_JULIA_COMMENT, "comment", FALSE },
951 { SCE_JULIA_NUMBER, "number", FALSE },
952 { SCE_JULIA_KEYWORD1, "keyword1", FALSE },
953 { SCE_JULIA_KEYWORD2, "keyword2", FALSE },
954 { SCE_JULIA_KEYWORD3, "keyword3", FALSE },
955 { SCE_JULIA_CHAR, "char", FALSE },
956 { SCE_JULIA_OPERATOR, "operator", FALSE },
957 { SCE_JULIA_BRACKET, "bracket", FALSE },
958 { SCE_JULIA_IDENTIFIER, "identifier", FALSE },
959 { SCE_JULIA_STRING, "string", FALSE },
960 { SCE_JULIA_SYMBOL, "symbol", FALSE },
961 { SCE_JULIA_MACRO, "macro", FALSE },
962 { SCE_JULIA_STRINGINTERP, "stringinterp", FALSE },
963 { SCE_JULIA_DOCSTRING, "docstring", FALSE },
964 { SCE_JULIA_STRINGLITERAL, "stringliteral", FALSE },
965 { SCE_JULIA_COMMAND, "command", FALSE },
966 { SCE_JULIA_COMMANDLITERAL, "commandliteral", FALSE },
967 { SCE_JULIA_TYPEANNOT, "typeannotation", FALSE },
968 { SCE_JULIA_LEXERROR, "lexerror", FALSE },
969 { SCE_JULIA_KEYWORD4, "keyword4", FALSE },
970 { SCE_JULIA_TYPEOPERATOR, "typeoperator", FALSE },
972 static const HLKeyword highlighting_keywords_JULIA[] =
974 { 0, "primary", FALSE },
975 { 1, "secondary", FALSE },
976 { 2, "tertiary", FALSE },
977 { 3, "functions", FALSE }
979 #define highlighting_properties_JULIA EMPTY_PROPERTIES
982 /* LaTeX */
983 #define highlighting_lexer_LATEX SCLEX_LATEX
984 static const HLStyle highlighting_styles_LATEX[] =
986 { SCE_L_DEFAULT, "default", FALSE },
987 { SCE_L_COMMAND, "command", FALSE },
988 { SCE_L_TAG, "tag", FALSE },
989 { SCE_L_MATH, "math", FALSE },
990 { SCE_L_COMMENT, "comment", FALSE },
991 { SCE_L_TAG2, "tag2", FALSE },
992 { SCE_L_MATH2, "math2", FALSE },
993 { SCE_L_COMMENT2, "comment2", FALSE },
994 { SCE_L_VERBATIM, "verbatim", FALSE },
995 { SCE_L_SHORTCMD, "shortcmd", FALSE },
996 { SCE_L_SPECIAL, "special", FALSE },
997 { SCE_L_CMDOPT, "cmdopt", FALSE },
998 { SCE_L_ERROR, "error", FALSE }
1000 static const HLKeyword highlighting_keywords_LATEX[] =
1002 { 0, "primary", FALSE }
1004 #define highlighting_properties_LATEX EMPTY_PROPERTIES
1007 /* Lisp */
1008 #define highlighting_lexer_LISP SCLEX_LISP
1009 static const HLStyle highlighting_styles_LISP[] =
1011 { SCE_LISP_DEFAULT, "default", FALSE },
1012 { SCE_LISP_COMMENT, "comment", FALSE },
1013 { SCE_LISP_MULTI_COMMENT, "multicomment", FALSE },
1014 { SCE_LISP_NUMBER, "number", FALSE },
1015 { SCE_LISP_KEYWORD, "keyword", FALSE },
1016 { SCE_LISP_SYMBOL, "symbol", FALSE },
1017 { SCE_LISP_STRING, "string", FALSE },
1018 { SCE_LISP_STRINGEOL, "stringeol", FALSE },
1019 { SCE_LISP_IDENTIFIER, "identifier", FALSE },
1020 { SCE_LISP_OPERATOR, "operator", FALSE },
1021 { SCE_LISP_SPECIAL, "special", FALSE },
1022 { SCE_LISP_KEYWORD_KW, "keywordkw", FALSE }
1024 static const HLKeyword highlighting_keywords_LISP[] =
1026 { 0, "keywords", FALSE },
1027 { 1, "special_keywords", FALSE }
1029 #define highlighting_properties_LISP EMPTY_PROPERTIES
1032 /* Lua */
1033 #define highlighting_lexer_LUA SCLEX_LUA
1034 static const HLStyle highlighting_styles_LUA[] =
1036 { SCE_LUA_DEFAULT, "default", FALSE },
1037 { SCE_LUA_COMMENT, "comment", FALSE },
1038 { SCE_LUA_COMMENTLINE, "commentline", FALSE },
1039 { SCE_LUA_COMMENTDOC, "commentdoc", FALSE },
1040 { SCE_LUA_NUMBER, "number", FALSE },
1041 { SCE_LUA_WORD, "word", FALSE },
1042 { SCE_LUA_STRING, "string", FALSE },
1043 { SCE_LUA_CHARACTER, "character", FALSE },
1044 { SCE_LUA_LITERALSTRING, "literalstring", FALSE },
1045 { SCE_LUA_PREPROCESSOR, "preprocessor", FALSE },
1046 { SCE_LUA_OPERATOR, "operator", FALSE },
1047 { SCE_LUA_IDENTIFIER, "identifier", FALSE },
1048 { SCE_LUA_STRINGEOL, "stringeol", FALSE },
1049 { SCE_LUA_WORD2, "function_basic", FALSE },
1050 { SCE_LUA_WORD3, "function_other", FALSE },
1051 { SCE_LUA_WORD4, "coroutines", FALSE },
1052 { SCE_LUA_WORD5, "word5", FALSE },
1053 { SCE_LUA_WORD6, "word6", FALSE },
1054 { SCE_LUA_WORD7, "word7", FALSE },
1055 { SCE_LUA_WORD8, "word8", FALSE },
1056 { SCE_LUA_LABEL, "label", FALSE }
1058 static const HLKeyword highlighting_keywords_LUA[] =
1060 { 0, "keywords", FALSE },
1061 { 1, "function_basic", FALSE },
1062 { 2, "function_other", FALSE },
1063 { 3, "coroutines", FALSE },
1064 { 4, "user1", FALSE },
1065 { 5, "user2", FALSE },
1066 { 6, "user3", FALSE },
1067 { 7, "user4", FALSE }
1069 #define highlighting_properties_LUA EMPTY_PROPERTIES
1072 /* Makefile */
1073 #define highlighting_lexer_MAKE SCLEX_MAKEFILE
1074 static const HLStyle highlighting_styles_MAKE[] =
1076 { SCE_MAKE_DEFAULT, "default", FALSE },
1077 { SCE_MAKE_COMMENT, "comment", FALSE },
1078 { SCE_MAKE_PREPROCESSOR, "preprocessor", FALSE },
1079 { SCE_MAKE_IDENTIFIER, "identifier", FALSE },
1080 { SCE_MAKE_OPERATOR, "operator", FALSE },
1081 { SCE_MAKE_TARGET, "target", FALSE },
1082 { SCE_MAKE_IDEOL, "ideol", FALSE }
1084 #define highlighting_keywords_MAKE EMPTY_KEYWORDS
1085 #define highlighting_properties_MAKE EMPTY_PROPERTIES
1088 /* Markdown */
1089 #define highlighting_lexer_MARKDOWN SCLEX_MARKDOWN
1090 static const HLStyle highlighting_styles_MARKDOWN[] =
1092 { SCE_MARKDOWN_DEFAULT, "default", FALSE },
1093 { SCE_MARKDOWN_LINE_BEGIN, "default", FALSE }, /* FIXME: avoid in-code re-mappings */
1094 { SCE_MARKDOWN_PRECHAR, "default", FALSE },
1095 { SCE_MARKDOWN_STRONG1, "strong", FALSE },
1096 { SCE_MARKDOWN_STRONG2, "strong", FALSE },
1097 { SCE_MARKDOWN_EM1, "emphasis", FALSE },
1098 { SCE_MARKDOWN_EM2, "emphasis", FALSE },
1099 { SCE_MARKDOWN_HEADER1, "header1", FALSE },
1100 { SCE_MARKDOWN_HEADER2, "header2", FALSE },
1101 { SCE_MARKDOWN_HEADER3, "header3", FALSE },
1102 { SCE_MARKDOWN_HEADER4, "header4", FALSE },
1103 { SCE_MARKDOWN_HEADER5, "header5", FALSE },
1104 { SCE_MARKDOWN_HEADER6, "header6", FALSE },
1105 { SCE_MARKDOWN_ULIST_ITEM, "ulist_item", FALSE },
1106 { SCE_MARKDOWN_OLIST_ITEM, "olist_item", FALSE },
1107 { SCE_MARKDOWN_BLOCKQUOTE, "blockquote", FALSE },
1108 { SCE_MARKDOWN_STRIKEOUT, "strikeout", FALSE },
1109 { SCE_MARKDOWN_HRULE, "hrule", FALSE },
1110 { SCE_MARKDOWN_LINK, "link", FALSE },
1111 { SCE_MARKDOWN_CODE, "code", FALSE },
1112 { SCE_MARKDOWN_CODE2, "code", FALSE },
1113 { SCE_MARKDOWN_CODEBK, "codebk", FALSE }
1115 #define highlighting_keywords_MARKDOWN EMPTY_KEYWORDS
1116 #define highlighting_properties_MARKDOWN EMPTY_PROPERTIES
1119 /* Matlab */
1120 #define highlighting_lexer_MATLAB SCLEX_OCTAVE /* not MATLAB to support Octave's # comments */
1121 static const HLStyle highlighting_styles_MATLAB[] =
1123 { SCE_MATLAB_DEFAULT, "default", FALSE },
1124 { SCE_MATLAB_COMMENT, "comment", FALSE },
1125 { SCE_MATLAB_COMMAND, "command", FALSE },
1126 { SCE_MATLAB_NUMBER, "number", FALSE },
1127 { SCE_MATLAB_KEYWORD, "keyword", FALSE },
1128 { SCE_MATLAB_STRING, "string", FALSE },
1129 { SCE_MATLAB_OPERATOR, "operator", FALSE },
1130 { SCE_MATLAB_IDENTIFIER, "identifier", FALSE },
1131 { SCE_MATLAB_DOUBLEQUOTESTRING, "doublequotedstring", FALSE }
1133 static const HLKeyword highlighting_keywords_MATLAB[] =
1135 { 0, "primary", FALSE }
1137 #define highlighting_properties_MATLAB EMPTY_PROPERTIES
1140 /* NSIS */
1141 #define highlighting_lexer_NSIS SCLEX_NSIS
1142 static const HLStyle highlighting_styles_NSIS[] =
1144 { SCE_NSIS_DEFAULT, "default", FALSE },
1145 { SCE_NSIS_COMMENT, "comment", FALSE },
1146 { SCE_NSIS_STRINGDQ, "stringdq", FALSE },
1147 { SCE_NSIS_STRINGLQ, "stringlq", FALSE },
1148 { SCE_NSIS_STRINGRQ, "stringrq", FALSE },
1149 { SCE_NSIS_FUNCTION, "function", FALSE },
1150 { SCE_NSIS_VARIABLE, "variable", FALSE },
1151 { SCE_NSIS_LABEL, "label", FALSE },
1152 { SCE_NSIS_USERDEFINED, "userdefined", FALSE },
1153 { SCE_NSIS_SECTIONDEF, "sectiondef", FALSE },
1154 { SCE_NSIS_SUBSECTIONDEF, "subsectiondef", FALSE },
1155 { SCE_NSIS_IFDEFINEDEF, "ifdefinedef", FALSE },
1156 { SCE_NSIS_MACRODEF, "macrodef", FALSE },
1157 { SCE_NSIS_STRINGVAR, "stringvar", FALSE },
1158 { SCE_NSIS_NUMBER, "number", FALSE },
1159 { SCE_NSIS_SECTIONGROUP, "sectiongroup", FALSE },
1160 { SCE_NSIS_PAGEEX, "pageex", FALSE },
1161 { SCE_NSIS_FUNCTIONDEF, "functiondef", FALSE },
1162 { SCE_NSIS_COMMENTBOX, "commentbox", FALSE }
1164 static const HLKeyword highlighting_keywords_NSIS[] =
1166 { 0, "functions", FALSE },
1167 { 1, "variables", FALSE },
1168 { 2, "lables", FALSE },
1169 { 3, "userdefined", FALSE }
1171 #define highlighting_properties_NSIS EMPTY_PROPERTIES
1174 /* Objective-C */
1175 #define highlighting_lexer_OBJECTIVEC highlighting_lexer_C
1176 #define highlighting_styles_OBJECTIVEC highlighting_styles_C
1177 static const HLKeyword highlighting_keywords_OBJECTIVEC[] =
1179 { 0, "primary", FALSE },
1180 /* SCI_SETKEYWORDS = 1 - secondary + global tags file types, see below */
1181 { 1, "secondary", TRUE },
1182 { 2, "docComment", FALSE }
1183 /* SCI_SETKEYWORDS = 3 is for current session types - see document_highlight_tags() */
1185 #define highlighting_properties_OBJECTIVEC highlighting_properties_C
1188 /* Pascal */
1189 #define highlighting_lexer_PASCAL SCLEX_PASCAL
1190 static const HLStyle highlighting_styles_PASCAL[] =
1192 { SCE_PAS_DEFAULT, "default", FALSE },
1193 { SCE_PAS_IDENTIFIER, "identifier", FALSE },
1194 { SCE_PAS_COMMENT, "comment", FALSE },
1195 { SCE_PAS_COMMENT2, "comment2", FALSE },
1196 { SCE_PAS_COMMENTLINE, "commentline", FALSE },
1197 { SCE_PAS_PREPROCESSOR, "preprocessor", FALSE },
1198 { SCE_PAS_PREPROCESSOR2, "preprocessor2", FALSE },
1199 { SCE_PAS_NUMBER, "number", FALSE },
1200 { SCE_PAS_HEXNUMBER, "hexnumber", FALSE },
1201 { SCE_PAS_WORD, "word", FALSE },
1202 { SCE_PAS_STRING, "string", FALSE },
1203 { SCE_PAS_STRINGEOL, "stringeol", FALSE },
1204 { SCE_PAS_CHARACTER, "character", FALSE },
1205 { SCE_PAS_OPERATOR, "operator", FALSE },
1206 { SCE_PAS_ASM, "asm", FALSE }
1208 static const HLKeyword highlighting_keywords_PASCAL[] =
1210 { 0, "primary", FALSE }
1212 #define highlighting_properties_PASCAL EMPTY_PROPERTIES
1215 /* Perl */
1216 #define highlighting_lexer_PERL SCLEX_PERL
1217 static const HLStyle highlighting_styles_PERL[] =
1219 { SCE_PL_DEFAULT, "default", FALSE },
1220 { SCE_PL_ERROR, "error", FALSE },
1221 { SCE_PL_COMMENTLINE, "commentline", FALSE },
1222 { SCE_PL_NUMBER, "number", FALSE },
1223 { SCE_PL_WORD, "word", FALSE },
1224 { SCE_PL_STRING, "string", FALSE },
1225 { SCE_PL_CHARACTER, "character", FALSE },
1226 { SCE_PL_PREPROCESSOR, "preprocessor", FALSE },
1227 { SCE_PL_OPERATOR, "operator", FALSE },
1228 { SCE_PL_IDENTIFIER, "identifier", FALSE },
1229 { SCE_PL_SCALAR, "scalar", FALSE },
1230 { SCE_PL_POD, "pod", FALSE },
1231 { SCE_PL_REGEX, "regex", FALSE },
1232 { SCE_PL_ARRAY, "array", FALSE },
1233 { SCE_PL_HASH, "hash", FALSE },
1234 { SCE_PL_SYMBOLTABLE, "symboltable", FALSE },
1235 { SCE_PL_BACKTICKS, "backticks", FALSE },
1236 { SCE_PL_POD_VERB, "pod_verbatim", FALSE },
1237 { SCE_PL_REGSUBST, "reg_subst", FALSE },
1238 { SCE_PL_DATASECTION, "datasection", FALSE },
1239 { SCE_PL_HERE_DELIM, "here_delim", FALSE },
1240 { SCE_PL_HERE_Q, "here_q", FALSE },
1241 { SCE_PL_HERE_QQ, "here_qq", FALSE },
1242 { SCE_PL_HERE_QX, "here_qx", FALSE },
1243 { SCE_PL_STRING_Q, "string_q", FALSE },
1244 { SCE_PL_STRING_QQ, "string_qq", FALSE },
1245 { SCE_PL_STRING_QX, "string_qx", FALSE },
1246 { SCE_PL_STRING_QR, "string_qr", FALSE },
1247 { SCE_PL_STRING_QW, "string_qw", FALSE },
1248 { SCE_PL_VARIABLE_INDEXER, "variable_indexer", FALSE },
1249 { SCE_PL_PUNCTUATION, "punctuation", FALSE },
1250 { SCE_PL_LONGQUOTE, "longquote", FALSE },
1251 { SCE_PL_SUB_PROTOTYPE, "sub_prototype", FALSE },
1252 { SCE_PL_FORMAT_IDENT, "format_ident", FALSE },
1253 { SCE_PL_FORMAT, "format", FALSE },
1254 { SCE_PL_STRING_VAR, "string_var", FALSE },
1255 { SCE_PL_XLAT, "xlat", FALSE },
1256 { SCE_PL_REGEX_VAR, "regex_var", FALSE },
1257 { SCE_PL_REGSUBST_VAR, "regsubst_var", FALSE },
1258 { SCE_PL_BACKTICKS_VAR, "backticks_var", FALSE },
1259 { SCE_PL_HERE_QQ_VAR, "here_qq_var", FALSE },
1260 { SCE_PL_HERE_QX_VAR, "here_qx_var", FALSE },
1261 { SCE_PL_STRING_QQ_VAR, "string_qq_var", FALSE },
1262 { SCE_PL_STRING_QX_VAR, "string_qx_var", FALSE },
1263 { SCE_PL_STRING_QR_VAR, "string_qr_var", FALSE }
1265 static const HLKeyword highlighting_keywords_PERL[] =
1267 { 0, "primary", FALSE }
1269 #define highlighting_properties_PERL EMPTY_PROPERTIES
1272 /* PHP */
1273 #define highlighting_lexer_PHP SCLEX_HTML
1274 #define highlighting_styles_PHP highlighting_styles_HTML
1275 #define highlighting_keywords_PHP highlighting_keywords_HTML
1276 #define highlighting_properties_PHP highlighting_properties_HTML
1279 /* PO (gettext) */
1280 #define highlighting_lexer_PO SCLEX_PO
1281 static const HLStyle highlighting_styles_PO[] =
1283 { SCE_PO_DEFAULT, "default", FALSE },
1284 { SCE_PO_COMMENT, "comment", FALSE },
1285 { SCE_PO_PROGRAMMER_COMMENT, "programmer_comment", FALSE },
1286 { SCE_PO_REFERENCE, "reference", FALSE },
1287 { SCE_PO_FLAGS, "flags", FALSE },
1288 { SCE_PO_FUZZY, "fuzzy", FALSE },
1289 { SCE_PO_MSGID, "msgid", FALSE },
1290 { SCE_PO_MSGID_TEXT, "msgid_text", FALSE },
1291 { SCE_PO_MSGID_TEXT_EOL, "msgid_text_eol", FALSE },
1292 { SCE_PO_MSGSTR, "msgstr", FALSE },
1293 { SCE_PO_MSGSTR_TEXT, "msgstr_text", FALSE },
1294 { SCE_PO_MSGSTR_TEXT_EOL, "msgstr_text_eol", FALSE },
1295 { SCE_PO_MSGCTXT, "msgctxt", FALSE },
1296 { SCE_PO_MSGCTXT_TEXT, "msgctxt_text", FALSE },
1297 { SCE_PO_MSGCTXT_TEXT_EOL, "msgctxt_text_eol", FALSE },
1298 { SCE_PO_ERROR, "error", FALSE }
1300 #define highlighting_keywords_PO EMPTY_KEYWORDS
1301 #define highlighting_properties_PO EMPTY_PROPERTIES
1304 /* PowerShell */
1305 #define highlighting_lexer_POWERSHELL SCLEX_POWERSHELL
1306 static const HLStyle highlighting_styles_POWERSHELL[] =
1308 { SCE_POWERSHELL_DEFAULT, "default", FALSE },
1309 { SCE_POWERSHELL_COMMENT, "comment", FALSE },
1310 { SCE_POWERSHELL_STRING, "string", FALSE },
1311 { SCE_POWERSHELL_CHARACTER, "character", FALSE },
1312 { SCE_POWERSHELL_NUMBER, "number", FALSE },
1313 { SCE_POWERSHELL_VARIABLE, "variable", FALSE },
1314 { SCE_POWERSHELL_OPERATOR, "operator", FALSE },
1315 { SCE_POWERSHELL_IDENTIFIER, "identifier", FALSE },
1316 { SCE_POWERSHELL_KEYWORD, "keyword", FALSE },
1317 { SCE_POWERSHELL_CMDLET, "cmdlet", FALSE },
1318 { SCE_POWERSHELL_ALIAS, "alias", FALSE },
1319 { SCE_POWERSHELL_FUNCTION, "function", FALSE },
1320 { SCE_POWERSHELL_USER1, "user1", FALSE },
1321 { SCE_POWERSHELL_COMMENTSTREAM, "commentstream", FALSE },
1322 { SCE_POWERSHELL_HERE_STRING, "here_string", FALSE },
1323 { SCE_POWERSHELL_HERE_CHARACTER, "here_character", FALSE },
1324 { SCE_POWERSHELL_COMMENTDOCKEYWORD, "commentdockeyword", FALSE },
1326 static const HLKeyword highlighting_keywords_POWERSHELL[] =
1328 { 0, "keywords", FALSE },
1329 { 1, "cmdlets", FALSE },
1330 { 2, "aliases", FALSE },
1331 { 3, "functions", FALSE },
1332 { 4, "user1", FALSE },
1333 { 5, "docComment", FALSE },
1335 #define highlighting_properties_POWERSHELL EMPTY_PROPERTIES
1338 /* Python */
1339 #define highlighting_lexer_PYTHON SCLEX_PYTHON
1340 static const HLStyle highlighting_styles_PYTHON[] =
1342 { SCE_P_DEFAULT, "default", FALSE },
1343 { SCE_P_COMMENTLINE, "commentline", FALSE },
1344 { SCE_P_NUMBER, "number", FALSE },
1345 { SCE_P_STRING, "string", FALSE },
1346 { SCE_P_CHARACTER, "character", FALSE },
1347 { SCE_P_WORD, "word", FALSE },
1348 { SCE_P_TRIPLE, "triple", FALSE },
1349 { SCE_P_TRIPLEDOUBLE, "tripledouble", FALSE },
1350 { SCE_P_CLASSNAME, "classname", FALSE },
1351 { SCE_P_DEFNAME, "defname", FALSE },
1352 { SCE_P_OPERATOR, "operator", FALSE },
1353 { SCE_P_IDENTIFIER, "identifier", FALSE },
1354 { SCE_P_COMMENTBLOCK, "commentblock", FALSE },
1355 { SCE_P_STRINGEOL, "stringeol", FALSE },
1356 { SCE_P_WORD2, "word2", FALSE },
1357 { SCE_P_FSTRING, "fstring", FALSE },
1358 { SCE_P_FCHARACTER, "fcharacter", FALSE },
1359 { SCE_P_FTRIPLE, "ftriple", FALSE },
1360 { SCE_P_FTRIPLEDOUBLE, "ftripledouble", FALSE },
1361 { SCE_P_DECORATOR, "decorator", FALSE },
1362 { SCE_P_ATTRIBUTE, "attribute", FALSE }
1364 static const HLKeyword highlighting_keywords_PYTHON[] =
1366 { 0, "primary", FALSE },
1367 { 1, "identifiers", FALSE }
1369 #define highlighting_properties_PYTHON EMPTY_PROPERTIES
1372 /* R */
1373 #define highlighting_lexer_R SCLEX_R
1374 static const HLStyle highlighting_styles_R[] =
1376 { SCE_R_DEFAULT, "default", FALSE },
1377 { SCE_R_COMMENT, "comment", FALSE },
1378 { SCE_R_KWORD, "kword", FALSE },
1379 { SCE_R_OPERATOR, "operator", FALSE },
1380 { SCE_R_BASEKWORD, "basekword", FALSE },
1381 { SCE_R_OTHERKWORD, "otherkword", FALSE },
1382 { SCE_R_NUMBER, "number", FALSE },
1383 { SCE_R_STRING, "string", FALSE },
1384 { SCE_R_STRING2, "string2", FALSE },
1385 { SCE_R_IDENTIFIER, "identifier", FALSE },
1386 { SCE_R_INFIX, "infix", FALSE },
1387 { SCE_R_INFIXEOL, "infixeol", FALSE },
1388 { SCE_R_BACKTICKS, "backticks", FALSE },
1389 { SCE_R_RAWSTRING, "stringraw", FALSE },
1390 { SCE_R_RAWSTRING2, "stringraw", FALSE },
1391 { SCE_R_ESCAPESEQUENCE, "escapesequence", FALSE }
1393 static const HLKeyword highlighting_keywords_R[] =
1395 { 0, "primary", FALSE },
1396 { 1, "package", FALSE },
1397 { 2, "package_other", FALSE }
1399 #define highlighting_properties_R EMPTY_PROPERTIES
1402 /* Raku */
1403 #define highlighting_lexer_RAKU SCLEX_RAKU
1404 static const HLStyle highlighting_styles_RAKU[] =
1406 { SCE_RAKU_DEFAULT, "default", FALSE },
1407 { SCE_RAKU_ERROR, "error", FALSE },
1408 { SCE_RAKU_COMMENTLINE, "commentline", FALSE },
1409 { SCE_RAKU_COMMENTEMBED, "commentembed", FALSE },
1410 { SCE_RAKU_POD, "pod", FALSE },
1411 { SCE_RAKU_CHARACTER, "character", FALSE },
1412 { SCE_RAKU_HEREDOC_Q, "heredoc_q", FALSE },
1413 { SCE_RAKU_HEREDOC_QQ, "heredoc_qq", FALSE },
1414 { SCE_RAKU_STRING, "string", FALSE },
1415 { SCE_RAKU_STRING_Q, "string_q", FALSE },
1416 { SCE_RAKU_STRING_QQ, "string_qq", FALSE },
1417 { SCE_RAKU_STRING_Q_LANG, "string_q_lang", FALSE },
1418 { SCE_RAKU_STRING_VAR, "string_var", FALSE },
1419 { SCE_RAKU_REGEX, "regex", FALSE },
1420 { SCE_RAKU_REGEX_VAR, "regex_var", FALSE },
1421 { SCE_RAKU_ADVERB, "adverb", FALSE },
1422 { SCE_RAKU_NUMBER, "number", FALSE },
1423 { SCE_RAKU_PREPROCESSOR, "preprocessor", FALSE },
1424 { SCE_RAKU_OPERATOR, "operator", FALSE },
1425 { SCE_RAKU_WORD, "word", FALSE },
1426 { SCE_RAKU_FUNCTION, "function", FALSE },
1427 { SCE_RAKU_IDENTIFIER, "identifier", FALSE },
1428 { SCE_RAKU_TYPEDEF, "typedef", FALSE },
1429 { SCE_RAKU_MU, "mu", FALSE },
1430 { SCE_RAKU_POSITIONAL, "positional", FALSE },
1431 { SCE_RAKU_ASSOCIATIVE, "associative", FALSE },
1432 { SCE_RAKU_CALLABLE, "callable", FALSE },
1433 { SCE_RAKU_GRAMMAR, "grammar", FALSE },
1434 { SCE_RAKU_CLASS, "class", FALSE }
1436 static const HLKeyword highlighting_keywords_RAKU[] =
1438 { 0, "keywords", FALSE },
1439 { 1, "functions", FALSE },
1440 { 2, "types_basic", FALSE },
1441 { 3, "types_composite", FALSE },
1442 { 4, "types_domain", FALSE },
1443 { 5, "types_exceptions", FALSE },
1444 { 6, "adverbs", FALSE },
1446 #define highlighting_properties_RAKU EMPTY_PROPERTIES
1449 /* Ruby */
1450 #define highlighting_lexer_RUBY SCLEX_RUBY
1451 static const HLStyle highlighting_styles_RUBY[] =
1453 { SCE_RB_DEFAULT, "default", FALSE },
1454 { SCE_RB_COMMENTLINE, "commentline", FALSE },
1455 { SCE_RB_NUMBER, "number", FALSE },
1456 { SCE_RB_STRING, "string", FALSE },
1457 { SCE_RB_CHARACTER, "character", FALSE },
1458 { SCE_RB_WORD, "word", FALSE },
1459 { SCE_RB_GLOBAL, "global", FALSE },
1460 { SCE_RB_SYMBOL, "symbol", FALSE },
1461 { SCE_RB_CLASSNAME, "classname", FALSE },
1462 { SCE_RB_DEFNAME, "defname", FALSE },
1463 { SCE_RB_OPERATOR, "operator", FALSE },
1464 { SCE_RB_IDENTIFIER, "identifier", FALSE },
1465 { SCE_RB_MODULE_NAME, "modulename", FALSE },
1466 { SCE_RB_BACKTICKS, "backticks", FALSE },
1467 { SCE_RB_INSTANCE_VAR, "instancevar", FALSE },
1468 { SCE_RB_CLASS_VAR, "classvar", FALSE },
1469 { SCE_RB_DATASECTION, "datasection", FALSE },
1470 { SCE_RB_HERE_DELIM, "heredelim", FALSE },
1471 { SCE_RB_WORD_DEMOTED, "worddemoted", FALSE },
1472 { SCE_RB_STDIN, "stdin", FALSE },
1473 { SCE_RB_STDOUT, "stdout", FALSE },
1474 { SCE_RB_STDERR, "stderr", FALSE },
1475 { SCE_RB_REGEX, "regex", FALSE },
1476 { SCE_RB_HERE_Q, "here_q", FALSE },
1477 { SCE_RB_HERE_QQ, "here_qq", FALSE },
1478 { SCE_RB_HERE_QX, "here_qx", FALSE },
1479 { SCE_RB_STRING_Q, "string_q", FALSE },
1480 { SCE_RB_STRING_QQ, "string_qq", FALSE },
1481 { SCE_RB_STRING_QX, "string_qx", FALSE },
1482 { SCE_RB_STRING_QR, "string_qr", FALSE },
1483 { SCE_RB_STRING_QW, "string_qw", FALSE },
1484 { SCE_RB_STRING_W, "string_qw", FALSE },
1485 { SCE_RB_STRING_QI, "symbol", FALSE },
1486 { SCE_RB_STRING_QS, "symbol", FALSE },
1487 { SCE_RB_STRING_I, "symbol", FALSE },
1488 { SCE_RB_UPPER_BOUND, "upper_bound", FALSE },
1489 { SCE_RB_ERROR, "error", FALSE },
1490 { SCE_RB_POD, "pod", FALSE }
1492 static const HLKeyword highlighting_keywords_RUBY[] =
1494 { 0, "primary", FALSE }
1496 #define highlighting_properties_RUBY EMPTY_PROPERTIES
1498 /* Rust */
1499 #define highlighting_lexer_RUST SCLEX_RUST
1500 static const HLStyle highlighting_styles_RUST[] =
1502 { SCE_RUST_DEFAULT, "default", FALSE },
1503 { SCE_RUST_COMMENTBLOCK, "commentblock", FALSE },
1504 { SCE_RUST_COMMENTLINE, "commentline", FALSE },
1505 { SCE_RUST_COMMENTBLOCKDOC, "commentblockdoc", FALSE },
1506 { SCE_RUST_COMMENTLINEDOC, "commentlinedoc", FALSE },
1507 { SCE_RUST_NUMBER, "number", FALSE },
1508 { SCE_RUST_WORD, "word", FALSE },
1509 { SCE_RUST_WORD2, "word2", FALSE },
1510 { SCE_RUST_WORD3, "word3", FALSE },
1511 { SCE_RUST_WORD4, "word4", FALSE },
1512 { SCE_RUST_WORD5, "word5", FALSE },
1513 { SCE_RUST_WORD6, "word6", FALSE },
1514 { SCE_RUST_WORD7, "word7", FALSE },
1515 { SCE_RUST_STRING, "string", FALSE },
1516 { SCE_RUST_STRINGR, "stringraw", FALSE },
1517 { SCE_RUST_CHARACTER, "character", FALSE },
1518 { SCE_RUST_OPERATOR, "operator", FALSE },
1519 { SCE_RUST_IDENTIFIER, "identifier", FALSE },
1520 { SCE_RUST_LIFETIME, "lifetime", FALSE },
1521 { SCE_RUST_MACRO, "macro", FALSE },
1522 { SCE_RUST_LEXERROR, "lexerror", FALSE },
1523 { SCE_RUST_BYTESTRING, "bytestring", FALSE },
1524 { SCE_RUST_BYTESTRINGR, "bytestringr", FALSE },
1525 { SCE_RUST_BYTECHARACTER, "bytecharacter", FALSE }
1527 static const HLKeyword highlighting_keywords_RUST[] =
1529 { 0, "primary", FALSE },
1530 /* SCI_SETKEYWORDS = 1 - secondary + global tags file types */
1531 { 1, "secondary", TRUE },
1532 { 2, "tertiary", FALSE },
1533 /* SCI_SETKEYWORDS = 3 is for current session types - see document_highlight_tags() */
1535 #define highlighting_properties_RUST EMPTY_PROPERTIES
1537 /* SH */
1538 #define highlighting_lexer_SH SCLEX_BASH
1539 static const HLStyle highlighting_styles_SH[] =
1541 { SCE_SH_DEFAULT, "default", FALSE },
1542 { SCE_SH_COMMENTLINE, "commentline", FALSE },
1543 { SCE_SH_NUMBER, "number", FALSE },
1544 { SCE_SH_WORD, "word", FALSE },
1545 { SCE_SH_STRING, "string", FALSE },
1546 { SCE_SH_CHARACTER, "character", FALSE },
1547 { SCE_SH_OPERATOR, "operator", FALSE },
1548 { SCE_SH_IDENTIFIER, "identifier", FALSE },
1549 { SCE_SH_BACKTICKS, "backticks", FALSE },
1550 { SCE_SH_PARAM, "param", FALSE },
1551 { SCE_SH_SCALAR, "scalar", FALSE },
1552 { SCE_SH_ERROR, "error", FALSE },
1553 { SCE_SH_HERE_DELIM, "here_delim", FALSE },
1554 { SCE_SH_HERE_Q, "here_q", FALSE }
1556 static const HLKeyword highlighting_keywords_SH[] =
1558 { 0, "primary", FALSE }
1560 #define highlighting_properties_SH EMPTY_PROPERTIES
1563 /* SMALLTALK */
1564 #define highlighting_lexer_SMALLTALK SCLEX_SMALLTALK
1565 static const HLStyle highlighting_styles_SMALLTALK[] =
1567 { SCE_ST_DEFAULT, "default", FALSE },
1568 { SCE_ST_SPECIAL, "special", FALSE },
1569 { SCE_ST_SYMBOL, "symbol", FALSE },
1570 { SCE_ST_ASSIGN, "assignment", FALSE },
1571 { SCE_ST_RETURN, "return", FALSE },
1572 { SCE_ST_NUMBER, "number", FALSE },
1573 { SCE_ST_BINARY, "binary", FALSE },
1574 { SCE_ST_SPEC_SEL, "special_selector", FALSE },
1575 { SCE_ST_KWSEND, "keyword_send", FALSE },
1576 { SCE_ST_GLOBAL, "global", FALSE },
1577 { SCE_ST_SELF, "self", FALSE },
1578 { SCE_ST_SUPER, "super", FALSE },
1579 { SCE_ST_NIL, "nil", FALSE },
1580 { SCE_ST_BOOL, "bool", FALSE },
1581 { SCE_ST_COMMENT, "comment", FALSE },
1582 { SCE_ST_STRING, "string", FALSE },
1583 { SCE_ST_CHARACTER, "character", FALSE }
1585 static const HLKeyword highlighting_keywords_SMALLTALK[] =
1587 { 0, "special_selector", FALSE }
1589 #define highlighting_properties_SMALLTALK EMPTY_PROPERTIES
1592 /* SQL */
1593 #define highlighting_lexer_SQL SCLEX_SQL
1594 static const HLStyle highlighting_styles_SQL[] =
1596 { SCE_SQL_DEFAULT, "default", FALSE },
1597 { SCE_SQL_COMMENT, "comment", FALSE },
1598 { SCE_SQL_COMMENTLINE, "commentline", FALSE },
1599 { SCE_SQL_COMMENTDOC, "commentdoc", FALSE },
1600 { SCE_SQL_COMMENTLINEDOC, "commentlinedoc", FALSE },
1601 { SCE_SQL_COMMENTDOCKEYWORD, "commentdockeyword", FALSE },
1602 { SCE_SQL_COMMENTDOCKEYWORDERROR, "commentdockeyworderror", FALSE },
1603 { SCE_SQL_NUMBER, "number", FALSE },
1604 { SCE_SQL_WORD, "word", FALSE },
1605 { SCE_SQL_WORD2, "word2", FALSE },
1606 { SCE_SQL_STRING, "string", FALSE },
1607 { SCE_SQL_CHARACTER, "character", FALSE },
1608 { SCE_SQL_OPERATOR, "operator", FALSE },
1609 { SCE_SQL_IDENTIFIER, "identifier", FALSE },
1610 { SCE_SQL_SQLPLUS, "sqlplus", FALSE },
1611 { SCE_SQL_SQLPLUS_PROMPT, "sqlplus_prompt", FALSE },
1612 { SCE_SQL_SQLPLUS_COMMENT, "sqlplus_comment", FALSE },
1613 { SCE_SQL_QUOTEDIDENTIFIER, "quotedidentifier", FALSE },
1614 { SCE_SQL_QOPERATOR, "qoperator", FALSE }
1615 /* these are for user-defined keywords we don't set yet */
1616 /*{ SCE_SQL_USER1, "user1", FALSE },
1617 { SCE_SQL_USER2, "user2", FALSE },
1618 { SCE_SQL_USER3, "user3", FALSE },
1619 { SCE_SQL_USER4, "user4", FALSE }*/
1621 static const HLKeyword highlighting_keywords_SQL[] =
1623 { 0, "keywords", FALSE }
1625 #define highlighting_properties_SQL EMPTY_PROPERTIES
1628 /* TCL */
1629 #define highlighting_lexer_TCL SCLEX_TCL
1630 static const HLStyle highlighting_styles_TCL[] =
1632 { SCE_TCL_DEFAULT, "default", FALSE },
1633 { SCE_TCL_COMMENT, "comment", FALSE },
1634 { SCE_TCL_COMMENTLINE, "commentline", FALSE },
1635 { SCE_TCL_NUMBER, "number", FALSE },
1636 { SCE_TCL_OPERATOR, "operator", FALSE },
1637 { SCE_TCL_IDENTIFIER, "identifier", FALSE },
1638 { SCE_TCL_WORD_IN_QUOTE, "wordinquote", FALSE },
1639 { SCE_TCL_IN_QUOTE, "inquote", FALSE },
1640 { SCE_TCL_SUBSTITUTION, "substitution", FALSE },
1641 { SCE_TCL_MODIFIER, "modifier", FALSE },
1642 { SCE_TCL_EXPAND, "expand", FALSE },
1643 { SCE_TCL_WORD, "wordtcl", FALSE },
1644 { SCE_TCL_WORD2, "wordtk", FALSE },
1645 { SCE_TCL_WORD3, "worditcl", FALSE },
1646 { SCE_TCL_WORD4, "wordtkcmds", FALSE },
1647 { SCE_TCL_WORD5, "wordexpand", FALSE },
1648 { SCE_TCL_COMMENT_BOX, "commentbox", FALSE },
1649 { SCE_TCL_BLOCK_COMMENT, "blockcomment", FALSE },
1650 { SCE_TCL_SUB_BRACE, "subbrace", FALSE }
1651 /* these are for user-defined keywords we don't set yet */
1652 /*{ SCE_TCL_WORD6, "user2", FALSE },
1653 { SCE_TCL_WORD7, "user3", FALSE },
1654 { SCE_TCL_WORD8, "user4", FALSE }*/
1656 static const HLKeyword highlighting_keywords_TCL[] =
1658 { 0, "tcl", FALSE },
1659 { 1, "tk", FALSE },
1660 { 2, "itcl", FALSE },
1661 { 3, "tkcommands", FALSE },
1662 { 4, "expand", FALSE }
1664 #define highlighting_properties_TCL EMPTY_PROPERTIES
1667 /* Txt2Tags */
1668 #define highlighting_lexer_TXT2TAGS SCLEX_TXT2TAGS
1669 static const HLStyle highlighting_styles_TXT2TAGS[] =
1671 { SCE_TXT2TAGS_DEFAULT, "default", FALSE },
1672 { SCE_TXT2TAGS_LINE_BEGIN, "default", FALSE }, /* XIFME: remappings should be avoided */
1673 { SCE_TXT2TAGS_PRECHAR, "default", FALSE },
1674 { SCE_TXT2TAGS_STRONG1, "strong", FALSE },
1675 { SCE_TXT2TAGS_STRONG2, "strong", FALSE },
1676 { SCE_TXT2TAGS_EM1, "emphasis", FALSE },
1677 { SCE_TXT2TAGS_EM2, "underlined", FALSE }, /* WTF? */
1678 { SCE_TXT2TAGS_HEADER1, "header1", FALSE },
1679 { SCE_TXT2TAGS_HEADER2, "header2", FALSE },
1680 { SCE_TXT2TAGS_HEADER3, "header3", FALSE },
1681 { SCE_TXT2TAGS_HEADER4, "header4", FALSE },
1682 { SCE_TXT2TAGS_HEADER5, "header5", FALSE },
1683 { SCE_TXT2TAGS_HEADER6, "header6", FALSE },
1684 { SCE_TXT2TAGS_ULIST_ITEM, "ulist_item", FALSE },
1685 { SCE_TXT2TAGS_OLIST_ITEM, "olist_item", FALSE },
1686 { SCE_TXT2TAGS_BLOCKQUOTE, "blockquote", FALSE },
1687 { SCE_TXT2TAGS_STRIKEOUT, "strikeout", FALSE },
1688 { SCE_TXT2TAGS_HRULE, "hrule", FALSE },
1689 { SCE_TXT2TAGS_LINK, "link", FALSE },
1690 { SCE_TXT2TAGS_CODE, "code", FALSE },
1691 { SCE_TXT2TAGS_CODE2, "code", FALSE },
1692 { SCE_TXT2TAGS_CODEBK, "codebk", FALSE },
1693 { SCE_TXT2TAGS_COMMENT, "comment", FALSE },
1694 { SCE_TXT2TAGS_OPTION, "option", FALSE },
1695 { SCE_TXT2TAGS_PREPROC, "preproc", FALSE },
1696 { SCE_TXT2TAGS_POSTPROC, "postproc", FALSE }
1698 #define highlighting_keywords_TXT2TAGS EMPTY_KEYWORDS
1699 #define highlighting_properties_TXT2TAGS EMPTY_PROPERTIES
1702 /* VHDL */
1703 #define highlighting_lexer_VHDL SCLEX_VHDL
1704 static const HLStyle highlighting_styles_VHDL[] =
1706 { SCE_VHDL_DEFAULT, "default", FALSE },
1707 { SCE_VHDL_COMMENT, "comment", FALSE },
1708 { SCE_VHDL_COMMENTLINEBANG, "comment_line_bang", FALSE },
1709 { SCE_VHDL_BLOCK_COMMENT, "block_comment", FALSE },
1710 { SCE_VHDL_NUMBER, "number", FALSE },
1711 { SCE_VHDL_STRING, "string", FALSE },
1712 { SCE_VHDL_OPERATOR, "operator", FALSE },
1713 { SCE_VHDL_IDENTIFIER, "identifier", FALSE },
1714 { SCE_VHDL_STRINGEOL, "stringeol", FALSE },
1715 { SCE_VHDL_KEYWORD, "keyword", FALSE },
1716 { SCE_VHDL_STDOPERATOR, "stdoperator", FALSE },
1717 { SCE_VHDL_ATTRIBUTE, "attribute", FALSE },
1718 { SCE_VHDL_STDFUNCTION, "stdfunction", FALSE },
1719 { SCE_VHDL_STDPACKAGE, "stdpackage", FALSE },
1720 { SCE_VHDL_STDTYPE, "stdtype", FALSE },
1721 { SCE_VHDL_USERWORD, "userword", FALSE }
1723 static const HLKeyword highlighting_keywords_VHDL[] =
1725 { 0, "keywords", FALSE },
1726 { 1, "operators", FALSE },
1727 { 2, "attributes", FALSE },
1728 { 3, "std_functions", FALSE },
1729 { 4, "std_packages", FALSE },
1730 { 5, "std_types", FALSE },
1731 { 6, "userwords", FALSE },
1733 #define highlighting_properties_VHDL EMPTY_PROPERTIES
1736 /* Verilog */
1737 #define highlighting_lexer_VERILOG SCLEX_VERILOG
1738 static const HLStyle highlighting_styles_VERILOG[] =
1740 { SCE_V_DEFAULT, "default", FALSE },
1741 { SCE_V_COMMENT, "comment", FALSE },
1742 { SCE_V_COMMENTLINE, "comment_line", FALSE },
1743 { SCE_V_COMMENTLINEBANG, "comment_line_bang", FALSE },
1744 { SCE_V_NUMBER, "number", FALSE },
1745 { SCE_V_WORD, "word", FALSE },
1746 { SCE_V_STRING, "string", FALSE },
1747 { SCE_V_WORD2, "word2", FALSE },
1748 { SCE_V_WORD3, "word3", FALSE },
1749 { SCE_V_PREPROCESSOR, "preprocessor", FALSE },
1750 { SCE_V_OPERATOR, "operator", FALSE },
1751 { SCE_V_IDENTIFIER, "identifier", FALSE },
1752 { SCE_V_STRINGEOL, "stringeol", FALSE },
1753 { SCE_V_USER, "userword", FALSE },
1754 { SCE_V_COMMENT_WORD, "comment_word", FALSE },
1755 { SCE_V_INPUT, "input", FALSE },
1756 { SCE_V_OUTPUT, "output", FALSE },
1757 { SCE_V_INOUT, "inout", FALSE },
1758 { SCE_V_PORT_CONNECT, "port_connect", FALSE }
1760 static const HLKeyword highlighting_keywords_VERILOG[] =
1762 { 0, "word", FALSE },
1763 { 1, "word2", FALSE },
1764 { 2, "word3", FALSE },
1765 { 4, "docComment", FALSE }
1767 #define highlighting_properties_VERILOG EMPTY_PROPERTIES
1770 /* XML */
1771 #define highlighting_lexer_XML SCLEX_XML
1772 #define highlighting_styles_XML highlighting_styles_HTML
1773 static const HLKeyword highlighting_keywords_XML[] =
1775 { 5, "sgml", FALSE }
1777 #define highlighting_properties_XML highlighting_properties_HTML
1780 /* YAML */
1781 #define highlighting_lexer_YAML SCLEX_YAML
1782 static const HLStyle highlighting_styles_YAML[] =
1784 { SCE_YAML_DEFAULT, "default", FALSE },
1785 { SCE_YAML_COMMENT, "comment", FALSE },
1786 { SCE_YAML_IDENTIFIER, "identifier", FALSE },
1787 { SCE_YAML_KEYWORD, "keyword", FALSE },
1788 { SCE_YAML_NUMBER, "number", FALSE },
1789 { SCE_YAML_REFERENCE, "reference", FALSE },
1790 { SCE_YAML_DOCUMENT, "document", FALSE },
1791 { SCE_YAML_TEXT, "text", FALSE },
1792 { SCE_YAML_ERROR, "error", FALSE },
1793 { SCE_YAML_OPERATOR, "operator", FALSE }
1795 static const HLKeyword highlighting_keywords_YAML[] =
1797 { 0, "keywords", FALSE }
1799 #define highlighting_properties_YAML EMPTY_PROPERTIES
1802 /* Zephir */
1803 #define highlighting_lexer_ZEPHIR SCLEX_PHPSCRIPT
1804 #define highlighting_styles_ZEPHIR highlighting_styles_PHP
1805 #define highlighting_keywords_ZEPHIR highlighting_keywords_PHP
1806 #define highlighting_properties_ZEPHIR highlighting_properties_PHP
1809 /* AutoIt */
1810 #define highlighting_lexer_AU3 SCLEX_AU3
1811 static const HLStyle highlighting_styles_AU3[] =
1813 { SCE_AU3_DEFAULT, "default", FALSE},
1814 { SCE_AU3_COMMENT, "comment", FALSE},
1815 { SCE_AU3_COMMENTBLOCK, "commentblock", FALSE},
1816 { SCE_AU3_NUMBER, "number", FALSE},
1817 { SCE_AU3_FUNCTION, "function", FALSE},
1818 { SCE_AU3_KEYWORD, "keyword", FALSE},
1819 { SCE_AU3_MACRO, "macro", FALSE},
1820 { SCE_AU3_STRING, "string", FALSE},
1821 { SCE_AU3_OPERATOR, "operator", FALSE},
1822 { SCE_AU3_VARIABLE, "variable", FALSE},
1823 { SCE_AU3_SENT, "sent", FALSE},
1824 { SCE_AU3_PREPROCESSOR, "preprocessor", FALSE},
1825 { SCE_AU3_SPECIAL, "special", FALSE},
1826 { SCE_AU3_EXPAND, "expand", FALSE},
1827 { SCE_AU3_COMOBJ, "comobj", FALSE},
1828 { SCE_AU3_UDF, "udf", FALSE}
1830 static const HLKeyword highlighting_keywords_AU3[] =
1832 { 0, "keywords", FALSE },
1833 { 1, "functions", FALSE },
1834 { 2, "macros", FALSE },
1835 { 3, "sent", FALSE },
1836 { 4, "preprocessor", FALSE },
1837 { 5, "special", FALSE },
1838 { 6, "expand", FALSE },
1839 { 7, "udf", FALSE }
1841 #define highlighting_properties_AU3 EMPTY_PROPERTIES
1843 G_END_DECLS
1845 #endif /* GEANY_HIGHLIGHTING_MAPPINGS_H */