//TH-Header //***************************************************************************************** // Copyright (c) 2017 The Kurant project // All rights reserved. // // $FileName : Pkg\cSciLexerLanguageMixin.pkg // $ProjectName : TheHammer3 // $Authors : wil // $Created : 07.16.2017 01:11 // // Contents: // A mixin class to help support multiple languages from within the hammer 3. // Not all of the languages that are in this mixin class are already supported, the supported ones // can be found in the LexerColorStyles function. // //***************************************************************************************** //TH-RevisionStart //TH-RevisionEnd Use cSciLexer.h Class cSciLexerLanguageMixin is a Mixin Procedure Define_cSciLexerLanguageMixin End_Procedure Function SCKeywords String sKeyWords Returns String Function_Return (Trim(Replaces("\n", sKeywords, " "))) End_Function Function ScintillaLexerForLanguage String sLanguage Returns String String sLexer Move (Lowercase(Trim(sLanguage))) To sLanguage Case Begin Case (sLanguage="vdf") Move "dataflex" To sLexer Case Break Case (sLanguage="assembler a68k") Move "a68k" To sLexer Case Break Case (sLanguage="abaqus") // ABAQUX Move "abaqus" To sLexer Case Break Case (sLanguage="ada 95") // ada 95 Move "ada" To sLexer Case Break Case (sLanguage="apdl") // APDL Move "apdl" To sLexer Case Break Case (sLanguage="assembler masm") // assembler MASM Move "asm" To sLexer // has a 2nd lexer? Case Break Case (sLanguage="asn.1") // Lexer for ASN.1 Move "asn1" To sLexer Case Break Case (sLanguage="autoit3") // Lexer for AutoIt3 Move "au3" To sLexer Case Break Case (sLanguage="avenue") // Lexer for Avenue Move "ave" To sLexer Case Break Case (sLanguage="avisynth") // Lexer for AviSynth. Move "avs" To sLexer Case Break Case (sLanguage="baan") // Lexer for Baan. Move "baan" To sLexer Case Break Case (sLanguage="bash") // Lexer for Bash. Move "bash" To sLexer Case Break Case (sLanguage="blitz basic") // Lexer for BlitzBasic and PureBasic. Move "blitzbasic" To sLexer Case Break Case (sLanguage="pure basic") Move "purebasic" To sLexer Case Break Case (sLanguage="free basic") Move "freebasic" To sLexer Case Break Case (sLanguage="batch files") // Lexer for batch files. Move "batch" To sLexer Case Break Case (sLanguage="bibtex") // General BibTeX coloring scheme. Move "bib" To sLexer Case Break Case (sLanguage="bullant") // lexer for Bullant Move "bullant" To sLexer Case Break Case (sLanguage="objective caml") // Lexer for Objective Caml Move "caml" To sLexer Case Break Case (sLanguage="clarion") // Case Sensitive Clarion Language Lexer Move "clarion" To sLexer Case Break Case (sLanguage="clarion case insensitive") // Case Insensitive Clarion Language Lexer Move "clarionnocase" To sLexer Case Break Case (sLanguage="cmake") // Lexer for Cmake Move "cmake" To sLexer Case Break Case (sLanguage="cobol") // Lexer for COBOL Move "COBOL" To sLexer Case Break Case (sLanguage="coffeescript") // Lexer for CoffeeScript. Move "coffeescript" To sLexer Case Break Case (sLanguage="apache configuration files") // Lexer for Apache Configuration Files. Move "conf" To sLexer Case Break Case (sLanguage="c/c++") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="java") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="javascript") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="csharp") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="go") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="swift") // Lexer for C++, C, Java, and JavaScript. Move "cpp" To sLexer Case Break Case (sLanguage="c/c++ case insensitive") // Lexer for C++, C, Java, and JavaScript case insensitive Move "cppnocase" To sLexer Case Break Case (sLanguage="nncron files") //Lexer to use with extended crontab files used by Windows scheduler/event monitor/automation manager nnCron. Move "nncrontab" To sLexer Case Break Case (sLanguage="csound") //Lexer for Csound (Orchestra & Score) Move "csound" To sLexer Case Break Case (sLanguage="css") // Lexer for Cascading Style Sheets Move "css" To sLexer Case Break Case (sLanguage="d") // Lexer for D. Move "d" To sLexer Case Break Case (sLanguage="diff results") // Lexer for diff results. Move "diff" To sLexer Case Break Case (sLanguage="msc nastran dmap") // Lexer for MSC Nastran DMAP. Move "DMAP" To sLexer Case Break Case (sLanguage="dmis") // Lexer for DMIS. Move "DMIS" To sLexer Case Break Case (sLanguage="ecl") // Lexer for ECL. Move "ecl" To sLexer Case Break Case (sLanguage="edifact") // EDIFACT Move "edifact" To sLexer Case Break Case (sLanguage="eiffel") // Lexer for Eiffel. Move "eiffel" To sLexer Case Break Case (sLanguage="erlang") // Lexer for Erlang. Move "erlang" To sLexer Case Break Case (sLanguage="error lists") //Lexer for error lists. Used for the output pane in SciTE. Move "errorlist" To sLexer Case Break Case (sLanguage="escript") // Lexer for ESCRIPT Move "escript" To sLexer Case Break Case (sLanguage="harbour and flagship") // Lexer for Harbour and FlagShip. Move "flagship" To sLexer // (Syntactically compatible to other xBase dialects, like Clipper, dBase, Clip, FoxPro etc.) Case Break Case (sLanguage="forth") // Lexer for FORTH Move "forth" To sLexer Case Break Case (sLanguage="fortran") // Lexer for Fortran. Move "fortran" To sLexer Case Break Case (sLanguage="fortran 77") Move "f77" To sLexer Case Break Case (sLanguage="gap") // Lexer for the GAP language. (The GAP System for Computational Discrete Algebra) Move "gap" To sLexer Case Break Case (sLanguage="gui4cli") // This is the Lexer for Gui4Cli Move "gui4cli" To sLexer Case Break Case (sLanguage="haskell") //A haskell lexer for the scintilla code control. Move "haskell" To sLexer Case Break Case (sLanguage="literate haskell") Move "literatehaskell" To sLexer Case Break Case (sLanguage="hex s-record") //Lexers for Motorola S-Record, Intel HEX and Tektronix extended HEX. Move "srec" To sLexer Case Break Case (sLanguage="hex intel") Move "ihex" To sLexer Case Break Case (sLanguage="hex tektronix") Move "tehex" To sLexer Case Break Case (sLanguage="html") // Lexer for HTML. Move "hypertext" To sLexer Case Break Case (sLanguage="xml") Move "xml" To sLexer Case Break Case (sLanguage="php") Move "phpscript" To sLexer Case Break Case (sLanguage="inno setup script") // Lexer for Inno Setup scripts. Move "inno" To sLexer Case Break Case (sLanguage="json") //brief Lexer for JSON and JSON-LD formats Move "json" To sLexer Case Break Case (sLanguage="kix script") // Lexer for KIX-Scripts. Move "kix" To sLexer Case Break Case (sLanguage="kvirc script") // Lexer for KVIrc script. Move "kvirc" To sLexer Case Break Case (sLanguage="latex") // Lexer for LaTeX2e. Move "latex" To sLexer Case Break Case (sLanguage="lisp") // Lexer for Lisp. Move "lisp" To sLexer Case Break Case (sLanguage="basser lout") // Lexer for the Basser Lout (>= version 3) typesetting language Move "lout" To sLexer Case Break Case (sLanguage="lua") // Lexer for Lua language. Move "lua" To sLexer Case Break Case (sLanguage="magiksf") // Lexer for GE(r) Smallworld(tm) MagikSF Move "magiksf" To sLexer Case Break Case (sLanguage="make file") // Lexer for make files. Move "makefile" To sLexer Case Break Case (sLanguage="markdown") // A simple Markdown lexer for scintilla. Move "markdown" To sLexer Case Break Case (sLanguage="matlab") // Lexer for Matlab. Move "matlab" To sLexer Case Break Case (sLanguage="octave") Move "octave" To sLexer Case Break Case (sLanguage="metapost") // general context conformant metapost coloring scheme Move "metapost" To sLexer Case Break Case (sLanguage="mmix assembler") // Lexer for MMIX Assembler Language. Move "mmixal" To sLexer Case Break Case (sLanguage="modula") // brief Lexer for Modula-2/3 documents. Move "modula" To sLexer Case Break Case (sLanguage="lot") // Lexer for MPT specific files. Based on LexOthers.cxx Move "lot" To sLexer //LOT = the text log file created by the MPT application while running a test program Case Break Case (sLanguage="mssql") // Lexer for MSSQL. Move "mssql" To sLexer Case Break Case (sLanguage="mysql") // Lexer for MySQL Move "mysql" To sLexer Case Break Case (sLanguage="nimrod") // Lexer for Nimrod. Move "nimrod" To sLexer Case Break Case (sLanguage="nsis") // Lexer for NSIS Move "nsis" To sLexer Case Break Case (sLanguage="text") // Lexer for no language. Used for plain text and unrecognized files. Move "null" To sLexer Case Break Case (sLanguage="opal") // Lexer for OPAL (functional language similar to Haskell) Move "opal" To sLexer Case Break Case (sLanguage="oscript") // Lexer for OScript sources; ocx files and/or OSpace dumps. Move "oscript" To sLexer Case Break Case (sLanguage="pascal") // Lexer for Pascal. Move "pascal" To sLexer Case Break Case (sLanguage="powerbasic") // Lexer for PowerBasic Move "powerbasic" To sLexer Case Break Case (sLanguage="perl") // Lexer for Perl Move "perl" To sLexer Case Break Case (sLanguage="pl/m") // Move "PL/M" To sLexer Case Break Case (sLanguage="po files") // Lexer for GetText Translation (PO) files. Move "po" To sLexer Case Break Case (sLanguage="pov-ray sdl") // Lexer for POV-Ray SDL (Persistance of Vision Raytracer, Scene Description Language). Move "pov" To sLexer Case Break Case (sLanguage="powerpro") // PowerPro lexer Move "powerpro" To sLexer Case Break Case (sLanguage="powershell") // Lexer for PowerShell scripts. Move "powershell" To sLexer Case Break Case (sLanguage="progress") //Lexer for Progress 4GL. Move "abl" To sLexer Case Break Case (sLanguage="properties file" or sLanguage="ini") // Lexer for properties files. Move "props" To sLexer Case Break Case (sLanguage="postscript") // Lexer for PostScript Move "ps" To sLexer Case Break Case (sLanguage="python") // Lexer for Python. Move "python" To sLexer Case Break Case (sLanguage="r") // Lexer for R, S, SPlus Statistics Program (Heavily derived from CPP Lexer). Move "r" To sLexer Case Break Case (sLanguage="rebol") // Lexer for REBOL. Move "rebol" To sLexer Case Break Case (sLanguage="windows registry") // brief Lexer for Windows registration files(.reg) Move "registry" To sLexer Case Break Case (sLanguage="ruby") // Lexer for Ruby. Move "ruby" To sLexer Case Break Case (sLanguage="rust") // Lexer for Rust. Move "rust" To sLexer Case Break Case (sLanguage="scriptol") // Lexer for Scriptol. Move "scriptol" To sLexer Case Break Case (sLanguage="smalltalk") // Lexer for Smalltalk language. Move "smalltalk" To sLexer Case Break Case (sLanguage="sml") // Lexer for SML. Move "SML" To sLexer Case Break Case (sLanguage="sorcus installation file") // Lexer for SORCUS installation files Move "sorcins" To sLexer Case Break Case (sLanguage="specman") // Lexer for Specman E language. Move "specman" To sLexer Case Break Case (sLanguage="spice") // Lexer for Spice Move "spice" To sLexer Case Break Case (sLanguage="sql") // Lexer for SQL, including PL/SQL and SQL*Plus. Move "sql" To sLexer Case Break Case (sLanguage="structured text") // Lexer for Structured Text language. Move "fcST" To sLexer Case Break Case (sLanguage="tacl") // Lexer for TAL Move "TACL" To sLexer Case Break Case (sLanguage="tads3") // Lexer for TADS3. Move "tads3" To sLexer Case Break Case (sLanguage="tal") // Lexer for TAL Move "TAL" To sLexer Case Break Case (sLanguage="tcl") // Lexer for TCL language. Move "tcl" To sLexer Case Break Case (sLanguage="take command") // Lexer for Take Command / TCC batch scripts (.bat, .btm, .cmd). Move "tcmd" To sLexer Case Break Case (sLanguage="tex coloring scheme") // File: LexTeX.cxx - general context conformant tex coloring scheme Move "tex" To sLexer Case Break Case (sLanguage="txt2tags") // A simple Txt2tags lexer for scintilla. Move "txt2tags" To sLexer Case Break Case (sLanguage="visual basic") // Lexer for Visual Basic and VBScript. Move "vb" To sLexer Case Break Case (sLanguage="basic") // using vb as a default for just "basic" Move "vb" To sLexer Case Break Case (sLanguage="vbscript") Move "vbscript" To sLexer Case Break Case (sLanguage="verilog") // Lexer for Verilog. Move "verilog" To sLexer Case Break Case (sLanguage="vhdl") // Lexer for VHDL Move "vhdl" To sLexer Case Break Case (sLanguage="visual prolog") // Lexer for Visual Prolog. Move "visualprolog" To sLexer Case Break Case (sLanguage="yaml") // Lexer for YAML. Move "yaml" To sLexer Case Break Case Else Move "dataflex" To sLexer Case End Function_Return sLexer End_Function Function LanguageForScintillaLexer String sLexer Returns String String sLanguage Move (Lowercase(Trim(sLexer))) To sLexer Case Begin Case (sLexer="dataflex") Move "VDF" To sLanguage Case Break //Case (sLexer="assembler a68k") // Move "a68k" to sLexer // Case Break //Case (sLanguage="abaqus") // ABAQUS // Move "abaqus" to sLexer // Case Break //Case (sLanguage="ada 95") // ada 95 // Move "ada" to sLexer // Case Break //Case (sLanguage="apdl") // APDL // Move "apdl" to sLexer // Case Break Case (sLexer="asm") // Move "assembler MASM" To sLanguage Case Break //Case (sLanguage="asn.1") // Lexer for ASN.1 // Move "asn1" to sLexer // Case Break //Case (sLanguage="autoit3") // Lexer for AutoIt3 // Move "au3" to sLexer // Case Break //Case (sLanguage="avenue") // Lexer for Avenue // Move "ave" to sLexer // Case Break //Case (sLanguage="avisynth") // Lexer for AviSynth. // Move "avs" to sLexer // Case Break //Case (sLanguage="baan") // Lexer for Baan. // Move "baan" to sLexer // Case Break Case (sLexer="bash") // Lexer for Bash. Move "Bash" To sLanguage Case Break //Case (sLanguage="blitz basic") // Lexer for BlitzBasic and PureBasic. // Move "blitzbasic" to sLexer // Case Break //Case (sLanguage="pure basic") // Move "purebasic" to sLexer // Case Break //Case (sLanguage="free basic") // Move "freebasic" to sLexer // Case Break Case (sLexer="batch") // Lexer for batch files. Move "Batch files" To sLanguage Case Break //Case (sLanguage="bibtex") // General BibTeX coloring scheme. // Move "bib" to sLexer // Case Break //Case (sLanguage="bullant") // lexer for Bullant // Move "bullant" to sLexer // Case Break //Case (sLanguage="objective caml") // Lexer for Objective Caml // Move "caml" to sLexer // Case Break //Case (sLanguage="clarion") // Case Sensitive Clarion Language Lexer // Move "clarion" to sLexer // Case Break //Case (sLanguage="clarion case insensitive") // Case Insensitive Clarion Language Lexer // Move "clarionnocase" to sLexer // Case Break //Case (sLanguage="cmake") // Lexer for Cmake // Move "cmake" to sLexer // Case Break //Case (sLanguage="cobol") // Lexer for COBOL // Move "COBOL" to sLexer // Case Break Case (sLexer="coffeescript") // Lexer for CoffeeScript. Move "CoffeeScript" To sLanguage Case Break Case (sLexer="conf") // Lexer for Apache Configuration Files. Move "Apache Configuration Files" To sLanguage Case Break Case (sLexer="cpp") // Lexer for C++, C, Java, and JavaScript. Move "C/C++" To sLanguage Case Break //Case (sLanguage="java") // Lexer for C++, C, Java, and JavaScript. // Move "cpp" to sLexer // Case Break //Case (sLanguage="javascript") // Lexer for C++, C, Java, and JavaScript. // Move "cpp" to sLexer // Case Break //Case (sLanguage="c/c++ case insensitive") // Lexer for C++, C, Java, and JavaScript case insensitive // Move "cppnocase" to sLexer // Case Break //Case (sLanguage="nncron files") //Lexer to use with extended crontab files used by Windows scheduler/event monitor/automation manager nnCron. // Move "nncrontab" to sLexer // Case Break //Case (sLanguage="csound") //Lexer for Csound (Orchestra & Score) // Move "csound" to sLexer // Case Break Case (sLexer="css") // Lexer for Cascading Style Sheets Move "CSS" To sLanguage Case Break Case (sLexer="d") // Lexer for D. Move "D" To sLanguage Case Break Case (sLexer="diff") // Lexer for diff results. Move "diff results" To sLanguage Case Break //Case (sLanguage="msc nastran dmap") // Lexer for MSC Nastran DMAP. // Move "DMAP" to sLexer // Case Break //Case (sLanguage="dmis") // Lexer for DMIS. // Move "DMIS" to sLexer // Case Break //Case (sLanguage="ecl") // Lexer for ECL. // Move "ecl" to sLexer // Case Break Case (sLexer="edifact") // EDIFACT Move "EDIFACT" To sLanguage Case Break //Case (sLanguage="eiffel") // Lexer for Eiffel. // Move "eiffel" to sLexer // Case Break //Case (sLanguage="erlang") // Lexer for Erlang. // Move "erlang" to sLexer // Case Break //Case (sLanguage="error lists") //Lexer for error lists. Used for the output pane in SciTE. // Move "errorlist" to sLexer // Case Break //Case (sLanguage="escript") // Lexer for ESCRIPT // Move "escript" to sLexer // Case Break //Case (sLanguage="harbour and flagship") // Lexer for Harbour and FlagShip. // Move "flagship" to sLexer // (Syntactically compatible to other xBase dialects, like Clipper, dBase, Clip, FoxPro etc.) // Case Break //Case (sLanguage="forth") // Lexer for FORTH // Move "forth" to sLexer // Case Break //Case (sLanguage="fortran") // Lexer for Fortran. // Move "fortran" to sLexer // Case Break //Case (sLanguage="fortran 77") // Move "f77" to sLexer // Case Break //Case (sLanguage="gap") // Lexer for the GAP language. (The GAP System for Computational Discrete Algebra) // Move "gap" to sLexer // Case Break //Case (sLanguage="gui4cli") // This is the Lexer for Gui4Cli // Move "gui4cli" to sLexer // Case Break //Case (sLanguage="haskell") //A haskell lexer for the scintilla code control. // Move "haskell" to sLexer // Case Break //Case (sLanguage="literate haskell") // Move "literatehaskell" to sLexer // Case Break //Case (sLanguage="hex s-record") //Lexers for Motorola S-Record, Intel HEX and Tektronix extended HEX. // Move "srec" to sLexer // Case Break //Case (sLanguage="hex intel") // Move "ihex" to sLexer // Case Break //Case (sLanguage="hex tektronix") // Move "tehex" to sLexer // Case Break Case (sLexer="hypertext") // Lexer for HTML. Move "HTML" To sLanguage Case Break Case (sLexer="xml") Move "XML" To sLanguage Case Break Case (sLexer="phpscript") Move "PHP" To sLanguage Case Break //Case (sLanguage="inno setup script") // Lexer for Inno Setup scripts. // Move "inno" to sLexer // Case Break Case (sLexer="json") //brief Lexer for JSON and JSON-LD formats Move "JSON" To sLanguage Case Break //Case (sLanguage="kix script") // Lexer for KIX-Scripts. // Move "kix" to sLexer // Case Break //Case (sLanguage="kvirc script") // Lexer for KVIrc script. // Move "kvirc" to sLexer // Case Break Case (sLexer="latex") // Lexer for LaTeX2e. Move "LaTeX" To sLanguage Case Break Case (sLexer="lisp") // Lexer for Lisp. Move "Lisp" To sLanguage Case Break //Case (sLanguage="basser lout") // Lexer for the Basser Lout (>= version 3) typesetting language // Move "lout" to sLexer // Case Break Case (sLexer="lua") // Lexer for Lua language. Move "Lua" To sLanguage Case Break //Case (sLanguage="magiksf") // Lexer for GE(r) Smallworld(tm) MagikSF // Move "magiksf" to sLexer // Case Break Case (sLexer="makefile") // Lexer for make files. Move "make file" To sLanguage Case Break Case (sLexer="markdown") // A simple Markdown lexer for scintilla. Move "Markdown" To sLanguage Case Break Case (sLexer="matlab") // Lexer for Matlab. Move "Matlab" To sLanguage Case Break Case (sLexer="octave") Move "Octave" To sLanguage Case Break //Case (sLanguage="metapost") // general context conformant metapost coloring scheme // Move "metapost" to sLexer // Case Break //Case (sLanguage="mmix assembler") // Lexer for MMIX Assembler Language. // Move "mmixal" to sLexer // Case Break Case (sLexer="modula") // brief Lexer for Modula-2/3 documents. Move "Modula" To sLanguage Case Break //Case (sLanguage="lot") // Lexer for MPT specific files. Based on LexOthers.cxx // Move "lot" to sLexer //LOT = the text log file created by the MPT application while running a test program // Case Break Case (sLexer="mssql") // Lexer for MSSQL. Move "MSSQL" To sLanguage Case Break Case (sLexer="mysql") // Lexer for MySQL Move "MySQL" To sLanguage Case Break //Case (sLanguage="nimrod") // Lexer for Nimrod. // Move "nimrod" to sLexer // Case Break Case (sLexer="nsis") // Lexer for NSIS Move "NSIS" To sLanguage Case Break Case (sLexer="null") // Lexer for no language. Used for plain text and unrecognized files. Move "Text" To sLanguage Case Break //Case (sLanguage="opal") // Lexer for OPAL (functional language similar to Haskell) // Move "opal" to sLexer // Case Break //Case (sLanguage="oscript") // Lexer for OScript sources; ocx files and/or OSpace dumps. // Move "oscript" to sLexer // Case Break Case (sLexer="pascal") // Lexer for Pascal. Move "Pascal" To sLanguage Case Break Case (sLexer="powerbasic") // Lexer for PowerBasic Move "PowerBasic" To sLanguage Case Break Case (sLexer="perl") // Lexer for Perl Move "Perl" To sLanguage Case Break Case (sLexer="pl/m") // Move "PL/M" To sLanguage Case Break //Case (sLanguage="po files") // Lexer for GetText Translation (PO) files. // Move "po" to sLexer // Case Break //Case (sLanguage="pov-ray sdl") // Lexer for POV-Ray SDL (Persistance of Vision Raytracer, Scene Description Language). // Move "pov" to sLexer // Case Break Case (sLexer="powerpro") // PowerPro lexer Move "PowerPro" To sLanguage Case Break Case (sLexer="powershell") // Lexer for PowerShell scripts. Move "PowerShell" To sLanguage Case Break Case (sLexer="abl") //Lexer for Progress 4GL. Move "Progress" To sLanguage Case Break Case (sLexer="props") // Lexer for properties files. Move "properties file" To sLanguage Case Break Case (sLexer="ps") // Lexer for PostScript Move "PostScript" To sLanguage Case Break Case (sLexer="python") // Lexer for Python. Move "Python" To sLanguage Case Break Case (sLexer="r") // Lexer for R, S, SPlus Statistics Program (Heavily derived from CPP Lexer). Move "R" To sLanguage Case Break //Case (sLanguage="rebol") // Lexer for REBOL. // Move "rebol" to sLexer // Case Break Case (sLexer="registry") // brief Lexer for Windows registration files(.reg) Move "Windows Registry" To sLanguage Case Break Case (sLexer="ruby") // Lexer for Ruby. Move "Ruby" To sLanguage Case Break Case (sLexer="rust") // Lexer for Rust. Move "Rust" To sLanguage Case Break //Case (sLanguage="scriptol") // Lexer for Scriptol. // Move "scriptol" to sLexer // Case Break Case (sLexer="smalltalk") // Lexer for Smalltalk language. Move "Smalltalk" To sLanguage Case Break //Case (sLanguage="sml") // Lexer for SML. // Move "SML" to sLexer // Case Break //Case (sLanguage="sorcus installation file") // Lexer for SORCUS installation files // Move "sorcins" to sLexer // Case Break //Case (sLanguage="specman") // Lexer for Specman E language. // Move "specman" to sLexer // Case Break //Case (sLanguage="spice") // Lexer for Spice // Move "spice" to sLexer // Case Break Case (sLexer="sql") // Lexer for SQL, including PL/SQL and SQL*Plus. Move "SQL" To sLanguage Case Break //Case (sLanguage="structured text") // Lexer for Structured Text language. // Move "fcST" to sLexer // Case Break //Case (sLanguage="tacl") // Lexer for TAL // Move "TACL" to sLexer // Case Break //Case (sLanguage="tads3") // Lexer for TADS3. // Move "tads3" to sLexer // Case Break //Case (sLanguage="tal") // Lexer for TAL // Move "TAL" to sLexer // Case Break Case (sLexer="tcl") // Lexer for TCL language. Move "TCL" To sLanguage Case Break //Case (sLanguage="take command") // Lexer for Take Command / TCC batch scripts (.bat, .btm, .cmd). // Move "tcmd" to sLexer // Case Break //Case (sLanguage="tex coloring scheme") // File: LexTeX.cxx - general context conformant tex coloring scheme // Move "tex" to sLexer // Case Break //Case (sLanguage="txt2tags") // A simple Txt2tags lexer for scintilla. // Move "txt2tags" to sLexer // Case Break Case (sLexer="vb") // Lexer for Visual Basic and VBScript. Move "Visual Basic" To sLanguage Case Break //Case (sLanguage="basic") // using vb as a default for just "basic" // Move "vb" to sLexer // Case Break Case (sLexer="vbscript") Move "VBScript" To sLanguage Case Break Case (sLexer="verilog") // Lexer for Verilog. Move "Verilog" To sLanguage Case Break Case (sLexer="vhdl") // Lexer for VHDL Move "VHDL" To sLanguage Case Break Case (sLexer="visualprolog") // Lexer for Visual Prolog. Move "Visual Prolog" To sLanguage Case Break Case (sLexer="yaml") // Lexer for YAML. Move "YAML" To sLanguage Case Break Case Else Move "DataFlex" To sLanguage Case End Function_Return sLanguage End_Function // LanguageForScintillaLexer // // Procedure SetAppearance Integer iStyle Integer iColorIndex Integer iBackColor Send EditorMessage SCI_STYLESETFORE iStyle gtColorer[iColorIndex].iForeC Move gtColorer[iColorIndex].iBackC To iBackColor If (iBackColor=-1) Begin // use background color of window Get piWindowColor To iBackColor If (iBackColor<0) Begin Move clWhite To iBackColor End End Send EditorMessage SCI_STYLESETBACK iStyle iBackColor Send EditorMessage SCI_STYLESETBOLD iStyle gtColorer[iColorIndex].iBold Send EditorMessage SCI_STYLESETITALIC iStyle gtColorer[iColorIndex].iItalics End_Procedure // // Map the color style per defined language // Procedure SetAppearanceForLanguage Integer iLexer If (iLexer=SCLEX_NULL) Begin Send SetAppearance SCE_TEXT_DEFAULT EC_TEXT End Else If (iLexer=SCLEX_DATAFLEX) Begin // Send SetAppearance SCE_DF_DEFAULT EC_TEXT Send SetAppearance SCE_DF_IDENTIFIER EC_TEXT // // # Identifiers (style.dataflex.1=) Send SetAppearance SCE_DF_METATAG EC_METATAGS // # Comment: { ... } (style.dataflex.2=$(colour.code.comment.box),$(font.code.comment.box)) Send SetAppearance SCE_DF_IMAGE EC_COMMENTS // # Comment: (* ... *) (style.dataflex.3=$(colour.code.comment.box),$(font.code.comment.box)) Send SetAppearance SCE_DF_COMMENTLINE EC_COMMENTS // # Line Comment: // ... (style.dataflex.4=$(colour.code.comment.line),$(font.code.comment.line)) Send SetAppearance SCE_DF_PREPROCESSOR EC_PREPROCESSOR // # Preprocessor (Macro/Commands): #MACRO/#ENDMACRO Send SetAppearance SCE_DF_PREPROCESSOR2 EC_PREPROCESSOR // # Preprocessor: (*$ ... *) (style.dataflex.6=$(colour.preproc)) Send SetAppearance SCE_DF_NUMBER EC_NUMBERS // # Number (style.dataflex.7=$(colour.Number)) Send SetAppearance SCE_DF_HEXNUMBER EC_NUMBERS // # Hex Number (style.dataflex.8=$(colour.Number)) Send SetAppearance SCE_DF_WORD EC_KEYWORDS // # Keyword (style.dataflex.9=$(colour.keyword) // Basic keywords) Send SetAppearance SCE_DF_STRING EC_STRINGS // # String (style.dataflex.10=$(colour.String)) Send SetAppearance SCE_DF_STRINGEOL EC_STRINGTYPING // # End of line where String is not closed (style.dataflex.11=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled) Send SetAppearance SCE_DF_SCOPEWORD EC_SCOPEKWORDS // # Scope keyword (style.dataflex.12=$(colour.keyword),bold) Send SetAppearance SCE_DF_OPERATOR EC_OPERATORS // # Operators (style.dataflex.13=$(colour.operator),bold) Send SetAppearance SCE_DF_ICODE EC_NUMBERS // # ICode (style.dataflex.14=$(colour.Number)) End Else If (iLexer=SCLEX_CPP) Begin // Send SetAppearance SCE_C_DEFAULT EC_TEXT Send SetAppearance SCE_C_IDENTIFIER EC_TEXT Send SetAppearance SCE_C_COMMENTDOC EC_METATAGS Send SetAppearance SCE_C_COMMENT EC_COMMENTS Send SetAppearance SCE_C_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_C_PREPROCESSOR EC_PREPROCESSOR Send SetAppearance SCE_C_GLOBALCLASS EC_PREPROCESSOR Send SetAppearance SCE_C_NUMBER EC_NUMBERS Send SetAppearance SCE_C_CHARACTER EC_NUMBERS Send SetAppearance SCE_C_WORD EC_KEYWORDS Send SetAppearance SCE_C_STRING EC_STRINGS Send SetAppearance SCE_C_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_C_WORD2 EC_SCOPEKWORDS Send SetAppearance SCE_C_OPERATOR EC_OPERATORS Send SetAppearance SCE_C_UUID EC_STRINGS Send SetAppearance SCE_C_VERBATIM EC_TEXT Send SetAppearance SCE_C_REGEX EC_OPERATORS Send SetAppearance SCE_C_COMMENTLINEDOC EC_METATAGS Send SetAppearance SCE_C_COMMENTDOCKEYWORD EC_METATAGS Send SetAppearance SCE_C_COMMENTDOCKEYWORDERROR EC_STRINGTYPING Send SetAppearance SCE_C_STRINGRAW EC_STRINGS Send SetAppearance SCE_C_TRIPLEVERBATIM EC_COMMENTS Send SetAppearance SCE_C_HASHQUOTEDSTRING EC_STRINGS Send SetAppearance SCE_C_PREPROCESSORCOMMENT EC_METATAGS Send SetAppearance SCE_C_PREPROCESSORCOMMENTDOC EC_METATAGS Send SetAppearance SCE_C_USERLITERAL EC_STRINGS Send SetAppearance SCE_C_TASKMARKER EC_BRACEHLIGHT Send SetAppearance SCE_C_ESCAPESEQUENCE EC_STRINGS End Else If (iLexer=SCLEX_PASCAL) Begin // Send SetAppearance SCE_PAS_DEFAULT EC_TEXT Send SetAppearance SCE_PAS_IDENTIFIER EC_TEXT Send SetAppearance SCE_PAS_COMMENT2 EC_METATAGS Send SetAppearance SCE_PAS_COMMENT EC_COMMENTS Send SetAppearance SCE_PAS_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_PAS_PREPROCESSOR EC_PREPROCESSOR Send SetAppearance SCE_PAS_PREPROCESSOR2 EC_PREPROCESSOR Send SetAppearance SCE_PAS_NUMBER EC_NUMBERS Send SetAppearance SCE_PAS_HEXNUMBER EC_NUMBERS Send SetAppearance SCE_PAS_WORD EC_KEYWORDS Send SetAppearance SCE_PAS_STRING EC_STRINGS Send SetAppearance SCE_PAS_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_PAS_OPERATOR EC_OPERATORS Send SetAppearance SCE_PAS_CHARACTER EC_STRINGS Send SetAppearance SCE_PAS_ASM EC_BOOKMARK End Else If (iLexer=SCLEX_HTML or iLexer=SCLEX_XML or iLexer=SCLEX_PHPSCRIPT) Begin // Set LexerProperty "fold.html" To "1" // // Has over 100 styles as it supports markup for embedded scripting etc.. Send SetAppearance SCE_H_DEFAULT EC_TEXT Send SetAppearance SCE_H_TAG EC_TAGELEMENT Send SetAppearance SCE_H_TAGUNKNOWN EC_KEYWORDS Send SetAppearance SCE_H_ATTRIBUTE EC_TAGATTRIBUTE Send SetAppearance SCE_H_ATTRIBUTEUNKNOWN EC_OPERATORS Send SetAppearance SCE_H_NUMBER EC_NUMBERS Send SetAppearance SCE_H_DOUBLESTRING EC_STRINGS Send SetAppearance SCE_H_SINGLESTRING EC_STRINGS Send SetAppearance SCE_H_OTHER EC_TEXT Send SetAppearance SCE_H_COMMENT EC_COMMENTS Send SetAppearance SCE_H_ENTITY EC_TAGENTITIES Send SetAppearance SCE_H_TAGEND EC_TAGELEMENT // XML style tag ends '/>' Send SetAppearance SCE_H_XMLSTART EC_SCOPEKWORDS // XML identifier start '' Send SetAppearance SCE_H_SCRIPT EC_METATAGS // SCRIPT Send SetAppearance SCE_H_ASP EC_KEYWORDS // ASP <% ... %> Send SetAppearance SCE_H_ASPAT EC_KEYWORDS // ASP <% ... %> Send SetAppearance SCE_H_CDATA EC_STRINGS // CDATA Send SetAppearance SCE_H_QUESTION EC_STRINGTYPING // PHP Send SetAppearance SCE_H_VALUE EC_NUMBERS // Unquoted values Send SetAppearance SCE_H_XCCOMMENT EC_COMMENTS // JSP Comment <%-- ... --%> Send SetAppearance SCE_H_SGML_DEFAULT EC_TEXT // SGML tags Send SetAppearance SCE_H_SGML_COMMAND EC_PREPROCESSOR Send SetAppearance SCE_H_SGML_1ST_PARAM EC_SCOPEKWORDS Send SetAppearance SCE_H_SGML_DOUBLESTRING EC_STRINGS Send SetAppearance SCE_H_SGML_SIMPLESTRING EC_STRINGS Send SetAppearance SCE_H_SGML_ERROR EC_STRINGTYPING Send SetAppearance SCE_H_SGML_SPECIAL EC_UNMATCHEDBRACE Send SetAppearance SCE_H_SGML_ENTITY EC_TAGENTITIES Send SetAppearance SCE_H_SGML_COMMENT EC_COMMENTS Send SetAppearance SCE_H_SGML_1ST_PARAM_COMMENT EC_METATAGS Send SetAppearance SCE_H_SGML_BLOCK_DEFAULT EC_TEXT Send SetAppearance SCE_HJ_START EC_TEXT // Embedded Javascript, JS Start - allows eol filled background to not start on same line as SCRIPT tag Send SetAppearance SCE_HJ_DEFAULT EC_TEXT // Send SetAppearance SCE_HJ_COMMENT EC_COMMENTS Send SetAppearance SCE_HJ_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HJ_COMMENTDOC EC_METATAGS Send SetAppearance SCE_HJ_NUMBER EC_NUMBERS Send SetAppearance SCE_HJ_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HJ_KEYWORD EC_KEYWORDS Send SetAppearance SCE_HJ_DOUBLESTRING EC_STRINGS Send SetAppearance SCE_HJ_SINGLESTRING EC_STRINGS Send SetAppearance SCE_HJ_SYMBOLS EC_PREPROCESSOR Send SetAppearance SCE_HJ_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_HJ_REGEX EC_OPERATORS Send SetAppearance SCE_HJA_START EC_TEXT // ASP Javascript Send SetAppearance SCE_HJA_DEFAULT EC_TEXT Send SetAppearance SCE_HJA_COMMENT EC_COMMENTS Send SetAppearance SCE_HJA_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HJA_COMMENTDOC EC_METATAGS Send SetAppearance SCE_HJA_NUMBER EC_NUMBERS Send SetAppearance SCE_HJA_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HJA_KEYWORD EC_KEYWORDS Send SetAppearance SCE_HJA_DOUBLESTRING EC_STRINGS Send SetAppearance SCE_HJA_SINGLESTRING EC_STRINGS Send SetAppearance SCE_HJA_SYMBOLS EC_PREPROCESSOR Send SetAppearance SCE_HJA_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_HJA_REGEX EC_OPERATORS Send SetAppearance SCE_HB_START EC_TEXT // Embedded VBS Send SetAppearance SCE_HB_DEFAULT EC_TEXT Send SetAppearance SCE_HB_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HB_NUMBER EC_NUMBERS Send SetAppearance SCE_HB_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HB_STRING EC_STRINGS Send SetAppearance SCE_HB_IDENTIFIER EC_KEYWORDS Send SetAppearance SCE_HB_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_HBA_START EC_TEXT // ASP VBS Send SetAppearance SCE_HBA_DEFAULT EC_TEXT Send SetAppearance SCE_HBA_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HBA_NUMBER EC_NUMBERS Send SetAppearance SCE_HBA_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HBA_STRING EC_STRINGS Send SetAppearance SCE_HBA_IDENTIFIER EC_KEYWORDS Send SetAppearance SCE_HBA_STRINGEOL EC_STRINGTYPING Send SetAppearance SCE_HP_START EC_TEXT // Embedded Python Send SetAppearance SCE_HP_DEFAULT EC_TEXT Send SetAppearance SCE_HP_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HP_NUMBER EC_NUMBERS Send SetAppearance SCE_HP_STRING EC_STRINGS Send SetAppearance SCE_HP_CHARACTER EC_STRINGS Send SetAppearance SCE_HP_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HP_TRIPLE EC_PREPROCESSOR Send SetAppearance SCE_HP_TRIPLEDOUBLE EC_PREPROCESSOR Send SetAppearance SCE_HP_CLASSNAME EC_METATAGS Send SetAppearance SCE_HP_DEFNAME EC_METATAGS Send SetAppearance SCE_HP_OPERATOR EC_OPERATORS Send SetAppearance SCE_HP_IDENTIFIER EC_KEYWORDS Send SetAppearance SCE_HPHP_COMPLEX_VARIABLE EC_TAGENTITIES // PHP complex variable Send SetAppearance SCE_HPA_START EC_TEXT // ASP Python Send SetAppearance SCE_HPA_DEFAULT EC_TEXT Send SetAppearance SCE_HPA_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HPA_NUMBER EC_NUMBERS Send SetAppearance SCE_HPA_STRING EC_STRINGS Send SetAppearance SCE_HPA_CHARACTER EC_STRINGS Send SetAppearance SCE_HPA_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HPA_TRIPLE EC_PREPROCESSOR Send SetAppearance SCE_HPA_TRIPLEDOUBLE EC_PREPROCESSOR Send SetAppearance SCE_HPA_CLASSNAME EC_METATAGS Send SetAppearance SCE_HPA_DEFNAME EC_METATAGS Send SetAppearance SCE_HPA_OPERATOR EC_OPERATORS Send SetAppearance SCE_HPA_IDENTIFIER EC_KEYWORDS Send SetAppearance SCE_HPHP_DEFAULT EC_TEXT // PHP Send SetAppearance SCE_HPHP_HSTRING EC_STRINGS Send SetAppearance SCE_HPHP_SIMPLESTRING EC_STRINGS Send SetAppearance SCE_HPHP_WORD EC_SCOPEKWORDS Send SetAppearance SCE_HPHP_NUMBER EC_NUMBERS Send SetAppearance SCE_HPHP_VARIABLE EC_TAGENTITIES Send SetAppearance SCE_HPHP_COMMENT EC_COMMENTS Send SetAppearance SCE_HPHP_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_HPHP_HSTRING_VARIABLE EC_TAGELEMENT Send SetAppearance SCE_HPHP_OPERATOR EC_OPERATORS End Else If (iLexer=SCLEX_SQL) Begin Send SetAppearance SCE_SQL_DEFAULT EC_TEXT Send SetAppearance SCE_SQL_COMMENT EC_COMMENTS Send SetAppearance SCE_SQL_COMMENTLINE EC_COMMENTS Send SetAppearance SCE_SQL_COMMENTDOC EC_METATAGS Send SetAppearance SCE_SQL_NUMBER EC_NUMBERS Send SetAppearance SCE_SQL_WORD EC_KEYWORDS Send SetAppearance SCE_SQL_STRING EC_STRINGS Send SetAppearance SCE_SQL_CHARACTER EC_STRINGS Send SetAppearance SCE_SQL_SQLPLUS EC_TAGTEXT Send SetAppearance SCE_SQL_SQLPLUS_PROMPT EC_TAGENTITIES Send SetAppearance SCE_SQL_OPERATOR EC_OPERATORS Send SetAppearance SCE_SQL_IDENTIFIER EC_TEXT Send SetAppearance SCE_SQL_SQLPLUS_COMMENT EC_COMMENTS Send SetAppearance SCE_SQL_COMMENTLINEDOC EC_METATAGS Send SetAppearance SCE_SQL_WORD2 EC_SCOPEKWORDS Send SetAppearance SCE_SQL_COMMENTDOCKEYWORD EC_METATAGS Send SetAppearance SCE_SQL_COMMENTDOCKEYWORDERROR EC_STRINGTYPING Send SetAppearance SCE_SQL_USER1 EC_TAGENTITIES Send SetAppearance SCE_SQL_USER2 EC_TAGELEMENT Send SetAppearance SCE_SQL_USER3 EC_TAGATTRIBUTE Send SetAppearance SCE_SQL_USER4 EC_TAGTEXT Send SetAppearance SCE_SQL_QUOTEDIDENTIFIER EC_TEXT Send SetAppearance SCE_SQL_QOPERATOR EC_TEXT End If (iLexer=SCLEX_PROPERTIES) Begin // Send SetAppearance SCE_PROPS_DEFAULT EC_TEXT Send SetAppearance SCE_PROPS_SECTION EC_METATAGS Send SetAppearance SCE_PROPS_COMMENT EC_COMMENTS Send SetAppearance SCE_PROPS_KEY EC_KEYWORDS Send SetAppearance SCE_PROPS_DEFVAL EC_STRINGS Send SetAppearance SCE_PROPS_ASSIGNMENT EC_OPERATORS End Else If (iLexer=SCLEX_VB) Begin End End_Procedure End_Class