1Syntax::Highlight::EngiUnsee:r:KCaotnet(r3i)buted Perl DSoycnutmaexn:t:aHtiigohnlight::Engine::Kate(3)
2
3
4

NAME

6       Syntax::Highlight::Engine::Kate - a port to Perl of the syntax
7       highlight engine of the Kate text editor.
8

SYNOPSIS

10        #if you want to create a compiled executable, you may want to do this:
11        use Syntax::Highlight::Engine::Kate::All;
12
13        use Syntax::Highlight::Engine::Kate;
14        my $hl = Syntax::Highlight::Engine::Kate->new(
15            language      => 'Perl',
16            substitutions => {
17                "<"  => "&lt;",
18                ">"  => "&gt;",
19                "&"  => "&amp;",
20                " "  => "&nbsp;",
21                "\t" => "&nbsp;&nbsp;&nbsp;",
22                "\n" => "<BR>\n",
23            },
24            format_table => {
25                Alert        => [ "<font color=\"#0000ff\">",       "</font>" ],
26                BaseN        => [ "<font color=\"#007f00\">",       "</font>" ],
27                BString      => [ "<font color=\"#c9a7ff\">",       "</font>" ],
28                Char         => [ "<font color=\"#ff00ff\">",       "</font>" ],
29                Comment      => [ "<font color=\"#7f7f7f\"><i>",    "</i></font>" ],
30                DataType     => [ "<font color=\"#0000ff\">",       "</font>" ],
31                DecVal       => [ "<font color=\"#00007f\">",       "</font>" ],
32                Error        => [ "<font color=\"#ff0000\"><b><i>", "</i></b></font>" ],
33                Float        => [ "<font color=\"#00007f\">",       "</font>" ],
34                Function     => [ "<font color=\"#007f00\">",       "</font>" ],
35                IString      => [ "<font color=\"#ff0000\">",       "" ],
36                Keyword      => [ "<b>",                            "</b>" ],
37                Normal       => [ "",                               "" ],
38                Operator     => [ "<font color=\"#ffa500\">",       "</font>" ],
39                Others       => [ "<font color=\"#b03060\">",       "</font>" ],
40                RegionMarker => [ "<font color=\"#96b9ff\"><i>",    "</i></font>" ],
41                Reserved     => [ "<font color=\"#9b30ff\"><b>",    "</b></font>" ],
42                String       => [ "<font color=\"#ff0000\">",       "</font>" ],
43                Variable     => [ "<font color=\"#0000ff\"><b>",    "</b></font>" ],
44                Warning      => [ "<font color=\"#0000ff\"><b><i>", "</b></i></font>" ],
45            },
46        );
47
48        #or
49
50        my $hl = Syntax::Highlight::Engine::Kate::Perl->new(
51            substitutions => {
52                # ...
53            },
54            format_table => {
55                # ...
56            },
57        );
58
59        print "<html>\n<head>\n</head>\n<body>\n";
60        while ( my $in = <> ) {
61            print $hl->highlightText($in);
62        }
63        print "</body>\n</html>\n";
64

DESCRIPTION

66       This module is now deprecated.
67
68       It is superseded and replaced by Syntax::Kamelon.  Best use
69       Syntax::Kamelon for new projects.
70
71       Syntax::Highlight::Engine::Kate is a port to Perl of the syntax
72       highlight engine of the Kate text editor.
73
74       The language XML files of Kate have been rewritten to Perl modules
75       using a script. These modules function as plugins to this module.
76
77       Syntax::Highlight::Engine::Kate inherits
78       Syntax::Highlight::Engine::Kate::Template.
79

OPTIONS

81       language
82           Specify the language you want highlighted. Look in the PLUGINS
83           section for supported languages.
84
85       plugins
86           If you created your own language plugins you may specify a list of
87           them with this option.
88
89            plugins => [
90              ["MyModuleName", "MyLanguageName", "*,ext1;*.ext2", "Section"],
91              ....
92            ]
93
94       format_table
95           This option must be specified if the highlightText method needs to
96           do anything useful for you.  All mentioned keys in the synopsis
97           must be specified.
98
99       substitutions
100           With this option you can specify additional formatting options.
101

METHODS

103       extensions
104           Returns a reference to the extensions hash.
105
106       language(?$language?)
107           Sets and returns the current language that is highlighted. When
108           setting the language a reset is also done.
109
110       languageAutoSet($filename)
111           Suggests language name for the given file $filename.
112
113       languageList
114           Returns a list of languages for which plugins have been defined.
115
116       languagePlug($language, ?$insensitive?)
117           Returns the module name of the plugin for $language.
118
119           If $insensitive is set it will also try to match names ignoring
120           case and return the correct module name of the plugin.
121
122           e.g. "$highlighter->languagePlug('HtMl', 1);" will return "HTML".
123
124       languagePropose($filename)
125           Suggests language name for the given file $filename.
126
127       sections
128           Returns a reference to the sections hash.
129

