Checking if your kit is complete...
Looks good
Writing Makefile for Syntax::Highlight::Engine::Kate
cp lib/Syntax/Highlight/Engine/Kate/HTML.pm blib/lib/Syntax/Highlight/Engine/Kate/HTML.pm
cp lib/Syntax/Highlight/Engine/Kate/Spice.pm blib/lib/Syntax/Highlight/Engine/Kate/Spice.pm
cp lib/Syntax/Highlight/Engine/Kate/Clipper.pm blib/lib/Syntax/Highlight/Engine/Kate/Clipper.pm
cp lib/Syntax/Highlight/Engine/Kate/PHP_HTML.pm blib/lib/Syntax/Highlight/Engine/Kate/PHP_HTML.pm
cp lib/Syntax/Highlight/Engine/Kate/Pascal.pm blib/lib/Syntax/Highlight/Engine/Kate/Pascal.pm
cp lib/Syntax/Highlight/Engine/Kate/AWK.pm blib/lib/Syntax/Highlight/Engine/Kate/AWK.pm
cp lib/Syntax/Highlight/Engine/Kate/WINE_Config.pm blib/lib/Syntax/Highlight/Engine/Kate/WINE_Config.pm
cp lib/Syntax/Highlight/Engine/Kate/GNU_Gettext.pm blib/lib/Syntax/Highlight/Engine/Kate/GNU_Gettext.pm
cp lib/Syntax/Highlight/Engine/Kate/Common_Lisp.pm blib/lib/Syntax/Highlight/Engine/Kate/Common_Lisp.pm
cp lib/Syntax/Highlight/Engine/Kate/Progress.pm blib/lib/Syntax/Highlight/Engine/Kate/Progress.pm
cp lib/Syntax/Highlight/Engine/Kate/XML_Debug.pm blib/lib/Syntax/Highlight/Engine/Kate/XML_Debug.pm
cp lib/Syntax/Highlight/Engine/Kate/GDL.pm blib/lib/Syntax/Highlight/Engine/Kate/GDL.pm
cp lib/Syntax/Highlight/Engine/Kate/INI_Files.pm blib/lib/Syntax/Highlight/Engine/Kate/INI_Files.pm
cp lib/Syntax/Highlight/Engine/Kate/LDIF.pm blib/lib/Syntax/Highlight/Engine/Kate/LDIF.pm
cp lib/Syntax/Highlight/Engine/Kate/Modulaminus2.pm blib/lib/Syntax/Highlight/Engine/Kate/Modulaminus2.pm
cp lib/Syntax/Highlight/Engine/Kate/D.pm blib/lib/Syntax/Highlight/Engine/Kate/D.pm
cp lib/Syntax/Highlight/Engine/Kate/Cisco.pm blib/lib/Syntax/Highlight/Engine/Kate/Cisco.pm
cp lib/Syntax/Highlight/Engine/Kate/Scilab.pm blib/lib/Syntax/Highlight/Engine/Kate/Scilab.pm
cp lib/Syntax/Highlight/Engine/Kate/MIPS_Assembler.pm blib/lib/Syntax/Highlight/Engine/Kate/MIPS_Assembler.pm
cp lib/Syntax/Highlight/Engine/Kate/Cdash.pm blib/lib/Syntax/Highlight/Engine/Kate/Cdash.pm
cp lib/Syntax/Highlight/Engine/Kate.pm blib/lib/Syntax/Highlight/Engine/Kate.pm
cp lib/Syntax/Highlight/Engine/Kate/Literate_Haskell.pm blib/lib/Syntax/Highlight/Engine/Kate/Literate_Haskell.pm
cp lib/Syntax/Highlight/Engine/Kate/Java.pm blib/lib/Syntax/Highlight/Engine/Kate/Java.pm
cp lib/Syntax/Highlight/Engine/Kate/ColdFusion.pm blib/lib/Syntax/Highlight/Engine/Kate/ColdFusion.pm
cp lib/Syntax/Highlight/Engine/Kate/Debian_Changelog.pm blib/lib/Syntax/Highlight/Engine/Kate/Debian_Changelog.pm
cp lib/Syntax/Highlight/Engine/Kate/CMake.pm blib/lib/Syntax/Highlight/Engine/Kate/CMake.pm
cp lib/Syntax/Highlight/Engine/Kate/E_Language.pm blib/lib/Syntax/Highlight/Engine/Kate/E_Language.pm
cp lib/Syntax/Highlight/Engine/Kate/Mason.pm blib/lib/Syntax/Highlight/Engine/Kate/Mason.pm
cp lib/Syntax/Highlight/Engine/Kate/PureBasic.pm blib/lib/Syntax/Highlight/Engine/Kate/PureBasic.pm
cp lib/Syntax/Highlight/Engine/Kate/XHarbour.pm blib/lib/Syntax/Highlight/Engine/Kate/XHarbour.pm
cp lib/Syntax/Highlight/Engine/Kate/Fortran.pm blib/lib/Syntax/Highlight/Engine/Kate/Fortran.pm
cp lib/Syntax/Highlight/Engine/Kate/ANSI_C89.pm blib/lib/Syntax/Highlight/Engine/Kate/ANSI_C89.pm
cp lib/Syntax/Highlight/Engine/Kate/Alerts.pm blib/lib/Syntax/Highlight/Engine/Kate/Alerts.pm
cp lib/Syntax/Highlight/Engine/Kate/BaseTest.pm blib/lib/Syntax/Highlight/Engine/Kate/BaseTest.pm
cp lib/Syntax/Highlight/Engine/Kate/Eiffel.pm blib/lib/Syntax/Highlight/Engine/Kate/Eiffel.pm
cp lib/Syntax/Highlight/Engine/Kate/Scheme.pm blib/lib/Syntax/Highlight/Engine/Kate/Scheme.pm
cp lib/Syntax/Highlight/Engine/Kate/POVminusRay.pm blib/lib/Syntax/Highlight/Engine/Kate/POVminusRay.pm
cp lib/Syntax/Highlight/Engine/Kate/Txt2tags.pm blib/lib/Syntax/Highlight/Engine/Kate/Txt2tags.pm
cp lib/Syntax/Highlight/Engine/Kate/R_Script.pm blib/lib/Syntax/Highlight/Engine/Kate/R_Script.pm
cp lib/Syntax/Highlight/Engine/Kate/PostScript.pm blib/lib/Syntax/Highlight/Engine/Kate/PostScript.pm
cp lib/Syntax/Highlight/Engine/Kate/Yacas.pm blib/lib/Syntax/Highlight/Engine/Kate/Yacas.pm
cp lib/Syntax/Highlight/Engine/Kate/Octave.pm blib/lib/Syntax/Highlight/Engine/Kate/Octave.pm
cp lib/Syntax/Highlight/Engine/Kate/REXX.pm blib/lib/Syntax/Highlight/Engine/Kate/REXX.pm
cp lib/Syntax/Highlight/Engine/Kate/Quake_Script.pm blib/lib/Syntax/Highlight/Engine/Kate/Quake_Script.pm
cp lib/Syntax/Highlight/Engine/Kate/SQL_MySQL.pm blib/lib/Syntax/Highlight/Engine/Kate/SQL_MySQL.pm
cp lib/Syntax/Highlight/Engine/Kate/LaTeX.pm blib/lib/Syntax/Highlight/Engine/Kate/LaTeX.pm
cp lib/Syntax/Highlight/Engine/Kate/Python.pm blib/lib/Syntax/Highlight/Engine/Kate/Python.pm
cp lib/Syntax/Highlight/Engine/Kate/AHDL.pm blib/lib/Syntax/Highlight/Engine/Kate/AHDL.pm
cp lib/Syntax/Highlight/Engine/Kate/Velocity.pm blib/lib/Syntax/Highlight/Engine/Kate/Velocity.pm
cp lib/Syntax/Highlight/Engine/Kate/UnrealScript.pm blib/lib/Syntax/Highlight/Engine/Kate/UnrealScript.pm
cp lib/Syntax/Highlight/Engine/Kate.pod blib/lib/Syntax/Highlight/Engine/Kate.pod
cp lib/Syntax/Highlight/Engine/Kate/Desktop.pm blib/lib/Syntax/Highlight/Engine/Kate/Desktop.pm
cp lib/Syntax/Highlight/Engine/Kate/Euphoria.pm blib/lib/Syntax/Highlight/Engine/Kate/Euphoria.pm
cp lib/Syntax/Highlight/Engine/Kate/BaseTestchild.pm blib/lib/Syntax/Highlight/Engine/Kate/BaseTestchild.pm
cp lib/Syntax/Highlight/Engine/Kate/Intel_x86_NASM.pm blib/lib/Syntax/Highlight/Engine/Kate/Intel_x86_NASM.pm
cp lib/Syntax/Highlight/Engine/Kate/XML.pm blib/lib/Syntax/Highlight/Engine/Kate/XML.pm
cp lib/Syntax/Highlight/Engine/Kate/SML.pm blib/lib/Syntax/Highlight/Engine/Kate/SML.pm
cp lib/Syntax/Highlight/Engine/Kate/KBasic.pm blib/lib/Syntax/Highlight/Engine/Kate/KBasic.pm
cp lib/Syntax/Highlight/Engine/Kate/ASP.pm blib/lib/Syntax/Highlight/Engine/Kate/ASP.pm
cp lib/Syntax/Highlight/Engine/Kate/CUE_Sheet.pm blib/lib/Syntax/Highlight/Engine/Kate/CUE_Sheet.pm
cp lib/Syntax/Highlight/Engine/Kate/Verilog.pm blib/lib/Syntax/Highlight/Engine/Kate/Verilog.pm
cp lib/Syntax/Highlight/Engine/Kate/GLSL.pm blib/lib/Syntax/Highlight/Engine/Kate/GLSL.pm
cp lib/Syntax/Highlight/Engine/Kate/Xslt.pm blib/lib/Syntax/Highlight/Engine/Kate/Xslt.pm
cp lib/Syntax/Highlight/Engine/Kate/AVR_Assembler.pm blib/lib/Syntax/Highlight/Engine/Kate/AVR_Assembler.pm
cp lib/Syntax/Highlight/Engine/Kate/Tcl_Tk.pm blib/lib/Syntax/Highlight/Engine/Kate/Tcl_Tk.pm
cp lib/Syntax/Highlight/Engine/Kate/Ferite.pm blib/lib/Syntax/Highlight/Engine/Kate/Ferite.pm
cp lib/Syntax/Highlight/Engine/Kate/ChangeLog.pm blib/lib/Syntax/Highlight/Engine/Kate/ChangeLog.pm
cp lib/Syntax/Highlight/Engine/Kate/TI_Basic.pm blib/lib/Syntax/Highlight/Engine/Kate/TI_Basic.pm
cp lib/Syntax/Highlight/Engine/Kate/ComponentminusPascal.pm blib/lib/Syntax/Highlight/Engine/Kate/ComponentminusPascal.pm
cp lib/Syntax/Highlight/Engine/Kate/Ruby.pm blib/lib/Syntax/Highlight/Engine/Kate/Ruby.pm
cp lib/Syntax/Highlight/Engine/Kate/Cplusplus.pm blib/lib/Syntax/Highlight/Engine/Kate/Cplusplus.pm
cp lib/Syntax/Highlight/Engine/Kate/Cg.pm blib/lib/Syntax/Highlight/Engine/Kate/Cg.pm
cp lib/Syntax/Highlight/Engine/Kate/C.pm blib/lib/Syntax/Highlight/Engine/Kate/C.pm
cp lib/Syntax/Highlight/Engine/Kate/LilyPond.pm blib/lib/Syntax/Highlight/Engine/Kate/LilyPond.pm
cp lib/Syntax/Highlight/Engine/Kate/Javadoc.pm blib/lib/Syntax/Highlight/Engine/Kate/Javadoc.pm
cp lib/Syntax/Highlight/Engine/Kate/Pike.pm blib/lib/Syntax/Highlight/Engine/Kate/Pike.pm
cp lib/Syntax/Highlight/Engine/Kate/Inform.pm blib/lib/Syntax/Highlight/Engine/Kate/Inform.pm
cp lib/Syntax/Highlight/Engine/Kate/Template.pm blib/lib/Syntax/Highlight/Engine/Kate/Template.pm
cp lib/Syntax/Highlight/Engine/Kate/VRML.pm blib/lib/Syntax/Highlight/Engine/Kate/VRML.pm
cp lib/Syntax/Highlight/Engine/Kate/Lua.pm blib/lib/Syntax/Highlight/Engine/Kate/Lua.pm
cp lib/Syntax/Highlight/Engine/Kate/SQL.pm blib/lib/Syntax/Highlight/Engine/Kate/SQL.pm
cp lib/Syntax/Highlight/Engine/Kate/IDL.pm blib/lib/Syntax/Highlight/Engine/Kate/IDL.pm
cp lib/Syntax/Highlight/Engine/Kate/JSP.pm blib/lib/Syntax/Highlight/Engine/Kate/JSP.pm
cp lib/Syntax/Highlight/Engine/Kate/Debian_Control.pm blib/lib/Syntax/Highlight/Engine/Kate/Debian_Control.pm
cp lib/Syntax/Highlight/Engine/Kate/JavaScript.pm blib/lib/Syntax/Highlight/Engine/Kate/JavaScript.pm
cp lib/Syntax/Highlight/Engine/Kate/CSS.pm blib/lib/Syntax/Highlight/Engine/Kate/CSS.pm
cp lib/Syntax/Highlight/Engine/Kate/FourGL.pm blib/lib/Syntax/Highlight/Engine/Kate/FourGL.pm
cp lib/Syntax/Highlight/Engine/Kate/Ada.pm blib/lib/Syntax/Highlight/Engine/Kate/Ada.pm
cp lib/Syntax/Highlight/Engine/Kate/Music_Publisher.pm blib/lib/Syntax/Highlight/Engine/Kate/Music_Publisher.pm
cp lib/Syntax/Highlight/Engine/Kate/PHP_PHP.pm blib/lib/Syntax/Highlight/Engine/Kate/PHP_PHP.pm
cp lib/Syntax/Highlight/Engine/Kate/LPC.pm blib/lib/Syntax/Highlight/Engine/Kate/LPC.pm
cp lib/Syntax/Highlight/Engine/Kate/FourGLminusPER.pm blib/lib/Syntax/Highlight/Engine/Kate/FourGLminusPER.pm
cp lib/Syntax/Highlight/Engine/Kate/Asm6502.pm blib/lib/Syntax/Highlight/Engine/Kate/Asm6502.pm
cp lib/Syntax/Highlight/Engine/Kate/PicAsm.pm blib/lib/Syntax/Highlight/Engine/Kate/PicAsm.pm
cp lib/Syntax/Highlight/Engine/Kate/ILERPG.pm blib/lib/Syntax/Highlight/Engine/Kate/ILERPG.pm
cp lib/Syntax/Highlight/Engine/Kate/Haskell.pm blib/lib/Syntax/Highlight/Engine/Kate/Haskell.pm
cp lib/Syntax/Highlight/Engine/Kate/Yacc_Bison.pm blib/lib/Syntax/Highlight/Engine/Kate/Yacc_Bison.pm
cp lib/Syntax/Highlight/Engine/Kate/MABminusDB.pm blib/lib/Syntax/Highlight/Engine/Kate/MABminusDB.pm
cp lib/Syntax/Highlight/Engine/Kate/Diff.pm blib/lib/Syntax/Highlight/Engine/Kate/Diff.pm
cp lib/Syntax/Highlight/Engine/Kate/VHDL.pm blib/lib/Syntax/Highlight/Engine/Kate/VHDL.pm
cp lib/Syntax/Highlight/Engine/Kate/Lex_Flex.pm blib/lib/Syntax/Highlight/Engine/Kate/Lex_Flex.pm
cp lib/Syntax/Highlight/Engine/Kate/RenderMan_RIB.pm blib/lib/Syntax/Highlight/Engine/Kate/RenderMan_RIB.pm
cp lib/Syntax/Highlight/Engine/Kate/Sather.pm blib/lib/Syntax/Highlight/Engine/Kate/Sather.pm
cp lib/Syntax/Highlight/Engine/Kate/Makefile.pm blib/lib/Syntax/Highlight/Engine/Kate/Makefile.pm
cp lib/Syntax/Highlight/Engine/Kate/Stata.pm blib/lib/Syntax/Highlight/Engine/Kate/Stata.pm
cp lib/Syntax/Highlight/Engine/Kate/Bash.pm blib/lib/Syntax/Highlight/Engine/Kate/Bash.pm
cp lib/Syntax/Highlight/Engine/Kate/All.pm blib/lib/Syntax/Highlight/Engine/Kate/All.pm
cp lib/Syntax/Highlight/Engine/Kate/RSI_IDL.pm blib/lib/Syntax/Highlight/Engine/Kate/RSI_IDL.pm
cp lib/Syntax/Highlight/Engine/Kate/SQL_PostgreSQL.pm blib/lib/Syntax/Highlight/Engine/Kate/SQL_PostgreSQL.pm
cp lib/Syntax/Highlight/Engine/Kate/CGiS.pm blib/lib/Syntax/Highlight/Engine/Kate/CGiS.pm
cp lib/Syntax/Highlight/Engine/Kate/BibTeX.pm blib/lib/Syntax/Highlight/Engine/Kate/BibTeX.pm
cp lib/Syntax/Highlight/Engine/Kate/Prolog.pm blib/lib/Syntax/Highlight/Engine/Kate/Prolog.pm
cp lib/Syntax/Highlight/Engine/Kate/Sieve.pm blib/lib/Syntax/Highlight/Engine/Kate/Sieve.pm
cp lib/Syntax/Highlight/Engine/Kate/Doxygen.pm blib/lib/Syntax/Highlight/Engine/Kate/Doxygen.pm
cp lib/Syntax/Highlight/Engine/Kate/Perl.pm blib/lib/Syntax/Highlight/Engine/Kate/Perl.pm
cp lib/Syntax/Highlight/Engine/Kate/RPM_Spec.pm blib/lib/Syntax/Highlight/Engine/Kate/RPM_Spec.pm
cp lib/Syntax/Highlight/Engine/Kate/GNU_Assembler.pm blib/lib/Syntax/Highlight/Engine/Kate/GNU_Assembler.pm
cp lib/Syntax/Highlight/Engine/Kate/Matlab.pm blib/lib/Syntax/Highlight/Engine/Kate/Matlab.pm
cp lib/Syntax/Highlight/Engine/Kate/SGML.pm blib/lib/Syntax/Highlight/Engine/Kate/SGML.pm
Manifying blib/man3/Syntax::Highlight::Engine::Kate::HTML.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Spice.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Clipper.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::PHP_HTML.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Pascal.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::AWK.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::GNU_Gettext.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Common_Lisp.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Progress.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::XML_Debug.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::GDL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::INI_Files.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::LDIF.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Modulaminus2.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::D.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Cisco.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Scilab.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::MIPS_Assembler.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Cdash.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Literate_Haskell.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Java.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ColdFusion.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Debian_Changelog.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::CMake.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::E_Language.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Mason.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::PureBasic.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::XHarbour.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Fortran.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ANSI_C89.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Alerts.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::BaseTest.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Eiffel.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Scheme.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::POVminusRay.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Txt2tags.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::R_Script.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::PostScript.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Yacas.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Octave.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::REXX.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Quake_Script.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::SQL_MySQL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::LaTeX.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Python.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::AHDL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Velocity.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::UnrealScript.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Desktop.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Euphoria.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::BaseTestchild.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Intel_x86_NASM.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::XML.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::SML.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::KBasic.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ASP.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::CUE_Sheet.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Verilog.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::GLSL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Xslt.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::AVR_Assembler.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Tcl_Tk.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Ferite.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ChangeLog.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::TI_Basic.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ComponentminusPascal.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Ruby.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Cplusplus.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Cg.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::C.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::LilyPond.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Javadoc.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Pike.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Inform.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Template.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::VRML.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Lua.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::SQL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::IDL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::JSP.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Debian_Control.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::JavaScript.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::CSS.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::FourGL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Ada.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Music_Publisher.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::PHP_PHP.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::LPC.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::FourGLminusPER.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Asm6502.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::PicAsm.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::ILERPG.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Haskell.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Yacc_Bison.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::MABminusDB.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Diff.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::VHDL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Lex_Flex.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::RenderMan_RIB.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Sather.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Makefile.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Stata.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Bash.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::RSI_IDL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::SQL_PostgreSQL.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::CGiS.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::BibTeX.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Prolog.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Sieve.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Doxygen.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Perl.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::RPM_Spec.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::GNU_Assembler.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::Matlab.3
Manifying blib/man3/Syntax::Highlight::Engine::Kate::SGML.3
PERL_DL_NONLAZY=1 /home/cpanrun/ia64/build/5.6.1/bin/perl -Iblib/arch -Iblib/lib -I/home/cpanrun/ia64/build/5.6.1/lib/5.6.1/IA64.ARCHREV_0-thread-multi -I/home/cpanrun/ia64/build/5.6.1/lib/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=1; runtests @ARGV;' t/*.t
t/Kate..............1..460
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
testing .desktop
ok 9
ok 10
testing as kate plugin
ok 11
[34;1m[Desktop Entry][0m[0m[0m
[0m[34mComment[0m[0m=[0m[0m[0m
[0m[34mComment[0m[34;1m[en_US][0m[0m=[0m[0m[0m
[0m[34mEncoding[0m[0m=UTF-8[0m[0m[0m
[0m[34mExec[0m[0m=timidity -iA -B 2,8 -EFreverb=0 -EFchorus=0[0m[0m[0m
[0m[34mGenericName[0m[0m=[0m[0m[0m
[0m[34mGenericName[0m[34;1m[en_US][0m[0m=[0m[0m[0m
[0m[34mIcon[0m[0m=[0m[0m[0m
[0m[34mMimeType[0m[0m=[0m[0m[0m
[0m[34mName[0m[0m=Start timidity server[0m[0m[0m
[0m[34mName[0m[34;1m[en_US][0m[0m=Start timidity server[0m[0m[0m
[0m[34mPath[0m[0m=[0m[0m[0m
[0m[34mStartupNotify[0m[0m=false[0m[0m[0m
[0m[34mTerminal[0m[0m=true[0m[0m[0m
[0m[34mTerminalOptions[0m[0m=\s--noclose[0m[0m[0m
[0m[34mType[0m[0m=Application[0m[0m[0m
[0m[34mX-DCOP-ServiceType[0m[0m=none[0m[0m[0m
[0m[34mX-KDE-SubstituteUID[0m[0m=true[0m[0m[0m
[0m[34mX-KDE-Username[0m[0m=root[0m[0m[0m
[0mtesting standalone
ok 12
testing 4GL
ok 13
ok 14
ok 15 # skip
ok 16 # skip
testing 4GL-PER
ok 17
ok 18
ok 19 # skip
ok 20 # skip
testing AHDL
ok 21
ok 22
testing as kate plugin
ok 23
[0m-- Test file [0m[1mfor[0m[0m kate's syntax highlighting[0m[0m[0m
[0m[1mTitle[0m[0m [0m[31m"Test file"[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m-- [0m[1mBEGIN[0m[0m region (a region marker region) :)[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m% multiline comment[0m[37;1;44m[0m
[0m[37;1;44mgoes on here %[0m[0m[0m
[0m[0m[0m
[0m[0m-- [0m[1mEND[0m[0m[0m
[0m[0m[0m
[0m[1mFUNCTION[0m[0m FCT (Clk, Key) [0m[1mRETURNS[0m[0m (pulse);[0m[0m[0m
[0m[0m[0m
[0m[1mSUBDESIGN[0m[0m CDCLOCK2[0m[0m[0m
[0m[0m([0m[0m[0m
[0m[1min[0m[0m : [0m[1mINPUT[0m[0m; -- go [0m[1min[0m[0m[0m
[0m[0mout[[0m[34;1m3[0m[0m..[0m[34;1m0[0m[0m] : [0m[1mOUTPUT[0m[0m; -- come out[0m[0m[0m
[0m[0m)[0m[0m[0m
[0m[0m[0m
[0m[1mVARIABLE[0m[0m[0m
[0m[0mstart : [0m[34msoft[0m[0m;[0m[0m[0m
[0m[0musec[[0m[34;1m3[0m[0m..[0m[34;1m0[0m[0m] : [0m[1mnode[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[1mBEGIN[0m[0m[0m
[0m[0m[0m
[0m[1min[0m[0m = FCT(clock, some_key); -- senseless code[0m[0m[0m
[0m[0m[0m
[0m[0m-- comment[0m[0m[0m
[0m[0mblubb = (blobb[] == [0m[32mH"3ff"[0m[0m); [0m[0m[0m
[0m[0m[0m
[0m[1mIF[0m[0m [0m[1min[0m[0m [0m[1mTHEN[0m[0m asdf[0m[0m[0m
[0m[0m-- folde me[0m[0m[0m
[0m[1mEND IF[0m[0m; [0m[0m[0m
[0m[0m[0m
[0m[1mTABLE[0m[0m[0m
[0m[0m-- missing code[0m[0m[0m
[0m[1mEND TABLE[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[1mEND[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m-- hex, octal, binary[0m[0m[0m
[0m[32mH"0"[0m[0m => [0m[34;1mB"1000000"[0m[0m;[0m[0m[0m
[0m[0mO[0m[31m"01234567"[0m[0m;[0mtesting standalone
ok 24
testing ANSI C89
ok 25
ok 26
ok 27 # skip
ok 28 # skip
testing ASP
ok 29
ok 30
testing as kate plugin
ok 31
[1m<%[0m[0m [0m[37;1;44m'kate: hl ASP;[0m[37;1;44m[0m
[0m[32mif[0m[0m [0m[33;1;42m([0m[0m [0m[33;1;44minstr[0m[33;1;42m([0m[33;1;44mrequest[0m[0m.[0m[33;1;44mservervariables[0m[33;1;42m([0m[31m"PATH_INFO"[0m[33;1;42m),[0m[31m"login.asp"[0m[33;1;42m)[0m[0m <= [0m[34;1m0[0m[0m and [0m[33;1;44minstr[0m[33;1;42m([0m[33;1;44mrequest[0m[0m.[0m[33;1;44mservervariables[0m[33;1;42m([0m[31m"PATH_INFO"[0m[33;1;42m),[0m[31m"inset"[0m[33;1;42m)[0m[0m <= [0m[34;1m0[0m[0m and [0m[33;1;44minstr[0m[33;1;42m([0m[33;1;44mrequest[0m[0m.[0m[33;1;44mservervariables[0m[33;1;42m([0m[31m"PATH_INFO"[0m[33;1;42m),[0m[31m"Data"[0m[33;1;42m)[0m[0m <= [0m[34;1m0[0m[0m and [0m[33;1;44minstr[0m[33;1;42m([0m[33;1;44mrequest[0m[0m.[0m[33;1;44mservervariables[0m[33;1;42m([0m[31m"PATH_INFO"[0m[33;1;42m),[0m[31m"dropDown"[0m[33;1;42m)[0m[0m <= [0m[34;1m0[0m[0m [0m[33;1;42m)[0m[0m [0m[32mthen[0m[0m[0m
[0m[0m [0m[33;1;44mSession[0m[33;1;42m([0m[31m"originalRequestedPage"[0m[33;1;42m)[0m[0m = [0m[33;1;44mRequest[0m[0m.[0m[33;1;44mServerVariables[0m[33;1;42m([0m[31m"PATH_INFO"[0m[33;1;42m)[0m[0m [0m[1m&[0m[0m [0m[31m"?"[0m[0m [0m[1m&[0m[0m [0m[33;1;44mRequest[0m[0m.[0m[33;1;44mServerVariables[0m[33;1;42m([0m[31m"QUERY_STRING"[0m[33;1;42m)[0m[0m[0m
[0m[32mend if[0m[0m[0m
[0m[0m[0m
[0m[1mfunction[0m[0m countRecords[0m[33;1;42m([0m[0m rsToCount [0m[33;1;42m)[0m[0m[0m
[0m[0m numRecs = [0m[34;1m0[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[32mdo[0m[0m [0m[32muntil[0m[0m rsToCount.[0m[1meof[0m[0m[0m
[0m[0m numRecs = numRecs + [0m[34;1m1[0m[0m[0m
[0m[0m[0m
[0m[0m rsToCount.[0m[1mmovenext[0m[0m[0m
[0m[0m [0m[32mloop[0m[0m[0m
[0m[0m[0m
[0m[0m rsToCount.[0m[1mclose[0m[0m [0m[37;1;44m' just to make sure nobody[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m' tries to operate on the recordset,[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m' which has already reached eof[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m countRecords = numRecs[0m[0m[0m
[0m[1mend function[0m[0m[0m
[0m[0m[0m
[0m[1mfunction[0m[0m unique[0m[33;1;42m([0m[0m rs[0m[33;1;42m,[0m[0m sortColumn [0m[33;1;42m)[0m[0m [0m[37;1;44m' return unique instances of text in sortColumn within rs[0m[37;1;44m[0m
[0m[0m [0m[1mdim[0m[0m sorted[0m[33;1;42m()[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mredim[0m[0m sorted[0m[33;1;42m([0m[34;1m1[0m[33;1;42m)[0m[0m[0m
[0m[0m [0m[1mdim[0m[0m i[0m[0m[0m
[0m[0m i = [0m[34;1m0[0m[0m[0m
[0m[0m [0m[32mdo[0m[0m [0m[32muntil[0m[0m rs.[0m[1meof[0m[0m[0m
[0m[0m [0m[32mif[0m[0m [0m[33;1;42m([0m[1mnot[0m[0m find[0m[33;1;42m([0m[0m rs[0m[33;1;42m([0m[0msortColumn[0m[33;1;42m),[0m[0m sorted [0m[33;1;42m))[0m[0m [0m[32mthen[0m[0m[0m
[0m[0m [0m[1mredim[0m[0m [0m[1mpreserve[0m[0m sorted[0m[33;1;42m([0m[0mi+[0m[34;1m1[0m[33;1;42m)[0m[0m[0m
[0m[0m sorted[0m[33;1;42m([0m[0mi[0m[33;1;42m)[0m[0m = rs[0m[33;1;42m([0m[0msortColumn[0m[33;1;42m)[0m[0m[0m
[0m[0m i = i + [0m[34;1m1[0m[0m[0m
[0m[0m [0m[32mend if[0m[0m[0m
[0m[0m rs.[0m[1mMoveNext[0m[0m[0m
[0m[0m [0m[32mloop[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mredim[0m[0m [0m[1mpreserve[0m[0m sorted[0m[33;1;42m([0m[0mi-[0m[34;1m1[0m[33;1;42m)[0m[0m [0m[37;1;44m' the function will add an extra blank entry to the array[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m rs.[0m[1mClose[0m[0m [0m[37;1;44m' close the recordset - we'll be using it again - and reset i - well be using it again, too[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m unique = sorted[0m[0m[0m
[0m[1mend function[0m[0m[0m
[0m[0m[0m
[0m[1msub[0m[0m testSub[0m[33;1;42m([0m[0m variable [0m[33;1;42m)[0m[0m [0m[37;1;44m' do nothing impressive...[0m[37;1;44m[0m
[0m[0m [0m[1mdim[0m[0m newVar[0m[0m[0m
[0m[0m[0m
[0m[0m newVar = variable[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[32mif[0m[0m [0m[33;1;42m([0m[0m variable = [0m[1mtrue[0m[0m [0m[33;1;42m)[0m[0m[0m
[0m[0m [0m[33;1;44mresponse[0m[0m.[0m[33;1;44mend[0m[0m[0m
[0m[0m [0m[32melse[0m[0m [0m[1m%>[0m[0m[0m
[0m[0m[0m
[0m[31;1m
[0m[0mWe are writing text.[0m[31;1m
[0m[0m[0m
[0m[31;1m[0m[1m<%[0m[0m=newVar[0m[1m%>[0m[31;1m
[0m[0m[0m
[0m[31;1m[0m[0mWe have written text and outputted a variable.[0m[31;1m
[0m[0m[0m
[0m[0m[0m
[0m[1m<%[0m[0m [0m[32mend if[0m[0m[0m
[0m[1mend sub[0m[0m [0m[1m%>[0mtesting standalone
ok 32
testing AVR Assembler
ok 33
ok 34
testing as kate plugin
ok 35
[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Decodeur de trame pulsadis EJP et préavis EJP[0m[37;1;44m[0m
[0m[37;1;44m; (pic 12C508 ou 509)[0m[37;1;44m[0m
[0m[37;1;44m; Alain Gibaud, 20-2-2001[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; ========================================================[0m[37;1;44m[0m
[0m[0m list r=hex,p=p12c508[0m[0m[0m
[0m[0m[0m
[0m[0m include [0m[31m"p12c508.inc"[0m[0m[0m
[0m[0mGP0 equ [0m[34;1m0[0m[0m[0m
[0m[0mGP1 equ [0m[34;1m1[0m[0m[0m
[0m[0mGP2 equ [0m[34;1m2[0m[0m[0m
[0m[0mGP3 equ [0m[34;1m3[0m[0m[0m
[0m[0mGP4 equ [0m[34;1m4[0m[0m[0m
[0m[0mGP5 equ [0m[34;1m5[0m[0m[0m
[0m[0mTO equ [0m[34;1m4[0m[0m [0m[0m[0m
[0m[37;1;44m; masques pour acceder aux pattes[0m[37;1;44m[0m
[0m[0mGP0bit equ [0m[34;1m1[0m[0m << GP0[0m[0m[0m
[0m[0mGP1bit equ [0m[34;1m1[0m[0m << GP1[0m[0m[0m
[0m[0mGP2bit equ [0m[34;1m1[0m[0m << GP2[0m[0m[0m
[0m[0mGP3bit equ [0m[34;1m1[0m[0m << GP3[0m[0m[0m
[0m[0mGP4bit equ [0m[34;1m1[0m[0m << GP4 [0m[0m[0m
[0m[0mGP5bit equ [0m[34;1m1[0m[0m << GP5 [0m[0m[0m
[0m[37;1;44m; ========================================================[0m[37;1;44m[0m
[0m[37;1;44m; affectation des pattes[0m[37;1;44m[0m
[0m[37;1;44m; [0m[37;1;44m[0m
[0m[0m[0m
[0m[37;1;44m; sorties: (actives niv bas)[0m[37;1;44m[0m
[0m[0mNORMAL equ GP0 [0m[37;1;44m; LED verte[0m[37;1;44m[0m
[0m[0mALERTE equ GP1 [0m[37;1;44m; LED orange[0m[37;1;44m[0m
[0m[0mEJP equ GP2 [0m[37;1;44m; LED rouge[0m[37;1;44m[0m
[0m[37;1;44m; entrees:( actives niv bas)[0m[37;1;44m[0m
[0m[0mSIGNAL equ GP3 [0m[37;1;44m; avec pull-up, en provenance filtre 175 Hz[0m[37;1;44m[0m
[0m[37;1;44m; GP4-5 sont utilisees par l'horloge[0m[37;1;44m[0m
[0m[37;1;44m; ========================================================[0m[37;1;44m[0m
[0m[37;1;44m; variables:[0m[37;1;44m[0m
[0m[0mTICKS equ [0m[32m0x7[0m[0m [0m[37;1;44m; compteur de ticks (1 tick = 2/100 s)[0m[37;1;44m[0m
[0m[0mSLOT equ [0m[32m0x8[0m[0m [0m[37;1;44m; numero slot dans la trame [0m[37;1;44m[0m
[0m[37;1;44m; =======================================================[0m[37;1;44m[0m
[0m[37;1;44m; Macros pour alleger le code ...[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Teste si min <= (var) < max[0m[37;1;44m[0m
[0m[37;1;44m; branche en "in" si oui, en "out" si non.[0m[37;1;44m[0m
[0m[37;1;44m; [0m[37;1;44m[0m
[0m[0mLminmax macro var,min,max,outm,[0m[1min[0m[0m,outp[0m[0m[0m
[0m[0m movlw min[0m[0m[0m
[0m[0m subwf var,W [0m[37;1;44m; (var) - min[0m[37;1;44m[0m
[0m[0m btfss STATUS,C[0m[0m[0m
[0m[0m goto outm [0m[37;1;44m; C=0 => resutat < 0 => var < min[0m[37;1;44m[0m
[0m[0m [0m[0m[0m
[0m[0m movlw max[0m[0m[0m
[0m[0m subwf var,W [0m[37;1;44m; (var) - max[0m[37;1;44m[0m
[0m[0m btfss STATUS,C[0m[0m[0m
[0m[0m goto [0m[1min[0m[0m[0m
[0m[0m goto outp [0m[37;1;44m; C=1 => resutat >= 0 => var >= min[0m[37;1;44m[0m
[0m[0m endm[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Attend que le bit "bit" du registre "reg" soit a 1[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mWaitbit1 macro reg,bit[0m[0m[0m
[0m[0m local Wait1[0m[0m[0m
[0m[0mWait1 btfss reg,bit[0m[0m[0m
[0m[0m goto Wait1[0m[0m[0m
[0m[0m endm[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Attend que le bit "bit" du registre "reg" soit a 0[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mWaitbit0 macro reg,bit[0m[0m[0m
[0m[0m local Wait0[0m[0m[0m
[0m[0mWait0 btfsc reg,bit[0m[0m[0m
[0m[0m goto Wait0[0m[0m[0m
[0m[0m endm[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Branche en "label" si (reg) == num, sinon continue[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mBeq macro label,reg,num[0m[0m[0m
[0m[0m movlw num[0m[0m[0m
[0m[0m subwf reg,W[0m[0m[0m
[0m[0m btfsc STATUS,Z [0m[0m[0m
[0m[0m goto label[0m[0m[0m
[0m[0m endm[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Branche en "label" si (reg) != num, sinon continue[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mBne macro label,reg,num[0m[0m[0m
[0m[0m movlw num[0m[0m[0m
[0m[0m subwf reg,W[0m[0m[0m
[0m[0m btfss STATUS,Z [0m[0m[0m
[0m[0m goto label[0m[0m[0m
[0m[0m endm [0m[0m[0m
[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Branche en "label" si (reg) < num, sinon continue[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mBlt macro label,reg,num[0m[0m[0m
[0m[0m movlw num[0m[0m[0m
[0m[0m subwf reg,W [0m[37;1;44m; reg - W[0m[37;1;44m[0m
[0m[0m btfss STATUS,C [0m[0m[0m
[0m[0m goto label [0m[37;1;44m; C=0 => reg - W < 0[0m[37;1;44m[0m
[0m[0m endm[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; Branche en "label" si (reg) >= num, sinon continue[0m[37;1;44m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[0mBge macro label,reg,num[0m[0m[0m
[0m[0m movlw num[0m[0m[0m
[0m[0m subwf reg,W [0m[37;1;44m; reg - W[0m[37;1;44m[0m
[0m[0m btfsc STATUS,C [0m[0m[0m
[0m[0m goto label [0m[37;1;44m; C=1 => reg - W >= 0[0m[37;1;44m[0m
[0m[0m endm[0m[0m[0m
[0m[37;1;44m; ========================================================[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; CONFIG word ( en FFF )[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bits 11:5 don't care[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bit 4 : MCLRE enabled = 1, tied to Vdd = 0[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bit 3 : code protection off = 1, on = 0[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bit 2 : no watchdog = 0, watchdog = 1[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bit 1-0 ; EXTRC = 00, INTRC = 10, XT = 01, LP = 00[0m[37;1;44m[0m
[0m[0m [0m[0m[0m
[0m[0m __CONFIG B[0m[35m'0[0m[0m00000001101[0m[35m' [0m[37;1;44m; (horloge a quartz, avec watchdog) [0m[37;1;44m[0m
[0m[37;1;44m; ======================================================== [0m[37;1;44m[0m
[0m[0m org [0m[34;1m0[0m[0m[0m
[0m[0m goto debut[0m[0m[0m
[0m[37;1;44m;=========================================================[0m[37;1;44m[0m
[0m[37;1;44m; sous-programmes[0m[37;1;44m[0m
[0m[37;1;44m; ========================================================[0m[37;1;44m[0m
[0m[37;1;44m; regarde si le timer est passe a 0[0m[37;1;44m[0m
[0m[37;1;44m; si oui, le compteur de ticks est incremente[0m[37;1;44m[0m
[0m[37;1;44m; et on attend le repassage a 1 [0m[37;1;44m[0m
[0m[37;1;44m; Cette routine DOIT etre appelee tout les 2/100 s ou plus souvent[0m[37;1;44m[0m
[0m[0mtickcount[0m[0m[0m
[0m[0m clrwdt[0m[0m[0m
[0m[0m movf TMR0,W[0m[0m[0m
[0m[0m btfss STATUS,Z[0m[0m[0m
[0m[0m retlw [0m[34;1m0[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m incf TICKS,F[0m[0m[0m
[0m[37;1;44m; attendre que le timer ait depasse 0[0m[37;1;44m[0m
[0m[0mwaitnoZ[0m[0m[0m
[0m[0m clrwdt[0m[0m[0m
[0m[0m movf TMR0,W[0m[0m[0m
[0m[0m btfsc STATUS,Z[0m[0m[0m
[0m[0m goto waitnoZ[0m[0m[0m
[0m[0m retlw [0m[34;1m0[0m[0m[0m
[0m[37;1;44m; [0m[37;1;44m[0m
[0m[37;1;44m; les 2 fct qui suivent maintiennent, le compteur de ticks[0m[37;1;44m[0m
[0m[37;1;44m; (en plus de scruter une patte)[0m[37;1;44m[0m
[0m[37;1;44m; attente d'un signal (logique negative)[0m[37;1;44m[0m
[0m[0mwaitsignal[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m tickcount[0m[0m[0m
[0m[0m btfsc GPIO,SIGNAL[0m[0m[0m
[0m[0m goto waitsignal[0m[0m[0m
[0m[0m retlw [0m[34;1m0[0m[0m[0m
[0m[37;1;44m; attente fin signal[0m[37;1;44m[0m
[0m[0mwaitnosignal[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m tickcount[0m[0m[0m
[0m[0m btfss GPIO,SIGNAL[0m[0m[0m
[0m[0m goto waitnosignal[0m[0m[0m
[0m[0m retlw [0m[34;1m0[0m[0m[0m
[0m[37;1;44m; remet a zero le compteur de ticks et le timer et le watchdog[0m[37;1;44m[0m
[0m[0mclearticks[0m[0m[0m
[0m[0m clrwdt[0m[0m[0m
[0m[0m clrw[0m[0m[0m
[0m[0m movwf TICKS[0m[0m[0m
[0m[0m movwf TMR0[0m[0m[0m
[0m[0m [0m[37;1;44m; pour eviter un timeout immediat, le timer est charge [0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; a 1, et le 1er tick ne fait que 0.019922s au lieu de 0.2s[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; (ce n'est pas grave dans la mesure ou de toute facon,[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; le temps de traitement entre les different declenchements [0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; de chrono n'est pas nul)[0m[37;1;44m[0m
[0m[0m incf TMR0,F [0m[0m[0m
[0m[0m retlw [0m[34;1m0[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m;[0m[37;1;44m[0m
[0m[37;1;44m; ==========================================================[0m[37;1;44m[0m
[0m[37;1;44m; [0m[37;1;44m[0m
[0m[0mdebut [0m[0m[0m
[0m[0m [0m[37;1;44m; reset par Watchdog ?[0m[37;1;44m[0m
[0m[0m btfsc STATUS,TO[0m[0m[0m
[0m[0m goto notimeout[0m[0m[0m
[0m[0m [0m[37;1;44m; TO == 0 : OUI[0m[37;1;44m[0m
[0m[0m clrwdt[0m[0m[0m
[0m[0m goto [0m[32m0x1FF[0m[0m [0m[37;1;44m; recalibrage, 0x3FF sur 12C509[0m[37;1;44m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[37;1;44m; TO == 1 : NON[0m[37;1;44m[0m
[0m[0mnotimeout [0m[0m[0m
[0m[0m movwf OSCCAL [0m[37;1;44m; recalibrer l'horloge[0m[37;1;44m[0m
[0m[0m clrf TMR0 [0m[37;1;44m; RAZ timer[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; GPWU=1 : disable wake up on pin change[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; GPPU=0 : enable pullups (a voir avec le hard ..)[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; T0CS=0 : timer connected to F/4[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; T0SE=x : dont't care[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; PSA=0 : prescaler assigned to timer[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; PS2-0= : timer prescaler 111= 1/256, 101 = 1/64, 011 = 1/16[0m[37;1;44m[0m
[0m[0m movlw B[0m[35m'1[0m[0m0010101[0m[35m' [0m[0m[0m
[0m[0m option [0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[37;1;44m; config des pattes[0m[37;1;44m[0m
[0m[0m movlw B[0m[35m'0[0m[0m0001000[0m[35m' [0m[37;1;44m; GP0-2 en sortie, GP3 entree[0m[37;1;44m[0m
[0m[0m tris GPIO[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[37;1;44m; se mettre en mode normal[0m[37;1;44m[0m
[0m[0m bcf GPIO,NORMAL[0m[0m[0m
[0m[0m bsf GPIO,ALERTE[0m[0m[0m
[0m[0m bsf GPIO,EJP[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0mattendre_trame[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m waitnosignal [0m[37;1;44m; attendre ...[0m[37;1;44m[0m
[0m[0m [0m[1mcall[0m[0m waitsignal [0m[37;1;44m; ... front montant [0m[37;1;44m[0m
[0m[0m [0m[1mcall[0m[0m clearticks[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m waitnosignal[0m[0m[0m
[0m[0m [0m[37;1;44m; 45 tk = 0.9s, 55 tk = 1.1s[0m[37;1;44m[0m
[0m[0m Lminmax TICKS,D[0m[35m'4[0m[0m5[0m[35m',[0m[0mD[0m[35m'5[0m[0m5[0m[35m',[0m[0mattendre_trame,pulse1s,attendre_trame[0m[0m[0m
[0m[0mpulse1s[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m; attendre 162,5 tk = 2.75 s + 0.5 s = 3.25 s[0m[37;1;44m[0m
[0m[0m [0m[1mcall[0m[0m clearticks[0m[0m[0m
[0m[0magain325[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m tickcount[0m[0m[0m
[0m[0m Lminmax TICKS,D[0m[35m'1[0m[0m62[0m[35m',[0m[0mD[0m[35m'1[0m[0m62[0m[35m',[0m[0magain325,again325,end325[0m[0m[0m
[0m[0mend325[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m; on est maintenant au centre du 1er bit[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; il suffit d'echantillonner toutes les 2.5s[0m[37;1;44m[0m
[0m[0m movlw [0m[34;1m1[0m[0m[0m
[0m[0m movwf SLOT[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0msample btfsc GPIO,SIGNAL [0m[37;1;44m; logique negative[0m[37;1;44m[0m
[0m[0m goto slot40[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[37;1;44m; signal detecte !![0m[37;1;44m[0m
[0m[0m Bne not5,SLOT,D[0m[35m'5' [0m[37;1;44m; slot == 5 ?[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; oui - 5 = passage en alerte[0m[37;1;44m[0m
[0m[0m bsf GPIO,NORMAL [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bsf GPIO,EJP [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bcf GPIO,ALERTE [0m[37;1;44m; bit a 0 = LED allumee[0m[37;1;44m[0m
[0m[0m goto nextslot[0m[0m[0m
[0m[0mnot5[0m[0m[0m
[0m[0m Bne not15,SLOT,D[0m[35m'1[0m[0m5[0m[35m' [0m[37;1;44m; slot == 15 ?[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; oui[0m[37;1;44m[0m
[0m[0m btfsc GPIO,ALERTE [0m[37;1;44m; deja en alerte ?[0m[37;1;44m[0m
[0m[0m goto endejp[0m[0m[0m
[0m[0m [0m[37;1;44m; oui - 5 & 15 = debut ejp [0m[37;1;44m[0m
[0m[0m bsf GPIO,NORMAL [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bsf GPIO,ALERTE [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bcf GPIO,EJP [0m[37;1;44m; bit a 0 = LED allumee[0m[37;1;44m[0m
[0m[0m goto nextslot[0m[0m[0m
[0m[0mendejp[0m[0m[0m
[0m[0m [0m[37;1;44m; non - 15 seul = fin ejp[0m[37;1;44m[0m
[0m[0m bsf GPIO,EJP [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bsf GPIO,ALERTE [0m[37;1;44m; bit a 1 = LED eteinte[0m[37;1;44m[0m
[0m[0m bcf GPIO,NORMAL [0m[37;1;44m; bit a 0 = LED allumee[0m[37;1;44m[0m
[0m[0m goto nextslot[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0mnot15[0m[0m[0m
[0m[0mslot40[0m[0m[0m
[0m[0m [0m[37;1;44m; slot 40 ?[0m[37;1;44m[0m
[0m[0m Bne nextslot,SLOT,D[0m[35m'4[0m[0m0[0m[35m' [0m[37;1;44m; slot == 40 ?[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; et attendre une nouvelle trame[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m goto attendre_trame[0m[0m[0m
[0m[0mnextslot[0m[0m[0m
[0m[0m incf SLOT,F[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0m [0m[37;1;44m; si le signal est a 1, on en profite pour se resynchroniser[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; sur son front descendant, au cas ou l'emetteur ne soit pas[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m; bien conforme au protocole.[0m[37;1;44m[0m
[0m[0m btfss GPIO,SIGNAL[0m[0m[0m
[0m[0m goto resynchro[0m[0m[0m
[0m[0m [0m[37;1;44m; attendre 125 ticks = 2.5s[0m[37;1;44m[0m
[0m[0m [0m[1mcall[0m[0m clearticks[0m[0m[0m
[0m[0magain125[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m tickcount[0m[0m[0m
[0m[0m Lminmax TICKS,D[0m[35m'1[0m[0m25[0m[35m',[0m[0mD[0m[35m'1[0m[0m26[0m[35m',[0m[0magain125,sample,again125[0m[0m[0m
[0m[0m [0m[0m[0m
[0m[0mresynchro [0m[0m[0m
[0m[0m [0m[1mcall[0m[0m waitnosignal[0m[0m[0m
[0m[0m [0m[1mcall[0m[0m clearticks[0m[0m[0m
[0m[0magain100 [0m[37;1;44m; attente 2 s (100 ticks) [0m[37;1;44m[0m
[0m[0m [0m[1mcall[0m[0m tickcount[0m[0m[0m
[0m[0m Lminmax TICKS,D[0m[35m'1[0m[0m00[0m[35m',[0m[0mD[0m[35m'1[0m[0m01[0m[35m',[0m[0magain100,sample,again100[0m[0m[0m
[0m[0m[0m
[0m[0m end[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0mtesting standalone
ok 36
testing AWK
ok 37
ok 38
testing as kate plugin
ok 39
[37;1;44m#!/usr[0m[37;1;44m[0m
[0m[37;1;44m# AWK hl test[0m[37;1;44m[0m
[0m[0m[0m
[0m[37;1;44m# BEGIN and END are also matched as patterns[0m[37;1;44m[0m
[0m[31mBEGIN[0m[0m [0m[1m{[0m[0m[0m
[0m[0m p = [0m[34;1m0[0m[0m;[0m[0m[0m
[0m[1m}[0m[0m[0m
[0m[0m[0m
[0m[31m/some pattern/[0m[0m [0m[1m{[0m[0m[0m
[0m[0m p++;[0m[0m[0m
[0m[1m}[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# / inside brackets is not considered end of expression[0m[37;1;44m[0m
[0m[37;1;44m# a loose division operator (/) is not mismatched as a pattern.[0m[37;1;44m[0m
[0m[33;1;42m$1[0m[0m =~ [0m[31m/[^abc/]def/[0m[0m || b == [0m[34;1m3[0m[0m [0m[31m/ 5 {[0m
[0m
gsub ( FILENAME );[0m
[0m
}[0m
[0m
# TODO and FIXME also work in comments in Awk.[0m
[0m
# Also backslash in patterns works.[0m
/[0m[0m\[0m[31m/usr\/[0m[0mbin\[0m[31m/awk/[0m[0m [0m[1m{[0m[0m [0m[1mprint[0m[0m [0m[31m"This is me"[0m[0m; [0m[1m}[0m[0m[0m
[0m[0m[0m
[0m[31mEND[0m[0m [0m[1m{[0m[0m[0m
[0m[0m [0m[1mprint[0m[0m p;[0m[0m[0m
[0m[1m}[0m[0m[0m
[0mtesting standalone
ok 40
testing Ada
ok 41
ok 42
ok 43 # skip
ok 44 # skip
testing Alerts
ok 45
ok 46
ok 47 # skip
ok 48 # skip
testing Asm6502
ok 49
ok 50
ok 51 # skip
ok 52 # skip
testing Bash
ok 53
ok 54
testing as kate plugin
ok 55
[37;1;44m#! /bin/sh[0m[37;1;44m[0m
[0m[37;1;44m# This is a test script for the Katepart Bash Syntax Highlighting by[0m[37;1;44m[0m
[0m[37;1;44m# Wilbert Berendsen. This is not runnable !!![0m[37;1;44m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# The highlighting recognizes basic types of input, and has a few special cases that[0m[37;1;44m[0m
[0m[37;1;44m# are all in FindCommands. The main objective is to create really proper nesting of[0m[37;1;44m[0m
[0m[37;1;44m# (multiline) strings, variables, expressions, etc.[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# ============== Tests: ===============[0m[37;1;44m[0m
[0m[0m[0m
[0m[37;1;44m# basic types:[0m[37;1;44m[0m
[0m[31m'single quoted string'[0m[0m[0m
[0m[31m"double quoted string"[0m[0m[0m
[0m[31m$'string with esc[0m[34m\a[0m[31mpes[0m[34m\x0d[0m[31min it'[0m[0m[0m
[0m[31m$"string meant to be translated"[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# comments:[0m[37;1;44m[0m
[0m[37;1;44m# this is a comment[0m[37;1;44m[0m
[0m[37;1;44m#this too[0m[37;1;44m[0m
[0m[35;44mecho[0m[0m this is#nt a comment[0m[0m[0m
[0m[31;1mdcop[0m[0m kate EditInterface#1 [0m[37;1;44m#this is[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# brace expansion[0m[37;1;44m[0m
[0m[31;1mmv[0m[0m my_file.[0m[34m{JPG,jpg}[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# special characters are escaped:[0m[37;1;44m[0m
[0m[35;44mecho[0m[0m [0m[34m\([0m[0moutput[0m[34m\)[0m[0m [0m[34m\&\|[0m[0m [0m[34m\>[0m[0m [0m[34m\<[0m[0m [0m[34m\"[0m[0m [0m[34m\'[0m[0m [0m[34m\*[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# variable substitution:[0m[37;1;44m[0m
[0m[33;1;42m$filename[0m[0m.ext[0m[0m[0m
[0m[33;1;42m$filename_ext[0m[0m[0m
[0m[33;1;42m${filename}[0m[0m_ext[0m[0m[0m
[0m[0mtext[0m[33;1;42m${array[$subscript]}[0m[0m.text[0m[0m[0m
[0m[0mtext[0m[33;1;42m${array[[0m[31m"string"[0m[33;1;42m]}[0m[0m.text[0m[0m[0m
[0m[33;1;42m${!prefix*}[0m[0m[0m
[0m[33;1;42m${!redir}[0m[0m[0m
[0m[0mshort are [0m[33;1;42m$_[0m[0m, [0m[33;1;42m$$[0m[0m, [0m[33;1;42m$?[0m[0m, [0m[33;1;42m${@}[0m[0m, etc.[0m[0m[0m
[0m[33;1;42m${variable//a/d}[0m[0m[0m
[0m[33;1;42m${1:-default}[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# expression subst:[0m[37;1;44m[0m
[0m[33;1;42m$(([0m[0m cd << ed + 1 [0m[33;1;42m))[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# command subst:[0m[37;1;44m[0m
[0m[33;1;42m$([0m[31;1mls[0m[0m -l[0m[33;1;42m)[0m[0m[0m
[0m[35;44mecho[0m[0m [0m[1m`[0m[0mcat myfile[0m[1m`[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# file subst:[0m[37;1;44m[0m
[0m[32m$(<[0m[33;1;42m$filename[0m[32m)[0m[0m[0m
[0m[32m$(<[0m[0m/path/to/myfile[0m[32m)[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# process subst:[0m[37;1;44m[0m
[0m[31;1msort[0m[0m [0m[32m<([0m[0mshow_labels[0m[32m)[0m[0m [0m[1m|[0m[0m [0m[31;1msed[0m[0m [0m[31m's/a/bg'[0m[0m [0m[32m>[0m[0m my_file.txt [0m[32m2>&1[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# All substitutions also work in strings:[0m[37;1;44m[0m
[0m[31m"subst [0m[33;1;42m${in}[0m[31mside string"[0m[0m [0m[31m'not $inside this ofcourse'[0m[0m[0m
[0m[31m"The result is [0m[33;1;42m$(([0m[0m [0m[33;1;42m$a[0m[0m + [0m[33;1;42m$b[0m[0m [0m[33;1;42m))[0m[31m. Thanks!"[0m[0m[0m
[0m[31m"Your homedir contains [0m[1m`[0m[0mls [0m[33;1;42m$HOME[0m[0m [0m[1m|[0m[0mwc -l[0m[1m`[0m[31m files."[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Escapes in strings:[0m[37;1;44m[0m
[0m[33;1;42mp=[0m[31m"String [0m[34m\`[0m[31m with [0m[34m\$[0m[31m escapes [0m[34m\"[0m[31m "[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# keywords are black, builtins dark purple and common commands lighter purple[0m[37;1;44m[0m
[0m[1mset[0m[0m[0m
[0m[35;44mexit[0m[0m[0m
[0m[31;1mlogin[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Other colorings:[0m[37;1;44m[0m
[0m[35merror()[0m[0m [0m[1m{[0m[0m[0m
[0m[0m [0m[31;1mcat[0m[0m /usr/bin/lesspipe.sh[0m[0m[0m
[0m[0m runscript [0m[32m>[0m[1m&[0m[0m redir.bak[0m[0m[0m
[0m[0m [0m[35;44mexec[0m[0m [0m[32m3>&4[0m[0m[0m
[0m[1m}[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# do - done make code blocks[0m[37;1;44m[0m
[0m[1mwhile[0m[35;44m [[0m[0m [0m[33;1;42m$p[0m[0m -lt [0m[33;1;42m$q[0m[35;44m ][0m[0m [0m[0m[0m
[0m[1mdo[0m[0m[0m
[0m[0m [0m[31;1mchown[0m[0m 0644 [0m[33;1;42m$file[0m[0m.[0m[33;1;42m$p[0m[0m[0m
[0m[1mdone[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# braces as well[0m[37;1;44m[0m
[0m[0mrun_prog [0m[1m|[0m[0m [0m[31;1msort[0m[0m -u [0m[1m|[0m[0m[0m
[0m[1m{[0m[0m[0m
[0m[0m [0m[35;44mecho[0m[0m Header[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m [0m[35;44mread[0m[0m [0m[33;1;42ma[0m[0m [0m[33;1;42mb[0m[0m [0m[33;1;42md[0m[0m[0m
[0m[0m [0m[1mdo[0m[0m[0m
[0m[0m [0m[35;44mecho[0m[0m [0m[33;1;42m$a[0m[0m/[0m[33;1;42m$b[0m[0m/[0m[33;1;42m$c[0m[0m[0m
[0m[0m [0m[1mdone[0m[0m[0m
[0m[0m [0m[35;44mecho[0m[0m Footer[0m[0m[0m
[0m[1m}[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Any constructions can be nested:[0m[37;1;44m[0m
[0m[35;44mecho[0m[0m [0m[31m"A long string with [0m[33;1;42m$([0m[0m[0m
[0m[0m [0m[1mif[0m[35;44m [[0m[0m [0m[33;1;42m$count[0m[0m -gt 100[0m[35;44m ][0m[0m ; [0m[1mthen[0m[0m[0m
[0m[0m [0m[35;44mecho[0m[0m [0m[31m"much"[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m [0m[35;44mecho[0m[0m [0m[31m"not much"[0m[0m[0m
[0m[0m [0m[1mfi[0m[0m [0m[33;1;42m)[0m[31m substitutions."[0m[0m ;[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Even the case construct is correctly folded:[0m[37;1;44m[0m
[0m[35;44mtest[0m[0m -f blaat [0m[1m&&[0m[0m[0m
[0m[1m([0m[0m do_something[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[33;1;42m$p[0m[1m in[0m[0m[0m
[0m[0m *bak[0m[1m)[0m[0m[0m
[0m[0m do_bak [0m[33;1;42m$p[0m[0m[0m
[0m[0m [0m[1m;;[0m[0m[0m
[0m[0m *[0m[1m)[0m[0m[0m
[0m[0m dont_bak [0m[33;1;42m$p[0m[0m[0m
[0m[0m [0m[1m;;[0m[0m[0m
[0m[0m [0m[1mesac[0m[0m[0m
[0m[1m)[0m[0m [0m[37;1;44m# despite the extra parentheses in the case construction.[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# variable assignments:[0m[37;1;44m[0m
[0m[33;1;42mDIR=[0m[0m/dev[0m[0m[0m
[0m[33;1;42mp=[0m[1m`[0m[0mls[0m[1m`[0m[0m[0m
[0m[33;1;42mLC_ALL=[0m[31m"nl"[0m[0m [0m[31;1mdcop[0m[0m [0m[31m'kate*'[0m[0m[0m
[0m[33;1;42m_VAR=[0m[0mval[0m[0m[0m
[0m[33;1;42mARR=([0m[0mthis is an array[0m[33;1;42m)[0m[0m[0m
[0m[33;1;42mARR2=([this]=[0m[0mtoo [0m[33;1;42m[and]=[0m[31m"this too"[0m[33;1;42m)[0m[0m[0m
[0m[33;1;42musage=[0m[31m"[0m[33;1;42m$0[0m[31m -- version [0m[33;1;42m$VERSION[0m[31m[0m
[0m[31mMultiple lines of output[0m[31m[0m
[0m[31mcan be possible."[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Some commands expect variable names, these are colored correctly:[0m[37;1;44m[0m
[0m[35;44mexport[0m[0m [0m[33;1;42mPATH=[0m[0m/my/bin:[0m[33;1;42m$PATH[0m[0m [0m[33;1;42mBLAAT[0m[0m[0m
[0m[35;44mexport[0m[0m [0m[33;1;42mA[0m[0m [0m[33;1;42mB[0m[0m [0m[33;1;42mD[0m[0m[0m
[0m[35;44mlocal[0m[0m [0m[33;1;42mp=[0m[0m3 [0m[33;1;42mx[0m[0m [0m[33;1;42my=[0m[31m'\'[0m[0m[0m
[0m[33;1;42mread[0m[0m [0m[33;1;42mx[0m[0m [0m[33;1;42my[0m[0m [0m[33;1;42mz[0m[0m [0m[32m<<<[0m[0m [0m[33;1;42m$hallo[0m[0m[0m
[0m[35;44munset[0m[0m [0m[33;1;42mB[0m[0m[0m
[0m[35;44mdeclare[0m[0m -a [0m[33;1;42mVAR1[0m[0m [0m[33;1;42mVAR2[0m[0m [0m[1m&&[0m[0m [0m[35;44mexit[0m[0m[0m
[0m[35;44mdeclare[0m[0m [0m[33;1;42mless[0m[0m [0m[33;1;42ma[0m[0m [0m[1m&&[0m[0m b [0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# options are recoqnized:[0m[37;1;44m[0m
[0m[31;1mzip[0m[0m -f=file.[0m[31;1mzip[0m[0m[0m
[0m[1m.[0m[0m/configure --destdir=/usr[0m[0m[0m
[0m[31;1mmake[0m[0m [0m[33;1;42mdestdir=[0m[0m/usr/[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# [[ and [ correctly need spaces to be regarded as structure,[0m[37;1;44m[0m
[0m[37;1;44m# otherwise they are patterns (currently treated as normal text)[0m[37;1;44m[0m
[0m[1mif[0m[35;44m [[0m[0m [0m[31m"[0m[33;1;42m$p[0m[31m"[0m[0m == [0m[31m""[0m[35;44m ][0m[0m ; [0m[1mthen[0m[0m[0m
[0m[0m [0m[31;1mls[0m[0m /usr/bin/[a-z]*[0m[0m[0m
[0m[1melif [[[0m[0m [0m[33;1;42m$p[0m[0m == 0[0m[1m ]][0m[0m ; [0m[1mthen[0m[0m[0m
[0m[0m [0m[31;1mls[0m[0m /usr/share/[0m[33;1;42m$p[0m[0m[0m
[0m[1mfi[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Fixed:[0m[37;1;44m[0m
[0m[31;1mls[0m[0m a[ab]* [0m[37;1;44m# dont try to interprete as assignment with subscript (fixed)[0m[37;1;44m[0m
[0m[0ma[ab][0m[0m[0m
[0m[33;1;42ma[ab]=[0m[0msa[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m# Here documents are difficult to catch:[0m[37;1;44m[0m
[0m[31;1mcat[0m[0m [0m[32m>[0m[0m myfile [0m[32m<< __EOF__[0m[0m[0m
[0m[0mYou're right, this is definitely no bash code[0m[0m[0m
[0m[0mBut ls more [0m[33;1;42m$parameters[0m[0m should be expanded.[0m[0m[0m
[0m[0m__EOF__[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[0m# quoted:[0m[0m[0m
[0m[0mcat << "EOF"[0m[0m[0m
[0m[0mYou're right, this is definitely no bash code[0m[0m[0m
[0m[0mBut ls more [0m[33;1;42m$parameters[0m[0m should be expanded.[0m[0m[0m
[0m[0mEOF[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[0m# indented:[0m[0m[0m
[0m[0mif true[0m[0m[0m
[0m[0mthen[0m[0m[0m
[0m[0m cat <<- EOF[0m[0m[0m
[0m[0m Indented text with a [0m[33;1;42m$dollar[0m[0m or [0m[34m\$[0m[0mtwo[0m[0m[0m
[0m[0m EOF[0m[0m[0m
[0m[0melif [ -d [0m[33;1;42m$file[0m[0m ]; then[0m[0m[0m
[0m[0m cat <<- "EOF"[0m[0m[0m
[0m[0m Indented text without a [0m[33;1;42m$dollar[0m[0m[0m
[0m[0m EOF[0m[0m[0m
[0m[0mfi[0m[0m[0m
[0m[0m[0m
[0m[0m# the highlighting uses EOF and _{0,2}E[ON][A-Z_]+, quoted or not, indented or not.[0m[0m[0m
[0m[0m# text is correctly substituted and escaped if the delimiter is not quoted.[0m[0m[0m
[0mtesting standalone
ok 56
testing BibTeX
ok 57
ok 58
testing as kate plugin
ok 59
[0m% test file for kate's bibtex syntax highlighting[0m[0m[0m
[0m[0m[0m
[0m[1m@Article[0m[0m{[0m[33;1;42martikel[0m[0m,[0m[0m[0m
[0m[34mauthor =[0m[0m {Me},[0m[0m[0m
[0m[34mtitle =[0m[0m {Something},[0m[0m[0m
[0m[34mjournal =[0m[0m {JHEP},[0m[0m[0m
[0m[34myear =[0m[0m {2003},[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[1m@Book[0m[33;1;42m[0m
[0m[33;1;42m[0m
[0m[0m{[0m[33;1;42m[0m
[0m[33;1;42m[0m
[0m[33;1;42mboek[0m[0m,[0m[0m[0m
[0m[34mauthor =[0m[0m [0m[31m"Someone"[0m[0m,[0m[0m[0m
[0m[34mtitle =[0m[0m [0m[31m"Something"[0m[0m,[0m[0m[0m
[0m[34mjournal =[0m[0m [0m[31m"Nucl. Phys. B"[0m[0m,[0m[0m[0m
[0m[34myear =[0m[0m [0m[31m"2003"[0m[0m,[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mThis is ignored by BibTeX, no special highlighting[0m[0m[0m
[0m[0m%This is not a comment, it is just ignored (thanks to the people in #latex) :)[0m[0m[0m
[0m[0m[0m
[0m[33;1;44m@string[0m[0m{test=[0m[31m"lange string die ik niet vaak opnieuw wil intikken"[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[1m@PhdThesis[0m[0m{[0m[33;1;42mthesis[0m[0m,[0m[0m[0m
[0m[34mauthor =[0m[0m {Me},[0m[0m[0m
[0m[34mtitle =[0m[0m {Dunno},[0m[0m[0m
[0m[34mschool =[0m[0m {ITFA},[0m[0m[0m
[0m[34myear =[0m[0m {2005, hopefully},[0m[0m[0m
[0m[0m}[0m[0m[0m
[0mtesting standalone
ok 60
testing C
ok 61
ok 62
ok 63 # skip
ok 64 # skip
testing C#
ok 65
ok 66
ok 67 # skip
ok 68 # skip
testing C++
ok 69
ok 70
testing as kate plugin
ok 71
[37;1;44m/* This file is part of the KDE libraries[0m[37;1;44m[0m
[0m[37;1;44m Copyright (C) 2003, 2004 Anders Lund [0m[37;1;44m[0m
[0m[37;1;44m Copyright (C) 2003 Hamish Rodda [0m[37;1;44m[0m
[0m[37;1;44m Copyright (C) 2001,2002 Joseph Wenninger [0m[37;1;44m[0m
[0m[37;1;44m Copyright (C) 2001 Christoph Cullmann [0m[37;1;44m[0m
[0m[37;1;44m Copyright (C) 1999 Jochen Wilhelmy [0m[37;1;44m[0m
[0m[37;1;44m[0m
[0m[37;1;44m This library is free software; you can redistribute it and/or[0m[37;1;44m[0m
[0m[37;1;44m modify it under the terms of the GNU Library General Public[0m[37;1;44m[0m
[0m[37;1;44m License version 2 as published by the Free Software Foundation.[0m[37;1;44m[0m
[0m[37;1;44m[0m
[0m[37;1;44m This library is distributed in the hope that it will be useful,[0m[37;1;44m[0m
[0m[37;1;44m but WITHOUT ANY WARRANTY; without even the implied warranty of[0m[37;1;44m[0m
[0m[37;1;44m MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU[0m[37;1;44m[0m
[0m[37;1;44m Library General Public License for more details.[0m[37;1;44m[0m
[0m[37;1;44m[0m
[0m[37;1;44m You should have received a copy of the GNU Library General Public License[0m[37;1;44m[0m
[0m[37;1;44m along with this library; see the file COPYING.LIB. If not, write to[0m[37;1;44m[0m
[0m[37;1;44m the Free Software Foundation, Inc., 59 Temple Place - Suite 330,[0m[37;1;44m[0m
[0m[37;1;44m Boston, MA 02111-1307, USA.[0m[37;1;44m[0m
[0m[37;1;44m*/[0m[0m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN INCLUDES[0m[30;43;1m[0m
[0m[33;1;42m#include "katehighlight.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "katehighlight.moc"[0m[33;1;42m[0m
[0m[0m[0m
[0m[33;1;42m#include "katetextline.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "katedocument.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "katesyntaxdocument.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "katerenderer.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "katefactory.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "kateschema.h"[0m[33;1;42m[0m
[0m[33;1;42m#include "kateconfig.h"[0m[33;1;42m[0m
[0m[0m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[0m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[33;1;42m#include [0m[33;1;42m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN defines[0m[30;43;1m[0m
[0m[37;1;44m// same as in kmimemagic, no need to feed more data[0m[37;1;44m[0m
[0m[33;1;42m#define KATE_HL_HOWMANY 1024[0m[33;1;42m[0m
[0m[0m[0m
[0m[37;1;44m// min. x seconds between two dynamic contexts reset[0m[37;1;44m[0m
[0m[34mstatic[0m[0m [0m[34mconst[0m[0m [0m[34mint[0m[0m KATE_DYNAMIC_CONTEXTS_RESET_DELAY = [0m[34;1m30[0m[0m * [0m[34;1m1000[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m// x is a QString. if x is "true" or "1" this expression returns "true"[0m[37;1;44m[0m
[0m[33;1;42m#define IS_TRUE(x) x.lower() == QString("true") || x.toInt() == 1[0m[33;1;42m[0m
[0m[30;43;1m//END defines[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN Prviate HL classes[0m[30;43;1m[0m
[0m[0m[0m
[0m[1minline[0m[0m [0m[34mbool[0m[0m kateInsideString ([0m[34mconst[0m[0m QString &str, QChar ch)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < str.length(); i++)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (*(str.unicode()+i) == ch)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m true;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlItem([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m ~KateHlItem();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m [0m[37;1;44m// caller must keep in mind: LEN > 0 is a must !!!!!!!!!!!!!!!!!!!!!1[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// Now, the function returns the offset detected, or 0 if no match is found.[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// bool linestart isn't needed, this is equivalent to offset == 0.[0m[37;1;44m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len) = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mbool[0m[0m lineContinue(){[0m[1mreturn[0m[0m [0m[1mfalse[0m[0m;}[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m QStringList *capturedTexts() {[0m[1mreturn[0m[0m 0;}[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m KateHlItem *clone([0m[34mconst[0m[0m QStringList *) {[0m[1mreturn[0m[0m this;}[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m [0m[34mvoid[0m[0m dynamicSubstitute(QString& str, [0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m QMemArray subItems;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m attr;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctx;[0m[0m[0m
[0m[0m [0m[34msigned[0m[0m [0m[34mchar[0m[0m region;[0m[0m[0m
[0m[0m [0m[34msigned[0m[0m [0m[34mchar[0m[0m region2;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m lookAhead;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m dynamic;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m dynamicChild;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m firstNonSpace;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m onlyConsume;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m column;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// start enable flags, nicer than the virtual methodes[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// saves function calls[0m[37;1;44m[0m
[0m[0m [0m[34mbool[0m[0m alwaysStartEnable;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m customStartEnable;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlContext[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlContext([0m[34mconst[0m[0m QString &_hlId, [0m[34mint[0m[0m attribute, [0m[34mint[0m[0m lineEndContext,[0m[34mint[0m[0m _lineBeginContext,[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m _fallthrough, [0m[34mint[0m[0m _fallthroughContext, [0m[34mbool[0m[0m _dynamic);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m ~KateHlContext();[0m[0m[0m
[0m[0m KateHlContext *clone([0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m QValueVector items;[0m[0m[0m
[0m[0m QString hlId; [0m[35;44m///< A unique highlight identifier. Used to look up correct properties.[0m[35;44m[0m
[0m[0m [0m[34mint[0m[0m attr;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctx;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m lineBeginContext;[0m[0m[0m
[0m[0m [0m[35;44m/** [0m[1m@internal[0m[35;44m anders: possible escape if no rules matches.[0m[35;44m[0m
[0m[35;44m false unless 'fallthrough="1|true"' (insensitive)[0m[35;44m[0m
[0m[35;44m if true, go to ftcxt w/o eating of string.[0m[35;44m[0m
[0m[35;44m ftctx is "fallthroughContext" in xml files, valid values are int or #pop[..][0m[35;44m[0m
[0m[35;44m see in KateHighlighting::doHighlight */[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m fallthrough;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ftctx; [0m[37;1;44m// where to go after no rules matched[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m dynamic;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m dynamicChild;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateEmbeddedHlInfo[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateEmbeddedHlInfo() {loaded=[0m[1mfalse[0m[0m;context0=[0m[34;1m-1[0m[0m;}[0m[0m[0m
[0m[0m KateEmbeddedHlInfo([0m[34mbool[0m[0m l, [0m[34mint[0m[0m ctx0) {loaded=l;context0=ctx0;}[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m loaded;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m context0;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlIncludeRule[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlIncludeRule([0m[34mint[0m[0m ctx_=0, [0m[34muint[0m[0m pos_=0, [0m[34mconst[0m[0m QString &incCtxN_=[0m[31m""[0m[0m, [0m[34mbool[0m[0m incAttrib=[0m[1mfalse[0m[0m)[0m[0m[0m
[0m[0m : ctx(ctx_)[0m[0m[0m
[0m[0m , pos( pos_)[0m[0m[0m
[0m[0m , incCtxN( incCtxN_ )[0m[0m[0m
[0m[0m , includeAttrib( incAttrib )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m incCtx=[0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[37;1;44m//KateHlIncludeRule(int ctx_, uint pos_, bool incAttrib) {ctx=ctx_;pos=pos_;incCtx=-1;incCtxN="";includeAttrib=incAttrib}[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctx;[0m[0m[0m
[0m[0m [0m[34muint[0m[0m pos;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m incCtx;[0m[0m[0m
[0m[0m QString incCtxN;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m includeAttrib;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCharDetect : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m KateHlItem *clone([0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m QChar sChar;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHl2CharDetect : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHl2CharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar ch1, QChar ch2);[0m[0m[0m
[0m[0m KateHl2CharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mconst[0m[0m QChar *ch);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m KateHlItem *clone([0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m QChar sChar1;[0m[0m[0m
[0m[0m QChar sChar2;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlStringDetect : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlStringDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mconst[0m[0m QString &, [0m[34mbool[0m[0m inSensitive=[0m[1mfalse[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m KateHlItem *clone([0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m QString str;[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m [0m[34mint[0m[0m strLen;[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m [0m[34mbool[0m[0m _inSensitive;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlRangeDetect : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlRangeDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar ch1, QChar ch2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m QChar sChar1;[0m[0m[0m
[0m[0m QChar sChar2;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlKeyword : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlKeyword([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mbool[0m[0m casesensitive, [0m[34mconst[0m[0m QString& delims);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m ~KateHlKeyword ();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mvoid[0m[0m addList([0m[34mconst[0m[0m QStringList &);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m QMemArray< QDict<[0m[34mbool[0m[0m>* > dict;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m _caseSensitive;[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m QString& deliminators;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m minLen;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m maxLen;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlInt : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlInt([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlFloat : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlFloat([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m ~KateHlFloat () {}[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCFloat : [0m[1mpublic[0m[0m KateHlFloat[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCFloat([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[34mint[0m[0m checkIntHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCOct : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCOct([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCHex : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCHex([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlLineContinue : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlLineContinue([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mbool[0m[0m endEnable(QChar c) {[0m[1mreturn[0m[0m c == '\0';}[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mbool[0m[0m lineContinue(){[0m[1mreturn[0m[0m true;}[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCStringChar : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCStringChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlCChar : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlCChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlAnyChar : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlAnyChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mconst[0m[0m QString& charList);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m QString _charList;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlRegExpr : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlRegExpr([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2 ,QString expr, [0m[34mbool[0m[0m insensitive, [0m[34mbool[0m[0m minimal);[0m[0m[0m
[0m[0m ~KateHlRegExpr() { [0m[1mdelete[0m[0m Expr; };[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len);[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m QStringList *capturedTexts();[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m KateHlItem *clone([0m[34mconst[0m[0m QStringList *args);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mprivate[0m[0m:[0m[0m[0m
[0m[0m QRegExp *Expr;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m handlesLinestart;[0m[0m[0m
[0m[0m QString _regexp;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m _insensitive;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m _minimal;[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlDetectSpaces : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlDetectSpaces ([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) {}[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m len2 = offset + len;[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((offset < len2) && text[offset].isSpace()) offset++;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[1mclass[0m[0m KateHlDetectIdentifier : [0m[1mpublic[0m[0m KateHlItem[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mpublic[0m[0m:[0m[0m[0m
[0m[0m KateHlDetectIdentifier ([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) { alwaysStartEnable = [0m[1mfalse[0m[0m; }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mvirtual[0m[0m [0m[34mint[0m[0m checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// first char should be a letter or underscore[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ( text[offset].isLetter() || text[offset] == QChar ([0m[35m'_'[0m[0m) )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// memorize length[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m len2 = offset+len;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// one char seen[0m[37;1;44m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// now loop for all other thingies[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m ([0m[0m[0m
[0m[0m (offset < len2)[0m[0m[0m
[0m[0m && (text[offset].isLetterOrNumber() || (text[offset] == QChar ([0m[35m'_'[0m[0m)))[0m[0m[0m
[0m[0m )[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m};[0m[0m[0m
[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN STATICS[0m[30;43;1m[0m
[0m[0mKateHlManager *KateHlManager::s_self = 0;[0m[0m[0m
[0m[0m[0m
[0m[34mstatic[0m[0m [0m[34mconst[0m[0m [0m[34mbool[0m[0m trueBool = true;[0m[0m[0m
[0m[34mstatic[0m[0m [0m[34mconst[0m[0m QString stdDeliminator = QString ([0m[31m" [0m[35m\t[0m[31m.():!+,-<=>%&*/;?[]^{|}~\[0m[35m\"[0m[31m);[0m[31m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN NON MEMBER FUNCTIONS[0m[30;43;1m[0m
[0m[34mstatic[0m[0m KateHlItemData::ItemStyles getDefStyleNum(QString name)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsNormal"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsNormal;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsKeyword"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsKeyword;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsDataType"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsDataType;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsDecVal"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsDecVal;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsBaseN"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsBaseN;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsFloat"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsFloat;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsChar"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsChar;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsString"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsString;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsComment"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsComment;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsOthers"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsOthers;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsAlert"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsAlert;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsFunction"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsFunction;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsRegionMarker"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsRegionMarker;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (name==[0m[31m"dsError"[0m[0m) [0m[1mreturn[0m[0m KateHlItemData::dsError;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m KateHlItemData::dsNormal;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlItem[0m[30;43;1m[0m
[0m[0mKateHlItem::KateHlItem([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : attr(attribute),[0m[0m[0m
[0m[0m ctx(context),[0m[0m[0m
[0m[0m region(regionId),[0m[0m[0m
[0m[0m region2(regionId2),[0m[0m[0m
[0m[0m lookAhead([0m[1mfalse[0m[0m),[0m[0m[0m
[0m[0m dynamic([0m[1mfalse[0m[0m),[0m[0m[0m
[0m[0m dynamicChild([0m[1mfalse[0m[0m),[0m[0m[0m
[0m[0m firstNonSpace([0m[1mfalse[0m[0m),[0m[0m[0m
[0m[0m onlyConsume([0m[1mfalse[0m[0m),[0m[0m[0m
[0m[0m column ([0m[34;1m-1[0m[0m),[0m[0m[0m
[0m[0m alwaysStartEnable (true),[0m[0m[0m
[0m[0m customStartEnable ([0m[1mfalse[0m[0m)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlItem::~KateHlItem()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010)<<"In hlItem::~KateHlItem()"<= [0m[35m'0'[0m[0m && c <= [0m[35m'9'[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (([0m[34muint[0m[0m)(c - [0m[35m'0'[0m[0m) < args->size())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m str.replace(i, [0m[34;1m2[0m[0m, (*args)[c - [0m[35m'0'[0m[0m]);[0m[0m[0m
[0m[0m i += ((*args)[c - [0m[35m'0'[0m[0m]).length() - [0m[34;1m1[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m str.replace(i, [0m[34;1m2[0m[0m, [0m[31m""[0m[0m);[0m[0m[0m
[0m[0m --i;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCharDetect[0m[30;43;1m[0m
[0m[0mKateHlCharDetect::KateHlCharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar c)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m , sChar(c)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCharDetect::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m [0m[37;1;44m/*len*/[0m[0m)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset] == sChar)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset + [0m[34;1m1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlItem *KateHlCharDetect::clone([0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mchar[0m[0m c = sChar.latin1();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (c < [0m[35m'0'[0m[0m || c > [0m[35m'9'[0m[0m || ([0m[34munsigned[0m[0m)(c - [0m[35m'0'[0m[0m) >= args->size())[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m this;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlCharDetect *ret = [0m[1mnew[0m[0m KateHlCharDetect(attr, ctx, region, region2, (*args)[c - [0m[35m'0'[0m[0m][0]);[0m[0m[0m
[0m[0m ret->dynamicChild = true;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ret;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHl2CharDetect[0m[30;43;1m[0m
[0m[0mKateHl2CharDetect::KateHl2CharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar ch1, QChar ch2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m , sChar1 (ch1)[0m[0m[0m
[0m[0m , sChar2 (ch2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHl2CharDetect::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len >= [0m[34;1m2[0m[0m) && text[offset++] == sChar1 && text[offset++] == sChar2)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlItem *KateHl2CharDetect::clone([0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mchar[0m[0m c1 = sChar1.latin1();[0m[0m[0m
[0m[0m [0m[34mchar[0m[0m c2 = sChar2.latin1();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (c1 < [0m[35m'0'[0m[0m || c1 > [0m[35m'9'[0m[0m || ([0m[34munsigned[0m[0m)(c1 - [0m[35m'0'[0m[0m) >= args->size())[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m this;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (c2 < [0m[35m'0'[0m[0m || c2 > [0m[35m'9'[0m[0m || ([0m[34munsigned[0m[0m)(c2 - [0m[35m'0'[0m[0m) >= args->size())[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m this;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHl2CharDetect *ret = [0m[1mnew[0m[0m KateHl2CharDetect(attr, ctx, region, region2, (*args)[c1 - [0m[35m'0'[0m[0m][0], (*args)[c2 - [0m[35m'0'[0m[0m][0]);[0m[0m[0m
[0m[0m ret->dynamicChild = true;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ret;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlStringDetect[0m[30;43;1m[0m
[0m[0mKateHlStringDetect::KateHlStringDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2,[0m[34mconst[0m[0m QString &s, [0m[34mbool[0m[0m inSensitive)[0m[0m[0m
[0m[0m : KateHlItem(attribute, context,regionId,regionId2)[0m[0m[0m
[0m[0m , str(inSensitive ? s.upper() : s)[0m[0m[0m
[0m[0m , strLen (str.length())[0m[0m[0m
[0m[0m , _inSensitive(inSensitive)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlStringDetect::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (len < strLen)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (_inSensitive)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34mint[0m[0m i=0; i < strLen; i++)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset++].upper() != str[i])[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34mint[0m[0m i=0; i < strLen; i++)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset++] != str[i])[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlItem *KateHlStringDetect::clone([0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m QString newstr = str;[0m[0m[0m
[0m[0m[0m
[0m[0m dynamicSubstitute(newstr, args);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (newstr == str)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m this;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlStringDetect *ret = [0m[1mnew[0m[0m KateHlStringDetect(attr, ctx, region, region2, newstr, _inSensitive);[0m[0m[0m
[0m[0m ret->dynamicChild = true;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ret;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlRangeDetect[0m[30;43;1m[0m
[0m[0mKateHlRangeDetect::KateHlRangeDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QChar ch1, QChar ch2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m , sChar1 (ch1)[0m[0m[0m
[0m[0m , sChar2 (ch2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlRangeDetect::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset] == sChar1)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mdo[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (len < [0m[34;1m1[0m[0m) [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m (text[offset] != sChar2);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset + [0m[34;1m1[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlKeyword[0m[30;43;1m[0m
[0m[0mKateHlKeyword::KateHlKeyword ([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mbool[0m[0m casesensitive, [0m[34mconst[0m[0m QString& delims)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m , _caseSensitive(casesensitive)[0m[0m[0m
[0m[0m , deliminators(delims)[0m[0m[0m
[0m[0m , minLen (0xFFFFFF)[0m[0m[0m
[0m[0m , maxLen (0)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m customStartEnable = true;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlKeyword::~KateHlKeyword ()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < dict.size(); ++i)[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m dict[i];[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHlKeyword::addList([0m[34mconst[0m[0m QStringList& list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m([0m[34muint[0m[0m i=0; i < list.count(); ++i)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m len = list[i].length();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (minLen > len)[0m[0m[0m
[0m[0m minLen = len;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (maxLen < len)[0m[0m[0m
[0m[0m maxLen = len;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (([0m[34muint[0m[0m)len >= dict.size())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34muint[0m[0m oldSize = dict.size();[0m[0m[0m
[0m[0m dict.resize (len+[0m[34;1m1[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m m=oldSize; m < dict.size(); ++m)[0m[0m[0m
[0m[0m dict[m] = 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!dict[len])[0m[0m[0m
[0m[0m dict[len] = [0m[1mnew[0m[0m QDict<[0m[34mbool[0m[0m> ([0m[34;1m17[0m[0m, _caseSensitive);[0m[0m[0m
[0m[0m[0m
[0m[0m dict[len]->insert(list[i], &trueBool);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlKeyword::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = offset;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m wordLen = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > wordLen) && !kateInsideString (deliminators, text[offset2]))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m wordLen++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (wordLen > maxLen) [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (wordLen < minLen) [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( dict[wordLen] && dict[wordLen]->find(QConstString(text.unicode() + offset, wordLen).string()) )[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlInt[0m[30;43;1m[0m
[0m[0mKateHlInt::KateHlInt([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlInt::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && text[offset2].isDigit())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 > offset)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (len > 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < subItems.size(); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( (offset = subItems[i]->checkHgl(text, offset2, len)) )[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlFloat[0m[30;43;1m[0m
[0m[0mKateHlFloat::KateHlFloat([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context, regionId,regionId2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlFloat::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m b = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m p = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && text[offset].isDigit())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m b = true;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && (p = (text[offset] == [0m[35m'.'[0m[0m)))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && text[offset].isDigit())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m b = true;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!b)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && ((text[offset] & 0xdf) == [0m[35m'E'[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!p)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (len > 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < subItems.size(); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = subItems[i]->checkHgl(text, offset, len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && (text[offset] == [0m[35m'-'[0m[0m || text[offset] ==[0m[35m'+'[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m b = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && text[offset].isDigit())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m b = true;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (b)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (len > 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < subItems.size(); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = subItems[i]->checkHgl(text, offset, len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCOct[0m[30;43;1m[0m
[0m[0mKateHlCOct::KateHlCOct([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCOct::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset] == [0m[35m'0'[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && (text[offset2] >= [0m[35m'0'[0m[0m && text[offset2] <= [0m[35m'7'[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 > offset)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && ((text[offset2] & 0xdf) == [0m[35m'L'[0m[0m || (text[offset] & 0xdf) == [0m[35m'U'[0m[0m ))[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCHex[0m[30;43;1m[0m
[0m[0mKateHlCHex::KateHlCHex([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCHex::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > [0m[34;1m1[0m[0m) && (text[offset++] == [0m[35m'0'[0m[0m) && ((text[offset++] & 0xdf) == [0m[35m'X'[0m[0m ))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m len -= [0m[34;1m2[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && (text[offset2].isDigit() || ((text[offset2] & 0xdf) >= [0m[35m'A'[0m[0m && (text[offset2] & 0xdf) <= [0m[35m'F'[0m[0m)))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 > offset)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && ((text[offset2] & 0xdf) == [0m[35m'L'[0m[0m || (text[offset2] & 0xdf) == [0m[35m'U'[0m[0m ))[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCFloat[0m[30;43;1m[0m
[0m[0mKateHlCFloat::KateHlCFloat([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlFloat(attribute,context,regionId,regionId2)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m alwaysStartEnable = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCFloat::checkIntHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ((len > 0) && text[offset].isDigit()) {[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 > offset)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCFloat::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = KateHlFloat::checkHgl(text, offset, len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((text[offset2] & 0xdf) == [0m[35m'F'[0m[0m )[0m[0m[0m
[0m[0m offset2++;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2 = checkIntHgl(text, offset, len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 && ((text[offset2] & 0xdf) == [0m[35m'F'[0m[0m ))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ++offset2;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlAnyChar[0m[30;43;1m[0m
[0m[0mKateHlAnyChar::KateHlAnyChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mconst[0m[0m QString& charList)[0m[0m[0m
[0m[0m : KateHlItem(attribute, context,regionId,regionId2)[0m[0m[0m
[0m[0m , _charList(charList)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlAnyChar::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (kateInsideString (_charList, text[offset]))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ++offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlRegExpr[0m[30;43;1m[0m
[0m[0mKateHlRegExpr::KateHlRegExpr( [0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, QString regexp, [0m[34mbool[0m[0m insensitive, [0m[34mbool[0m[0m minimal)[0m[0m[0m
[0m[0m : KateHlItem(attribute, context, regionId,regionId2)[0m[0m[0m
[0m[0m , handlesLinestart (regexp.startsWith([0m[31m"^"[0m[0m))[0m[0m[0m
[0m[0m , _regexp(regexp)[0m[0m[0m
[0m[0m , _insensitive(insensitive)[0m[0m[0m
[0m[0m , _minimal(minimal)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!handlesLinestart)[0m[0m[0m
[0m[0m regexp.prepend([0m[31m"^"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m Expr = [0m[1mnew[0m[0m QRegExp(regexp, !_insensitive);[0m[0m[0m
[0m[0m Expr->setMinimal(_minimal);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlRegExpr::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m [0m[37;1;44m/*len*/[0m[0m)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset && handlesLinestart)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = Expr->search( text, offset, QRegExp::CaretAtOffset );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 == [0m[34;1m-1[0m[0m) [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m (offset + Expr->matchedLength());[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQStringList *KateHlRegExpr::capturedTexts()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[1mnew[0m[0m QStringList(Expr->capturedTexts());[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlItem *KateHlRegExpr::clone([0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m QString regexp = _regexp;[0m[0m[0m
[0m[0m QStringList escArgs = *args;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (QStringList::Iterator it = escArgs.begin(); it != escArgs.end(); ++it)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m (*it).replace(QRegExp([0m[31m"(\\W)"[0m[0m), [0m[31m"\\\[0m[35m\1[0m[31m"[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m dynamicSubstitute(regexp, &escArgs);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (regexp == _regexp)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m this;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// kdDebug (13010) << "clone regexp: " << regexp << endl;[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m KateHlRegExpr *ret = [0m[1mnew[0m[0m KateHlRegExpr(attr, ctx, region, region2, regexp, _insensitive, _minimal);[0m[0m[0m
[0m[0m ret->dynamicChild = true;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ret;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlLineContinue[0m[30;43;1m[0m
[0m[0mKateHlLineContinue::KateHlLineContinue([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) {[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlLineContinue::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len == [0m[34;1m1[0m[0m) && (text[offset] == '\\'))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ++offset;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCStringChar[0m[30;43;1m[0m
[0m[0mKateHlCStringChar::KateHlCStringChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) {[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m// checks for C escaped chars \n and escaped hex/octal chars[0m[37;1;44m[0m
[0m[34mstatic[0m[0m [0m[34mint[0m[0m checkEscapedChar([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m& len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m i;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (text[offset] == '\\' && len > [0m[34;1m1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mswitch[0m[0m(text[offset])[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'a'[0m[0m: [0m[37;1;44m// checks for control chars[0m[37;1;44m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'b'[0m[0m: [0m[37;1;44m// we want to fall through[0m[37;1;44m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'e'[0m[0m:[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'f'[0m[0m:[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'n'[0m[0m:[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'r'[0m[0m:[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m't'[0m[0m:[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'v'[0m[0m:[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'\'[0m[0m':[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m '\[0m[31m"':[0m[31m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'?'[0m[0m : [0m[37;1;44m// added ? ANSI C classifies this as an escaped char[0m[37;1;44m[0m
[0m[0m [0m[1mcase[0m[0m '\\':[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'x'[0m[0m: [0m[37;1;44m// if it's like \xff[0m[37;1;44m[0m
[0m[0m offset++; [0m[37;1;44m// eat the x[0m[37;1;44m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m [0m[37;1;44m// these for loops can probably be[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// replaced with something else but[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// for right now they work[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// check for hexdigits[0m[37;1;44m[0m
[0m[0m [0m[1mfor[0m[0m (i = 0; (len > 0) && (i < [0m[34;1m2[0m[0m) && (text[offset] >= [0m[35m'0'[0m[0m && text[offset] <= [0m[35m'9'[0m[0m || (text[offset] & 0xdf) >= [0m[35m'A'[0m[0m && (text[offset] & 0xdf) <= [0m[35m'F'[0m[0m); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (i == 0)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0; [0m[37;1;44m// takes care of case '\x'[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'0'[0m[0m: [0m[1mcase[0m[0m [0m[35m'1'[0m[0m: [0m[1mcase[0m[0m [0m[35m'2'[0m[0m: [0m[1mcase[0m[0m [0m[35m'3'[0m[0m :[0m[0m[0m
[0m[0m [0m[1mcase[0m[0m [0m[35m'4'[0m[0m: [0m[1mcase[0m[0m [0m[35m'5'[0m[0m: [0m[1mcase[0m[0m [0m[35m'6'[0m[0m: [0m[1mcase[0m[0m [0m[35m'7'[0m[0m :[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (i = 0; (len > 0) && (i < [0m[34;1m3[0m[0m) && (text[offset] >=[0m[35m'0'[0m[0m&& text[offset] <=[0m[35m'7'[0m[0m); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mdefault[0m[0m:[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCStringChar::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m checkEscapedChar(text, offset, len);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlCChar[0m[30;43;1m[0m
[0m[0mKateHlCChar::KateHlCChar([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) {[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlCChar::checkHgl([0m[34mconst[0m[0m QString& text, [0m[34mint[0m[0m offset, [0m[34mint[0m[0m len)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > [0m[34;1m1[0m[0m) && (text[offset] == [0m[35m'\'[0m[0m') && (text[offset+[0m[34;1m1[0m[0m] != [0m[35m'\'[0m[0m'))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m oldl;[0m[0m[0m
[0m[0m oldl = len;[0m[0m[0m
[0m[0m[0m
[0m[0m len--;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = checkEscapedChar(text, offset + [0m[34;1m1[0m[0m, len);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!offset2)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (oldl > [0m[34;1m2[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m offset2 = offset + [0m[34;1m2[0m[0m;[0m[0m[0m
[0m[0m len = oldl - [0m[34;1m2[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((len > 0) && (text[offset2] == [0m[35m'\'[0m[0m'))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ++offset2;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHl2CharDetect[0m[30;43;1m[0m
[0m[0mKateHl2CharDetect::KateHl2CharDetect([0m[34mint[0m[0m attribute, [0m[34mint[0m[0m context, [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId,[0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2, [0m[34mconst[0m[0m QChar *s)[0m[0m[0m
[0m[0m : KateHlItem(attribute,context,regionId,regionId2) {[0m[0m[0m
[0m[0m sChar1 = s[0];[0m[0m[0m
[0m[0m sChar2 = s[[0m[34;1m1[0m[0m];[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[30;43;1m//END KateHl2CharDetect[0m[30;43;1m[0m
[0m[0m[0m
[0m[0mKateHlItemData::KateHlItemData([0m[34mconst[0m[0m QString name, [0m[34mint[0m[0m defStyleNum)[0m[0m[0m
[0m[0m : name(name), defStyleNum(defStyleNum) {[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlData::KateHlData([0m[34mconst[0m[0m QString &wildcards, [0m[34mconst[0m[0m QString &mimetypes, [0m[34mconst[0m[0m QString &identifier, [0m[34mint[0m[0m priority)[0m[0m[0m
[0m[0m : wildcards(wildcards), mimetypes(mimetypes), identifier(identifier), priority(priority)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlContext[0m[30;43;1m[0m
[0m[0mKateHlContext::KateHlContext ([0m[34mconst[0m[0m QString &_hlId, [0m[34mint[0m[0m attribute, [0m[34mint[0m[0m lineEndContext, [0m[34mint[0m[0m _lineBeginContext, [0m[34mbool[0m[0m _fallthrough, [0m[34mint[0m[0m _fallthroughContext, [0m[34mbool[0m[0m _dynamic)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m hlId = _hlId;[0m[0m[0m
[0m[0m attr = attribute;[0m[0m[0m
[0m[0m ctx = lineEndContext;[0m[0m[0m
[0m[0m lineBeginContext = _lineBeginContext;[0m[0m[0m
[0m[0m fallthrough = _fallthrough;[0m[0m[0m
[0m[0m ftctx = _fallthroughContext;[0m[0m[0m
[0m[0m dynamic = _dynamic;[0m[0m[0m
[0m[0m dynamicChild = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlContext *KateHlContext::clone([0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KateHlContext *ret = [0m[1mnew[0m[0m KateHlContext(hlId, attr, ctx, lineBeginContext, fallthrough, ftctx, [0m[1mfalse[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m n=0; n < items.size(); ++n)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateHlItem *item = items[n];[0m[0m[0m
[0m[0m KateHlItem *i = (item->dynamic ? item->clone(args) : item);[0m[0m[0m
[0m[0m ret->items.append(i);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m ret->dynamicChild = true;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ret;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlContext::~KateHlContext()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (dynamicChild)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m n=0; n < items.size(); ++n)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (items[n]->dynamicChild)[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m items[n];[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHighlighting[0m[30;43;1m[0m
[0m[0mKateHighlighting::KateHighlighting([0m[34mconst[0m[0m KateSyntaxModeListItem *def) : refCount(0)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m m_attributeArrays.setAutoDelete (true);[0m[0m[0m
[0m[0m[0m
[0m[0m errorsAndWarnings = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m building=[0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m noHl = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m m_foldingIndentationSensitive = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m folding=[0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m internalIDList.setAutoDelete(true);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (def == 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m noHl = true;[0m[0m[0m
[0m[0m iName = [0m[31m"None"[0m[0m; [0m[37;1;44m// not translated internal name (for config and more)[0m[37;1;44m[0m
[0m[0m iNameTranslated = i18n([0m[31m"None"[0m[0m); [0m[37;1;44m// user visible name[0m[37;1;44m[0m
[0m[0m iSection = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m m_priority = 0;[0m[0m[0m
[0m[0m iHidden = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m m_additionalData.insert( [0m[31m"none"[0m[0m, [0m[1mnew[0m[0m HighlightPropertyBag );[0m[0m[0m
[0m[0m m_additionalData[[0m[31m"none"[0m[0m]->deliminator = stdDeliminator;[0m[0m[0m
[0m[0m m_additionalData[[0m[31m"none"[0m[0m]->wordWrapDeliminator = stdDeliminator;[0m[0m[0m
[0m[0m m_hlIndex[0] = [0m[31m"none"[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m iName = def->name;[0m[0m[0m
[0m[0m iNameTranslated = def->nameTranslated;[0m[0m[0m
[0m[0m iSection = def->section;[0m[0m[0m
[0m[0m iHidden = def->hidden;[0m[0m[0m
[0m[0m iWildcards = def->extension;[0m[0m[0m
[0m[0m iMimetypes = def->mimetype;[0m[0m[0m
[0m[0m identifier = def->identifier;[0m[0m[0m
[0m[0m iVersion=def->version;[0m[0m[0m
[0m[0m iAuthor=def->author;[0m[0m[0m
[0m[0m iLicense=def->license;[0m[0m[0m
[0m[0m m_priority=def->priority.toInt();[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m deliminator = stdDeliminator;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHighlighting::~KateHighlighting()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < m_contexts.size(); ++i)[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m m_contexts[i];[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::generateContextStack([0m[34mint[0m[0m *ctxNum, [0m[34mint[0m[0m ctx, QMemArray<[0m[34mshort[0m[0m>* ctxs, [0m[34mint[0m[0m *prevLine)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010)<= 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m (*ctxNum) = ctx;[0m[0m[0m
[0m[0m[0m
[0m[0m ctxs->resize (ctxs->size()[0m[34;1m+1[0m[0m, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m (*ctxs)[ctxs->size()[0m[34;1m-1[0m[0m]=(*ctxNum);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ctx == [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m (*ctxNum)=( (ctxs->isEmpty() ) ? 0 : (*ctxs)[ctxs->size()[0m[34;1m-1[0m[0m]);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m size = ctxs->size() + ctx + [0m[34;1m1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (size > 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m ctxs->resize (size, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m (*ctxNum)=(*ctxs)[size-[0m[34;1m1[0m[0m];[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m ctxs->resize (0, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m (*ctxNum)=0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m ctx = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((*prevLine) >= ([0m[34mint[0m[0m)(ctxs->size()[0m[34;1m-1[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m *prevLine=ctxs->size()[0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( ctxs->isEmpty() )[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlContext *c = contextNum((*ctxs)[ctxs->size()[0m[34;1m-1[0m[0m]);[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (c && (c->ctx != [0m[34;1m-1[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010)<<"PrevLine > size()-1 and ctx!=-1)"<ctx;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Creates a new dynamic context or reuse an old one if it has already been created.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mint[0m[0m KateHighlighting::makeDynamicContext(KateHlContext *model, [0m[34mconst[0m[0m QStringList *args)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m QPair key(model, args->front());[0m[0m[0m
[0m[0m [0m[34mshort[0m[0m value;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (dynamicCtxs.contains(key))[0m[0m[0m
[0m[0m value = dynamicCtxs[key];[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m) << [0m[31m"new stuff: "[0m[0m << startctx << endl;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlContext *newctx = model->clone(args);[0m[0m[0m
[0m[0m[0m
[0m[0m m_contexts.push_back (newctx);[0m[0m[0m
[0m[0m[0m
[0m[0m value = startctx++;[0m[0m[0m
[0m[0m dynamicCtxs[key] = value;[0m[0m[0m
[0m[0m KateHlManager::self()->incDynamicCtxs();[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// kdDebug(13010) << "Dynamic context: using context #" << value << " (for model " << model << " with args " << *args << ")" << endl;[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m value;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Drop all dynamic contexts. Shall be called with extreme care, and shall be immediatly[0m[35;44m[0m
[0m[35;44m * followed by a full HL invalidation.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::dropDynamicContexts()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=base_startctx; i < m_contexts.size(); ++i)[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m m_contexts[i];[0m[0m[0m
[0m[0m[0m
[0m[0m m_contexts.resize (base_startctx);[0m[0m[0m
[0m[0m[0m
[0m[0m dynamicCtxs.clear();[0m[0m[0m
[0m[0m startctx = base_startctx;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Parse the text and fill in the context array and folding list array[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mprevLine [0m[35;44mThe previous line, the context array is picked up from that if present.[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m t[0m[32mex[0m[35;44mt[0m[32mLine [0m[35;44mThe text line to parse[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mfoldinglis[0m[35;44mt [0m[32mwill [0m[35;44mbe filled[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mc[0m[35;44mt[0m[32mxChanged [0m[35;44mwill be set to reflect if the context changed[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::doHighlight ( KateTextLine *prevLine,[0m[0m[0m
[0m[0m KateTextLine *textLine,[0m[0m[0m
[0m[0m QMemArray<[0m[34muint[0m[0m>* foldingList,[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m *ctxChanged )[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!textLine)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (noHl)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (textLine->length() > 0)[0m[0m[0m
[0m[0m memset (textLine->attributes(), 0, textLine->length());[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// duplicate the ctx stack, only once ![0m[37;1;44m[0m
[0m[0m QMemArray<[0m[34mshort[0m[0m> ctx;[0m[0m[0m
[0m[0m ctx.duplicate (prevLine->ctxArray());[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctxNum = 0;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m previousLine = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m KateHlContext *context;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ctx.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// If the stack is empty, we assume to be in Context 0 (Normal)[0m[37;1;44m[0m
[0m[0m context = contextNum(ctxNum);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// There does an old context stack exist -> find the context at the line start[0m[37;1;44m[0m
[0m[0m ctxNum = ctx[ctx.size()[0m[34;1m-1[0m[0m]; [0m[37;1;44m//context ID of the last character in the previous line[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010) << "\t\tctxNum = " << ctxNum << " contextList[ctxNum] = " << contextList[ctxNum] << endl; // ellis[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//if (lineContinue) kdDebug(13010)<hlLineContinue())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m prevLine--;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m generateContextStack(&ctxNum, context->ctx, &ctx, &previousLine); [0m[37;1;44m//get stack ID to use[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!(context = contextNum(ctxNum)))[0m[0m[0m
[0m[0m context = contextNum(0);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010)<<"test1-2-1-text4"<string();[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m [0m[34mint[0m[0m len = textLine->length();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// calc at which char the first char occurs, set it to lenght of line if never[0m[37;1;44m[0m
[0m[0m [0m[34mconst[0m[0m [0m[34mint[0m[0m firstChar = textLine->firstChar();[0m[0m[0m
[0m[0m [0m[34mconst[0m[0m [0m[34mint[0m[0m startNonSpace = (firstChar == [0m[34;1m-1[0m[0m) ? len : firstChar;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// last found item[0m[37;1;44m[0m
[0m[0m KateHlItem *item = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// loop over the line, offset gives current offset[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m offset = 0;[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m (offset < len)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m anItemMatched = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m standardStartEnableDetermined = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m customStartEnableDetermined = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34muint[0m[0m index = 0;[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (item = context->items.empty() ? 0 : context->items[0]; item; item = (++index < context->items.size()) ? context->items[index] : 0 )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// does we only match if we are firstNonSpace?[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (item->firstNonSpace && (offset > startNonSpace))[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// have we a column specified? if yes, only match at this column[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ((item->column != [0m[34;1m-1[0m[0m) && (item->column != offset))[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!item->alwaysStartEnable)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (item->customStartEnable)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (customStartEnableDetermined || kateInsideString (m_additionalData[context->hlId]->deliminator, lastChar))[0m[0m[0m
[0m[0m customStartEnableDetermined = true;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (standardStartEnableDetermined || kateInsideString (stdDeliminator, lastChar))[0m[0m[0m
[0m[0m standardStartEnableDetermined = true;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m offset2 = item->checkHgl(text, offset, len-offset);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 <= offset)[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (item->region2)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// kdDebug(13010)<region2)<isEmpty() && ((item->region2 < 0) && (*foldingList)[foldingList->size()[0m[34;1m-2[0m[0m] == -item->region2 ) )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m foldingList->resize (foldingList->size()[0m[34;1m-2[0m[0m, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m foldingList->resize (foldingList->size()[0m[34;1m+2[0m[0m, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-2[0m[0m] = ([0m[34muint[0m[0m)item->region2;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (item->region2<0) [0m[37;1;44m//check not really needed yet[0m[37;1;44m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-1[0m[0m] = offset2;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-1[0m[0m] = offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (item->region)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// kdDebug(13010)<region)<isEmpty() && ((item->region < 0) && (*foldingList)[foldingList->size()-1] == -item->region ) )[0m[37;1;44m[0m
[0m[37;1;44m {[0m[37;1;44m[0m
[0m[37;1;44m foldingList->resize (foldingList->size()-1, QGArray::SpeedOptim);[0m[37;1;44m[0m
[0m[37;1;44m }[0m[37;1;44m[0m
[0m[37;1;44m else*/[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m foldingList->resize (foldingList->size()[0m[34;1m+2[0m[0m, QGArray::SpeedOptim);[0m[0m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-2[0m[0m] = item->region;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (item->region<0) [0m[37;1;44m//check not really needed yet[0m[37;1;44m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-1[0m[0m] = offset2;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m (*foldingList)[foldingList->size()[0m[34;1m-1[0m[0m] = offset;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// regenerate context stack if needed[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (item->ctx != [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m generateContextStack (&ctxNum, item->ctx, &ctx, &previousLine);[0m[0m[0m
[0m[0m context = contextNum(ctxNum);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// dynamic context: substitute the model with an 'instance'[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (context->dynamic)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QStringList *lst = item->capturedTexts();[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (lst != 0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// Replace the top of the stack and the current context[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m newctx = makeDynamicContext(context, lst);[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ctx.size() > 0)[0m[0m[0m
[0m[0m ctx[ctx.size() - [0m[34;1m1[0m[0m] = newctx;[0m[0m[0m
[0m[0m ctxNum = newctx;[0m[0m[0m
[0m[0m context = contextNum(ctxNum);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m lst;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// dominik: look ahead w/o changing offset?[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!item->lookAhead)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (offset2 > len)[0m[0m[0m
[0m[0m offset2 = len;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// even set attributes ;)[0m[37;1;44m[0m
[0m[0m memset ( textLine->attributes()+offset[0m[0m[0m
[0m[0m , item->onlyConsume ? context->attr : item->attr[0m[0m[0m
[0m[0m , len-offset);[0m[0m[0m
[0m[0m[0m
[0m[0m offset = offset2;[0m[0m[0m
[0m[0m lastChar = text[offset-[0m[34;1m1[0m[0m];[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m anItemMatched = true;[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// something matched, continue loop[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (anItemMatched)[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// nothing found: set attribute of one char[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// anders: unless this context does not want that![0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ( context->fallthrough )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// set context to context->ftctx.[0m[37;1;44m[0m
[0m[0m generateContextStack(&ctxNum, context->ftctx, &ctx, &previousLine); [0m[37;1;44m//regenerate context stack[0m[37;1;44m[0m
[0m[0m context=contextNum(ctxNum);[0m[0m[0m
[0m[0m [0m[37;1;44m//kdDebug(13010)<<"context num after fallthrough at col "<attributes() + offset) = context->attr;[0m[0m[0m
[0m[0m lastChar = text[offset];[0m[0m[0m
[0m[0m offset++;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// has the context stack changed ?[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (ctx == textLine->ctxArray())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ctxChanged)[0m[0m[0m
[0m[0m (*ctxChanged) = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ctxChanged)[0m[0m[0m
[0m[0m (*ctxChanged) = true;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// assign ctx stack ![0m[37;1;44m[0m
[0m[0m textLine->setContext(ctx);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// write hl continue flag[0m[37;1;44m[0m
[0m[0m textLine->setHlLineContinue (item && item->lineContinue());[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::loadWildcards()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName);[0m[0m[0m
[0m[0m[0m
[0m[0m QString extensionString = config->readEntry([0m[31m"Wildcards"[0m[0m, iWildcards);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (extensionSource != extensionString) {[0m[0m[0m
[0m[0m regexpExtensions.clear();[0m[0m[0m
[0m[0m plainExtensions.clear();[0m[0m[0m
[0m[0m[0m
[0m[0m extensionSource = extensionString;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QRegExp sep([0m[31m"\\s*;\\s*"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m QStringList l = QStringList::split( sep, extensionSource );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QRegExp boringExpression([0m[31m"\\*\\.[\\d\\w]+"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m( QStringList::Iterator it = l.begin(); it != l.end(); ++it )[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (boringExpression.exactMatch(*it))[0m[0m[0m
[0m[0m plainExtensions.append((*it).mid([0m[34;1m1[0m[0m));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m regexpExtensions.append(QRegExp((*it), true, true));[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQValueList& KateHighlighting::getRegexpExtensions()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m regexpExtensions;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQStringList& KateHighlighting::getPlainExtensions()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m plainExtensions;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHighlighting::getMimetypes()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m config->readEntry([0m[31m"Mimetypes"[0m[0m, iMimetypes);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHighlighting::priority()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m config->readNumEntry([0m[31m"Priority"[0m[0m, m_priority);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlData *KateHighlighting::getData()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName);[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlData *hlData = [0m[1mnew[0m[0m KateHlData([0m[0m[0m
[0m[0m config->readEntry([0m[31m"Wildcards"[0m[0m, iWildcards),[0m[0m[0m
[0m[0m config->readEntry([0m[31m"Mimetypes"[0m[0m, iMimetypes),[0m[0m[0m
[0m[0m config->readEntry([0m[31m"Identifier"[0m[0m, identifier),[0m[0m[0m
[0m[0m config->readNumEntry([0m[31m"Priority"[0m[0m, m_priority));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlData;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::setData(KateHlData *hlData)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName);[0m[0m[0m
[0m[0m[0m
[0m[0m config->writeEntry([0m[31m"Wildcards"[0m[0m,hlData->wildcards);[0m[0m[0m
[0m[0m config->writeEntry([0m[31m"Mimetypes"[0m[0m,hlData->mimetypes);[0m[0m[0m
[0m[0m config->writeEntry([0m[31m"Priority"[0m[0m,hlData->priority);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::getKateHlItemDataList ([0m[34muint[0m[0m schema, KateHlItemDataList &list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName + [0m[31m" - Schema "[0m[0m + KateFactory::self()->schemaManager()->name(schema));[0m[0m[0m
[0m[0m[0m
[0m[0m list.clear();[0m[0m[0m
[0m[0m createKateHlItemData(list);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHlItemData *p = list.first(); p != 0L; p = list.next())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QStringList s = config->readListEntry(p->name);[0m[0m[0m
[0m[0m[0m
[0m[37;1;44m// kdDebug(13010)<name<0)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m(s.count()<[0m[34;1m9[0m[0m) s<<[0m[31m""[0m[0m;[0m[0m[0m
[0m[0m p->clear();[0m[0m[0m
[0m[0m[0m
[0m[0m QString tmp=s[0]; [0m[1mif[0m[0m (!tmp.isEmpty()) p->defStyleNum=tmp.toInt();[0m[0m[0m
[0m[0m[0m
[0m[0m QRgb col;[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m1[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); p->setTextColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m2[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); p->setSelectedTextColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m3[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) p->setBold(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[4]; [0m[1mif[0m[0m (!tmp.isEmpty()) p->setItalic(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m5[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) p->setStrikeOut(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m6[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) p->setUnderline(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m7[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); p->setBGColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m8[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); p->setSelectedBGColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Saves the KateHlData attribute definitions to the config file.[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mschema [0m[35;44mThe id of the schema group to save[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mlis[0m[35;44mt [0m[32mKa[0m[35;44mt[0m[32meHlI[0m[35;44mt[0m[32memDa[0m[35;44mt[0m[32maLis[0m[35;44mt [0m[32mcon[0m[35;44mt[0m[32maining [0m[35;44mthe data to be used[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::setKateHlItemDataList([0m[34muint[0m[0m schema, KateHlItemDataList &list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Highlighting "[0m[0m + iName + [0m[31m" - Schema "[0m[0m[0m
[0m[0m + KateFactory::self()->schemaManager()->name(schema));[0m[0m[0m
[0m[0m[0m
[0m[0m QStringList settings;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHlItemData *p = list.first(); p != 0L; p = list.next())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m settings.clear();[0m[0m[0m
[0m[0m settings<defStyleNum,[0m[34;1m10[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::TextColor)?QString::number(p->textColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::SelectedTextColor)?QString::number(p->selectedTextColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::Weight)?(p->bold()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::Italic)?(p->italic()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::StrikeOut)?(p->strikeOut()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::Underline)?(p->underline()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::BGColor)?QString::number(p->bgColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(p->itemSet(KateAttribute::SelectedBGColor)?QString::number(p->selectedBGColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<[0m[31m"---"[0m[0m;[0m[0m[0m
[0m[0m config->writeEntry(p->name,settings);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Increase the usage count, and trigger initialization if needed.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::use()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (refCount == 0)[0m[0m[0m
[0m[0m init();[0m[0m[0m
[0m[0m[0m
[0m[0m refCount++;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Decrease the usage count, and trigger cleanup if needed.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::release()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m refCount--;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (refCount == 0)[0m[0m[0m
[0m[0m done();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Initialize a context for the first time.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::init()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (noHl)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m m_contexts.clear ();[0m[0m[0m
[0m[0m makeContextList();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* If the there is no document using the highlighting style free the complete[0m[35;44m[0m
[0m[35;44m * context structure.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::done()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (noHl)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m m_contexts.clear ();[0m[0m[0m
[0m[0m internalIDList.clear();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* KateHighlighting - createKateHlItemData[0m[35;44m[0m
[0m[35;44m * This function reads the itemData entries from the config file, which specifies the[0m[35;44m[0m
[0m[35;44m * default attribute styles for matched items/contexts.[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mlis[0m[35;44mt [0m[32mA [0m[35;44mreference to the internal list containing the parsed default config[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::createKateHlItemData(KateHlItemDataList &list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m// If no highlighting is selected we need only one default.[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (noHl)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m list.append([0m[1mnew[0m[0m KateHlItemData(i18n([0m[31m"Normal Text"[0m[0m), KateHlItemData::dsNormal));[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// If the internal list isn't already available read the config file[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (internalIDList.isEmpty())[0m[0m[0m
[0m[0m makeContextList();[0m[0m[0m
[0m[0m[0m
[0m[0m list=internalIDList;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Adds the styles of the currently parsed highlight to the itemdata list[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::addToKateHlItemDataList()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m//Tell the syntax document class which file we want to parse and which data group[0m[37;1;44m[0m
[0m[0m KateHlManager::self()->syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data = KateHlManager::self()->syntax->getGroupInfo([0m[31m"highlighting"[0m[0m,[0m[31m"itemData"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//begin with the real parsing[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m (KateHlManager::self()->syntax->nextGroup(data))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// read all attributes[0m[37;1;44m[0m
[0m[0m QString color = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"color"[0m[0m));[0m[0m[0m
[0m[0m QString selColor = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"selColor"[0m[0m));[0m[0m[0m
[0m[0m QString bold = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"bold"[0m[0m));[0m[0m[0m
[0m[0m QString italic = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"italic"[0m[0m));[0m[0m[0m
[0m[0m QString underline = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"underline"[0m[0m));[0m[0m[0m
[0m[0m QString strikeOut = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"strikeOut"[0m[0m));[0m[0m[0m
[0m[0m QString bgColor = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"backgroundColor"[0m[0m));[0m[0m[0m
[0m[0m QString selBgColor = KateHlManager::self()->syntax->groupData(data,QString([0m[31m"selBackgroundColor"[0m[0m));[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlItemData* newData = [0m[1mnew[0m[0m KateHlItemData([0m[0m[0m
[0m[0m buildPrefix+KateHlManager::self()->syntax->groupData(data,QString([0m[31m"name"[0m[0m)).simplifyWhiteSpace(),[0m[0m[0m
[0m[0m getDefStyleNum(KateHlManager::self()->syntax->groupData(data,QString([0m[31m"defStyleNum"[0m[0m))));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m/* here the custom style overrides are specified, if needed */[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!color.isEmpty()) newData->setTextColor(QColor(color));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!selColor.isEmpty()) newData->setSelectedTextColor(QColor(selColor));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!bold.isEmpty()) newData->setBold( IS_TRUE(bold) );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!italic.isEmpty()) newData->setItalic( IS_TRUE(italic) );[0m[0m[0m
[0m[0m [0m[37;1;44m// new attributes for the new rendering view[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!underline.isEmpty()) newData->setUnderline( IS_TRUE(underline) );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!strikeOut.isEmpty()) newData->setStrikeOut( IS_TRUE(strikeOut) );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!bgColor.isEmpty()) newData->setBGColor(QColor(bgColor));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!selBgColor.isEmpty()) newData->setSelectedBGColor(QColor(selBgColor));[0m[0m[0m
[0m[0m[0m
[0m[0m internalIDList.append(newData);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//clean up[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* KateHighlighting - lookupAttrName[0m[35;44m[0m
[0m[35;44m * This function is a helper for makeContextList and createKateHlItem. It looks the given[0m[35;44m[0m
[0m[35;44m * attribute name in the itemData list up and returns it's index[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mname [0m[35;44mthe attribute name to lookup[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32miDl [0m[35;44mthe list containing all available attributes[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@return[0m[35;44m The index of the attribute, or 0 if the attribute isn't found[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mint[0m[0m KateHighlighting::lookupAttrName([0m[34mconst[0m[0m QString& name, KateHlItemDataList &iDl)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i = 0; i < iDl.count(); i++)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (iDl.at(i)->name == buildPrefix+name)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m i;[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Couldn't resolve itemDataName:"[0m[0m<index translation[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mRegionLis[0m[35;44mt [0m[32mlis[0m[35;44mt [0m[32mof [0m[35;44mcode folding region names[0m[35;44m[0m
[0m[35;44m * [0m[1m@param[0m[35;44m [0m[32mCon[0m[35;44mt[0m[32mex[0m[35;44mt[0m[32mNameLis[0m[35;44mt [0m[32mlis[0m[35;44mt [0m[32mof [0m[35;44mcontext names[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@return[0m[35;44m A pointer to the newly created item object[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[0mKateHlItem *KateHighlighting::createKateHlItem(KateSyntaxContextData *data,[0m[0m[0m
[0m[0m KateHlItemDataList &iDl,[0m[0m[0m
[0m[0m QStringList *RegionList,[0m[0m[0m
[0m[0m QStringList *ContextNameList)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m// No highlighting -> exit[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (noHl)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// get the (tagname) itemd type[0m[37;1;44m[0m
[0m[0m QString dataname=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m""[0m[0m));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// code folding region handling:[0m[37;1;44m[0m
[0m[0m QString beginRegionStr=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"beginRegion"[0m[0m));[0m[0m[0m
[0m[0m QString endRegionStr=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"endRegion"[0m[0m));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId=0;[0m[0m[0m
[0m[0m [0m[34msigned[0m[0m [0m[34mchar[0m[0m regionId2=0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!beginRegionStr.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m regionId = RegionList->findIndex(beginRegionStr);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (regionId==[0m[34;1m-1[0m[0m) [0m[37;1;44m// if the region name doesn't already exist, add it to the list[0m[37;1;44m[0m
[0m[0m {[0m[0m[0m
[0m[0m (*RegionList)<findIndex(beginRegionStr);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m regionId++;[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m) << [0m[31m"########### BEG REG: "[0m[0m << beginRegionStr << [0m[31m" NUM: "[0m[0m << regionId << endl;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!endRegionStr.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m regionId2 = RegionList->findIndex(endRegionStr);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (regionId2==[0m[34;1m-1[0m[0m) [0m[37;1;44m// if the region name doesn't already exist, add it to the list[0m[37;1;44m[0m
[0m[0m {[0m[0m[0m
[0m[0m (*RegionList)<findIndex(endRegionStr);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m regionId2 = -regionId2 - [0m[34;1m1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m) << [0m[31m"########### END REG: "[0m[0m << endRegionStr << [0m[31m" NUM: "[0m[0m << regionId2 << endl;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m attr = 0;[0m[0m[0m
[0m[0m QString tmpAttr=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"attribute"[0m[0m)).simplifyWhiteSpace();[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m onlyConsume = tmpAttr.isEmpty();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// only relevant for non consumer[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!onlyConsume)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (QString([0m[31m"%1"[0m[0m).arg(tmpAttr.toInt())==tmpAttr)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m errorsAndWarnings+=i18n([0m[0m[0m
[0m[0m [0m[31m"%1: Deprecated syntax. Attribute (%2) not addressed by symbolic name
"[0m[0m).[0m[0m[0m
[0m[0m arg(buildIdentifier).arg(tmpAttr);[0m[0m[0m
[0m[0m attr=tmpAttr.toInt();[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m attr=lookupAttrName(tmpAttr,iDl);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Info about context switch[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m context = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m QString unresolvedContext;[0m[0m[0m
[0m[0m QString tmpcontext=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"context"[0m[0m));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!tmpcontext.isEmpty())[0m[0m[0m
[0m[0m context=getIdFromString(ContextNameList, tmpcontext,unresolvedContext);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Get the char parameter (eg DetectChar)[0m[37;1;44m[0m
[0m[0m [0m[34mchar[0m[0m chr;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (! KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"char"[0m[0m)).isEmpty())[0m[0m[0m
[0m[0m chr= (KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"char"[0m[0m)).latin1())[0];[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m chr=0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Get the String parameter (eg. StringDetect)[0m[37;1;44m[0m
[0m[0m QString stringdata=KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"String"[0m[0m));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Get a second char parameter (char1) (eg Detect2Chars)[0m[37;1;44m[0m
[0m[0m [0m[34mchar[0m[0m chr1;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (! KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"char1"[0m[0m)).isEmpty())[0m[0m[0m
[0m[0m chr1= (KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"char1"[0m[0m)).latin1())[0];[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m chr1=0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Will be removed eventuall. Atm used for StringDetect and RegExp[0m[37;1;44m[0m
[0m[0m [0m[34mbool[0m[0m insensitive = IS_TRUE( KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"insensitive"[0m[0m)) );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// for regexp only[0m[37;1;44m[0m
[0m[0m [0m[34mbool[0m[0m minimal = IS_TRUE( KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"minimal"[0m[0m)) );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// dominik: look ahead and do not change offset. so we can change contexts w/o changing offset1.[0m[37;1;44m[0m
[0m[0m [0m[34mbool[0m[0m lookAhead = IS_TRUE( KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"lookAhead"[0m[0m)) );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m dynamic= IS_TRUE(KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"dynamic"[0m[0m)) );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m firstNonSpace = IS_TRUE(KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"firstNonSpace"[0m[0m)) );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m column = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m QString colStr = KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"column"[0m[0m));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!colStr.isEmpty())[0m[0m[0m
[0m[0m column = colStr.toInt();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//Create the item corresponding to it's type and set it's parameters[0m[37;1;44m[0m
[0m[0m KateHlItem *tmpItem;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"keyword"[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateHlKeyword *keyword=[0m[1mnew[0m[0m KateHlKeyword(attr,context,regionId,regionId2,casesensitive,[0m[0m[0m
[0m[0m m_additionalData[ buildIdentifier ]->deliminator);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//Get the entries for the keyword lookup list[0m[37;1;44m[0m
[0m[0m keyword->addList(KateHlManager::self()->syntax->finddata([0m[31m"highlighting"[0m[0m,stringdata));[0m[0m[0m
[0m[0m tmpItem=keyword;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"Float"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlFloat(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"Int"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlInt(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"DetectChar"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlCharDetect(attr,context,regionId,regionId2,chr));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"Detect2Chars"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHl2CharDetect(attr,context,regionId,regionId2,chr,chr1));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"RangeDetect"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlRangeDetect(attr,context,regionId,regionId2, chr, chr1));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"LineContinue"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlLineContinue(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"StringDetect"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlStringDetect(attr,context,regionId,regionId2,stringdata,insensitive));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"AnyChar"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlAnyChar(attr,context,regionId,regionId2,stringdata));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"RegExpr"[0m[0m) tmpItem=([0m[1mnew[0m[0m KateHlRegExpr(attr,context,regionId,regionId2,stringdata, insensitive, minimal));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"HlCChar"[0m[0m) tmpItem= ( [0m[1mnew[0m[0m KateHlCChar(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"HlCHex"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlCHex(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"HlCOct"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlCOct(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"HlCFloat"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlCFloat(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"HlCStringChar"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlCStringChar(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"DetectSpaces"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlDetectSpaces(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (dataname==[0m[31m"DetectIdentifier"[0m[0m) tmpItem= ([0m[1mnew[0m[0m KateHlDetectIdentifier(attr,context,regionId,regionId2));[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// oops, unknown type. Perhaps a spelling error in the xml file[0m[37;1;44m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// set lookAhead & dynamic properties[0m[37;1;44m[0m
[0m[0m tmpItem->lookAhead = lookAhead;[0m[0m[0m
[0m[0m tmpItem->dynamic = dynamic;[0m[0m[0m
[0m[0m tmpItem->firstNonSpace = firstNonSpace;[0m[0m[0m
[0m[0m tmpItem->column = column;[0m[0m[0m
[0m[0m tmpItem->onlyConsume = onlyConsume;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!unresolvedContext.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m unresolvedContextReferences.insert(&(tmpItem->ctx),unresolvedContext);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m tmpItem;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHighlighting::hlKeyForAttrib( [0m[34mint[0m[0m i ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m k = 0;[0m[0m[0m
[0m[0m QMap<[0m[34mint[0m[0m,QString>::const_iterator it = m_hlIndex.constEnd();[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m ( it != m_hlIndex.constBegin() )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m --it;[0m[0m[0m
[0m[0m k = it.key();[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( i >= k )[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m it.data();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mbool[0m[0m KateHighlighting::isInWord( QChar c, [0m[34mint[0m[0m attrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m [0m[34mconst[0m[0m QString& sq = KGlobal::staticQString([0m[31m" [0m[35m\"[0m[31m'"[0m[0m);[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m m_additionalData[ hlKeyForAttrib( attrib ) ]->deliminator.find(c) < 0 && sq.find(c) < 0;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mbool[0m[0m KateHighlighting::canBreakAt( QChar c, [0m[34mint[0m[0m attrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m [0m[34mconst[0m[0m QString& sq = KGlobal::staticQString([0m[31m"[0m[35m\"[0m[31m'"[0m[0m);[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m (m_additionalData[ hlKeyForAttrib( attrib ) ]->wordWrapDeliminator.find(c) != [0m[34;1m-1[0m[0m) && (sq.find(c) == [0m[34;1m-1[0m[0m);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34msigned[0m[0m [0m[34mchar[0m[0m KateHighlighting::commentRegion([0m[34mint[0m[0m attr) [0m[34mconst[0m[0m {[0m[0m[0m
[0m[0m QString commentRegion=m_additionalData[ hlKeyForAttrib( attr ) ]->multiLineRegion;[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m (commentRegion.isEmpty()?0:(commentRegion.toShort()));[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mbool[0m[0m KateHighlighting::canComment( [0m[34mint[0m[0m startAttrib, [0m[34mint[0m[0m endAttrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m QString k = hlKeyForAttrib( startAttrib );[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ( k == hlKeyForAttrib( endAttrib ) &&[0m[0m[0m
[0m[0m ( ( !m_additionalData[k]->multiLineCommentStart.isEmpty() && !m_additionalData[k]->multiLineCommentEnd.isEmpty() ) ||[0m[0m[0m
[0m[0m ! m_additionalData[k]->singleLineCommentMarker.isEmpty() ) );[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHighlighting::getCommentStart( [0m[34mint[0m[0m attrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m m_additionalData[ hlKeyForAttrib( attrib) ]->multiLineCommentStart;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHighlighting::getCommentEnd( [0m[34mint[0m[0m attrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m m_additionalData[ hlKeyForAttrib( attrib ) ]->multiLineCommentEnd;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHighlighting::getCommentSingleLineStart( [0m[34mint[0m[0m attrib ) [0m[34mconst[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m m_additionalData[ hlKeyForAttrib( attrib) ]->singleLineCommentMarker;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Helper for makeContextList. It parses the xml file for[0m[35;44m[0m
[0m[35;44m * information, how single or multi line comments are marked[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::readCommentConfig()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data=KateHlManager::self()->syntax->getGroupInfo([0m[31m"general"[0m[0m,[0m[31m"comment"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m QString cmlStart, cmlEnd, cmlRegion, cslStart ;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m (KateHlManager::self()->syntax->nextGroup(data))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (KateHlManager::self()->syntax->groupData(data,[0m[31m"name"[0m[0m)==[0m[31m"singleLine"[0m[0m)[0m[0m[0m
[0m[0m cslStart=KateHlManager::self()->syntax->groupData(data,[0m[31m"start"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (KateHlManager::self()->syntax->groupData(data,[0m[31m"name"[0m[0m)==[0m[31m"multiLine"[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m cmlStart=KateHlManager::self()->syntax->groupData(data,[0m[31m"start"[0m[0m);[0m[0m[0m
[0m[0m cmlEnd=KateHlManager::self()->syntax->groupData(data,[0m[31m"end"[0m[0m);[0m[0m[0m
[0m[0m cmlRegion=KateHlManager::self()->syntax->groupData(data,[0m[31m"region"[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m cslStart = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m cmlStart = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m cmlEnd = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m cmlRegion = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m m_additionalData[buildIdentifier]->singleLineCommentMarker = cslStart;[0m[0m[0m
[0m[0m m_additionalData[buildIdentifier]->multiLineCommentStart = cmlStart;[0m[0m[0m
[0m[0m m_additionalData[buildIdentifier]->multiLineCommentEnd = cmlEnd;[0m[0m[0m
[0m[0m m_additionalData[buildIdentifier]->multiLineRegion = cmlRegion;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Helper for makeContextList. It parses the xml file for information,[0m[35;44m[0m
[0m[35;44m * if keywords should be treated case(in)sensitive and creates the keyword[0m[35;44m[0m
[0m[35;44m * delimiter list. Which is the default list, without any given weak deliminiators[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::readGlobalKeywordConfig()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m deliminator = stdDeliminator;[0m[0m[0m
[0m[0m [0m[37;1;44m// Tell the syntax document class which file we want to parse[0m[37;1;44m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readGlobalKeywordConfig:BEGIN"[0m[0m<syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data = KateHlManager::self()->syntax->getConfig([0m[31m"general"[0m[0m,[0m[31m"keywords"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Found global keyword config"[0m[0m<syntax->groupItemData(data,QString([0m[31m"casesensitive"[0m[0m))!=[0m[31m"0"[0m[0m)[0m[0m[0m
[0m[0m casesensitive=true;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m casesensitive=[0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//get the weak deliminators[0m[37;1;44m[0m
[0m[0m weakDeliminator=(KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"weakDeliminator"[0m[0m)));[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"weak delimiters are: "[0m[0m< [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m deliminator.remove (f, [0m[34;1m1[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m QString addDelim = (KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"additionalDeliminator"[0m[0m)));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!addDelim.isEmpty())[0m[0m[0m
[0m[0m deliminator=deliminator+addDelim;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//Default values[0m[37;1;44m[0m
[0m[0m casesensitive=true;[0m[0m[0m
[0m[0m weakDeliminator=QString([0m[31m""[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readGlobalKeywordConfig:END"[0m[0m<deliminator = deliminator;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Helper for makeContextList. It parses the xml file for any wordwrap[0m[35;44m[0m
[0m[35;44m * deliminators, characters * at which line can be broken. In case no keyword[0m[35;44m[0m
[0m[35;44m * tag is found in the xml file, the wordwrap deliminators list defaults to the[0m[35;44m[0m
[0m[35;44m * standard denominators. In case a keyword tag is defined, but no[0m[35;44m[0m
[0m[35;44m * wordWrapDeliminator attribute is specified, the deliminator list as computed[0m[35;44m[0m
[0m[35;44m * in readGlobalKeywordConfig is used.[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@return[0m[35;44m the computed delimiter string.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::readWordWrapConfig()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m// Tell the syntax document class which file we want to parse[0m[37;1;44m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readWordWrapConfig:BEGIN"[0m[0m<syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data = KateHlManager::self()->syntax->getConfig([0m[31m"general"[0m[0m,[0m[31m"keywords"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m QString wordWrapDeliminator = stdDeliminator;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Found global keyword config"[0m[0m<syntax->groupItemData(data,QString([0m[31m"wordWrapDeliminator"[0m[0m)));[0m[0m[0m
[0m[0m [0m[37;1;44m//when no wordWrapDeliminator is defined use the deliminator list[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ( wordWrapDeliminator.length() == 0 ) wordWrapDeliminator = deliminator;[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m) << [0m[31m"word wrap deliminators are "[0m[0m << wordWrapDeliminator << endl;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readWordWrapConfig:END"[0m[0m<wordWrapDeliminator = wordWrapDeliminator;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::readIndentationConfig()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m m_indentation = [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data = KateHlManager::self()->syntax->getConfig([0m[31m"general"[0m[0m,[0m[31m"indentation"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m m_indentation = (KateHlManager::self()->syntax->groupItemData(data,QString([0m[31m"mode"[0m[0m)));[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::readFoldingConfig()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[37;1;44m// Tell the syntax document class which file we want to parse[0m[37;1;44m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readfoldignConfig:BEGIN"[0m[0m<syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m KateSyntaxContextData *data = KateHlManager::self()->syntax->getConfig([0m[31m"general"[0m[0m,[0m[31m"folding"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Found global keyword config"[0m[0m<syntax->groupItemData(data,QString([0m[31m"indentationsensitive"[0m[0m))!=[0m[31m"1"[0m[0m)[0m[0m[0m
[0m[0m m_foldingIndentationSensitive=[0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m m_foldingIndentationSensitive=true;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//Default values[0m[37;1;44m[0m
[0m[0m m_foldingIndentationSensitive = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"readfoldingConfig:END"[0m[0m<clear();[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->setIdentifier(buildIdentifier);[0m[0m[0m
[0m[0m[0m
[0m[0m KateSyntaxContextData *data=KateHlManager::self()->syntax->getGroupInfo([0m[31m"highlighting"[0m[0m,[0m[31m"context"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m id=ctx0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m (KateHlManager::self()->syntax->nextGroup(data))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QString tmpAttr=KateHlManager::self()->syntax->groupData(data,QString([0m[31m"name"[0m[0m)).simplifyWhiteSpace();[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (tmpAttr.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m tmpAttr=QString([0m[31m"!KATE_INTERNAL_DUMMY! %1"[0m[0m).arg(id);[0m[0m[0m
[0m[0m errorsAndWarnings +=i18n([0m[31m"%1: Deprecated syntax. Context %2 has no symbolic name
"[0m[0m).arg(buildIdentifier).arg(id-ctx0);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m tmpAttr=buildPrefix+tmpAttr;[0m[0m[0m
[0m[0m (*ContextNameList)<syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"creatingContextNameList:END"[0m[0m<findIndex(buildPrefix+tmpLineEndContext);[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (context==[0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m context=tmpLineEndContext.toInt();[0m[0m[0m
[0m[0m errorsAndWarnings+=i18n([0m[0m[0m
[0m[0m [0m[31m"%1:Deprecated syntax. Context %2 not addressed by a symbolic name"[0m[0m[0m
[0m[0m ).arg(buildIdentifier).arg(tmpLineEndContext);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[37;1;44m//#warning restructure this the name list storage.[0m[37;1;44m[0m
[0m[37;1;44m// context=context+buildContext0Offset;[0m[37;1;44m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m context;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* The most important initialization function for each highlighting. It's called[0m[35;44m[0m
[0m[35;44m * each time a document gets a highlighting style assigned. parses the xml file[0m[35;44m[0m
[0m[35;44m * and creates a corresponding internal structure[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::makeContextList()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (noHl) [0m[37;1;44m// if this a highlighting for "normal texts" only, tere is no need for a context list creation[0m[37;1;44m[0m
[0m[0m [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m embeddedHls.clear();[0m[0m[0m
[0m[0m unresolvedContextReferences.clear();[0m[0m[0m
[0m[0m RegionList.clear();[0m[0m[0m
[0m[0m ContextNameList.clear();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// prepare list creation. To reuse as much code as possible handle this[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// highlighting the same way as embedded onces[0m[37;1;44m[0m
[0m[0m embeddedHls.insert(iName,KateEmbeddedHlInfo());[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m something_changed;[0m[0m[0m
[0m[0m [0m[37;1;44m// the context "0" id is 0 for this hl, all embedded context "0"s have offsets[0m[37;1;44m[0m
[0m[0m startctx=base_startctx=0;[0m[0m[0m
[0m[0m [0m[37;1;44m// inform everybody that we are building the highlighting contexts and itemlists[0m[37;1;44m[0m
[0m[0m building=true;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mdo[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"**************** Outter loop in make ContextList"[0m[0m<identifierForName(it.key());[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Location is:"[0m[0m<< identifierToUse<incCtx==[0m[34;1m-1[0m[0m) [0m[37;1;44m// context unresolved ?[0m[37;1;44m[0m
[0m[0m {[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((*it)->incCtxN.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// no context name given, and no valid context id set, so this item is[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// going to be removed[0m[37;1;44m[0m
[0m[0m KateHlIncludeRules::iterator it1=it;[0m[0m[0m
[0m[0m ++it1;[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m (*it);[0m[0m[0m
[0m[0m includeRules.remove(it);[0m[0m[0m
[0m[0m it=it1;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// resolve name to id[0m[37;1;44m[0m
[0m[0m (*it)->incCtx=getIdFromString(&ContextNameList,(*it)->incCtxN,dummy);[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Resolved "[0m[0m<<(*it)->incCtxN<< [0m[31m" to "[0m[0m<<(*it)->incCtx<<[0m[31m" for include rule"[0m[0m<1->2->3->1[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m (!includeRules.isEmpty())[0m[0m[0m
[0m[0m handleKateHlIncludeRulesRecursive(includeRules.begin(),&includeRules);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::handleKateHlIncludeRulesRecursive(KateHlIncludeRules::iterator it, KateHlIncludeRules *list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (it==list->end()) [0m[1mreturn[0m[0m; [0m[37;1;44m//invalid iterator, shouldn't happen, but better have a rule prepared ;)[0m[37;1;44m[0m
[0m[0m[0m
[0m[0m KateHlIncludeRules::iterator it1=it;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctx=(*it1)->ctx;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// find the last entry for the given context in the KateHlIncludeRules list[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// this is need if one context includes more than one. This saves us from[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// updating all insert positions:[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// eg: context 0:[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// pos 3 - include context 2[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// pos 5 - include context 3[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// During the building of the includeRules list the items are inserted in[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// ascending order, now we need it descending to make our life easier.[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m ((it!=list->end()) && ((*it)->ctx==ctx))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m it1=it;[0m[0m[0m
[0m[0m ++it;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// iterate over each include rule for the context the function has been called for.[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m ((it1!=list->end()) && ((*it1)->ctx==ctx))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ctx1=(*it1)->incCtx;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//let's see, if the the included context includes other contexts[0m[37;1;44m[0m
[0m[0m [0m[1mfor[0m[0m (KateHlIncludeRules::iterator it2=list->begin();it2!=list->end();++it2)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((*it2)->ctx==ctx1)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//yes it does, so first handle that include rules, since we want to[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// include those subincludes too[0m[37;1;44m[0m
[0m[0m handleKateHlIncludeRulesRecursive(it2,list);[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// if the context we want to include had sub includes, they are already inserted there.[0m[37;1;44m[0m
[0m[0m KateHlContext *dest=m_contexts[ctx];[0m[0m[0m
[0m[0m KateHlContext *src=m_contexts[ctx1];[0m[0m[0m
[0m[37;1;44m// kdDebug(3010)<<"linking included rules from "<includeAttrib )[0m[0m[0m
[0m[0m dest->attr = src->attr;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// insert the included context's rules starting at position p[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m p=(*it1)->pos;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// remember some stuff[0m[37;1;44m[0m
[0m[0m [0m[34mint[0m[0m oldLen = dest->items.size();[0m[0m[0m
[0m[0m [0m[34muint[0m[0m itemsToInsert = src->items.size();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// resize target[0m[37;1;44m[0m
[0m[0m dest->items.resize (oldLen + itemsToInsert);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// move old elements[0m[37;1;44m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34mint[0m[0m i=oldLen-[0m[34;1m1[0m[0m; i >= p; --i)[0m[0m[0m
[0m[0m dest->items[i+itemsToInsert] = dest->items[i];[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// insert new stuff[0m[37;1;44m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < itemsToInsert; ++i )[0m[0m[0m
[0m[0m dest->items[p+i] = src->items[i];[0m[0m[0m
[0m[0m[0m
[0m[0m it=it1; [0m[37;1;44m//backup the iterator[0m[37;1;44m[0m
[0m[0m --it1; [0m[37;1;44m//move to the next entry, which has to be take care of[0m[37;1;44m[0m
[0m[0m [0m[1mdelete[0m[0m (*it); [0m[37;1;44m//free the already handled data structure[0m[37;1;44m[0m
[0m[0m list->remove(it); [0m[37;1;44m// remove it from the list[0m[37;1;44m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[35;44m/**[0m
* Add one highlight to the contextlist.[0m[35;44m[0m
[0m[35;44m *[0m[35;44m[0m
[0m[35;44m * [0m[1m@return[0m[35;44m the number of contexts after this is added.[0m[35;44m[0m
[0m[35;44m */[0m[0m[0m
[0m[34mint[0m[0m KateHighlighting::addToContextList([0m[34mconst[0m[0m QString &ident, [0m[34mint[0m[0m ctx0)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"=== Adding hl with ident '"[0m[0m<syntax->setIdentifier(ident))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m noHl=true;[0m[0m[0m
[0m[0m KMessageBox::information(0L,i18n([0m[0m[0m
[0m[0m [0m[31m"Since there has been an error parsing the highlighting description, "[0m[0m[0m
[0m[0m [0m[31m"this highlighting will be disabled"[0m[0m));[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m 0;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// only read for the own stuff[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (identifier == ident)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m readIndentationConfig ();[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m RegionList<<[0m[31m"!KateInternal_TopLevel!"[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m m_hlIndex[internalIDList.count()] = ident;[0m[0m[0m
[0m[0m m_additionalData.insert( ident, [0m[1mnew[0m[0m HighlightPropertyBag );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// fill out the propertybag[0m[37;1;44m[0m
[0m[0m readCommentConfig();[0m[0m[0m
[0m[0m readGlobalKeywordConfig();[0m[0m[0m
[0m[0m readWordWrapConfig();[0m[0m[0m
[0m[0m[0m
[0m[0m readFoldingConfig ();[0m[0m[0m
[0m[0m[0m
[0m[0m QString ctxName;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// This list is needed for the translation of the attribute parameter,[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// if the itemData name is given instead of the index[0m[37;1;44m[0m
[0m[0m addToKateHlItemDataList();[0m[0m[0m
[0m[0m KateHlItemDataList iDl = internalIDList;[0m[0m[0m
[0m[0m[0m
[0m[0m createContextNameList(&ContextNameList,ctx0);[0m[0m[0m
[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Parsing Context structure"[0m[0m<syntax->getGroupInfo([0m[31m"highlighting"[0m[0m,[0m[31m"context"[0m[0m);[0m[0m[0m
[0m[0m [0m[34muint[0m[0m i=buildContext0Offset;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (data)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m (KateHlManager::self()->syntax->nextGroup(data))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Found a context in file, building structure now"[0m[0m<syntax->groupData(data,QString([0m[31m"attribute"[0m[0m)).simplifyWhiteSpace();[0m[0m[0m
[0m[0m [0m[34mint[0m[0m attr;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (QString([0m[31m"%1"[0m[0m).arg(tmpAttr.toInt())==tmpAttr)[0m[0m[0m
[0m[0m attr=tmpAttr.toInt();[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m attr=lookupAttrName(tmpAttr,iDl);[0m[0m[0m
[0m[0m [0m[30;43;1m//END - Translation of the attribute parameter[0m[30;43;1m[0m
[0m[0m[0m
[0m[0m ctxName=buildPrefix+KateHlManager::self()->syntax->groupData(data,QString([0m[31m"lineEndContext"[0m[0m)).simplifyWhiteSpace();[0m[0m[0m
[0m[0m[0m
[0m[0m QString tmpLineEndContext=KateHlManager::self()->syntax->groupData(data,QString([0m[31m"lineEndContext"[0m[0m)).simplifyWhiteSpace();[0m[0m[0m
[0m[0m [0m[34mint[0m[0m context;[0m[0m[0m
[0m[0m[0m
[0m[0m context=getIdFromString(&ContextNameList, tmpLineEndContext,dummy);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[30;43;1m//BEGIN get fallthrough props[0m[30;43;1m[0m
[0m[0m [0m[34mbool[0m[0m ft = [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m ftc = 0; [0m[37;1;44m// fallthrough context[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ( i > 0 ) [0m[37;1;44m// fallthrough is not smart in context 0[0m[37;1;44m[0m
[0m[0m {[0m[0m[0m
[0m[0m QString tmpFt = KateHlManager::self()->syntax->groupData(data, QString([0m[31m"fallthrough"[0m[0m) );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( IS_TRUE(tmpFt) )[0m[0m[0m
[0m[0m ft = true;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( ft )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QString tmpFtc = KateHlManager::self()->syntax->groupData( data, QString([0m[31m"fallthroughContext"[0m[0m) );[0m[0m[0m
[0m[0m[0m
[0m[0m ftc=getIdFromString(&ContextNameList, tmpFtc,dummy);[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (ftc == [0m[34;1m-1[0m[0m) ftc =0;[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Setting fall through context (context "[0m[0m<syntax->groupData(data, QString([0m[31m"dynamic"[0m[0m) );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( tmpDynamic.lower() == [0m[31m"true"[0m[0m || tmpDynamic.toInt() == [0m[34;1m1[0m[0m )[0m[0m[0m
[0m[0m dynamic = true;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlContext *ctxNew = [0m[1mnew[0m[0m KateHlContext ([0m[0m[0m
[0m[0m ident,[0m[0m[0m
[0m[0m attr,[0m[0m[0m
[0m[0m context,[0m[0m[0m
[0m[0m (KateHlManager::self()->syntax->groupData(data,QString([0m[31m"lineBeginContext"[0m[0m))).isEmpty()?[0m[34;1m-1[0m[0m:[0m[0m[0m
[0m[0m (KateHlManager::self()->syntax->groupData(data,QString([0m[31m"lineBeginContext"[0m[0m))).toInt(),[0m[0m[0m
[0m[0m ft, ftc, dynamic);[0m[0m[0m
[0m[0m[0m
[0m[0m m_contexts.push_back (ctxNew);[0m[0m[0m
[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m) << [0m[31m"INDEX: "[0m[0m << i << [0m[31m" LENGTH "[0m[0m << m_contexts.size()[0m[34;1m-1[0m[0m << endl;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//Let's create all items for the context[0m[37;1;44m[0m
[0m[0m [0m[1mwhile[0m[0m (KateHlManager::self()->syntax->nextItem(data))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[37;1;44m// kdDebug(13010)<< "In make Contextlist: Item:"<syntax->groupItemData(data,QString([0m[31m""[0m[0m));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( tag == [0m[31m"IncludeRules"[0m[0m ) [0m[37;1;44m//if the new item is an Include rule, we have to take special care[0m[37;1;44m[0m
[0m[0m {[0m[0m[0m
[0m[0m QString incCtx = KateHlManager::self()->syntax->groupItemData( data, QString([0m[31m"context"[0m[0m));[0m[0m[0m
[0m[0m QString incAttrib = KateHlManager::self()->syntax->groupItemData( data, QString([0m[31m"includeAttrib"[0m[0m));[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m includeAttrib = ( incAttrib.lower() == [0m[31m"true"[0m[0m || incAttrib.toInt() == [0m[34;1m1[0m[0m );[0m[0m[0m
[0m[0m [0m[37;1;44m// only context refernces of type NAME and ##Name are allowed[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (incCtx.startsWith([0m[31m"##"[0m[0m) || (!incCtx.startsWith([0m[31m"#"[0m[0m)))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//#stay, #pop is not interesting here[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!incCtx.startsWith([0m[31m"#"[0m[0m))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// a local reference -> just initialize the include rule structure[0m[37;1;44m[0m
[0m[0m incCtx=buildPrefix+incCtx.simplifyWhiteSpace();[0m[0m[0m
[0m[0m includeRules.append([0m[1mnew[0m[0m KateHlIncludeRule(i,m_contexts[i]->items.count(),incCtx, includeAttrib));[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m//a cross highlighting reference[0m[37;1;44m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"Cross highlight reference "[0m[0m<items.count(),[0m[31m""[0m[0m,includeAttrib);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m//use the same way to determine cross hl file references as other items do[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!embeddedHls.contains(incCtx.right(incCtx.length()[0m[34;1m-2[0m[0m)))[0m[0m[0m
[0m[0m embeddedHls.insert(incCtx.right(incCtx.length()[0m[34;1m-2[0m[0m),KateEmbeddedHlInfo());[0m[0m[0m
[0m[0m[0m
[0m[0m unresolvedContextReferences.insert(&(ir->incCtx),[0m[0m[0m
[0m[0m incCtx.right(incCtx.length()[0m[34;1m-2[0m[0m));[0m[0m[0m
[0m[0m[0m
[0m[0m includeRules.append(ir);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mcontinue[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[37;1;44m// [0m[37;1;42mTODO[0m[37;1;44m -- can we remove the block below??[0m[37;1;44m[0m
[0m[33;1;42m#if 0[0m[37;1;44m[0m
[0m[37;1;44m QString tag = KateHlManager::self()->syntax->groupKateHlItemData(data,QString(""));[0m[37;1;44m[0m
[0m[37;1;44m if ( tag == "IncludeRules" ) {[0m[37;1;44m[0m
[0m[37;1;44m // attrib context: the index (jowenn, i think using names here[0m[37;1;44m[0m
[0m[37;1;44m // would be a cool feat, goes for mentioning the context in[0m[37;1;44m[0m
[0m[37;1;44m // any item. a map or dict?)[0m[37;1;44m[0m
[0m[37;1;44m int ctxId = getIdFromString(&ContextNameList,[0m[37;1;44m[0m
[0m[37;1;44m KateHlManager::self()->syntax->groupKateHlItemData( data, QString("context")),dummy); // the index is *required*[0m[37;1;44m[0m
[0m[37;1;44m if ( ctxId > -1) { // we can even reuse rules of 0 if we want to:)[0m[37;1;44m[0m
[0m[37;1;44m kdDebug(13010)<<"makeContextList["<items.first(); c; c = m_contexts[ctxId]->items.next() )[0m[37;1;44m[0m
[0m[37;1;44m m_contexts[i]->items.append(c);[0m[37;1;44m[0m
[0m[37;1;44m }[0m[37;1;44m[0m
[0m[37;1;44m else[0m[37;1;44m[0m
[0m[37;1;44m kdDebug(13010)<<"Context "<items.append(c);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Not supported completely atm and only one level. Subitems.(all have[0m[37;1;44m[0m
[0m[0m [0m[37;1;44m// to be matched to at once)[0m[37;1;44m[0m
[0m[0m datasub=KateHlManager::self()->syntax->getSubItems(data);[0m[0m[0m
[0m[0m [0m[34mbool[0m[0m tmpbool;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (tmpbool=KateHlManager::self()->syntax->nextItem(datasub))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (;tmpbool;tmpbool=KateHlManager::self()->syntax->nextItem(datasub))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m c->subItems.resize (c->subItems.size()[0m[34;1m+1[0m[0m);[0m[0m[0m
[0m[0m c->subItems[c->subItems.size()[0m[34;1m-1[0m[0m] = createKateHlItem(datasub,iDl,&RegionList,&ContextNameList);[0m[0m[0m
[0m[0m } }[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(datasub);[0m[0m[0m
[0m[0m [0m[37;1;44m// end of sublevel[0m[37;1;44m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m i++;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlManager::self()->syntax->freeGroupInfo(data);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (RegionList.count()!=[0m[34;1m1[0m[0m)[0m[0m[0m
[0m[0m folding=true;[0m[0m[0m
[0m[0m[0m
[0m[0m folding = folding || m_foldingIndentationSensitive;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[30;43;1m//BEGIN Resolve multiline region if possible[0m[30;43;1m[0m
[0m[0m [0m[1mif[0m[0m (!m_additionalData[ ident ]->multiLineRegion.isEmpty()) {[0m[0m[0m
[0m[0m [0m[34mlong[0m[0m commentregionid=RegionList.findIndex( m_additionalData[ ident ]->multiLineRegion );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ([0m[34;1m-1[0m[0m==commentregionid) {[0m[0m[0m
[0m[0m errorsAndWarnings+=i18n([0m[0m[0m
[0m[0m [0m[31m"%1: Specified multiline comment region (%2) could not be resolved
"[0m[0m[0m
[0m[0m ).arg(buildIdentifier).arg( m_additionalData[ ident ]->multiLineRegion );[0m[0m[0m
[0m[0m m_additionalData[ ident ]->multiLineRegion = QString();[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"ERROR comment region attribute could not be resolved"[0m[0m<multiLineRegion=QString::number(commentregionid+[0m[34;1m1[0m[0m);[0m[0m[0m
[0m[0m kdDebug([0m[34;1m13010[0m[0m)<<[0m[31m"comment region resolved to:"[0m[0m<multiLineRegion< > it( m_attributeArrays ); it.current(); ++it )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// k, schema correct, let create the data[0m[37;1;44m[0m
[0m[0m KateAttributeList defaultStyleList;[0m[0m[0m
[0m[0m defaultStyleList.setAutoDelete(true);[0m[0m[0m
[0m[0m KateHlManager::self()->getDefaults(it.currentKey(), defaultStyleList);[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlItemDataList itemDataList;[0m[0m[0m
[0m[0m getKateHlItemDataList(it.currentKey(), itemDataList);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34muint[0m[0m nAttribs = itemDataList.count();[0m[0m[0m
[0m[0m QMemArray *array = it.current();[0m[0m[0m
[0m[0m array->resize (nAttribs);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m z = 0; z < nAttribs; z++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateHlItemData *itemData = itemDataList.at(z);[0m[0m[0m
[0m[0m KateAttribute n = *defaultStyleList.at(itemData->defStyleNum);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (itemData && itemData->isSomethingSet())[0m[0m[0m
[0m[0m n += *itemData;[0m[0m[0m
[0m[0m[0m
[0m[0m array->at(z) = n;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQMemArray *KateHighlighting::attributes ([0m[34muint[0m[0m schema)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m QMemArray *array;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// found it, allready floating around[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m ((array = m_attributeArrays[schema]))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m array;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// ohh, not found, check if valid schema number[0m[37;1;44m[0m
[0m[0m [0m[1mif[0m[0m (!KateFactory::self()->schemaManager()->validSchema(schema))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[37;1;44m// uhh, not valid :/, stick with normal default schema, it's always there ![0m[37;1;44m[0m
[0m[0m [0m[1mreturn[0m[0m attributes (0);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// k, schema correct, let create the data[0m[37;1;44m[0m
[0m[0m KateAttributeList defaultStyleList;[0m[0m[0m
[0m[0m defaultStyleList.setAutoDelete(true);[0m[0m[0m
[0m[0m KateHlManager::self()->getDefaults(schema, defaultStyleList);[0m[0m[0m
[0m[0m[0m
[0m[0m KateHlItemDataList itemDataList;[0m[0m[0m
[0m[0m getKateHlItemDataList(schema, itemDataList);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34muint[0m[0m nAttribs = itemDataList.count();[0m[0m[0m
[0m[0m array = [0m[1mnew[0m[0m QMemArray (nAttribs);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m z = 0; z < nAttribs; z++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateHlItemData *itemData = itemDataList.at(z);[0m[0m[0m
[0m[0m KateAttribute n = *defaultStyleList.at(itemData->defStyleNum);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (itemData && itemData->isSomethingSet())[0m[0m[0m
[0m[0m n += *itemData;[0m[0m[0m
[0m[0m[0m
[0m[0m array->at(z) = n;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m m_attributeArrays.insert(schema, array);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m array;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHighlighting::getKateHlItemDataListCopy ([0m[34muint[0m[0m schema, KateHlItemDataList &outlist)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KateHlItemDataList itemDataList;[0m[0m[0m
[0m[0m getKateHlItemDataList(schema, itemDataList);[0m[0m[0m
[0m[0m[0m
[0m[0m outlist.clear ();[0m[0m[0m
[0m[0m outlist.setAutoDelete (true);[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m z=0; z < itemDataList.count(); z++)[0m[0m[0m
[0m[0m outlist.append ([0m[1mnew[0m[0m KateHlItemData (*itemDataList.at(z)));[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHlManager[0m[30;43;1m[0m
[0m[0mKateHlManager::KateHlManager()[0m[0m[0m
[0m[0m : QObject()[0m[0m[0m
[0m[0m , m_config ([0m[31m"katesyntaxhighlightingrc"[0m[0m, [0m[1mfalse[0m[0m, [0m[1mfalse[0m[0m)[0m[0m[0m
[0m[0m , commonSuffixes (QStringList::split([0m[31m";"[0m[0m, [0m[31m".orig;.new;~;.bak;.BAK"[0m[0m))[0m[0m[0m
[0m[0m , syntax ([0m[1mnew[0m[0m KateSyntaxDocument())[0m[0m[0m
[0m[0m , dynamicCtxsCount(0)[0m[0m[0m
[0m[0m , forceNoDCReset([0m[1mfalse[0m[0m)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m hlList.setAutoDelete(true);[0m[0m[0m
[0m[0m hlDict.setAutoDelete([0m[1mfalse[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m KateSyntaxModeList modeList = syntax->modeList();[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0; i < modeList.count(); i++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateHighlighting *hl = [0m[1mnew[0m[0m KateHighlighting(modeList[i]);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34muint[0m[0m insert = 0;[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (; insert <= hlList.count(); insert++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (insert == hlList.count())[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( QString(hlList.at(insert)->section() + hlList.at(insert)->nameTranslated()).lower()[0m[0m[0m
[0m[0m > QString(hl->section() + hl->nameTranslated()).lower() )[0m[0m[0m
[0m[0m [0m[1mbreak[0m[0m;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m hlList.insert (insert, hl);[0m[0m[0m
[0m[0m hlDict.insert (hl->name(), hl);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[37;1;44m// Normal HL[0m[37;1;44m[0m
[0m[0m KateHighlighting *hl = [0m[1mnew[0m[0m KateHighlighting(0);[0m[0m[0m
[0m[0m hlList.prepend (hl);[0m[0m[0m
[0m[0m hlDict.insert (hl->name(), hl);[0m[0m[0m
[0m[0m[0m
[0m[0m lastCtxsReset.start();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlManager::~KateHlManager()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mdelete[0m[0m syntax;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mstatic[0m[0m KStaticDeleter sdHlMan;[0m[0m[0m
[0m[0m[0m
[0m[0mKateHlManager *KateHlManager::self()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( !s_self )[0m[0m[0m
[0m[0m sdHlMan.setObject(s_self, [0m[1mnew[0m[0m KateHlManager ());[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m s_self;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mKateHighlighting *KateHlManager::getHl([0m[34mint[0m[0m n)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (n < 0 || n >= ([0m[34mint[0m[0m) hlList.count())[0m[0m[0m
[0m[0m n = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlList.at(n);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::nameFind([0m[34mconst[0m[0m QString &name)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m z (hlList.count() - [0m[34;1m1[0m[0m);[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (; z > 0; z--)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (hlList.at(z)->name() == name)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m z;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m z;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::detectHighlighting (KateDocument *doc)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m hl = wildcardFind( doc->url().filename() );[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( hl < 0 )[0m[0m[0m
[0m[0m hl = mimeFind ( doc );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hl;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::wildcardFind([0m[34mconst[0m[0m QString &fileName)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mint[0m[0m result = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((result = realWildcardFind(fileName)) != [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m result;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m length = fileName.length();[0m[0m[0m
[0m[0m QString backupSuffix = KateDocumentConfig::global()->backupSuffix();[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (fileName.endsWith(backupSuffix)) {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((result = realWildcardFind(fileName.left(length - backupSuffix.length()))) != [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m result;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (QStringList::Iterator it = commonSuffixes.begin(); it != commonSuffixes.end(); ++it) {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (*it != backupSuffix && fileName.endsWith(*it)) {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((result = realWildcardFind(fileName.left(length - (*it).length()))) != [0m[34;1m-1[0m[0m)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m result;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::realWildcardFind([0m[34mconst[0m[0m QString &fileName)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QRegExp sep([0m[31m"\\s*;\\s*"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m QPtrList highlights;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHighlighting *highlight = hlList.first(); highlight != 0L; highlight = hlList.next()) {[0m[0m[0m
[0m[0m highlight->loadWildcards();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (QStringList::Iterator it = highlight->getPlainExtensions().begin(); it != highlight->getPlainExtensions().end(); ++it)[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (fileName.endsWith((*it)))[0m[0m[0m
[0m[0m highlights.append(highlight);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34mint[0m[0m i = 0; i < ([0m[34mint[0m[0m)highlight->getRegexpExtensions().count(); i++) {[0m[0m[0m
[0m[0m QRegExp re = highlight->getRegexpExtensions()[i];[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (re.exactMatch(fileName))[0m[0m[0m
[0m[0m highlights.append(highlight);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( !highlights.isEmpty() )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m pri = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m hl = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHighlighting *highlight = highlights.first(); highlight != 0L; highlight = highlights.next())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (highlight->priority() > pri)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m pri = highlight->priority();[0m[0m[0m
[0m[0m hl = hlList.findRef (highlight);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hl;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::mimeFind( KateDocument *doc )[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QRegExp sep([0m[31m"\\s*;\\s*"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m KMimeType::Ptr mt = doc->mimeTypeForContent();[0m[0m[0m
[0m[0m[0m
[0m[0m QPtrList highlights;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHighlighting *highlight = hlList.first(); highlight != 0L; highlight = hlList.next())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QStringList l = QStringList::split( sep, highlight->getMimetypes() );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m( QStringList::Iterator it = l.begin(); it != l.end(); ++it )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( *it == mt->name() ) [0m[37;1;44m// faster than a regexp i guess?[0m[37;1;44m[0m
[0m[0m highlights.append (highlight);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( !highlights.isEmpty() )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[34mint[0m[0m pri = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m hl = [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (KateHighlighting *highlight = highlights.first(); highlight != 0L; highlight = highlights.next())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (highlight->priority() > pri)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m pri = highlight->priority();[0m[0m[0m
[0m[0m hl = hlList.findRef (highlight);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hl;[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[34;1m-1[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34muint[0m[0m KateHlManager::defaultStyles()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[34;1m14[0m[0m;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHlManager::defaultStyleName([0m[34mint[0m[0m n, [0m[34mbool[0m[0m translateNames)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QStringList names;[0m[0m[0m
[0m[0m [0m[34mstatic[0m[0m QStringList translatedNames;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (names.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m names << [0m[31m"Normal"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Keyword"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Data Type"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Decimal/Value"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Base-N Integer"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Floating Point"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Character"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"String"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Comment"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Others"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Alert"[0m[0m;[0m[0m[0m
[0m[0m names << [0m[31m"Function"[0m[0m;[0m[0m[0m
[0m[0m [0m[37;1;44m// this next one is for denoting the beginning/end of a user defined folding region[0m[37;1;44m[0m
[0m[0m names << [0m[31m"Region Marker"[0m[0m;[0m[0m[0m
[0m[0m [0m[37;1;44m// this one is for marking invalid input[0m[37;1;44m[0m
[0m[0m names << [0m[31m"Error"[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Normal"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Keyword"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Data Type"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Decimal/Value"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Base-N Integer"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Floating Point"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Character"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"String"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Comment"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Others"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Alert"[0m[0m);[0m[0m[0m
[0m[0m translatedNames << i18n([0m[31m"Function"[0m[0m);[0m[0m[0m
[0m[0m [0m[37;1;44m// this next one is for denoting the beginning/end of a user defined folding region[0m[37;1;44m[0m
[0m[0m translatedNames << i18n([0m[31m"Region Marker"[0m[0m);[0m[0m[0m
[0m[0m [0m[37;1;44m// this one is for marking invalid input[0m[37;1;44m[0m
[0m[0m translatedNames << i18n([0m[31m"Error"[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m translateNames ? translatedNames[n] : names[n];[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHlManager::getDefaults([0m[34muint[0m[0m schema, KateAttributeList &list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m list.setAutoDelete(true);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* normal = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m normal->setTextColor(Qt::black);[0m[0m[0m
[0m[0m normal->setSelectedTextColor(Qt::white);[0m[0m[0m
[0m[0m list.append(normal);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* keyword = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m keyword->setTextColor(Qt::black);[0m[0m[0m
[0m[0m keyword->setSelectedTextColor(Qt::white);[0m[0m[0m
[0m[0m keyword->setBold(true);[0m[0m[0m
[0m[0m list.append(keyword);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* dataType = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m dataType->setTextColor(Qt::darkRed);[0m[0m[0m
[0m[0m dataType->setSelectedTextColor(Qt::white);[0m[0m[0m
[0m[0m list.append(dataType);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* decimal = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m decimal->setTextColor(Qt::blue);[0m[0m[0m
[0m[0m decimal->setSelectedTextColor(Qt::cyan);[0m[0m[0m
[0m[0m list.append(decimal);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* basen = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m basen->setTextColor(Qt::darkCyan);[0m[0m[0m
[0m[0m basen->setSelectedTextColor(Qt::cyan);[0m[0m[0m
[0m[0m list.append(basen);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* floatAttribute = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m floatAttribute->setTextColor(Qt::darkMagenta);[0m[0m[0m
[0m[0m floatAttribute->setSelectedTextColor(Qt::cyan);[0m[0m[0m
[0m[0m list.append(floatAttribute);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* charAttribute = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m charAttribute->setTextColor(Qt::magenta);[0m[0m[0m
[0m[0m charAttribute->setSelectedTextColor(Qt::magenta);[0m[0m[0m
[0m[0m list.append(charAttribute);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* string = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m string->setTextColor(QColor::QColor([0m[31m"#D00"[0m[0m));[0m[0m[0m
[0m[0m string->setSelectedTextColor(Qt::red);[0m[0m[0m
[0m[0m list.append(string);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* comment = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m comment->setTextColor(Qt::darkGray);[0m[0m[0m
[0m[0m comment->setSelectedTextColor(Qt::gray);[0m[0m[0m
[0m[0m comment->setItalic(true);[0m[0m[0m
[0m[0m list.append(comment);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* others = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m others->setTextColor(Qt::darkGreen);[0m[0m[0m
[0m[0m others->setSelectedTextColor(Qt::green);[0m[0m[0m
[0m[0m list.append(others);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* alert = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m alert->setTextColor(Qt::white);[0m[0m[0m
[0m[0m alert->setSelectedTextColor( QColor::QColor([0m[31m"#FCC"[0m[0m) );[0m[0m[0m
[0m[0m alert->setBold(true);[0m[0m[0m
[0m[0m alert->setBGColor( QColor::QColor([0m[31m"#FCC"[0m[0m) );[0m[0m[0m
[0m[0m list.append(alert);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* functionAttribute = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m functionAttribute->setTextColor(Qt::darkBlue);[0m[0m[0m
[0m[0m functionAttribute->setSelectedTextColor(Qt::white);[0m[0m[0m
[0m[0m list.append(functionAttribute);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* regionmarker = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m regionmarker->setTextColor(Qt::white);[0m[0m[0m
[0m[0m regionmarker->setBGColor(Qt::gray);[0m[0m[0m
[0m[0m regionmarker->setSelectedTextColor(Qt::gray);[0m[0m[0m
[0m[0m list.append(regionmarker);[0m[0m[0m
[0m[0m[0m
[0m[0m KateAttribute* error = [0m[1mnew[0m[0m KateAttribute();[0m[0m[0m
[0m[0m error->setTextColor(Qt::red);[0m[0m[0m
[0m[0m error->setUnderline(true);[0m[0m[0m
[0m[0m error->setSelectedTextColor(Qt::red);[0m[0m[0m
[0m[0m list.append(error);[0m[0m[0m
[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Default Item Styles - Schema "[0m[0m + KateFactory::self()->schemaManager()->name(schema));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m z = 0; z < defaultStyles(); z++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m KateAttribute *i = list.at(z);[0m[0m[0m
[0m[0m QStringList s = config->readListEntry(defaultStyleName(z));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!s.isEmpty())[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mwhile[0m[0m( s.count()<[0m[34;1m8[0m[0m)[0m[0m[0m
[0m[0m s << [0m[31m""[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m QString tmp;[0m[0m[0m
[0m[0m QRgb col;[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[0]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); i->setTextColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m1[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m); i->setSelectedTextColor(col); }[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m2[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) i->setBold(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m3[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) i->setItalic(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[4]; [0m[1mif[0m[0m (!tmp.isEmpty()) i->setStrikeOut(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m5[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) i->setUnderline(tmp!=[0m[31m"0"[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m6[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( tmp != [0m[31m"-"[0m[0m )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m);[0m[0m[0m
[0m[0m i->setBGColor(col);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m i->clearAttribute(KateAttribute::BGColor);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m tmp=s[[0m[34;1m7[0m[0m]; [0m[1mif[0m[0m (!tmp.isEmpty()) {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( tmp != [0m[31m"-"[0m[0m )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m col=tmp.toUInt(0,[0m[34;1m16[0m[0m);[0m[0m[0m
[0m[0m i->setSelectedBGColor(col);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m i->clearAttribute(KateAttribute::SelectedBGColor);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateHlManager::setDefaults([0m[34muint[0m[0m schema, KateAttributeList &list)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KConfig *config = KateHlManager::self()->self()->getKConfig();[0m[0m[0m
[0m[0m config->setGroup([0m[31m"Default Item Styles - Schema "[0m[0m + KateFactory::self()->schemaManager()->name(schema));[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m z = 0; z < defaultStyles(); z++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m QStringList settings;[0m[0m[0m
[0m[0m KateAttribute *i = list.at(z);[0m[0m[0m
[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::TextColor)?QString::number(i->textColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::SelectedTextColor)?QString::number(i->selectedTextColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::Weight)?(i->bold()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::Italic)?(i->italic()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::StrikeOut)?(i->strikeOut()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::Underline)?(i->underline()?[0m[31m"1"[0m[0m:[0m[31m"0"[0m[0m):[0m[31m""[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::BGColor)?QString::number(i->bgColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m"-"[0m[0m);[0m[0m[0m
[0m[0m settings<<(i->itemSet(KateAttribute::SelectedBGColor)?QString::number(i->selectedBGColor().rgb(),[0m[34;1m16[0m[0m):[0m[31m"-"[0m[0m);[0m[0m[0m
[0m[0m settings<<[0m[31m"---"[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m config->writeEntry(defaultStyleName(z),settings);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[32memit[0m[0m changed();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mint[0m[0m KateHlManager::highlights()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m ([0m[34mint[0m[0m) hlList.count();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHlManager::hlName([0m[34mint[0m[0m n)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlList.at(n)->name();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHlManager::hlNameTranslated([0m[34mint[0m[0m n)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlList.at(n)->nameTranslated();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHlManager::hlSection([0m[34mint[0m[0m n)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlList.at(n)->section();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mbool[0m[0m KateHlManager::hlHidden([0m[34mint[0m[0m n)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hlList.at(n)->hidden();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[0mQString KateHlManager::identifierForName([0m[34mconst[0m[0m QString& name)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m KateHighlighting *hl = 0;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ((hl = hlDict[name]))[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m hl->getIdentifier ();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m QString();[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mbool[0m[0m KateHlManager::resetDynamicCtxs()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (forceNoDCReset)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (lastCtxsReset.elapsed() < KATE_DYNAMIC_CONTEXTS_RESET_DELAY)[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m [0m[1mfalse[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m KateHighlighting *hl;[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m (hl = hlList.first(); hl; hl = hlList.next())[0m[0m[0m
[0m[0m hl->dropDynamicContexts();[0m[0m[0m
[0m[0m[0m
[0m[0m dynamicCtxsCount = 0;[0m[0m[0m
[0m[0m lastCtxsReset.start();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mreturn[0m[0m true;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END[0m[30;43;1m[0m
[0m[0m[0m
[0m[30;43;1m//BEGIN KateHighlightAction[0m[30;43;1m[0m
[0m[34mvoid[0m[0m KateViewHighlightAction::init()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m m_doc = 0;[0m[0m[0m
[0m[0m subMenus.setAutoDelete( true );[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[32mconnect[0m[0m(popupMenu(),[0m[32mSIGNAL[0m[0m(aboutToShow()),this,[0m[32mSLOT[0m[0m(slotAboutToShow()));[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateViewHighlightAction::updateMenu (Kate::Document *doc)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m m_doc = doc;[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateViewHighlightAction::slotAboutToShow()[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m Kate::Document *doc=m_doc;[0m[0m[0m
[0m[0m [0m[34mint[0m[0m count = KateHlManager::self()->highlights();[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34mint[0m[0m z=0; zhlNameTranslated (z);[0m[0m[0m
[0m[0m QString hlSection = KateHlManager::self()->hlSection (z);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!KateHlManager::self()->hlHidden(z))[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m ( !hlSection.isEmpty() && (names.contains(hlName) < [0m[34;1m1[0m[0m) )[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (subMenusName.contains(hlSection) < [0m[34;1m1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m subMenusName << hlSection;[0m[0m[0m
[0m[0m QPopupMenu *menu = [0m[1mnew[0m[0m QPopupMenu ();[0m[0m[0m
[0m[0m subMenus.append(menu);[0m[0m[0m
[0m[0m popupMenu()->insertItem ( [0m[35m'&'[0m[0m + hlSection, menu);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m m = subMenusName.findIndex (hlSection);[0m[0m[0m
[0m[0m names << hlName;[0m[0m[0m
[0m[0m subMenus.at(m)->insertItem ( [0m[35m'&'[0m[0m + hlName, this, [0m[32mSLOT[0m[0m(setHl([0m[34mint[0m[0m)), 0, z);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m [0m[1melse[0m[0m [0m[1mif[0m[0m (names.contains(hlName) < [0m[34;1m1[0m[0m)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m names << hlName;[0m[0m[0m
[0m[0m popupMenu()->insertItem ( [0m[35m'&'[0m[0m + hlName, this, [0m[32mSLOT[0m[0m(setHl([0m[34mint[0m[0m)), 0, z);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (!doc) [0m[1mreturn[0m[0m;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mfor[0m[0m ([0m[34muint[0m[0m i=0;icount();i2++)[0m[0m[0m
[0m[0m {[0m[0m[0m
[0m[0m subMenus.at(i)->setItemChecked(subMenus.at(i)->idAt(i2),[0m[1mfalse[0m[0m);[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m }[0m[0m[0m
[0m[0m popupMenu()->setItemChecked (0, [0m[1mfalse[0m[0m);[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[34mint[0m[0m i = subMenusName.findIndex (KateHlManager::self()->hlSection(doc->hlMode()));[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (i >= 0 && subMenus.at(i))[0m[0m[0m
[0m[0m subMenus.at(i)->setItemChecked (doc->hlMode(), true);[0m[0m[0m
[0m[0m [0m[1melse[0m[0m[0m
[0m[0m popupMenu()->setItemChecked (0, true);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[0m[0m
[0m[34mvoid[0m[0m KateViewHighlightAction::setHl ([0m[34mint[0m[0m mode)[0m[0m[0m
[0m[0m{[0m[0m[0m
[0m[0m Kate::Document *doc=m_doc;[0m[0m[0m
[0m[0m[0m
[0m[0m [0m[1mif[0m[0m (doc)[0m[0m[0m
[0m[0m doc->setHlMode(([0m[34muint[0m[0m)mode);[0m[0m[0m
[0m[0m}[0m[0m[0m
[0m[30;43;1m//END KateViewHighlightAction[0m[30;43;1m[0m
[0m[0m[0m
[0m[37;1;44m// kate: space-indent on; indent-width 2; replace-tabs on;[0m[37;1;44m[0m
[0mtesting standalone
make: *** [test_dynamic] Hangup