Browse Source

Initial import of qscintilla from 2007

tags/r14.0.0
Timothy Pearson 7 years ago
commit
664e37abfe
100 changed files with 39360 additions and 0 deletions
  1. 937
    0
      ChangeLog
  2. 280
    0
      LICENSE
  3. 114
    0
      NEWS
  4. 128
    0
      README
  5. 49
    0
      README.MacOS
  6. 13
    0
      designer/designer.pro
  7. 154
    0
      designer/qscintillaplugin.cpp
  8. 249
    0
      doc/Scintilla/Design.html
  9. 56
    0
      doc/Scintilla/Icons.html
  10. 226
    0
      doc/Scintilla/Lexer.txt
  11. 20
    0
      doc/Scintilla/License.txt
  12. BIN
      doc/Scintilla/SciBreak.jpg
  13. 251
    0
      doc/Scintilla/SciCoding.html
  14. BIN
      doc/Scintilla/SciRest.jpg
  15. BIN
      doc/Scintilla/SciTEIco.png
  16. BIN
      doc/Scintilla/SciWord.jpg
  17. 5350
    0
      doc/Scintilla/ScintillaDoc.html
  18. 70
    0
      doc/Scintilla/ScintillaDownload.html
  19. 5296
    0
      doc/Scintilla/ScintillaHistory.html
  20. 507
    0
      doc/Scintilla/ScintillaRelated.html
  21. 178
    0
      doc/Scintilla/ScintillaToDo.html
  22. 375
    0
      doc/Scintilla/ScintillaUsage.html
  23. 142
    0
      doc/Scintilla/Steps.html
  24. 198
    0
      doc/Scintilla/index.html
  25. 54
    0
      doc/html/annotated.html
  26. 1014
    0
      doc/html/classQextScintilla-members.html
  27. 4920
    0
      doc/html/classQextScintilla.html
  28. 30
    0
      doc/html/classQextScintillaAPIs-members.html
  29. 151
    0
      doc/html/classQextScintillaAPIs.html
  30. 769
    0
      doc/html/classQextScintillaBase-members.html
  31. 3465
    0
      doc/html/classQextScintillaBase.html
  32. 31
    0
      doc/html/classQextScintillaCommand-members.html
  33. 176
    0
      doc/html/classQextScintillaCommand.html
  34. 30
    0
      doc/html/classQextScintillaCommandSet-members.html
  35. 168
    0
      doc/html/classQextScintillaCommandSet.html
  36. 29
    0
      doc/html/classQextScintillaDocument-members.html
  37. 64
    0
      doc/html/classQextScintillaDocument.html
  38. 66
    0
      doc/html/classQextScintillaLexer-members.html
  39. 910
    0
      doc/html/classQextScintillaLexer.html
  40. 87
    0
      doc/html/classQextScintillaLexerBash-members.html
  41. 560
    0
      doc/html/classQextScintillaLexerBash.html
  42. 76
    0
      doc/html/classQextScintillaLexerBatch-members.html
  43. 345
    0
      doc/html/classQextScintillaLexerBatch.html
  44. 99
    0
      doc/html/classQextScintillaLexerCPP-members.html
  45. 753
    0
      doc/html/classQextScintillaLexerCPP.html
  46. 89
    0
      doc/html/classQextScintillaLexerCSS-members.html
  47. 520
    0
      doc/html/classQextScintillaLexerCSS.html
  48. 101
    0
      doc/html/classQextScintillaLexerCSharp-members.html
  49. 261
    0
      doc/html/classQextScintillaLexerCSharp.html
  50. 75
    0
      doc/html/classQextScintillaLexerDiff-members.html
  51. 243
    0
      doc/html/classQextScintillaLexerDiff.html
  52. 184
    0
      doc/html/classQextScintillaLexerHTML-members.html
  53. 1014
    0
      doc/html/classQextScintillaLexerHTML.html
  54. 101
    0
      doc/html/classQextScintillaLexerIDL-members.html
  55. 186
    0
      doc/html/classQextScintillaLexerIDL.html
  56. 101
    0
      doc/html/classQextScintillaLexerJava-members.html
  57. 138
    0
      doc/html/classQextScintillaLexerJava.html
  58. 101
    0
      doc/html/classQextScintillaLexerJavaScript-members.html
  59. 261
    0
      doc/html/classQextScintillaLexerJavaScript.html
  60. 85
    0
      doc/html/classQextScintillaLexerLua-members.html
  61. 514
    0
      doc/html/classQextScintillaLexerLua.html
  62. 75
    0
      doc/html/classQextScintillaLexerMakefile-members.html
  63. 318
    0
      doc/html/classQextScintillaLexerMakefile.html
  64. 91
    0
      doc/html/classQextScintillaLexerPOV-members.html
  65. 613
    0
      doc/html/classQextScintillaLexerPOV.html
  66. 101
    0
      doc/html/classQextScintillaLexerPerl-members.html
  67. 621
    0
      doc/html/classQextScintillaLexerPerl.html
  68. 75
    0
      doc/html/classQextScintillaLexerProperties-members.html
  69. 450
    0
      doc/html/classQextScintillaLexerProperties.html
  70. 97
    0
      doc/html/classQextScintillaLexerPython-members.html
  71. 661
    0
      doc/html/classQextScintillaLexerPython.html
  72. 99
    0
      doc/html/classQextScintillaLexerRuby-members.html
  73. 451
    0
      doc/html/classQextScintillaLexerRuby.html
  74. 95
    0
      doc/html/classQextScintillaLexerSQL-members.html
  75. 629
    0
      doc/html/classQextScintillaLexerSQL.html
  76. 74
    0
      doc/html/classQextScintillaLexerTeX-members.html
  77. 261
    0
      doc/html/classQextScintillaLexerTeX.html
  78. 34
    0
      doc/html/classQextScintillaMacro-members.html
  79. 267
    0
      doc/html/classQextScintillaMacro.html
  80. 33
    0
      doc/html/classQextScintillaPrinter-members.html
  81. 252
    0
      doc/html/classQextScintillaPrinter.html
  82. 42
    0
      doc/html/deprecated.html
  83. 358
    0
      doc/html/doxygen.css
  84. BIN
      doc/html/doxygen.png
  85. 130
    0
      doc/html/functions.html
  86. 85
    0
      doc/html/functions_0x62.html
  87. 108
    0
      doc/html/functions_0x63.html
  88. 82
    0
      doc/html/functions_0x64.html
  89. 91
    0
      doc/html/functions_0x65.html
  90. 88
    0
      doc/html/functions_0x66.html
  91. 73
    0
      doc/html/functions_0x67.html
  92. 80
    0
      doc/html/functions_0x68.html
  93. 90
    0
      doc/html/functions_0x69.html
  94. 81
    0
      doc/html/functions_0x6a.html
  95. 77
    0
      doc/html/functions_0x6b.html
  96. 82
    0
      doc/html/functions_0x6c.html
  97. 89
    0
      doc/html/functions_0x6d.html
  98. 72
    0
      doc/html/functions_0x6e.html
  99. 71
    0
      doc/html/functions_0x6f.html
  100. 0
    0
      doc/html/functions_0x70.html

+ 937
- 0
ChangeLog View File

@@ -0,0 +1,937 @@
2006/11/30 9:28:17 phil
Released as v1.7.1.


2006/11/17 18:19:30 phil
Fixed the name of the generated source packages.


2006/11/11 10:33:00 phil
Fixed a compiler warning. With older versions of gcc treat it as an error.


2006/11/04 22:08:01 phil
Released as v1.7.


2006/11/03 16:10:48 phil
Fixed QextScintillaLexer::setPaper() so that it also sets the background colour
of the default style.


2006/10/29 15:27:49 phil
Renamed the Portuguese Brazilian translation files.


2006/10/27 17:14:20 phil
Updated the NEWS file.