ATTRIBUTES

131       In the Kate XML syntax files you find under the section <itemDatas>
132       entries like "<itemData name="Unknown Property" defStyleNum="dsError"
133       italic="1"/>". Kate is an editor so it is ok to have definitions for
134       foreground and background colors and so on. However, since this module
135       is supposed to be a more universal highlight engine, the attributes
136       need to be fully abstract. In which case, Kate does not have enough
137       default attributes defined to fulfill all needs. Kate defines the
138       following standard attributes:
139
140dsNormal
141
142dsKeyword
143
144dsDataType
145
146dsDecVal
147
148dsBaseN
149
150dsFloat
151
152dsChar
153
154dsString
155
156dsComment
157
158dsOthers
159
160dsAlert
161
162dsFunction
163
164dsRegionMarker
165
166dsError
167
168       This module leaves out the <ds> part and uses following additional
169       attributes:
170
171BString
172
173IString
174
175Operator
176
177Reserved
178
179Variable
180
181       I have modified the XML files so that each highlight mode would get its
182       own attribute. In quite a few cases still not enough attributes were
183       defined. So in some languages different modes have the same attribute.
184

PLUGINS

186       Below is an overview of existing plugins. All have been tested on use
187       and can be created. The ones for which no sample file is available are
188       marked. Those marked OK have highlighted the test file without apparent
189       mistakes. This does not mean that all bugs are shaken out.
190
191        LANGUAGE             MODULE                   COMMENT
192        ********             ******                   ******
193        .desktop             Desktop                  OK
194        4GL                  FourGL                   No sample file
195        4GL-PER              FourGLminusPER           No sample file
196        ABC                  ABC                      OK
197        AHDL                 AHDL                     OK
198        ANSI C89             ANSI_C89                 No sample file
199        ASP                  ASP                      OK
200        AVR Assembler        AVR_Assembler            OK
201        AWK                  AWK                      OK
202        Ada                  Ada                      No sample file
203                             Alerts                   OK hidden module
204        Ansys                Ansys                    No sample file
205        Apache Configuration Apache_Configuration     No sample file
206        Asm6502              Asm6502                  No sample file
207        Bash                 Bash                     OK
208        BibTeX               BibTeX                   OK
209        C                    C                        No sample file
210        C#                   Cdash                    No sample file
211        C++                  Cplusplus                OK
212        CGiS                 CGiS                     No sample file
213        CMake                CMake                    OK
214        CSS                  CSS                      OK
215        CUE Sheet            CUE_Sheet                No sample file
216        Cg                   Cg                       No sample file
217        ChangeLog            ChangeLog                No sample file
218        Cisco                Cisco                    No sample file
219        Clipper              Clipper                  OK
220        ColdFusion           ColdFusion               No sample file
221        Common Lisp          Common_Lisp              OK
222        Component-Pascal     ComponentminusPascal     No sample file
223        D                    D                        No sample file
224        Debian Changelog     Debian_Changelog         No sample file
225        Debian Control       Debian_Control           No sample file
226        Diff                 Diff                     No sample file
227        Doxygen              Doxygen                  OK
228        E Language           E_Language               OK
229        Eiffel               Eiffel                   No sample file
230        Email                Email                    OK
231        Euphoria             Euphoria                 OK
232        Fortran              Fortran                  OK
233        FreeBASIC            FreeBASIC                No sample file
234        GDL                  GDL                      No sample file
235        GLSL                 GLSL                     OK
236        GNU Assembler        GNU_Assembler            No sample file
237        GNU Gettext          GNU_Gettext              No sample file
238        HTML                 HTML                     OK
239        Haskell              Haskell                  OK
240        IDL                  IDL                      No sample file
241        ILERPG               ILERPG                   No sample file
242        INI Files            INI_Files                No sample file
243        Inform               Inform                   No sample file
244        Intel x86 (NASM)     Intel_X86_NASM           seems to have issues
245        JSP                  JSP                      OK
246        Java                 Java                     OK
247        JavaScript           JavaScript               OK
248        Javadoc              Javadoc                  No sample file
249        KBasic               KBasic                   No sample file
250        Kate File Template   Kate_File_Template       No sample file
251        LDIF                 LDIF                     No sample file
252        LPC                  LPC                      No sample file
253        LaTeX                LaTex                    OK
254        Lex/Flex             Lex_Flex                 OK
255        LilyPond             LilyPond                 OK
256        Literate Haskell     Literate_Haskell         OK
257        Lua                  Lua                      No sample file
258        M3U                  M3U                      OK
259        MAB-DB               MABminusDB               No sample file
260        MIPS Assembler       MIPS_Assembler           No sample file
261        Makefile             Makefile                 No sample file
262        Mason                Mason                    No sample file
263        Matlab               Matlab                   has issues
264        Modula-2             Modulaminus2             No sample file
265        Music Publisher      Music_Publisher          No sample file
266        Octave               Octave                   OK
267        PHP (HTML)           PHP_HTML                 OK
268                             PHP_PHP                  OK hidden module
269        POV-Ray              POV_Ray                  OK
270        Pascal               Pascal                   No sample file
271        Perl                 Perl                     OK
272        PicAsm               PicAsm                   OK
273        Pike                 Pike                     OK
274        PostScript           PostScript               OK
275        Prolog               Prolog                   No sample file
276        PureBasic            PureBasic                OK
277        Python               Python                   OK
278        Quake Script         Quake_Script             No sample file
279        R Script             R_Script                 No sample file
280        REXX                 REXX                     No sample file
281        RPM Spec             RPM_Spec                 No sample file
282        RSI IDL              RSI_IDL                  No sample file
283        RenderMan RIB        RenderMan_RIB            OK
284        Ruby                 Ruby                     OK
285        SGML                 SGML                     No sample file
286        SML                  SML                      No sample file
287        SQL                  SQL                      No sample file
288        SQL (MySQL)          SQL_MySQL                No sample file
289        SQL (PostgreSQL)     SQL_PostgreSQL           No sample file
290        Sather               Sather                   No sample file
291        Scheme               Scheme                   OK
292        Sieve                Sieve                    No sample file
293        Spice                Spice                    OK
294        Stata                Stata                    OK
295        TI Basic             TI_Basic                 No sample file
296        TaskJuggler          TaskJuggler              No sample file
297        Tcl/Tk               TCL_Tk                   OK
298        UnrealScript         UnrealScript             OK
299        VHDL                 VHDL                     No sample file
300        VRML                 VRML                     OK
301        Velocity             Velocity                 No sample file
302        Verilog              Verilog                  No sample file
303        WINE Config          WINE_Config              No sample file
304        Wikimedia            Wikimedia                No sample file
305        XML                  XML                      OK
306        XML (Debug)          XML_Debug                No sample file
307        Yacc/Bison           Yacc_Bison               OK
308        de_DE                De_DE                    No sample file
309        en_EN                En_EN                    No sample file
310        ferite               Ferite                   No sample file
311        nl                   Nl                       No sample file
312        progress             Progress                 No sample file
313        scilab               Scilab                   No sample file
314        txt2tags             Txt2tags                 No sample file
315        x.org Configuration  X_org_Configuration      OK
316        xHarbour             XHarbour                 OK
317        xslt                 Xslt                     No sample file
318        yacas                Yacas                    No sample file
319
320       Module Syntax::Highlight::Engine::Kate::Convert::ToolKit and script hl-
321       kate-convert can be used to convert existing Kate/KTextEditor Syntax
322       Highlighting file from XML format to Perl.
323

BUGS

325       Float is detected differently than in the Kate editor.
326
327       The regular expression engine of the Kate editor, qregexp, appears to
328       be more tolerant to mistakes in regular expressions than Perl. This
329       might lead to error messages and differences in behaviour.  Most of the
330       problems were sorted out while developing, because error messages
331       appeared. For as far as differences in behaviour is concerned, testing
332       is the only way to find out, so I hope the users out there will be able
333       to tell me more.
334
335       This module is mimicking the behaviour of the syntax highlight engine
336       of the Kate editor. If you find a bug/mistake in the highlighting,
337       please check if Kate behaves in the same way. If yes, the cause is
338       likely to be found there.
339

TO DO

341       Rebuild the scripts I am using to generate the modules from XML files
342       so they are more pro-actively tracking flaws in the build of the XML
343       files like missing lists. Also regular expressions in the XML can be
344       tested better before they are used in plugins.
345
346       Refine the test methods in Syntax::Highlight::Engine::Kate::Template,
347       so that choices for case sensitivity, dynamic behaviour and lookahead
348       can be determined at generate time of the plugin, might increase
349       throughput.
350
351       Implement code folding.
352

ACKNOWLEDGEMENTS

354       All the people who wrote Kate and the syntax highlight XML files.
355
357       This module is written and maintained by:
358
359       Hans Jeuken < haje at toneel dot demon dot nl >
360
361       Copyright (c) 2006 by Hans Jeuken, all rights reserved.
362
363       You may freely distribute and/or modify this module under the same
364       terms as Perl itself.
365

SEE ALSO

367       •   Syntax::Highlight::Engine::Kate::Template
368
369       •   <http://www.kate-editor.org>
370
371       •   KTextEditor Syntax Highlighting Repository
372           <https://quickgit.kde.org/?p=ktexteditor.git&a=tree&f=src%2Fsyntax%2Fdata>
373
374
375
376perl v5.38.0                      2023-07-21Syntax::Highlight::Engine::Kate(3)
Impressum