2006/10/21 12:37:02 phil
Switched the internal build system to Qt v3.3.7.


2006/10/20 16:41:33 phil
Renamed the base package QScintilla1.
Platform portability fixes from Ulli.


2006/10/13 16:28:56 phil
Backported the fix for misaligned indentation marks.


2006/10/08 17:06:19 phil
Reset the text and paper colours and font when removing a lexer.


2006/10/06 17:48:45 phil
Added QextScintilla::lexer().
Fixed setFont(), setColor(), setEolFill() and setPaper() in QextScintillaLexer
so that they handle all styles as documented.


2006/09/29 15:59:39 phil
Fixed the documentation bug in QextScintilla::insert().


2006/09/09 17:46:26 phil
QextScintilla's setFont(), setColor() and setPaper() now work as expected when
there is no lexer (and have no effect if there is a lexer).


2006/09/04 19:24:46 phil
Fixed crash enabling setAutoCompletionFillupsEnabled() without having a lexer
or first calling setAutoCompletionFillups().


2006/08/27 17:07:13 phil
Merged Scintilla v1.71.


2006/07/30 17:19:12 phil
Added autoCompletionFillupsEnabled() and setAutoCompletionFillupsEnabled() to
QextScintilla.
Don't auto-complete numbers.
Added support for triple clicking.


2006/07/09 15:26:26 phil
Updated translations from Detlev.


2006/07/08 19:24:04 phil
Added QextScintilla::isCallTipActive().


2006/07/08 15:28:11 phil
Changed the autoindentation to be slightly cleverer when handling Python. If a
lexer does not define block end words then a block start word is ignored unless
it is the last significant word in a line.


2006/07/02 16:19:16 phil
Possibly fixed a possible problem with double clicking under Windows.


2006/07/02 14:27:26 phil
Added setWrapVisualFlags(), WrapMode::WrapCharacter, WrapVisualFlag to
QextScintilla.
The layout cache is now set according to the wrap mode.
Setting a wrap mode now disables the horizontal scrollbar.


2006/07/01 18:52:37 phil
Added cancelList(), firstVisibleLine(), isListActive(), showUserList(),
textHeight() and userListActivated() to QextScintilla.


2006/07/01 16:49:53 phil
Auto-completion changed so that subsequent start characters cause the list to
be re-created (containing a subset of the previous one).


2006/06/28 22:12:23 phil
Handle Key_Enter the same as Key_Return.
QextScintilla::foldAll() can now optionally fold all child fold points.
Added autoCompleteFromAll() and setAutoCompletionStartCharacters() to
QextScintilla.
Vastly improved the way auto-completion and call tips work.


2006/06/25 23:51:44 phil
The default fore and background colours now default to the application palette
rather than being hardcoded to black and white.


2006/06/25 21:51:58 phil
Added defaultColor() and setDefaultColor() to QextScintillaLexer.
Added color() and setColor() to QextScintilla.
Renamed eraseColor() and setEraseColor() to paper() and setPaper() in
QextScintilla.


2006/06/25 16:21:02 phil
Added a couple of extra SendScintilla overloads. One is needed for PyQt because
of the change in SIP's handling of unsigned values. The other is needed to
solve C++ problems caused by the first.
Autocompletion list entries from APIs may now contain spaces.
Added defaultPaper() and setDefaultPaper() to QextScintillaLexer.
Added eraseColor() and setEraseColor() to QextScintilla.


2006/06/21 22:41:28 phil
Removed QextScintillaLexer::styleBits() now that SCI_GETSTYLEBITSNEEDED is
available.


2006/06/21 14:39:50 phil
QextScintilla::setSelectionBackgroundColor(),
QextScintilla::setMarkerBackgroundColor() and
QextScintilla::setCaretLineBackgroundColor() now respect the alpha component.


2006/06/20 16:02:08 phil
Merged Scintilla v1.70.


2006/06/19 21:02:01 phil
Significant, and incompatible, updates to the QextScintillaLexerRuby class.


2006/06/19 15:56:38 phil
Fix for qsort helpers linkage from Ulli. (Patch sent upstream.)


2006/06/18 23:50:33 phil
Ctrl-D is now duplicate selection rather than duplicate line.
Updated the Python lexer to add support for hightlighted identifiers and
decorators.


2006/06/18 16:41:17 phil
Added the Scintilla 1.69 extensions to the low level API.


2006/06/18 14:51:41 phil
Removed the redundant .repoman file.
Synced with Scintilla v1.69 with only the minimal changes needed to compile it.


2006/06/18 13:02:16 phil
Minor repairs to the .srepo control file from the move to SVN.


2006/03/21 16:45:54 phil
Added a multi-byte character fix to QextScintilla::posFromLineIndex() from
Dandrea Francesco.


2006/03/11 19:15:56 phil
Changed the internal build system to use Qt v3.3.6.


2005/12/12 17:10:15 phil
Fixed the second occurance of the autoindenting bug.
Send context menu events (rather than execute the handler directly) so that
they can be filtered.


2005/11/03 22:39:10 phil
Fixed the leak of the standard command set when a QextScintilla instance is
destroyed.


2005/09/24 11:14:26 phil
Fixed a bug in autoindenting with AiOpening and AiClosing.


2005/09/19 16:59:01 phil
QextScintilla now disables mouse captures in it's ctor. This appeared to cause
problems on multi-head systems (and Qt should do the right thing anyway).


2005/09/13 19:53:04 phil
Fixed bug in drawing a filled rectangle without setting the pen. This caused
the fold margin to have a border after a marker had been drawn.


2005/08/30 16:29:57 phil
Released as v1.6.


2005/08/21 18:22:05 phil
Updated translations from Detlev.


2005/08/12 17:55:39 phil
Updated the Brazilian Portuguese and French translations.
Added an install target to the project file.


2005/08/10 21:52:38 phil
Added the QextScintillaLexerBatch class from Detlev.
Added the Brazilian Portuguese translations from Douglas Soares de Andrade.
Changed the default fonts for all lexers to match those used in current
versions of SciTE.


2005/08/08 20:55:49 phil
Completed the merge of Scintilla v1.65.


2005/07/27 20:45:46 phil
Updated French translations from Jul Vienne.


2005/07/27 17:32:53 phil
Updated translations from Detlev.


2005/07/26 19:49:39 phil
Added Detlev's latest translations.


2005/07/26 11:08:01 phil
Added the QextScintillaLexerDiff, QextScintillaLexerMakefile and
QextScintillaLexerProperties classes.


2005/07/24 17:11:51 phil
Added the QextScintillaLexerCSS and QextScintillaLexerTeX classes.


2005/07/20 17:04:47 phil
Added some comments about the confusing interpretation of KEYWORDSET_MAX.


2005/07/19 20:45:27 phil
Added the new German translations from Detlev.
Fixed a bug in the handling of keyword sets.


2005/07/10 11:05:35 phil
Applied the two focus fixes from Harri Porten.


2005/07/09 17:55:05 phil
Updated QextScintillaLexerSQL for Scintilla v1.64.


2005/07/06 17:47:13 phil
Added the missing #includes.
Completed the QextScintillaLexerPOV class.


2005/07/05 21:05:31 phil
Added the extra flag to QextScintilla::findFirst().
Started QextScintillaLexerPOV - not yet finished.


2005/07/04 19:18:08 phil
Added all the new v1.63 and v1.64 functionality.


2005/07/04 17:28:32 phil
Now compiles and runs.


2005/07/03 20:59:01 phil
Resolved all the CVS conflicts from merging Scintilla 1.64. Almost certain not
to compile yet.


2005/03/11 19:21:56 phil
Updated French translations from Jul Vienne.


2005/03/06 10:05:56 phil
Released as v1.5.1.


2005/02/20 08:48:49 phil
Added updated German translations from Detlev.


2005/02/19 15:18:55 phil
Added the QextScintillaLexerLua class.
Released as v1.5.


2005/02/11 22:53:09 phil
Updated the NEWS file.


2005/01/22 00:28:28 phil
Tidy up properly when destroying a QScintilla instance.


2005/01/21 17:36:26 phil
Restored the missing translation files.


2005/01/21 17:30:35 phil
Fixed bug where the widget would shrink if a scrollbar was hidden.
Added the QextScintillaBase::viewport() and QextScintillaBase::startDrag()
methods.


2005/01/14 17:34:23 phil
Updated the copyright notices.
Changes to the internal build system and to the code so that it builds with the
Borland compiler.


2005/01/05 06:54:01 phil
Updated translations from Detlev.


2004/12/26 12:31:18 phil
Added the QextScintillaLexerRuby class.


2004/10/31 16:32:17 phil
Completed the merge of Scintilla v1.62. It builds, but is otherwise untested.


2004/09/18 17:31:23 phil
Added the port of the Qt application example.


2004/09/16 08:26:31 phil
Released as v1.4.


2004/09/14 07:43:58 phil
Added French translations from Julien Vienne.


2004/09/13 17:33:54 phil
Updated the German translations from Detlev.
Probably fixed (ie. hacked) the AltGr support under Windows.


2004/09/12 15:15:31 phil
Changed the implementation of QextScintilla::isModified() to work around an
apparent bug in Scintilla.


2004/09/12 11:41:21 phil
Added the QextScintillaLexerBash class.


2004/08/25 15:34:05 phil
Added the Qt Designer plugin.
Fixed the Russian translations.


2004/08/22 15:41:59 phil
Added insert(), edgeColor(), setEdgeColor(), edgeColumn(), setEdgeColumn(),
edgeMode(), setEdgeMode(), wrapMode(), setWrapMode(),
resetSelectionBackgroundColor() and resetSelectionForegroundColor() to
QextScintilla.
Added clearKeys() and clearAlternateKeys() to QextScintillaCommandSet.


2004/07/03 14:46:33 phil
Merged Scintilla v1.61.
Added Russian translations from Alexander Daroksky.


2004/05/09 10:30:31 phil
Changed the build system so that the platform name is no longer included in the
package filename.
Released as v1.3.


2004/05/02 00:36:46 phil
Completed the merge of Scintilla v1.60.


2004/04/27 17:57:39 phil
Fixed potential buffer overflow problem in QextScintilla::text(int line).


2004/04/24 20:12:38 phil
Fixed a bug with autocompleting from the current document.


2004/04/24 09:01:37 phil
Added README.MacOS which includes the required patch to Qt v3.3.2 and earlier
versions.
Updated the NEWS file.


2004/04/18 13:35:06 phil
Fixed up the internal mini-editor test application.
Fixed the problem preventing QextScintillaDocument being usable on Windows.


2004/04/14 18:24:29 phil
Added new German translations from Detlev.
Fixed problem with losing double-clicks on Windows.
Fixed the copyright notices.


2004/04/12 19:13:52 phil
Some changes for Windows - still doesn't build there though.


2004/04/12 14:49:01 phil
Added the QextScintillaLexerPerl class.
Lexers can now provide a specific set of word characters.


2004/04/07 21:02:00 phil
Changed the implementation of the Copy() method when doing double buffered
drawing. It is now faster and, hopefully, has fixed the redraw bug on X11 (and
might also make a difference on MacOS/X).
The read-only flag only applies to user input and not program changes (to mimic
QTextEdit).


2004/04/04 16:59:56 phil
Added the QextScintillaDocument class.
Added pool() to QextScintillaBase.
Added document() and setDocument() to QextScintilla.


2004/03/28 15:16:26 phil
Renamed QextScintilla.setCaretColor() to setCaretForegroundColor().
Added recolor(), setCaretWidth(), setCaretLineVisible() and
setCaretLineBackgroundColor() to QextScintilla.
Added STYLE_MAX to QextScintillaBase.


2004/03/27 18:25:28 phil
Added setCaretColor(), setSelectionForegroundColor() and
setSelectionBackgroundColor() to QextScintilla.


2004/03/22 18:53:41 phil
Fixed QextScintilla.textChanged() so that it really is emitted only when text
has been inserted or deleted.


2004/03/22 17:51:14 phil
Fixed bug in auto-completion using the current document.
Fixed bug in dropping text into a UTF8 document.
Some other tidy ups to drag'n'drops.


2004/03/21 20:47:56 phil
Updated the default command set to match Scintilla v1.59.
Now builds successfully, but otherwise untested.


2004/03/20 18:50:39 phil
Added INDIC_BOX.
Added SC_SEL_*.
Added the SCI_SETSELECTIONMODE, SCI_GETSELECTIONMODE,
SCI_GETLINESELSTARTPOSITION, SCI_GETLINESELENDPOSITION, SCI_LINEDOWNRECTEXTEND,
SCI_LINEUPRECTEXTEND, SCI_CHARLEFTRECTEXTEND, SCI_CHARRIGHTRECTEXTEND,
SCI_HOMERECTEXTEND, SCI_VCHOMERECTEXTEND, SCI_LINEENDRECTEXTEND,
SCI_PAGEUPRECTEXTEND, SCI_PAGEDOWNRECTEXTEND, SCI_STUTTEREDPAGEUP,
SCI_STUTTEREDPAGEUPEXTEND, SCI_STUTTEREDPAGEDOWN, SCI_STUTTEREDPAGEDOWNEXTEND,
SCI_WORDLEFTEND, SCI_WORDLEFTENDEXTEND, SCI_WORDRIGHTEND,
SCI_WORDRIGHTENDEXTEND, SCI_SETWHITESPACECHARS, SCI_SETCHARSDEFAULT,
SCI_AUTOCGETCURRENT, SCI_ALLOCATE functions.
Added the SCLEX_CLW, SCLEX_CLWNOCASE, SCLEX_LOT, SCLEX_YAML, SCLEX_TEX,
SCLEX_METAPOST, SCLEX_POWERBASIC, SCLEX_FORTH, SCLEX_ERLANG, SCLEX_OCTAVE,
SCLEX_MSSQL, SCLEX_VERILOG lexers.


2004/03/20 13:33:14 phil
Changes to the internal build system to use repo rather than repoman.
Merged Scintilla v1.59. (Not tested at all - probably won't compile.)


2003/08/16 20:46:15 phil
Released as v1.2.


2003/08/12 14:56:05 phil
Merged Scintilla v1.54.
Changed the library version to 3.0.0.


2003/08/12 12:25:19 phil
Added the internal TODO file.


2003/05/23 07:22:15 phil
Updated the documentation.
Released as v1.1.


2003/05/20 10:37:03 phil
Updated translations from Detlev.
Added QextScintilla::modificationAttempted().


2003/05/16 21:30:45 phil
Merged Scintilla v1.53.
Added GlobalClass as a style of the C++ lexer (using keyword set 4).
Added foldAtElse() and setFoldAtElse() to QextScintillaLexerCPP.


2003/05/16 11:34:27 phil
Added QextScintillaBase::SCN_MODIFYATTEMPTRO.


2003/05/11 10:26:11 phil
Increased the maximum number of keyword sets to match Scintilla.
Changed references to WhiteSpace in lexers to Default (but kept WhiteSpace for
backwards compatibility).
By default the C++ lexer now folds preprocessor blocks (to match the default
SciTE properties file rather than the code).
Hopefully fixed auto-completion lists and call tips under Windows without
breaking them under X11.
Added the QextScintillaLexerHTML class.
Fixed bug where abandoned paints weren't handled properly.


2003/05/07 22:07:22 phil
Fixed the window decorations for auto-completion lists and call tips under
Windows.


2003/05/07 16:52:11 phil
Added the QextScintillaLexerSQL class.
Changed the library version number to 1.1.0.


2003/05/03 14:26:31 phil
Fixed a bug when trying to paste an empty clipboard.
Changed the library version to 1.0.1.


2003/04/26 13:59:53 phil
Updated German translations from Detlev.
Released as v1.0.


2003/04/18 22:20:13 phil
Merged Scintilla v1.52.
Added QextScintillaLexer.setDefaultFont().
Added setCallTipsForegroundColor() and setCallTipsHighlightColor() to
QextScintilla.
Changed QextScintilla.setCallTipsVisible() to interpret a negative argument as
meaning display call tips one at a time with scrolling arrows.


2003/04/13 15:11:07 phil
Foxed a documentation bug in QextScintilla.setCallTipsVisible().
Made sure that call tips are unique.


2003/04/07 11:52:00 phil
Ensured that the current item of an auto-completion list is always visible.
Fixed QextScintilla::append().
Call tips and auto-completion lists should now be non-modal.


2003/04/01 20:41:55 phil
Added the missing educational license files.


2003/04/01 20:40:50 phil
Added support for the educational version.
Fixed a few Windows build problems.


2003/03/22 16:44:11 phil
Updated German translations from Detlev.


2003/03/16 16:23:47 phil
Fully implemented the high level API to macros.
Re-ordered the default command table.


2003/03/15 23:41:40 phil
Added the QextScintillaCommand, QextScintillaCommandSet and QextScintillaMacro
classes. (The latter is not yet fully implemented.)
Added QextScintilla.standardCommands().
Brought the documentation up to date.


2003/03/14 19:48:48 phil
Fixed another Windows compile problem.
Control characters are now passed properly to Scintilla so that they can be
recognised as command keys.


2003/03/13 12:59:10 phil
Added QextScintillaAPIs.add().
The caret is now displayed when either a call tip or auto-completion list is
displayed.
Fully implemented the high level API to call tips.
Fixed bug compiling against Qt v3.0.x.


2003/03/09 18:36:46 phil
Removed the DBCS functions as QScintilla doesn't support DBCS.
Minor portability fixes for Windows.
The high level API auto-completion methods are now fully implemented.


2003/03/06 10:37:27 phil
Added QextScintilla.AutoCompletionSource, QextScintilla.autoCompleteFromAPIs(),
QextScintilla.autoCompleteFromDocument(), QextScintilla.autoCompletionSource(),
QextScintilla.autoCompletionThreshold(), QextScintilla.setAutoCompletionAPIs(),
QextScintilla.setAutoCompletionSource(),
QextScintilla.setAutoCompletionThreshold(). Note that these are just hooks and
haven't yet been implemented.


2003/03/03 18:04:52 phil
The low-level APIs to call tips and autocompletion lists should now work.
Added the QextScintillaAPIs class.


2003/03/01 14:46:48 phil
Added missing #include of stdlib.h.


2003/03/01 09:21:20 phil
Fixed compile problem for Qt v3.0.x.


2003/02/27 16:19:52 phil
Updated dates on the copyright notices.


2003/02/26 23:41:23 phil
Merged Scintilla v1.51.
Added QextScintilla.resetFoldMarginColors() and
QextScintilla.setFoldMarginColors().


2003/02/26 19:30:25 phil
Updated to Scintilla v1.50.
Added the QextScintillaBase.SendScintilla() overload that takes a QPixmap *.
SCI_MARKERDEFINEPIXMAP now takes a pointer to a QPixmap instance rather than a
pointer to raw or textual XPM image data.
QextScintilla.markerDefine() now takes a QPixmap rather than an XPM image.
Added QSCINTILLA_VERSION, QSCINTILLA_VERSION_STR and QSCINTILLA_BUILD.
Added QextScintilla.WrapMode, QextScintillaPrinter.setWrapMode() and
QextScintillaPrinter.wrapMode().


2003/01/20 09:04:46 phil
Minor tweak to build properly under IRIX.
Added QextScintilla.lineAt().


2002/12/25 10:47:33 phil
Added QextScintilla.ensureCursorVisible().


2002/12/17 13:19:42 phil
Added the QextScintillaBase::SendScintilla() overload that hides the Scintilla
RangeToFormat structure.
Added the QextScintillaPrinter class.
Changed the low level implementation of a Scintilla Surface to be a QPainter
with an attached QPaintDevice rather than a QPaintDevice. This allows the
printing code to have complete control over the QPainter.


2002/12/16 11:14:48 phil
Fixed a bug entering double-byte encoded characters in UTF-8 mode.


2002/12/15 18:31:45 phil
Fix a crash when pasting an empty string.


2002/12/11 13:48:02 phil
Released as v0.3.


2002/12/07 14:01:09 phil
Brought the documentation up to date.
Minor changes needed to build properly under Windows.
Changed the default fonts under Windows to match the SciTE ones.


2002/12/01 22:27:47 phil
Added drag'n'drop support.


2002/11/26 12:47:38 phil
Fixed bug in selectToMatchingBrace() and moveToMatchingBrace() in
QextScintilla.
Added the QextScintilla.markerDefine() overload that handles XPM pixmaps.


2002/11/22 22:42:37 phil
Added Detlev's support for different folding styles.
Added the QextScintillaBase.SendScintilla() overload that handles colours.


2002/11/21 18:56:37 phil
Fixed the value of QextScintilla.AiClosing.
Added braceMatching(), setBraceMatching(), moveToMatchingBrace(),
selectToMatchingBrace(), setMatchedBraceBackgroundColor(),
setMatchedBraceForegroundColor(), setUnmatchedBraceBackgroundColor,
setUnmatchedBraceForegroundColor() to QextScintilla.
Fixed the default lexer colours so that they match SciTE.


2002/11/18 19:35:19 phil
Added the binary versions of the translations to CVS so that the build machine
doesn't need Qt installed.
Added the QextScintillaBase.SendScintilla() that allows messages that need a
TextRange structure to be handled.
Added autoIndentStyle() and setAutoIndentStyle() to QextScintillaLexer.
Added autoIndent() and setAutoIndent() to QextScintilla.


2002/11/14 22:30:51 phil
Added full i18n support and German translations (thanks to Detlev of course).
Minor fixes for building under Windows.


2002/11/13 20:25:28 phil
Fixed QextScintilla::indent() and QextScintilla::unindent().
Removed QextScintillaBase::setScintillaProperty() (the SCI_SETPROPERTY message
should be used instead).
Added another QextScintillaBase::sendScintilla() overload to make using
SCI_SETPROPERTY easier to use.
Added convertEols(), eolMode(), setEolMode(), eolVisibility(),
setEolVisibility(), whitespaceVisibility(), setWhitespaceVisibility() to
QextScintilla.
Added foldComments(), setFoldComments(), foldQuotes(), setFoldQuotes(),
indentationWarning(), setIndentationWarning() to QextScintillaLexerPython.
Added foldComments(), setFoldComments(), foldCompact(), setFoldCompact(),
foldPreprocessor(), setFoldPreprocessor(), stylePreprocessor(),
setStylePreprocessor() to QextScintillaLexerCPP.
Added support for case insensitive keywords to QextScintillaLexerCPP.
Added various methods to transparently handle lexer properties including
reading and writing them from and to settings files.
Fixed the handling of the context menu.


2002/11/03 20:17:03 phil
Updated to Scintilla v1.49.
Fixed bugs in end-of-line fill settings in QextScintillaLexer.
Fixed bugs in UTF support (thanks to Nickolay Kolchin-Semyonov).
Added isUtf8() and setUtf8() to QextScintilla.
Removed SCN_MODIFYATTEMPTRO as it is now deprecated.


2002/10/25 18:59:58 phil
Added QextScintilla::lines().
Fixed a copy/paste bug.
Removed the incorrect fix for the Scintilla indentation guides bug and worked
around it, rather than fixing it properly.


2002/10/24 08:41:54 phil
Added foldAll(), folding() and setFolding() to QextScintilla.
Added setScintillaProperty() to QextScintillaBase.
Released as v0.2.


2002/10/23 17:26:44 phil
Fixed a Scintilla bug where indentation guides were being displayed incorrectly
when indentations didn't use tabs.
Fixed pasting from the clipboard.


2002/10/22 21:27:39 phil
Added cursorPositionChanged(), replace(), zoomIn(), zoomOut() and zoomTo() to
QextScintilla.
Fixed some bugs in QextScintilla::findFirst().


2002/10/21 21:26:53 phil
Added findFirst(), findNext(), removeSelectedText(), getCursorPosition(),
beginUndoAction(), endUndoAction(), redo(), undo(), isRedoAvailable(),
isUndoAvailable() and the text() overload to QextScintilla.


2002/10/20 21:59:44 phil
Added backspaceDeindents(), setBackspaceDeindents(), tabIndents(),
setTabIndents(), tabWidth(), setTabWidth(), indent(), unindent(),
indentation(), setIndentation(), indentationWidth(), setIndentationWidth(),
indentationsUseTabs(), setIndentationsUseTabs() to QextScintilla.
Made some changes to the clipboard management, but more work is still needed.


2002/10/19 18:41:23 phil
Added clear(), copy(), copyAvailable(), cut(), getSelection(),
hasSelectedText(), indentationGuides(), insertAt(), paste(), selectAll(),
selectedText(), selectionChanged(), setCursorPosition(),
setIndentationGuides(), setIndentationGuidesBackgroundColor(),
setIndentationGuidesForegroundColor() setSelection() to QextScintilla.
Added QSCN_SELCHANGED() to QextScintillaBase.


2002/10/18 17:29:06 phil
Added the QextScintillaLexerCPP, QextScintillaLexerCSharp,
QextScintillaLexerIDL, QextScintillaLexerJava and QextScintillaLexerJavaScript
classes.
Fixed incorrect font defaults for the Python lexer.


2002/10/12 23:44:51 phil
Fixed the QextScintilla::marginClicked() signature and changed it to pass the
line number rather than the pixel position.
Added mouse wheel support from Detlev.
Setting the lexer no longer resets all the styles.
The cursor shape now changes when moved across the text area and margins.
Added ensureLineVisible(), setMarginsBackgroundColor(),
setMarginsForegroundColor(), setMarginsFont() and the overloaded
setMarginWidth() to QextScintilla.
Changed the visible policy to match SciTE's default.


2002/10/11 14:14:19 phil
Added the end-of-line fill as a lexer stype options to the high-level API.
Fixed the default Python styles so that they are the same as SciTE (at least on
UNIX).
Fixed the bug that left cursor artefacts lying around.


2002/10/06 16:00:05 phil
Removed QextScintillaBase::Colourise().
Added QextScintillaLexer and QextScintillaLexerPython.


2002/10/05 13:33:23 phil
Documented margins and markers.
Added support for margins and markers to QextScintilla.


2002/10/03 10:45:34 phil
Fixed the README regarding building as a static library.
QextScintilla::append() behaves more like QTextEdit::append().
Added setText(), text(), textChanged(), isReadOnly(), setReadOnly(),
isModified(), setModified(), modificationChanged() and length() to
QextScintilla.
More documentation.


2002/10/01 17:37:10 phil
Changes required to build under Windows.


2002/09/30 15:31:10 phil
Added the QextScintillaBase::SendScintilla() overload to make it easier to pass
strings from PyQt.


2002/09/28 08:56:05 phil
Added the doxygen configuration file.
The internal build system now creates the doxygen documentation.
The original Scintilla documentation is now installed in a sub-directory of the
doc directory.
Added QextScintillaBase::Colourise().


2002/09/18 14:46:34 phil
Released as v0.1.


2002/09/18 08:35:31 phil
Changed the re-implemented protected methods in QextScintillaBase so that they
are like the rest of Qt.


2002/09/17 18:17:41 phil
The context menu now works.
Key presses are now handled.
Focus changes are now handled.
Added all the installation/licensing infrastructure.


2002/09/17 11:08:34 phil
The mouse handling now seems to be correct.
The context menu is displayed, but none of the options yet do anything.


2002/09/16 18:53:31 phil
Scrollbars now seem to be working.


2002/09/16 08:09:40 phil
Further refined the low-level API so that it is as close as possible to the
standard Scintilla API.


2002/09/16 00:35:44 phil
Completed the implementation of the low-level API (ie. QextScintillaBase).
Disabled INCLUDE_DEPRECATED_FEATURES for the Qt port and fixed the bugs in the
main code that appear as a consequence.


2002/09/15 19:00:10 phil
Fixed the paint event handling - we now seem to have a basically working
editor.


2002/09/14 21:49:56 phil
Added the start of the Qt port, including a simple test editor. As yet nothing
works, but everything compiles.


+ 280
- 0
LICENSE View File

@@ -0,0 +1,280 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.

We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

+ 114
- 0
NEWS View File

@@ -0,0 +1,114 @@
v1.7 4th November 2006
- Merged Scintilla v1.71.
- Added support for triple clicking.
- Ctrl-D now duplicates the selection rather than the current line.
- The setSelectionBackgroundColor(), setMarkerBackgroundColor() and
setCaretLineBackgroundColor() methods of QextScintilla now respect the
alpha component of the background colour.
- Added defaultColor(), setDefaultColor(), defaultPaper() and
setDefaultPaper() to QextScintillaLexer.
- Added color(), paper(), setColor() and setPaper() to QextScintilla.
- Added cancelList(), isListActive(), showUserList() and userListActivated()
to QextScintilla.
- Added setWrapVisualFlags(), WrapMode::WrapCharacter and WrapVisualFlag to
QextScintilla.
- Added isCallTipActive(), firstVisibleLine(), lexer() and textHeight() to
QextScintilla.
- QextScintilla::foldAll() can now optionally fold all child fold points.
- Auto-completion lists can now be generated from the current document and
API files at the same time. Added autoCompletionFillupsEnabled(),
autoCompleteFromAll(), setAutoCompletionFillupsEnabled() and
setAutoCompletionStartCharacters() to QextScintilla.
- The QextScintillaLexerPython class now handles decorators.
- The QextScintillaLexerRuby class has significant and incompatible changes
to its configurable styles.

v1.6 30th August 2005
- Merged Scintilla v1.65.
- Added the QextScintillaLexerCSS, QextScintillaLexerDiff,
QextScintillaLexerMakefile, QextScintillaLexerPOV,
QextScintillaLexerProperties and QextScintillaLexerBatch classes.
- QextScintilla::findFirst() will now optionally not make the found text
visible.
- Added Brazilian Portuguese translations.

v1.5.1 6th March 2005
- Updated the German translations.

v1.5 19th February 2005
- Merged Scintilla v1.62.
- Added the QextScintillaLexerLua and QextScintillaLexerRuby classes.
- Added viewport() and startDrag() to QextScintillaBase.

v1.4 16th September 2004
- Merged Scintilla v1.61.
- Added the QextScintillaLexerBash class.
- Added insert(), edgeColor(), setEdgeColor(), edgeColumn(), setEdgeColumn(),
edgeMode(), setEdgeMode(), wrapMode(), setWrapMode(),
resetSelectionBackgroundColor() and resetSelectionForegroundColor() to
QextScintilla.
- Added clearKeys() and clearAlternateKeys() to QextScintillaCommandSet.
- Added French and Russian translations.
- Added the plugin for Qt Designer.

v1.3 9th May 2004
- Merged Scintilla v1.60.
- Added the QextScintillaDocument and QextScintillaLexerPerl classes.
- Added pool() to QextScintillaBase.
- Added document(), setDocument(), recolor(), setCaretForegroundColor(),
setCaretWidth(), setCaretLineVisible(), setCaretLineBackgroundColor(),
setSelectionForegroundColor() and setSelectionBackgroundColor() to
QextScintilla.

v1.2 16th August 2003
- Merged Scintilla v1.54.

v1.1 23rd May 2003
- Merged Scintilla v1.53.
- Added the QextScintillaLexerHTML and QextScintillaLexerSQL classes.
- By default the C++ lexer now folds preprocessor blocks (to match the
default SciTE properties file rather than the code).
- Added GlobalClass as a style of the C++ lexer (using keyword set 4).
- The WhiteSpace style in all existing lexers is now deprecated and Default
should be used instead.
- Added foldAtElse() and setFoldAtElse() to QextScintillaLexerCPP.
- Added modificationAttempted() to QextScintilla.
- Added SCN_MODIFYATTEMPTRO() to QextScintillaBase.

v1.0 26th April 2003
- Merged Scintilla v1.52.
- Added the QextScintillaAPIs, QextScintillaCommand, QextScintillaCommandSet,
QextScintillaMacro and QextScintillaPrinter classes.
- Added autoCompleteFromAPIs(), autoCompleteFromDocument(),
autoCompletionSource(), autoCompletionThreshold(), setAutoCompletionAPIs(),
setAutoCompletionFillups(), setAutoCompletionSource(),
setAutoCompletionThreshold(), callTip(), callTipsVisible(),
clearRegisteredImages(), registerImage(), setCallTipsAPIs(),
setCallTipsBackgroundColor(), setCallTipsVisible(), ensureCursorVisible(),
lineAt(), resetFoldMarginColors(), setFoldMarginColors(),
standardCommands() to QextScintilla.
- Added setDefaultFont() to QextScintillaLexer.
- QextScintilla::markerDefine() now takes a QPixmap rather than a string
encoded XPM image.
- Added QSCINTILLA_VERSION, QSCINTILLA_VERSION_STR and QSCINTILLA_BUILD.

v0.3 11th December 2002
- Merged Scintilla v1.49.
- Added drag'n'drop support.
- Added the QextScintilla::markerDefine() overload that handles XPM pixmaps.
- Added support for different folding styles, brace matching, automatic
indentation, end-of-line characters and whitespace visibility to
QextScintilla.
- Completed the Unicode support.
- Added full i18n support and German translations.

v0.2 24th October 2002
- The beginnings of the documentation.
- It will now build under Windows.
- Added support for code folding, search & replace, zooming, undo/redo,
cut/copy/paste, indentation guides, margins, markers and the Python and C++
lexers to QextScintilla.
- Added support for wheel mice.

v0.1 18th September 2002
- The first release of the Qt port of Scintilla.

+ 128
- 0
README View File

@@ -0,0 +1,128 @@
QScintilla - a Port to Qt of Scintilla


INTRODUCTION

To quote http://www.scintilla.org/:

"Scintilla is a free source code editing component. It comes with complete
source code and a license that permits use in any free project or commercial
product.

As well as features found in standard text editing components, Scintilla
includes features especially useful when editing and debugging source code.
These include support for syntax styling, error indicators, code completion and
call tips. The selection margin can contain markers like those used in
debuggers to indicate breakpoints and the current line. Styling choices are
more open than with many editors, allowing the use of proportional fonts, bold
and italics, multiple foreground and background colours and multiple fonts."

Scintilla runs on Windows and on UNIX/Linux using the GTK+ GUI toolkit.

QScintilla is a port or Scintilla to the Qt GUI toolkit from Trolltech and runs
on any operating system supported by Qt (eg. Windows, UNIX/Linux, MacOS/X). Qt
v3 or later is required.

This version of QScintilla is based on Scintilla v1.71.


LICENSING

Scintilla is released under the following license:

"License for Scintilla and SciTE

Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>

All Rights Reserved

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation.

NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
OR PERFORMANCE OF THIS SOFTWARE."

QScintilla, however, uses the same license model as Qt itself. QScintilla is
available under the GNU GPL on UNIX/Linux systems. QScintilla is available
under a commercial license on Windows, UNIX/Linux and MacOS/X systems. The
commercial license allows closed source applications using QScintilla to be
developed and distributed.

See the file "LICENSE" to see what license this copy of QScintilla is released
under.


INSTALLATION

Check for any other README files in this directory that relate to your
particular platform. Feel free to contribute a README for your platform or to
provide updates to any existing documentation.

To configure QScintilla, edit the file "qscintilla.pro" in the "qt" directory.
As supplied, QScintilla is built as a shared library/DLL with thread support
enabled, and installed in the same directory as the Qt library.

To install the QScintilla library in another directory, edit the value of
"DESTDIR". To build the library in situ (in the "qt" directory) then comment
out "DESTDIR" entirely - this will also mean that you will not need root
privileges under UNIX/Linux.

If your Qt library was built without thread support, edit the value of "CONFIG"
and remove "thread".

If you want to build a static library, edit the value of "CONFIG" and replace
"dll" with "staticlib", and edit the value of "DEFINES" and remove
"QEXTSCINTILLA_MAKE_DLL".

To build QScintilla on UNIX/Linux/MacOS, run (as root):

cd qt
qmake qscintilla.pro
make
make install

You may also need to run:

ldconfig

If you are using the GNU C++ compiler you might want to edit "qt/Makefile" and
add "-fno-exceptions" to "CXXFLAGS" before running "make".

To build QScintilla on Windows, run:

cd qt
qmake qscintilla.pro
nmake
nmake install
copy %QTDIR%\lib\qscintilla.dll %QTDIR%\bin

Please do not try to build the GPL version of QScintilla under Windows. It
will not work and you would be contravening the GPL.


Qt DESIGNER PLUGIN

QScintilla includes an optional plugin for Qt Designer that allows QScintilla
instances to be included in GUI designs just like any other Qt widget.

To build the plugin on all platforms, make sure QScintilla is installed and
then run (as root or administrator):

cd designer
qmake designer
make

On Windows you may need to run "nmake" rather than "make".


Phil Thompson
phil@riverbankcomputing.co.uk

+ 49
- 0
README.MacOS View File

@@ -0,0 +1,49 @@
QScintilla on MacOS/X


All versions of Qt for MacOS/X up to an including Qt v3.3.2 have a bug which
crashes QScintilla. The following patch needs to be applied to Qt:


--- src/kernel/qt_mac.h 2004-04-21 00:15:43 -0000
+++ src/kernel/qt_mac.h 2004-04-21 00:15:43 -0000

@@ -395,22 +395,28 @@
inline QMacSavedPortInfo::~QMacSavedPortInfo()
{
if(mac_window_count) {
- if(valid_gworld)
- SetGWorld(world,handle); //always do this one first
- else
- setPaintDevice(qt_mac_safe_pdev);
- SetClip(clip);
- DisposeRgn(clip);
- SetPenState(&pen);
- RGBForeColor(&fore);
- RGBBackColor(&back);
+ bool set_state = false;
+ if(valid_gworld) {
+ set_state = IsValidPort(world);
+ if(set_state)
+ SetGWorld(world,handle); //always do this one first
+ } else {
+ setPaintDevice(qt_mac_safe_pdev);
+ }
+ if(set_state) {
+ SetClip(clip);
+ SetPenState(&pen);
+ RGBForeColor(&fore);
+ RGBBackColor(&back);
+ }
+ DisposeRgn(clip);
}
if(fi)
delete fi;
qt_mac_current_painter = painter;
#if defined(QT_THREAD_SUPPORT)
if(qt_mac_port_mutex)
- qt_mac_port_mutex->unlock();
+ qt_mac_port_mutex->unlock();
#endif
}

+ 13
- 0
designer/designer.pro View File

@@ -0,0 +1,13 @@
# This is the qmake file for the QScintilla plugin for Qt Designer.


TEMPLATE = lib
TARGET = qscintillaplugin
# DESTDIR = $(QTDIR)/plugins/designer
INCLUDEPATH = ../qt
LIBPATH += ../tmplib
CONFIG += qt warn_on release plugin

SOURCES += qscintillaplugin.cpp

LIBS += -lqscintilla

+ 154
- 0
designer/qscintillaplugin.cpp View File

@@ -0,0 +1,154 @@
// This implements the QScintilla plugin for Qt Designer.


#include <qwidgetplugin.h>

#include "../qt/qextscintilla.h"


static const char *qscintilla_pixmap[]={
"22 22 35 1",
"m c #000000",
"n c #000033",
"p c #003300",
"r c #003333",
"v c #330000",
"o c #330033",
"l c #333300",
"h c #333333",
"c c #333366",
"d c #336666",
"u c #336699",
"E c #3366cc",
"k c #663333",
"i c #663366",
"b c #666666",
"e c #666699",
"A c #6666cc",
"G c #669966",
"f c #669999",
"j c #6699cc",
"y c #6699ff",
"t c #996666",
"a c #999999",
"g c #9999cc",
"s c #9999ff",
"C c #99cc99",
"x c #99cccc",
"w c #99ccff",
"F c #cc99ff",
"q c #cccccc",
"# c #ccccff",
"B c #ccffcc",
"z c #ccffff",
"D c #ffffcc",
". c none",
"........#abcda........",
"......abefghdidcf.....",
".....cadhfaehjheck....",
"....leh.m.ncbehjddo...",
"...depn.hqhqhr#mccch..",
"..bb.hcaeh.hqersjhjcd.",
".tcm.uqn.hc.uvwxhuygha",
".feh.n.hb.hhzemcwhmuAm",
"Bgehghqqme.eo#wlnysbnj",
"awhdAzn.engjepswhmuyuj",
"bCh#m.de.jpqwbmcwemlcz",
"hcb#xh.nd#qrbswfehwzbm",
"bd#d.A#zor#qmgbzwgjgws",
"ajbcuqhqzchwwbemewchmr",
"Dcn#cwmhgwehgsxbmhEjAc",
".uanauFrhbgeahAAbcbuhh",
".bohdAegcccfbbebuucmhe",
"..briuauAediddeclchhh.",
"...hcbhjccdecbceccch..",
"....nhcmeccdccephcp...",
".....crbhchhhrhhck....",
"......tcmdhohhcnG....."
};


class QScintillaPlugin : public QWidgetPlugin
{
public:
QScintillaPlugin() {};

QStringList keys() const;
QWidget *create(const QString &classname, QWidget *parent = 0, const char *name = 0);
QString group(const QString &) const;
QIconSet iconSet(const QString &) const;
QString includeFile(const QString &) const;
QString toolTip(const QString &) const;
QString whatsThis(const QString &) const;
bool isContainer(const QString &) const;
};


QStringList QScintillaPlugin::keys() const
{
QStringList list;

list << "QextScintilla";

return list;
}


QWidget *QScintillaPlugin::create(const QString &key, QWidget *parent, const char *name)
{
if (key == "QextScintilla")
return new QextScintilla(parent, name);

return 0;
}


QString QScintillaPlugin::group(const QString &feature) const
{
if (feature == "QextScintilla")
return "Input";

return QString::null;
}


QIconSet QScintillaPlugin::iconSet(const QString &) const
{
return QIconSet(QPixmap(qscintilla_pixmap));
}


QString QScintillaPlugin::includeFile(const QString &feature) const
{
if (feature == "QextScintilla")
return "qextscintilla.h";

return QString::null;
}


QString QScintillaPlugin::toolTip(const QString &feature) const
{
if (feature == "QextScintilla")
return "QScintilla Programmer's Editor";

return QString::null;
}


QString QScintillaPlugin::whatsThis(const QString &feature) const
{
if (feature == "QextScintilla")
return "A port to Qt of the Scintilla programmer's editor";

return QString::null;
}


bool QScintillaPlugin::isContainer(const QString &) const
{
return FALSE;
}


Q_EXPORT_PLUGIN(QScintillaPlugin)

+ 249
- 0
doc/Scintilla/Design.html View File

@@ -0,0 +1,249 @@
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<meta name="generator" content="SciTE" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Scintilla and SciTE
</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
</td>
<td>
<a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
Component Design</font></a>
</td>
</tr>
</table>
<h2>
Top level structure
</h2>
<p>
Scintilla consists of three major layers of C++ code
</p>
<ul>
<li>
Portability Library
</li>
<li>
Core Code
</li>
<li>
Platform Events and API
</li>
</ul>
<p>
The primary purpose of this structure is to separate the platform dependent code from the
platform independent core code. This makes it easier to port Scintilla to a new platform and
ensures that most readers of the code do not have to deal with platform details. To minimise
portability problems and avoid code bloat, a conservative subset of C++ is used in Scintilla
with no exception handling, run time type information or use of the standard C++
library and with limited use of templates.
</p>
<p>
The currently supported platforms, Windows, GTK+/Linux and wxWindows are fairly similar in
many ways.
Each has windows, menus and bitmaps. These features generally work in similar ways so each
has a way to move a window or draw a red line. Sometimes one platform requires a sequence of
calls rather than a single call. At other times, the differences are more profound. Reading
the Windows clipboard occurs synchronously but reading the GTK+ clipboard requires a request
call that will be asynchronously answered with a message containing the clipboard data.
The wxWindows platform is available from the <a href="http://wxwindows.org/">wxWindows site</a>
</p>
<br />
<h3>
Portability Library
</h3>
<p>
This is a fairly small and thin layer over the platform's native capabilities.
</p>
<p>
The portability library is defined in Platform.h and is implemented once for each platform.
PlatWin.cxx defines the Windows variants of the methods and PlatGTK.cxx the GTK+ variants.
</p>
<p>
Several of the classes here hold platform specific object identifiers and act as proxies to
these platform objects. Most client code can thus manipulate the platform objects without
caring which is the current platform. Sometimes client code needs access to the underlying
object identifiers and this is provided by the GetID method. The underlying types of the
platform specific identifiers are typedefed to common names to allow them to be transferred
around in client code where needed.
</p>
<h4>
Point, PRectangle
</h4>
<p>
These are simple classes provided to hold the commonly used geometric primitives. A
PRectangle follows the Mac / Windows convention of not including its bottom and right sides
instead of including all its sides as is normal in GTK+. It is not called Rectangle as this may be
the name of a macro on Windows.
</p>
<h4>
Colour, ColourPair, Palette
</h4>
<p>
Colour holds a platform specific colour identifier - COLORREF for Windows and GdkColor for
GTK+. The red, green and blue components that make up the colour are limited to the 8 bits of
precision available on Windows. ColourPairs are used because not all possible colours are
always available. Using an 8 bit colour mode, which is a common setting for both Windows and
GTK+, only 256 colours are possible on the display. Thus when an application asks for a dull
red, say #400000, it may only be allocated an already available colour such as #800000 or
#330000. With 16 or 2 colour modes even less choice is available and the application will
have to use the limited set of already available colours.
</p>
A Palette object holds a set of colour pairs and can make the appropriate calls to ask to
allocate these colours and to see what the platform has decided will be allowed.
<h4>
Font
</h4>
<p>
Font holds a platform specific font identifier - HFONT for Windows, GdkFont* for GTK+. It
does not own the identifier and so will not delete the platform font object in its
destructor. Client code should call Destroy at appropriate times.
</p>
<h4>
Surface
</h4>
<p>
Surface is an abstraction over each platform's concept of somewhere that graphical drawing
operations can be done. It may wrap an already created drawing place such as a window or be
used to create a bitmap that can be drawn into and later copied onto another surface. On
Windows it wraps a HDC and possibly a HBITMAP. On GTK+ it wraps a GdkDrawable* and possibly a
GdkPixmap*. Other platform specific objects are created (and correctly destroyed) whenever
required to perform drawing actions.
</p>
<p>
Drawing operations provided include drawing filled and unfilled polygons, lines, rectangles,
ellipses and text. The height and width of text as well as other details can be measured.
Operations can be clipped to a rectangle. Most of the calls are stateless with all parameters
being passed at each call. The exception to this is line drawing which is performed by
calling MoveTo and then LineTo.
</p>
<h4>
Window
</h4>
<p>
Window acts as a proxy to a platform window allowing operations such as showing, moving,
redrawing, and destroying to be performed. It contains a platform specific window identifier
- HWND for Windows, GtkWidget* for GTK+.
</p>
<h4>
ListBox
</h4>
<p>
ListBox is a subclass of Window and acts as a proxy to a platform listbox adding methods for
operations such as adding, retrieving, and selecting items.
</p>
<h4>
Menu
</h4>
<p>
Menu is a small helper class for constructing popup menus. It contains the platform specific
menu identifier - HMENU for Windows, GtkItemFactory* for GTK+. Most of the work in
constructing menus requires access to platform events and so is done in the Platform Events
and API layer.
</p>
<h4>
Platform
</h4>
<p>
The Platform class is used to access the facilities of the platform. System wide parameters
such as double click speed and chrome colour are available from Platform. Utility functions
such as DebugPrintf are also available from Platform.
</p>
<h3>
Core Code
</h3>
<p>
The bulk of Scintilla's code is platform independent. This is made up of the CellBuffer,
ContractionState, Document, Editor, Indicator, LineMarker, Style, ViewStyle, KeyMap,
ScintillaBase, CallTip,
and AutoComplete primary classes.
</p>
<h4>
CellBuffer
</h4>
<p>
A CellBuffer holds text and styling information, the undo stack, the assignment of line
markers to lines, and the fold structure.
</p>
<p>
A cell contains a character byte and its associated style byte. The current state of the
cell buffer is the sequence of cells that make up the text and a sequence of line information
containing the starting position of each line and any markers assigned to each line.
</p>
<p>
The undo stack holds a sequence of actions on the cell buffer. Each action is one of a text
insertion, a text deletion or an undo start action. The start actions are used to group
sequences of text insertions and deletions together so they can be undone together. To
perform an undo operation, each insertion or deletion is undone in reverse sequence.
Similarly, redo reapplies each action to the buffer in sequence. Whenever a character is
inserted in the buffer either directly through a call such as InsertString or through undo or
redo, its styling byte is initially set to zero. Client code is responsible for styling each
character whenever convenient. Styling information is not stored in undo actions.
</p>
<h4>
Document
</h4>
<p>
A document contains a CellBuffer and deals with some higher level abstractions such as
words, DBCS character sequences and line end character sequences. It is responsible for
managing the styling process and for notifying other objects when changes occur to the
document.
</p>
<h4>
Editor
</h4>
<p>
The Editor object is central to Scintilla. It is responsible for displaying a document and
responding to user actions and requests from the container. It uses ContractionState, Indicator,
LineMarker, Style, and ViewStyle objects to display the document and a KeyMap class to
map key presses to functions.
The visibility of each line is kept in the ContractionState which is also responsible for mapping
from display lines to documents lines and vice versa.
</p>
<p>
There may be multiple Editor objects attached to one Document object. Changes to a
document are broadcast to the editors through the DocWatcher mechanism.
</p>
<h4>
ScintillaBase
</h4>
<p>
ScintillaBase is a subclass of Editor and adds extra windowing features including display of
calltips, autocompletion lists and context menus. These features use CallTip and AutoComplete
objects. This class is optional so a lightweight implementation of Scintilla may bypass it if
the added functionality is not required.
</p>
<h3>
Platform Events and API
</h3>
<p>
Each platform uses different mechanisms for receiving events. On Windows, events are
received through messages and COM. On GTK+, callback functions are used.
</p>
<p>
For each platform, a class is derived from ScintillaBase (and thus from Editor). This is
ScintillaWin on Windows and ScintillaGTK on GTK+. These classes are responsible for
connecting to the platforms event mechanism and also to implement some virtual methods in
Editor and ScintillaBase which are different on the platforms. For example, this layer has to
support this difference between the synchronous Windows clipboard and the asynchronous GTK+
clipboard.
</p>
<p>
The external API is defined in this layer as each platform has different preferred styles of
API - messages on Windows and function calls on GTK+. This also allows multiple APIs to be
defined on a platform. The currently available API on GTK+ is similar to the Windows API and
does not follow platform conventions well. A second API could be implemented here that did
follow platform conventions.
</p>
</body>
</html>


+ 56
- 0
doc/Scintilla/Icons.html View File

@@ -0,0 +1,56 @@
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<meta name="generator" content="SciTE" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Scintilla icons
</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
</td>
<td>
<a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
and SciTE</font></a>
</td>
</tr>
</table>
<h2>
Icons
</h2>
<p>
These images may be used under the same license as Scintilla.
</p>
<p>
Drawn by Iago Rubio, Philippe Lhoste, and Neil Hodgson.
</p>
<p>
<a href="http://prdownloads.sourceforge.net/scintilla/icons1.zip?download">zip format</a> (70K)
</p>
<table>
<tr>
<td>For autocompletion lists</td>
<td colspan="3">For margin markers</td>
</tr>
<tr>
<td>12x12</td>
<td>16x16</td>
<td>24x24</td>
<td>32x32</td>
</tr>
<tr>
<td valign="top"><img src="12.png" /></td>
<td valign="top"><img src="16.png" /></td>
<td valign="top"><img src="24.png" /></td>
<td valign="top"><img src="32.png" /></td>
</tr>
</table>
</body>
</html>

+ 226
- 0
doc/Scintilla/Lexer.txt View File

@@ -0,0 +1,226 @@
How to write a scintilla lexer

A lexer for a particular language determines how a specified range of
text shall be colored. Writing a lexer is relatively straightforward
because the lexer need only color given text. The harder job of
determining how much text actually needs to be colored is handled by
Scintilla itself, that is, the lexer's caller.


Parameters

The lexer for language LLL has the following prototype:

static void ColouriseLLLDoc (
unsigned int startPos, int length,
int initStyle,
WordList *keywordlists[],
Accessor &styler);

The styler parameter is an Accessor object. The lexer must use this
object to access the text to be colored. The lexer gets the character
at position i using styler.SafeGetCharAt(i);

The startPos and length parameters indicate the range of text to be
recolored; the lexer must determine the proper color for all characters
in positions startPos through startPos+length.

The initStyle parameter indicates the initial state, that is, the state
at the character before startPos. States also indicate the coloring to
be used for a particular range of text.

Note: the character at StartPos is assumed to start a line, so if a
newline terminates the initStyle state the lexer should enter its
default state (or whatever state should follow initStyle).

The keywordlists parameter specifies the keywords that the lexer must
recognize. A WordList class object contains methods that make simplify
the recognition of keywords. Present lexers use a helper function
called classifyWordLLL to recognize keywords. These functions show how
to use the keywordlists parameter to recognize keywords. This
documentation will not discuss keywords further.


The lexer code

The task of a lexer can be summarized briefly: for each range r of
characters that are to be colored the same, the lexer should call

styler.ColourTo(i, state)
where i is the position of the last character of the range r. The lexer
should set the state variable to the coloring state of the character at
position i and continue until the entire text has been colored.

Note 1: the styler (Accessor) object remembers the i parameter in the
previous calls to styler.ColourTo, so the single i parameter suffices to
indicate a range of characters.

Note 2: As a side effect of calling styler.ColourTo(i,state), the
coloring states of all characters in the range are remembered so that
Scintilla may set the initStyle parameter correctly on future calls to
the