diff options
author | gregory guy <[email protected]> | 2021-10-07 15:17:57 +0200 |
---|---|---|
committer | gregory guy <[email protected]> | 2021-11-30 11:04:08 +0100 |
commit | a69b55c674b0528c00598bea54b7a661f4e49f27 (patch) | |
tree | 93ab3c9c6a8c3be0d8e0da81391904a07f515a57 /doc/Scintilla | |
parent | 0896465ce705beabf8562afbabd49f8b92bf3412 (diff) | |
download | tqscintilla-a69b55c674b0528c00598bea54b7a661f4e49f27.tar.gz tqscintilla-a69b55c674b0528c00598bea54b7a661f4e49f27.zip |
Conversion to the cmake building system.
Signed-off-by: gregory guy <[email protected]>
Diffstat (limited to 'doc/Scintilla')
-rw-r--r-- | doc/Scintilla/Design.html | 249 | ||||
-rw-r--r-- | doc/Scintilla/Icons.html | 56 | ||||
-rw-r--r-- | doc/Scintilla/Lexer.txt | 226 | ||||
-rw-r--r-- | doc/Scintilla/License.txt | 20 | ||||
-rw-r--r-- | doc/Scintilla/SciBreak.jpg | bin | 14998 -> 0 bytes | |||
-rw-r--r-- | doc/Scintilla/SciCoding.html | 251 | ||||
-rw-r--r-- | doc/Scintilla/SciRest.jpg | bin | 16680 -> 0 bytes | |||
-rw-r--r-- | doc/Scintilla/SciTEIco.png | bin | 9693 -> 0 bytes | |||
-rw-r--r-- | doc/Scintilla/SciWord.jpg | bin | 6164 -> 0 bytes | |||
-rw-r--r-- | doc/Scintilla/ScintillaDoc.html | 5350 | ||||
-rw-r--r-- | doc/Scintilla/ScintillaDownload.html | 70 | ||||
-rw-r--r-- | doc/Scintilla/ScintillaHistory.html | 5296 | ||||
-rw-r--r-- | doc/Scintilla/ScintillaRelated.html | 507 | ||||
-rw-r--r-- | doc/Scintilla/ScintillaToDo.html | 178 | ||||
-rw-r--r-- | doc/Scintilla/ScintillaUsage.html | 375 | ||||
-rw-r--r-- | doc/Scintilla/Steps.html | 142 | ||||
-rw-r--r-- | doc/Scintilla/index.html | 198 |
17 files changed, 0 insertions, 12918 deletions
diff --git a/doc/Scintilla/Design.html b/doc/Scintilla/Design.html deleted file mode 100644 index 0ca231e..0000000 --- a/doc/Scintilla/Design.html +++ /dev/null @@ -1,249 +0,0 @@ -<?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> - diff --git a/doc/Scintilla/Icons.html b/doc/Scintilla/Icons.html deleted file mode 100644 index 0bf302d..0000000 --- a/doc/Scintilla/Icons.html +++ /dev/null @@ -1,56 +0,0 @@ -<?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> diff --git a/doc/Scintilla/Lexer.txt b/doc/Scintilla/Lexer.txt deleted file mode 100644 index 9d4ab50..0000000 --- a/doc/Scintilla/Lexer.txt +++ /dev/null @@ -1,226 +0,0 @@ -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 -lexer. - - -Lexer organization - -There are at least two ways to organize the code of each lexer. Present -lexers use what might be called a "character-based" approach: the outer -loop iterates over characters, like this: - - lengthDoc = startPos + length ; - for (unsigned int i = startPos; i < lengthDoc; i++) { - chNext = styler.SafeGetCharAt(i + 1); - << handle special cases >> - switch(state) { - // Handlers examine only ch and chNext. - // Handlers call styler.ColorTo(i,state) if the state changes. - case state_1: << handle ch in state 1 >> - case state_2: << handle ch in state 2 >> - ... - case state_n: << handle ch in state n >> - } - chPrev = ch; - } - styler.ColourTo(lengthDoc - 1, state); - - -An alternative would be to use a "state-based" approach. The outer loop -would iterate over states, like this: - - lengthDoc = startPos+lenth ; - for ( unsigned int i = startPos ;; ) { - char ch = styler.SafeGetCharAt(i); - int new_state = 0 ; - switch ( state ) { - // scanners set new_state if they set the next state. - case state_1: << scan to the end of state 1 >> break ; - case state_2: << scan to the end of state 2 >> break ; - case default_state: - << scan to the next non-default state and set new_state >> - } - styler.ColourTo(i, state); - if ( i >= lengthDoc ) break ; - if ( ! new_state ) { - ch = styler.SafeGetCharAt(i); - << set state based on ch in the default state >> - } - } - styler.ColourTo(lengthDoc - 1, state); - -This approach might seem to be more natural. State scanners are simpler -than character scanners because less needs to be done. For example, -there is no need to test for the start of a C string inside the scanner -for a C comment. Also this way makes it natural to define routines that -could be used by more than one scanner; for example, a scanToEndOfLine -routine. - -However, the special cases handled in the main loop in the -character-based approach would have to be handled by each state scanner, -so both approaches have advantages. These special cases are discussed -below. - -Special case: Lead characters - -Lead bytes are part of DBCS processing for languages such as Japanese -using an encoding such as Shift-JIS. In these encodings, extended -(16-bit) characters are encoded as a lead byte followed by a trail byte. - -Lead bytes are rarely of any lexical significance, normally only being -allowed within strings and comments. In such contexts, lexers should -ignore ch if styler.IsLeadByte(ch) returns TRUE. - -Note: UTF-8 is simpler than Shift-JIS, so no special handling is -applied for it. All UTF-8 extended characters are >= 128 and none are -lexically significant in programming languages which, so far, use only -characters in ASCII for operators, comment markers, etc. - - -Special case: Folding - -Folding may be performed in the lexer function. It is better to use a -separate folder function as that avoids some troublesome interaction -between styling and folding. The folder function will be run after the -lexer function if folding is enabled. The rest of this section explains -how to perform folding within the lexer function. - -During initialization, lexers that support folding set - - bool fold = styler.GetPropertyInt("fold"); - -If folding is enabled in the editor, fold will be TRUE and the lexer -should call: - - styler.SetLevel(line, level); - -at the end of each line and just before exiting. - -The line parameter is simply the count of the number of newlines seen. -It's initial value is styler.GetLine(startPos) and it is incremented -(after calling styler.SetLevel) whenever a newline is seen. - -The level parameter is the desired indentation level in the low 12 bits, -along with flag bits in the upper four bits. The indentation level -depends on the language. For C++, it is incremented when the lexer sees -a '{' and decremented when the lexer sees a '}' (outside of strings and -comments, of course). - -The following flag bits, defined in Scintilla.h, may be set or cleared -in the flags parameter. The SC_FOLDLEVELWHITEFLAG flag is set if the -lexer considers that the line contains nothing but whitespace. The -SC_FOLDLEVELHEADERFLAG flag indicates that the line is a fold point. -This normally means that the next line has a greater level than present -line. However, the lexer may have some other basis for determining a -fold point. For example, a lexer might create a header line for the -first line of a function definition rather than the last. - -The SC_FOLDLEVELNUMBERMASK mask denotes the level number in the low 12 -bits of the level param. This mask may be used to isolate either flags -or level numbers. - -For example, the C++ lexer contains the following code when a newline is -seen: - - if (fold) { - int lev = levelPrev; - - // Set the "all whitespace" bit if the line is blank. - if (visChars == 0) - lev |= SC_FOLDLEVELWHITEFLAG; - - // Set the "header" bit if needed. - if ((levelCurrent > levelPrev) && (visChars > 0)) - lev |= SC_FOLDLEVELHEADERFLAG; - styler.SetLevel(lineCurrent, lev); - - // reinitialize the folding vars describing the present line. - lineCurrent++; - visChars = 0; // Number of non-whitespace characters on the line. - levelPrev = levelCurrent; - } - -The following code appears in the C++ lexer just before exit: - - // Fill in the real level of the next line, keeping the current flags - // as they will be filled in later. - if (fold) { - // Mask off the level number, leaving only the previous flags. - int flagsNext = styler.LevelAt(lineCurrent); - flagsNext &= ~SC_FOLDLEVELNUMBERMASK; - styler.SetLevel(lineCurrent, levelPrev | flagsNext); - } - - -Don't worry about performance - -The writer of a lexer may safely ignore performance considerations: the -cost of redrawing the screen is several orders of magnitude greater than -the cost of function calls, etc. Moreover, Scintilla performs all the -important optimizations; Scintilla ensures that a lexer will be called -only to recolor text that actually needs to be recolored. Finally, it -is not necessary to avoid extra calls to styler.ColourTo: the sytler -object buffers calls to ColourTo to avoid multiple updates of the -screen. - -Page contributed by Edward K. Ream
\ No newline at end of file diff --git a/doc/Scintilla/License.txt b/doc/Scintilla/License.txt deleted file mode 100644 index cbe25b2..0000000 --- a/doc/Scintilla/License.txt +++ /dev/null @@ -1,20 +0,0 @@ -License for Scintilla and SciTE - -Copyright 1998-2003 by Neil Hodgson <[email protected]> - -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.
\ No newline at end of file diff --git a/doc/Scintilla/SciBreak.jpg b/doc/Scintilla/SciBreak.jpg Binary files differdeleted file mode 100644 index 65c9fc7..0000000 --- a/doc/Scintilla/SciBreak.jpg +++ /dev/null diff --git a/doc/Scintilla/SciCoding.html b/doc/Scintilla/SciCoding.html deleted file mode 100644 index df0eb90..0000000 --- a/doc/Scintilla/SciCoding.html +++ /dev/null @@ -1,251 +0,0 @@ -<?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="SciTE" /> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> - <title> - Scintilla and SciTE Code Style Preferences - </title> - <style> - .S0 { - color: #808080; - } - .S1 { - font-family: Comic Sans MS; - color: #007F00; - font-size: 9pt; - } - .S2 { - font-family: Comic Sans MS; - color: #007F00; - font-size: 9pt; - } - .S3 { - font-family: Comic Sans MS; - color: #3F703F; - font-size: 9pt; - } - .S4 { - color: #007F7F; - } - .S5 { - font-weight: bold; - color: #00007F; - } - .S6 { - color: #7F007F; - } - .S7 { - color: #7F007F; - } - .S8 { - color: #804080; - } - .S9 { - color: #7F7F00; - } - .S10 { - font-weight: bold; - color: #000000; - } - .S12 { - font-family: Courier New; - color: #000000; - background: #E0C0E0; - font-size: 10pt; - } - .S13 { - font-family: Courier New; - color: #007F00; - background: #E0FFE0; - font-size: 10pt; - } - .S14 { - font-family: Courier New; - color: #3F7F3F; - background: #E0F0FF; - font-size: 10pt; - } - .S15 { - font-family: Comic Sans MS; - color: #3F703F; - font-size: 9pt; - } - SPAN { - font-family: Verdana; - font-size: 10pt; - } - </style> - </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> - Code Style - </h2> - <h3> - Introduction - </h3> - <p> - The source code of Scintilla and SciTE follow my preferences. - Some of these decisions are arbitrary and based on my sense of aesthetics - but its good to have all the code look the same even if its not exactly how - everyone would prefer. - </p> - <p> - Code that does not follow these conventions will be accepted, but will be modified - as time goes by to fit the conventions. Scintilla code follows the conventions more - closely than SciTE except for lexers which are relatively independent modules. - Lexers that are maintained by others are left as they are submitted except that - warnings will be fixed so the whole project can compile cleanly. - </p> - <p> - The <a href="http://astyle.sourceforge.net/">AStyle</a> formatting - program with a '-tapO' argument formats code in much the right way although - there are a few bugs in AStyle. The scite/scripts/Fixer.py script will run AStyle - over a C++ source file and fix up some of those bugs. - </p> - <h3> - Language features - </h3> - <p> - Design goals for Scintilla and SciTE include portability to currently available C++ - compilers on diverse platforms with high performance and low resource usage. - Scintilla has stricter portability requirements to SciTE as it may be ported to - low capability platforms such as Windows CE or PalmOS but it is less likely - SciTE will be. - </p> - <p> - To achieve portability, only a subset of C++ features are used. Exceptions are - not available on some platforms such as Windows CE so exceptions are not used - and thus the standard C++ library can not be used. - Template support differs between compilers so is not used in Scintilla but there - are some simple uses in SciTE. - Run-time type information adds to memory use so is turned off. - Name spaces are not used. - </p> - <p> - The goto statement is not used because of bad memories from my first job - maintaining FORTRAN programs. The union feature is not used as it can lead to - non-type-safe value access. - </p> - <h3> - Casting - </h3> - <p> - Do not use old C style casts like (char *)s. Instead use the most strict form of C++ - cast possible like const_cast<char *>(s). Use static_cast and const_cast - where possible rather than reinterpret_cast. Because the code is compiled with - run-time type information turned off, dynamic_cast will not work. - </p> - <p> - The benefit to using the new style casts is that they explicitly detail what evil is - occurring and act as signals that something potentially unsafe is being done. - </p> - <p> - Code that treats const seriously is easier to reason about both for humans - and compilers, so use const parameters and avoid const_cast. - </p> - <h3> - Warnings - </h3> - <p> - To help ensure code is well written and portable, it is compiled with almost all - warnings turned on. This sometimes results in warnings about code that is - completely good (false positives) but changing the code to avoid the warnings - is generally fast and has little impact on readability. - </p> - <p> - Initialise all variables and minimise the scope of variables. If a variable is defined - just before its use then it can't be misused by code before that point. - Use loop declarations that are compatible with both the C++ standard and currently - available compilers. - </p> - <h3> - Allocation - </h3> - <p> - As exceptions are not used, memory exhaustion can occur. - This should be checked for and handled but there is quite a lot of Scintilla and - SciTE code that doesn't yet. - Fixed length buffers are often used as these are simple and avoid the need to - worry about memory exhaustion but then require that buffer lengths are - respected. - </p> - <p> - The C++ new and delete operators are preferred over C's malloc and free - as new and delete are type safe. - </p> - <h3> - Bracketing - </h3> - <p> - Start brackets, '{', should be located on the line of the control structure they - start and end brackets, '}', should be at the indented start of a line. When there is - an else clause, this occurs on the same line as the '}'. - This format uses less lines than alternatives, allowing more code to be seen on screen. - Fully bracketed control - structures are preferred because this makes it more likely that modifications will - be correct and it allows Scintilla's folder to work. No braces on returned - expressions as return is a keyword, not a function call. - </p> -<SPAN class=S0></SPAN><SPAN class=S5>bool</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>fn</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S5>if</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>t</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>else</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>u</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S5>return</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>!</SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR> -</SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR> -</SPAN> <h3> - Spacing - </h3> - <p> - Spaces on both sides of '=' and comparison operators and no attempt to line up '='. - No space before or after '(', when used in calls, but a space after every ','. - No spaces between tokens in short expressions but may be present in - longer expressions. Space before '{'. No space before ';'. - No space after '*' when used to mean pointer and no space after '[' or ']'. - One space between keywords and '('. - </p> -<SPAN class=S0></SPAN><SPAN class=S5>void</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>StoreConditionally</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>c</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>const</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>char</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S5>if</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>c</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>&&</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>==</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>trustSegment</SPAN><SPAN class=S10>[</SPAN><SPAN class=S6>"html"</SPAN><SPAN class=S10>]))</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>=</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>+</SPAN><SPAN class=S4>1</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>Store</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S6>"html"</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR> -</SPAN><SPAN class=S10>}</SPAN> - <h3> - Names - </h3> - <p> - Identifiers use mixed case and no underscores. - Class, function and method names start with an uppercase letter and use - further upper case letters to distinguish words. Variables start with a lower - case letter and use upper case letters to distinguish words. - Loop counters and similar variables can have simple names like 'i'. - Function calls should be differentiated from method calls with an initial '::' - global scope modifier. - </p> -<SPAN class=S0></SPAN><SPAN class=S5>class</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>StorageZone</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> -</SPAN><SPAN class=S5>public</SPAN><SPAN class=S10>:</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S5>void</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>Store</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>const</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>char</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>Media</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>=</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>GetBaseMedia</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>zoneDefault</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S5>for</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>=</SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>-></SPAN><SPAN class=S11>cursor</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>[</SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>],</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>++)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>-></SPAN><SPAN class=S11>Persist</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>[</SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>]);</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR> - </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR> -</SPAN><SPAN class=S10>};</SPAN> - </body> -</html> diff --git a/doc/Scintilla/SciRest.jpg b/doc/Scintilla/SciRest.jpg Binary files differdeleted file mode 100644 index 4b05223..0000000 --- a/doc/Scintilla/SciRest.jpg +++ /dev/null diff --git a/doc/Scintilla/SciTEIco.png b/doc/Scintilla/SciTEIco.png Binary files differdeleted file mode 100644 index e43be73..0000000 --- a/doc/Scintilla/SciTEIco.png +++ /dev/null diff --git a/doc/Scintilla/SciWord.jpg b/doc/Scintilla/SciWord.jpg Binary files differdeleted file mode 100644 index 60e70e8..0000000 --- a/doc/Scintilla/SciWord.jpg +++ /dev/null diff --git a/doc/Scintilla/ScintillaDoc.html b/doc/Scintilla/ScintillaDoc.html deleted file mode 100644 index 3767b3b..0000000 --- a/doc/Scintilla/ScintillaDoc.html +++ /dev/null @@ -1,5350 +0,0 @@ -<?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 for Windows (vers 1st August 2002), 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> - - <style type="text/css"> -<!-- -/*<![CDATA[*/ - CODE { font-family: "Courier New", monospace; } - A:visited { color: blue; } - A:hover { text-decoration: underline ! important; } - A.message { text-decoration: none; font-family: "Courier New", monospace; } - A.toc { text-decoration: none; } - A.jump { text-decoration: none; } -/*]]>*/ ---> - </style> - </head> - - <body bgcolor="#FFFFFF" text="#000000"> - <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0" - summary="Banner"> - <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:200%">Scintilla</a></td> - </tr> - </table> - - <h1>Scintilla Documentation</h1> - - <p>Last edited 4/February/2006 NH</p> - - <p>There is <a class="jump" href="Design.html">an overview of the internal design of - Scintilla</a>.<br /> - <a class="jump" href="ScintillaUsage.html">Some notes on using Scintilla</a>.<br /> - <a class="jump" href="Steps.html">How to use the Scintilla Edit Control on Windows</a>.<br /> - <a class="jump" href="http://www.scintilla.org/dmapp.zip">A simple sample using Scintilla from - C++ on Windows</a>.<br /> - <a class="jump" href="http://www.scintilla.org/SciTry.vb">A simple sample using Scintilla from - Visual Basic</a>.<br /> - <a class="jump" href="http://www.scintilla.org/bait.zip">Bait is a tiny sample using Scintilla - on GTK+</a>.<br /> - <a class="jump" href="Lexer.txt">A detailed description of how to write a lexer, including a - discussion of folding</a>.<br /> - <a class="jump" href="http://sphere.sourceforge.net/flik/docs/scintilla-container_lexer.html"> - How to implement a lexer in the container</a>.<br /> - <a class="jump" href="http://sphere.sourceforge.net/flik/docs/scintilla-folding.html"> - How to implement folding</a>.<br /> - The <a class="jump" href="SciCoding.html">coding style</a> used in Scintilla and SciTE is - worth following if you want to contribute code to Scintilla but is not compulsory.</p> - - <h2>Introduction</h2> - - <p>The Windows version of Scintilla is a Windows Control. As such, its primary programming - interface is through Windows messages. Early versions of Scintilla emulated much of the API - defined by the standard Windows Edit and RichEdit controls but those APIs are now deprecated in - favour of Scintilla's own, more consistent API. In addition to messages performing the actions - of a normal Edit control, Scintilla allows control of syntax styling, folding, markers, autocompletion - and call tips.</p> - - <p>The GTK+ version also uses messages in a similar way to the Windows version. This is - different to normal GTK+ practice but made it easier to implement rapidly.</p> - - <p>This documentation describes the individual messages and notifications used by Scintilla. It - does not describe how to link them together to form a useful editor. For now, the best way to - work out how to develop using Scintilla is to see how SciTE uses it. SciTE exercises most of - Scintilla's facilities.</p> - - <p>In the descriptions that follow, the messages are described as function calls with zero, one - or two arguments. These two arguments are the standard <code>wParam</code> and - <code>lParam</code> familiar to Windows programmers. These parameters are integers that - are large enough to hold pointers, and the return value is also an integer large enough to contain a - pointer. - Although the commands only use the - arguments described, because all messages have two arguments whether Scintilla uses them or - not, it is strongly recommended that any unused arguments are set to 0. This allows future - enhancement of messages without the risk of breaking existing code. Common argument types - are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Common argument types"> - <tbody valign="top"> - <tr> - <th align="left">bool</th> - - <td>Arguments expect the values 0 for <code>false</code> and 1 for - <code>true</code>.</td> - </tr> - - <tr> - <th align="left">int</th> - - <td>Arguments are 32-bit signed integers.</td> - </tr> - - <tr> - <th align="left">const char *</th> - - <td>Arguments point at text that is being passed to Scintilla but not modified. The text - may be zero terminated or another argument may specify the character count, the - description will make this clear.</td> - </tr> - - <tr> - <th align="left">char *</th> - - <td>Arguments point at text buffers that Scintilla will fill with text. In some cases, - another argument will tell Scintilla the buffer size. In others, you must make sure that - the buffer is big enough to hold the requested text. If a NULL pointer (0) is passed - then, for SCI_* calls, the length that should be allocated is returned.</td> - </tr> - - <tr> - <th align="left" id="colour">colour</th> - - <td>Colours are set using the RGB format (Red, Green, Blue). The intensity of each colour - is set in the range 0 to 255. If you have three such intensities, they are combined as: - red | (green << 8) | (blue << 16). If you set all intensities to 255, the - colour is white. If you set all intensities to 0, the colour is black. When you set a - colour, you are making a request. What you will get depends on the capabilities of the - system and the current screen mode.</td> - </tr> - - <tr> - <th align="left" id="alpha">alpha</th> - - <td>Translucency is set using an alpha value. - Alpha ranges from 0 (SC_ALPHA_TRANSPARENT) which is completely transparent to - 255 (SC_ALPHA_OPAQUE) which is opaque. The value 256 (SC_ALPHA_NOALPHA) - is opaque and uses code that is not alpha-aware and may be faster. Not all platforms support - translucency and only some Scintilla features implement translucency. - The default alpha value for most features is SC_ALPHA_NOALPHA.</td> - </tr> - - <tr> - <th align="left"><unused></th> - - <td>This is an unused argument. Setting it to 0 will ensure compatibility with future - enhancements.</td> - </tr> - </tbody> - </table> - - <h2 id="MessageCategories">Contents</h2> - - <table cellpadding="4" cellspacing="2" border="0" summary="Message categories"> - <tbody> - <tr> - <td>o <a class="toc" href="#TextRetrievalAndModification">Text retrieval and - modification</a></td> - - <td>o <a class="toc" href="#Searching">Searching and replacing</a></td> - - <td>o <a class="toc" href="#Overtype">Overtype</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#CutCopyAndPaste">Cut, copy and paste</a></td> - - <td>o <a class="toc" href="#ErrorHandling">Error handling</a></td> - - <td>o <a class="toc" href="#UndoAndRedo">Undo and Redo</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#SelectionAndInformation">Selection and information</a></td> - - <td>o <a class="toc" href="#ScrollingAndAutomaticScrolling">Scrolling and automatic - scrolling</a></td> - - <td>o <a class="toc" href="#WhiteSpace">White space</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Cursor">Cursor</a></td> - - <td>o <a class="toc" href="#MouseCapture">Mouse capture</a></td> - - <td>o <a class="toc" href="#LineEndings">Line endings</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Styling">Styling</a></td> - - <td>o <a class="toc" href="#StyleDefinition">Style definition</a></td> - - <td>o <a class="toc" href="#CaretAndSelectionStyles">Caret, selection, and hotspot styles</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Margins">Margins</a></td> - - <td>o <a class="toc" href="#OtherSettings">Other settings</a></td> - - <td>o <a class="toc" href="#BraceHighlighting">Brace highlighting</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#TabsAndIndentationGuides">Tabs and Indentation - Guides</a></td> - - <td>o <a class="toc" href="#Markers">Markers</a></td> - - <td>o <a class="toc" href="#Indicators">Indicators</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Autocompletion">Autocompletion</a></td> - - <td>o <a class="toc" href="#UserLists">User lists</a></td> - - <td>o <a class="toc" href="#CallTips">Call tips</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#KeyboardCommands">Keyboard commands</a></td> - - <td>o <a class="toc" href="#KeyBindings">Key bindings</a></td> - - <td>o <a class="toc" href="#PopupEditMenu">Popup edit menu</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#MacroRecording">Macro recording</a></td> - - <td>o <a class="toc" href="#Printing">Printing</a></td> - - <td>o <a class="toc" href="#DirectAccess">Direct access</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#MultipleViews">Multiple views</a></td> - - <td>o <a class="toc" href="#Folding">Folding</a></td> - - <td>o <a class="toc" href="#LineWrapping">Line wrapping</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Zooming">Zooming</a></td> - - <td>o <a class="toc" href="#LongLines">Long lines</a></td> - - <td>o <a class="toc" href="#Lexer">Lexer</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#Notifications">Notifications</a></td> - - <td>o <a class="toc" href="#GTK">GTK+</a></td> - - <td>o <a class="toc" href="#DeprecatedMessages">Deprecated messages</a></td> - </tr> - - <tr> - <td>o <a class="toc" href="#EditMessagesNeverSupportedByScintilla">Edit messages never - supported by Scintilla</a></td> - - <td>o <a class="toc" href="#BuildingScintilla">Building Scintilla</a></td> - </tr> - </tbody> - </table> - - <p>Messages with names of the form <code>SCI_SETxxxxx</code> often have a companion - <code>SCI_GETxxxxx</code>. To save tedious repetition, if the <code>SCI_GETxxxxx</code> message - returns the value set by the <code>SCI_SETxxxxx</code> message, the <code>SET</code> routine is - described and the <code>GET</code> routine is left to your imagination.</p> - - <h2 id="TextRetrievalAndModification">Text retrieval and modification</h2> - - <p>Each character in a Scintilla document is followed by an associated byte of styling - information. The combination of a character byte and a style byte is called a cell. Style bytes - are interpreted as a style index in the low 5 bits and as 3 individual bits of <a class="jump" - href="#Indicators">indicators</a>. This allows 32 fundamental styles, which is enough for most - languages, and three independent indicators so that, for example, syntax errors, deprecated - names and bad indentation could all be displayed at once. The number of bits used for styles - can be altered with <a class="message" - href="#SCI_SETSTYLEBITS"><code>SCI_SETSTYLEBITS</code></a> up to a maximum of 7 bits. - The remaining bits can be used for indicators.</p> - - <p>Positions within the Scintilla document refer to a character or the gap before that - character. The first character in a document is 0, the second 1 and so on. If a document - contains <code>nLen</code> characters, the last character is numbered <code>nLen</code>-1. - The caret exists between character positions and can be located from before the first character (0) - to after the last character (<code>nLen</code>).</p> - - <p>There are places where the caret can not go where two character bytes make up one character. - This occurs when a DBCS character from a language like Japanese is included in the document or - when line ends are marked with the CP/M standard of a carriage return followed by a line feed. - The <code>INVALID_POSITION</code> constant (-1) represents an invalid position within the - document.</p> - - <p>All lines of text in Scintilla are the same height, and this height is calculated from the - largest font in any current style. This restriction is for performance; if lines differed in - height then calculations involving positioning of text would require the text to be styled - first.</p> - <code><a class="message" href="#SCI_GETTEXT">SCI_GETTEXT(int length, char *text)</a><br /> - <a class="message" href="#SCI_SETTEXT">SCI_SETTEXT(<unused>, const char *text)</a><br /> - <a class="message" href="#SCI_SETSAVEPOINT">SCI_SETSAVEPOINT</a><br /> - <a class="message" href="#SCI_GETLINE">SCI_GETLINE(int line, char *text)</a><br /> - <a class="message" href="#SCI_REPLACESEL">SCI_REPLACESEL(<unused>, const char - *text)</a><br /> - <a class="message" href="#SCI_SETREADONLY">SCI_SETREADONLY(bool readOnly)</a><br /> - <a class="message" href="#SCI_GETREADONLY">SCI_GETREADONLY</a><br /> - <a class="message" href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE(<unused>, TextRange - *tr)</a><br /> - <a class="message" href="#SCI_ALLOCATE">SCI_ALLOCATE(int bytes, <unused>)</a><br /> - <a class="message" href="#SCI_ADDTEXT">SCI_ADDTEXT(int length, const char *s)</a><br /> - <a class="message" href="#SCI_ADDSTYLEDTEXT">SCI_ADDSTYLEDTEXT(int length, cell *s)</a><br /> - <a class="message" href="#SCI_APPENDTEXT">SCI_APPENDTEXT(int length, const char *s)</a><br /> - <a class="message" href="#SCI_INSERTTEXT">SCI_INSERTTEXT(int pos, const char *text)</a><br /> - <a class="message" href="#SCI_CLEARALL">SCI_CLEARALL</a><br /> - <a class="message" href="#SCI_CLEARDOCUMENTSTYLE">SCI_CLEARDOCUMENTSTYLE</a><br /> - <a class="message" href="#SCI_GETCHARAT">SCI_GETCHARAT(int position)</a><br /> - <a class="message" href="#SCI_GETSTYLEAT">SCI_GETSTYLEAT(int position)</a><br /> - <a class="message" href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT(<unused>, TextRange - *tr)</a><br /> - <a class="message" href="#SCI_SETSTYLEBITS">SCI_SETSTYLEBITS(int bits)</a><br /> - <a class="message" href="#SCI_GETSTYLEBITS">SCI_GETSTYLEBITS</a><br /> - <a class="message" href="#SCI_TARGETASUTF8">SCI_TARGETASUTF8(<unused>, char *s)</a><br /> - <a class="message" href="#SCI_ENCODEDFROMUTF8">SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)</a><br /> - <a class="message" href="#SCI_SETLENGTHFORENCODE">SCI_SETLENGTHFORENCODE(int bytes)</a><br /> - </code> - - <p><b id="SCI_GETTEXT">SCI_GETTEXT(int length, char *text)</b><br /> - This returns <code>length</code>-1 characters of text from the start of the document plus one - terminating 0 character. To collect all the text in a document, use <code>SCI_GETLENGTH</code> - to get the number of characters in the document (<code>nLen</code>), allocate a character - buffer of length <code>nLen+1</code> bytes, then call <code>SCI_GETTEXT(nLen+1, char - *text)</code>. If the text argument is 0 then the length that should be allocated to store the - entire document is returned. - If you then save the text, you should use <code>SCI_SETSAVEPOINT</code> to mark - the text as unmodified.</p> - - <p>See also: <code><a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT</a>, <a - class="message" href="#SCI_GETCURLINE">SCI_GETCURLINE</a>, <a class="message" - href="#SCI_GETLINE">SCI_GETLINE</a>, <a class="message" - href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT</a>, <a class="message" - href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE</a></code></p> - - <p><b id="SCI_SETTEXT">SCI_SETTEXT(<unused>, const char *text)</b><br /> - This replaces all the text in the document with the zero terminated text string you pass - in.</p> - - <p><b id="SCI_SETSAVEPOINT">SCI_SETSAVEPOINT</b><br /> - This message tells Scintilla that the current state of the document is unmodified. This is - usually done when the file is saved or loaded, hence the name "save point". As Scintilla - performs undo and redo operations, it notifies the container that it has entered or left the - save point with <code><a class="message" - href="#SCN_SAVEPOINTREACHED">SCN_SAVEPOINTREACHED</a></code> and <code><a class="message" - href="#SCN_SAVEPOINTLEFT">SCN_SAVEPOINTLEFT</a></code> <a class="jump" - href="#Notifications">notification messages</a>, allowing the container to know if the file - should be considered dirty or not.</p> - - <p>See also: <code><a class="message" href="#SCI_EMPTYUNDOBUFFER">SCI_EMPTYUNDOBUFFER</a>, <a - class="message" href="#SCI_GETMODIFY">SCI_GETMODIFY</a></code></p> - - <p><b id="SCI_GETLINE">SCI_GETLINE(int line, char *text)</b><br /> - This fills the buffer defined by text with the contents of the nominated line (lines start at - 0). The buffer is not terminated by a 0 character. It is up to you to make sure that the buffer - is long enough for the text, use <a class="message" - href="#SCI_LINELENGTH"><code>SCI_LINELENGTH(int line)</code></a>. The returned value is the - number of characters copied to the buffer. The returned text includes any end of line - characters. If you ask for a line number outside the range of lines in the document, 0 - characters are copied. If the text argument is 0 then the length that should be allocated - to store the entire line is returned.</p> - - <p>See also: <code><a class="message" href="#SCI_GETCURLINE">SCI_GETCURLINE</a>, <a - class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT</a>, <a class="message" - href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE</a>, <a class="message" - href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT</a>, <a class="message" - href="#SCI_GETTEXT">SCI_GETTEXT</a></code></p> - - <p><b id="SCI_REPLACESEL">SCI_REPLACESEL(<unused>, const char *text)</b><br /> - The currently selected text between the <a class="jump" href="#SelectionAndInformation">anchor - and the current position</a> is replaced by the 0 terminated text string. If the anchor and - current position are the same, the text is inserted at the caret position. The caret is - positioned after the inserted text and the caret is scrolled into view.</p> - - <p><b id="SCI_SETREADONLY">SCI_SETREADONLY(bool readOnly)</b><br /> - <b id="SCI_GETREADONLY">SCI_GETREADONLY</b><br /> - These messages set and get the read-only flag for the document. If you mark a document as read - only, attempts to modify the text cause the <a class="message" - href="#SCN_MODIFYATTEMPTRO"><code>SCN_MODIFYATTEMPTRO</code></a> notification.</p> - - <p><b id="SCI_GETTEXTRANGE">SCI_GETTEXTRANGE(<unused>, <a class="jump" - href="#TextRange">TextRange</a> *tr)</b><br /> - This collects the text between the positions <code>cpMin</code> and <code>cpMax</code> and - copies it to <code>lpstrText</code> (see <code>struct TextRange</code> in - <code>Scintilla.h</code>). If <code>cpMax</code> is -1, text is returned to the end of the - document. The text is 0 terminated, so you must supply a buffer that is at least 1 character - longer than the number of characters you wish to read. The return value is the length of the - returned text not including the terminating 0.</p> - - <p>See also: <code><a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT</a>, <a - class="message" href="#SCI_GETLINE">SCI_GETLINE</a>, <a class="message" - href="#SCI_GETCURLINE">SCI_GETCURLINE</a>, <a class="message" - href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT</a>, <a class="message" - href="#SCI_GETTEXT">SCI_GETTEXT</a></code></p> - - <p><b id="SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT(<unused>, <a class="jump" - href="#TextRange">TextRange</a> *tr)</b><br /> - This collects styled text into a buffer using two bytes for each cell, with the character at - the lower address of each pair and the style byte at the upper address. Characters between the - positions <code>cpMin</code> and <code>cpMax</code> are copied to <code>lpstrText</code> (see - <code>struct TextRange</code> in <code>Scintilla.h</code>). Two 0 bytes are added to the end of - the text, so the buffer that <code>lpstrText</code> points at must be at least - <code>2*(cpMax-cpMin)+2</code> bytes long. No check is made for sensible values of - <code>cpMin</code> or <code>cpMax</code>. Positions outside the document return character codes - and style bytes of 0.</p> - - <p>See also: <code><a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT</a>, <a - class="message" href="#SCI_GETLINE">SCI_GETLINE</a>, <a class="message" - href="#SCI_GETCURLINE">SCI_GETCURLINE</a>, <a class="message" - href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE</a>, <a class="message" - href="#SCI_GETTEXT">SCI_GETTEXT</a></code></p> - - <p><b id="SCI_ALLOCATE">SCI_ALLOCATE(int bytes, <unused>)</b><br /> - Allocate a document buffer large enough to store a given number of bytes. - The document will not be made smaller than its current contents.</p> - - <p><b id="SCI_ADDTEXT">SCI_ADDTEXT(int length, const char *s)</b><br /> - This inserts the first <code>length</code> characters from the string <code>s</code> - at the current position. This will include any 0's in the string that you might have expected - to stop the insert operation. The current position is set at the end of the inserted text, - but it is not scrolled into view.</p> - - <p><b id="SCI_ADDSTYLEDTEXT">SCI_ADDSTYLEDTEXT(int length, cell *s)</b><br /> - This behaves just like <code>SCI_ADDTEXT</code>, but inserts styled text.</p> - - <p><b id="SCI_APPENDTEXT">SCI_APPENDTEXT(int length, const char *s)</b><br /> - This adds the first <code>length</code> characters from the string <code>s</code> to the end - of the document. This will include any 0's in the string that you might have expected to stop - the operation. The current selection is not changed and the new text is not scrolled into - view.</p> - - <p><b id="SCI_INSERTTEXT">SCI_INSERTTEXT(int pos, const char *text)</b><br /> - This inserts the zero terminated <code>text</code> string at position <code>pos</code> or at - the current position if <code>pos</code> is -1. If the current position is after the insertion point - then it is moved along with its surrounding text but no scrolling is performed.</p> - - <p><b id="SCI_CLEARALL">SCI_CLEARALL</b><br /> - Unless the document is read-only, this deletes all the text.</p> - - <p><b id="SCI_CLEARDOCUMENTSTYLE">SCI_CLEARDOCUMENTSTYLE</b><br /> - When wanting to completely restyle the document, for example after choosing a lexer, the - <code>SCI_CLEARDOCUMENTSTYLE</code> can be used to clear all styling information and reset the - folding state.</p> - - <p><b id="SCI_GETCHARAT">SCI_GETCHARAT(int pos)</b><br /> - This returns the character at <code>pos</code> in the document or 0 if <code>pos</code> is - negative or past the end of the document.</p> - - <p><b id="SCI_GETSTYLEAT">SCI_GETSTYLEAT(int pos)</b><br /> - This returns the style at <code>pos</code> in the document, or 0 if <code>pos</code> is - negative or past the end of the document.</p> - - <p><b id="SCI_SETSTYLEBITS">SCI_SETSTYLEBITS(int bits)</b><br /> - <b id="SCI_GETSTYLEBITS">SCI_GETSTYLEBITS</b><br /> - This pair of routines sets and reads back the number of bits in each cell to use for styling, - to a maximum of 7 style bits. The remaining bits can be used as indicators. The standard - setting is <code>SCI_SETSTYLEBITS(5)</code>. - The number of styling bits needed by the current lexer can be found with - <a class="message" href="#SCI_GETSTYLEBITSNEEDED">SCI_GETSTYLEBITSNEEDED</a>.</p> - - <p><b id="TextRange">TextRange</b> and <b id="CharacterRange">CharacterRange</b><br /> - These structures are defined to be exactly the same shape as the Win32 <code>TEXTRANGE</code> - and <code>CHARRANGE</code>, so that older code that treats Scintilla as a RichEdit will - work.</p> -<pre> -struct CharacterRange { - long cpMin; - long cpMax; -}; - -struct TextRange { - struct CharacterRange chrg; - char *lpstrText; -}; -</pre> - - <h3 id="EncodedAccess">GTK+-specific: Access to encoded text</h3> - - <p><b id="SCI_TARGETASUTF8">SCI_TARGETASUTF8(<unused>, char *s)</b><br /> - This method retrieves the value of the target encoded as UTF-8 which is the default - encoding of GTK+ so is useful for retrieving text for use in other parts of the user interface, - such as find and replace dialogs. The length of the encoded text in bytes is returned. - </p> - - <p><b id="SCI_ENCODEDFROMUTF8">SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)</b><br /> - <b id="SCI_SETLENGTHFORENCODE">SCI_SETLENGTHFORENCODE(int bytes)</b><br /> - <code>SCI_ENCODEDFROMUTF8</code> converts a UTF-8 string into the document's - encoding which is useful for taking the results of a find dialog, for example, and receiving - a string of bytes that can be searched for in the document. Since the text can contain nul bytes, - the <code>SCI_SETLENGTHFORENCODE</code> method can be used to set the - length that will be converted. If set to -1, the length is determined by finding a nul byte. - The length of the converted string is returned. - </p> - - - <h2 id="Searching">Searching</h2> - <code><a class="message" href="#SCI_FINDTEXT">SCI_FINDTEXT(int flags, TextToFind - *ttf)</a><br /> - <a class="message" href="#SCI_SEARCHANCHOR">SCI_SEARCHANCHOR</a><br /> - <a class="message" href="#SCI_SEARCHNEXT">SCI_SEARCHNEXT(int searchFlags, const char - *text)</a><br /> - <a class="message" href="#SCI_SEARCHPREV">SCI_SEARCHPREV(int searchFlags, const char - *text)</a><br /> - <a class="jump" href="#SearchAndReplaceUsingTheTarget">Search and replace using the - target</a><br /> - </code> - - <p><b id="searchFlags"><code>searchFlags</code></b><br /> - Several of the search routines use flag options, which include a simple regular expression - search. Combine the flag options by adding them:</p> - - <table border="0" summary="Search flags"> - <tbody> - <tr> - <td><code>SCFIND_MATCHCASE</code></td> - - <td>A match only occurs with text that matches the case of the search string.</td> - </tr> - - <tr> - <td><code>SCFIND_WHOLEWORD</code></td> - - <td>A match only occurs if the characters before and after are not word characters.</td> - </tr> - - <tr> - <td><code>SCFIND_WORDSTART</code></td> - - <td>A match only occurs if the character before is not a word character.</td> - </tr> - - <tr> - <td><code>SCFIND_REGEXP</code></td> - - <td>The search string should be interpreted as a regular expression.</td> - </tr> - <tr> - <td><code>SCFIND_POSIX</code></td> - - <td>Treat regular expression in a more POSIX compatible manner - by interpreting bare ( and ) for tagged sections rather than \( and \).</td> - </tr> - </tbody> - </table> - - <p>If <code>SCFIND_REGEXP</code> is not included in the <code>searchFlags</code>, you can - search backwards to find the previous occurrence of a search string by setting the end of the - search range before the start. If <code>SCFIND_REGEXP</code> is included, searches are always - from a lower position to a higher position, even if the search range is backwards.</p> - - <p>In a regular expression, special characters interpreted are:</p> - - <table border="0" summary="Regular expression synopsis"> - <tbody> - <tr> - <td><code>.</code></td> - - <td>Matches any character</td> - </tr> - - <tr> - <td><code>\(</code></td> - - <td>This marks the start of a region for tagging a match.</td> - </tr> - - <tr> - <td><code>\)</code></td> - - <td>This marks the end of a tagged region.</td> - </tr> - - <tr> - <td><code>\n</code></td> - - <td>Where <code>n</code> is 1 through 9 refers to the first through ninth tagged region - when replacing. For example, if the search string was <code>Fred\([1-9]\)XXX</code> and - the replace string was <code>Sam\1YYY</code>, when applied to <code>Fred2XXX</code> this - would generate <code>Sam2YYY</code>.</td> - </tr> - - <tr> - <td><code>\<</code></td> - - <td>This matches the start of a word using Scintilla's definitions of words.</td> - </tr> - - <tr> - <td>\></td> - - <td>This matches the end of a word using Scintilla's definition of words.</td> - </tr> - - <tr> - <td><code>\x</code></td> - - <td>This allows you to use a character x that would otherwise have a special meaning. For - example, \[ would be interpreted as [ and not as the start of a character set.</td> - </tr> - - <tr> - <td><code>[...]</code></td> - - <td>This indicates a set of characters, for example, [abc] means any of the characters a, - b or c. You can also use ranges, for example [a-z] for any lower case character.</td> - </tr> - - <tr> - <td><code>[^...]</code></td> - - <td>The complement of the characters in the set. For example, [^A-Za-z] means any - character except an alphabetic character.</td> - </tr> - - <tr> - <td><code>^</code></td> - - <td>This matches the start of a line (unless used inside a set, see above).</td> - </tr> - - <tr> - <td><code>$</code></td> - - <td>This matches the end of a line.</td> - </tr> - - <tr> - <td><code>*</code></td> - - <td>This matches 0 or more times. For example, <code>Sa*m</code> matches <code>Sm</code>, - <code>Sam</code>, <code>Saam</code>, <code>Saaam</code> and so on.</td> - </tr> - - <tr> - <td><code>+</code></td> - - <td>This matches 1 or more times. For example, <code>Sa+m</code> matches - <code>Sam</code>, <code>Saam</code>, <code>Saaam</code> and so on.</td> - </tr> - </tbody> - </table> - - <p><b id="SCI_FINDTEXT">SCI_FINDTEXT(int searchFlags, <a class="jump" - href="#TextToFind">TextToFind</a> *ttf)</b><br /> - This message searches for text in the document. It does not use or move the current selection. - The <a class="jump" href="#searchFlags"><code>searchFlags</code></a> argument controls the - search type, which includes regular expression searches.</p> - - <p>The <code>TextToFind</code> structure is defined in <code>Scintilla.h</code>; set - <code>chrg.cpMin</code> and <code>chrg.cpMax</code> with the range of positions in the document - to search. If <code>SCFIND_REGEXP</code> is not included in the flags, you can search backwards by - setting <code>chrg.cpMax</code> less than <code>chrg.cpMin</code>. If <code>SCFIND_REGEXP</code> - is included, the search is always forwards (even if <code>chrg.cpMax</code> is less than <code>chrg.cpMin</code>). - Set the <code>lpstrText</code> member of <code>TextToFind</code> to point at a zero terminated - text string holding the search pattern. If your language makes the use of <code>TextToFind</code> - difficult, you should consider using <code>SCI_SEARCHINTARGET</code> instead.</p> - - <p>The return value is -1 if the search fails or the position of the start of the found text if - it succeeds. The <code>chrgText.cpMin</code> and <code>chrgText.cpMax</code> members of - <code>TextToFind</code> are filled in with the start and end positions of the found text.</p> - - <p>See also: <code><a class="message" - href="#SCI_SEARCHINTARGET">SCI_SEARCHINTARGET</a></code></p> - - <p><b id="TextToFind">TextToFind</b><br /> - This structure is defined to have exactly the same shape as the Win32 structure - <code>FINDTEXTEX</code> for old code that treated Scintilla as a RichEdit control.</p> -<pre> -struct TextToFind { - struct <a class="jump" href="#CharacterRange">CharacterRange</a> chrg; // range to search - char *lpstrText; // the search pattern (zero terminated) - struct CharacterRange chrgText; // returned as position of matching text -}; -</pre> - - <p><b id="SCI_SEARCHANCHOR">SCI_SEARCHANCHOR</b><br /> - <b id="SCI_SEARCHNEXT">SCI_SEARCHNEXT(int searchFlags, const char *text)</b><br /> - <b id="SCI_SEARCHPREV">SCI_SEARCHPREV(int searchFlags, const char *text)</b><br /> - These messages provide relocatable search support. This allows multiple incremental - interactive searches to be macro recorded while still setting the selection to found text so - the find/select operation is self-contained. These three messages send <a class="message" - href="#SCN_MACRORECORD"><code>SCN_MACRORECORD</code></a> <a class="jump" - href="#Notifications">notifications</a> if macro recording is enabled.</p> - - <p><code>SCI_SEARCHANCHOR</code> sets the search start point used by - <code>SCI_SEARCHNEXT</code> and <code>SCI_SEARCHPREV</code> to the start of the current - selection, that is, the end of the selection that is nearer to the start of the document. You - should always call this before calling either of <code>SCI_SEARCHNEXT</code> or - <code>SCI_SEARCHPREV</code>.</p> - - <p><code>SCI_SEARCHNEXT</code> and <code>SCI_SEARCHPREV</code> search for the next and previous - occurrence of the zero terminated search string pointed at by text. The search is modified by - the <a class="jump" href="#searchFlags"><code>searchFlags</code></a>. If you request a regular - expression, <code>SCI_SEARCHPREV</code> finds the first occurrence of the search string in the - document, not the previous one before the anchor point.</p> - - <p>The return value is -1 if nothing is found, otherwise the return value is the start position - of the matching text. The selection is updated to show the matched text, but is not scrolled - into view.</p> - - <p>See also: <a class="message" href="#SCI_SEARCHINTARGET"><code>SCI_SEARCHINTARGET</code></a>, - <a class="message" href="#SCI_FINDTEXT"><code>SCI_FINDTEXT</code></a></p> - - <h3 id="SearchAndReplaceUsingTheTarget">Search and replace using the target</h3> - - <p>Using <a class="message" href="#SCI_REPLACESEL"><code>SCI_REPLACESEL</code></a>, - modifications cause scrolling and other visible changes, which may take some time and cause - unwanted display updates. If performing many changes, such as a replace all command, the target - can be used instead. First, set the target, ie. the range to be replaced. Then call - <code>SCI_REPLACETARGET</code> or <code>SCI_REPLACETARGETRE</code>.</p> - - <p>Searching can be performed within the target range with <code>SCI_SEARCHINTARGET</code>, - which uses a counted string to allow searching for null characters. It returns the length of - range or -1 for failure, in which case the target is not moved. The flags used by - <code>SCI_SEARCHINTARGET</code> such as <code>SCFIND_MATCHCASE</code>, - <code>SCFIND_WHOLEWORD</code>, <code>SCFIND_WORDSTART</code>, and <code>SCFIND_REGEXP</code> - can be set with <code>SCI_SETSEARCHFLAGS</code>. <code>SCI_SEARCHINTARGET</code> may be simpler - for some clients to use than <a class="message" - href="#SCI_FINDTEXT"><code>SCI_FINDTEXT</code></a>, as that requires using a pointer to a - structure.</p> - <code><a class="message" href="#SCI_SETTARGETSTART">SCI_SETTARGETSTART(int pos)</a><br /> - <a class="message" href="#SCI_GETTARGETSTART">SCI_GETTARGETSTART</a><br /> - <a class="message" href="#SCI_SETTARGETEND">SCI_SETTARGETEND(int pos)</a><br /> - <a class="message" href="#SCI_GETTARGETEND">SCI_GETTARGETEND</a><br /> - <a class="message" href="#SCI_TARGETFROMSELECTION">SCI_TARGETFROMSELECTION</a><br /> - <a class="message" href="#SCI_SETSEARCHFLAGS">SCI_SETSEARCHFLAGS(int searchFlags)</a><br /> - <a class="message" href="#SCI_GETSEARCHFLAGS">SCI_GETSEARCHFLAGS</a><br /> - <a class="message" href="#SCI_SEARCHINTARGET">SCI_SEARCHINTARGET(int length, const char - *text)</a><br /> - <a class="message" href="#SCI_REPLACETARGET">SCI_REPLACETARGET(int length, const char - *text)</a><br /> - <a class="message" href="#SCI_REPLACETARGETRE">SCI_REPLACETARGETRE(int length, const char - *text)</a><br /> - </code> - - <p><b id="SCI_SETTARGETSTART">SCI_SETTARGETSTART(int pos)</b><br /> - <b id="SCI_GETTARGETSTART">SCI_GETTARGETSTART</b><br /> - <b id="SCI_SETTARGETEND">SCI_SETTARGETEND(int pos)</b><br /> - <b id="SCI_GETTARGETEND">SCI_GETTARGETEND</b><br /> - These functions set and return the start and end of the target. When searching in non-regular - expression mode, you can set start greater than end to find the last matching text in the - target rather than the first matching text. The target is also set by a successful - <code>SCI_SEARCHINTARGET</code>.</p> - - <p><b id="SCI_TARGETFROMSELECTION">SCI_TARGETFROMSELECTION</b><br /> - Set the target start and end to the start and end positions of the selection.</p> - - <p><b id="SCI_SETSEARCHFLAGS">SCI_SETSEARCHFLAGS(int searchFlags)</b><br /> - <b id="SCI_GETSEARCHFLAGS">SCI_GETSEARCHFLAGS</b><br /> - These get and set the <a class="jump" href="#searchFlags"><code>searchFlags</code></a> used by - <code>SCI_SEARCHINTARGET</code>. There are several option flags including a simple regular - expression search.</p> - - <p><b id="SCI_SEARCHINTARGET">SCI_SEARCHINTARGET(int length, const char *text)</b><br /> - This searches for the first occurrence of a text string in the target defined by - <code>SCI_SETTARGETSTART</code> and <code>SCI_SETTARGETEND</code>. The text string is not zero - terminated; the size is set by <code>length</code>. The search is modified by the search flags - set by <code>SCI_SETSEARCHFLAGS</code>. If the search succeeds, the target is set to the found - text and the return value is the position of the start of the matching text. If the search - fails, the result is -1.</p> - - <p><b id="SCI_REPLACETARGET">SCI_REPLACETARGET(int length, const char *text)</b><br /> - If <code>length</code> is -1, <code>text</code> is a zero terminated string, otherwise - <code>length</code> sets the number of character to replace the target with. - After replacement, the target range refers to the replacement text. - The return value - is the length of the replacement string.<br /> - Note that the recommended way to delete text in the document is to set the target to the text to be removed, - and to perform a replace target with an empty string.</p> - - <p><b id="SCI_REPLACETARGETRE">SCI_REPLACETARGETRE(int length, const char *text)</b><br /> - This replaces the target using regular expressions. If <code>length</code> is -1, - <code>text</code> is a zero terminated string, otherwise <code>length</code> is the number of - characters to use. The replacement string is formed from the text string with any sequences of - <code>\1</code> through <code>\9</code> replaced by tagged matches from the most recent regular - expression search. - After replacement, the target range refers to the replacement text. - The return value is the length of the replacement string.</p> - - <p>See also: <a class="message" href="#SCI_FINDTEXT"><code>SCI_FINDTEXT</code></a></p> - - <h2 id="Overtype">Overtype</h2> - - <p><b id="SCI_SETOVERTYPE">SCI_SETOVERTYPE(bool overType)</b><br /> - <b id="SCI_GETOVERTYPE">SCI_GETOVERTYPE</b><br /> - When overtype is enabled, each typed character replaces the character to the right of the text - caret. When overtype is disabled, characters are inserted at the caret. - <code>SCI_GETOVERTYPE</code> returns <code>TRUE</code> (1) if overtyping is active, otherwise - <code>FALSE</code> (0) will be returned. Use <code>SCI_SETOVERTYPE</code> to set the overtype - mode.</p> - - <h2 id="CutCopyAndPaste">Cut, copy and paste</h2> - - <code><a class="message" href="#SCI_CUT">SCI_CUT</a><br /> - <a class="message" href="#SCI_COPY">SCI_COPY</a><br /> - <a class="message" href="#SCI_PASTE">SCI_PASTE</a><br /> - <a class="message" href="#SCI_CLEAR">SCI_CLEAR</a><br /> - <a class="message" href="#SCI_CANPASTE">SCI_CANPASTE</a><br /> - <a class="message" href="#SCI_COPYRANGE">SCI_COPYRANGE(int start, int end)</a><br /> - <a class="message" href="#SCI_COPYTEXT">SCI_COPYTEXT(int length, - const char *text)</a><br /> - <a class="message" href="#SCI_SETPASTECONVERTENDINGS">SCI_SETPASTECONVERTENDINGS(bool convert)</a><br /> - <a class="message" href="#SCI_GETPASTECONVERTENDINGS">SCI_GETPASTECONVERTENDINGS</a><br /> - </code> - - <p><b id="SCI_CUT">SCI_CUT</b><br /> - <b id="SCI_COPY">SCI_COPY</b><br /> - <b id="SCI_PASTE">SCI_PASTE</b><br /> - <b id="SCI_CLEAR">SCI_CLEAR</b><br /> - <b id="SCI_CANPASTE">SCI_CANPASTE</b><br /> - These commands perform the standard tasks of cutting and copying data to the clipboard, - pasting from the clipboard into the document, and clearing the document. - <code>SCI_CANPASTE</code> returns non-zero if the document isn't read-only and if the selection - doesn't contain protected text. If you need a "can copy" or "can cut", use - <code>SCI_GETSELECTIONSTART()-SCI_GETSELECTIONEND()</code>, which will be non-zero if you can - copy or cut to the clipboard.</p> - - <p>GTK+ does not really support <code>SCI_CANPASTE</code> and always returns <code>TRUE</code> - unless the document is read-only.</p> - - <p>On X, the clipboard is asynchronous and may require several messages between - the destination and source applications. Data from SCI_PASTE will not arrive in the - document immediately.</p> - - <b id="SCI_COPYRANGE">SCI_COPYRANGE(int start, int end)</b><br /> - <b id="SCI_COPYTEXT">SCI_COPYTEXT(int length, const char *text)</b><br /> - <p><code>SCI_COPYRANGE</code> copies a range of text from the document to - the system clipboard and <code>SCI_COPYTEXT</code> copies a supplied piece of - text to the system clipboard.</p> - - <p><b id="SCI_SETPASTECONVERTENDINGS">SCI_SETPASTECONVERTENDINGS(bool convert)</b><br /> - <b id="SCI_GETPASTECONVERTENDINGS">SCI_GETPASTECONVERTENDINGS</b><br /> - If this property is set then when text is pasted any line ends are converted to match the document's - end of line mode as set with - <a class="message" href="#SCI_SETEOLMODE">SCI_SETEOLMODE</a>. - Currently only changeable on Windows. On GTK+ pasted text is always converted.</p> - - <h2 id="ErrorHandling">Error handling</h2> - - <p><b id="SCI_SETSTATUS">SCI_SETSTATUS(int status)</b><br /> - <b id="SCI_GETSTATUS">SCI_GETSTATUS</b><br /> - If an error occurs, Scintilla may set an internal error number that can be retrieved with - <code>SCI_GETSTATUS</code>. Not currently used but will be in the future. To clear the error - status call <code>SCI_SETSTATUS(0)</code>.</p> - - <h2 id="UndoAndRedo">Undo and Redo</h2> - - <p>Scintilla has multiple level undo and redo. It will continue to collect undoable actions - until memory runs out. Scintilla saves actions that change the document. Scintilla does not - save caret and selection movements, view scrolling and the like. Sequences of typing or - deleting are compressed into single actions to make it easier to undo and redo at a sensible - level of detail. Sequences of actions can be combined into actions that are undone as a unit. - These sequences occur between <code>SCI_BEGINUNDOACTION</code> and - <code>SCI_ENDUNDOACTION</code> messages. These sequences can be nested and only the top-level - sequences are undone as units.</p> - <code><a class="message" href="#SCI_UNDO">SCI_UNDO</a><br /> - <a class="message" href="#SCI_CANUNDO">SCI_CANUNDO</a><br /> - <a class="message" href="#SCI_EMPTYUNDOBUFFER">SCI_EMPTYUNDOBUFFER</a><br /> - <a class="message" href="#SCI_REDO">SCI_REDO</a><br /> - <a class="message" href="#SCI_CANREDO">SCI_CANREDO</a><br /> - <a class="message" href="#SCI_SETUNDOCOLLECTION">SCI_SETUNDOCOLLECTION(bool - collectUndo)</a><br /> - <a class="message" href="#SCI_GETUNDOCOLLECTION">SCI_GETUNDOCOLLECTION</a><br /> - <a class="message" href="#SCI_BEGINUNDOACTION">SCI_BEGINUNDOACTION</a><br /> - <a class="message" href="#SCI_ENDUNDOACTION">SCI_ENDUNDOACTION</a><br /> - </code> - - <p><b id="SCI_UNDO">SCI_UNDO</b><br /> - <b id="SCI_CANUNDO">SCI_CANUNDO</b><br /> - <code>SCI_UNDO</code> undoes one action, or if the undo buffer has reached a - <code>SCI_ENDUNDOACTION</code> point, all the actions back to the corresponding - <code>SCI_BEGINUNDOACTION</code>.</p> - - <p><code>SCI_CANUNDO</code> returns 0 if there is nothing to undo, and 1 if there is. You would - typically use the result of this message to enable/disable the Edit menu Undo command.</p> - - <p><b id="SCI_REDO">SCI_REDO</b><br /> - <b id="SCI_CANREDO">SCI_CANREDO</b><br /> - <code>SCI_REDO</code> undoes the effect of the last <code>SCI_UNDO</code> operation.</p> - - <p><code>SCI_CANREDO</code> returns 0 if there is no action to redo and 1 if there are undo - actions to redo. You could typically use the result of this message to enable/disable the Edit - menu Redo command.</p> - - <p><b id="SCI_EMPTYUNDOBUFFER">SCI_EMPTYUNDOBUFFER</b><br /> - This command tells Scintilla to forget any saved undo or redo history. It also sets the save - point to the start of the undo buffer, so the document will appear to be unmodified. This does - not cause the <code><a class="message" - href="#SCN_SAVEPOINTREACHED">SCN_SAVEPOINTREACHED</a></code> notification to be sent to the - container.</p> - - <p>See also: <a class="message" href="#SCI_SETSAVEPOINT"><code>SCI_SETSAVEPOINT</code></a></p> - - <p><b id="SCI_SETUNDOCOLLECTION">SCI_SETUNDOCOLLECTION(bool collectUndo)</b><br /> - <b id="SCI_GETUNDOCOLLECTION">SCI_GETUNDOCOLLECTION</b><br /> - You can control whether Scintilla collects undo information with - <code>SCI_SETUNDOCOLLECTION</code>. Pass in <code>true</code> (1) to collect information and - <code>false</code> (0) to stop collecting. If you stop collection, you should also use - <code>SCI_EMPTYUNDOBUFFER</code> to avoid the undo buffer being unsynchronized with the data in - the buffer.</p> - - <p>You might wish to turn off saving undo information if you use the Scintilla to store text - generated by a program (a Log view) or in a display window where text is often deleted and - regenerated.</p> - - <p><b id="SCI_BEGINUNDOACTION">SCI_BEGINUNDOACTION</b><br /> - <b id="SCI_ENDUNDOACTION">SCI_ENDUNDOACTION</b><br /> - Send these two messages to Scintilla to mark the beginning and end of a set of operations that - you want to undo all as one operation but that you have to generate as several operations. - Alternatively, you can use these to mark a set of operations that you do not want to have - combined with the preceding or following operations if they are undone.</p> - - <h2 id="SelectionAndInformation">Selection and information</h2> - - <p>Scintilla maintains a selection that stretches between two points, the anchor and the - current position. If the anchor and the current position are the same, there is no selected - text. Positions in the document range from 0 (before the first character), to the document size - (after the last character). If you use messages, there is nothing to stop you setting a - position that is in the middle of a CRLF pair, or in the middle of a 2 byte character. However, - keyboard commands will not move the caret into such positions.</p> - <code><a class="message" href="#SCI_GETTEXTLENGTH">SCI_GETTEXTLENGTH</a><br /> - <a class="message" href="#SCI_GETLENGTH">SCI_GETLENGTH</a><br /> - <a class="message" href="#SCI_GETLINECOUNT">SCI_GETLINECOUNT</a><br /> - <a class="message" href="#SCI_GETFIRSTVISIBLELINE">SCI_GETFIRSTVISIBLELINE</a><br /> - <a class="message" href="#SCI_LINESONSCREEN">SCI_LINESONSCREEN</a><br /> - <a class="message" href="#SCI_GETMODIFY">SCI_GETMODIFY</a><br /> - <a class="message" href="#SCI_SETSEL">SCI_SETSEL(int anchorPos, int currentPos)</a><br /> - <a class="message" href="#SCI_GOTOPOS">SCI_GOTOPOS(int position)</a><br /> - <a class="message" href="#SCI_GOTOLINE">SCI_GOTOLINE(int line)</a><br /> - <a class="message" href="#SCI_SETCURRENTPOS">SCI_SETCURRENTPOS(int position)</a><br /> - <a class="message" href="#SCI_GETCURRENTPOS">SCI_GETCURRENTPOS</a><br /> - <a class="message" href="#SCI_SETANCHOR">SCI_SETANCHOR(int position)</a><br /> - <a class="message" href="#SCI_GETANCHOR">SCI_GETANCHOR</a><br /> - <a class="message" href="#SCI_SETSELECTIONSTART">SCI_SETSELECTIONSTART(int position)</a><br /> - <a class="message" href="#SCI_GETSELECTIONSTART">SCI_GETSELECTIONSTART</a><br /> - <a class="message" href="#SCI_SETSELECTIONEND">SCI_SETSELECTIONEND(int position)</a><br /> - <a class="message" href="#SCI_GETSELECTIONEND">SCI_GETSELECTIONEND</a><br /> - <a class="message" href="#SCI_SELECTALL">SCI_SELECTALL</a><br /> - <a class="message" href="#SCI_LINEFROMPOSITION">SCI_LINEFROMPOSITION(int position)</a><br /> - <a class="message" href="#SCI_POSITIONFROMLINE">SCI_POSITIONFROMLINE(int line)</a><br /> - <a class="message" href="#SCI_GETLINEENDPOSITION">SCI_GETLINEENDPOSITION(int line)</a><br /> - <a class="message" href="#SCI_LINELENGTH">SCI_LINELENGTH(int line)</a><br /> - <a class="message" href="#SCI_GETCOLUMN">SCI_GETCOLUMN(int position)</a><br /> - <a class="message" href="#SCI_FINDCOLUMN">SCI_FINDCOLUMN(int line, int column)</a><br /> - <a class="message" href="#SCI_POSITIONFROMPOINT">SCI_POSITIONFROMPOINT(int x, int y)</a><br /> - <a class="message" href="#SCI_POSITIONFROMPOINTCLOSE">SCI_POSITIONFROMPOINTCLOSE(int x, int - y)</a><br /> - <a class="message" href="#SCI_POINTXFROMPOSITION">SCI_POINTXFROMPOSITION(<unused>, int - position)</a><br /> - <a class="message" href="#SCI_POINTYFROMPOSITION">SCI_POINTYFROMPOSITION(<unused>, int - position)</a><br /> - <a class="message" href="#SCI_HIDESELECTION">SCI_HIDESELECTION(bool hide)</a><br /> - <a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT(<unused>, char *text)</a><br /> - <a class="message" href="#SCI_GETCURLINE">SCI_GETCURLINE(int textLen, char *text)</a><br /> - <a class="message" href="#SCI_SELECTIONISRECTANGLE">SCI_SELECTIONISRECTANGLE</a><br /> - <a class="message" href="#SCI_SETSELECTIONMODE">SCI_SETSELECTIONMODE(int mode)</a><br /> - <a class="message" href="#SCI_GETSELECTIONMODE">SCI_GETSELECTIONMODE</a><br /> - <a class="message" href="#SCI_GETLINESELSTARTPOSITION">SCI_GETLINESELSTARTPOSITION(int line)</a><br /> - <a class="message" href="#SCI_GETLINESELENDPOSITION">SCI_GETLINESELENDPOSITION(int line)</a><br /> - <a class="message" href="#SCI_MOVECARETINSIDEVIEW">SCI_MOVECARETINSIDEVIEW</a><br /> - <a class="message" href="#SCI_WORDENDPOSITION">SCI_WORDENDPOSITION(int position, bool - onlyWordCharacters)</a><br /> - <a class="message" href="#SCI_WORDSTARTPOSITION">SCI_WORDSTARTPOSITION(int position, bool - onlyWordCharacters)</a><br /> - <a class="message" href="#SCI_POSITIONBEFORE">SCI_POSITIONBEFORE(int position)</a><br /> - <a class="message" href="#SCI_POSITIONAFTER">SCI_POSITIONAFTER(int position)</a><br /> - <a class="message" href="#SCI_TEXTWIDTH">SCI_TEXTWIDTH(int styleNumber, const char *text)</a><br /> - <a class="message" href="#SCI_TEXTHEIGHT">SCI_TEXTHEIGHT(int line)</a><br /> - <a class="message" href="#SCI_CHOOSECARETX">SCI_CHOOSECARETX</a><br /> - </code> - - <p><b id="SCI_GETTEXTLENGTH">SCI_GETTEXTLENGTH</b><br /> - <b id="SCI_GETLENGTH">SCI_GETLENGTH</b><br /> - Both these messages return the length of the document in characters.</p> - - <p><b id="SCI_GETLINECOUNT">SCI_GETLINECOUNT</b><br /> - This returns the number of lines in the document. An empty document contains 1 line. A - document holding only an end of line sequence has 2 lines.</p> - - <p><b id="SCI_GETFIRSTVISIBLELINE">SCI_GETFIRSTVISIBLELINE</b><br /> - This returns the line number of the first visible line in the Scintilla view. The first line - in the document is numbered 0. The value is a visible line rather than a document line.</p> - - <p><b id="SCI_LINESONSCREEN">SCI_LINESONSCREEN</b><br /> - This returns the number of complete lines visible on the screen. With a constant line height, - this is the vertical space available divided by the line separation. Unless you arrange to size - your window to an integral number of lines, there may be a partial line visible at the bottom - of the view.</p> - - <p><b id="SCI_GETMODIFY">SCI_GETMODIFY</b><br /> - This returns non-zero if the document is modified and 0 if it is unmodified. The modified - status of a document is determined by the undo position relative to the save point. The save - point is set by <a class="message" href="#SCI_SETSAVEPOINT"><code>SCI_SETSAVEPOINT</code></a>, - usually when you have saved data to a file.</p> - - <p>If you need to be notified when the document becomes modified, Scintilla notifies the - container that it has entered or left the save point with the <a class="message" - href="#SCN_SAVEPOINTREACHED"><code>SCN_SAVEPOINTREACHED</code></a> and <a class="message" - href="#SCN_SAVEPOINTLEFT"><code>SCN_SAVEPOINTLEFT</code></a> <a class="jump" - href="#Notifications">notification messages</a>.</p> - - <p><b id="SCI_SETSEL">SCI_SETSEL(int anchorPos, int currentPos)</b><br /> - This message sets both the anchor and the current position. If <code>currentPos</code> is - negative, it means the end of the document. If <code>anchorPos</code> is negative, it means - remove any selection (i.e. set the anchor to the same position as <code>currentPos</code>). The - caret is scrolled into view after this operation.</p> - - <p><b id="SCI_GOTOPOS">SCI_GOTOPOS(int pos)</b><br /> - This removes any selection, sets the caret at <code>pos</code> and scrolls the view to make - the caret visible, if necessary. It is equivalent to - <code>SCI_SETSEL(pos, pos)</code>. The anchor position is set the same as the current - position.</p> - - <p><b id="SCI_GOTOLINE">SCI_GOTOLINE(int line)</b><br /> - This removes any selection and sets the caret at the start of line number <code>line</code> - and scrolls the view (if needed) to make it visible. The anchor position is set the same as the - current position. If <code>line</code> is outside the lines in the document (first line is 0), - the line set is the first or last.</p> - - <p><b id="SCI_SETCURRENTPOS">SCI_SETCURRENTPOS(int pos)</b><br /> - This sets the current position and creates a selection between the anchor and the current - position. The caret is not scrolled into view.</p> - - <p>See also: <a class="message" href="#SCI_SCROLLCARET"><code>SCI_SCROLLCARET</code></a></p> - - <p><b id="SCI_GETCURRENTPOS">SCI_GETCURRENTPOS</b><br /> - This returns the current position.</p> - - <p><b id="SCI_SETANCHOR">SCI_SETANCHOR(int pos)</b><br /> - This sets the anchor position and creates a selection between the anchor position and the - current position. The caret is not scrolled into view.</p> - - <p>See also: <a class="message" href="#SCI_SCROLLCARET"><code>SCI_SCROLLCARET</code></a></p> - - <p><b id="SCI_GETANCHOR">SCI_GETANCHOR</b><br /> - This returns the current anchor position.</p> - - <p><b id="SCI_SETSELECTIONSTART">SCI_SETSELECTIONSTART(int pos)</b><br /> - <b id="SCI_SETSELECTIONEND">SCI_SETSELECTIONEND(int pos)</b><br /> - These set the selection based on the assumption that the anchor position is less than the - current position. They do not make the caret visible. The table shows the positions of the - anchor and the current position after using these messages.</p> - - <table cellpadding="3" cellspacing="0" border="1" summary="SetSelection caret positioning"> - <thead align="center"> - <tr> - <th> - </th> - - <th>anchor</th> - - <th>current</th> - </tr> - </thead> - - <tbody align="center"> - <tr> - <th><code>SCI_SETSELECTIONSTART</code></th> - - <td><code>pos</code></td> - - <td><code>Max(pos, current)</code></td> - </tr> - - <tr> - <th><code>SCI_SETSELECTIONEND</code></th> - - <td><code>Min(anchor, pos)</code></td> - - <td><code>pos</code></td> - </tr> - </tbody> - </table> - - <p>See also: <a class="message" href="#SCI_SCROLLCARET"><code>SCI_SCROLLCARET</code></a></p> - - <p><b id="SCI_GETSELECTIONSTART">SCI_GETSELECTIONSTART</b><br /> - <b id="SCI_GETSELECTIONEND">SCI_GETSELECTIONEND</b><br /> - These return the start and end of the selection without regard to which end is the current - position and which is the anchor. <code>SCI_GETSELECTIONSTART</code> returns the smaller of the - current position or the anchor position. <code>SCI_GETSELECTIONEND</code> returns the larger of - the two values.</p> - - <p><b id="SCI_SELECTALL">SCI_SELECTALL</b><br /> - This selects all the text in the document. The current position is not scrolled into view.</p> - - <p><b id="SCI_LINEFROMPOSITION">SCI_LINEFROMPOSITION(int pos)</b><br /> - This message returns the line that contains the position <code>pos</code> in the document. The - return value is 0 if <code>pos</code> <= 0. The return value is the last line if - <code>pos</code> is beyond the end of the document.</p> - - <p><b id="SCI_POSITIONFROMLINE">SCI_POSITIONFROMLINE(int line)</b><br /> - This returns the document position that corresponds with the start of the line. If - <code>line</code> is negative, the position of the line holding the start of the selection is - returned. If <code>line</code> is greater than the lines in the document, the return value is - -1. If <code>line</code> is equal to the number of lines in the document (i.e. 1 line past the - last line), the return value is the end of the document.</p> - - <p><b id="SCI_GETLINEENDPOSITION">SCI_GETLINEENDPOSITION(int line)</b><br /> - This returns the position at the end of the line, before any line end characters. If <code>line</code> - is the last line in the document (which does not have any end of line characters), the result is the size of the - document. If <code>line</code> is negative or <code>line</code> >= <a class="message" - href="#SCI_GETLINECOUNT"><code>SCI_GETLINECOUNT()</code></a>, the result is undefined.</p> - - <p><b id="SCI_LINELENGTH">SCI_LINELENGTH(int line)</b><br /> - This returns the length of the line, including any line end characters. If <code>line</code> - is negative or beyond the last line in the document, the result is 0. If you want the length of - the line not including any end of line characters, use <a class="message" - href="#SCI_GETLINEENDPOSITION"><code>SCI_GETLINEENDPOSITION(line)</code></a> - <a class="message" - href="#SCI_POSITIONFROMLINE"><code>SCI_POSITIONFROMLINE(line)</code></a>.</p> - <b id="SCI_GETSELTEXT">SCI_GETSELTEXT(<unused>, char *text)</b><br /> - This copies the currently selected text and a terminating 0 byte to the <code>text</code> - buffer. The buffer must be at least - <code>SCI_GETSELECTIONEND()-SCI_GETSELECTIONSTART()+1</code> bytes long. <br /> - If the text argument is 0 then the length that should be allocated - to store the entire selection is returned.<br /> - - <p>See also: <code><a class="message" href="#SCI_GETCURLINE">SCI_GETCURLINE</a>, <a - class="message" href="#SCI_GETLINE">SCI_GETLINE</a>, <a class="message" - href="#SCI_GETTEXT">SCI_GETTEXT</a>, <a class="message" - href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT</a>, <a class="message" - href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE</a></code></p> - - <p><b id="SCI_GETCURLINE">SCI_GETCURLINE(int textLen, char *text)</b><br /> - This retrieves the text of the line containing the caret and returns the position within the - line of the caret. Pass in <code>char* text</code> pointing at a buffer large enough to hold - the text you wish to retrieve and a terminating 0 character. - Set <code>textLen</code> to the - length of the buffer which must be at least 1 to hold the terminating 0 character. - If the text argument is 0 then the length that should be allocated - to store the entire current line is returned.</p> - - <p>See also: <code><a class="message" href="#SCI_GETSELTEXT">SCI_GETSELTEXT</a>, <a - class="message" href="#SCI_GETLINE">SCI_GETLINE</a>, <a class="message" - href="#SCI_GETTEXT">SCI_GETTEXT</a>, <a class="message" - href="#SCI_GETSTYLEDTEXT">SCI_GETSTYLEDTEXT</a>, <a class="message" - href="#SCI_GETTEXTRANGE">SCI_GETTEXTRANGE</a></code></p> - - <p><b id="SCI_SELECTIONISRECTANGLE">SCI_SELECTIONISRECTANGLE</b><br /> - This returns 1 if the current selection is in rectangle mode, 0 if not.</p> - - <p><b id="SCI_SETSELECTIONMODE">SCI_SETSELECTIONMODE(int mode)</b><br /> - <b id="SCI_GETSELECTIONMODE">SCI_GETSELECTIONMODE</b><br /> - The two functions set and get the selection mode, which can be - stream (<code>SC_SEL_STREAM</code>=0) or - rectangular (<code>SC_SEL_RECTANGLE</code>=1) - or by lines (<code>SC_SEL_LINES</code>=2). - When set in these modes, regular caret moves will extend or reduce the selection, - until the mode is cancelled by a call with same value or with <code>SCI_CANCEL</code>. - The get function returns the current mode even if the selection was made by mouse - or with regular extended moves.</p> - - <p><b id="SCI_GETLINESELSTARTPOSITION">SCI_GETLINESELSTARTPOSITION(int line)</b><br /> - <b id="SCI_GETLINESELENDPOSITION">SCI_GETLINESELENDPOSITION(int line)</b><br /> - Retrieve the position of the start and end of the selection at the given line with - INVALID_POSITION returned if no selection on this line.</p> - - <p><b id="SCI_MOVECARETINSIDEVIEW">SCI_MOVECARETINSIDEVIEW</b><br /> - If the caret is off the top or bottom of the view, it is moved to the nearest line that is - visible to its current position. Any selection is lost.</p> - - <p><b id="SCI_WORDENDPOSITION">SCI_WORDENDPOSITION(int position, bool - onlyWordCharacters)</b><br /> - <b id="SCI_WORDSTARTPOSITION">SCI_WORDSTARTPOSITION(int position, bool - onlyWordCharacters)</b><br /> - These messages return the start and end of words using the same definition of words as used - internally within Scintilla. You can set your own list of characters that count as words with - <a class="message" href="#SCI_SETWORDCHARS"><code>SCI_SETWORDCHARS</code></a>. The position - sets the start or the search, which is forwards when searching for the end and backwards when - searching for the start.</p> - - <p>Set <code>onlyWordCharacters</code> to <code>true</code> (1) to stop searching at the first - non-word character in the search direction. If <code>onlyWordCharacters</code> is - <code>false</code> (0), the first character in the search direction sets the type of the search - as word or non-word and the search stops at the first non-matching character. Searches are also - terminated by the start or end of the document.</p> - - <p>If "w" represents word characters and "." represents non-word characters and "|" represents - the position and <code>true</code> or <code>false</code> is the state of - <code>onlyWordCharacters</code>:</p> - - <table cellpadding="3" cellspacing="0" border="1" summary="Word start and end positions"> - <thead align="center"> - <tr> - <th>Initial state</th> - - <th>end, true</th> - - <th>end, false</th> - - <th>start, true</th> - - <th>start, false</th> - </tr> - </thead> - - <tbody align="center"> - <tr> - <td>..ww..|..ww..</td> - - <td>..ww..|..ww..</td> - - <td>..ww....|ww..</td> - - <td>..ww..|..ww..</td> - - <td>..ww|....ww..</td> - </tr> - - <tr> - <td>....ww|ww....</td> - - <td>....wwww|....</td> - - <td>....wwww|....</td> - - <td>....|wwww....</td> - - <td>....|wwww....</td> - </tr> - - <tr> - <td>..ww|....ww..</td> - - <td>..ww|....ww..</td> - - <td>..ww....|ww..</td> - - <td>..|ww....ww..</td> - - <td>..|ww....ww..</td> - </tr> - - <tr> - <td>..ww....|ww..</td> - - <td>..ww....ww|..</td> - - <td>..ww....ww|..</td> - - <td>..ww....|ww..</td> - - <td>..ww|....ww..</td> - </tr> - </tbody> - </table> - - <p><b id="SCI_POSITIONBEFORE">SCI_POSITIONBEFORE(int position)</b><br /> - <b id="SCI_POSITIONAFTER">SCI_POSITIONAFTER(int position)</b><br /> - These messages return the position before and after another position - in the document taking into account the current code page. The minimum - position returned is 0 and the maximum is the last position in the document. - If called with a position within a multi byte character will return the position - of the start/end of that character.</p> - - <p><b id="SCI_TEXTWIDTH">SCI_TEXTWIDTH(int styleNumber, const char *text)</b><br /> - This returns the pixel width of a string drawn in the given <code>styleNumber</code> which can - be used, for example, to decide how wide to make the line number margin in order to display a - given number of numerals.</p> - - <p><b id="SCI_TEXTHEIGHT">SCI_TEXTHEIGHT(int line)</b><br /> - This returns the height in pixels of a particular line. Currently all lines are the same - height.</p> - - <p><b id="SCI_GETCOLUMN">SCI_GETCOLUMN(int pos)</b><br /> - This message returns the column number of a position <code>pos</code> within the document - taking the width of tabs into account. This returns the column number of the last tab on the - line before <code>pos</code>, plus the number of characters between the last tab and - <code>pos</code>. If there are no tab characters on the line, the return value is the number of - characters up to the position on the line. In both cases, double byte characters count as a - single character. This is probably only useful with monospaced fonts.</p> - - <p><b id="SCI_FINDCOLUMN">SCI_FINDCOLUMN(int line, int column)</b><br /> - This message returns the position of a <code>column</code> on a <code>line</code> - taking the width of tabs into account. It treats a multi-byte character as a single column. - Column numbers, like lines start at 0.</p> - - <p><b id="SCI_POSITIONFROMPOINT">SCI_POSITIONFROMPOINT(int x, int y)</b><br /> - <b id="SCI_POSITIONFROMPOINTCLOSE">SCI_POSITIONFROMPOINTCLOSE(int x, int y)</b><br /> - <code>SCI_POSITIONFROMPOINT</code> finds the closest character position to a point and - <code>SCI_POSITIONFROMPOINTCLOSE</code> is similar but returns -1 if the point is outside the - window or not close to any characters.</p> - - <p><b id="SCI_POINTXFROMPOSITION">SCI_POINTXFROMPOSITION(<unused>, int pos)</b><br /> - <b id="SCI_POINTYFROMPOSITION">SCI_POINTYFROMPOSITION(<unused>, int pos)</b><br /> - These messages return the x and y display pixel location of text at position <code>pos</code> - in the document.</p> - - <p><b id="SCI_HIDESELECTION">SCI_HIDESELECTION(bool hide)</b><br /> - The normal state is to make the selection visible by drawing it as set by <a class="message" - href="#SCI_SETSELFORE"><code>SCI_SETSELFORE</code></a> and <a class="message" - href="#SCI_SETSELBACK"><code>SCI_SETSELBACK</code></a>. However, if you hide the selection, it - is drawn as normal text.</p> - - <p><b id="SCI_CHOOSECARETX">SCI_CHOOSECARETX</b><br /> - Scintilla remembers the x value of the last position horizontally moved to explicitly by the - user and this value is then used when moving vertically such as by using the up and down keys. - This message sets the current x position of the caret as the remembered value.</p> - - <h2 id="ScrollingAndAutomaticScrolling">Scrolling and automatic scrolling</h2> - <code><a class="message" href="#SCI_LINESCROLL">SCI_LINESCROLL(int column, int line)</a><br /> - <a class="message" href="#SCI_SCROLLCARET">SCI_SCROLLCARET</a><br /> - <a class="message" href="#SCI_SETXCARETPOLICY">SCI_SETXCARETPOLICY(int caretPolicy, int - caretSlop)</a><br /> - <a class="message" href="#SCI_SETYCARETPOLICY">SCI_SETYCARETPOLICY(int caretPolicy, int - caretSlop)</a><br /> - <a class="message" href="#SCI_SETVISIBLEPOLICY">SCI_SETVISIBLEPOLICY(int caretPolicy, int - caretSlop)</a><br /> - <a class="message" href="#SCI_SETHSCROLLBAR">SCI_SETHSCROLLBAR(bool visible)</a><br /> - <a class="message" href="#SCI_GETHSCROLLBAR">SCI_GETHSCROLLBAR</a><br /> - <a class="message" href="#SCI_SETVSCROLLBAR">SCI_SETVSCROLLBAR(bool visible)</a><br /> - <a class="message" href="#SCI_GETVSCROLLBAR">SCI_GETVSCROLLBAR</a><br /> - <a class="message" href="#SCI_GETXOFFSET">SCI_GETXOFFSET</a><br /> - <a class="message" href="#SCI_SETXOFFSET">SCI_SETXOFFSET(int xOffset)</a><br /> - <a class="message" href="#SCI_SETSCROLLWIDTH">SCI_SETSCROLLWIDTH(int pixelWidth)</a><br /> - <a class="message" href="#SCI_GETSCROLLWIDTH">SCI_GETSCROLLWIDTH</a><br /> - <a class="message" href="#SCI_SETENDATLASTLINE">SCI_SETENDATLASTLINE(bool - endAtLastLine)</a><br /> - <a class="message" href="#SCI_GETENDATLASTLINE">SCI_GETENDATLASTLINE</a><br /> - </code> - - <p><b id="SCI_LINESCROLL">SCI_LINESCROLL(int column, int line)</b><br /> - This will attempt to scroll the display by the number of columns and lines that you specify. - Positive line values increase the line number at the top of the screen (i.e. they move the text - upwards as far as the user is concerned), Negative line values do the reverse.</p> - - <p>The column measure is the width of a space in the default style. Positive values increase - the column at the left edge of the view (i.e. they move the text leftwards as far as the user - is concerned). Negative values do the reverse.</p> - - <p>See also: <a class="message" href="#SCI_SETXOFFSET"><code>SCI_SETXOFFSET</code></a></p> - - <p><b id="SCI_SCROLLCARET">SCI_SCROLLCARET</b><br /> - If the current position (this is the caret if there is no selection) is not visible, the view - is scrolled to make it visible according to the current caret policy.</p> - - <p><b id="SCI_SETXCARETPOLICY">SCI_SETXCARETPOLICY(int caretPolicy, int caretSlop)</b><br /> - <b id="SCI_SETYCARETPOLICY">SCI_SETYCARETPOLICY(int caretPolicy, int caretSlop)</b><br /> - These set the caret policy. The value of <code>caretPolicy</code> is a combination of - <code>CARET_SLOP</code>, <code>CARET_STRICT</code>, <code>CARET_JUMPS</code> and - <code>CARET_EVEN</code>.</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Caret policy"> - <tbody valign="top"> - <tr> - <th align="left"><code>CARET_SLOP</code></th> - - <td>If set, we can define a slop value: <code>caretSlop</code>. This value defines an - unwanted zone (UZ) where the caret is... unwanted. This zone is defined as a number of - pixels near the vertical margins, and as a number of lines near the horizontal margins. - By keeping the caret away from the edges, it is seen within its context. This makes it - likely that the identifier that the caret is on can be completely seen, and that the - current line is seen with some of the lines following it, which are often dependent on - that line.</td> - </tr> - - <tr> - <th align="left"><code>CARET_STRICT</code></th> - - <td>If set, the policy set by <code>CARET_SLOP</code> is enforced... strictly. The caret - is centred on the display if <code>caretSlop</code> is not set, and cannot go in the UZ - if <code>caretSlop</code> is set.</td> - </tr> - - <tr> - <th align="left"><code>CARET_JUMPS</code></th> - - <td>If set, the display is moved more energetically so the caret can move in the same - direction longer before the policy is applied again. '3UZ' notation is used to indicate - three time the size of the UZ as a distance to the margin.</td> - </tr> - - <tr> - <th align="left"><code>CARET_EVEN</code></th> - - <td>If not set, instead of having symmetrical UZs, the left and bottom UZs are extended - up to right and top UZs respectively. This way, we favour the displaying of useful - information: the beginning of lines, where most code reside, and the lines after the - caret, for example, the body of a function.</td> - </tr> - </tbody> - </table> - - <table cellpadding="3" cellspacing="0" border="1" summary="Caret positioning"> - <thead align="center"> - <tr> - <th>slop</th> - - <th>strict</th> - - <th>jumps</th> - - <th>even</th> - - <th>Caret can go to the margin</th> - - <th>On reaching limit (going out of visibility<br /> - or going into the UZ) display is...</th> - </tr> - </thead> - - <tbody align="center"> - <tr> - <td>0</td> - - <td>0</td> - - <td>0</td> - - <td>0</td> - - <td>Yes</td> - - <td>moved to put caret on top/on right</td> - </tr> - - <tr> - <td>0</td> - - <td>0</td> - - <td>0</td> - - <td>1</td> - - <td>Yes</td> - - <td>moved by one position</td> - </tr> - - <tr> - <td>0</td> - - <td>0</td> - - <td>1</td> - - <td>0</td> - - <td>Yes</td> - - <td>moved to put caret on top/on right</td> - </tr> - - <tr> - <td>0</td> - - <td>0</td> - - <td>1</td> - - <td>1</td> - - <td>Yes</td> - - <td>centred on the caret</td> - </tr> - - <tr> - <td>0</td> - - <td>1</td> - - <td>-</td> - - <td>0</td> - - <td>Caret is always on top/on right of display</td> - - <td>-</td> - </tr> - - <tr> - <td>0</td> - - <td>1</td> - - <td>-</td> - - <td>1</td> - - <td>No, caret is always centred</td> - - <td>-</td> - </tr> - - <tr> - <td>1</td> - - <td>0</td> - - <td>0</td> - - <td>0</td> - - <td>Yes</td> - - <td>moved to put caret out of the asymmetrical UZ</td> - </tr> - - <tr> - <td>1</td> - - <td>0</td> - - <td>0</td> - - <td>1</td> - - <td>Yes</td> - - <td>moved to put caret out of the UZ</td> - </tr> - - <tr> - <td>1</td> - - <td>0</td> - - <td>1</td> - - <td>0</td> - - <td>Yes</td> - - <td>moved to put caret at 3UZ of the top or right margin</td> - </tr> - - <tr> - <td>1</td> - - <td>0</td> - - <td>1</td> - - <td>1</td> - - <td>Yes</td> - - <td>moved to put caret at 3UZ of the margin</td> - </tr> - - <tr> - <td>1</td> - - <td>1</td> - - <td>-</td> - - <td>0</td> - - <td>Caret is always at UZ of top/right margin</td> - - <td>-</td> - </tr> - - <tr> - <td>1</td> - - <td>1</td> - - <td>0</td> - - <td>1</td> - - <td>No, kept out of UZ</td> - - <td>moved by one position</td> - </tr> - - <tr> - <td>1</td> - - <td>1</td> - - <td>1</td> - - <td>0</td> - - <td>No, kept out of UZ</td> - - <td>moved to put caret at 3UZ of the margin</td> - </tr> - </tbody> - </table> - - <p><b id="SCI_SETVISIBLEPOLICY">SCI_SETVISIBLEPOLICY(int caretPolicy, int caretSlop)</b><br /> - This determines how the vertical positioning is determined when <a class="message" - href="#SCI_ENSUREVISIBLEENFORCEPOLICY"><code>SCI_ENSUREVISIBLEENFORCEPOLICY</code></a> is - called. It takes <code>VISIBLE_SLOP</code> and <code>VISIBLE_STRICT</code> flags for the policy - parameter. It is similar in operation to <a class="message" - href="#SCI_SETYCARETPOLICY"><code>SCI_SETYCARETPOLICY(int caretPolicy, int - caretSlop)</code></a>.</p> - - <p><b id="SCI_SETHSCROLLBAR">SCI_SETHSCROLLBAR(bool visible)</b><br /> - <b id="SCI_GETHSCROLLBAR">SCI_GETHSCROLLBAR</b><br /> - The horizontal scroll bar is only displayed if it is needed for the assumed width. - If you never wish to see it, call - <code>SCI_SETHSCROLLBAR(0)</code>. Use <code>SCI_SETHSCROLLBAR(1)</code> to enable it again. - <code>SCI_GETHSCROLLBAR</code> returns the current state. The default state is to display it - when needed. - See also: <a class="message" href="#SCI_SETSCROLLWIDTH">SCI_SETSCROLLWIDTH</a>.</p> - - <p><b id="SCI_SETVSCROLLBAR">SCI_SETVSCROLLBAR(bool visible)</b><br /> - <b id="SCI_GETVSCROLLBAR">SCI_GETVSCROLLBAR</b><br /> - By default, the vertical scroll bar is always displayed when required. You can choose to hide - or show it with <code>SCI_SETVSCROLLBAR</code> and get the current state with - <code>SCI_GETVSCROLLBAR</code>.</p> - - <p><b id="SCI_SETXOFFSET">SCI_SETXOFFSET(int xOffset)</b><br /> - <b id="SCI_GETXOFFSET">SCI_GETXOFFSET</b><br /> - The <code>xOffset</code> is the horizontal scroll position in pixels of the start of the text - view. A value of 0 is the normal position with the first text column visible at the left of the - view.</p> - - <p>See also: <a class="message" href="#SCI_LINESCROLL"><code>SCI_LINESCROLL</code></a></p> - - <p><b id="SCI_SETSCROLLWIDTH">SCI_SETSCROLLWIDTH(int pixelWidth)</b><br /> - <b id="SCI_GETSCROLLWIDTH">SCI_GETSCROLLWIDTH</b><br /> - For performance, Scintilla does not measure the display width of the document to determine - the properties of the horizontal scroll bar. Instead, an assumed width is used. - These messages set and get the document width in pixels assumed by Scintilla. - The default value is 2000.</p> - - <p><b id="SCI_SETENDATLASTLINE">SCI_SETENDATLASTLINE(bool endAtLastLine)</b><br /> - <b id="SCI_GETENDATLASTLINE">SCI_GETENDATLASTLINE</b><br /> - <code>SCI_SETENDATLASTLINE</code> sets the scroll range so that maximum scroll position has - the last line at the bottom of the view (default). Setting this to <code>false</code> allows - scrolling one page below the last line.</p> - - <h2 id="WhiteSpace">White space</h2> - <code><a class="message" href="#SCI_SETVIEWWS">SCI_SETVIEWWS(int wsMode)</a><br /> - <a class="message" href="#SCI_GETVIEWWS">SCI_GETVIEWWS</a><br /> - <a class="message" href="#SCI_SETWHITESPACEFORE">SCI_SETWHITESPACEFORE(bool - useWhitespaceForeColour, int colour)</a><br /> - <a class="message" href="#SCI_SETWHITESPACEBACK">SCI_SETWHITESPACEBACK(bool - useWhitespaceBackColour, int colour)</a><br /> - </code> - - <p><b id="SCI_SETVIEWWS">SCI_SETVIEWWS(int wsMode)</b><br /> - <b id="SCI_GETVIEWWS">SCI_GETVIEWWS</b><br /> - White space can be made visible which may useful for languages in which white space is - significant, such as Python. Space characters appear as small centred dots and tab characters - as light arrows pointing to the right. There are also ways to control the display of <a - class="jump" href="#LineEndings">end of line characters</a>. The two messages set and get the - white space display mode. The <code>wsMode</code> argument can be one of:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="White space policy"> - <tbody valign="top"> - <tr> - <th align="left"><code>SCWS_INVISIBLE</code></th> - - <td>0</td> - - <td>The normal display mode with white space displayed as an empty background - colour.</td> - </tr> - - <tr> - <th align="left"><code>SCWS_VISIBLEALWAYS</code></th> - - <td>1</td> - - <td>White space characters are drawn as dots and arrows,</td> - </tr> - - <tr> - <th align="left"><code>SCWS_VISIBLEAFTERINDENT</code></th> - - <td>2</td> - - <td>White space used for indentation is displayed normally but after the first visible - character, it is shown as dots and arrows.</td> - </tr> - </tbody> - </table> - - <p>The effect of using any other <code>wsMode</code> value is undefined.</p> - - <p><b id="SCI_SETWHITESPACEFORE">SCI_SETWHITESPACEFORE<(bool useWhitespaceForeColour, int <a - class="jump" href="#colour">colour</a>)</b><br /> - <b id="SCI_SETWHITESPACEBACK">SCI_SETWHITESPACEBACK(bool useWhitespaceBackColour, int <a - class="jump" href="#colour">colour</a>)</b><br /> - By default, the colour of visible white space is determined by the lexer in use. The - foreground and/or background colour of all visible white space can be set globally, overriding - the lexer's colours with <code>SCI_SETWHITESPACEFORE</code> and - <code>SCI_SETWHITESPACEBACK</code>.</p> - - <h2 id="Cursor">Cursor</h2> - - <p><b id="SCI_SETCURSOR">SCI_SETCURSOR(int curType)</b><br /> - <b id="SCI_GETCURSOR">SCI_GETCURSOR</b><br /> - The cursor is normally chosen in a context sensitive way, so it will be different over the - margin than when over the text. When performing a slow action, you may wish to change to a wait - cursor. You set the cursor type with <code>SCI_SETCURSOR</code>. The <code>curType</code> - argument can be:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Mouse cursors"> - <tbody valign="top"> - <tr> - <th align="left"><code>SC_CURSORNORMAL</code></th> - - <td>-1</td> - - <td>The normal cursor is displayed.</td> - </tr> - - <tr> - <th align="left"><code>SC_CURSORWAIT</code></th> - - <td> 4</td> - - <td>The wait cursor is displayed when the mouse is over or owned by the Scintilla - window.</td> - </tr> - </tbody> - </table> - - <p>Cursor values 1 through 7 have defined cursors, but only <code>SC_CURSORWAIT</code> is - usefully controllable. Other values of <code>curType</code> cause a pointer to be displayed. - The <code>SCI_GETCURSOR</code> message returns the last cursor type you set, or - <code>SC_CURSORNORMAL</code> (-1) if you have not set a cursor type.</p> - - <h2 id="MouseCapture">Mouse capture</h2> - - <p><b id="SCI_SETMOUSEDOWNCAPTURES">SCI_SETMOUSEDOWNCAPTURES(bool captures)</b><br /> - <b id="SCI_GETMOUSEDOWNCAPTURES">SCI_GETMOUSEDOWNCAPTURES</b><br /> - When the mouse is pressed inside Scintilla, it is captured so future mouse movement events are - sent to Scintilla. This behavior may be turned off with - <code>SCI_SETMOUSEDOWNCAPTURES(0)</code>.</p> - - <h2 id="LineEndings">Line endings</h2> - - <p>Scintilla can interpret any of the three major line end conventions, Macintosh (\r), Unix - (\n) and CP/M / DOS / Windows (\r\n). When the user presses the Enter key, one of these line - end strings is inserted into the buffer. The default is \r\n in Windows and \n in Unix, but - this can be changed with the <code>SCI_SETEOLMODE</code> message. You can also convert the - entire document to one of these line endings with <code>SCI_CONVERTEOLS</code>. Finally, you - can choose to display the line endings with <code>SCI_SETVIEWEOL</code>.</p> - <code><a class="message" href="#SCI_SETEOLMODE">SCI_SETEOLMODE(int eolMode)</a><br /> - <a class="message" href="#SCI_GETEOLMODE">SCI_GETEOLMODE</a><br /> - <a class="message" href="#SCI_CONVERTEOLS">SCI_CONVERTEOLS(int eolMode)</a><br /> - <a class="message" href="#SCI_SETVIEWEOL">SCI_SETVIEWEOL(bool visible)</a><br /> - <a class="message" href="#SCI_GETVIEWEOL">SCI_GETVIEWEOL</a><br /> - </code> - - <p><b id="SCI_SETEOLMODE">SCI_SETEOLMODE(int eolMode)</b><br /> - <b id="SCI_GETEOLMODE">SCI_GETEOLMODE</b><br /> - <code>SCI_SETEOLMODE</code> sets the characters that are added into the document when the user - presses the Enter key. You can set <code>eolMode</code> to one of <code>SC_EOL_CRLF</code> (0), - <code>SC_EOL_CR</code> (1), or <code>SC_EOL_LF</code> (2). The <code>SCI_GETEOLMODE</code> - message retrieves the current state.</p> - - <p><b id="SCI_CONVERTEOLS">SCI_CONVERTEOLS(int eolMode)</b><br /> - This message changes all the end of line characters in the document to match - <code>eolMode</code>. Valid values are: <code>SC_EOL_CRLF</code> (0), <code>SC_EOL_CR</code> - (1), or <code>SC_EOL_LF</code> (2).</p> - - <p><b id="SCI_SETVIEWEOL">SCI_SETVIEWEOL(bool visible)</b><br /> - <b id="SCI_GETVIEWEOL">SCI_GETVIEWEOL</b><br /> - Normally, the end of line characters are hidden, but <code>SCI_SETVIEWEOL</code> allows you to - display (or hide) them by setting <code>visible</code> <code>true</code> (or - <code>false</code>). The visible rendering of the end of line characters is similar to - <code>(CR)</code>, <code>(LF)</code>, or <code>(CR)(LF)</code>. <code>SCI_GETVIEWEOL</code> - returns the current state.</p> - - <h2 id="Styling">Styling</h2> - - <p>The styling messages allow you to assign styles to text. The standard Scintilla settings - divide the 8 style bits available for each character into 5 bits (0 to 4 = <a class="jump" - href="#StyleDefinition">styles 0 to 31</a>) that set a style and three bits (5 to 7) that - define <a class="jump" href="#Indicators">indicators</a>. You can change the balance between - styles and indicators with <a class="message" - href="#SCI_SETSTYLEBITS"><code>SCI_SETSTYLEBITS</code></a>. If your styling needs can be met by - one of the standard lexers, or if you can write your own, then a lexer is probably the easiest - way to style your document. If you choose to use the container to do the styling you can use - the <a class="message" href="#SCI_SETLEXER"><code>SCI_SETLEXER</code></a> command to select - <code>SCLEX_CONTAINER</code>, in which case the container is sent a <a class="message" - href="#SCN_STYLENEEDED"><code>SCN_STYLENEEDED</code></a> <a class="jump" - href="#Notifications">notification</a> each time text needs styling for display. As another - alternative, you might use idle time to style the document. Even if you use a lexer, you might - use the styling commands to mark errors detected by a compiler. The following commands can be - used.</p> - <code><a class="message" href="#SCI_GETENDSTYLED">SCI_GETENDSTYLED</a><br /> - <a class="message" href="#SCI_STARTSTYLING">SCI_STARTSTYLING(int position, int mask)</a><br /> - <a class="message" href="#SCI_SETSTYLING">SCI_SETSTYLING(int length, int style)</a><br /> - <a class="message" href="#SCI_SETSTYLINGEX">SCI_SETSTYLINGEX(int length, const char - *styles)</a><br /> - <a class="message" href="#SCI_SETLINESTATE">SCI_SETLINESTATE(int line, int value)</a><br /> - <a class="message" href="#SCI_GETLINESTATE">SCI_GETLINESTATE(int line)</a><br /> - <a class="message" href="#SCI_GETMAXLINESTATE">SCI_GETMAXLINESTATE</a><br /> - </code> - - <p><b id="SCI_GETENDSTYLED">SCI_GETENDSTYLED</b><br /> - Scintilla keeps a record of the last character that is likely to be styled correctly. This is - moved forwards when characters after it are styled and moved backwards if changes are made to - the text of the document before it. Before drawing text, this position is checked to see if any - styling is needed and, if so, a <code><a class="message" - href="#SCN_STYLENEEDED">SCN_STYLENEEDED</a></code> notification message is sent to the - container. The container can send <code>SCI_GETENDSTYLED</code> to work out where it needs to - start styling. Scintilla will always ask to style whole lines.</p> - - <p><b id="SCI_STARTSTYLING">SCI_STARTSTYLING(int pos, int mask)</b><br /> - This prepares for styling by setting the styling position <code>pos</code> to start at and a - <code>mask</code> indicating which bits of the style bytes can be set. The mask allows styling - to occur over several passes, with, for example, basic styling done on an initial pass to - ensure that the text of the code is seen quickly and correctly, and then a second slower pass, - detecting syntax errors and using indicators to show where these are. For example, with the - standard settings of 5 style bits and 3 indicator bits, you would use a <code>mask</code> value - of 31 (0x1f) if you were setting text styles and did not want to change the indicators. After - <code>SCI_STARTSTYLING</code>, send multiple <code>SCI_SETSTYLING</code> messages for each - lexical entity to style.</p> - - <p><b id="SCI_SETSTYLING">SCI_SETSTYLING(int length, int style)</b><br /> - This message sets the style of <code>length</code> characters starting at the styling position - and then increases the styling position by <code>length</code>, ready for the next call. If - <code>sCell</code> is the style byte, the operation is:<br /> - <code>if ((sCell & mask) != style) sCell = (sCell & ~mask) | (style & - mask);</code><br /> - </p> - - <p><b id="SCI_SETSTYLINGEX">SCI_SETSTYLINGEX(int length, const char *styles)</b><br /> - As an alternative to <code>SCI_SETSTYLING</code>, which applies the same style to each byte, - you can use this message which specifies the styles for each of <code>length</code> bytes from - the styling position and then increases the styling position by <code>length</code>, ready for - the next call. The <code>length</code> styling bytes pointed at by <code>styles</code> should - not contain any bits not set in mask.</p> - - <p><b id="SCI_SETLINESTATE">SCI_SETLINESTATE(int line, int value)</b><br /> - <b id="SCI_GETLINESTATE">SCI_GETLINESTATE(int line)</b><br /> - As well as the 8 bits of lexical state stored for each character there is also an integer - stored for each line. This can be used for longer lived parse states such as what the current - scripting language is in an ASP page. Use <code>SCI_SETLINESTATE</code> to set the integer - value and <code>SCI_GETLINESTATE</code> to get the value.</p> - - <p><b id="SCI_GETMAXLINESTATE">SCI_GETMAXLINESTATE</b><br /> - This returns the last line that has any line state.</p> - - <h2 id="StyleDefinition">Style definition</h2> - - <p>While the style setting messages mentioned above change the style numbers associated with - text, these messages define how those style numbers are interpreted visually. There are 128 - lexer styles that can be set, numbered 0 to <code>STYLEMAX</code> (127). Unless you use <a - class="message" href="#SCI_SETSTYLEBITS"><code>SCI_SETSTYLEBITS</code></a> to change the number - of style bits, styles 0 to 31 are used to set the text attributes. There are also some - predefined numbered styles starting at 32, The following <code>STYLE_</code>* constants are - defined.</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Preset styles"> - <tbody valign="top"> - <tr> - <th align="left"><code>STYLE_DEFAULT</code></th> - - <td>32</td> - - <td>This style defines the attributes that all styles receive when the - <code>SCI_STYLECLEARALL</code> message is used.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_LINENUMBER</code></th> - - <td>33</td> - - <td>This style sets the attributes of the text used to display line numbers in a line - number margin. The background colour set for this style also sets the background colour - for all margins that do not have any folding mask bits set. That is, any margin for which - <code>mask & SC_MASK_FOLDERS</code> is 0. See <a class="message" - href="#SCI_SETMARGINMASKN"><code>SCI_SETMARGINMASKN</code></a> for more about masks.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_BRACELIGHT</code></th> - - <td>34</td> - - <td>This style sets the attributes used when highlighting braces with the <a - class="message" href="#BraceHighlighting"><code>SCI_BRACEHIGHLIGHT</code></a> message and - when highlighting the corresponding indentation with <a class="message" - href="#SCI_SETHIGHLIGHTGUIDE"><code>SCI_SETHIGHLIGHTGUIDE</code></a>.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_BRACEBAD</code></th> - - <td>35</td> - - <td>This style sets the display attributes used when marking an unmatched brace with the - <a class="message" href="#BraceHighlighting"><code>SCI_BRACEBADLIGHT</code></a> - message.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_CONTROLCHAR</code></th> - - <td>36</td> - - <td>This style sets the font used when drawing control characters. - Only the font, size, bold, italics, and character set attributes are used and not - the colour attributes. See - also: <a class="message" - href="#SCI_SETCONTROLCHARSYMBOL"><code>SCI_SETCONTROLCHARSYMBOL</code></a>.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_INDENTGUIDE</code></th> - - <td>37</td> - - <td>This style sets the foreground and background colours used when drawing the - indentation guides.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_CALLTIP</code></th> - - <td>38</td> - - <td> Call tips normally use the font attributes defined by <code>STYLE_DEFAULT</code>. - Use of <a class="message" href="#SCI_CALLTIPUSESTYLE"><code>SCI_CALLTIPUSESTYLE</code></a> - causes call tips to use this style instead. Only the font face name, font size, - foreground and background colours and character set attributes are used.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_LASTPREDEFINED</code></th> - - <td>39</td> - - <td>To make it easier for client code to discover the range of styles that are - predefined, this is set to the style number of the last predefined style. This is - currently set to 39 and the last style with an identifier is 38, which reserves space - for one future predefined style.</td> - </tr> - - <tr> - <th align="left"><code>STYLE_MAX</code></th> - - <td>127</td> - - <td>This is not a style but is the number of the maximum style that can be set. Styles - between <code>STYLE_LASTPREDEFINED</code> and <code>STYLE_MAX</code> would be appropriate - if you used <a class="message" href="#SCI_SETSTYLEBITS"><code>SCI_SETSTYLEBITS</code></a> - to set more than 5 style bits.</td> - </tr> - </tbody> - </table> - - <p>For each style you can set the font name, size and use of bold, italic and underline, - foreground and background colour and the character set. You can also choose to hide text with a - given style, display all characters as upper or lower case and fill from the last character on - a line to the end of the line (for embedded languages). There is also an experimental attribute - to make text read-only.</p> - - <p>It is entirely up to you how you use styles. If you want to use syntax colouring you might - use style 0 for white space, style 1 for numbers, style 2 for keywords, style 3 for strings, - style 4 for preprocessor, style 5 for operators, and so on.</p> - <code><a class="message" href="#SCI_STYLERESETDEFAULT">SCI_STYLERESETDEFAULT</a><br /> - <a class="message" href="#SCI_STYLECLEARALL">SCI_STYLECLEARALL</a><br /> - <a class="message" href="#SCI_STYLESETFONT">SCI_STYLESETFONT(int styleNumber, char - *fontName)</a><br /> - <a class="message" href="#SCI_STYLESETSIZE">SCI_STYLESETSIZE(int styleNumber, int - sizeInPoints)</a><br /> - <a class="message" href="#SCI_STYLESETBOLD">SCI_STYLESETBOLD(int styleNumber, bool - bold)</a><br /> - <a class="message" href="#SCI_STYLESETITALIC">SCI_STYLESETITALIC(int styleNumber, bool - italic)</a><br /> - <a class="message" href="#SCI_STYLESETUNDERLINE">SCI_STYLESETUNDERLINE(int styleNumber, bool - underline)</a><br /> - <a class="message" href="#SCI_STYLESETFORE">SCI_STYLESETFORE(int styleNumber, int - colour)</a><br /> - <a class="message" href="#SCI_STYLESETBACK">SCI_STYLESETBACK(int styleNumber, int - colour)</a><br /> - <a class="message" href="#SCI_STYLESETEOLFILLED">SCI_STYLESETEOLFILLED(int styleNumber, bool - eolFilled)</a><br /> - <a class="message" href="#SCI_STYLESETCHARACTERSET">SCI_STYLESETCHARACTERSET(int styleNumber, - int charSet)</a><br /> - <a class="message" href="#SCI_STYLESETCASE">SCI_STYLESETCASE(int styleNumber, int - caseMode)</a><br /> - <a class="message" href="#SCI_STYLESETVISIBLE">SCI_STYLESETVISIBLE(int styleNumber, bool - visible)</a><br /> - <a class="message" href="#SCI_STYLESETCHANGEABLE">SCI_STYLESETCHANGEABLE(int styleNumber, bool - changeable)</a><br /> - <a class="message" href="#SCI_STYLESETHOTSPOT">SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)</a><br /> - </code> - - <p><b id="SCI_STYLERESETDEFAULT">SCI_STYLERESETDEFAULT</b><br /> - This message resets <code>STYLE_DEFAULT</code> to its state when Scintilla was - initialised.</p> - - <p><b id="SCI_STYLECLEARALL">SCI_STYLECLEARALL</b><br /> - This message sets all styles to have the same attributes as <code>STYLE_DEFAULT</code>. If you - are setting up Scintilla for syntax colouring, it is likely that the lexical styles you set - will be very similar. One way to set the styles is to:<br /> - 1. Set <code>STYLE_DEFAULT</code> to the common features of all styles.<br /> - 2. Use <code>SCI_STYLECLEARALL</code> to copy this to all styles.<br /> - 3. Set the style attributes that make your lexical styles different.</p> - - <p><b id="SCI_STYLESETFONT">SCI_STYLESETFONT(int styleNumber, const char *fontName)</b><br /> - <b id="SCI_STYLESETSIZE">SCI_STYLESETSIZE(int styleNumber, int sizeInPoints)</b><br /> - <b id="SCI_STYLESETBOLD">SCI_STYLESETBOLD(int styleNumber, bool bold)</b><br /> - <b id="SCI_STYLESETITALIC">SCI_STYLESETITALIC(int styleNumber, bool italic)</b><br /> - These messages (plus <a class="message" - href="#SCI_STYLESETCHARACTERSET"><code>SCI_STYLESETCHARACTERSET</code></a>) set the font - attributes that are used to match the fonts you request to those available. The - <code>fontName</code> is a zero terminated string holding the name of a font. Under Windows, - only the first 32 characters of the name are used and the name is not case sensitive. For - internal caching, Scintilla tracks fonts by name and does care about the casing of font names, - so please be consistent. On GTK+ 2.x, either GDK or Pango can be used to display text. - Pango antialiases text, works well with Unicode and is better supported in recent versions of GTK+ - but GDK is faster. - Prepend a '!' character to the font name to use Pango.</p> - - <p><b id="SCI_STYLESETUNDERLINE">SCI_STYLESETUNDERLINE(int styleNumber, bool - underline)</b><br /> - You can set a style to be underlined. The underline is drawn in the foreground colour. All - characters with a style that includes the underline attribute are underlined, even if they are - white space.</p> - - <p><b id="SCI_STYLESETFORE">SCI_STYLESETFORE(int styleNumber, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_STYLESETBACK">SCI_STYLESETBACK(int styleNumber, int <a class="jump" - href="#colour">colour</a>)</b><br /> - Text is drawn in the foreground colour. The space in each character cell that is not occupied - by the character is drawn in the background colour.</p> - - <p><b id="SCI_STYLESETEOLFILLED">SCI_STYLESETEOLFILLED(int styleNumber, bool - eolFilled)</b><br /> - If the last character in the line has a style with this attribute set, the remainder of the - line up to the right edge of the window is filled with the background colour set for the last - character. This is useful when a document contains embedded sections in another language such - as HTML pages with embedded JavaScript. By setting <code>eolFilled</code> to <code>true</code> - and a consistent background colour (different from the background colour set for the HTML - styles) to all JavaScript styles then JavaScript sections will be easily distinguished from - HTML.</p> - - <p><b id="SCI_STYLESETCHARACTERSET">SCI_STYLESETCHARACTERSET(int styleNumber, int - charSet)</b><br /> - You can set a style to use a different character set than the default. The places where such - characters sets are likely to be useful are comments and literal strings. For example, - <code>SCI_STYLESETCHARACTERSET(SCE_C_STRING, SC_CHARSET_RUSSIAN)</code> would ensure that - strings in Russian would display correctly in C and C++ (<code>SCE_C_STRING</code> is the style - number used by the C and C++ lexer to display literal strings; it has the value 6). This - feature works differently on Windows and GTK+.</p> - - <p>The character sets supported on Windows are:<br /> - <code>SC_CHARSET_ANSI</code>, <code>SC_CHARSET_ARABIC</code>, <code>SC_CHARSET_BALTIC</code>, - <code>SC_CHARSET_CHINESEBIG5</code>, <code>SC_CHARSET_DEFAULT</code>, - <code>SC_CHARSET_EASTEUROPE</code>, <code>SC_CHARSET_GB2312</code>, - <code>SC_CHARSET_GREEK</code>, <code>SC_CHARSET_HANGUL</code>, <code>SC_CHARSET_HEBREW</code>, - <code>SC_CHARSET_JOHAB</code>, <code>SC_CHARSET_MAC</code>, <code>SC_CHARSET_OEM</code>, - <code>SC_CHARSET_RUSSIAN</code> (code page 1251), - <code>SC_CHARSET_SHIFTJIS</code>, <code>SC_CHARSET_SYMBOL</code>, <code>SC_CHARSET_THAI</code>, - <code>SC_CHARSET_TURKISH</code>, and <code>SC_CHARSET_VIETNAMESE</code>.</p> - - <p>The character sets supported on GTK+ are:<br /> - <code>SC_CHARSET_ANSI</code>, <code>SC_CHARSET_CYRILLIC</code> (code page 1251), - <code>SC_CHARSET_EASTEUROPE</code>, - <code>SC_CHARSET_GB2312</code>, <code>SC_CHARSET_HANGUL</code>, - <code>SC_CHARSET_RUSSIAN</code> (KOI8-R), <code>SC_CHARSET_SHIFTJIS</code>, and - <code>SC_CHARSET_8859_15</code>.</p> - - <p><b id="SCI_STYLESETCASE">SCI_STYLESETCASE(int styleNumber, int caseMode)</b><br /> - The value of caseMode determines how text is displayed. You can set upper case - (<code>SC_CASE_UPPER</code>, 1) or lower case (<code>SC_CASE_LOWER</code>, 2) or display - normally (<code>SC_CASE_MIXED</code>, 0). This does not change the stored text, only how it is - displayed.</p> - - <p><b id="SCI_STYLESETVISIBLE">SCI_STYLESETVISIBLE(int styleNumber, bool visible)</b><br /> - Text is normally visible. However, you can completely hide it by giving it a style with the - <code>visible</code> set to 0. This could be used to hide embedded formatting instructions or - hypertext keywords in HTML or XML.</p> - - <p><b id="SCI_STYLESETCHANGEABLE">SCI_STYLESETCHANGEABLE(int styleNumber, bool - changeable)</b><br /> - This is an experimental and incompletely implemented style attribute. The default setting is - <code>changeable</code> set <code>true</code> but when set <code>false</code> it makes text - read-only. Currently it only stops the caret from being within not-changeable text and does not - yet stop deleting a range that contains not-changeable text.</p> - - <p><b id="SCI_STYLESETHOTSPOT">SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)</b><br /> - This style is used to mark ranges of text that can detect mouse clicks. - The cursor changes to a hand over hotspots, and the foreground, and background colours - may change and an underline appear to indicate that these areas are sensitive to clicking. - This may be used to allow hyperlinks to other documents.</p> - - <a class="message" href="#SCI_STYLESETHOTSPOT">SCI_STYLESETHOTSPOT(int styleNumber, bool - hotspot)</a><br /> - - <h2 id="CaretAndSelectionStyles">Caret, selection, and hotspot styles</h2> - - <p>The selection is shown by changing the foreground and/or background colours. If one of these - is not set then that attribute is not changed for the selection. The default is to show the - selection by changing the background to light gray and leaving the foreground the same as when - it was not selected. When there is no selection, the current insertion point is marked by the - text caret. This is a vertical line that is normally blinking on and off to attract the users - attention.</p> - <code><a class="message" href="#SCI_SETSELFORE">SCI_SETSELFORE(bool useSelectionForeColour, int - colour)</a><br /> - <a class="message" href="#SCI_SETSELBACK">SCI_SETSELBACK(bool useSelectionBackColour, int - colour)</a><br /> - <a class="message" href="#SCI_SETSELALPHA">SCI_SETSELALPHA(int alpha)</a><br /> - <a class="message" href="#SCI_GETSELALPHA">SCI_GETSELALPHA</a><br /> - <a class="message" href="#SCI_SETCARETFORE">SCI_SETCARETFORE(int colour)</a><br /> - <a class="message" href="#SCI_GETCARETFORE">SCI_GETCARETFORE</a><br /> - <a class="message" href="#SCI_SETCARETLINEVISIBLE">SCI_SETCARETLINEVISIBLE(bool - show)</a><br /> - <a class="message" href="#SCI_GETCARETLINEVISIBLE">SCI_GETCARETLINEVISIBLE</a><br /> - <a class="message" href="#SCI_SETCARETLINEBACK">SCI_SETCARETLINEBACK(int colour)</a><br /> - <a class="message" href="#SCI_GETCARETLINEBACK">SCI_GETCARETLINEBACK</a><br /> - <a class="message" href="#SCI_SETCARETLINEBACKALPHA">SCI_SETCARETLINEBACKALPHA(int alpha)</a><br /> - <a class="message" href="#SCI_GETCARETLINEBACKALPHA">SCI_GETCARETLINEBACKALPHA</a><br /> - <a class="message" href="#SCI_SETCARETPERIOD">SCI_SETCARETPERIOD(int milliseconds)</a><br /> - <a class="message" href="#SCI_GETCARETPERIOD">SCI_GETCARETPERIOD</a><br /> - <a class="message" href="#SCI_SETCARETWIDTH">SCI_SETCARETWIDTH(int pixels)</a><br /> - <a class="message" href="#SCI_GETCARETWIDTH">SCI_GETCARETWIDTH</a><br /> - <a class="message" href="#SCI_SETHOTSPOTACTIVEFORE">SCI_SETHOTSPOTACTIVEFORE</a><br /> - <a class="message" href="#SCI_SETHOTSPOTACTIVEBACK">SCI_SETHOTSPOTACTIVEBACK</a><br /> - <a class="message" href="#SCI_SETHOTSPOTACTIVEUNDERLINE">SCI_SETHOTSPOTACTIVEUNDERLINE</a><br /> - <a class="message" href="#SCI_SETHOTSPOTSINGLELINE">SCI_SETHOTSPOTSINGLELINE</a><br /> - <a class="message" href="#SCI_SETCONTROLCHARSYMBOL">SCI_SETCONTROLCHARSYMBOL(int - symbol)</a><br /> - <a class="message" href="#SCI_GETCONTROLCHARSYMBOL">SCI_GETCONTROLCHARSYMBOL</a><br /> - <a class="message" href="#SCI_SETCARETSTICKY">SCI_SETCARETSTICKY</a><br /> - <a class="message" href="#SCI_GETCARETSTICKY">SCI_GETCARETSTICKY</a><br /> - <a class="message" href="#SCI_TOGGLECARETSTICKY">SCI_TOGGLECARETSTICKY</a><br /> - </code> - - <p><b id="SCI_SETSELFORE">SCI_SETSELFORE(bool useSelectionForeColour, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_SETSELBACK">SCI_SETSELBACK(bool useSelectionBackColour, int <a class="jump" - href="#colour">colour</a>)</b><br /> - You can choose to override the default selection colouring with these two messages. The colour - you provide is used if you set <code>useSelection*Colour</code> to <code>true</code>. If it is - set to <code>false</code>, the default colour colouring is used and the <code>colour</code> - argument has no effect.</p> - <p><b id="SCI_SETSELALPHA">SCI_SETSELALPHA(int <a class="jump" href="#alpha">alpha</a>)</b><br /> - <b id="SCI_GETSELALPHA">SCI_GETSELALPHA</b><br /> - The selection can be drawn translucently in the selection background colour by - setting an alpha value.</p> - - <p><b id="SCI_SETCARETFORE">SCI_SETCARETFORE(int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_GETCARETFORE">SCI_GETCARETFORE</b><br /> - The colour of the caret can be set with <code>SCI_SETCARETFORE</code> and retrieved with - <code>SCI_CETCARETFORE</code>.</p> - - <p><b id="SCI_SETCARETLINEVISIBLE">SCI_SETCARETLINEVISIBLE(bool show)</b><br /> - <b id="SCI_GETCARETLINEVISIBLE">SCI_GETCARETLINEVISIBLE</b><br /> - <b id="SCI_SETCARETLINEBACK">SCI_SETCARETLINEBACK(int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_GETCARETLINEBACK">SCI_GETCARETLINEBACK</b><br /> - <b id="SCI_SETCARETLINEBACKALPHA">SCI_SETCARETLINEBACKALPHA(int <a class="jump" href="#alpha">alpha</a>)</b><br /> - <b id="SCI_GETCARETLINEBACKALPHA">SCI_GETCARETLINEBACKALPHA</b><br /> - You can choose to make the background colour of the line containing the caret different with - these messages. To do this, set the desired background colour with - <code>SCI_SETCARETLINEBACK</code>, then use <code>SCI_SETCARETLINEVISIBLE(true)</code> to - enable the effect. You can cancel the effect with <code>SCI_SETCARETLINEVISIBLE(false)</code>. - The two <code>SCI_GETCARET*</code> functions return the state and the colour. This form of - background colouring has highest priority when a line has markers that would otherwise change - the background colour. - The caret line may also be drawn translucently which allows other background colours to show - through. This is done by setting the alpha (translucency) value by calling - SCI_SETCARETLINEBACKALPHA. When the alpha is not SC_ALPHA_NOALPHA, - the caret line is drawn after all other features so will affect the colour of all other features. - </p> - - <p><b id="SCI_SETCARETPERIOD">SCI_SETCARETPERIOD(int milliseconds)</b><br /> - <b id="SCI_GETCARETPERIOD">SCI_GETCARETPERIOD</b><br /> - The rate at which the caret blinks can be set with <code>SCI_SETCARETPERIOD</code> which - determines the time in milliseconds that the caret is visible or invisible before changing - state. Setting the period to 0 stops the caret blinking. The default value is 500 milliseconds. - <code>SCI_GETCARETPERIOD</code> returns the current setting.</p> - - <p><b id="SCI_SETCARETWIDTH">SCI_SETCARETWIDTH(int pixels)</b><br /> - <b id="SCI_GETCARETWIDTH">SCI_GETCARETWIDTH</b><br /> - The width of the caret can be set with <code>SCI_SETCARETWIDTH</code> to a value of 0, 1, 2 or - 3 pixels. The default width is 1 pixel. You can read back the current width with - <code>SCI_GETCARETWIDTH</code>. A width of 0 makes the caret invisible (added at version - 1.50).</p> - - <p><b id="SCI_SETHOTSPOTACTIVEFORE">SCI_SETHOTSPOTACTIVEFORE(bool useHotSpotForeColour, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_SETHOTSPOTACTIVEBACK">SCI_SETHOTSPOTACTIVEBACK(bool useHotSpotBackColour, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_SETHOTSPOTACTIVEUNDERLINE">SCI_SETHOTSPOTACTIVEUNDERLINE(bool underline,)</b><br /> - <b id="SCI_SETHOTSPOTSINGLELINE">SCI_SETHOTSPOTSINGLELINE(bool singleLine,)</b><br /> - While the cursor hovers over text in a style with the hotspot attribute set, - the default colouring can be modified and an underline drawn with these settings. - Single line mode stops a hotspot from wrapping onto next line.</p> - - <p><b id="SCI_SETCONTROLCHARSYMBOL">SCI_SETCONTROLCHARSYMBOL(int symbol)</b><br /> - <b id="SCI_GETCONTROLCHARSYMBOL">SCI_GETCONTROLCHARSYMBOL</b><br /> - By default, Scintilla displays control characters (characters with codes less than 32) in a - rounded rectangle as ASCII mnemonics: "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", - "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", - "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US". These mnemonics come from the - early days of signaling, though some are still used (LF = Line Feed, BS = Back Space, CR = - Carriage Return, for example).</p> - - <p>You can choose to replace these mnemonics by a nominated symbol with an ASCII code in the - range 32 to 255. If you set a symbol value less than 32, all control characters are displayed - as mnemonics. The symbol you set is rendered in the font of the style set for the character. - You can read back the current symbol with the <code>SCI_GETCONTROLCHARSYMBOL</code> message. - The default symbol value is 0.</p> - - <p><b id="SCI_SETCARETSTICKY">SCI_SETCARETSTICKY(bool useCaretStickyBehaviour)</b><br /> - <b id="SCI_GETCARETSTICKY">SCI_GETCARETSTICKY</b><br /> - <b id="SCI_TOGGLECARETSTICKY">SCI_TOGGLECARETSTICKY</b><br /> - These messages set, get or toggle the caretSticky flag which controls when the last position - of the caret on the line is saved. When set to true, the position is not saved when you type - a character, a tab, paste the clipboard content or press backspace.</p> - - <h2 id="Margins">Margins</h2> - - <p>There may be up to five margins to the left of the text display, plus a gap either side of - the text. Each margin can be set to display either symbols or line numbers with <a - class="message" href="#SCI_SETMARGINTYPEN"><code>SCI_SETMARGINTYPEN</code></a>. The markers - that can be displayed in each margin are set with <a class="message" - href="#SCI_SETMARGINMASKN"><code>SCI_SETMARGINMASKN</code></a>. Any markers not associated with - a visible margin will be displayed as changes in background colour in the text. A width in - pixels can be set for each margin. Margins with a zero width are ignored completely. You can - choose if a mouse click in a margin sends a <a class="message" - href="#SCN_MARGINCLICK"><code>SCN_MARGINCLICK</code></a> notification to the container or - selects a line of text.</p> - - <p>The margins are numbered 0 to 4. Using a margin number outside the valid range has no - effect. By default, margin 0 is set to display line numbers, but is given a width of 0, so it - is hidden. Margin 1 is set to display non-folding symbols and is given a width of 16 pixels, so - it is visible. Margin 2 is set to display the folding symbols, but is given a width of 0, so it - is hidden. Of course, you can set the margins to be whatever you wish.</p> - <code><a class="message" href="#SCI_SETMARGINTYPEN">SCI_SETMARGINTYPEN(int margin, int - type)</a><br /> - <a class="message" href="#SCI_GETMARGINTYPEN">SCI_GETMARGINTYPEN(int margin)</a><br /> - <a class="message" href="#SCI_SETMARGINWIDTHN">SCI_SETMARGINWIDTHN(int margin, int - pixelWidth)</a><br /> - <a class="message" href="#SCI_GETMARGINWIDTHN">SCI_GETMARGINWIDTHN(int margin)</a><br /> - <a class="message" href="#SCI_SETMARGINMASKN">SCI_SETMARGINMASKN(int margin, int - mask)</a><br /> - <a class="message" href="#SCI_GETMARGINMASKN">SCI_GETMARGINMASKN(int margin)</a><br /> - <a class="message" href="#SCI_SETMARGINSENSITIVEN">SCI_SETMARGINSENSITIVEN(int margin, bool - sensitive)</a><br /> - <a class="message" href="#SCI_GETMARGINSENSITIVEN">SCI_GETMARGINSENSITIVEN(int - margin)</a><br /> - <a class="message" href="#SCI_SETMARGINLEFT">SCI_SETMARGINLEFT(<unused>, int - pixels)</a><br /> - <a class="message" href="#SCI_GETMARGINLEFT">SCI_GETMARGINLEFT</a><br /> - <a class="message" href="#SCI_SETMARGINRIGHT">SCI_SETMARGINRIGHT(<unused>, int - pixels)</a><br /> - <a class="message" href="#SCI_GETMARGINRIGHT">SCI_GETMARGINRIGHT</a><br /> - <a class="message" href="#SCI_SETFOLDMARGINCOLOUR">SCI_SETFOLDMARGINCOLOUR(bool useSetting, int colour)</a><br /> - <a class="message" href="#SCI_SETFOLDMARGINHICOLOUR">SCI_SETFOLDMARGINHICOLOUR(bool useSetting, int colour)</a><br /> - </code> - - <p><b id="SCI_SETMARGINTYPEN">SCI_SETMARGINTYPEN(int margin, int iType)</b><br /> - <b id="SCI_GETMARGINTYPEN">SCI_GETMARGINTYPEN(int margin)</b><br /> - These two routines set and get the type of a margin. The margin argument should be 0, 1, 2, 3 or 4. - You can use the predefined constants <code>SC_MARGIN_SYMBOL</code> (0) and - <code>SC_MARGIN_NUMBER</code> (1) to set a margin as either a line number or a symbol margin. - By convention, margin 0 is used for line numbers and the next two are used for symbols. You can - also use the constants <code>SC_MARGIN_BACK</code> (2) and <code>SC_MARGIN_FORE</code> (3) for - symbol margins that set their background colour to match the STYLE_DEFAULT background and - foreground colours.</p> - - <p><b id="SCI_SETMARGINWIDTHN">SCI_SETMARGINWIDTHN(int margin, int pixelWidth)</b><br /> - <b id="SCI_GETMARGINWIDTHN">SCI_GETMARGINWIDTHN(int margin)</b><br /> - These routines set and get the width of a margin in pixels. A margin with zero width is - invisible. By default, Scintilla sets margin 1 for symbols with a width of 16 pixels, so this - is a reasonable guess if you are not sure what would be appropriate. Line number margins widths - should take into account the number of lines in the document and the line number style. You - could use something like <a class="message" - href="#SCI_TEXTWIDTH"><code>SCI_TEXTWIDTH(STYLE_LINENUMBER, "_99999")</code></a> to get a - suitable width.</p> - - <p><b id="SCI_SETMARGINMASKN">SCI_SETMARGINMASKN(int margin, int mask)</b><br /> - <b id="SCI_GETMARGINMASKN">SCI_GETMARGINMASKN(int margin)</b><br /> - The mask is a 32-bit value. Each bit corresponds to one of 32 logical symbols that can be - displayed in a margin that is enabled for symbols. There is a useful constant, - <code>SC_MASK_FOLDERS</code> (0xFE000000 or -33554432), that is a mask for the 7 logical - symbols used to denote folding. You can assign a wide range of symbols and colours to each of - the 32 logical symbols, see <a href="#Markers">Markers</a> for more information. If <code>(mask - & SC_MASK_FOLDERS)==0</code>, the margin background colour is controlled by style 33 (<a - class="message" href="#StyleDefinition"><code>STYLE_LINENUMBER</code></a>).</p> - - <p>You add logical markers to a line with <a class="message" - href="#SCI_MARKERADD"><code>SCI_MARKERADD</code></a>. If a line has an associated marker that - does not appear in the mask of any margin with a non-zero width, the marker changes the - background colour of the line. For example, suppose you decide to use logical marker 10 to mark - lines with a syntax error and you want to show such lines by changing the background colour. - The mask for this marker is 1 shifted left 10 times (1<<10) which is 0x400. If you make - sure that no symbol margin includes 0x400 in its mask, any line with the marker gets the - background colour changed.</p> - - <p>To set a non-folding margin 1 use <code>SCI_SETMARGINMASKN(1, ~SC_MASK_FOLDERS)</code>; to - set a folding margin 2 use <code>SCI_SETMARGINMASKN(2, SC_MASK_FOLDERS)</code>. This is the - default set by Scintilla. <code>~SC_MASK_FOLDERS</code> is 0x1FFFFFF in hexadecimal or 33554431 - decimal. Of course, you may need to display all 32 symbols in a margin, in which case use - <code>SCI_SETMARGINMASKN(margin, -1)</code>.</p> - - <p><b id="SCI_SETMARGINSENSITIVEN">SCI_SETMARGINSENSITIVEN(int margin, bool - sensitive)</b><br /> - <b id="SCI_GETMARGINSENSITIVEN">SCI_GETMARGINSENSITIVEN(int margin)</b><br /> - Each of the five margins can be set sensitive or insensitive to mouse clicks. A click in a - sensitive margin sends a <a class="message" - href="#SCN_MARGINCLICK"><code>SCN_MARGINCLICK</code></a> <a class="jump" - href="#Notifications">notification</a> to the container. Margins that are not sensitive act as - selection margins which make it easy to select ranges of lines. By default, all margins are - insensitive.</p> - - <p><b id="SCI_SETMARGINLEFT">SCI_SETMARGINLEFT(<unused>, int pixels)</b><br /> - <b id="SCI_GETMARGINLEFT">SCI_GETMARGINLEFT</b><br /> - <b id="SCI_SETMARGINRIGHT">SCI_SETMARGINRIGHT(<unused>, int pixels)</b><br /> - <b id="SCI_GETMARGINRIGHT">SCI_GETMARGINRIGHT</b><br /> - These messages set and get the width of the blank margin on both sides of the text in pixels. - The default is to one pixel on each side.</p> - - <p><b id="SCI_SETFOLDMARGINCOLOUR">SCI_SETFOLDMARGINCOLOUR(bool useSetting, int colour)</b><br /> - <b id="SCI_SETFOLDMARGINHICOLOUR">SCI_SETFOLDMARGINHICOLOUR(bool useSetting, int colour)</b><br /> - These messages allow changing the colour of the fold margin and fold margin highlight. - On Windows the fold margin colour defaults to ::GetSysColor(COLOR_3DFACE) and the fold margin highlight - colour to ::GetSysColor(COLOR_3DHIGHLIGHT).</p> - - <h2 id="OtherSettings">Other settings</h2> - <code><a class="message" href="#SCI_SETUSEPALETTE">SCI_SETUSEPALETTE(bool - allowPaletteUse)</a><br /> - <a class="message" href="#SCI_GETUSEPALETTE">SCI_GETUSEPALETTE</a><br /> - <a class="message" href="#SCI_SETBUFFEREDDRAW">SCI_SETBUFFEREDDRAW(bool isBuffered)</a><br /> - <a class="message" href="#SCI_GETBUFFEREDDRAW">SCI_GETBUFFEREDDRAW</a><br /> - <a class="message" href="#SCI_SETTWOPHASEDRAW">SCI_SETTWOPHASEDRAW(bool twoPhase)</a><br /> - <a class="message" href="#SCI_GETTWOPHASEDRAW">SCI_GETTWOPHASEDRAW</a><br /> - <a class="message" href="#SCI_SETCODEPAGE">SCI_SETCODEPAGE(int codePage)</a><br /> - <a class="message" href="#SCI_GETCODEPAGE">SCI_GETCODEPAGE</a><br /> - <a class="message" href="#SCI_SETWORDCHARS">SCI_SETWORDCHARS(<unused>, const char - *chars)</a><br /> - <a class="message" href="#SCI_SETWHITESPACECHARS">SCI_SETWHITESPACECHARS(<unused>, const char - *chars)</a><br /> - <a class="message" href="#SCI_SETCHARSDEFAULT">SCI_SETCHARSDEFAULT</a><br /> - <a class="message" href="#SCI_GRABFOCUS">SCI_GRABFOCUS</a><br /> - <a class="message" href="#SCI_SETFOCUS">SCI_SETFOCUS(bool focus)</a><br /> - <a class="message" href="#SCI_GETFOCUS">SCI_GETFOCUS</a><br /> - </code> - - <p><b id="SCI_SETUSEPALETTE">SCI_SETUSEPALETTE(bool allowPaletteUse)</b><br /> - <b id="SCI_GETUSEPALETTE">SCI_GETUSEPALETTE</b><br /> - On 8 bit displays, which can only display a maximum of 256 colours, the graphics environment - mediates between the colour needs of applications through the use of palettes. On GTK+, - Scintilla always uses a palette.</p> - - <p>On Windows, there are some problems with visual flashing when switching between applications - with palettes and it is also necessary for the application containing the Scintilla control to - forward some messages to Scintilla for its palette code to work. Because of this, by default, - the palette is not used and the application must tell Scintilla to use one. If Scintilla is not - using a palette, it will only display in those colours already available, which are often the - 20 Windows system colours.</p> - - <p>To see an example of how to enable palette support in Scintilla, search the text of SciTE - for <code>WM_PALETTECHANGED</code>, <code>WM_QUERYNEWPALETTE</code> and - <code>SCI_SETUSEPALETTE</code>. The Windows messages to forward are:<br /> - <code>WM_SYSCOLORCHANGE</code>, <code>WM_PALETTECHANGED</code>, - <code>WM_QUERYNEWPALETTE</code> (should return <code>TRUE</code>).</p> - - <p>To forward a message <code>(WM_XXXX, WPARAM, LPARAM)</code> to Scintilla, you can use - <code>SendMessage(hScintilla, WM_XXXX, WPARAM, LPARAM)</code> where <code>hScintilla</code> is - the handle to the Scintilla window you created as your editor.</p> - - <p>While we are on the subject of forwarding messages in Windows, the top level window should - forward any <code>WM_SETTINGCHANGE</code> messages to Scintilla (this is currently used to - collect changes to mouse settings, but could be used for other user interface items in the - future).</p> - - <p><b id="SCI_SETBUFFEREDDRAW">SCI_SETBUFFEREDDRAW(bool isBuffered)</b><br /> - <b id="SCI_GETBUFFEREDDRAW">SCI_GETBUFFEREDDRAW</b><br /> - These messages turn buffered drawing on or off and report the buffered drawing state. Buffered - drawing draws each line into a bitmap rather than directly to the screen and then copies the - bitmap to the screen. This avoids flickering although it does take longer. The default is for - drawing to be buffered.</p> - - <p><b id="SCI_SETTWOPHASEDRAW">SCI_SETTWOPHASEDRAW(bool twoPhase)</b><br /> - <b id="SCI_GETTWOPHASEDRAW">SCI_GETTWOPHASEDRAW</b><br /> - Two phase drawing is a better but slower way of drawing text. - In single phase drawing each run of characters in one style is drawn along with its background. - If a character overhangs the end of a run, such as in "<i>V</i>_" where the - "<i>V</i>" is in a different style from the "_", then this can cause the right hand - side of the "<i>V</i>" to be overdrawn by the background of the "_" which - cuts it off. Two phase drawing - fixes this by drawing all the backgrounds first and then drawing the text in - transparent mode. Two phase drawing may flicker more than single phase - unless buffered drawing is on. The default is for drawing to be two phase.</p> - - <p><b id="SCI_SETCODEPAGE">SCI_SETCODEPAGE(int codePage)</b><br /> - <b id="SCI_GETCODEPAGE">SCI_GETCODEPAGE</b><br /> - Scintilla has some support for Japanese, Chinese and Korean DBCS. Use this message with - <code>codePage</code> set to the code page number to set Scintilla to use code page information - to ensure double byte characters are treated as one character rather than two. This also stops - the caret from moving between the two bytes in a double byte character. - Do not use this message to choose between different single byte character sets: it doesn't do that. - Call with - <code>codePage</code> set to zero to disable DBCS support. The default is - <code>SCI_SETCODEPAGE(0)</code>.</p> - - <p>Code page <code>SC_CP_UTF8</code> (65001) sets Scintilla into Unicode mode with the document - treated as a sequence of characters expressed in UTF-8. The text is converted to the platform's - normal Unicode encoding before being drawn by the OS and thus can display Hebrew, Arabic, - Cyrillic, and Han characters. Languages which can use two characters stacked vertically in one - horizontal space, such as Thai, will mostly work but there are some issues where the characters - are drawn separately leading to visual glitches. Bi-directional text is not supported. Characters outside the - Basic Multilingual Plane are unlikely to work.</p> - - <p>On Windows, code page can be set to 932 (Japanese Shift-JIS), 936 (Simplified Chinese GBK), - 949 (Korean Unified Hangul Code), 950 (Traditional Chinese Big5), or 1361 (Korean Johab) - although these may require installation of language specific support.</p> - - <p>On GTK+, code page <code>SC_CP_DBCS</code> (1) sets Scintilla into - multi byte character mode as is required for Japanese language processing with - the EUC encoding.</p> - - <p>For GTK+ 1.x, the locale should be set to a Unicode locale with a call similar to - <code>setlocale(LC_CTYPE, "en_US.UTF-8")</code>. Fonts with an <code>"iso10646"</code> registry - should be used in a font set. Font sets are a comma separated list of partial font - specifications where each partial font specification can be in the form: - <code>foundry-fontface-charsetregistry-encoding</code> or - <code>fontface-charsetregistry-encoding</code> or <code>foundry-fontface</code> or - <code>fontface</code>. An example is <code>"misc-fixed-iso10646-1,*"</code>. - On GTK+ 2.x, Pango fonts should be used rather than font sets.</p> - - <p>Setting <code>codePage</code> to a non-zero value that is not <code>SC_CP_UTF8</code> is - operating system dependent.</p> - - <p><b id="SCI_SETWORDCHARS">SCI_SETWORDCHARS(<unused>, const char *chars)</b><br /> - Scintilla has several functions that operate on words, which are defined to be contiguous - sequences of characters from a particular set of characters. This message defines which - characters are members of that set. The character sets are set to default values before processing this - function. - For example, if you don't allow '_' in your set of characters - use:<br /> - <code>SCI_SETWORDCHARS(0, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")</code>;</p> - - <p><b id="SCI_SETWHITESPACECHARS">SCI_SETWHITESPACECHARS(<unused>, const char *chars)</b><br /> - Similar to <code>SCI_SETWORDCHARS</code>, this message allows the user to define which chars Scintilla considers - as whitespace. Setting the whitespace chars allows the user to fine-tune Scintilla's behaviour doing - such things as moving the cursor to the start or end of a word; for example, by defining punctuation chars - as whitespace, they will be skipped over when the user presses ctrl+left or ctrl+right. - This function should be called after <code>SCI_SETWORDCHARS</code> as it will - reset the whitespace characters to the default set.</p> - <p><b id="SCI_SETCHARSDEFAULT">SCI_SETCHARSDEFAULT</b><br /> - Use the default sets of word and whitespace characters. This sets whitespace to space, tab and other - characters with codes less than 0x20, with word characters set to alphanumeric and '_'. - </p> - - - <p><b id="SCI_GRABFOCUS">SCI_GRABFOCUS</b><br /> - <b id="SCI_SETFOCUS">SCI_SETFOCUS(bool focus)</b><br /> - <b id="SCI_GETFOCUS">SCI_GETFOCUS</b><br /> - Scintilla can be told to grab the focus with this message. This is needed more on GTK+ where - focus handling is more complicated than on Windows.</p> - - <p>The internal focus flag can be set with <code>SCI_SETFOCUS</code>. This is used by clients - that have complex focus requirements such as having their own window that gets the real focus - but with the need to indicate that Scintilla has the logical focus.</p> - - <h2 id="BraceHighlighting">Brace highlighting</h2> - <code><a class="message" href="#SCI_BRACEHIGHLIGHT">SCI_BRACEHIGHLIGHT(int pos1, int - pos2)</a><br /> - <a class="message" href="#SCI_BRACEBADLIGHT">SCI_BRACEBADLIGHT(int pos1)</a><br /> - <a class="message" href="#SCI_BRACEMATCH">SCI_BRACEMATCH(int position, int - maxReStyle)</a><br /> - </code> - - <p><b id="SCI_BRACEHIGHLIGHT">SCI_BRACEHIGHLIGHT(int pos1, int pos2)</b><br /> - Up to two characters can be highlighted in a 'brace highlighting style', which is defined as - style number <a class="message" href="#StyleDefinition"><code>STYLE_BRACELIGHT</code></a> (34). - If you have enabled indent guides, you may also wish to highlight the indent that corresponds - with the brace. You can locate the column with <a class="message" - href="#SCI_GETCOLUMN"><code>SCI_GETCOLUMN</code></a> and highlight the indent with <a - class="message" href="#SCI_SETHIGHLIGHTGUIDE"><code>SCI_SETHIGHLIGHTGUIDE</code></a>.</p> - - <p><b id="SCI_BRACEBADLIGHT">SCI_BRACEBADLIGHT(int pos1)</b><br /> - If there is no matching brace then the <a class="jump" href="#StyleDefinition">brace - badlighting style</a>, style <code>BRACE_BADLIGHT</code> (35), can be used to show the brace - that is unmatched. Using a position of <code>INVALID_POSITION</code> (-1) removes the - highlight.</p> - - <p><b id="SCI_BRACEMATCH">SCI_BRACEMATCH(int pos, int maxReStyle)</b><br /> - The <code>SCI_BRACEMATCH</code> message finds a corresponding matching brace given - <code>pos</code>, the position of one brace. The brace characters handled are '(', ')', '[', - ']', '{', '}', '<', and '>'. The search is forwards from an opening brace and backwards - from a closing brace. If the character at position is not a brace character, or a matching - brace cannot be found, the return value is -1. Otherwise, the return value is the position of - the matching brace.</p> - - <p>A match only occurs if the style of the matching brace is the same as the starting brace or - the matching brace is beyond the end of styling. Nested braces are handled correctly. The - <code>maxReStyle</code> parameter must currently be 0 - it may be used in the future to limit - the length of brace searches.</p> - - <h2 id="TabsAndIndentationGuides">Tabs and Indentation Guides</h2> - - <p>Indentation (the white space at the start of a line) is often used by programmers to clarify - program structure and in some languages, for example Python, it may be part of the language - syntax. Tabs are normally used in editors to insert a tab character or to pad text with spaces - up to the next tab.</p> - - <p>Scintilla can be set to treat tab and backspace in the white space at the start of a line in - a special way: inserting a tab indents the line to the next indent position rather than just - inserting a tab at the current character position and backspace unindents the line rather than - deleting a character. Scintilla can also display indentation guides (vertical lines) to help - you to generate code.</p> - <code><a class="message" href="#SCI_SETTABWIDTH">SCI_SETTABWIDTH(int widthInChars)</a><br /> - <a class="message" href="#SCI_GETTABWIDTH">SCI_GETTABWIDTH</a><br /> - <a class="message" href="#SCI_SETUSETABS">SCI_SETUSETABS(bool useTabs)</a><br /> - <a class="message" href="#SCI_GETUSETABS">SCI_GETUSETABS</a><br /> - <a class="message" href="#SCI_SETINDENT">SCI_SETINDENT(int widthInChars)</a><br /> - <a class="message" href="#SCI_GETINDENT">SCI_GETINDENT</a><br /> - <a class="message" href="#SCI_SETTABINDENTS">SCI_SETTABINDENTS(bool tabIndents)</a><br /> - <a class="message" href="#SCI_GETTABINDENTS">SCI_GETTABINDENTS</a><br /> - <a class="message" href="#SCI_SETBACKSPACEUNINDENTS">SCI_SETBACKSPACEUNINDENTS(bool - bsUnIndents)</a><br /> - <a class="message" href="#SCI_GETBACKSPACEUNINDENTS">SCI_GETBACKSPACEUNINDENTS</a><br /> - <a class="message" href="#SCI_SETLINEINDENTATION">SCI_SETLINEINDENTATION(int line, int - indentation)</a><br /> - <a class="message" href="#SCI_GETLINEINDENTATION">SCI_GETLINEINDENTATION(int line)</a><br /> - <a class="message" href="#SCI_GETLINEINDENTPOSITION">SCI_GETLINEINDENTPOSITION(int - line)</a><br /> - <a class="message" href="#SCI_SETINDENTATIONGUIDES">SCI_SETINDENTATIONGUIDES(bool - view)</a><br /> - <a class="message" href="#SCI_GETINDENTATIONGUIDES">SCI_GETINDENTATIONGUIDES</a><br /> - <a class="message" href="#SCI_SETHIGHLIGHTGUIDE">SCI_SETHIGHLIGHTGUIDE(int column)</a><br /> - <a class="message" href="#SCI_GETHIGHLIGHTGUIDE">SCI_GETHIGHLIGHTGUIDE</a><br /> - </code> - - <p><b id="SCI_SETTABWIDTH">SCI_SETTABWIDTH(int widthInChars)</b><br /> - <b id="SCI_GETTABWIDTH">SCI_GETTABWIDTH</b><br /> - <code>SCI_SETTABWIDTH</code> sets the size of a tab as a multiple of the size of a space - character in <code>STYLE_DEFAULT</code>. The default tab width is 8 characters. There are no - limits on tab sizes, but values less than 1 or large values may have undesirable effects.</p> - - <p><b id="SCI_SETUSETABS">SCI_SETUSETABS(bool useTabs)</b><br /> - <b id="SCI_GETUSETABS">SCI_GETUSETABS</b><br /> - <code>SCI_SETUSETABS</code> determines whether indentation should be created out of a mixture - of tabs and spaces or be based purely on spaces. Set <code>useTabs</code> to <code>false</code> - (0) to create all tabs and indents out of spaces. The default is <code>true</code>. You can use - <a class="message" href="#SCI_GETCOLUMN"><code>SCI_GETCOLUMN</code></a> to get the column of a - position taking the width of a tab into account.</p> - <b id="SCI_SETINDENT">SCI_SETINDENT(int widthInChars)</b><br /> - <b id="SCI_GETINDENT">SCI_GETINDENT</b><br /> - <code>SCI_SETINDENT</code> sets the size of indentation in terms of the width of a space in <a - class="message" href="#StyleDefinition"><code>STYLE_DEFAULT</code></a>. If you set a width of - 0, the indent size is the same as the tab size. There are no limits on indent sizes, but values - less than 0 or large values may have undesirable effects. <br /> - <br /> - - - <p><b id="SCI_SETTABINDENTS">SCI_SETTABINDENTS(bool tabIndents)</b><br /> - <b id="SCI_GETTABINDENTS">SCI_GETTABINDENTS</b><br /> - <b id="SCI_SETBACKSPACEUNINDENTS">SCI_SETBACKSPACEUNINDENTS(bool bsUnIndents)</b><br /> - <b id="SCI_GETBACKSPACEUNINDENTS">SCI_GETBACKSPACEUNINDENTS</b><br /> - </p> - - <p>Inside indentation white space, the tab and backspace keys can be made to indent and - unindent rather than insert a tab character or delete a character with the - <code>SCI_SETTABINDENTS</code> and <code>SCI_SETBACKSPACEUNINDENTS</code> functions.</p> - - <p><b id="SCI_SETLINEINDENTATION">SCI_SETLINEINDENTATION(int line, int indentation)</b><br /> - <b id="SCI_GETLINEINDENTATION">SCI_GETLINEINDENTATION(int line)</b><br /> - The amount of indentation on a line can be discovered and set with - <code>SCI_GETLINEINDENTATION</code> and <code>SCI_SETLINEINDENTATION</code>. The indentation is - measured in character columns, which correspond to the width of space characters.</p> - - <p><b id="SCI_GETLINEINDENTPOSITION">SCI_GETLINEINDENTPOSITION(int line)</b><br /> - This returns the position at the end of indentation of a line.</p> - - <p><b id="SCI_SETINDENTATIONGUIDES">SCI_SETINDENTATIONGUIDES(bool view)</b><br /> - <b id="SCI_GETINDENTATIONGUIDES">SCI_GETINDENTATIONGUIDES</b><br /> - Indentation guides are dotted vertical lines that appear within indentation white space every - indent size columns. They make it easy to see which constructs line up especially when they - extend over multiple pages. Style <a class="message" - href="#StyleDefinition"><code>STYLE_INDENTGUIDE</code></a> (37) is used to specify the - foreground and background colour of the indentation guides.</p> - - <p><b id="SCI_SETHIGHLIGHTGUIDE">SCI_SETHIGHLIGHTGUIDE(int column)</b><br /> - <b id="SCI_GETHIGHLIGHTGUIDE">SCI_GETHIGHLIGHTGUIDE</b><br /> - When brace highlighting occurs, the indentation guide corresponding to the braces may be - highlighted with the brace highlighting style, <a class="message" - href="#StyleDefinition"><code>STYLE_BRACELIGHT</code></a> (34). Set <code>column</code> to 0 to - cancel this highlight.</p> - - <h2 id="Markers">Markers</h2> - - <p>There are 32 markers, numbered 0 to 31, and you can assign any combination of them to each - line in the document. Markers appear in the <a class="jump" href="#Margins">selection - margin</a> to the left of the text. If the selection margin is set to zero width, the - background colour of the whole line is changed instead. Marker numbers 25 to 31 are used by - Scintilla in folding margins, and have symbolic names of the form <code>SC_MARKNUM_</code>*, - for example <code>SC_MARKNUM_FOLDEROPEN</code>.</p> - - <p>Marker numbers 0 to 24 have no pre-defined function; you can use them to mark syntax errors - or the current point of execution, break points, or whatever you need marking. If you do not - need folding, you can use all 32 for any purpose you wish.</p> - - <p>Each marker number has a symbol associated with it. You can also set the foreground and - background colour for each marker number, so you can use the same symbol more than once with - different colouring for different uses. Scintilla has a set of symbols you can assign - (<code>SC_MARK_</code>*) or you can use characters. By default, all 32 markers are set to - <code>SC_MARK_CIRCLE</code> with a black foreground and a white background.</p> - - <p>The markers are drawn in the order of their numbers, so higher numbered markers appear on - top of lower numbered ones. Markers try to move with their text by tracking where the start of - their line moves. When a line is deleted, its markers are combined, by an <code>OR</code> - operation, with the markers of the previous line.</p> - <code><a class="message" href="#SCI_MARKERDEFINE">SCI_MARKERDEFINE(int markerNumber, int - markerSymbols)</a><br /> - <a class="message" href="#SCI_MARKERDEFINEPIXMAP">SCI_MARKERDEFINEPIXMAP(int markerNumber, - const char *xpm)</a><br /> - <a class="message" href="#SCI_MARKERSETFORE">SCI_MARKERSETFORE(int markerNumber, int - colour)</a><br /> - <a class="message" href="#SCI_MARKERSETBACK">SCI_MARKERSETBACK(int markerNumber, int - colour)</a><br /> - <a class="message" href="#SCI_MARKERSETALPHA">SCI_MARKERSETALPHA(int markerNumber, int - alpha)</a><br /> - <a class="message" href="#SCI_MARKERADD">SCI_MARKERADD(int line, int markerNumber)</a><br /> - <a class="message" href="#SCI_MARKERADDSET">SCI_MARKERADDSET(int line, int markerMask)</a><br /> - <a class="message" href="#SCI_MARKERDELETE">SCI_MARKERDELETE(int line, int - markerNumber)</a><br /> - <a class="message" href="#SCI_MARKERDELETEALL">SCI_MARKERDELETEALL(int markerNumber)</a><br /> - <a class="message" href="#SCI_MARKERGET">SCI_MARKERGET(int line)</a><br /> - <a class="message" href="#SCI_MARKERNEXT">SCI_MARKERNEXT(int lineStart, int - markerMask)</a><br /> - <a class="message" href="#SCI_MARKERPREVIOUS">SCI_MARKERPREVIOUS(int lineStart, int - markerMask)</a><br /> - <a class="message" href="#SCI_MARKERLINEFROMHANDLE">SCI_MARKERLINEFROMHANDLE(int - handle)</a><br /> - <a class="message" href="#SCI_MARKERDELETEHANDLE">SCI_MARKERDELETEHANDLE(int handle)</a><br /> - </code> - - <p><b id="SCI_MARKERDEFINE">SCI_MARKERDEFINE(int markerNumber, int markerSymbols)</b><br /> - This message associates a marker number in the range 0 to 31 with one of the marker symbols or - an ASCII character. The general-purpose marker symbols currently available are:<br /> - <code>SC_MARK_CIRCLE</code>, <code>SC_MARK_ROUNDRECT</code>, <code>SC_MARK_ARROW</code>, - <code>SC_MARK_SMALLRECT</code>, <code>SC_MARK_SHORTARROW</code>, <code>SC_MARK_EMPTY</code>, - <code>SC_MARK_ARROWDOWN</code>, <code>SC_MARK_MINUS</code>, <code>SC_MARK_PLUS</code>, - <code>SC_MARK_ARROWS</code>, <code>SC_MARK_DOTDOTDOT</code>, <code>SC_MARK_EMPTY</code>, - <code>SC_MARK_BACKGROUND</code> and <code>SC_MARK_FULLRECT</code>.</p> - - <p>The <code>SC_MARK_BACKGROUND</code> marker changes the background colour of the line only. - The <code>SC_MARK_FULLRECT</code> symbol mirrors this, changing only the margin background colour. - The <code>SC_MARK_EMPTY</code> symbol is invisible, allowing client code to track the movement - of lines. You would also use it if you changed the folding style and wanted one or more of the - <code>SC_FOLDERNUM_</code>* markers to have no associated symbol.</p> - - <p>There are also marker symbols designed for use in the folding margin in a flattened tree - style.<br /> - <code>SC_MARK_BOXMINUS</code>, <code>SC_MARK_BOXMINUSCONNECTED</code>, - <code>SC_MARK_BOXPLUS</code>, <code>SC_MARK_BOXPLUSCONNECTED</code>, - <code>SC_MARK_CIRCLEMINUS</code>, <code>SC_MARK_CIRCLEMINUSCONNECTED</code>, - <code>SC_MARK_CIRCLEPLUS</code>, <code>SC_MARK_CIRCLEPLUSCONNECTED</code>, - <code>SC_MARK_LCORNER</code>, <code>SC_MARK_LCORNERCURVE</code>, <code>SC_MARK_TCORNER</code>, - <code>SC_MARK_TCORNERCURVE</code>, and <code>SC_MARK_VLINE</code>.</p> - Characters can be used as markers by adding the ASCII value of the character to - <code>SC_MARK_CHARACTER</code> (10000). For example, to use 'A' (ASCII code 65) as marker - number 1 use:<br /> - <code>SCI_MARKERDEFINE(1, SC_MARK_CHARACTER+65)</code>. <br /> - - <p>The marker numbers <code>SC_MARKNUM_FOLDER</code> and <code>SC_MARKNUM_FOLDEROPEN</code> are - used for showing that a fold is present and open or closed. Any symbols may be assigned for - this purpose although the (<code>SC_MARK_PLUS</code>, <code>SC_MARK_MINUS</code>) pair or the - (<code>SC_MARK_ARROW</code>, <code>SC_MARK_ARROWDOWN</code>) pair are good choices. As well as - these two, more assignments are needed for the flattened tree style: - <code>SC_MARKNUM_FOLDEREND</code>, <code>SC_MARKNUM_FOLDERMIDTAIL</code>, - <code>SC_MARKNUM_FOLDEROPENMID</code>, <code>SC_MARKNUM_FOLDERSUB</code>, and - <code>SC_MARKNUM_FOLDERTAIL</code>. The bits used for folding are specified by - <code>SC_MASK_FOLDERS</code>, which is commonly used as an argument to - <code>SCI_SETMARGINMASKN</code> when defining a margin to be used for folding.</p> - - <p>This table shows which <code>SC_MARK_</code>* symbols should be assigned to which - <code>SC_MARKNUM_</code>* marker numbers to obtain four folding styles: Arrow (mimics - Macintosh), plus/minus shows folded lines as '+' and opened folds as '-', Circle tree, Box - tree.</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Markers used for folding"> - <thead align="left"> - <tr> - <th><code>SC_MARKNUM_</code>*</th> - - <th>Arrow</th> - - <th>Plus/minus</th> - - <th>Circle tree</th> - - <th>Box tree</th> - </tr> - </thead> - - <tbody valign="top"> - <tr> - <th align="left"><code>FOLDEROPEN</code></th> - - <td><code>ARROWDOWN</code></td> - - <td><code>MINUS</code></td> - - <td><code>CIRCLEMINUS</code></td> - - <td><code>BOXMINUS</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDER</code></th> - - <td><code>ARROW</code></td> - - <td><code>PLUS</code></td> - - <td><code>CIRCLEPLUS</code></td> - - <td><code>BOXPLUS</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDERSUB</code></th> - - <td><code>EMPTY</code></td> - - <td><code>EMPTY</code></td> - - <td><code>VLINE</code></td> - - <td><code>VLINE</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDERTAIL</code></th> - - <td><code>EMPTY</code></td> - - <td><code>EMPTY</code></td> - - <td><code>LCORNERCURVE</code></td> - - <td><code>LCORNER</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDEREND</code></th> - - <td><code>EMPTY</code></td> - - <td><code>EMPTY</code></td> - - <td><code>CIRCLEPLUSCONNECTED</code></td> - - <td><code>BOXPLUSCONNECTED</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDEROPENMID</code></th> - - <td><code>EMPTY</code></td> - - <td><code>EMPTY</code></td> - - <td><code>CIRCLEMINUSCONNECTED</code></td> - - <td><code>BOXMINUSCONNECTED</code></td> - </tr> - - <tr> - <th align="left"><code>FOLDERMIDTAIL</code></th> - - <td><code>EMPTY</code></td> - - <td><code>EMPTY</code></td> - - <td><code>TCORNERCURVE</code></td> - - <td><code>TCORNER</code></td> - </tr> - </tbody> - </table> - - <p><b id="SCI_MARKERDEFINEPIXMAP">SCI_MARKERDEFINEPIXMAP(int markerNumber, const char - *xpm)</b><br /> - Markers can be set to pixmaps with this message. The XPM format is used for the pixmap and it - is limited to pixmaps that use one character per pixel. The data should be null terminated. - Pixmaps use the <code>SC_MARK_PIXMAP</code> marker symbol. You can find the full description of - the XPM format <a class="jump" href="http://koala.ilog.fr/lehors/xpm.html">here</a>.</p> - - <p><b id="SCI_MARKERSETFORE">SCI_MARKERSETFORE(int markerNumber, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_MARKERSETBACK">SCI_MARKERSETBACK(int markerNumber, int <a class="jump" - href="#colour">colour</a>)</b><br /> - These two messages set the foreground and background colour of a marker number.</p> - <p><b id="SCI_MARKERSETALPHA">SCI_MARKERSETALPHA(int markerNumber, int <a class="jump" - href="#alpha">alpha</a>)</b><br /> - When markers are drawn in the content area, either because there is no margin for them or - they are of SC_MARK_BACKGROUND type, they may be drawn translucently by - setting an alpha value.</p> - - <p><b id="SCI_MARKERADD">SCI_MARKERADD(int line, int markerNumber)</b><br /> - This message adds marker number <code>markerNumber</code> to a line. The message returns -1 if - this fails (illegal line number, out of memory) or it returns a marker handle number that - identifies the added marker. You can use this returned handle with <a class="message" - href="#SCI_MARKERLINEFROMHANDLE"><code>SCI_MARKERLINEFROMHANDLE</code></a> to find where a - marker is after moving or combining lines and with <a class="message" - href="#SCI_MARKERDELETEHANDLE"><code>SCI_MARKERDELETEHANDLE</code></a> to delete the marker - based on its handle. The message does not check the value of markerNumber, nor does it - check if the line already contains the marker.</p> - - <p><b id="SCI_MARKERADDSET">SCI_MARKERADDSET(int line, int markerMask)</b><br /> - This message can add one or more markers to a line with a single call, specified in the same "one-bit-per-marker" 32-bit integer format returned by - <a class="message" href="#SCI_MARKERGET"><code>SCI_MARKERGET</code></a> - (and used by the mask-based marker search functions - <a class="message" href="#SCI_MARKERNEXT"><code>SCI_MARKERNEXT</code></a> and - <a class="message" href="#SCI_MARKERPREVIOUS"><code>SCI_MARKERPREVIOUS</code></a>). - As with - <a class="message" href="#SCI_MARKERADD"><code>SCI_MARKERADD</code></a>, no check is made - to see if any of the markers are already present on the targeted line.</p> - - <p><b id="SCI_MARKERDELETE">SCI_MARKERDELETE(int line, int markerNumber)</b><br /> - This searches the given line number for the given marker number and deletes it if it is - present. If you added the same marker more than once to the line, this will delete one copy - each time it is used. If you pass in a marker number of -1, all markers are deleted from the - line.</p> - - <p><b id="SCI_MARKERDELETEALL">SCI_MARKERDELETEALL(int markerNumber)</b><br /> - This removes markers of the given number from all lines. If markerNumber is -1, it deletes all - markers from all lines.</p> - - <p><b id="SCI_MARKERGET">SCI_MARKERGET(int line)</b><br /> - This returns a 32-bit integer that indicates which markers were present on the line. Bit 0 is - set if marker 0 is present, bit 1 for marker 1 and so on.</p> - - <p><b id="SCI_MARKERNEXT">SCI_MARKERNEXT(int lineStart, int markerMask)</b><br /> - <b id="SCI_MARKERPREVIOUS">SCI_MARKERPREVIOUS(int lineStart, int markerMask)</b><br /> - These messages search efficiently for lines that include a given set of markers. The search - starts at line number <code>lineStart</code> and continues forwards to the end of the file - (<code>SCI_MARKERNEXT</code>) or backwards to the start of the file - (<code>SCI_MARKERPREVIOUS</code>). The <code>markerMask</code> argument should have one bit set - for each marker you wish to find. Set bit 0 to find marker 0, bit 1 for marker 1 and so on. The - message returns the line number of the first line that contains one of the markers in - <code>markerMask</code> or -1 if no marker is found.</p> - - <p><b id="SCI_MARKERLINEFROMHANDLE">SCI_MARKERLINEFROMHANDLE(int markerHandle)</b><br /> - The <code>markerHandle</code> argument is an identifier for a marker returned by <a - class="message" href="#SCI_MARKERADD"><code>SCI_MARKERADD</code></a>. This function searches - the document for the marker with this handle and returns the line number that contains it or -1 - if it is not found.</p> - - <p><b id="SCI_MARKERDELETEHANDLE">SCI_MARKERDELETEHANDLE(int markerHandle)</b><br /> - The <code>markerHandle</code> argument is an identifier for a marker returned by <a - class="message" href="#SCI_MARKERADD"><code>SCI_MARKERADD</code></a>. This function searches - the document for the marker with this handle and deletes the marker if it is found.</p> - - <h2 id="Indicators">Indicators</h2> - - <p>By default, Scintilla organizes the style byte associated with each text byte as 5 bits of - style information (for 32 styles) and 3 bits of indicator information for 3 independent - indicators so that, for example, syntax errors, deprecated names and bad indentation could all - be displayed at once. Indicators may be displayed as simple underlines, squiggly underlines, a - line of small 'T' shapes, a line of diagonal hatching, a strike-out or a rectangle around the text.</p> - - <p>The indicators are set using <a class="message" - href="#SCI_STARTSTYLING"><code>SCI_STARTSTYLING</code></a> with a <code>INDICS_MASK</code> mask - and <a class="message" href="#SCI_SETSTYLING"><code>SCI_SETSTYLING</code></a> with the values - <code>INDIC0_MASK</code>, <code>INDIC1_MASK</code> and <code>INDIC2_MASK</code>.</p> - - <p>If you are using indicators in a buffer that has a lexer active - (see <a class="message" href="#SCI_SETLEXER"><code>SCI_SETLEXER</code></a>), - you must save lexing state information before setting any indicators and restore it afterwards. - Use <a class="message" href="#SCI_GETENDSTYLED"><code>SCI_GETENDSTYLED</code></a> - to retrieve the current "styled to" position and - <a class="message" href="#SCI_STARTSTYLING"><code>SCI_STARTSTYLING</code></a> - to reset the styling position and mask (<code>0x1f </code> in the default layout of 5 style bits and 3 indicator bits) - when you are done.</p> - - <p>The number of bits used for styles can be altered with <a class="message" - href="#SCI_SETSTYLEBITS"><code>SCI_SETSTYLEBITS</code></a> from 0 to 7 bits. The remaining bits - can be used for indicators, so there can be from 1 to 8 indicators. However, the - <code>INDIC*_MASK</code> constants defined in <code>Scintilla.h</code> all assume 5 bits of - styling information and 3 indicators. If you use a different arrangement, you must define your - own constants.</p> - - <p>The <code>SCI_INDIC*</code> messages allow you to get and set the visual appearance of the - indicators. They all use an <code>indicatorNumber</code> argument in the range 0 to 7 to set - the indicator to style. With the default settings, only indicators 0, 1 and 2 will have any - visible effect.</p> - <code><a class="message" href="#SCI_INDICSETSTYLE">SCI_INDICSETSTYLE(int indicatorNumber, int - indicatorStyle)</a><br /> - <a class="message" href="#SCI_INDICGETSTYLE">SCI_INDICGETSTYLE(int indicatorNumber)</a><br /> - <a class="message" href="#SCI_INDICSETFORE">SCI_INDICSETFORE(int indicatorNumber, int - colour)</a><br /> - <a class="message" href="#SCI_INDICGETFORE">SCI_INDICGETFORE(int indicatorNumber)</a><br /> - </code> - - <p><b id="SCI_INDICSETSTYLE">SCI_INDICSETSTYLE(int indicatorNumber, int - indicatorStyle)</b><br /> - <b id="SCI_INDICGETSTYLE">SCI_INDICGETSTYLE(int indicatorNumber)</b><br /> - These two messages set and get the style for a particular indicator. The indicator styles - currently available are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Indicators"> - <tbody> - <tr> - <th align="left">Symbol</th> - - <th>Value</th> - - <th align="left">Visual effect</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>INDIC_PLAIN</code></td> - - <td align="center">0</td> - - <td>Underlined with a single, straight line.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_SQUIGGLE</code></td> - - <td align="center">1</td> - - <td>A squiggly underline.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_TT</code></td> - - <td align="center">2</td> - - <td>A line of small T shapes.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_DIAGONAL</code></td> - - <td align="center">3</td> - - <td>Diagonal hatching.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_STRIKE</code></td> - - <td align="center">4</td> - - <td>Strike out.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_HIDDEN</code></td> - - <td align="center">5</td> - - <td>An indicator with no visual effect.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_BOX</code></td> - - <td align="center">6</td> - - <td>A rectangle around the text.</td> - </tr> - - <tr> - <td align="left"><code>INDIC_ROUNDBOX</code></td> - - <td align="center">7</td> - - <td>A rectangle with rounded corners around the text using translucent drawing with the - interior more transparent than the border.</td> - </tr> - </tbody> - </table> - - <p>The default indicator styles are equivalent to:<br /> - <code>SCI_INDICSETSTYLE(0, INDIC_SQUIGGLE);</code><br /> - <code>SCI_INDICSETSTYLE(1, INDIC_TT);</code><br /> - <code>SCI_INDICSETSTYLE(2, INDIC_PLAIN);</code></p> - - <p><b id="SCI_INDICSETFORE">SCI_INDICSETFORE(int indicatorNumber, int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_INDICGETFORE">SCI_INDICGETFORE(int indicatorNumber)</b><br /> - These two messages set and get the colour used to draw an indicator. The default indicator - colours are equivalent to:<br /> - <code>SCI_INDICSETFORE(0, 0x007f00);</code> (dark green)<br /> - <code>SCI_INDICSETFORE(1, 0xff0000);</code> (light blue)<br /> - <code>SCI_INDICSETFORE(2, 0x0000ff);</code> (light red)</p> - - <h2 id="Autocompletion">Autocompletion</h2> - - <p>Autocompletion displays a list box showing likely identifiers based upon the user's typing. - The user chooses the currently selected item by pressing the tab character or another character - that is a member of the fillup character set defined with <code>SCI_AUTOCSETFILLUPS</code>. - Autocompletion is triggered by your application. For example, in C if you detect that the user - has just typed <code>fred.</code> you could look up <code>fred</code>, and if it has a known - list of members, you could offer them in an autocompletion list. Alternatively, you could - monitor the user's typing and offer a list of likely items once their typing has narrowed down - the choice to a reasonable list. As yet another alternative, you could define a key code to - activate the list.</p> - - <p>When the user makes a selection from the list the container is sent a <code><a class="message" - href="#SCN_AUTOCSELECTION">SCN_AUTOCSELECTION</a></code> <a class="jump" - href="#Notifications">notification message</a>. On return from the notification Scintilla will insert - the selected text unless the autocompletion list has been cancelled, for example by the container sending - <code><a class="message" href="#SCI_AUTOCCANCEL">SCI_AUTOCCANCEL</a></code>.</p> - - <p>To make use of autocompletion you must monitor each character added to the document. See - <code>SciTEBase::CharAdded()</code> in SciTEBase.cxx for an example of autocompletion.</p> - <code><a class="message" href="#SCI_AUTOCSHOW">SCI_AUTOCSHOW(int lenEntered, const char - *list)</a><br /> - <a class="message" href="#SCI_AUTOCCANCEL">SCI_AUTOCCANCEL</a><br /> - <a class="message" href="#SCI_AUTOCACTIVE">SCI_AUTOCACTIVE</a><br /> - <a class="message" href="#SCI_AUTOCPOSSTART">SCI_AUTOCPOSSTART</a><br /> - <a class="message" href="#SCI_AUTOCCOMPLETE">SCI_AUTOCCOMPLETE</a><br /> - <a class="message" href="#SCI_AUTOCSTOPS">SCI_AUTOCSTOPS(<unused>, const char - *chars)</a><br /> - <a class="message" href="#SCI_AUTOCSETSEPARATOR">SCI_AUTOCSETSEPARATOR(char - separator)</a><br /> - <a class="message" href="#SCI_AUTOCGETSEPARATOR">SCI_AUTOCGETSEPARATOR</a><br /> - <a class="message" href="#SCI_AUTOCSELECT">SCI_AUTOCSELECT(<unused>, const char - *select)</a><br /> - <a class="message" href="#SCI_AUTOCGETCURRENT">SCI_AUTOCGETCURRENT</a><br /> - <a class="message" href="#SCI_AUTOCSETCANCELATSTART">SCI_AUTOCSETCANCELATSTART(bool - cancel)</a><br /> - <a class="message" href="#SCI_AUTOCGETCANCELATSTART">SCI_AUTOCGETCANCELATSTART</a><br /> - <a class="message" href="#SCI_AUTOCSETFILLUPS">SCI_AUTOCSETFILLUPS(<unused>, const char - *chars)</a><br /> - <a class="message" href="#SCI_AUTOCSETCHOOSESINGLE">SCI_AUTOCSETCHOOSESINGLE(bool - chooseSingle)</a><br /> - <a class="message" href="#SCI_AUTOCGETCHOOSESINGLE">SCI_AUTOCGETCHOOSESINGLE</a><br /> - <a class="message" href="#SCI_AUTOCSETIGNORECASE">SCI_AUTOCSETIGNORECASE(bool - ignoreCase)</a><br /> - <a class="message" href="#SCI_AUTOCGETIGNORECASE">SCI_AUTOCGETIGNORECASE</a><br /> - <a class="message" href="#SCI_AUTOCSETAUTOHIDE">SCI_AUTOCSETAUTOHIDE(bool autoHide)</a><br /> - <a class="message" href="#SCI_AUTOCGETAUTOHIDE">SCI_AUTOCGETAUTOHIDE</a><br /> - <a class="message" href="#SCI_AUTOCSETDROPRESTOFWORD">SCI_AUTOCSETDROPRESTOFWORD(bool - dropRestOfWord)</a><br /> - <a class="message" href="#SCI_AUTOCGETDROPRESTOFWORD">SCI_AUTOCGETDROPRESTOFWORD</a><br /> - <a class="message" href="#SCI_REGISTERIMAGE">SCI_REGISTERIMAGE</a><br /> - <a class="message" href="#SCI_CLEARREGISTEREDIMAGES">SCI_CLEARREGISTEREDIMAGES</a><br /> - <a class="message" href="#SCI_AUTOCSETTYPESEPARATOR">SCI_AUTOCSETTYPESEPARATOR(char separatorCharacter)</a><br /> - <a class="message" href="#SCI_AUTOCGETTYPESEPARATOR">SCI_AUTOCGETTYPESEPARATOR</a><br /> - <a class="message" href="#SCI_AUTOCSETMAXHEIGHT">SCI_AUTOCSETMAXHEIGHT(int rowCount)</a><br /> - <a class="message" href="#SCI_AUTOCGETMAXHEIGHT">SCI_AUTOCGETMAXHEIGHT</a><br /> - <a class="message" href="#SCI_AUTOCSETMAXWIDTH">SCI_AUTOCSETMAXWIDTH(int characterCount)</a><br /> - <a class="message" href="#SCI_AUTOCGETMAXWIDTH">SCI_AUTOCGETMAXWIDTH</a><br /> - </code> - - <p><b id="SCI_AUTOCSHOW">SCI_AUTOCSHOW(int lenEntered, const char *list)</b><br /> - This message causes a list to be displayed. <code>lenEntered</code> is the number of - characters of the word already entered and <code>list</code> is the list of words separated by - separator characters. The initial separator character is a space but this can be set or got - with <a class="message" href="#SCI_AUTOCSETSEPARATOR"><code>SCI_AUTOCSETSEPARATOR</code></a> - and <a class="message" - href="#SCI_AUTOCGETSEPARATOR"><code>SCI_AUTOCGETSEPARATOR</code></a>.</p> - - <p>The list of words should be in sorted order. If set to ignore case mode with <a - class="message" href="#SCI_AUTOCSETIGNORECASE"><code>SCI_AUTOCSETIGNORECASE</code></a>, then - strings are matched after being converted to upper case. One result of this is that the list - should be sorted with the punctuation characters '[', '\', ']', '^', '_', and '`' sorted after - letters.</p> - - <p><b id="SCI_AUTOCCANCEL">SCI_AUTOCCANCEL</b><br /> - This message cancels any displayed autocompletion list. When in autocompletion mode, the list - should disappear when the user types a character that can not be part of the autocompletion, - such as '.', '(' or '[' when typing an identifier. A set of characters that will cancel - autocompletion can be specified with <a class="message" - href="#SCI_AUTOCSTOPS"><code>SCI_AUTOCSTOPS</code></a>.</p> - - <p><b id="SCI_AUTOCACTIVE">SCI_AUTOCACTIVE</b><br /> - This message returns non-zero if there is an active autocompletion list and zero if there is - not.</p> - - <p><b id="SCI_AUTOCPOSSTART">SCI_AUTOCPOSSTART</b><br /> - This returns the value of the current position when <code>SCI_AUTOCSHOW</code> started display - of the list.</p> - - <p><b id="SCI_AUTOCCOMPLETE">SCI_AUTOCCOMPLETE</b><br /> - This message triggers autocompletion. This has the same effect as the tab key.</p> - - <p><b id="SCI_AUTOCSTOPS">SCI_AUTOCSTOPS(<unused>, const char *chars)</b><br /> - The <code>chars</code> argument is a string containing a list of characters that will - automatically cancel the autocompletion list. When you start the editor, this list is - empty.</p> - - <p><b id="SCI_AUTOCSETSEPARATOR">SCI_AUTOCSETSEPARATOR(char separator)</b><br /> - <b id="SCI_AUTOCGETSEPARATOR">SCI_AUTOCGETSEPARATOR</b><br /> - These two messages set and get the separator character used to separate words in the - <code>SCI_AUTOCSHOW</code> list. The default is the space character.</p> - - <p><b id="SCI_AUTOCSELECT">SCI_AUTOCSELECT(<unused>, const char *select)</b><br /> - <b id="SCI_AUTOCGETCURRENT">SCI_AUTOCGETCURRENT</b><br /> - This message selects an item in the autocompletion list. It searches the list of words for the - first that matches <code>select</code>. By default, comparisons are case sensitive, but you can - change this with <a class="message" - href="#SCI_AUTOCSETIGNORECASE"><code>SCI_AUTOCSETIGNORECASE</code></a>. The match is character - by character for the length of the <code>select</code> string. That is, if select is "Fred" it - will match "Frederick" if this is the first item in the list that begins with "Fred". If an - item is found, it is selected. If the item is not found, the autocompletion list closes if - auto-hide is true (see <a class="message" - href="#SCI_AUTOCSETAUTOHIDE"><code>SCI_AUTOCSETAUTOHIDE</code></a>).<br /> - The current selection can be retrieved with <code>SCI_AUTOCGETCURRENT</code> - </p> - - <p><b id="SCI_AUTOCSETCANCELATSTART">SCI_AUTOCSETCANCELATSTART(bool cancel)</b><br /> - <b id="SCI_AUTOCGETCANCELATSTART">SCI_AUTOCGETCANCELATSTART</b><br /> - The default behavior is for the list to be cancelled if the caret moves before the location it - was at when the list was displayed. By calling this message with a <code>false</code> argument, - the list is not cancelled until the caret moves before the first character of the word being - completed.</p> - - <p><b id="SCI_AUTOCSETFILLUPS">SCI_AUTOCSETFILLUPS(<unused>, const char *chars)</b><br /> - If a fillup character is typed with an autocompletion list active, the currently selected item - in the list is added into the document, then the fillup character is added. Common fillup - characters are '(', '[' and '.' but others are possible depending on the language. By default, - no fillup characters are set.</p> - - <p><b id="SCI_AUTOCSETCHOOSESINGLE">SCI_AUTOCSETCHOOSESINGLE(bool chooseSingle)</b><br /> - <b id="SCI_AUTOCGETCHOOSESINGLE">SCI_AUTOCGETCHOOSESINGLE</b><br /> - If you use <code>SCI_AUTOCSETCHOOSESINGLE(1)</code> and a list has only one item, it is - automatically added and no list is displayed. The default is to display the list even if there - is only a single item.</p> - - <p><b id="SCI_AUTOCSETIGNORECASE">SCI_AUTOCSETIGNORECASE(bool ignoreCase)</b><br /> - <b id="SCI_AUTOCGETIGNORECASE">SCI_AUTOCGETIGNORECASE</b><br /> - By default, matching of characters to list members is case sensitive. These messages let you - set and get case sensitivity.</p> - - <p><b id="SCI_AUTOCSETAUTOHIDE">SCI_AUTOCSETAUTOHIDE(bool autoHide)</b><br /> - <b id="SCI_AUTOCGETAUTOHIDE">SCI_AUTOCGETAUTOHIDE</b><br /> - By default, the list is cancelled if there are no viable matches (the user has typed - characters that no longer match a list entry). If you want to keep displaying the original - list, set <code>autoHide</code> to <code>false</code>. This also effects <a class="message" - href="#SCI_AUTOCSELECT"><code>SCI_AUTOCSELECT</code></a>.</p> - - <p><b id="SCI_AUTOCSETDROPRESTOFWORD">SCI_AUTOCSETDROPRESTOFWORD(bool dropRestOfWord)</b><br /> - <b id="SCI_AUTOCGETDROPRESTOFWORD">SCI_AUTOCGETDROPRESTOFWORD</b><br /> - When an item is selected, any word characters following the caret are first erased if - <code>dropRestOfWord</code> is set <code>true</code>. The default is <code>false</code>.</p> - - <p> - <b id="SCI_REGISTERIMAGE">SCI_REGISTERIMAGE(int type, const char *xpmData)</b><br /> - <b id="SCI_CLEARREGISTEREDIMAGES">SCI_CLEARREGISTEREDIMAGES</b><br /> - <b id="SCI_AUTOCSETTYPESEPARATOR">SCI_AUTOCSETTYPESEPARATOR(char separatorCharacter)</b><br /> - <b id="SCI_AUTOCGETTYPESEPARATOR">SCI_AUTOCGETTYPESEPARATOR</b><br /> - - Autocompletion list items may display an image as well as text. Each image is first registered with an integer - type. Then this integer is included in the text of the list separated by a '?' from the text. For example, - "fclose?2 fopen" displays image 2 before the string "fclose" and no image before "fopen". - The images are in XPM format as is described for - <a class="message" href="#SCI_MARKERDEFINEPIXMAP"><code>SCI_MARKERDEFINEPIXMAP</code></a> - The set of registered images can be cleared with <code>SCI_CLEARREGISTEREDIMAGES</code> and the '?' separator changed - with <code>SCI_AUTOCSETTYPESEPARATOR</code>. - </p> - - <p> - <b id="SCI_AUTOCSETMAXHEIGHT">SCI_AUTOCSETMAXHEIGHT(int rowCount)</b><br /> - <b id="SCI_AUTOCGETMAXHEIGHT">SCI_AUTOCGETMAXHEIGHT</b><br /> - - Get or set the maximum number of rows that will be visible in an autocompletion list. If there are more rows in the list, then a vertical - scrollbar is shown. The default is 5. - </p> - - <p> - <b id="SCI_AUTOCSETMAXWIDTH">SCI_AUTOCSETMAXWIDTH(int characterCount)</b><br /> - <b id="SCI_AUTOCGETMAXWIDTH">SCI_AUTOCGETMAXWIDTH</b><br /> - - Get or set the maximum width of an autocompletion list expressed as the number of characters in the longest item that will be totally visible. - If zero (the default) then the list's width is calculated to fit the item with the most characters. Any items that cannot be fully displayed within - the available width are indicated by the presence of ellipsis. - </p> - - <h2 id="UserLists">User lists</h2> - - <p>User lists use the same internal mechanisms as autocompletion lists, and all the calls - listed for autocompletion work on them; you cannot display a user list at the same time as an - autocompletion list is active. They differ in the following respects:</p> - - <p>o The <code><a class="message" - href="#SCI_AUTOCSETCHOOSESINGLE">SCI_AUTOCSETCHOOSESINGLE</a></code> message has no - effect.<br /> - o When the user makes a selection you are sent a <code><a class="message" - href="#SCN_USERLISTSELECTION">SCN_USERLISTSELECTION</a></code> <a class="jump" - href="#Notifications">notification message</a> rather than <code><a class="message" - href="#SCN_AUTOCSELECTION">SCN_AUTOCSELECTION</a></code>.</p> - - <p>BEWARE: if you have set fillup characters or stop characters, these will still be active - with the user list, and may result in items being selected or the user list cancelled due to - the user typing into the editor.</p> - - <p><b id="SCI_USERLISTSHOW">SCI_USERLISTSHOW(int listType, const char *list)</b><br /> - The <code>listType</code> parameter is returned to the container as the <code>wParam</code> - field of the <a class="message" href="#SCNotification"><code>SCNotification</code></a> - structure. It must be greater than 0 as this is how Scintilla tells the difference between an - autocompletion list and a user list. If you have different types of list, for example a list of - buffers and a list of macros, you can use <code>listType</code> to tell which one has returned - a selection. </p> - - <h2 id="CallTips">Call tips</h2> - - <p>Call tips are small windows displaying the arguments to a function and are displayed after - the user has typed the name of the function. They normally display characters using the font - facename, size and character set defined by - <code><a class="message" href="#StyleDefinition">STYLE_DEFAULT</a></code>. You can choose to - use <code><a class="message" href="#StyleDefinition">STYLE_CALLTIP</a></code> to define the - facename, size, foreground and background colours and character set with - <code><a class="message" href="#SCI_CALLTIPUSESTYLE">SCI_CALLTIPUSESTYLE</a></code>. - This also enables support for Tab characters. - - There is some interaction between call tips and autocompletion lists in that showing a - call tip cancels any active autocompletion list, and vice versa.</p> - - <p>Call tips can highlight part of the text within them. You could use this to highlight the - current argument to a function by counting the number of commas (or whatever separator your - language uses). See <code>SciTEBase::CharAdded()</code> in <code>SciTEBase.cxx</code> for an - example of call tip use.</p> - - <p>The mouse may be clicked on call tips and this causes a - <code><a class="message" href="#SCN_CALLTIPCLICK">SCN_CALLTIPCLICK</a></code> - notification to be sent to the container. Small up an down arrows may be displayed within - a call tip by, respectively, including the characters '\001', or '\002'. This is useful - for showing that there are overloaded variants of one function name and that the user can - click on the arrows to cycle through the overloads.</p> - - <p>Alternatively, call tips can be displayed when you leave the mouse pointer for a while over - a word in response to the <code><a class="message" - href="#SCN_DWELLSTART">SCN_DWELLSTART</a></code> <a class="jump" - href="#Notifications">notification</a> and cancelled in response to <code><a class="message" - href="#SCN_DWELLEND">SCN_DWELLEND</a></code>. This method could be used in a debugger to give - the value of a variable, or during editing to give information about the word under the - pointer.</p> - <code><a class="message" href="#SCI_CALLTIPSHOW">SCI_CALLTIPSHOW(int posStart, const char - *definition)</a><br /> - <a class="message" href="#SCI_CALLTIPCANCEL">SCI_CALLTIPCANCEL</a><br /> - <a class="message" href="#SCI_CALLTIPACTIVE">SCI_CALLTIPACTIVE</a><br /> - <a class="message" href="#SCI_CALLTIPPOSSTART">SCI_CALLTIPPOSSTART</a><br /> - <a class="message" href="#SCI_CALLTIPSETHLT">SCI_CALLTIPSETHLT(int highlightStart, int - highlightEnd)</a><br /> - <a class="message" href="#SCI_CALLTIPSETBACK">SCI_CALLTIPSETBACK(int colour)</a><br /> - <a class="message" href="#SCI_CALLTIPSETFORE">SCI_CALLTIPSETFORE(int colour)</a><br /> - <a class="message" href="#SCI_CALLTIPSETFOREHLT">SCI_CALLTIPSETFOREHLT(int colour)</a><br /> - <a class="message" href="#SCI_CALLTIPUSESTYLE">SCI_CALLTIPUSESTYLE(int tabsize)</a><br /> - </code> - - <p><b id="SCI_CALLTIPSHOW">SCI_CALLTIPSHOW(int posStart, const char *definition)</b><br /> - This message starts the process by displaying the call tip window. If a call tip is already - active, this has no effect.<br /> - <code>posStart</code> is the position in the document at which to align the call tip. The call - tip text is aligned to start 1 line below this character unless you have included up and/or - down arrows in the call tip text in which case the tip is aligned to the right-hand edge of - the rightmost arrow. The assumption is that you will start the text with something like - "\001 1 of 3 \002".<br /> - <code>definition</code> is the call tip text. This can contain multiple lines separated by - '\n' (Line Feed, ASCII code 10) characters. Do not include '\r' (Carriage Return, ASCII - code 13), as this will most likely print as an empty box. '\t' (Tab, ASCII code 9) is - supported if you set a tabsize with - <code><a class="message" href="#SCI_CALLTIPUSESTYLE">SCI_CALLTIPUSESTYLE</a></code>.<br /></p> - - <p><b id="SCI_CALLTIPCANCEL">SCI_CALLTIPCANCEL</b><br /> - This message cancels any displayed call tip. Scintilla will also cancel call tips for you if - you use any keyboard commands that are not compatible with editing the argument list of a - function.</p> - - <p><b id="SCI_CALLTIPACTIVE">SCI_CALLTIPACTIVE</b><br /> - This returns 1 if a call tip is active and 0 if it is not active.</p> - - <p><b id="SCI_CALLTIPPOSSTART">SCI_CALLTIPPOSSTART</b><br /> - This message returns the value of the current position when <code>SCI_CALLTIPSHOW</code> - started to display the tip.</p> - - <p><b id="SCI_CALLTIPSETHLT">SCI_CALLTIPSETHLT(int hlStart, int hlEnd)</b><br /> - This sets the region of the call tips text to display in a highlighted style. - <code>hlStart</code> is the zero-based index into the string of the first character to - highlight and <code>hlEnd</code> is the index of the first character after the highlight. - <code>hlEnd</code> must be greater than <code>hlStart</code>; <code>hlEnd-hlStart</code> is the - number of characters to highlight. Highlights can extend over line ends if this is - required.</p> - - <p>Unhighlighted text is drawn in a mid gray. Selected text is drawn in a dark blue. The - background is white. These can be changed with - <code>SCI_CALLTIPSETBACK</code>, - <code>SCI_CALLTIPSETFORE</code>, and - <code>SCI_CALLTIPSETFOREHLT</code>. - </p> - - <p><b id="SCI_CALLTIPSETBACK">SCI_CALLTIPSETBACK(int colour)</b><br /> - The background colour of call tips can be set with this message; the default colour is white. - It is not a good idea to set a dark colour as the background as the default colour for normal - calltip text is mid gray and the defaultcolour for highlighted text is dark blue. This also - sets the background colour of <code>STYLE_CALLTIP</code>.</p> - - <p><b id="SCI_CALLTIPSETFORE">SCI_CALLTIPSETFORE(int colour)</b><br /> - The colour of call tip text can be set with this message; the default colour is mid gray. - This also sets the foreground colour of <code>STYLE_CALLTIP</code>.</p> - - <p><b id="SCI_CALLTIPSETFOREHLT">SCI_CALLTIPSETFOREHLT(int colour)</b><br /> - The colour of highlighted call tip text can be set with this message; the default colour - is dark blue.</p> - - <p><b id="SCI_CALLTIPUSESTYLE">SCI_CALLTIPUSESTYLE(int tabsize)</b><br /> - This message changes the style used for call tips from <code>STYLE_DEFAULT</code> to - <code>STYLE_CALLTIP</code> and sets a tab size in screen pixels. If <code>tabsize</code> is - less than 1, Tab characters are not treated specially. Once this call has been used, the - call tip foreground and background colours are also taken from the style.</p> - - - <h2 id="KeyboardCommands">Keyboard commands</h2> - - <p>To allow the container application to perform any of the actions available to the user with - keyboard, all the keyboard actions are messages. They do not take any parameters. These - commands are also used when redefining the key bindings with the <a class="message" - href="#SCI_ASSIGNCMDKEY"><code>SCI_ASSIGNCMDKEY</code></a> message.</p> - - <table border="0" summary="Keyboard commands"> - <tbody> - <tr> - <td><code>SCI_LINEDOWN</code></td> - - <td><code>SCI_LINEDOWNEXTEND</code></td> - - <td><code>SCI_LINEDOWNRECTEXTEND</code></td> - - <td><code>SCI_LINESCROLLDOWN</code></td> - </tr> - - <tr> - <td><code>SCI_LINEUP</code></td> - - <td><code>SCI_LINEUPEXTEND</code></td> - - <td><code>SCI_LINEUPRECTEXTEND</code></td> - - <td><code>SCI_LINESCROLLUP</code></td> - </tr> - - <tr> - <td><code>SCI_PARADOWN</code></td> - - <td><code>SCI_PARADOWNEXTEND</code></td> - - <td><code>SCI_PARAUP</code></td> - - <td><code>SCI_PARAUPEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_CHARLEFT</code></td> - - <td><code>SCI_CHARLEFTEXTEND</code></td> - - <td><code>SCI_CHARLEFTRECTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_CHARRIGHT</code></td> - - <td><code>SCI_CHARRIGHTEXTEND</code></td> - - <td><code>SCI_CHARRIGHTRECTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_WORDLEFT</code></td> - - <td><code>SCI_WORDLEFTEXTEND</code></td> - - <td><code>SCI_WORDRIGHT</code></td> - - <td><code>SCI_WORDRIGHTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_WORDLEFTEND</code></td> - - <td><code>SCI_WORDLEFTENDEXTEND</code></td> - - <td><code>SCI_WORDRIGHTEND</code></td> - - <td><code>SCI_WORDRIGHTENDEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_WORDPARTLEFT</code></td> - - <td><code>SCI_WORDPARTLEFTEXTEND</code></td> - - <td><code>SCI_WORDPARTRIGHT</code></td> - - <td><code>SCI_WORDPARTRIGHTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_HOME</code></td> - - <td><code>SCI_HOMEEXTEND</code></td> - - <td><code>[SCI_HOMERECTEXTEND]</code></td> - </tr> - - <tr> - <td><code>SCI_HOMEDISPLAY</code></td> - - <td><code>SCI_HOMEDISPLAYEXTEND</code></td> - - <td><code>SCI_HOMEWRAP</code></td> - - <td><code>SCI_HOMEWRAPEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_VCHOME</code></td> - - <td><code>SCI_VCHOMEEXTEND</code></td> - - <td><code>SCI_VCHOMERECTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_VCHOMEWRAP</code></td> - - <td><code>SCI_VCHOMEWRAPEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_LINEEND</code></td> - - <td><code>SCI_LINEENDEXTEND</code></td> - - <td><code>SCI_LINEENDRECTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_LINEENDDISPLAY</code></td> - - <td><code>SCI_LINEENDDISPLAYEXTEND</code></td> - - <td><code>SCI_LINEENDWRAP</code></td> - - <td><code>SCI_LINEENDWRAPEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_DOCUMENTSTART</code></td> - - <td><code>SCI_DOCUMENTSTARTEXTEND</code></td> - - <td><code>SCI_DOCUMENTEND</code></td> - - <td><code>SCI_DOCUMENTENDEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_PAGEUP</code></td> - - <td><code>SCI_PAGEUPEXTEND</code></td> - - <td><code>SCI_PAGEUPRECTEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_PAGEDOWN</code></td> - - <td><code>SCI_PAGEDOWNEXTEND</code></td> - - <td><code>SCI_PAGEDOWNRECTEXTEND</code></td> - </tr> - - - <tr> - <td><code>SCI_STUTTEREDPAGEUP</code></td> - - <td><code>SCI_STUTTEREDPAGEUPEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_STUTTEREDPAGEDOWN</code></td> - - <td><code>SCI_STUTTEREDPAGEDOWNEXTEND</code></td> - </tr> - - <tr> - <td><code>SCI_DELETEBACK</code></td> - - <td><code>SCI_DELETEBACKNOTLINE</code></td> - - <td><code>SCI_DELWORDLEFT</code></td> - - <td><code>SCI_DELWORDRIGHT</code></td> - </tr> - - <tr> - <td><code>SCI_DELLINELEFT</code></td> - - <td><code>SCI_DELLINERIGHT</code></td> - - <td><code>SCI_LINEDELETE</code></td> - </tr> - - <tr> - <td><code>SCI_LINECUT</code></td> - - <td><code>SCI_LINECOPY</code></td> - - <td><code>SCI_LINETRANSPOSE</code></td> - - <td><code>SCI_LINEDUPLICATE</code></td> - </tr> - - <tr> - <td><code>SCI_LOWERCASE</code></td> - - <td><code>SCI_UPPERCASE</code></td> - - <td><code>SCI_CANCEL</code></td> - - <td><code>SCI_EDITTOGGLEOVERTYPE</code></td> - </tr> - - <tr> - <td><code>SCI_NEWLINE</code></td> - - <td><code>SCI_FORMFEED</code></td> - - <td><code>SCI_TAB</code></td> - - <td><code>SCI_BACKTAB</code></td> - </tr> - - <tr> - <td><code>SCI_SELECTIONDUPLICATE</code></td> - - </tr> - </tbody> - </table> - - <p>The <code>SCI_*EXTEND</code> messages extend the selection.</p> - - <p>The <code>SCI_*RECTEXTEND</code> messages extend the rectangular selection - (and convert regular selection to rectangular one, if any).</p> - - <p>The <code>SCI_WORDPART*</code> commands are used to move between word segments marked by - capitalisation (aCamelCaseIdentifier) or underscores (an_under_bar_ident).</p> - - <p>The <code>SCI_HOME*</code> commands move the caret to the start of the line, while the - <code>SCI_VCHOME*</code>commands move the caret to the first non-blank character of the line - (ie. just after the indentation) unless it is already there; in this case, it acts as SCI_HOME*.</p> - - <p>The <code>SCI_[HOME|LINEEND]DISPLAY*</code> commands are used when in line wrap mode to - allow movement to the start or end of display lines as opposed to the normal - <code>SCI_[HOME|LINEEND]</code> commands which move to the start or end of document lines.</p> - - <p>The <code>SCI_[[VC]HOME|LINEEND]WRAP*</code> commands are like their namesakes - <code>SCI_[[VC]HOME|LINEEND]*</code> except they behave differently when word-wrap is enabled: - They go first to the start / end of the display line, like <code>SCI_[HOME|LINEEND]DISPLAY*</code>, - but if the cursor is already at the point, it goes on to the start or end of the document line, - as appropriate for <code>SCI_[[VC]HOME|LINEEND]*</code>. - </p> - - <h2 id="KeyBindings">Key bindings</h2> - - <p>There is a default binding of keys to commands that is defined in the Scintilla source in - the file <code>KeyMap.cxx</code> by the constant <code>KeyMap::MapDefault[]</code>. This table - maps key definitions to <code>SCI_*</code> messages with no parameters (mostly the <a - class="jump" href="#KeyboardCommands">keyboard commands</a> discussed above, but any Scintilla - command that has no arguments can be mapped). You can change the mapping to suit your own - requirements.</p> - <code><a class="message" href="#SCI_ASSIGNCMDKEY">SCI_ASSIGNCMDKEY(int keyDefinition, int - sciCommand)</a><br /> - <a class="message" href="#SCI_CLEARCMDKEY">SCI_CLEARCMDKEY(int keyDefinition)</a><br /> - <a class="message" href="#SCI_CLEARALLCMDKEYS">SCI_CLEARALLCMDKEYS</a><br /> - <a class="message" href="#SCI_NULL">SCI_NULL</a><br /> - </code> - - <p><b id="keyDefinition">keyDefinition</b><br /> - A key definition contains the key code in the low 16-bits and the key modifiers in the high - 16-bits. To combine <code>keyCode</code> and <code>keyMod</code> set:<br /> - <br /> - <code>keyDefinition = keyCode + (keyMod << 16)</code></p> - - <p>The key code is a visible or control character or a key from the <code>SCK_*</code> - enumeration, which contains:<br /> - <code>SCK_ADD</code>, <code>SCK_BACK</code>, <code>SCK_DELETE</code>, <code>SCK_DIVIDE</code>, - <code>SCK_DOWN</code>, <code>SCK_END</code>, <code>SCK_ESCAPE</code>, <code>SCK_HOME</code>, - <code>SCK_INSERT</code>, <code>SCK_LEFT</code>, <code>SCK_NEXT</code> (Page Down), - <code>SCK_PRIOR</code> (Page Up), <code>SCK_RETURN</code>, <code>SCK_RIGHT</code>, - <code>SCK_SUBTRACT</code>, <code>SCK_TAB</code>, and <code>SCK_UP</code>.</p> - - <p>The modifiers are a combination of zero or more of <code>SCMOD_ALT</code>, - <code>SCMOD_CTRL</code>, and <code>SCMOD_SHIFT</code>. If you are building a table, you might - want to use <code>SCMOD_NORM</code>, which has the value 0, to mean no modifiers.</p> - - <p><b id="SCI_ASSIGNCMDKEY">SCI_ASSIGNCMDKEY(int <a class="jump" - href="#keyDefinition">keyDefinition</a>, int sciCommand)</b><br /> - This assigns the given key definition to a Scintilla command identified by - <code>sciCommand</code>. <code>sciCommand</code> can be any <code>SCI_*</code> command that has - no arguments.</p> - - <p><b id="SCI_CLEARCMDKEY">SCI_CLEARCMDKEY(int <a class="jump" - href="#keyDefinition">keyDefinition</a>)</b><br /> - This makes the given key definition do nothing by assigning the action <code>SCI_NULL</code> - to it.</p> - - <p><b id="SCI_CLEARALLCMDKEYS">SCI_CLEARALLCMDKEYS</b><br /> - This command removes all keyboard command mapping by setting an empty mapping table.</p> - - <p><b id="SCI_NULL">SCI_NULL</b><br /> - The <code>SCI_NULL</code> does nothing and is the value assigned to keys that perform no - action. SCI_NULL ensures that keys do not propagate to the parent window as that may - cause focus to move. If you want the standard platform behaviour use the constant 0 instead.</p> - - <h2 id="PopupEditMenu">Popup edit menu</h2> - - <p><b id="SCI_USEPOPUP">SCI_USEPOPUP(bool bEnablePopup)</b><br /> - Clicking the wrong button on the mouse pops up a short default editing menu. This may be - turned off with <code>SCI_USEPOPUP(0)</code>. If you turn it off, context menu commands (in - Windows, <code>WM_CONTEXTMENU</code>) will not be handled by Scintilla, so the parent of the - Scintilla window will have the opportunity to handle the message.</p> - - <h2 id="MacroRecording">Macro recording</h2> - - <p>Start and stop macro recording mode. In macro recording mode, actions are reported to the - container through <code><a class="message" href="#SCN_MACRORECORD">SCN_MACRORECORD</a></code> - <a class="jump" href="#Notifications">notifications</a>. It is then up to the container to - record these actions for future replay.</p> - - <p><b id="SCI_STARTRECORD">SCI_STARTRECORD</b><br /> - <b id="SCI_STOPRECORD">SCI_STOPRECORD</b><br /> - These two messages turn macro recording on and off.</p> - - <h2 id="Printing">Printing</h2> - - <p>On Windows <code>SCI_FORMATRANGE</code> can be used to draw the text onto a display context - which can include a printer display context. Printed output shows text styling as on the - screen, but it hides all margins except a line number margin. All special marker effects are - removed and the selection and caret are hidden.</p> - <code><a class="message" href="#SCI_FORMATRANGE">SCI_FORMATRANGE(bool bDraw, RangeToFormat - *pfr)</a><br /> - <a class="message" href="#SCI_SETPRINTMAGNIFICATION">SCI_SETPRINTMAGNIFICATION(int - magnification)</a><br /> - <a class="message" href="#SCI_GETPRINTMAGNIFICATION">SCI_GETPRINTMAGNIFICATION</a><br /> - <a class="message" href="#SCI_SETPRINTCOLOURMODE">SCI_SETPRINTCOLOURMODE(int mode)</a><br /> - <a class="message" href="#SCI_GETPRINTCOLOURMODE">SCI_GETPRINTCOLOURMODE</a><br /> - <a class="message" href="#SCI_SETPRINTWRAPMODE">SCI_SETPRINTWRAPMODE</a><br /> - <a class="message" href="#SCI_GETPRINTWRAPMODE">SCI_GETPRINTWRAPMODE</a><br /> - </code> - - <p><b id="SCI_FORMATRANGE">SCI_FORMATRANGE(bool bDraw, RangeToFormat *pfr)</b><br /> - This call allows Windows users to render a range of text into a device context. If you use - this for printing, you will probably want to arrange a page header and footer; Scintilla does - not do this for you. See <code>SciTEWin::Print()</code> in <code>SciTEWinDlg.cxx</code> for an - example. Each use of this message renders a range of text into a rectangular area and returns - the position in the document of the next character to print.</p> - - <p><code>bDraw</code> controls if any output is done. Set this to false if you are paginating - (for example, if you use this with MFC you will need to paginate in - <code>OnBeginPrinting()</code> before you output each page.</p> -<pre> -struct RangeToFormat { - SurfaceID hdc; // The HDC (device context) we print to - SurfaceID hdcTarget; // The HDC we use for measuring (may be same as hdc) - PRectangle rc; // Rectangle in which to print - PRectangle rcPage; // Physically printable page size - CharacterRange chrg; // Range of characters to print -}; -</pre> - - <p><code>hdc</code> and <code>hdcTarget</code> should both be set to the device context handle - of the output device (usually a printer). If you print to a metafile these will not be the same - as Windows metafiles (unlike extended metafiles) do not implement the full API for returning - information. In this case, set <code>hdcTarget</code> to the screen DC.<br /> - <code>rcPage</code> is the rectangle <code>{0, 0, maxX, maxY}</code> where <code>maxX+1</code> - and <code>maxY+1</code> are the number of physically printable pixels in x and y.<br /> - <code>rc</code> is the rectangle to render the text in (which will, of course, fit within the - rectangle defined by rcPage).<br /> - <code>chrg.cpMin</code> and <code>chrg.cpMax</code> define the start position and maximum - position of characters to output. All of each line within this character range is drawn.</p> - - <p>When printing, the most tedious part is always working out what the margins should be to - allow for the non-printable area of the paper and printing a header and footer. If you look at - the printing code in SciTE, you will find that most of it is taken up with this. The loop that - causes Scintilla to render text is quite simple if you strip out all the margin, non-printable - area, header and footer code.</p> - - <p><b id="SCI_SETPRINTMAGNIFICATION">SCI_SETPRINTMAGNIFICATION(int magnification)</b><br /> - <b id="SCI_GETPRINTMAGNIFICATION">SCI_GETPRINTMAGNIFICATION</b><br /> - <code>SCI_GETPRINTMAGNIFICATION</code> lets you to print at a different size than the screen - font. <code>magnification</code> is the number of points to add to the size of each screen - font. A value of -3 or -4 gives reasonably small print. You can get this value with - <code>SCI_GETPRINTMAGNIFICATION</code>.</p> - - <p><b id="SCI_SETPRINTCOLOURMODE">SCI_SETPRINTCOLOURMODE(int mode)</b><br /> - <b id="SCI_GETPRINTCOLOURMODE">SCI_GETPRINTCOLOURMODE</b><br /> - These two messages set and get the method used to render coloured text on a printer that is - probably using white paper. It is especially important to consider the treatment of colour if - you use a dark or black screen background. Printing white on black uses up toner and ink very - many times faster than the other way around. You can set the mode to one of:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Colour printing modes"> - <tbody> - <tr> - <th align="left">Symbol</th> - - <th>Value</th> - - <th align="left">Purpose</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>SC_PRINT_NORMAL</code></td> - - <td align="center">0</td> - - <td>Print using the current screen colours. This is the default.</td> - </tr> - - <tr> - <td align="left"><code>SC_PRINT_INVERTLIGHT</code></td> - - <td align="center">1</td> - - <td>If you use a dark screen background this saves ink by inverting the light value of - all colours and printing on a white background.</td> - </tr> - - <tr> - <td align="left"><code>SC_PRINT_BLACKONWHITE</code></td> - - <td align="center">2</td> - - <td>Print all text as black on a white background.</td> - </tr> - - <tr> - <td align="left"><code>SC_PRINT_COLOURONWHITE</code></td> - - <td align="center">3</td> - - <td>Everything prints in its own colour on a white background.</td> - </tr> - - <tr> - <td align="left"><code>SC_PRINT_COLOURONWHITEDEFAULTBG</code></td> - - <td align="center">4</td> - - <td>Everything prints in its own colour on a white background except that line numbers - use their own background colour.</td> - </tr> - </tbody> - </table> - - <p><b id="SCI_SETPRINTWRAPMODE">SCI_SETPRINTWRAPMODE(int wrapMode)</b><br /> - <b id="SCI_GETPRINTWRAPMODE">SCI_GETPRINTWRAPMODE</b><br /> - These two functions get and set the printer wrap mode. <code>wrapMode</code> can be - set to <code>SC_WRAP_NONE</code> (0), <code>SC_WRAP_WORD</code> (1) or - <code>SC_WRAP_CHAR</code> (2). The default is - <code>SC_WRAP_WORD</code>, which wraps printed output so that all characters fit - into the print rectangle. If you set <code>SC_WRAP_NONE</code>, each line of text - generates one line of output and the line is truncated if it is too long to fit - into the print area.<br /> - <code>SC_WRAP_WORD</code> tries to wrap only between words as indicated by - white space or style changes although if a word is longer than a line, it will be wrapped before - the line end. <code>SC_WRAP_CHAR</code> is preferred to - <code>SC_WRAP_WORD</code> for Asian languages where there is no white space - between words.</p> - - <h2 id="DirectAccess">Direct access</h2> - <code><a class="message" href="#SCI_GETDIRECTFUNCTION">SCI_GETDIRECTFUNCTION</a><br /> - <a class="message" href="#SCI_GETDIRECTPOINTER">SCI_GETDIRECTPOINTER</a><br /> - </code> - - <p>On Windows, the message-passing scheme used to communicate between the container and - Scintilla is mediated by the operating system <code>SendMessage</code> function and can lead to - bad performance when calling intensively. To avoid this overhead, Scintilla provides messages - that allow you to call the Scintilla message function directly. The code to do this in C/C++ is - of the form:</p> -<pre> -#include "Scintilla.h" -SciFnDirect pSciMsg = (SciFnDirect)SendMessage(hSciWnd, SCI_GETDIRECTFUNCTION, 0, 0); -sptr_t pSciWndData = (sptr_t)SendMessage(hSciWnd, SCI_GETDIRECTPOINTER, 0, 0); - -// now a wrapper to call Scintilla directly -sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ - return pSciMsg(pSciWndData, iMessage, wParam, lParam); -} -</pre> - - <p><code>SciFnDirect</code>, <code>sptr_t</code> and <code>uptr_t</code> are declared in - <code>Scintilla.h</code>. <code>hSciWnd</code> is the window handle returned when you created - the Scintilla window.</p> - - <p>While faster, this direct calling will cause problems if performed from a different thread - to the native thread of the Scintilla window in which case <code>SendMessage(hSciWnd, SCI_*, - wParam, lParam)</code> should be used to synchronize with the window's thread.</p> - - <p>This feature also works on GTK+ but has no significant impact on speed.</p> - - <p>From version 1.47 on Windows, Scintilla exports a function called - <code>Scintilla_DirectFunction</code> that can be used the same as the function returned by - <code>SCI_GETDIRECTFUNCTION</code>. This saves you the call to - <code>SCI_GETDIRECTFUNCTION</code> and the need to call Scintilla indirectly via the function - pointer.</p> - - <p><b id="SCI_GETDIRECTFUNCTION">SCI_GETDIRECTFUNCTION</b><br /> - This message returns the address of the function to call to handle Scintilla messages without - the overhead of passing through the Windows messaging system. You need only call this once, - regardless of the number of Scintilla windows you create.</p> - - <p><b id="SCI_GETDIRECTPOINTER">SCI_GETDIRECTPOINTER</b><br /> - This returns a pointer to data that identifies which Scintilla window is in use. You must call - this once for each Scintilla window you create. When you call the direct function, you must - pass in the direct pointer associated with the target window.</p> - - <h2 id="MultipleViews">Multiple views</h2> - - <p>A Scintilla window and the document that it displays are separate entities. When you create - a new window, you also create a new, empty document. Each document has a reference count that - is initially set to 1. The document also has a list of the Scintilla windows that are linked to - it so when any window changes the document, all other windows in which it appears are notified - to cause them to update. The system is arranged in this way so that you can work with many - documents in a single Scintilla window and so you can display a single document in multiple - windows (for use with splitter windows).</p> - - <p>Although these messages use <code>document *pDoc</code>, to ensure compatibility with future - releases of Scintilla you should treat <code>pDoc</code> as an opaque <code>void*</code>. That - is, you can use and store the pointer as described in this section but you should not - dereference it.</p> - <code><a class="message" href="#SCI_GETDOCPOINTER">SCI_GETDOCPOINTER</a><br /> - <a class="message" href="#SCI_SETDOCPOINTER">SCI_SETDOCPOINTER(<unused>, document - *pDoc)</a><br /> - <a class="message" href="#SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT</a><br /> - <a class="message" href="#SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(<unused>, document - *pDoc)</a><br /> - <a class="message" href="#SCI_RELEASEDOCUMENT">SCI_RELEASEDOCUMENT(<unused>, document - *pDoc)</a><br /> - </code> - - <p><b id="SCI_GETDOCPOINTER">SCI_GETDOCPOINTER</b><br /> - This returns a pointer to the document currently in use by the window. It has no other - effect.</p> - - <p><b id="SCI_SETDOCPOINTER">SCI_SETDOCPOINTER(<unused>, document *pDoc)</b><br /> - This message does the following:<br /> - 1. It removes the current window from the list held by the current document.<br /> - 2. It reduces the reference count of the current document by 1.<br /> - 3. If the reference count reaches 0, the document is deleted.<br /> - 4. <code>pDoc</code> is set as the new document for the window.<br /> - 5. If <code>pDoc</code> was 0, a new, empty document is created and attached to the - window.<br /> - 6. If <code>pDoc</code> was not 0, its reference count is increased by 1.</p> - - <p><b id="SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT</b><br /> - This message creates a new, empty document and returns a pointer to it. This document is not - selected into the editor and starts with a reference count of 1. This means that you have - ownership of it and must either reduce its reference count by 1 after using - <code>SCI_SETDOCPOINTER</code> so that the Scintilla window owns it or you must make sure that - you reduce the reference count by 1 with <code>SCI_RELEASEDOCUMENT</code> before you close the - application to avoid memory leaks.</p> - - <p><b id="SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(<unused>, document *pDoc)</b><br /> - This increases the reference count of a document by 1. If you want to replace the current - document in the Scintilla window and take ownership of the current document, for example if you - are editing many documents in one window, do the following:<br /> - 1. Use <code>SCI_GETDOCPOINTER</code> to get a pointer to the document, - <code>pDoc</code>.<br /> - 2. Use <code>SCI_ADDREFDOCUMENT(0, pDoc)</code> to increment the reference count.<br /> - 3. Use <code>SCI_SETDOCPOINTER(0, pNewDoc)</code> to set a different document or - <code>SCI_SETDOCPOINTER(0, 0)</code> to set a new, empty document.</p> - - <p><b id="SCI_RELEASEDOCUMENT">SCI_RELEASEDOCUMENT(<unused>, document *pDoc)</b><br /> - This message reduces the reference count of the document identified by <code>pDoc</code>. pDoc - must be the result of <code>SCI_GETDOCPOINTER</code> or <code>SCI_CREATEDOCUMENT</code> and - must point at a document that still exists. If you call this on a document with a reference - count of 1 that is still attached to a Scintilla window, bad things will happen. To keep the - world spinning in its orbit you must balance each call to <code>SCI_CREATEDOCUMENT</code> or - <code>SCI_ADDREFDOCUMENT</code> with a call to <code>SCI_RELEASEDOCUMENT</code>.</p> - - <h2 id="Folding">Folding</h2> - - <p>The fundamental operation in folding is making lines invisible or visible. Line visibility - is a property of the view rather than the document so each view may be displaying a different - set of lines. From the point of view of the user, lines are hidden and displayed using fold - points. Generally, the fold points of a document are based on the hierarchical structure of the - document contents. In Python, the hierarchy is determined by indentation and in C++ by brace - characters. This hierarchy can be represented within a Scintilla document object by attaching a - numeric "fold level" to each line. The fold level is most easily set by a lexer, but you can - also set it with messages.</p> - - <p>It is up to your code to set the connection between user actions and folding and unfolding. - The best way to see how this is done is to search the SciTE source code for the messages used - in this section of the documentation and see how they are used. You will also need to use - markers and a folding margin to complete your folding implementation. - The <code>"fold"</code> property should be set to <code>"1"</code> with - <code>SCI_SETPROPERTY("fold", "1")</code> to enable folding. </p> - <code><a class="message" href="#SCI_VISIBLEFROMDOCLINE">SCI_VISIBLEFROMDOCLINE(int - docLine)</a><br /> - <a class="message" href="#SCI_DOCLINEFROMVISIBLE">SCI_DOCLINEFROMVISIBLE(int - displayLine)</a><br /> - <a class="message" href="#SCI_SHOWLINES">SCI_SHOWLINES(int lineStart, int lineEnd)</a><br /> - <a class="message" href="#SCI_HIDELINES">SCI_HIDELINES(int lineStart, int lineEnd)</a><br /> - <a class="message" href="#SCI_GETLINEVISIBLE">SCI_GETLINEVISIBLE(int line)</a><br /> - <a class="message" href="#SCI_SETFOLDLEVEL">SCI_SETFOLDLEVEL(int line, int level)</a><br /> - <a class="message" href="#SCI_GETFOLDLEVEL">SCI_GETFOLDLEVEL(int line)</a><br /> - <a class="message" href="#SCI_SETFOLDFLAGS">SCI_SETFOLDFLAGS(int flags)</a><br /> - <a class="message" href="#SCI_GETLASTCHILD">SCI_GETLASTCHILD(int line, int level)</a><br /> - <a class="message" href="#SCI_GETFOLDPARENT">SCI_GETFOLDPARENT(int line)</a><br /> - <a class="message" href="#SCI_SETFOLDEXPANDED">SCI_SETFOLDEXPANDED(int line, bool - expanded)</a><br /> - <a class="message" href="#SCI_GETFOLDEXPANDED">SCI_GETFOLDEXPANDED(int line)</a><br /> - <a class="message" href="#SCI_TOGGLEFOLD">SCI_TOGGLEFOLD(int line)</a><br /> - <a class="message" href="#SCI_ENSUREVISIBLE">SCI_ENSUREVISIBLE(int line)</a><br /> - <a class="message" href="#SCI_ENSUREVISIBLEENFORCEPOLICY">SCI_ENSUREVISIBLEENFORCEPOLICY(int - line)</a><br /> - </code> - - <p><b id="SCI_VISIBLEFROMDOCLINE">SCI_VISIBLEFROMDOCLINE(int docLine)</b><br /> - When some lines are folded, then a particular line in the document may be displayed at a - different position to its document position. If no lines are folded, this message returns - <code>docLine</code>. Otherwise, this returns the display line (counting the very first visible - line as 0). The display line of an invisible line is the same as the previous visible line. The - display line number of the first line in the document is 0. If there is folding and - <code>docLine</code> is outside the range of lines in the document, the return value is -1. - Lines can occupy more than one display line if they wrap.</p> - - <p><b id="SCI_DOCLINEFROMVISIBLE">SCI_DOCLINEFROMVISIBLE(int displayLine)</b><br /> - When some lines are hidden, then a particular line in the document may be displayed at a - different position to its document position. This message returns the document line number that - corresponds to a display line (counting the display line of the first line in the document as - 0). If <code>displayLine</code> is less than or equal to 0, the result is 0. If - <code>displayLine</code> is greater than or equal to the number of displayed lines, the result - is the number of lines in the document.</p> - - <p><b id="SCI_SHOWLINES">SCI_SHOWLINES(int lineStart, int lineEnd)</b><br /> - <b id="SCI_HIDELINES">SCI_HIDELINES(int lineStart, int lineEnd)</b><br /> - <b id="SCI_GETLINEVISIBLE">SCI_GETLINEVISIBLE(int line)</b><br /> - The first two messages mark a range of lines as visible or invisible and then redraw the - display. The third message reports on the visible state of a line and returns 1 if it is - visible and 0 if it is not visible. These messages have no effect on fold levels or fold - flags.</p> - - <p><b id="SCI_SETFOLDLEVEL">SCI_SETFOLDLEVEL(int line, int level)</b><br /> - <b id="SCI_GETFOLDLEVEL">SCI_GETFOLDLEVEL(int line)</b><br /> - These two messages set and get a 32-bit value that contains the fold level of a line and some - flags associated with folding. The fold level is a number in the range 0 to - <code>SC_FOLDLEVELNUMBERMASK</code> (4095). However, the initial fold level is set to - <code>SC_FOLDLEVELBASE</code> (1024) to allow unsigned arithmetic on folding levels. There are - two addition flag bits. <code>SC_FOLDLEVELWHITEFLAG</code> indicates that the line is blank and - allows it to be treated slightly different then its level may indicate. For example, blank - lines should generally not be fold points and will be considered part of the preceding section even though - they may have a lesser fold level. - <code>SC_FOLDLEVELHEADERFLAG</code> indicates that - the line is a header (fold point).</p> - - <p>Use <code>SCI_GETFOLDLEVEL(line) & SC_FOLDLEVELNUMBERMASK</code> to get the fold level - of a line. Likewise, use <code>SCI_GETFOLDLEVEL(line) & SC_FOLDLEVEL*FLAG</code> to get the - state of the flags. To set the fold level you must or in the associated flags. For instance, to - set the level to <code>thisLevel</code> and mark a line as being a fold point use: - <code>SCI_SETFOLDLEVEL(line, thisLevel | SC_FOLDLEVELHEADERFLAG)</code>.</p> - If you use a lexer, you should not need to use <code>SCI_SETFOLDLEVEL</code> as this is far - better handled by the lexer. You will need to use <code>SCI_GETFOLDLEVEL</code> to decide how - to handle user folding requests. If you do change the fold levels, the folding margin will - update to match your changes. - - <p><b id="SCI_SETFOLDFLAGS">SCI_SETFOLDFLAGS(int flags)</b><br /> - In addition to showing markers in the folding margin, you can indicate folds to the user by - drawing lines in the text area. The lines are drawn in the foreground colour set for <a - class="message" href="#StyleDefinition"><code>STYLE_DEFAULT</code></a>. Bits set in - <code>flags</code> determine where folding lines are drawn:<br /> - </p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Fold flags"> - <tbody> - <tr> - <th align="center">Value</th> - - <th align="left">Effect</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="center">1</td> - - <td align="left">Experimental - draw boxes if expanded</td> - </tr> - - <tr> - <td align="center">2</td> - - <td align="left">Draw above if expanded</td> - </tr> - - <tr> - <td align="center">4</td> - - <td align="left">Draw above if not expanded</td> - </tr> - - <tr> - <td align="center">8</td> - - <td align="left">Draw below if expanded</td> - </tr> - - <tr> - <td align="center">16</td> - - <td align="left">Draw below if not expanded</td> - </tr> - - <tr> - <td align="center">64</td> - - <td align="left">display hexadecimal fold levels in line margin to aid debugging of - folding. This feature needs to be redesigned to be sensible.</td> - </tr> - </tbody> - </table> - - <p>This message causes the display to redraw.</p> - - <p><b id="SCI_GETLASTCHILD">SCI_GETLASTCHILD(int startLine, int level)</b><br /> - This message searches for the next line after <code>startLine</code>, that has a folding level - that is less than or equal to <code>level</code> and then returns the previous line number. If - you set <code>level</code> to -1, <code>level</code> is set to the folding level of line - <code>startLine</code>. If <code>from</code> is a fold point, <code>SCI_GETLASTCHILD(from, - -1)</code> returns the last line that would be in made visible or hidden by toggling the fold - state.</p> - - <p><b id="SCI_GETFOLDPARENT">SCI_GETFOLDPARENT(int startLine)</b><br /> - This message returns the line number of the first line before <code>startLine</code> that is - marked as a fold point with <code>SC_FOLDLEVELHEADERFLAG</code> and has a fold level less than - the <code>startLine</code>. If no line is found, or if the header flags and fold levels are - inconsistent, the return value is -1.</p> - - <p><b id="SCI_TOGGLEFOLD">SCI_TOGGLEFOLD(int line)</b><br /> - Each fold point may be either expanded, displaying all its child lines, or contracted, hiding - all the child lines. This message toggles the folding state of the given line as long as it has - the <code>SC_FOLDLEVELHEADERFLAG</code> set. This message takes care of folding or expanding - all the lines that depend on the line. The display updates after this message.</p> - - <p><b id="SCI_SETFOLDEXPANDED">SCI_SETFOLDEXPANDED(int line, bool expanded)</b><br /> - <b id="SCI_GETFOLDEXPANDED">SCI_GETFOLDEXPANDED(int line)</b><br /> - These messages set and get the expanded state of a single line. The set message has no effect - on the visible state of the line or any lines that depend on it. It does change the markers in - the folding margin. If you ask for the expansion state of a line that is outside the document, - the result is <code>false</code> (0).</p> - - <p>If you just want to toggle the fold state of one line and handle all the lines that are - dependent on it, it is much easier to use <code>SCI_TOGGLEFOLD</code>. You would use the - <code>SCI_SETFOLDEXPANDED</code> message to process many folds without updating the display - until you had finished. See <code>SciTEBase::FoldAll()</code> and - <code>SciTEBase::Expand()</code> for examples of the use of these messages.</p> - - <p><b id="SCI_ENSUREVISIBLE">SCI_ENSUREVISIBLE(int line)</b><br /> - <b id="SCI_ENSUREVISIBLEENFORCEPOLICY">SCI_ENSUREVISIBLEENFORCEPOLICY(int line)</b><br /> - A line may be hidden because more than one of its parent lines is contracted. Both these - message travels up the fold hierarchy, expanding any contracted folds until they reach the top - level. The line will then be visible. If you use <code>SCI_ENSUREVISIBLEENFORCEPOLICY</code>, - the vertical caret policy set by <a class="message" - href="#SCI_SETVISIBLEPOLICY"><code>SCI_SETVISIBLEPOLICY</code></a> is then applied.</p> - - <h2 id="LineWrapping">Line wrapping</h2> - - <code><a class="message" href="#SCI_SETWRAPMODE">SCI_SETWRAPMODE(int wrapMode)</a><br /> - <a class="message" href="#SCI_GETWRAPMODE">SCI_GETWRAPMODE</a><br /> - <a class="message" href="#SCI_SETWRAPVISUALFLAGS">SCI_SETWRAPVISUALFLAGS(int wrapVisualFlags)</a><br /> - <a class="message" href="#SCI_GETWRAPVISUALFLAGS">SCI_GETWRAPVISUALFLAGS</a><br /> - <a class="message" href="#SCI_SETWRAPSTARTINDENT">SCI_SETWRAPSTARTINDENT(int indent)</a><br /> - <a class="message" href="#SCI_GETWRAPSTARTINDENT">SCI_GETWRAPSTARTINDENT</a><br /> - <a class="message" href="#SCI_SETLAYOUTCACHE">SCI_SETLAYOUTCACHE(int cacheMode)</a><br /> - <a class="message" href="#SCI_GETLAYOUTCACHE">SCI_GETLAYOUTCACHE</a><br /> - <a class="message" href="#SCI_LINESSPLIT">SCI_LINESSPLIT(int pixelWidth)</a><br /> - <a class="message" href="#SCI_LINESJOIN">SCI_LINESJOIN</a><br /> - <a class="message" href="#SCI_WRAPCOUNT">SCI_WRAPCOUNT(int docLine)</a><br /> - </code> - - <p>By default, Scintilla does not wrap lines of text. If you enable line wrapping, lines wider - than the window width are continued on the following lines. Lines are broken after space or tab - characters or between runs of different styles. If this is not possible because a word in one - style is wider than the window then the break occurs after the last character that completely - fits on the line. The horizontal scroll bar does not appear when wrap mode is on.</p> - - <p>For wrapped lines Scintilla can draw visual flags (little arrows) at end of a a subline of a - wrapped line and at begin of the next subline. These can be enabled individually, but if Scintilla - draws the visual flag at begin of the next subline this subline will be indented by one char. - Independent from drawing a visual flag at the begin the subline can have an indention.</p> - - <p>Much of the time used by Scintilla is spent on laying out and drawing text. The same text - layout calculations may be performed many times even when the data used in these calculations - does not change. To avoid these unnecessary calculations in some circumstances, the line layout - cache can store the results of the calculations. The cache is invalidated whenever the - underlying data, such as the contents or styling of the document changes. Caching the layout of - the whole document has the most effect, making dynamic line wrap as much as 20 times faster but - this requires 7 times the memory required by the document contents plus around 80 bytes per - line.</p> - - <p>Wrapping is not performed immediately there is a change but is delayed until the display - is redrawn. This delay improves peformance by allowing a set of changes to be performed - and then wrapped and displayed once. Because of this, some operations may not occur as - expected. If a file is read and the scroll position moved to a particular line in the text, - such as occurs when a container tries to restore a previous editing session, then - the scroll position will have been determined before wrapping so an unexpected range - of text will be displayed. To scroll to the position correctly, delay the scroll until the - wrapping has been performed by waiting for an initial - <a class="message" href="#SCN_PAINTED">SCN_PAINTED</a> notification.</p> - - <p><b id="SCI_SETWRAPMODE">SCI_SETWRAPMODE(int wrapMode)</b><br /> - <b id="SCI_GETWRAPMODE">SCI_GETWRAPMODE</b><br /> - Set wrapMode to <code>SC_WRAP_WORD</code> (1) to enable wrapping - on word boundaries, <code>SC_WRAP_CHAR</code> (2) to enable wrapping - between any characters, and to <code>SC_WRAP_NONE</code> (0) to disable line - wrapping. <code>SC_WRAP_CHAR</code> is preferred to - <code>SC_WRAP_WORD</code> for Asian languages where there is no white space - between words.</p> - - - <p><b id="SCI_SETWRAPVISUALFLAGS">SCI_SETWRAPVISUALFLAGS(int wrapVisualFlags)</b><br /> - <b id="SCI_GETWRAPVISUALFLAGS">SCI_GETWRAPVISUALFLAGS</b><br /> - You can enable the drawing of visual flags to indicate a line is wrapped. Bits set in - wrapVisualFlags determine which visual flags are drawn. - - <table cellpadding="1" cellspacing="2" border="0" summary="Wrap visual flags"> - <tbody> - <tr> - <th align="left">Symbol</th> - <th>Value</th> - <th align="left">Effect</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>SC_WRAPVISUALFLAG_NONE</code></td> - <td align="center">0</td> - <td>No visual flags</td> - </tr> - - <tr> - <td align="left"><code>SC_WRAPVISUALFLAG_END</code></td> - <td align="center">1</td> - <td>Visual flag at end of subline of a wrapped line.</td> - </tr> - - <tr> - <td align="left"><code>SC_WRAPVISUALFLAG_START</code></td> - <td align="center">2</td> - <td>Visual flag at begin of subline of a wrapped line.<br /> - Subline is indented by at least 1 to make room for the flag.<br /> - </td> - </tr> - </tbody> - </table> - - <p><b id="SCI_SETWRAPVISUALFLAGSLOCATION">SCI_SETWRAPVISUALFLAGSLOCATION(int wrapVisualFlagsLocation)</b><br /> - <b id="SCI_GETWRAPVISUALFLAGSLOCATION">SCI_GETWRAPVISUALFLAGSLOCATION</b><br /> - You can set wether the visual flags to indicate a line is wrapped are drawn near the border or near the text. - Bits set in wrapVisualFlagsLocation set the location to near the text for the corresponding visual flag. - - <table cellpadding="1" cellspacing="2" border="0" summary="Wrap visual flags locations"> - <tbody> - <tr> - <th align="left">Symbol</th> - <th>Value</th> - <th align="left">Effect</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>SC_WRAPVISUALFLAGLOC_DEFAULT</code></td> - <td align="center">0</td> - <td>Visual flags drawn near border</td> - </tr> - - <tr> - <td align="left"><code>SC_WRAPVISUALFLAGLOC_END_BY_TEXT</code></td> - <td align="center">1</td> - <td>Visual flag at end of subline drawn near text</td> - </tr> - - <tr> - <td align="left"><code>SC_WRAPVISUALFLAGLOC_START_BY_TEXT</code></td> - <td align="center">2</td> - <td>Visual flag at begin of subline drawn near text</td> - </tr> - </tbody> - </table> - - <br /> - - <p><b id="SCI_SETWRAPSTARTINDENT">SCI_SETWRAPSTARTINDENT(int indent)</b><br /> - <b id="SCI_GETWRAPSTARTINDENT">SCI_GETWRAPSTARTINDENT</b><br /> - <code>SCI_SETWRAPSTARTINDENT</code> sets the size of indentation of sublines for - wrapped lines in terms of the width of a space in - <a class="message" href="#StyleDefinition"><code>STYLE_DEFAULT</code></a>. - There are no limits on indent sizes, but values less than 0 or large values may have - undesirable effects.<br /> - The indention of sublines is independent of visual flags, but if - <code>SC_WRAPVISUALFLAG_START</code> is set an indent of at least 1 is used. - </p> - - <p><b id="SCI_SETLAYOUTCACHE">SCI_SETLAYOUTCACHE(int cacheMode)</b><br /> - <b id="SCI_GETLAYOUTCACHE">SCI_GETLAYOUTCACHE</b><br /> - You can set <code>cacheMode</code> to one of the symbols in the table:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Line caching styles"> - <tbody> - <tr> - <th align="left">Symbol</th> - - <th>Value</th> - - <th align="left">Layout cached for these lines</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>SC_CACHE_NONE</code></td> - - <td align="center">0</td> - - <td>No lines are cached.</td> - </tr> - - <tr> - <td align="left"><code>SC_CACHE_CARET</code></td> - - <td align="center">1</td> - - <td>The line containing the text caret. This is the default.</td> - </tr> - - <tr> - <td align="left"><code>SC_CACHE_PAGE</code></td> - - <td align="center">2</td> - - <td>Visible lines plus the line containing the caret.</td> - </tr> - - <tr> - <td align="left"><code>SC_CACHE_DOCUMENT</code></td> - - <td align="center">3</td> - - <td>All lines in the document.</td> - </tr> - </tbody> - </table> - <br /> - - <p><b id="SCI_LINESSPLIT">SCI_LINESSPLIT(int pixelWidth)</b><br /> - Split a range of lines indicated by the target into lines that are at most pixelWidth wide. - Splitting occurs on word boundaries wherever possible in a similar manner to line wrapping. - When <code>pixelWidth</code> is 0 then the width of the window is used. - </p> - - <p><b id="SCI_LINESJOIN">SCI_LINESJOIN</b><br /> - Join a range of lines indicated by the target into one line by - removing line end characters. - Where this would lead to no space between words, an extra space is inserted. - </p> - - <p><b id="SCI_WRAPCOUNT">SCI_WRAPCOUNT(int docLine)</b><br /> - Document lines can occupy more than one display line if they wrap and this - returns the number of display lines needed to wrap a document line.</p> - - <h2 id="Zooming">Zooming</h2> - - <p>Scintilla incorporates a "zoom factor" that lets you make all the text in the document - larger or smaller in steps of one point. The displayed point size never goes below 2, whatever - zoom factor you set. You can set zoom factors in the range -10 to +20 points.</p> - <code><a class="message" href="#SCI_ZOOMIN">SCI_ZOOMIN</a><br /> - <a class="message" href="#SCI_ZOOMOUT">SCI_ZOOMOUT</a><br /> - <a class="message" href="#SCI_SETZOOM">SCI_SETZOOM(int zoomInPoints)</a><br /> - <a class="message" href="#SCI_GETZOOM">SCI_GETZOOM</a><br /> - </code> - - <p><b id="SCI_ZOOMIN">SCI_ZOOMIN</b><br /> - <b id="SCI_ZOOMOUT">SCI_ZOOMOUT</b><br /> - <code>SCI_ZOOMIN</code> increases the zoom factor by one point if the current zoom factor is - less than 20 points. <code>SCI_ZOOMOUT</code> decreases the zoom factor by one point if the - current zoom factor is greater than -10 points.</p> - - <p><b id="SCI_SETZOOM">SCI_SETZOOM(int zoomInPoints)</b><br /> - <b id="SCI_GETZOOM">SCI_GETZOOM</b><br /> - These messages let you set and get the zoom factor directly. There is no limit set on the - factors you can set, so limiting yourself to -10 to +20 to match the incremental zoom functions - is a good idea.</p> - - <h2 id="LongLines">Long lines</h2> - - <p>You can choose to mark lines that exceed a given length by drawing a vertical line or by - colouring the background of characters that exceed the set length.</p> - <code><a class="message" href="#SCI_SETEDGEMODE">SCI_SETEDGEMODE(int mode)</a><br /> - <a class="message" href="#SCI_GETEDGEMODE">SCI_GETEDGEMODE</a><br /> - <a class="message" href="#SCI_SETEDGECOLUMN">SCI_SETEDGECOLUMN(int column)</a><br /> - <a class="message" href="#SCI_GETEDGECOLUMN">SCI_GETEDGECOLUMN</a><br /> - <a class="message" href="#SCI_SETEDGECOLOUR">SCI_SETEDGECOLOUR(int colour)</a><br /> - <a class="message" href="#SCI_GETEDGECOLOUR">SCI_GETEDGECOLOUR</a><br /> - </code> - - <p><b id="SCI_SETEDGEMODE">SCI_SETEDGEMODE(int edgeMode)</b><br /> - <b id="SCI_GETEDGEMODE">SCI_GETEDGEMODE</b><br /> - These two messages set and get the mode used to display long lines. You can set one of the - values in the table:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Long line styles"> - <tbody> - <tr> - <th align="left">Symbol</th> - - <th>Value</th> - - <th align="left">Long line display mode</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>EDGE_NONE</code></td> - - <td align="center">0</td> - - <td>Long lines are not marked. This is the default state.</td> - </tr> - - <tr> - <td align="left"><code>EDGE_LINE</code></td> - - <td align="center">1</td> - - <td>A vertical line is drawn at the column number set by <code>SCI_SETEDGECOLUMN</code>. - This works well for monospaced fonts. The line is drawn at a position based on the width - of a space character in <a class="message" - href="#StyleDefinition"><code>STYLE_DEFAULT</code></a>, so it may not work very well if - your styles use proportional fonts or if your style have varied font sizes or you use a - mixture of bold, italic and normal text. .</td> - </tr> - - <tr> - <td align="left"><code>EDGE_BACKGROUND</code></td> - - <td align="center">2</td> - - <td>The background colour of characters after the column limit is changed to the colour - set by <code>SCI_SETEDGECOLOUR</code>. This is recommended for proportional fonts.</td> - </tr> - </tbody> - </table> - <br /> - <br /> - - - <p><b id="SCI_SETEDGECOLUMN">SCI_SETEDGECOLUMN(int column)</b><br /> - <b id="SCI_GETEDGECOLUMN">SCI_GETEDGECOLUMN</b><br /> - These messages set and get the column number at which to display the long line marker. When - drawing lines, the column sets a position in units of the width of a space character in - <code>STYLE_DEFAULT</code>. When setting the background colour, the column is a character count - (allowing for tabs) into the line.</p> - - <p><b id="SCI_SETEDGECOLOUR">SCI_SETEDGECOLOUR(int <a class="jump" - href="#colour">colour</a>)</b><br /> - <b id="SCI_GETEDGECOLOUR">SCI_GETEDGECOLOUR</b><br /> - These messages set and get the colour of the marker used to show that a line has exceeded the - length set by <code>SCI_SETEDGECOLUMN</code>.</p> - - <h2 id="Lexer">Lexer</h2> - - <p>If you define the symbol <code>SCI_LEXER</code> when building Scintilla, (this is sometimes - called the SciLexer version of Scintilla), lexing support for a wide range programming - languages is included and the messages in this section are supported. If you want to set - styling and fold points for an unsupported language you can either do this in the container or - better still, write your own lexer following the pattern of one of the existing ones.</p> - - <p>Scintilla also supports external lexers. These are DLLs (on Windows) or .so modules (on GTK+/Linux) that export four - functions: <code>GetLexerCount</code>, <code>GetLexerName</code>, <code>Lex</code> and - <code>Fold</code>. See <code>externalLexer.cxx</code> for more.</p> - <code><a class="message" href="#SCI_SETLEXER">SCI_SETLEXER(int lexer)</a><br /> - <a class="message" href="#SCI_GETLEXER">SCI_GETLEXER</a><br /> - <a class="message" href="#SCI_SETLEXERLANGUAGE">SCI_SETLEXERLANGUAGE(<unused>, char - *name)</a><br /> - <a class="message" href="#SCI_LOADLEXERLIBRARY">SCI_LOADLEXERLIBRARY(<unused>, char - *path)</a><br /> - <a class="message" href="#SCI_COLOURISE">SCI_COLOURISE(int start, int end)</a><br /> - <a class="message" href="#SCI_SETPROPERTY">SCI_SETPROPERTY(const char *key, const char *value)</a><br /> - <a class="message" href="#SCI_GETPROPERTY">SCI_GETPROPERTY(const char *key, char *value)</a><br /> - <a class="message" href="#SCI_GETPROPERTYEXPANDED">SCI_GETPROPERTYEXPANDED(const char *key, char *value)</a><br /> - <a class="message" href="#SCI_GETPROPERTYINT">SCI_GETPROPERTYINT(const char *key, int default)</a><br /> - <a class="message" href="#SCI_SETKEYWORDS">SCI_SETKEYWORDS(int keyWordSet, const char - *keyWordList)</a><br /> - <a class="message" href="#SCI_GETSTYLEBITSNEEDED">SCI_GETSTYLEBITSNEEDED</a> - <br /> - </code> - - <p><b id="SCI_SETLEXER">SCI_SETLEXER(int lexer)</b><br /> - <b id="SCI_GETLEXER">SCI_GETLEXER</b><br /> - You can select the lexer to use with an integer code from the <code>SCLEX_*</code> enumeration - in <code>Scintilla.h</code>. There are two codes in this sequence that do not use lexers: - <code>SCLEX_NULL</code> to select no lexing action and <code>SCLEX_CONTAINER</code> which sends - the <code><a class="message" href="#SCN_STYLENEEDED">SCN_STYLENEEDED</a></code> notification to - the container whenever a range of text needs to be styled. You cannot use the - <code>SCLEX_AUTOMATIC</code> value; this identifies additional external lexers that Scintilla - assigns unused lexer numbers to.</p> - - <p><b id="SCI_SETLEXERLANGUAGE">SCI_SETLEXERLANGUAGE(<unused>, const char *name)</b><br /> - This message lets you select a lexer by name, and is the only method if you are using an - external lexer or if you have written a lexer module for a language of your own and do not wish - to assign it an explicit lexer number. To select an existing lexer, set <code>name</code> to - match the (case sensitive) name given to the module, for example "ada" or "python", not "Ada" - or "Python". To locate the name for the built-in lexers, open the relevant - <code>Lex*.cxx</code> file and search for <code>LexerModule</code>. The third argument in the - <code>LexerModule</code> constructor is the name to use.</p> - - <p>To test if your lexer assignment worked, use <a class="message" - href="#SCI_GETLEXER"><code>SCI_GETLEXER</code></a> before and after setting the new lexer to - see if the lexer number changed.</p> - - <p><b id="SCI_LOADLEXERLIBRARY">SCI_LOADLEXERLIBRARY(<unused>, const char *path)</b><br /> - Load a lexer implemented in a shared library. This is a .so file on GTK+/Linux or a .DLL file on Windows. - </p> - - <p><b id="SCI_COLOURISE">SCI_COLOURISE(int startPos, int endPos)</b><br /> - This requests the current lexer or the container (if the lexer is set to - <code>SCLEX_CONTAINER</code>) to style the document between <code>startPos</code> and - <code>endPos</code>. If <code>endPos</code> is -1, the document is styled from - <code>startPos</code> to the end. If the <code>"fold"</code> property is set to - <code>"1"</code> and your lexer or container supports folding, fold levels are also set. This - message causes a redraw.</p> - - <p><b id="SCI_SETPROPERTY">SCI_SETPROPERTY(const char *key, const char *value)</b><br /> - You can communicate settings to lexers with keyword:value string pairs. There is no limit to - the number of keyword pairs you can set, other than available memory. <code>key</code> is a - case sensitive keyword, <code>value</code> is a string that is associated with the keyword. If - there is already a value string associated with the keyword, it is replaced. If you pass a zero - length string, the message does nothing. Both <code>key</code> and <code>value</code> are used - without modification; extra spaces at the beginning or end of <code>key</code> are - significant.</p> - - <p>The <code>value</code> string can refer to other keywords. For example, - <code>SCI_SETPROPERTY("foldTimes10", "$(fold)0")</code> stores the string - <code>"$(fold)0"</code>, but when this is accessed, the <code>$(fold)</code> is replaced by the - value of the <code>"fold"</code> keyword (or by nothing if this keyword does not exist).</p> - - <p>Currently the "fold" property is defined for most of the lexers to set the fold structure if - set to "1". <code>SCLEX_PYTHON</code> understands <code>"tab.timmy.whinge.level"</code> as a - setting that determines how to indicate bad indentation. Most keywords have values that are - interpreted as integers. Search the lexer sources for <code>GetPropertyInt</code> to see how - properties are used.</p> - - <p><b id="SCI_GETPROPERTY">SCI_GETPROPERTY(const char *key, char *value)</b><br /> - Lookup a keyword:value pair using the specified key; if found, copy the value to the user-supplied - buffer and return the length (not including the terminating 0). If not found, copy an empty string - to the buffer and return 0.</p> - - <p>Note that "keyword replacement" as described in <a class="message" href="#SCI_SETPROPERTY"> - <code>SCI_SETPROPERTY</code></a> will not be performed.</p> - - <p>If the value argument is 0 then the length that should be allocated to store the value is returned; - again, the terminating 0 is not included.</p> - - <p><b id="SCI_GETPROPERTYEXPANDED">SCI_GETPROPERTYEXPANDED(const char *key, char *value)</b><br /> - Lookup a keyword:value pair using the specified key; if found, copy the value to the user-supplied - buffer and return the length (not including the terminating 0). If not found, copy an empty string - to the buffer and return 0.</p> - - <p>Note that "keyword replacement" as described in <a class="message" href="#SCI_SETPROPERTY"> - <code>SCI_SETPROPERTY</code></a> will be performed.</p> - - <p>If the value argument is 0 then the length that should be allocated to store the value (including any indicated keyword replacement) - is returned; again, the terminating 0 is not included.</p> - - <p><b id="SCI_GETPROPERTYINT">SCI_GETPROPERTYINT(const char *key, int default)</b><br /> - Lookup a keyword:value pair using the specified key; if found, interpret the value as an integer and return it. - If not found (or the value is an empty string) then return the supplied default. If the keyword:value pair is found but is not - a number, then return 0.</p> - - <p>Note that "keyword replacement" as described in <a class="message" href="#SCI_SETPROPERTY"> - <code>SCI_SETPROPERTY</code></a> will be performed before any numeric interpretation.</p> - - <p><b id="SCI_SETKEYWORDS">SCI_SETKEYWORDS(int keyWordSet, const char *keyWordList)</b><br /> - You can set up to 9 lists of keywords for use by the current lexer. This was increased from 6 - at revision 1.50. <code>keyWordSet</code> can be 0 to 8 (actually 0 to <code>KEYWORDSET_MAX</code>) - and selects which keyword list to replace. <code>keyWordList</code> is a list of keywords - separated by spaces, tabs, <code>"\n"</code> or <code>"\r"</code> or any combination of these. - It is expected that the keywords will be composed of standard ASCII printing characters, - but there is nothing to stop you using any non-separator character codes from 1 to 255 - (except common sense).</p> - - <p>How these keywords are used is entirely up to the lexer. Some languages, such as HTML may - contain embedded languages, VBScript and JavaScript are common for HTML. For HTML, key word set - 0 is for HTML, 1 is for JavaScript and 2 is for VBScript, 3 is for Python, 4 is for PHP and 5 - is for SGML and DTD keywords. Review the lexer code to see examples of keyword list. A fully - conforming lexer sets the fourth argument of the <code>LexerModule</code> constructor to be a - list of strings that describe the uses of the keyword lists.</p> - - <p>Alternatively, you might use set 0 for general keywords, set 1 for keywords that cause - indentation and set 2 for keywords that cause unindentation. Yet again, you might have a simple - lexer that colours keywords and you could change languages by changing the keywords in set 0. - There is nothing to stop you building your own keyword lists into the lexer, but this means - that the lexer must be rebuilt if more keywords are added.</p> - - <p><b id="SCI_GETSTYLEBITSNEEDED">SCI_GETSTYLEBITSNEEDED</b><br /> - Retrieve the number of bits the current lexer needs for styling. This should normally be the argument - to <a class="message" href="#SCI_SETSTYLEBITS">SCI_SETSTYLEBITS</a>. - </p> - - <h2 id="Notifications">Notifications</h2> - - <p>Notifications are sent (fired) from the Scintilla control to its container when an event has - occurred that may interest the container. Notifications are sent using the - <code>WM_NOTIFY</code> message on Windows and the "notify" signal on GTK+. The container is - passed a <code>SCNotification</code> structure containing information about the event.</p> -<pre id="SCNotification"> -struct NotifyHeader { // This matches the Win32 NMHDR structure - void *hwndFrom; // environment specific window handle/pointer - uptr_t idFrom; // CtrlID of the window issuing the notification - unsigned int code; // The SCN_* notification code -}; - -struct SCNotification { - struct NotifyHeader nmhdr; - int position; - // SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_DWELLSTART, - // SCN_DWELLEND, SCN_CALLTIPCLICK, - // SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK - int ch; // SCN_CHARADDED, SCN_KEY - int modifiers; // SCN_KEY, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK - int modificationType; // SCN_MODIFIED - const char *text; // SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION - int length; // SCN_MODIFIED - int linesAdded; // SCN_MODIFIED - int message; // SCN_MACRORECORD - uptr_t wParam; // SCN_MACRORECORD - sptr_t lParam; // SCN_MACRORECORD - int line; // SCN_MODIFIED, SCN_DOUBLECLICK - int foldLevelNow; // SCN_MODIFIED - int foldLevelPrev; // SCN_MODIFIED - int margin; // SCN_MARGINCLICK - int listType; // SCN_USERLISTSELECTION, SCN_AUTOCSELECTION - int x; // SCN_DWELLSTART, SCN_DWELLEND - int y; // SCN_DWELLSTART, SCN_DWELLEND -}; -</pre> - - <p>The notification messages that your container can choose to handle and the messages - associated with them are:</p> - <code><a class="message" href="#SCN_STYLENEEDED">SCN_STYLENEEDED</a><br /> - <a class="message" href="#SCN_CHARADDED">SCN_CHARADDED</a><br /> - <a class="message" href="#SCN_SAVEPOINTREACHED">SCN_SAVEPOINTREACHED</a><br /> - <a class="message" href="#SCN_SAVEPOINTLEFT">SCN_SAVEPOINTLEFT</a><br /> - <a class="message" href="#SCN_MODIFYATTEMPTRO">SCN_MODIFYATTEMPTRO</a><br /> - <a class="message" href="#SCN_KEY">SCN_KEY</a><br /> - <a class="message" href="#SCN_DOUBLECLICK">SCN_DOUBLECLICK</a><br /> - <a class="message" href="#SCN_UPDATEUI">SCN_UPDATEUI</a><br /> - <a class="message" href="#SCN_MODIFIED">SCN_MODIFIED</a><br /> - <a class="message" href="#SCN_MACRORECORD">SCN_MACRORECORD</a><br /> - <a class="message" href="#SCN_MARGINCLICK">SCN_MARGINCLICK</a><br /> - <a class="message" href="#SCN_NEEDSHOWN">SCN_NEEDSHOWN</a><br /> - <a class="message" href="#SCN_PAINTED">SCN_PAINTED</a><br /> - <a class="message" href="#SCN_USERLISTSELECTION">SCN_USERLISTSELECTION</a><br /> - <a class="message" href="#SCN_URIDROPPED">SCN_URIDROPPED</a><br /> - <a class="message" href="#SCN_DWELLSTART">SCN_DWELLSTART</a><br /> - <a class="message" href="#SCN_DWELLEND">SCN_DWELLEND</a><br /> - <a class="message" href="#SCN_ZOOM">SCN_ZOOM</a><br /> - <a class="message" href="#SCN_HOTSPOTCLICK">SCN_HOTSPOTCLICK</a><br /> - <a class="message" href="#SCN_HOTSPOTDOUBLECLICK">SCN_HOTSPOTDOUBLECLICK</a><br /> - <a class="message" href="#SCN_CALLTIPCLICK">SCN_CALLTIPCLICK</a><br /> - <a class="message" href="#SCN_AUTOCSELECTION">SCN_AUTOCSELECTION</a><br /> - </code> - - <p>The following <code>SCI_*</code> messages are associated with these notifications:</p> - <code><a class="message" href="#SCI_SETMODEVENTMASK">SCI_SETMODEVENTMASK(int - eventMask)</a><br /> - <a class="message" href="#SCI_GETMODEVENTMASK">SCI_GETMODEVENTMASK</a><br /> - <a class="message" href="#SCI_SETMOUSEDWELLTIME">SCI_SETMOUSEDWELLTIME</a><br /> - <a class="message" href="#SCI_GETMOUSEDWELLTIME">SCI_GETMOUSEDWELLTIME</a><br /> - </code> - - <p>The following additional notifications are sent using the <code>WM_COMMAND</code> message on - Windows and the "Command" signal on GTK+. This emulates the Windows Edit control. Only the lower - 16 bits of the control's ID is passed in these notifications.</p> - <code><a class="message" href="#SCEN_CHANGE">SCEN_CHANGE</a><br /> - <a class="message" href="#SCEN_SETFOCUS">SCEN_SETFOCUS</a><br /> - <a class="message" href="#SCEN_KILLFOCUS">SCEN_KILLFOCUS</a><br /> - </code> - - <p><b id="SCN_STYLENEEDED">SCN_STYLENEEDED</b><br /> - If you used <code><a class="message" - href="#SCI_SETLEXER">SCI_SETLEXER</a>(SCLEX_CONTAINER)</code> to make the container act as the - lexer, you will receive this notification when Scintilla is about to display or print text that - requires styling. You are required to style the text from the line that contains the position - returned by <a class="message" href="#SCI_GETENDSTYLED"><code>SCI_GETENDSTYLED</code></a> up to - the position passed in <code>SCNotification.position</code>. Symbolically, you need code of the - form:</p> -<pre> - startPos = <a class="message" href="#SCI_GETENDSTYLED">SCI_GETENDSTYLED</a>() - lineNumber = <a class="message" -href="#SCI_LINEFROMPOSITION">SCI_LINEFROMPOSITION</a>(startPos); - startPos = <a class="message" -href="#SCI_POSITIONFROMLINE">SCI_POSITIONFROMLINE</a>(lineNumber); - MyStyleRoutine(startPos, SCNotification.position); -</pre> - - <p><b id="SCN_CHARADDED">SCN_CHARADDED</b><br /> - This is sent when the user types an ordinary text character (as opposed to a command - character) that is entered into the text. The container can use this to decide to display a <a - class="jump" href="#CallTips">call tip</a> or an <a class="jump" href="#Autocompletion">auto - completion list</a>. The character is in <code>SCNotification.ch</code>. - This notification is sent before the character has been styled so processing that depends on - styling should instead be performed in the SCN_UPDATEUI notification.</p> - - <p><b id="SCN_SAVEPOINTREACHED">SCN_SAVEPOINTREACHED</b><br /> - <b id="SCN_SAVEPOINTLEFT">SCN_SAVEPOINTLEFT</b><br /> - Sent to the container when the save point is entered or left, allowing the container to - display a "document dirty" indicator and change its menus.<br /> - See also: <a class="message" href="#SCI_SETSAVEPOINT"><code>SCI_SETSAVEPOINT</code></a>, <a - class="message" href="#SCI_GETMODIFY"><code>SCI_GETMODIFY</code></a></p> - - <p><b id="SCN_MODIFYATTEMPTRO">SCN_MODIFYATTEMPTRO</b><br /> - When in read-only mode, this notification is sent to the container if the user tries to change - the text. This can be used to check the document out of a version control system. You can set - the read-only state of a document with <code><a class="message" - href="#SCI_SETREADONLY">SCI_SETREADONLY</a></code>.</p> - - <p><b id="SCN_KEY">SCN_KEY</b><br /> - Reports all keys pressed but not consumed by Scintilla. Used on GTK+ because of - some problems with keyboard focus and is not sent by the Windows version. <code>SCNotification.ch</code> holds the key code and - <code>SCNotification.modifiers</code> holds the modifiers. This notification is sent if the - modifiers include <code>SCMOD_ALT</code> or <code>SCMOD_CTRL</code> and the key code is less - than 256.</p> - - <p><b id="SCN_DOUBLECLICK">SCN_DOUBLECLICK</b><br /> - The mouse button was double clicked in editor. The <code>position</code> field is set to the text position of the - double click and the <code>line</code> field is set to the line of the double click.</p> - - <p><b id="SCN_UPDATEUI">SCN_UPDATEUI</b><br /> - Either the text or styling of the document has changed or the selection range has changed. Now - would be a good time to update any container UI elements that depend on document or view state. - This was previously called <code><a class="message" - href="#SCN_CHECKBRACE">SCN_CHECKBRACE</a></code> because a common use is to check whether the - caret is next to a brace and set highlights on this brace and its corresponding matching brace. - This also replaces <a class="message" href="#SCN_POSCHANGED"><code>SCN_POSCHANGED</code></a>, - which is now deprecated.</p> - - <p><b id="SCN_MODIFIED">SCN_MODIFIED</b><br /> - This notification is sent when the text or styling of the document changes or is about to - change. You can set a mask for the notifications that are sent to the container with <a - class="message" href="#SCI_SETMODEVENTMASK"><code>SCI_SETMODEVENTMASK</code></a>. The - notification structure contains information about what changed, how the change occurred and - whether this changed the number of lines in the document. No modifications may be performed - while in a <code>SCN_MODIFIED</code> event. The <code>SCNotification</code> fields used - are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Modify notification types"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>modificationType</code></td> - - <td align="left">A set of flags that identify the change(s) made. See the next - table.</td> - </tr> - - <tr> - <td align="left"><code>position</code></td> - - <td align="left">Start position of a text or styling change. Set to 0 if not used.</td> - </tr> - - <tr> - <td align="left"><code>length</code></td> - - <td align="left">Length of the change in cells or characters when the text or styling - changes. Set to 0 if not used.</td> - </tr> - - <tr> - <td align="left"><code>linesAdded</code></td> - - <td align="left">Number of added lines. If negative, the number of deleted lines. Set to - 0 if not used or no lines added or deleted.</td> - </tr> - - <tr> - <td align="left"><code>text</code></td> - - <td align="left">Valid for text changes, not for style changes. If we are collecting undo - information this holds a pointer to the text that is handed to the Undo system, otherwise - it is zero. For user performed SC_MOD_BEFOREDELETE the text field is 0 and - for user performed SC_MOD_BEFOREINSERT the text field points to an array of cells, - not bytes and the length is the number of cells.</td> - </tr> - - <tr> - <td align="left"><code>line</code></td> - - <td align="left">The line number at which a fold level or marker change occurred. This is - 0 if unused and may be -1 if more than one line changed.</td> - </tr> - - <tr> - <td align="left"><code>foldLevelNow</code></td> - - <td align="left">The new fold level applied to the line or 0 if this field is - unused.</td> - </tr> - - <tr> - <td align="left"><code>foldLevelPrev</code></td> - - <td align="left">The previous folding level of the line or 0 if this field is - unused.</td> - </tr> - </tbody> - </table> - - <p>The <code>SCNotification.modificationType</code> field has bits set to tell you what has - been done. The <code>SC_MOD_*</code> bits correspond to actions. The - <code>SC_PERFORMED_*</code> bits tell you if the action was done by the user, or the result of - Undo or Redo of a previous action.</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Modify notification type flags"> - <tbody> - <tr> - <th align="left">Symbol</th> - - <th>Value</th> - - <th align="left">Meaning</th> - - <th align="left">SCNotification fields</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>SC_MOD_INSERTTEXT</code></td> - - <td align="center">0x01</td> - - <td>Text has been inserted into the document.</td> - - <td><code>position, length, text, linesAdded</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_DELETETEXT</code></td> - - <td align="center">0x02</td> - - <td>Text has been removed from the document.</td> - - <td><code>position, length, text, linesAdded</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_CHANGESTYLE</code></td> - - <td align="center">0x04</td> - - <td>A style change has occurred.</td> - - <td><code>position, length</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_CHANGEFOLD</code></td> - - <td align="center">0x08</td> - - <td>A folding change has occurred.</td> - - <td><code>line, foldLevelNow, foldLevelPrev</code></td> - </tr> - - <tr> - <td align="left"><code>SC_PERFORMED_USER</code></td> - - <td align="center">0x10</td> - - <td>Information: the operation was done by the user.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_PERFORMED_UNDO</code></td> - - <td align="center">0x20</td> - - <td>Information: this was the result of an Undo.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_PERFORMED_REDO</code></td> - - <td align="center">0x40</td> - - <td>Information: this was the result of a Redo.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_MULTISTEPUNDOREDO</code></td> - - <td align="center">0x80</td> - - <td>This is part of a multi-step Undo or Redo.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_LASTSTEPINUNDOREDO</code></td> - - <td align="center">0x100</td> - - <td>This is the final step in an Undo or Redo.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_CHANGEMARKER</code></td> - - <td align="center">0x200</td> - - <td>One or more markers has changed in a line.</td> - - <td><code>line</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_BEFOREINSERT</code></td> - - <td align="center">0x400</td> - - <td>Text is about to be inserted into the document.</td> - - <td><code>position, if performed by user then text in cells, length in cells</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MOD_BEFOREDELETE</code></td> - - <td align="center">0x800</td> - - <td>Text is about to be deleted from the document.</td> - - <td><code>position, length</code></td> - </tr> - - <tr> - <td align="left"><code>SC_MULTILINEUNDOREDO</code></td> - - <td align="center">0x1000</td> - - <td>This is part of an Undo or Redo with multi-line changes.</td> - - <td>None</td> - </tr> - - <tr> - <td align="left"><code>SC_MODEVENTMASKALL</code></td> - - <td align="center">0x1fff</td> - - <td>This is a mask for all valid flags. This is the default mask state set by <a - class="message" href="#SCI_SETMODEVENTMASK"><code>SCI_SETMODEVENTMASK</code></a>.</td> - - <td>None</td> - </tr> - </tbody> - </table> - - <p><b id="SCEN_CHANGE">SCEN_CHANGE</b><br /> - <code>SCEN_CHANGE</code> (768) is fired when the text (not the style) of the document changes. - This notification is sent using the <code>WM_COMMAND</code> message on Windows and the - "Command" signal on GTK+ as this is the behavior of the standard Edit control - (<code>SCEN_CHANGE</code> has the same value as the Windows Edit control - <code>EN_CHANGE</code>). No other information is sent. If you need more detailed information - use <a class="message" href="#SCN_MODIFIED"><code>SCN_MODIFIED</code></a>. You can filter the - types of changes you are notified about with <a class="message" - href="#SCI_SETMODEVENTMASK"><code>SCI_SETMODEVENTMASK</code></a>.</p> - - <p><b id="SCI_SETMODEVENTMASK">SCI_SETMODEVENTMASK(int eventMask)</b><br /> - <b id="SCI_GETMODEVENTMASK">SCI_GETMODEVENTMASK</b><br /> - These messages set and get an event mask that determines which document change events are - notified to the container with <a class="message" - href="#SCN_MODIFIED"><code>SCN_MODIFIED</code></a> and <a class="message" - href="#SCEN_CHANGE"><code>SCEN_CHANGE</code></a>. For example, a container may decide to see - only notifications about changes to text and not styling changes by calling - <code>SCI_SETMODEVENTMASK(SC_MOD_INSERTTEXT|SC_MOD_DELETETEXT)</code>.</p> - - <p>The possible notification types are the same as the <code>modificationType</code> bit flags - used by <code>SCN_MODIFIED</code>: <code>SC_MOD_INSERTTEXT</code>, - <code>SC_MOD_DELETETEXT</code>, <code>SC_MOD_CHANGESTYLE</code>, - <code>SC_MOD_CHANGEFOLD</code>, <code>SC_PERFORMED_USER</code>, <code>SC_PERFORMED_UNDO</code>, - <code>SC_PERFORMED_REDO</code>, <code>SC_MULTISTEPUNDOREDO</code>, - <code>SC_LASTSTEPINUNDOREDO</code>, <code>SC_MOD_CHANGEMARKER</code>, - <code>SC_MOD_BEFOREINSERT</code>, <code>SC_MOD_BEFOREDELETE</code>, - <code>SC_MULTILINEUNDOREDO</code>, and <code>SC_MODEVENTMASKALL</code>.</p> - - <p><b id="SCEN_SETFOCUS">SCEN_SETFOCUS</b><br /> - <b id="SCEN_KILLFOCUS">SCEN_KILLFOCUS</b><br /> - <code>SCEN_SETFOCUS</code> (512) is fired when Scintilla receives focus and - <code>SCEN_KILLFOCUS</code> (256) when it loses focus. These notifications are sent using the - <code>WM_COMMAND</code> message on Windows and the "Command" signal on GTK+ as this is the - behavior of the standard Edit control. Unfortunately, these codes do not match the Windows Edit - notification codes <code>EN_SETFOCUS</code> (256) and <code>EN_KILLFOCUS</code> (512). It is - now too late to change the Scintilla codes as clients depend on the current values.</p> - - <p><b id="SCN_MACRORECORD">SCN_MACRORECORD</b><br /> - The <code><a class="message" href="#SCI_STARTRECORD">SCI_STARTRECORD</a></code> and <a - class="message" href="#SCI_STOPRECORD"><code>SCI_STOPRECORD</code></a> messages enable and - disable macro recording. When enabled, each time a recordable change occurs, the - <code>SCN_MACRORECORD</code> notification is sent to the container. It is up to the container - to record the action. To see the complete list of <code>SCI_*</code> messages that are - recordable, search the Scintilla source <code>Editor.cxx</code> for - <code>Editor::NotifyMacroRecord</code>. The fields of <code>SCNotification</code> set in this - notification are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Macro record notification data"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>message</code></td> - - <td align="left">The <code>SCI_*</code> message that caused the notification.</td> - </tr> - - <tr> - <td align="left"><code>wParam</code></td> - - <td align="left">The value of <code>wParam</code> in the <code>SCI_*</code> message.</td> - </tr> - - <tr> - <td align="left"><code>lParam</code></td> - - <td align="left">The value of <code>lParam</code> in the <code>SCI_*</code> message.</td> - </tr> - </tbody> - </table> - - <p><b id="SCN_MARGINCLICK">SCN_MARGINCLICK</b><br /> - This notification tells the container that the mouse was clicked inside a <a class="jump" - href="#Margins">margin</a> that was marked as sensitive (see <a class="message" - href="#SCI_SETMARGINSENSITIVEN"><code>SCI_SETMARGINSENSITIVEN</code></a>). This can be used to - perform folding or to place breakpoints. The following <code>SCNotification</code> fields are - used:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Margin click notification"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>modifiers</code></td> - - <td align="left">The appropriate combination of <code>SCI_SHIFT</code>, - <code>SCI_CTRL</code> and <code>SCI_ALT</code> to indicate the keys that were held down - at the time of the margin click.</td> - </tr> - - <tr> - <td align="left"><code>position</code></td> - - <td align="left">The position of the start of the line in the document that corresponds - to the margin click.</td> - </tr> - - <tr> - <td align="left"><code>margin</code></td> - - <td align="left">The margin number that was clicked.</td> - </tr> - </tbody> - </table> - - <p><b id="SCN_NEEDSHOWN">SCN_NEEDSHOWN</b><br /> - Scintilla has determined that a range of lines that is currently invisible should be made - visible. An example of where this may be needed is if the end of line of a contracted fold - point is deleted. This message is sent to the container in case it wants to make the line - visible in some unusual way such as making the whole document visible. Most containers will - just ensure each line in the range is visible by calling <a class="message" - href="#SCI_ENSUREVISIBLE"><code>SCI_ENSUREVISIBLE</code></a>. The <code>position</code> and - <code>length</code> fields of <code>SCNotification</code> indicate the range of the document - that should be made visible. The container code will be similar to the following code - skeleton:</p> -<pre> -firstLine = SCI_LINEFROMPOSITION(scn.position) -lastLine = SCI_LINEFROMPOSITION(scn.position+scn.length-1) -for line = lineStart to lineEnd do SCI_ENSUREVISIBLE(line) next -</pre> - - <p><b id="SCN_PAINTED">SCN_PAINTED</b><br /> - Painting has just been done. Useful when you want to update some other widgets based on a - change in Scintilla, but want to have the paint occur first to appear more responsive. There is - no other information in <code>SCNotification</code>.</p> - - <p><b id="SCN_USERLISTSELECTION">SCN_USERLISTSELECTION</b><br /> - The user has selected an item in a <a class="jump" href="#UserLists">user list</a>. The - <code>SCNotification</code> fields used are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="User list notification"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>wParam</code></td> - - <td align="left">This is set to the <code>listType</code> parameter from the <a - class="message" href="#SCI_USERLISTSHOW"><code>SCI_USERLISTSHOW</code></a> message that - initiated the list.</td> - </tr> - - <tr> - <td align="left"><code>text</code></td> - - <td align="left">The text of the selection.</td> - </tr> - </tbody> - </table> - <br /> - <br /> - - - <p><b id="SCN_URIDROPPED">SCN_URIDROPPED</b><br /> - Only on the GTK+ version. Indicates that the user has dragged a URI such as a file name or Web - address onto Scintilla. The container could interpret this as a request to open the file. The - <code>text</code> field of <code>SCNotification</code> points at the URI text.</p> - - <p><b id="SCN_DWELLSTART">SCN_DWELLSTART</b><br /> - <b id="SCN_DWELLEND">SCN_DWELLEND</b><br /> - <code>SCN_DWELLSTART</code> is generated when the user keeps the mouse in one position for the - dwell period (see <code><a class="message" - href="#SCI_SETMOUSEDWELLTIME">SCI_SETMOUSEDWELLTIME</a></code>). <code>SCN_DWELLEND</code> is - generated after a <code>SCN_DWELLSTART</code> and the mouse is moved or other activity such as - key press indicates the dwell is over. Both notifications set the same fields in - <code>SCNotification</code>:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Mouse dwell notification"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>position</code></td> - - <td align="left">This is the nearest position in the document to the position where the - mouse pointer was lingering.</td> - </tr> - - <tr> - <td align="left"><code>x, y</code></td> - - <td align="left">Where the pointer lingered. The <code>position</code> field is set to - <code><a class="message" - href="#SCI_POSITIONFROMPOINTCLOSE">SCI_POSITIONFROMPOINTCLOSE</a>(x, y)</code>.</td> - </tr> - </tbody> - </table> - <br /> - <br /> - - <p><b id="SCI_SETMOUSEDWELLTIME">SCI_SETMOUSEDWELLTIME</b><br /> - <b id="SCI_GETMOUSEDWELLTIME">SCI_GETMOUSEDWELLTIME</b><br /> - These two messages set and get the time the mouse must sit still, in milliseconds, to generate - a <code><a class="message" href="#SCN_DWELLSTART">SCN_DWELLSTART</a></code> notification. If - set to <code>SC_TIME_FOREVER</code>, the default, no dwell events are generated.</p> - - <p><b id="SCN_ZOOM">SCN_ZOOM</b><br /> - This notification is generated when the user zooms the display using the keyboard or the - <code><a class="message" href="#SCI_SETZOOM">SCI_SETZOOM</a></code> method is called. This - notification can be used to recalculate positions, such as the width of the line number margin - to maintain sizes in terms of characters rather than pixels. <code>SCNotification</code> has no - additional information.</p> - - <p> - <b id="SCN_HOTSPOTCLICK">SCN_HOTSPOTCLICK</b><br /> - <b id="SCN_HOTSPOTDOUBLECLICK">SCN_HOTSPOTDOUBLECLICK</b><br /> - These notifications are generated when the user clicks or double clicks on - text that is in a style with the hotspot attribute set. - This notification can be used to link to variable definitions or web pages. - The <code>position</code> field is set the text position of the click or - double click and the <code>modifiers</code> field set to the key modifiers - held down in a similar manner to <a class="message" href="#SCN_KEY">SCN_KEY</a>.</p> - - <p><b id="SCN_CALLTIPCLICK">SCN_CALLTIPCLICK</b><br /> - This notification is generated when the user clicks on a calltip. - This notification can be used to display the next function prototype when a - function name is overloaded with different arguments. - The <code>position</code> field is set to 1 if the click is in an up arrow, - 2 if in a down arrow, and 0 if elsewhere.</p> - - <p><b id="SCN_AUTOCSELECTION">SCN_AUTOCSELECTION</b><br /> - The user has selected an item in an <a class="jump" href="#Autocompletion">autocompletion list</a>. The - notification is sent before the selection is inserted. Automatic insertion can be cancelled by sending a - <code><a class="message" href="#SCI_AUTOCCANCEL">SCI_AUTOCCANCEL</a></code> message - before returning from the notification. The <code>SCNotification</code> fields used are:</p> - - <table cellpadding="1" cellspacing="2" border="0" summary="Autocompletion list notification"> - <tbody> - <tr> - <th align="left">Field</th> - - <th align="left">Usage</th> - </tr> - </tbody> - - <tbody valign="top"> - <tr> - <td align="left"><code>lParam</code></td> - - <td align="left">The start position of the word being completed.</td> - </tr> - <tr> - <td align="left"><code>text</code></td> - - <td align="left">The text of the selection.</td> - </tr> - </tbody> - </table> - - <h2 id="GTK">GTK+</h2> - <p>On GTK+, the following functions create a Scintilla widget, communicate with it and allow - resources to be released after all Scintilla widgets hace been destroyed.</p> - <code><a class="message" href="#scintilla_new">GtkWidget *scintilla_new()</a><br /> - <a class="message" href="#scintilla_set_id">void scintilla_set_id(ScintillaObject *sci, uptr_t id)</a><br /> - <a class="message" href="#scintilla_send_message">sptr_t scintilla_send_message(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam)</a><br /> - <a class="message" href="#scintilla_release_resources">void scintilla_release_resources()</a><br /> - </code> - - <p><b id="scintilla_new">GtkWidget *scintilla_new()</b></b><br /> - Create a new Scintilla widget. The returned pointer can be added to a container and displayed in the same way as other - widgets.</p> - - <p><b id="scintilla_set_id">void scintilla_set_id(ScintillaObject *sci, uptr_t id)</b></b><br /> - Set the control ID which will be used in the idFrom field of the NotifyHeader structure of all - notifications for this instance. When an application creates multiple Scintilla widgets, this allows - the source of each notification to be found. The value should be small, preferrably less than 16 bits, - rather than a pointer as some of the functions will only transmit 16 or 32 bits.</p> - - <p><b id="scintilla_send_message">sptr_t scintilla_send_message(ScintillaObject *sci,unsigned int iMessage, uptr_t wParam, sptr_t lParam)</b><br /> - The main entry point allows sending any of the messages described in this document.</p> - - <p><b id="scintilla_release_resources">void scintilla_release_resources()</b><br /> - Call this to free any remaining resources after all the Scintilla widgets have been destroyed.</p> - - <h2 id="DeprecatedMessages">Deprecated messages and notifications</h2> - - <p>The following messages are currently supported to emulate existing Windows controls, but - they will be removed in future versions of Scintilla. If you use these messages you should - replace them with the Scintilla equivalent.</p> -<pre> -WM_GETTEXT(int length, char *text) -WM_SETTEXT(<unused>, const char *text) -EM_GETLINE(int line, char *text) -EM_REPLACESEL(<unused>, const char *text) -EM_SETREADONLY -EM_GETTEXTRANGE(<unused>, TEXTRANGE *tr) -WM_CUT -WM_COPY -WM_PASTE -WM_CLEAR -WM_UNDO -EM_CANUNDO -EM_EMPTYUNDOBUFFER -WM_GETTEXTLENGTH -EM_GETFIRSTVISIBLELINE -EM_GETLINECOUNT -EM_GETMODIFY -EM_SETMODIFY(bool isModified) -EM_GETRECT(RECT *rect) -EM_GETSEL(int *start, int *end) -EM_EXGETSEL(<unused>, CHARRANGE *cr) -EM_SETSEL(int start, int end) -EM_EXSETSEL(<unused>, CHARRANGE *cr) -EM_GETSELTEXT(<unused>, char *text) -EM_LINEFROMCHAR(int position) -EM_EXLINEFROMCHAR(int position) -EM_LINEINDEX(int line) -EM_LINELENGTH(int position) -EM_SCROLL(int line) -EM_LINESCROLL(int column, int line) -EM_SCROLLCARET() -EM_CANPASTE -EM_CHARFROMPOS(<unused>, POINT *location) -EM_POSFROMCHAR(int position, POINT *location) -EM_SELECTIONTYPE -EM_HIDESELECTION(bool hide) -EM_FINDTEXT(int flags, FINDTEXTEX *ft) -EM_FINDTEXTEX(int flags, FINDTEXTEX *ft) -EM_GETMARGINS -EM_SETMARGINS(EC_LEFTMARGIN or EC_RIGHTMARGIN or EC_USEFONTINFO, int val) -EM_FORMATRANGE -</pre> - - <p>The following are features that are only included if you define - <code>INCLUDE_DEPRECATED_FEATURES</code> in <code>Scintilla.h</code>. To ensure future - compatibility you should change them as indicated.</p> - - <p><b id="SCN_POSCHANGED">SCN_POSCHANGED()</b> Deprecated<br /> - Fired when the user moves the cursor to a different position in the text. Use <a - class="message" href="#SCN_UPDATEUI"><code>SCN_UPDATEUI</code></a> instead.</p> - - <p><b id="SCN_CHECKBRACE">SCN_CHECKBRACE</b> Deprecated<br /> - Either the text or styling of the document has changed or the selection range has changed. - This is replaced by <a class="message" href="#SCN_UPDATEUI"><code>SCN_UPDATEUI</code></a>. You - can also use <code><a class="message" href="#SCN_MODIFIED">SCN_MODIFIED</a></code> for more - detailed information on text and styling changes,</p> - - <h2 id="EditMessagesNeverSupportedByScintilla">Edit messages never supported by Scintilla</h2> -<pre> -EM_GETWORDBREAKPROC EM_GETWORDBREAKPROCEX -EM_SETWORDBREAKPROC EM_SETWORDBREAKPROCEX -EM_GETWORDWRAPMODE EM_SETWORDWRAPMODE -EM_LIMITTEXT EM_EXLIMITTEXT -EM_SETRECT EM_SETRECTNP -EM_FMTLINES -EM_GETHANDLE EM_SETHANDLE -EM_GETPASSWORDCHAR EM_SETPASSWORDCHAR -EM_SETTABSTOPS -EM_FINDWORDBREAK -EM_GETCHARFORMAT EM_SETCHARFORMAT -EM_GETOLEINTERFACE EM_SETOLEINTERFACE -EM_SETOLECALLBACK -EM_GETPARAFORMAT EM_SETPARAFORMAT -EM_PASTESPECIAL -EM_REQUESTRESIZE -EM_GETBKGNDCOLOR EM_SETBKGNDCOLOR -EM_STREAMIN EM_STREAMOUT -EM_GETIMECOLOR EM_SETIMECOLOR -EM_GETIMEOPTIONS EM_SETIMEOPTIONS -EM_GETOPTIONS EM_SETOPTIONS -EM_GETPUNCTUATION EM_SETPUNCTUATION -EM_GETTHUMB -EM_GETEVENTMASK -EM_SETEVENTMASK -EM_DISPLAYBAND -EM_SETTARGETDEVICE -</pre> - - <p>Scintilla tries to be a superset of the standard windows Edit and RichEdit controls wherever - that makes sense. As it is not intended for use in a word processor, some edit messages can not - be sensibly handled. Unsupported messages have no effect.</p> - - <h2 id="BuildingScintilla">Building Scintilla</h2> - - <p>To build Scintilla or SciTE, see the README file present in both the Scintilla and SciTE - directories. For Windows, GCC 3.2, Borland C++ or Microsoft Visual Studio .NET can be used - for building. There is a make file for building Scintilla but not SciTE with Visual C++ 6 at - scintilla/win32/scintilla_vc6.mak. For GTK+, GCC 3.1 should be used. GTK+ 1.2x and 2.0x are - supported. The version of GTK+ installed should be detected automatically. - When both GTK+ 1 and GTK+ 2 are present, building for GTK+ 1.x requires defining GTK1 - on the command line.</p> - - <h3>Static linking</h3> - - <p>On Windows, Scintilla is normally used as a dynamic library as a .DLL file. If you want to - link Scintilla directly into your application .EXE or .DLL file, then the - <code>STATIC_BUILD</code> preprocessor symbol should be defined and - <code>Scintilla_RegisterClasses</code> called. <code>STATIC_BUILD</code> prevents compiling the - <code>DllMain</code> function which will conflict with any <code>DllMain</code> defined in your - code. <code>Scintilla_RegisterClasses</code> takes the <code>HINSTANCE</code> of your - application and ensures that the "Scintilla" window class is registered. To make sure that the - right pointing arrow cursor used in the margin is displayed by Scintilla add the - <code>scintilla/win32/Margin.cur</code> file to your application's resources with the ID - <code>IDC_MARGIN</code> which is defined in <code>scintilla/win32/platfromRes.h</code> as - 400.</p> - - <h3>Ensuring lexers are linked into Scintilla</h3> - - <p>Depending on the compiler and linker used, the lexers may be stripped out. This is most - often caused when building a static library. To ensure the lexers are linked in, the - <code>Scintilla_LinkLexers()</code> function may be called.</p> - - <h3>Changing set of lexers</h3> - - <p>To change the set of lexers in Scintilla, add and remove lexer source files - (<code>Lex*.cxx</code>) from the <code>scintilla/src directory</code> and run the - <code>src/LexGen.py</code> script from the <code>src</code> directory to update the make files - and <code>KeyWords.cxx</code>. <code>LexGen.py</code> requires Python 2.1 or later. If you do - not have access to Python, you can hand edit <code>KeyWords.cxx</code> in a simple-minded way, - following the patterns of other lexers. The important thing is to include - <code>LINK_LEXER(lmMyLexer);</code> to correspond with the <code>LexerModule - lmMyLexer(...);</code> in your lexer source code.</p> - </body> -</html> - diff --git a/doc/Scintilla/ScintillaDownload.html b/doc/Scintilla/ScintillaDownload.html deleted file mode 100644 index c6b9657..0000000 --- a/doc/Scintilla/ScintillaDownload.html +++ /dev/null @@ -1,70 +0,0 @@ -<?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> - Download Scintilla - </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">Download - Scintilla</font></a> - </td> - </tr> - </table> - <table bgcolor="#CCCCCC" width="100%" cellspacing="0" cellpadding="8" border="0"> - <tr> - <td> - <font size="4"> <a href="http://prdownloads.sourceforge.net/scintilla/scintilla171.zip?download"> - Windows</a> - <a href="http://prdownloads.sourceforge.net/scintilla/scintilla171.tgz?download"> - GTK+/Linux</a> - </font> - </td> - </tr> - </table> - <h2> - Download. - </h2> - <p> - The <a href="License.txt">license</a> for using Scintilla or SciTE is similar to that of Python - containing very few restrictions. - </p> - <h3> - Release 1.71 - </h3> - <h4> - Source Code - </h4> - The source code package contains all of the source code for Scintilla but no binary - executable code and is available in - <ul> - <li><a href="http://prdownloads.sourceforge.net/scintilla/scintilla171.zip?download">zip format</a> (720K) commonly used on Windows</li> - <li><a href="http://prdownloads.sourceforge.net/scintilla/scintilla171.tgz?download">tgz format</a> (620K) commonly used on Linux and compatible operating systems</li> - </ul> - Instructions for building on both Windows and Linux are included in the readme file. - <h4> - Windows Executable Code - </h4> - There is no download available containing only the Scintilla DLL. - However, it is included in the <a href="SciTEDownload.html">SciTE - executable full download</a> as SciLexer.DLL. - <p> - <a href="SciTEDownload.html">SciTE</a> is a good demonstration of Scintilla. - </p> - <p> - Previous versions can be downloaded from the <a href="ScintillaHistory.html">history - page</a>. - </p> - </body> -</html> diff --git a/doc/Scintilla/ScintillaHistory.html b/doc/Scintilla/ScintillaHistory.html deleted file mode 100644 index 94a7984..0000000 --- a/doc/Scintilla/ScintillaHistory.html +++ /dev/null @@ -1,5296 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!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=utf-8" /> - <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 - and SciTE</font></a> - </td> - </tr> - </table> - <h2> - History of Scintilla and SciTE - </h2> - <h3> - Contributors - </h3> - <p> - Thanks to all the people that have contributed patches, bug reports and suggestions. - </p> - <p> - Source code and documentation have been contributed by - </p> - <ul> - <li>Atsuo Ishimoto</li> - <li>Mark Hammond</li> - <li>Francois Le Coguiec</li> - <li>Dale Nagata</li> - <li>Ralf Reinhardt</li> - <li>Philippe Lhoste</li> - <li>Andrew McKinlay</li> - <li>Stephan R. A. Deibel</li> - <li>Hans Eckardt</li> - <li>Vassili Bourdo</li> - <li>Maksim Lin</li> - <li>Robin Dunn</li> - <li>John Ehresman</li> - <li>Steffen Goeldner</li> - <li>Deepak S.</li> - <li>Yann Gaillard</li> - <li>Aubin Paul</li> - <li>Jason Diamond</li> - <li>Ahmad Baitalmal</li> - <li>Paul Winwood</li> - <li>Maxim Baranov</li> - <li>Ragnar Højland</li> - <li>Christian Obrecht</li> - <li>Andreas Neukoetter</li> - <li>Adam Gates</li> - <li>Steve Lhomme</li> - <li>Ferdinand Prantl</li> - <li>Jan Dries</li> - <li>Markus Gritsch</li> - <li>Tahir Karaca</li> - <li>Ahmad Zawawi</li> - <li>Laurent le Tynevez</li> - <li>Walter Braeu</li> - <li>Ashley Cambrell</li> - <li>Garrett Serack</li> - <li>Holger Schmidt</li> - <li><a href="http://www.activestate.com">ActiveState</a></li> - <li>James Larcombe</li> - <li>Alexey Yutkin</li> - <li>Jan Hercek</li> - <li>Richard Pecl</li> - <li>Edward K. Ream</li> - <li>Valery Kondakoff</li> - <li>Smári McCarthy</li> - <li>Clemens Wyss</li> - <li>Simon Steele</li> - <li>Serge A. Baranov</li> - <li>Xavier Nodet</li> - <li>Willy Devaux</li> - <li>David Clain</li> - <li>Brendon Yenson</li> - <li>Vamsi Potluru</li> - <li>Praveen Ambekar</li> - <li>Alan Knowles</li> - <li>Kengo Jinno</li> - <li>Valentin Valchev</li> - <li>Marcos E. Wurzius</li> - <li>Martin Alderson</li> - <li>Robert Gustavsson</li> - <li>José Fonseca</li> - <li>Holger Kiemes</li> - <li>Francis Irving</li> - <li>Scott Kirkwood</li> - <li>Brian Quinlan</li> - <li>Ubi</li> - <li>Michael R. Duerig</li> - <li>Deepak T</li> - <li>Don Paul Beletsky</li> - <li>Gerhard Kalab</li> - <li>Olivier Dagenais</li> - <li>Josh Wingstrom</li> - <li>Bruce Dodson</li> - <li>Sergey Koshcheyev</li> - <li>Chuan-jian Shen</li> - <li>Shane Caraveo</li> - <li>Alexander Scripnik</li> - <li>Ryan Christianson</li> - <li>Martin Steffensen</li> - <li>Jakub Vrána</li> - <li>The Black Horus</li> - <li>Bernd Kreuss</li> - <li>Thomas Lauer</li> - <li>Mike Lansdaal</li> - <li>Yukihiro Nakai</li> - <li>Jochen Tucht</li> - <li>Greg Smith</li> - <li>Steve Schoettler</li> - <li>Mauritius Thinnes</li> - <li>Darren Schroeder</li> - <li>Pedro Guerreiro</li> - <li>Dan Petitt</li> - <li>Biswapesh Chattopadhyay</li> - <li>Kein-Hong Man</li> - <li>Patrizio Bekerle</li> - <li>Nigel Hathaway</li> - <li>Hrishikesh Desai</li> - <li>Sergey Puljajev</li> - <li>Mathias Rauen</li> - <li>Angelo Mandato</li> - <li>Denis Sureau</li> - <li>Kaspar Schiess</li> - <li>Christoph Hösler</li> - <li>João Paulo F Farias</li> - <li>Ron Schofield</li> - <li>Stefan Wosnik</li> - <li>Marius Gheorghe</li> - <li>Naba Kumar</li> - <li>Sean O'Dell</li> - <li>Stefanos Togoulidis</li> - <li>Hans Hagen</li> - <li>Jim Cape</li> - <li>Roland Walter</li> - <li>Brian Mosher</li> - <li>Nicholas Nemtsev</li> - <li>Roy Wood</li> - <li>Peter-Henry Mander</li> - <li>Robert Boucher</li> - <li>Christoph Dalitz</li> - <li>April White</li> - <li>S. Umar</li> - <li>Trent Mick</li> - <li>Filip Yaghob</li> - <li>Avi Yegudin</li> - <li>Vivi Orunitia</li> - <li>Manfred Becker</li> - <li>Dimitris Keletsekis</li> - <li>Yuiga</li> - <li>Davide Scola</li> - <li>Jason Boggs</li> - <li>Reinhold Niesner</li> - <li>Jos van der Zande</li> - <li>Pescuma</li> - <li>Pavol Bosik</li> - <li>Johannes Schmid</li> - <li>Blair McGlashan</li> - <li>Mikael Hultgren</li> - <li>Florian Balmer</li> - <li>Hadar Raz</li> - <li>Herr Pfarrer</li> - <li>Ben Key</li> - <li>Gene Barry</li> - <li>Niki Spahiev</li> - <li>Carsten Sperber</li> - <li>Phil Reid</li> - <li>Iago Rubio</li> - <li>Régis Vaquette</li> - <li>Massimo Corà </li> - <li>Elias Pschernig</li> - <li>Chris Jones</li> - <li>Josiah Reynolds</li> - <li>Robert Roessler <a href="http://www.rftp.com">rftp.com</a></li> - <li>Steve Donovan</li> - <li>Jan Martin Pettersen</li> - <li>Sergey Philippov</li> - <li>Borujoa</li> - <li>Michael Owens</li> - <li>Franck Marcia</li> - <li>Massimo Maria Ghisalberti</li> - <li>Frank Wunderlich</li> - <li>Josepmaria Roca</li> - <li>Tobias Engvall</li> - <li>Suzumizaki Kimitaka</li> - <li>Michael Cartmell</li> - <li>Pascal Hurni</li> - <li>Andre</li> - <li>Randy Butler</li> - <li>Georg Ritter</li> - <li>Michael Goffioul</li> - <li>Ben Harper</li> - <li>Adam Strzelecki</li> - <li>Kamen Stanev</li> - <li>Steve Menard</li> - <li>Oliver Yeoh</li> - <li>Eric Promislow</li> - <li>Joseph Galbraith</li> - <li>Jeffrey Ren</li> - <li>Armel Asselin</li> - <li>Jim Pattee</li> - <li>Friedrich Vedder</li> - <li>Sebastian Pipping</li> - <li>Andre Arpin</li> - <li>Stanislav Maslovski</li> - <li>Martin Stone</li> - <li>Fabien Proriol</li> - <li>mimir</li> - <li>Nicola Civran</li> - </ul> - <p> - Images used in GTK+ version - </p> - <ul> - <li> - <a href="http://sourceforge.net/projects/icon-collection/"> - Icons</a> Copyright(C) 1998 by Dean S. Jones<br /> - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite171.zip?download">Release 1.71</a> - </h3> - <ul> - <li> - Released on 21 August 2006. - </li> - <li> - On GTK+ drag and drop defaults to move rather than copy. - </li> - <li> - Double click notification includes line and position. - </li> - <li> - VB lexer bugs fixed for preprocessor directive below a comment or some other states and - to use string not closed style back to the starting quote when there are internal doubled quotes. - </li> - <li> - C++ lexer allows identifiers to contain '$' and non-ASCII characters such as UTF-8. - The '$' character can be disallowed with lexer.cpp.allow.dollars=0. - </li> - <li> - Perl lexer allows UTF-8 identifiers and has some other small improvements. - </li> - <li> - SciTE's $(CurrentWord) uses word.characters.<filepattern> to define the word - rather than a hardcoded list of word characters. - </li> - <li> - SciTE Export as HTML adds encoding information for UTF-8 file and fixes DOCTYPE. - </li> - <li> - SciTE session and .recent files default to the user properties directory rather than global - properties directory. - </li> - <li> - Left and right scroll events handled correctly on GTK+ and horizontal scroll bar has more sensible - distances for page and arrow clicks. - </li> - <li> - SciTE on GTK+ tab bar fixed to work on recent versions of GTK+. - </li> - <li> - On GTK+, if the approximate character set conversion is unavailable, a second attempt is made - without approximations. This may allow keyboard input and paste to work on older systems. - </li> - <li> - SciTE on GTK+ can redefine the Insert key. - </li> - <li> - SciTE scripting interface bug fixed where some string properties could not be changed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite170.zip?download">Release 1.70</a> - </h3> - <ul> - <li> - Released on 20 June 2006. - </li> - <li> - On GTK+, character set conversion is performed using an option that allows approximate conversions rather - than failures when a character can not be converted. This may lead to similar characters being inserted or - when no similar character is available a '?' may be inserted. - </li> - <li> - On GTK+, the internationalised IM (Input Method) feature is used for all typed input for all character sets. - </li> - <li> - Scintilla has new margin types SC_MARGIN_BACK and SC_MARGIN_FORE that use the default - style's background and foreground colours (normally white and black) as the background to the margin. - </li> - <li> - Scintilla/GTK+ allows file drops on Windows when drop is of type DROPFILES_DND - as well as text/uri-list. - </li> - <li> - Code page can only be set to one of the listed valid values. - </li> - <li> - Text wrapping fixed for cases where insertion was not wide enough to trigger - wrapping before being styled but was after styling. - </li> - <li> - SciTE find marks are removed before printing or exporting to avoid producing incorrect styles. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite169.zip?download">Release 1.69</a> - </h3> - <ul> - <li> - Released on 29 May 2006. - </li> - <li> - SciTE supports z-order based buffer switching on Ctrl+Tab. - </li> - <li> - Translucent support for selection and whole line markers. - </li> - <li> - SciTE may have per-language abbreviations files. - </li> - <li> - Support for Spice language. - </li> - <li> - On GTK+ autocompletion lists are optimised and use correct selection colours. - </li> - <li> - On GTK+ the URI data type is preferred in drag and drop so that applications - will see files dragged from the shell rather than dragging the text of the file name - into the document. - </li> - <li> - Increased number of margins to 5. - </li> - <li> - Basic lexer allows include directive $include: "file name". - </li> - <li> - SQL lexer no longer bases folding on indentation. - </li> - <li> - Line ends are transformed when copied to clipboard on - Windows/GTK+2 as well as Windows/GTK+ 1. - </li> - <li> - Lexing code masks off the indicator bits on the start style before calling the lexer - to avoid confusing the lexer when an application has used an indicator. - </li> - <li> - SciTE savebefore:yes only saves the file when it has been changed. - </li> - <li> - SciTE adds output.initial.hide setting to allow setting the size of the output pane - without it showing initially. - </li> - <li> - SciTE on Windows Go To dialog allows line number with more digits. - </li> - <li> - Bug in HTML lexer fixed where a segment of PHP could switch scripting language - based on earlier text on that line. - </li> - <li> - Memory bug fixed when freeing regions on GTK+. - Other minor bugs fixed on GTK+. - </li> - <li> - Deprecated GTK+ calls in Scintilla replaced with current calls. - </li> - <li> - Fixed a SciTE bug where closing the final buffer, if read-only, left the text present in an - untitled buffer. - </li> - <li> - Bug fixed in bash lexer that prevented folding. - </li> - <li> - Crash fixed in bash lexer when backslash at end of file. - </li> - <li> - Crash on recent releases of GTK+ 2.x avoided by changing default font from X - core font to Pango font "!Sans". - </li> - <li> - Fix for SciTE properties files where multiline properties continued over completely blank lines. - </li> - <li> - Bug fixed in SciTE/GTK+ director interface where more data available than - buffer size. - </li> - <li> - Minor visual fixes to SciTE splitter on GTK+. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite168.zip?download">Release 1.68</a> - </h3> - <ul> - <li> - Released on 9 March 2006. - </li> - <li> - Translucent drawing implemented for caret line and box indicators. - </li> - <li> - Lexer specifically for TCL is much more accurate than reusing C++ lexer. - </li> - <li> - Support for Inno Setup scripts. - </li> - <li> - Support for Opal language. - </li> - <li> - Calltips may use a new style, STYLE_CALLTIP which allows choosing a - different font for calltips. - </li> - <li> - Python lexer styles comments on decorators. - </li> - <li> - HTML lexer refined handling of "?>" and "%>" within server - side scripts. - </li> - <li> - Batch file lexer improved. - </li> - <li> - Eiffel lexer doesn't treat '.' as a name character. - </li> - <li> - Lua lexer handles length operator, #, and hex literals. - </li> - <li> - Properties file lexer has separate style for keys. - </li> - <li> - PL/SQL folding improved. - </li> - <li> - SciTE Replace dialog always searches in forwards direction. - </li> - <li> - SciTE can detect language of file from initial #! line. - </li> - <li> - SciTE on GTK+ supports output.scroll=2 setting. - </li> - <li> - SciTE can perform an import a properties file from the command line. - </li> - <li> - Set of word characters used for regular expression \< and \>. - </li> - <li> - Bug fixed with SCI_COPYTEXT stopping too early. - </li> - <li> - Bug fixed with splitting lines so that all lines are split. - </li> - <li> - SciTE calls OnSwitchFile when closing one buffer causes a switch to another. - </li> - <li> - SciTE bug fixed where properties were being reevaluated without good reason - after running a macro. - </li> - <li> - Crash fixed when clearing document with some lines contracted in word wrap mode. - </li> - <li> - Palette expands as more entries are needed. - </li> - <li> - SCI_POSITIONFROMPOINT returns more reasonable value when close to - last text on a line. - </li> - <li> - On Windows, long pieces of text may be drawn in segments if they fail to draw - as a whole. - </li> - <li> - Bug fixed with bad drawing when some visual changes made inside SCN_UPDATEUI - notification. - </li> - <li> - SciTE bug fixed with groupundo setting. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite167.zip?download">Release 1.67</a> - </h3> - <ul> - <li> - Released on 17 December 2005. - </li> - <li> - Scintilla checks the paint region more accurately when seeing if an area is being - repainted. Platform layer implementations may need to change for this to take - effect. This fixes some drawing and styling bugs. Also optimized some parts of - marker code to only redraw the line of the marker rather than whole of the margin. - </li> - <li> - Quoted identifier style for SQL. SQL folding performed more simply. - </li> - <li> - Ruby lexer improved to better handle here documents and non-ASCII - characters. - </li> - <li> - Lua lexer supports long string and block comment syntax from Lua 5.1. - </li> - <li> - Bash lexer handles here documents better. - </li> - <li> - JavaScript lexing recognises regular expressions more accurately and includes flag - characters in the regular expression style. This is both in JavaScript files and when - JavaScript is embedded in HTML. - </li> - <li> - Scintilla API provided to reveal how many style bits are needed for the - current lexer. - </li> - <li> - Selection duplicate added. - </li> - <li> - Scintilla API for adding a set of markers to a line. - </li> - <li> - DBCS encodings work on Windows 9x. - </li> - <li> - Convention defined for property names to be used by lexers and folders - so they can be automatically discovered and forwarded from containers. - </li> - <li> - Default bookmark in SciTE changed to a blue sphere image. - </li> - <li> - SciTE stores the time of last asking for a save separately for each buffer - which fixes bugs with automatic reloading. - </li> - <li> - On Windows, pasted text has line ends converted to current preference. - GTK+ already did this. - </li> - <li> - Kid template language better handled by HTML lexer by finishing ASP Python - mode when a ?> is found. - </li> - <li> - SciTE counts number of characters in a rectangular selection correctly. - </li> - <li> - 64-bit compatibility improved. One change that may affect user code is that - the notification message header changed to include a pointer-sized id field - to match the current Windows definition. - </li> - <li> - Empty ranges can no longer be dragged. - </li> - <li> - Crash fixed when calls made that use layout inside the painted notification. - </li> - <li> - Bug fixed where Scintilla created pixmap buffers that were too large leading - to failures when many instances used. - </li> - <li> - SciTE sets the directory of a new file to the directory of the currently - active file. - </li> - <li> - SciTE allows choosing a code page for the output pane. - </li> - <li> - SciTE HTML exporter no longer honours monospaced font setting. - </li> - <li> - Line layout cache in page mode caches the line of the caret. An assertion is - now used to ensure that the layout reentrancy problem that caused this - is easier to find. - </li> - <li> - Speed optimized for long lines and lines containing many control characters. - </li> - <li> - Bug fixed in brace matching in DBCS files where byte inside character - is same as brace. - </li> - <li> - Indent command does not indent empty lines. - </li> - <li> - SciTE bug fixed for commands that operate on files with empty extensions. - </li> - <li> - SciTE bug fixed where monospaced option was copied for subsequently opened files. - </li> - <li> - SciTE on Windows bug fixed in the display of a non-ASCII search string - which can not be found. - </li> - <li> - Bugs fixed with nested calls displaying a new calltip while one is already - displayed. - </li> - <li> - Bug fixed when styling PHP strings. - </li> - <li> - Bug fixed when styling C++ continued preprocessor lines. - </li> - <li> - SciTE bug fixed where opening file from recently used list reset choice of - language. - </li> - <li> - SciTE bug fixed when compiled with NO_EXTENSIONS and - closing one file closes the application. - </li> - <li> - SciTE crash fixed for error messages that look like Lua messages but aren't - in the same order. - </li> - <li> - Remaining fold box support deprecated. The symbols SC_FOLDLEVELBOXHEADERFLAG, - SC_FOLDLEVELBOXFOOTERFLAG, SC_FOLDLEVELCONTRACTED, - SC_FOLDLEVELUNINDENT, and SC_FOLDFLAG_BOX are deprecated. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite166.zip?download">Release 1.66</a> - </h3> - <ul> - <li> - Released on 26 August 2005. - </li> - <li> - New, more ambitious Ruby lexer. - </li> - <li> - SciTE Find in Files dialog has options for matching case and whole words which are - enabled when the internal find command is used. - </li> - <li> - SciTE output pane can display automatic completion after "$(" typed. - An initial ">" on a line is ignored when Enter pressed. - </li> - <li> - C++ lexer recognises keywords within line doc comments. It continues styles over line - end characters more consistently so that eolfilled style can be used for preprocessor lines - and line comments. - </li> - <li> - VB lexer improves handling of file numbers and date literals. - </li> - <li> - Lua folder handles repeat until, nested comments and nested strings. - </li> - <li> - POV lexer improves handling of comment lines. - </li> - <li> - AU3 lexer and folder updated. COMOBJ style added. - </li> - <li> - Bug fixed with text display on GTK+ with Pango 1.8. - </li> - <li> - Caret painting avoided when not focused. - </li> - <li> - SciTE on GTK+ handles file names used to reference properties as case-sensitive. - </li> - <li> - SciTE on GTK+ Save As and Export commands set the file name field. - On GTK+ the Export commands modify the file name in the same way as on Windows. - </li> - <li> - Fixed SciTE problem where confirmation was not displaying when closing a file where all - contents had been deleted. - </li> - <li> - Middle click on SciTE tab now closes correct buffer on Windows when tool bar is visible. - </li> - <li> - SciTE bugs fixed where files contained in directory that includes '.' character. - </li> - <li> - SciTE bug fixed where import in user options was reading file from directory of - global options. - </li> - <li> - SciTE calltip bug fixed where single line calltips had arrow displayed incorrectly. - </li> - <li> - SciTE folding bug fixed where empty lines were shown for no reason. - </li> - <li> - Bug fixed where 2 byte per pixel XPM images caused crash although they are still not - displayed. - </li> - <li> - Autocompletion list size tweaked. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite165.zip?download">Release 1.65</a> - </h3> - <ul> - <li> - Released on 1 August 2005. - </li> - <li> - FreeBasic support. - </li> - <li> - SciTE on Windows handles command line arguments - "-" (read standard input into buffer), - "--" (read standard input into output pane) and - "-@" (read file names from standard input and open each). - </li> - <li> - SciTE includes a simple implementation of Find in Files which is used if no find.command is set. - </li> - <li> - SciTE can close tabs with a mouse middle click. - </li> - <li> - SciTE includes a save.all.for.build setting. - </li> - <li> - Folder for MSSQL. - </li> - <li> - Batch file lexer understands more of the syntax and the behaviour of built in commands. - </li> - <li> - Perl lexer handles here docs better; disambiguates barewords, quote-like delimiters, and repetition operators; - handles Pods after __END__; recognises numbers better; and handles some typeglob special variables. - </li> - <li> - Lisp adds more lexical states. - </li> - <li> - PHP allows spaces after <<<. - </li> - <li> - TADS3 has a simpler set of states and recognizes identifiers. - </li> - <li> - Avenue elseif folds better. - </li> - <li> - Errorlist lexer treats lines starting with '+++' and '---' as separate - styles from '+' and '-' as they indicate file names in diffs. - </li> - <li> - SciTE error recogniser handles file paths in extra explanatory lines from MSVC - and in '+++' and '---' lines from diff. - </li> - <li> - Bugs fixed in SciTE and Scintilla folding behaviour when text pasted before - folded text caused unnecessary - unfolding and cutting text could lead to text being irretrievably hidden. - </li> - <li> - SciTE on Windows uses correct font for dialogs and better font for tab bar - allowing better localisation - </li> - <li> - When Windows is used with a secondary monitor before the primary - monitor, autocompletion lists are not forced onto the primary monitor. - </li> - <li> - Scintilla calltip bug fixed where down arrow setting wrong value in notification - if not in first line. SciTE bug fixed where second arrow only shown on multiple line - calltip and was therefore misinterpreting the notification value. - </li> - <li> - Lexers will no longer be re-entered recursively during, for example, fold level setting. - </li> - <li> - Undo of typing in overwrite mode undoes one character at a time rather than requiring a removal - and addition step for each character. - </li> - <li> - EM_EXSETSEL(0,-1) fixed. - </li> - <li> - Bug fixed where part of a rectangular selection was not shown as selected. - </li> - <li> - Autocomplete window size fixed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite164.zip?download">Release 1.64</a> - </h3> - <ul> - <li> - Released on 6 June 2005. - </li> - <li> - TADS3 support - </li> - <li> - Smalltalk support. - </li> - <li> - Rebol support. - </li> - <li> - Flagship (Clipper / XBase) support. - </li> - <li> - CSound support. - </li> - <li> - SQL enhanced to support SQL*Plus. - </li> - <li> - SC_MARK_FULLRECT margin marker fills the whole marker margin for marked - lines with a colour. - </li> - <li> - Performance improved for some large undo and redo operations and modification flags - added in notifications. - </li> - <li> - SciTE adds command equivalents for fold margin mouse actions. - </li> - <li> - SciTE adds OnUpdateUI to set of events that can be handled by a Lua script. - </li> - <li> - Properties set in Scintilla can be read. - </li> - <li> - GTK+ SciTE exit confirmation adds Cancel button. - </li> - <li> - More accurate lexing of numbers in PHP and Caml. - </li> - <li> - Perl can fold POD and package sections. POD verbatim section style. - Globbing syntax recognized better. - </li> - <li> - Context menu moved slightly on GTK+ so that it will be under the mouse and will - stay open if just clicked rather than held. - </li> - <li> - Rectangular selection paste works the same whichever direction the selection was dragged in. - </li> - <li> - EncodedFromUTF8 handles -1 length argument as documented. - </li> - <li> - Undo and redo can cause SCN_MODIFYATTEMPTRO notifications. - </li> - <li> - Indicators display correctly when they start at the second character on a line. - </li> - <li> - SciTE Export As HTML uses standards compliant CSS. - </li> - <li> - SciTE automatic indentation handles keywords for indentation better. - </li> - <li> - SciTE fold.comment.python property removed as does not work. - </li> - <li> - Fixed problem with character set conversion when pasting on GTK+. - </li> - <li> - SciTE default character set changed from ANSI_CHARSET to DEFAULT_CHARSET. - </li> - <li> - Fixed crash when creating empty autocompletion list. - </li> - <li> - Autocomplete window size made larger under some conditions to make truncation less common. - </li> - <li> - Bug fixed where changing case of a selection did not affect initial character of lines - in multi-byte encodings. - </li> - <li> - Bug fixed where rectangular selection not displayed after Alt+Shift+Click. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite163.zip?download">Release 1.63</a> - </h3> - <ul> - <li> - Released on 4 April 2005. - </li> - <li> - Autocompletion on Windows changed to use popup window, be faster, - allow choice of maximum width and height, and to highlight only the text of the - selected item rather than both the text and icon if any. - </li> - <li> - Extra items can be added to the context menu in SciTE. - </li> - <li> - Character wrap mode in Scintilla helps East Asian languages. - </li> - <li> - Lexer added for Haskell. - </li> - <li> - Objective Caml support. - </li> - <li> - BlitzBasic and PureBasic support. - </li> - <li> - CSS support updated to handle CSS2. - </li> - <li> - C++ lexer is more selective about document comment keywords. - </li> - <li> - AutoIt 3 lexer improved. - </li> - <li> - Lua lexer styles end of line characters on comment and preprocessor - lines so that the eolfilled style can be applied to them. - </li> - <li> - NSIS support updated for line continuations, box comments, SectionGroup and - PageEx, and with more up-to-date properties. - </li> - <li> - Clarion lexer updated to perform folding and have more styles. - </li> - <li> - SQL lexer gains second set of keywords. - </li> - <li> - Errorlist lexer recognises Borland Delphi error messages. - </li> - <li> - Method added for determining number of visual lines occupied by a document - line due to wrapping. - </li> - <li> - Sticky caret mode does not modify the preferred caret x position when typing - and may be useful for typing columns of text. - </li> - <li> - Dwell end notification sent when scroll occurs. - </li> - <li> - On GTK+, Scintilla requisition height is screen height rather than large fixed value. - </li> - <li> - Case insensitive autocompletion prefers exact case match. - </li> - <li> - SCI_PARADOWN and SCI_PARAUP treat lines containing only white - space as empty and handle text hidden by folding. - </li> - <li> - Scintilla on Windows supports WM_PRINTCLIENT although there are some - limitations. - </li> - <li> - SCN_AUTOCSELECTION notification sent when user selects from autoselection list. - </li> - <li> - SciTE's standard properties file sets buffers to 10, uses Pango fonts on GTK+ and - has dropped several languages to make the menu fit on screen. - </li> - <li> - SciTE's encoding cookie detection loosened so that common XML files will load - in UTF-8 if that is their declared encoding. - </li> - <li> - SciTE on GTK+ changes menus and toolbars to not be detachable unless turned - on with a property. Menus no longer tear off. The toolbar may be set to use the - default theme icons rather than SciTE's set. Changed key for View | End of Line - because of a conflict. Language menu can contain more items. - </li> - <li> - SciTE on GTK+ 2.x allows the height and width of the file open file chooser to - be set, for the show hidden files check box to be set from an option and for it - to be opened in the directory of the current file explicitly. Enter key works in - save chooser. - </li> - <li> - Scintilla lexers should no longer see bits in style bytes that are outside the set - they modify so should be able to correctly lex documents where the container - has used indicators. - </li> - <li> - SciTE no longer asks to save before performing a revert. - </li> - <li> - SciTE director interface adds a reloadproperties command to reload properties - from files. - </li> - <li> - Allow build on CYGWIN platform. - </li> - <li> - Allow use from LccWin compiler. - </li> - <li> - SCI_COLOURISE for SCLEX_CONTAINER causes a - SCN_STYLENEEDED notification. - </li> - <li> - Bugs fixed in lexing of HTML/ASP/JScript. - </li> - <li> - Fix for folding becoming confused. - </li> - <li> - On Windows, fixes for Japanese Input Method Editor and for 8 bit Katakana - characters. - </li> - <li> - Fixed buffer size bug avoided when typing long words by making buffer bigger. - </li> - <li> - Undo after automatic indentation more sensible. - </li> - <li> - SciTE menus on GTK+ uses Shift and Ctrl rather than old style abbreviations. - </li> - <li> - SciTE full screen mode on Windows calculates size more correctly. - </li> - <li> - SciTE on Windows menus work better with skinning applications. - </li> - <li> - Searching bugs fixed. - </li> - <li> - Colours reallocated when changing image using SCI_REGISTERIMAGE. - </li> - <li> - Caret stays visible when Enter held down. - </li> - <li> - Undo of automatic indentation more reasonable. - </li> - <li> - High processor usage fixed in background wrapping under some - circumstances. - </li> - <li> - Crashing bug fixed on AMD64. - </li> - <li> - SciTE crashing bug fixed when position.height or position.width not set. - </li> - <li> - Crashing bug on GTK+ fixed when setting cursor and window is NULL. - </li> - <li> - Crashing bug on GTK+ preedit window fixed. - </li> - <li> - SciTE crashing bug fixed in incremental search on Windows ME. - </li> - <li> - SciTE on Windows has a optional find and replace dialogs that can search through - all buffers and search within a particular style number. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite162.zip?download">Release 1.62</a> - </h3> - <ul> - <li> - Released on 31 October 2004. - </li> - <li> - Lexer added for ASN.1. - </li> - <li> - Lexer added for VHDL. - </li> - <li> - On Windows, an invisible system caret is used to allow screen readers to determine - where the caret is. The visible caret is still drawn by the painting code. - </li> - <li> - On GTK+, Scintilla has methods to read the target as UTF-8 and to convert - a string from UTF-8 to the document encoding. This eases integration with - containers that use the UTF-8 encoding which is the API encoding for GTK+ 2. - </li> - <li> - SciTE on GTK+2 and Windows NT/2000/XP allows search and replace of Unicode text. - </li> - <li> - SciTE calltips allow setting the characters used to start and end parameter lists and - to separate parameters. - </li> - <li> - FindColumn method converts a line and column into a position, taking into account - tabs and multi-byte characters. - </li> - <li> - On Windows, when Scintilla copies text to the clipboard as Unicode, it avoids - adding an ANSI copy as the system will automatically convert as required in - a context-sensitive manner. - </li> - <li> - SciTE indent.auto setting automatically determines indent.size and use.tabs from - document contents. - </li> - <li> - SciTE defines a CurrentMessage property that holds the most recently selected - output pane message. - </li> - <li> - SciTE Lua scripting enhanced with - <ul> - <li>A Lua table called 'buffer' is associated with each buffer and can be used to - maintain buffer-specific state.</li> - <li>A 'scite' object allows interaction with the application such as opening - files from script.</li> - <li>Dynamic properties can be reset by assigning nil to a given key in - the props table.</li> - <li>An 'OnClear' event fires whenever properties and extension scripts are - about to be reloaded.</li> - <li>On Windows, loadlib is enabled and can be used to access Lua - binary modules / DLLs.</li></ul> - </li> - <li> - SciTE Find in Files on Windows can be used in a modeless way and gains a '..' - button to move up to the parent directory. It is also wider so that longer paths - can be seen. - </li> - <li> - Close buttons added to dialogs in SciTE on Windows. - </li> - <li> - SciTE on GTK+ 2 has a "hidden files" check box in file open dialog. - </li> - <li> - SciTE use.monospaced setting removed. More information in the - <a href="SciTEFAQ.html">FAQ</a>. - </li> - <li> - APDL lexer updated with more lexical classes - </li> - <li> - AutoIt3 lexer updated. - </li> - <li> - Ada lexer fixed to support non-ASCII text. - </li> - <li> - Cpp lexer now only matches exactly three slashes as starting a doc-comment so that - lines of slashes are seen as a normal comment. - Line ending characters are appear in default style on preprocessor and single line - comment lines. - </li> - <li> - CSS lexer updated to support CSS2 including second set of keywords. - </li> - <li> - Errorlist lexer now understands Java stack trace lines. - </li> - <li> - SciTE's handling of HTML Tidy messages jumps to column as well as line indicated. - </li> - <li> - Lisp lexer allows multiline strings. - </li> - <li> - Lua lexer treats .. as an operator when between identifiers. - </li> - <li> - PHP lexer handles 'e' in numerical literals. - </li> - <li> - PowerBasic lexer updated for macros and optimised. - </li> - <li> - Properties file folder changed to leave lines before a header at the base level - and thus avoid a vertical line when using connected folding symbols. - </li> - <li> - GTK+ on Windows version uses Alt for rectangular selection to be compatible with - platform convention. - </li> - <li> - SciTE abbreviations file moved from system directory to user directory - so each user can have separate abbreviations. - </li> - <li> - SciTE on GTK+ has improved .desktop file and make install support that may - lead to better integration with system shell. - </li> - <li> - Disabling of themed background drawing on GTK+ extended to all cases. - </li> - <li> - SciTE date formatting on Windows performed with the user setting rather than the - system setting. - </li> - <li> - GTK+ 2 redraw while scrolling fixed. - </li> - <li> - Recursive property definitions are safer, avoiding expansion when detected. - </li> - <li> - SciTE thread synchronization for scripts no longer uses HWND_MESSAGE - so is compatible with older versions of Windows. - Other Lua scripting bugs fixed. - </li> - <li> - SciTE on Windows localisation of menu accelerators changed to be compatible - with alternative UI themes. - </li> - <li> - SciTE on Windows full screen mode now fits better when menu different height - to title bar height. - </li> - <li> - SC_MARK_EMPTY marker is now invisible and does not change the background - colour. - </li> - <li> - Bug fixed in HTML lexer to allow use of <?xml in strings in scripts without - triggering xml mode. - </li> - <li> - Bug fixed in SciTE abbreviation expansion that could break indentation or crash. - </li> - <li> - Bug fixed when searching for a whole word string that ends one character before - end of document. - </li> - <li> - Drawing bug fixed when indicators drawn on wrapped lines. - </li> - <li> - Bug fixed when double clicking a hotspot. - </li> - <li> - Bug fixed where autocompletion would remove typed text if no match found. - </li> - <li> - Bug fixed where display does not scroll when inserting in long wrapped line. - </li> - <li> - Bug fixed where SCI_MARKERDELETEALL would only remove one of the markers - on a line that contained multiple markers with the same number. - </li> - <li> - Bug fixed where markers would move when converting line endings. - </li> - <li> - Bug fixed where SCI_LINEENDWRAP would move too far when line ends are visible. - </li> - <li> - Bugs fixed where calltips with unicode or other non-ASCII text would display - incorrectly. - </li> - <li> - Bug fixed in determining if at save point after undoing from save point and then - performing changes. - </li> - <li> - Bug fixed on GTK+ using unsupported code pages where extraneous text could - be drawn. - </li> - <li> - Bug fixed in drag and drop code on Windows where dragging from SciTE to - Firefox could hang both applications. - </li> - <li> - Crashing bug fixed on GTK+ when no font allocation succeeds. - </li> - <li> - Crashing bug fixed when autocompleting word longer than 1000 characters. - </li> - <li> - SciTE crashing bug fixed when both Find and Replace dialogs shown by disallowing - this situation. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite161.zip?download">Release 1.61</a> - </h3> - <ul> - <li> - Released on 29 May 2004. - </li> - <li> - Improvements to selection handling on GTK+. - </li> - <li> - SciTE on GTK+ 2.4 uses the improved file chooser which allows - file extension filters, multiple selection, and remembers favourite - directories. - </li> - <li> - SciTE Load Session and Save Session commands available on GTK+. - </li> - <li> - SciTE lists Lua Startup Script in Options menu when loaded. - </li> - <li> - In SciTE, OnUserListSelection can be implemented in Lua. - </li> - <li> - SciTE on Windows has a context menu on the file tabs. - </li> - <li> - SQL lexer allows '#' comments and optionally '\' quoting inside strings. - </li> - <li> - Mssql lexer improved. - </li> - <li> - AutoIt3 lexer updated. - </li> - <li> - Perl lexer recognizes regular expression use better. - </li> - <li> - Errorlist lexer understands Lua tracebacks and copes with findstr - output for file names that end with digits. - </li> - <li> - Drawing of lines on GTK+ improved and made more like Windows - without final point. - </li> - <li> - SciTE on GTK+ uses a high resolution window icon. - </li> - <li> - SciTE can be set to warn before loading files larger than a particular size. - </li> - <li> - SciTE Lua scripting bugs fixed included a crashing bug when using - an undefined function name that would go before first actual name. - </li> - <li> - SciTE bug fixed where a modified buffer was not saved if it was - the last buffer and was not current when the New command used. - </li> - <li> - SciTE monofont mode no longer affects line numbers. - </li> - <li> - Crashing bug in SciTE avoided by not allowing both the Find and Replace - dialogs to be visible at one time. - </li> - <li> - Crashing bug in SciTE fixed when Lua scripts were being run - concurrently. - </li> - <li> - Bug fixed that caused incorrect line number width in SciTE. - </li> - <li> - PHP folding bug fixed. - </li> - <li> - Regression fixed when setting word characters to not include - some of the standard word characters. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite160.zip?download">Release 1.60</a> - </h3> - <ul> - <li> - Released on 1 May 2004. - </li> - <li> - SciTE can be scripted using the Lua programming language. - </li> - <li> - command.mode is a better way to specify tool command options in SciTE. - </li> - <li> - Continuation markers can be displayed so that you can see which lines are wrapped. - </li> - <li> - Lexer for Gui4Cli language. - </li> - <li> - Lexer for Kix language. - </li> - <li> - Lexer for Specman E language. - </li> - <li> - Lexer for AutoIt3 language. - </li> - <li> - Lexer for APDL language. - </li> - <li> - Lexer for Bash language. Also reasonable for other Unix shells. - </li> - <li> - SciTE can load lexers implemented in external shared libraries. - </li> - <li> - Perl treats "." not as part of an identifier and interprets '/' and '->' - correctly in more circumstances. - </li> - <li> - PHP recognises variables within strings. - </li> - <li> - NSIS has properties "nsis.uservars" and "nsis.ignorecase". - </li> - <li> - MSSQL lexer adds keyword list for operators and stored procedures, - defines '(', ')', and ',' as operators and changes some other details. - </li> - <li> - Input method preedit window on GTK+ 2 may support some Asian languages. - </li> - <li> - Platform interface adds an extra platform-specific flag to Font::Create. - Used on wxWidgets to choose antialiased text display but may be used for - any task that a platform needs. - </li> - <li> - OnBeforeSave method added to Extension interface. - </li> - <li> - Scintilla methods that return strings can be called with a NULL pointer - to find out how long the string should be. - </li> - <li> - Visual Studio .NET project file now in VS .NET 2003 format so can not be used - directly in VS .NET 2002. - </li> - <li> - Scintilla can be built with GTK+ 2 on Windows. - </li> - <li> - Updated RPM spec for SciTE on GTK+. - </li> - <li> - GTK+ makefile for SciTE allows selection of destination directory, creates destination - directories and sets file modes and owners better. - </li> - <li> - Tab indents now go to next tab multiple rather than add tab size. - </li> - <li> - SciTE abbreviations now use the longest possible match rather than the shortest. - </li> - <li> - Autocompletion does not remove prefix when actioned with no choice selected. - </li> - <li> - Autocompletion cancels when moving beyond the start position, not at the start position. - </li> - <li> - SciTE now shows only calltips for functions that match exactly, not - those that match as a prefix. - </li> - <li> - SciTE can repair box comment sections where some lines were added without - the box comment middle line prefix. - </li> - <li> - Alt+ works in user.shortcuts on Windows. - </li> - <li> - SciTE on GTK+ enables replace in selection for rectangular selections. - </li> - <li> - Key bindings for command.shortcut implemented in a way that doesn't break - when the menus are localised. - </li> - <li> - Drawing of background on GTK+ faster as theme drawing disabled. - </li> - <li> - On GTK+, calltips are moved back onto the screen if they extend beyond the screen bounds. - </li> - <li> - On Windows, the Scintilla object is destroyed on WM_NCDESTROY rather than - WM_DESTROY which arrives earlier. This fixes some problems when Scintilla was subclassed. - </li> - <li> - The zorder switching feature removed due to number of crashing bugs. - </li> - <li> - Code for XPM images made more robust. - </li> - <li> - Bug fixed with primary selection on GTK+. - </li> - <li> - On GTK+ 2, copied or cut text can still be pasted after the Scintilla widget is destroyed. - </li> - <li> - Styling change not visible problem fixed when line was cached. - </li> - <li> - Bug in SciTE on Windows fixed where clipboard commands stopped working. - </li> - <li> - Crashing bugs in display fixed in line layout cache. - </li> - <li> - Crashing bug may be fixed on AMD64 processor on GTK+. - </li> - <li> - Rare hanging crash fixed in Python lexer. - </li> - <li> - Display bugs fixed with DBCS characters on GTK+. - </li> - <li> - Autocompletion lists on GTK+ 2 are not sorted by the ListModel as the - contents are sorted correctly by Scintilla. - </li> - <li> - SciTE fixed to not open extra untitled buffers with check.if.already.open. - </li> - <li> - Sizing bug fixed on GTK+ when window resized while unmapped. - </li> - <li> - Text drawing crashing bug fixed on GTK+ with non-Pango fonts and long strings. - </li> - <li> - Fixed some issues if characters are unsigned. - </li> - <li> - Fixes in NSIS support. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite159.zip?download">Release 1.59</a> - </h3> - <ul> - <li> - Released on 19 February 2004. - </li> - <li> - SciTE Options and Language menus reduced in length by commenting - out some languages. Languages can be enabled by editing the global - properties file. - </li> - <li> - Verilog language supported. - </li> - <li> - Lexer for Microsoft dialect of SQL. SciTE properties file available from extras page. - </li> - <li> - Perl lexer disambiguates '/' better. - </li> - <li> - NSIS lexer improved with a lexical class for numbers, option for ignoring case - of keywords, and folds only occurring when folding keyword first on line. - </li> - <li> - PowerBasic lexer improved with styles for constants and assembler and - folding improvements. - </li> - <li> - On GTK+, input method support only invoked for Asian languages and not - European languages as the old European keyboard code works better. - </li> - <li> - Scintilla can be requested to allocate a certain amount and so avoid repeated - reallocations and memory inefficiencies. SciTE uses this and so should require - less memory. - </li> - <li> - SciTE's "toggle current fold" works when invoked on child line as well as - fold header. - </li> - <li> - SciTE output pane scrolling can be set to not scroll back to start after - completion of command. - </li> - <li> - SciTE has a $(SessionPath) property. - </li> - <li> - SciTE on Windows can use VK_* codes for keys in user.shortcuts. - </li> - <li> - Stack overwrite bug fixed in SciTE's command to move to the end of a - preprocessor conditional. - </li> - <li> - Bug fixed where vertical selection appeared to select a different set of characters - then would be used by, for example, a copy. - </li> - <li> - SciTE memory leak fixed in fold state remembering. - </li> - <li> - Bug fixed where changing the style of some text outside the - standard StyleNeeded notification would not be visible. - </li> - <li> - On GTK+ 2 g_iconv is used in preference to iconv, as it is provided by GTK+ - so should avoid problems finding the iconv library. - </li> - <li> - On GTK+ fixed a style reference count bug. - </li> - <li> - Memory corruption bug fixed with GetSelText. - </li> - <li> - On Windows Scintilla deletes memory on WM_NCDESTROY rather than - the earlier WM_DESTROY to avoid problems when the window is subclassed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite158.zip?download">Release 1.58</a> - </h3> - <ul> - <li> - Released on 11 January 2004. - </li> - <li> - Method to discover the currently highlighted element in an autocompletion list. - </li> - <li> - On GTK+, the lexers are now included in the scintilla.a library file. This - will require changes to the make files of dependent projects. - </li> - <li> - Octave support added alongside related Matlab language and Matlab support improved. - </li> - <li> - VB lexer gains an unterminated string state and 4 sets of keywords. - </li> - <li> - Ruby lexer handles $' correctly. - </li> - <li> - Error line handling improved for FORTRAN compilers from Absoft and Intel. - </li> - <li> - International input enabled on GTK+ 2 although there is no way to choose an - input method. - </li> - <li> - MultiplexExtension in SciTE allows multiple extensions to be used at once. - </li> - <li> - Regular expression replace interprets backslash expressions \a, \b, \f, \n, \r, \t, - and \v in the replacement value. - </li> - <li> - SciTE Replace dialog displays number of replacements made when Replace All or - Replace in Selection performed. - </li> - <li> - Localisation files may contain a translation.encoding setting which is used - on GTK+ 2 to automatically reencode the translation to UTF-8 so it will be - the localised text will be displayed correctly. - </li> - <li> - SciTE on GTK+ implements check.if.already.open. - </li> - <li> - Make files for Mac OS X made more robust. - </li> - <li> - Performance improved in SciTE when switching buffers when there - is a rectangular selection. - </li> - <li> - Fixed failure to display some text when wrapped. - </li> - <li> - SciTE crashes from Ctrl+Tab buffer cycling fixed. - May still be some rare bugs here. - </li> - <li> - Crash fixed when decoding an error message that appears similar to a - Borland error message. - </li> - <li> - Fix to auto-scrolling allows containers to implement enhanced double click selection. - </li> - <li> - Hang fixed in idle word wrap. - </li> - <li> - Crash fixed in hotspot display code.. - </li> - <li> - SciTE on Windows Incremental Search no longer moves caret back. - </li> - <li> - SciTE hang fixed when performing a replace with a find string that - matched zero length strings such as ".*". - </li> - <li> - SciTE no longer styles the whole file when saving buffer fold state - as that was slow. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite157.zip?download">Release 1.57</a> - </h3> - <ul> - <li> - Released on 27 November 2003. - </li> - <li> - SciTE remembers folding of each buffer. - </li> - <li> - Lexer for Erlang language. - </li> - <li> - Scintilla allows setting the set of white space characters. - </li> - <li> - Scintilla has 'stuttered' page movement commands to first move - to top or bottom within current visible lines before scrolling. - </li> - <li> - Scintilla commands for moving to end of words. - </li> - <li> - Incremental line wrap enabled on Windows. - </li> - <li> - SciTE PDF exporter produces output that is more compliant with reader - applications, is smaller and allows more configuration. - HTML exporter optimizes size of output files. - </li> - <li> - SciTE defines properties PLAT_WINNT and PLAT_WIN95 on the - corresponding platforms. - </li> - <li> - SciTE can adjust the line margin width to fit the largest line number. - The line.numbers property is split between line.margin.visible and - line.margin.width. - </li> - <li> - SciTE on GTK+ allows user defined menu accelerators. - Alt can be included in user.shortcuts. - </li> - <li> - SciTE Language menu can have items commented out. - </li> - <li> - SciTE on Windows Go to dialog allows choosing a column number as - well as a line number. - </li> - <li> - SciTE on GTK+ make file uses prefix setting more consistently. - </li> - <li> - Bug fixed that caused word wrapping to fail to display all text. - </li> - <li> - Crashing bug fixed in GTK+ version of Scintilla when using GDK fonts - and opening autocompletion. - </li> - <li> - Bug fixed in Scintilla SCI_GETSELTEXT where an extra NUL - was included at end of returned string - </li> - <li> - Crashing bug fixed in SciTE z-order switching implementation. - </li> - <li> - Hanging bug fixed in Perl lexer. - </li> - <li> - SciTE crashing bug fixed for using 'case' without argument in style definition. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite156.zip?download">Release 1.56</a> - </h3> - <ul> - <li> - Released on 25 October 2003. - </li> - <li> - Rectangular selection can be performed using the keyboard. - Greater programmatic control over rectangular selection. - This has caused several changes to key bindings. - </li> - <li> - SciTE Replace In Selection works on rectangular selections. - </li> - <li> - Improved lexer for TeX, new lexer for Metapost and other support for these - languages. - </li> - <li> - Lexer for PowerBasic. - </li> - <li> - Lexer for Forth. - </li> - <li> - YAML lexer improved to include error styling. - </li> - <li> - Perl lexer improved to correctly handle more cases. - </li> - <li> - Assembler lexer updated to support single-quote strings and fix some - problems. - </li> - <li> - SciTE on Windows can switch between buffers in order of use (z-order) rather - than static order. - </li> - <li> - SciTE supports adding an extension for "Open Selected Filename". - The openpath setting works on GTK+. - </li> - <li> - SciTE can Export as XML. - </li> - <li> - SciTE $(SelHeight) variable gives a more natural result for empty and whole line - selections. - </li> - <li> - Fixes to wrapping problems, such as only first display line being visible in some - cases. - </li> - <li> - Fixes to hotspot to only highlight when over the hotspot, only use background - colour when set and option to limit hotspots to a single line. - </li> - <li> - Small fixes to FORTRAN lexing and folding. - </li> - <li> - SQL lexer treats single quote strings as a separate class to double quote strings.. - </li> - <li> - Scintilla made compatible with expectations of container widget in GTK+ 2.3. - </li> - <li> - Fix to strip out pixmap ID when automatically choosing from an autocompletion - list with only one element. - </li> - <li> - SciTE bug fixed where UTF-8 files longer than 128K were gaining more than one - BOM. - </li> - <li> - Crashing bug fixed in SciTE on GTK+ where using "Stop Executing" twice leads - to all applications exiting. - </li> - <li> - Bug fixed in autocompletion scrolling on GTK+ 2 with a case sensitive list. - The ListBox::Sort method is no longer needed or available so platform - maintainers should remove it. - </li> - <li> - SciTE check.if.already.open setting removed from GTK+ version as unmaintained. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite155.zip?download">Release 1.55</a> - </h3> - <ul> - <li> - Released on 25 September 2003. - </li> - <li> - Fix a crashing bug in indicator display in Scintilla. - </li> - <li> - GTK+ version now defaults to building for GTK+ 2 rather than 1. - </li> - <li> - Mingw make file detects compiler version and avoids options - that are cause problems for some versions. - </li> - <li> - Large performance improvement on GTK+ 2 for long lines. - </li> - <li> - Incremental line wrap on GTK+. - </li> - <li> - International text entry works much better on GTK+ with particular - improvements for Baltic languages and languages that use 'dead' accents. - NUL key events such as those generated by some function keys, ignored. - </li> - <li> - Unicode clipboard support on GTK+. - </li> - <li> - Indicator type INDIC_BOX draws a rectangle around the text. - </li> - <li> - Clarion language support. - </li> - <li> - YAML language support. - </li> - <li> - MPT LOG language support. - </li> - <li> - On Windows, SciTE can switch buffers based on activation order rather - than buffer number. - </li> - <li> - SciTE save.on.deactivate saves all buffers rather than just the current buffer. - </li> - <li> - Lua lexer handles non-ASCII characters correctly. - </li> - <li> - Error lexer understands Borland errors with pathnames that contain space. - </li> - <li> - On GTK+ 2, autocompletion uses TreeView rather than deprecated CList. - </li> - <li> - SciTE autocompletion removed when expand abbreviation command used. - </li> - <li> - SciTE calltips support overloaded functions. - </li> - <li> - When Save fails in SciTE, choice offered to Save As. - </li> - <li> - SciTE message boxes on Windows may be moved to front when needed. - </li> - <li> - Indicators drawn correctly on wrapped lines. - </li> - <li> - Regular expression search no longer matches characters with high bit - set to characters without high bit set. - </li> - <li> - Hang fixed in backwards search in multi byte character documents. - </li> - <li> - Hang fixed in SciTE Mark All command when wrap around turned off. - </li> - <li> - SciTE Incremental Search no longer uses hot keys on Windows. - </li> - <li> - Calltips draw non-ASCII characters correctly rather than as arrows. - </li> - <li> - SciTE crash fixed when going to an error message with empty file name. - </li> - <li> - Bugs fixed in XPM image handling code. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite154.zip?download">Release 1.54</a> - </h3> - <ul> - <li> - Released on 12 August 2003. - </li> - <li> - SciTE on GTK+ 2.x can display a tab bar. - </li> - <li> - SciTE on Windows provides incremental search. - </li> - <li> - Lexer for PostScript. - </li> - <li> - Lexer for the NSIS scripting language. - </li> - <li> - New lexer for POV-Ray Scene Description Language - replaces previous implementation. - </li> - <li> - Lexer for the MMIX Assembler language. - </li> - <li> - Lexer for the Scriptol language. - </li> - <li> - Incompatibility: SQL keywords are specified in lower case rather than upper case. - SQL lexer allows double quoted strings. - </li> - <li> - Pascal lexer: character constants that start with '#' understood, - '@' only allowed within assembler blocks, - '$' can be the start of a number, - initial '.' in 0..constant not treated as part of a number, - and assembler blocks made more distinctive. - </li> - <li> - Lua lexer allows '.' in keywords. - Multi-line strings and comments can be folded. - </li> - <li> - CSS lexer handles multiple psuedoclasses. - </li> - <li> - Properties file folder works for INI file format. - </li> - <li> - Hidden indicator style allows the container to mark text within Scintilla - without there being any visual effect. - </li> - <li> - SciTE does not prompt to save changes when the buffer is empty and untitled. - </li> - <li> - Modification notifications caused by SCI_INSERTSTYLEDSTRING - now include the contents of the insertion. - </li> - <li> - SCI_MARKERDELETEALL deletes all the markers on a line - rather than just the first match. - </li> - <li> - Better handling of 'dead' accents on GTK+ 2 for languages - that use accented characters. - </li> - <li> - SciTE now uses value of output.vertical.size property. - </li> - <li> - Crash fixed in SciTE autocompletion on long lines. - </li> - <li> - Crash fixed in SciTE comment command on long lines. - </li> - <li> - Bug fixed with backwards regular expression search skipping - every second match. - </li> - <li> - Hang fixed with regular expression replace where both target and replacement were empty. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite153.zip?download">Release 1.53</a> - </h3> - <ul> - <li> - Released on 16 May 2003. - </li> - <li> - On GTK+ 2, encodings other than ASCII, Latin1, and Unicode are - supported for both display and input using iconv. - </li> - <li> - External lexers supported on GTK+/Linux. - External lexers must now be explicitly loaded with SCI_LOADLEXERLIBRARY - rather than relying upon a naming convention and automatic loading. - </li> - <li> - Support of Lout typesetting language. - </li> - <li> - Support of E-Scripts language used in the POL Ultima Online Emulator. - </li> - <li> - Scrolling and drawing performance on GTK+ enhanced, particularly for GTK+ 2.x - with an extra window for the text area avoiding conflicts with the scroll bars. - </li> - <li> - CopyText and CopyRange methods in Scintilla allow container to - easily copy to the system clipboard. - </li> - <li> - Line Copy command implemented and bound to Ctrl+Shift+T. - </li> - <li> - Scintilla APIs PositionBefore and PositionAfter can be used to iterate through - a document taking into account the encoding and multi-byte characters. - </li> - <li> - C++ folder can fold on the "} else {" line of an if statement by setting - fold.at.else property to 1. - </li> - <li> - C++ lexer allows an extra set of keywords. - </li> - <li> - Property names and thus abbreviations may be non-ASCII. - </li> - <li> - Removed attempt to load a file when setting properties that was - part of an old scripting experiment. - </li> - <li> - SciTE no longer warns about a file not existing when opening - properties files from the Options menu as there is a good chance - the user wants to create one. - </li> - <li> - Bug fixed with brace recognition in multi-byte encoded files where a partial - character matched a brace byte. - </li> - <li> - More protection against infinite loops or recursion with recursive property definitions. - </li> - <li> - On Windows, cursor will no longer disappear over margins in custom builds when - cursor resource not present. The Windows default cursor is displayed instead. - </li> - <li> - load.on.activate fixed in SciTE as was broken in 1.52. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite152.zip?download">Release 1.52</a> - </h3> - <ul> - <li> - Released on 17 April 2003. - </li> - <li> - Pango font support on GTK+ 2. - Unicode input improved on GTK+ 2. - </li> - <li> - Hotspot style implemented in Scintilla. - </li> - <li> - Small up and down arrows can be displayed in calltips and the container - is notified when the mouse is clicked on a calltip. - Normal and selected calltip text colours can be set. - </li> - <li> - POSIX compatibility flag in Scintilla regular expression search - interprets bare ( and ) as tagged sections. - </li> - <li> - Error message lexer tightened to yield fewer false matches. - Recognition of Lahey and Intel FORTRAN error formats. - </li> - <li> - Scintilla keyboard commands for moving to start and end of - screen lines rather than document lines, unless already there - where these keys move to the start or end of the document line. - </li> - <li> - Line joining command. - </li> - <li> - Lexer for POV-Ray. - </li> - <li> - Calltips on Windows are no longer clipped by the parent window. - </li> - <li> - Autocompletion lists are cancelled when focus leaves their parent window. - </li> - <li> - Move to next/previous empty line delimited paragraph key commands. - </li> - <li> - SciTE hang fixed with recursive property definitions by placing limit - on number of substitutions performed. - </li> - <li> - SciTE Export as PDF reenabled and works. - </li> - <li> - Added loadsession: command line command to SciTE. - </li> - <li> - SciTE option to quit application when last document closed. - </li> - <li> - SciTE option to ask user if it is OK to reload a file that has been - modified outside SciTE. - </li> - <li> - SciTE option to automatically save before running particular command tools - or to ask user or to not save. - </li> - <li> - SciTE on Windows 9x will write a Ctrl+Z to the process input pipe before - closing the pipe when running tool commands that take input. - </li> - <li> - Added a manifest resource to SciTE on Windows to enable Windows XP - themed UI. - </li> - <li> - SciTE calltips handle nested calls and other situations better. - </li> - <li> - CSS lexer improved. - </li> - <li> - Interface to platform layer changed - Surface initialisation now requires - a WindowID parameter. - </li> - <li> - Bug fixed with drawing or measuring long pieces of text on Windows 9x - by truncating the pieces. - </li> - <li> - Bug fixed with SciTE on GTK+ where a user shortcut for a visible character - inserted the character as well as executing the command. - </li> - <li> - Bug fixed where primary selection on GTK+ was reset by - Scintilla during creation. - </li> - <li> - Bug fixed where SciTE would close immediately on startup - when using save.session. - </li> - <li> - Crash fixed when entering '\' in LaTeX file. - </li> - <li> - Hang fixed when '#' last character in VB file. - </li> - <li> - Crash fixed in error message lexer. - </li> - <li> - Crash fixed when searching for long regular expressions. - </li> - <li> - Pressing return when nothing selected in user list sends notification with - empty text rather than random text. - </li> - <li> - Mouse debouncing disabled on Windows as it interfered with some - mouse utilities. - </li> - <li> - Bug fixed where overstrike mode inserted before rather than replaced last - character in document. - </li> - <li> - Bug fixed with syntax highlighting of Japanese text. - </li> - <li> - Bug fixed in split lines function. - </li> - <li> - Cosmetic fix to SciTE tab bar on Windows when window resized. - Focus sticks to either pane more consistently. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite151.zip?download">Release 1.51</a> - </h3> - <ul> - <li> - Released on 16 February 2003. - </li> - <li> - Two phase drawing avoids cutting off text that overlaps runs by drawing - all the backgrounds of a line then drawing all the text transparently. - Single phase drawing is an option. - </li> - <li> - Scintilla method to split lines at a particular width by adding new line - characters. - </li> - <li> - The character used in autocompletion lists to separate the text from the image - number can be changed. - </li> - <li> - The scrollbar range will automatically expand when the caret is moved - beyond the current range. - The scroll bar is updated when SCI_SETXOFFSET is called. - </li> - <li> - Mouse cursors on GTK+ improved to be consistent with other applications - and the Windows version. - </li> - <li> - Horizontal scrollbar on GTK+ now disappears in wrapped mode. - </li> - <li> - Scintilla on GTK+ 2: mouse wheel scrolling, cursor over scrollbars, focus, - and syntax highlighting now work. - gtk_selection_notify avoided for compatibility with GTK+ 2.2. - </li> - <li> - Fold margin colours can now be set. - </li> - <li> - SciTE can be built for GTK+ 2. - </li> - <li> - SciTE can optionally preserve the undo history over an automatic file reload. - </li> - <li> - Tags can optionally be case insensitive in XML and HTML. - </li> - <li> - SciTE on Windows handles input to tool commands in a way that should avoid - deadlock. Output from tools can be used to replace the selection. - </li> - <li> - SciTE on GTK+ automatically substitutes '|' for '/' in menu items as '/' - is used to define the menu hierarchy. - </li> - <li> - Optional buffer number in SciTE title bar. - </li> - <li> - Crash fixed in SciTE brace matching. - </li> - <li> - Bug fixed where automatic scrolling past end of document - flipped back to the beginning. - </li> - <li> - Bug fixed where wrapping caused text to disappear. - </li> - <li> - Bug fixed on Windows where images in autocompletion lists were - shown on the wrong item. - </li> - <li> - Crash fixed due to memory bug in autocompletion lists on Windows. - </li> - <li> - Crash fixed when double clicking some error messages. - </li> - <li> - Bug fixed in word part movement where sometimes no movement would occur. - </li> - <li> - Bug fixed on Windows NT where long text runs were truncated by - treating NT differently to 9x where there is a limitation. - </li> - <li> - Text in not-changeable style works better but there remain some cases where - it is still possible to delete text protected this way. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite150.zip?download">Release 1.50</a> - </h3> - <ul> - <li> - Released on 24 January 2003. - </li> - <li> - Autocompletion lists may have a per-item pixmap. - </li> - <li> - Autocompletion lists allow Unicode text on Windows. - </li> - <li> - Scintilla documentation rewritten. - </li> - <li> - Additional DBCS encoding support in Scintilla on GTK+ primarily aimed at - Japanese EUC encoding. - </li> - <li> - CSS (Cascading Style Sheets) lexer added. - </li> - <li> - diff lexer understands some more formats. - </li> - <li> - Fold box feature is an alternative way to show the structure of code. - </li> - <li> - Avenue lexer supports multiple keyword lists. - </li> - <li> - The caret may now be made invisible by setting the caret width to 0. - </li> - <li> - Python folder attaches comments before blocks to the next block rather - than the previous block. - </li> - <li> - SciTE openpath property on Windows searches a path for files that are - the subject of the Open Selected Filename command. - </li> - <li> - The localisation file name can be changed with the locale.properties property. - </li> - <li> - On Windows, SciTE can pipe the result of a string expression into a command line tool. - </li> - <li> - On Windows, SciTE's Find dialog has a Mark All button. - </li> - <li> - On Windows, there is an Insert Abbreviation command that allows a choice from - the defined abbreviations and inserts the selection into the abbreviation at the - position of a '|'. - </li> - <li> - Minor fixes to Fortran lexer. - </li> - <li> - fold.html.preprocessor decides whether to fold <? and ?>. - Minor improvements to PHP folding. - </li> - <li> - Maximum number of keyword lists allowed increased from 6 to 9. - </li> - <li> - Duplicate line command added with default assignment to Ctrl+D. - </li> - <li> - SciTE sets $(Replacements) to the number of replacements made by the - Replace All command. $(CurrentWord) is set to the word before the caret if the caret - is at the end of a word. - </li> - <li> - Opening a SciTE session now loads files in remembered order, sets the current file - as remembered, and moves the caret to the remembered line. - </li> - <li> - Bugs fixed with printing on Windows where line wrapping was causing some text - to not print. - </li> - <li> - Bug fixed with Korean Input Method Editor on Windows. - </li> - <li> - Bugs fixed with line wrap which would sometimes choose different break positions - after switching focus away and back. - </li> - <li> - Bug fixed where wheel scrolling had no effect on GTK+ after opening a fold. - </li> - <li> - Bug fixed with file paths containing non-ASCII characters on Windows. - </li> - <li> - Crash fixed with printing on Windows after defining pixmap marker. - </li> - <li> - Crash fixed in makefile lexer when first character on line was '='. - </li> - <li> - Bug fixed where local properties were not always being applied. - </li> - <li> - Ctrl+Keypad* fold command works on GTK+. - </li> - <li> - Hangs fixed in SciTE's Replace All command when replacing regular expressions '^' - or '$'. - </li> - <li> - SciTE monospace setting behaves more sensibly. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite149.zip?download">Release 1.49</a> - </h3> - <ul> - <li> - Released on 1 November 2002. - </li> - <li> - Unicode supported on GTK+. To perform well, this added a font cache to GTK+ - and to make that safe, a mutex is used. The mutex requires the application to link in - the threading library by evaluating `glib-config --libs gthread`. A Unicode locale - should also be set up by a call like setlocale(LC_CTYPE, "en_US.UTF-8"). - scintilla_release_resources function added to release mutex. - </li> - <li> - FORTRAN and assembler lexers added along with other support for these - languages in SciTE. - </li> - <li> - Ada lexer improved handling of based numbers, identifier validity and attributes - distinguished from character literals. - </li> - <li> - Lua lexer handles block comments and a deep level of nesting for literal strings - and block comments. - </li> - <li> - Errorlist lexer recognises PHP error messages. - </li> - <li> - Variant of the C++ lexer with case insensitive keywords - called cppnocase. Whitespace in preprocessor text handled more correctly. - </li> - <li> - Folder added for Perl. - </li> - <li> - Compilation with GCC 3.2 supported. - </li> - <li> - Markers can be pixmaps. - </li> - <li> - Lines are wrapped when printing. - Bug fixed which printed line numbers in different styles. - </li> - <li> - Text can be appended to end with AppendText method. - </li> - <li> - ChooseCaretX method added. - </li> - <li> - Vertical scroll bar can be turned off with SetVScrollBar method. - </li> - <li> - SciTE Save All command saves all buffers. - </li> - <li> - SciTE localisation compares keys case insensitively to make translations more flexible. - </li> - <li> - SciTE detects a utf-8 coding cookie "coding: utf-8" in first two - lines and goes into Unicode mode. - </li> - <li> - SciTE key bindings are definable. - </li> - <li> - SciTE Find in Files dialog can display directory browser to - choose directory to search. - </li> - <li> - SciTE enabling of undo and redo toolbar buttons improved. - </li> - <li> - SciTE on Windows file type filters in open dialog sorted. - </li> - <li> - Fixed crashing bug when using automatic tag closing in XML or HTML. - </li> - <li> - Fixed bug on Windows causing very long (>64K) lines to not display. - </li> - <li> - Fixed bug in backwards regular expression searching. - </li> - <li> - Fixed bug in calltips where wrong argument was highlighted. - </li> - <li> - Fixed bug in tab timmy feature when file has line feed line endings. - </li> - <li> - Fixed bug in compiling without INCLUDE_DEPRECATED_FEATURES - defined. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite148.zip?download">Release 1.48</a> - </h3> - <ul> - <li> - Released on 9 September 2002. - </li> - <li> - Improved Pascal lexer with context sensitive keywords - and separate folder which handles //{ and //} folding comments and - {$region} and {$end} folding directives. - The "case" statement now folds correctly. - </li> - <li> - C++ lexer correctly handles comments on preprocessor lines. - </li> - <li> - New commands for moving to beginning and end of display lines when in line - wrap mode. Key bindings added for these commands. - </li> - <li> - New marker symbols that look like ">>>" and "..." which can be used for - interactive shell prompts for Python. - </li> - <li> - The foreground and background colours of visible whitespace can be chosen - independent of the colours chosen for the lexical class of that whitespace. - </li> - <li> - Per line data optimised by using an exponential allocation scheme. - </li> - <li> - SciTE API file loading optimised. - </li> - <li> - SciTE for GTK+ subsystem 2 documented. The exit status of commands - is decoded into more understandable fields. - </li> - <li> - SciTE find dialog remembers previous find string when there is no selection. - Find in Selection button disabled when selection is rectangular as command - did not work. - </li> - <li> - Shift+Enter made equivalent to Enter to avoid users having to let go of - the shift key when typing. Avoids the possibility of entering single carriage - returns in a file that contains CR+LF line ends. - </li> - <li> - Autocompletion does not immediately disappear when the length parameter - to SCI_AUTOCSHOW is 0. - </li> - <li> - SciTE focuses on the editor pane when File | New executed and when the - output pane is closed with F8. Double clicking on a non-highlighted output - pane line selects the word under the cursor rather than seeking the next - highlighted line. - </li> - <li> - SciTE director interface implements an "askproperty" command. - </li> - <li> - SciTE's Export as LaTeX output improved. - </li> - <li> - Better choice of autocompletion displaying above the caret rather then - below when that is more sensible. - </li> - <li> - Bug fixed where context menu would not be completely visible if invoked - when cursor near bottom or left of screen. - </li> - <li> - Crashing bug fixed when displaying long strings on GTK+ caused failure of X server - by displaying long text in segments. - </li> - <li> - Crashing bug fixed on GTK+ when a Scintilla window was removed from its parent - but was still the selection owner. - </li> - <li> - Bug fixed on Windows in Unicode mode where not all characters on a line - were displayed when that line contained some characters not in ASCII. - </li> - <li> - Crashing bug fixed in SciTE on Windows with clearing output while running command. - </li> - <li> - Bug fixed in SciTE for GTK+ with command completion not detected when - no output was produced by the command. - </li> - <li> - Bug fixed in SciTE for Windows where menus were not shown translated. - </li> - <li> - Bug fixed where words failed to display in line wrapping mode with visible - line ends. - </li> - <li> - Bug fixed in SciTE where files opened from a session file were not closed. - </li> - <li> - Cosmetic flicker fixed when using Ctrl+Up and Ctrl+Down with some caret policies. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite147.zip?download">Release 1.47</a> - </h3> - <ul> - <li> - Released on 1 August 2002. - </li> - <li> - Support for GTK+ 2 in Scintilla. International input methods not supported - on GTK+2. - </li> - <li> - Line wrapping performance improved greatly. - </li> - <li> - New caret policy implementation that treats horizontal and vertical - positioning equivalently and independently. Old caret policy methods - deprecated and not all options work correctly with old methods. - </li> - <li> - Extra fold points for C, C++, Java, ... for fold comments //{ .. //} and - #if / #ifdef .. #endif and the #region .. #endregion feature of C#. - </li> - <li> - Scintilla method to find the height in pixels of a line. Currently returns the - same result for every line as all lines are same height. - </li> - <li> - Separate make file, scintilla_vc6.mak, for Scintilla to use Visual C++ - version 6 since main makefile now assumes VS .NET. - VS .NET project files available for combined Scintilla and - SciTE in scite/boundscheck. - </li> - <li> - SciTE automatically recognises Unicode files based - on their Byte Order Marks and switches to Unicode mode. - On Windows, where SciTE supports Unicode display, this - allows display of non European characters. - The file is saved back into the same character encoding unless - the user decides to switch using the File | Encoding menu. - </li> - <li> - Handling of character input changed so that a fillup character, typically '(' - displays a calltip when an autocompletion list was being displayed. - </li> - <li> - Multiline strings lexed better for C++ and Lua. - </li> - <li> - Regular expressions in JavaScript within hypertext files are lexed better. - </li> - <li> - On Windows, Scintilla exports a function called Scintilla_DirectFunction - that can be used the same as the function returned by GetDirectFunction. - </li> - <li> - Scintilla converts line endings of text obtained from the clipboard to - the current default line endings. - </li> - <li> - New SciTE property ensure.final.line.end can ensure that saved files - always end with a new line as this is required by some tools. - The ensure.consistent.line.ends property ensures all line ends are the - current default when saving files. - The strip.trailing.spaces property now works on the buffer so the - buffer in memory and the file on disk are the same after a save is performed. - </li> - <li> - The SciTE expand abbreviation command again allows '|' characters - in expansions to be quoted by using '||'. - </li> - <li> - SciTE on Windows can send data to the find tool through standard - input rather than using a command line argument to avoid problems - with quoting command line arguments. - </li> - <li> - The Stop Executing command in SciTE on Windows improved to send - a Ctrl+Z character to the tool. Better messages when stopping a tool. - </li> - <li> - Autocompletion can automatically "fill up" when one of a set of characters is - type with the autocomplete.<lexer>.fillups property. - </li> - <li> - New predefined properties in SciTE, SelectionStartColumn, SelectionStartLine, - SelectionEndColumn, SelectionEndLine can be used to integrate with other - applications. - </li> - <li> - Environment variables are available as properties in SciTE. - </li> - <li> - SciTE on Windows keeps status line more current. - </li> - <li> - Abbreviations work in SciTE on Linux when first opened. - </li> - <li> - File saving fixed in SciTE to ensure files are not closed when they can not be - saved because of file permissions. Also fixed a problem with buffers that - caused files to not be saved. - </li> - <li> - SciTE bug fixed where monospace mode not remembered when saving files. - Some searching options now remembered when switching files. - </li> - <li> - SciTE on Linux now waits on child termination when it shuts a child down - to avoid zombies. - </li> - <li> - SciTE on Linux has a Print menu command that defaults to invoking a2ps. - </li> - <li> - Fixed incorrect highlighting of indentation guides in SciTE for Python. - </li> - <li> - Crash fixed in Scintilla when calling GetText for 0 characters. - </li> - <li> - Exporting as LaTeX improved when processing backslashes and tabs - and setting up font. - </li> - <li> - Crash fixed in SciTE when exporting or copying as RTF. - </li> - <li> - SciTE session loading fixed to handle more than 10 files in session. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite146.zip?download">Release 1.46</a> - </h3> - <ul> - <li> - Released on 10 May 2002. - </li> - <li> - Set of lexers compiled into Scintilla can now be changed by adding and - removing lexer source files from scintilla/src and running LexGen.py. - </li> - <li> - SCN_ZOOM notification provided by Scintilla when user changes zoom level. - Method to determine width of strings in pixels so that elements can be sized - relative to text size. - SciTE changed to keep line number column displaying a given - number of characters. - </li> - <li> - The logical width of the document used to determine scroll bar range can be set. - </li> - <li> - Setting to allow vertical scrolling to display last line at top rather than - bottom of window. - </li> - <li> - Read-only mode improved to avoid changing the selection in most cases - when a modification is attempted. Drag and drop cursors display correctly - for read-only in some cases. - </li> - <li> - Visual C++ options in make files changed to suit Visual Studio .NET. - </li> - <li> - Scintilla.iface includes feature types for enumerations and lexers. - </li> - <li> - Lua lexer improves handling of literal strings and copes with nested literal strings. - </li> - <li> - Diff lexer changed to treat lines starting with "***" similarly to "---". - Symbolic names defined for lexical classes. - </li> - <li> - nncrontab lexer improved. - </li> - <li> - Turkish fonts (iso8859-9) supported on GTK+. - </li> - <li> - Automatic close tag feature for XML and HTML in SciTE. - </li> - <li> - Automatic indentation in SciTE improved. - </li> - <li> - Maximum number of buffers available in SciTE increased. May be up to 100 - although other restrictions on menu length limit the real maximum. - </li> - <li> - Save a Copy command added to SciTE. - </li> - <li> - Export as TeX command added to SciTE. - </li> - <li> - Export as HTML command in SciTE respects Use Monospaced Font and - background colour settings. - </li> - <li> - Compilation problem on Solaris fixed. - </li> - <li> - Order of files displayed for SciTE's previous and next menu and key commands - are now consistent. - </li> - <li> - Saving of MRU in recent file changed so files open when SciTE quit - are remembered. - </li> - <li> - More variants of ctags tags handled by Open Selected Filename in SciTE. - </li> - <li> - JavaScript embedded in XML highlighted again. - </li> - <li> - SciTE status bar updated after changing parameters in case they are being - displayed in status bar. - </li> - <li> - Crash fixed when handling some multi-byte languages. - </li> - <li> - Crash fixed when replacing end of line characters. - </li> - <li> - Bug in SciTE fixed in multiple buffer mode where automatic loading - turned on could lead to losing file contents. - </li> - <li> - Bug in SciTE on GTK+ fixed where dismissing dialogs with close box led to - those dialogs never being shown again. - </li> - <li> - Bug in SciTE on Windows fixed where position.tile with default positions - led to SciTE being positioned off-screen. - </li> - <li> - Bug fixed in read-only mode, clearing all deletes contraction state data - leading to it not being synchronized with text. - </li> - <li> - Crash fixed in SciTE on Windows when tab bar displayed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite145.zip?download">Release 1.45</a> - </h3> - <ul> - <li> - Released on 15 March 2002. - </li> - <li> - Line layout cache implemented to improve performance by maintaining - the positioning of characters on lines. Can be set to cache nothing, - the line with the caret, the visible page or the whole document. - </li> - <li> - Support, including a new lexer, added for Matlab programs. - </li> - <li> - Lua folder supports folding {} ranges and compact mode. - Lua lexer styles floating point numbers in number style instead of - setting the '.' in operator style. - Up to 6 sets of keywords. - Better support for [[ although only works well - when all on one line. - </li> - <li> - Python lexer improved to handle floating point numbers that contain negative - exponents and that start with '.'. - </li> - <li> - When performing a rectangular paste, the caret now remains at the - insertion point. - </li> - <li> - On Windows with a wheel mouse, page-at-a-time mode is recognised. - </li> - <li> - Read-only mode added to SciTE with a property to initialise it and another property, - $(ReadOnly) available to show this mode in the status bar. - </li> - <li> - SciTE status bar can show the number of lines in the selection - with the $(SelHeight) property. - </li> - <li> - SciTE's "Export as HTML" command uses the current character set to produce - correct output for non-Western-European character sets, such as Russian. - </li> - <li> - SciTE's "Export as RTF" fixed to produce correct output when file contains '\'. - </li> - <li> - SciTE goto command accepts a column as well as a line. - If given a column, it selects the word at that column. - </li> - <li> - SciTE's Build, Compile and Go commands are now disabled if no - action has been assigned to them. - </li> - <li> - The Refresh button in the status bar has been removed from SciTE on Windows. - </li> - <li> - Bug fixed in line wrap mode where cursor up or down command did not work. - </li> - <li> - Some styling bugs fixed that were due to a compilation problem with - gcc and inline functions with same name but different code. - </li> - <li> - The way that lexers loop over text was changed to avoid accessing beyond the - end or setting beyond the end. May fix some bugs and make the code safer but - may also cause new bugs. - </li> - <li> - Bug fixed in HTML lexer's handling of SGML. - </li> - <li> - Bug fixed on GTK+/X where lines wider than 32767 pixels did not display. - </li> - <li> - SciTE bug fixed with file name generation for standard property files. - </li> - <li> - SciTE bug fixed with Open Selected Filename command when used with - file name and line number combination. - </li> - <li> - In SciTE, indentation and tab settings stored with buffers so maintained correctly - as buffers selected. - The properties used to initialise these settings can now be set separately for different - file patterns. - </li> - <li> - Thread safety improved on Windows with a critical section protecting the font - cache and initialisation of globals performed within Scintilla_RegisterClasses. - New Scintilla_ReleaseResources call provided to allow explicit freeing of resources - when statically bound into another application. Resources automatically freed - in DLL version. The window classes are now unregistered as part of resource - freeing which fixes bugs that occurred in some containers such as Internet Explorer. - </li> - <li> - 'make install' fixed on Solaris. - </li> - <li> - Bug fixed that could lead to a file being opened twice in SciTE. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite144.zip?download">Release 1.44</a> - </h3> - <ul> - <li> - Released on 4 February 2002. - </li> - <li> - Crashing bug fixed in Editor::Paint. - </li> - <li> - Lua lexer no longer treats '.' as a word character and - handles 6 keyword sets. - </li> - <li> - WordStartPosition and WordEndPosition take an onlyWordCharacters - argument. - </li> - <li> - SciTE option for simplified automatic indentation which repeats - the indentation of the previous line. - </li> - <li> - Compilation fix on Alpha because of 64 bit. - </li> - <li> - Compilation fix for static linking. - </li> - <li> - Limited maximum line length handled to 8000 characters as previous - value of 16000 was causing stack exhaustion crashes for some. - </li> - <li> - When whole document line selected, only the last display line gets - the extra selected rectangle at the right hand side rather than - every display line. - </li> - <li> - Caret disappearing bug fixed for the case that the caret was not on the - first display line of a document line. - </li> - <li> - SciTE bug fixed where untitled buffer containing text was sometimes - deleted without chance to save. - </li> - <li> - SciTE bug fixed where use.monospaced not working with - multiple buffers. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite143.zip?download">Release 1.43</a> - </h3> - <ul> - <li> - Released on 19 January 2002. - </li> - <li> - Line wrapping robustness and performance improved in Scintilla. - </li> - <li> - Line wrapping option added to SciTE for both edit and output panes. - </li> - <li> - Static linking on Windows handles cursor resource better. - Documentation of static linking improved. - </li> - <li> - Autocompletion has an option to delete any word characters after the caret - upon selecting an item. - </li> - <li> - FOX version identified by PLAT_FOX in Platform.h. - </li> - <li> - Calltips in SciTE use the calltip.<lexer>.word.characters setting to - correctly find calltips for functions that include characters like '$' which - is not normally considered a word character. - </li> - <li> - SciTE has a command to show help on itself which gets hooked up to displaying - SciTEDoc.html. - </li> - <li> - SciTE option calltip.<lexer>.end.definition to display help text on a - second line of calltip. - </li> - <li> - Fixed the handling of the Buffers menu on GTK+ to ensure current buffer - indicated and no warnings occur. - Changed some menu items on GTK+ version to be same as Windows version. - </li> - <li> - use.monospaced property for SciTE determines initial state of Use Monospaced Font - setting. - </li> - <li> - The SciTE Complete Symbol command now works when there are no word - characters before the caret, even though it is slow to display the whole set of - symbols. - </li> - <li> - Function names removed from SciTE's list of PHP keywords. The full list of - predefined functions is available from another web site mentioned on the - Extras page. - </li> - <li> - Crashing bug at startup on GTK+ for some configurations fixed. - </li> - <li> - Crashing bug on GTK+ on 64 bit platforms fixed. - </li> - <li> - Compilation problem with some compilers fixed in GTK+. - </li> - <li> - Japanese text entry improved on Windows 9x. - </li> - <li> - SciTE recent files directory problem on Windows when HOME and SciTE_HOME - environment variables not set is now the directory of the executable. - </li> - <li> - Session files no longer include untitled buffers. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite142.zip?download">Release 1.42</a> - </h3> - <ul> - <li> - Released on 24 December 2001. - </li> - <li> - Better localisation support including context menus and most messages. - Translations of the SciTE user interface available for Bulgarian, - French, German, Italian, Russian, and Turkish. - </li> - <li> - Can specify a character to use to indicate control characters - rather than having them displayed as mnemonics. - </li> - <li> - Scintilla key command for backspace that will not delete line - end characters. - </li> - <li> - Scintilla method to find start and end of words. - </li> - <li> - SciTE on GTK+ now supports the load.on.activate and save.on.deactivate - properties in an equivalent way to the Windows version. - </li> - <li> - The output pane of SciTE on Windows is now interactive so command line - utilities that prompt for input or confirmation can be used. - </li> - <li> - SciTE on Windows can choose directory for a "Find in Files" - command like the GTK+ version could. - </li> - <li> - SciTE can now load a set of API files rather than just one file. - </li> - <li> - ElapsedTime class added to Platform for accurate measurement of durations. - Used for debugging and for showing the user how long commands take in SciTE. - </li> - <li> - Baan lexer added. - </li> - <li> - In C++ lexer, document comment keywords no longer have to be at the start - of the line. - </li> - <li> - PHP lexer changed to match keywords case insensitively. - </li> - <li> - More shell keywords added. - </li> - <li> - SciTE support for VoiceXML added to xml.properties. - </li> - <li> - In SciTE the selection is not copied to the find field of the Search and Replace - dialogs if it contains end of line characters. - </li> - <li> - SciTE on Windows has a menu item to decide whether to respond to other - instances which are performing their check.if.already.open check. - </li> - <li> - SciTE accelerator key for Box Comment command changed to avoid problems - in non-English locales. - </li> - <li> - SciTE context menu includes Close command for the editor pane and - Hide command for the output pane. - </li> - <li> - output: command added to SciTE director interface to add text to the - output pane. The director interface can execute commands (such as tool - commands with subsystem set to 3) by sending a macro:run message. - </li> - <li> - SciTE on GTK+ will defer to the Window Manager for position if position.left or - position.top not set and for size if position.width or position.height not set. - </li> - <li> - SciTE on Windows has a position.tile property to place a second instance - to the right of the first. - </li> - <li> - Scintilla on Windows again supports EM_GETSEL and EM_SETSEL. - </li> - <li> - Problem fixed in Scintilla on Windows where control ID is no longer cached - as it could be changed by external code. - </li> - <li> - Problems fixed in SciTE on Windows when finding any other open instances at - start up when check.if.already.open is true. - </li> - <li> - Bugs fixed in SciTE where command strings were not always having - variables evaluated. - </li> - <li> - Bugs fixed with displaying partial double-byte and Unicode characters - in rectangular selections and at the edge when edge mode is EDGE_BACKGROUND. - Column numbers reported by GetColumn treat multiple byte characters as one column - rather than counting bytes. - </li> - <li> - Bug fixed with caret movement over folded lines. - </li> - <li> - Another bug fixed with tracking selection in secondary views when performing - modifications. - </li> - <li> - Horizontal scrolling and display of long lines optimised. - </li> - <li> - Cursor setting in Scintilla on GTK+ optimised. - </li> - <li> - Experimental changeable style attribute. - Set to false to make text read-only. - Currently only stops caret from being within not-changeable - text and does not yet stop deleting a range that contains - not-changeable text. - Can be used from SciTE by adding notchangeable to style entries. - </li> - <li> - Experimental line wrapping. - Currently has performance and appearence problems. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite141.zip?download">Release 1.41</a> - </h3> - <ul> - <li> - Released on 6 November 2001. - </li> - <li> - Changed Platform.h to not include platform headers. This lessens likelihood and impact of - name clashes from system headers and also speeds up compilation. - Renamed DrawText to DrawTextNoClip to avoid name clash. - </li> - <li> - Changed way word functions work to treat a sequence of punctuation as - a word. This is more sensible and also more compatible with other editors. - </li> - <li> - Cursor changes over the margins and selection on GTK+ platform. - </li> - <li> - SC_MARK_BACKGROUND is a marker that only changes the line's background colour. - </li> - <li> - Enhanced Visual Basic lexer handles character date and octal literals, - and bracketed keywords for VB.NET. There are two VB lexers, vb and vbscript - with type indication characters like ! and $ allowed at the end of identifiers - in vb but not vbscript. Lexer states now separate from those used for C++ and - names start with SCE_B. - </li> - <li> - Lexer added for Bullant language. - </li> - <li> - The horizontal scroll position, xOffset, is now exposed through the API. - </li> - <li> - The SCN_POSCHANGED notification is deprecated as it was causing confusion. - Use SCN_UPDATEUI instead. - </li> - <li> - Compilation problems fixed for some versions of gcc. - </li> - <li> - Support for WM_GETTEXT restored on Windows. - </li> - <li> - Double clicking on an autocompletion list entry works on GTK+. - </li> - <li> - Bug fixed with case insensitive sorts for autocompletion lists. - </li> - <li> - Bug fixed with tracking selection in secondary views when performing modifications. - </li> - <li> - SciTE's abbreviation expansion feature will now indent expansions to the current - indentation level if indent.automatic is on. - </li> - <li> - SciTE allows setting up of parameters to commands from a dialog and can also - show this dialog automatically to prompt for arguments when running a command. - </li> - <li> - SciTE's Language menu (formerly Options | Use Lexer) is now defined by the - menu.language property rather than being hardcoded. - </li> - <li> - The user interface of SciTE can be localised to a particular language by editing - a locale.properties file. - </li> - <li> - On Windows, SciTE will try to move to the front when opening a new file from - the shell and using check.if.already.open. - </li> - <li> - SciTE can display the file name and directory in the title bar in the form - "file @ directory" when title.full.path=2. - </li> - <li> - The SciTE time.commands property reports the time taken by a command as well - as its status when completed. - </li> - <li> - The SciTE find.files property is now a list separated by '|' characters and this list is - added into the Files pull down of the Find in Files dialog. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite140.zip?download">Release 1.40</a> - </h3> - <ul> - <li> - Released on 23 September 2001. - </li> - <li> - Removal of emulation of Win32 RichEdit control in core of Scintilla. - <em>This change may be incompatible with existing client code.</em> - Some emulation still done in Windows platform layer. - </li> - <li> - SGML support in the HTML/XML lexer. - </li> - <li> - SciTE's "Stop Executing" command will terminate GUI programs on - Windows NT and Windows 2000. - </li> - <li> - StyleContext class helps construct lexers that are simple and accurate. - Used in the C++, Eiffel, and Python lexers. - </li> - <li> - Clipboard operations in GTK+ version convert between platform '\n' line endings and - currently chosen line endings. - </li> - <li> - Any character in range 0..255 can be used as a marker. - This can be used to support numbered bookmarks, for example. - </li> - <li> - The default scripting language for ASP can be set. - </li> - <li> - New lexer and other support for crontab files used with the nncron scheduler. - </li> - <li> - Folding of Python improved. - </li> - <li> - The ` character is treated as a Python operator. - </li> - <li> - Line continuations ("\" at end of line) handled inside Python strings. - </li> - <li> - More consistent handling of line continuation ('\' at end of line) in - C++ lexer. - This fixes macro definitions that span more than one line. - </li> - <li> - C++ lexer can understand Doxygen keywords in doc comments. - </li> - <li> - SciTE on Windows allows choosing to open the "open" dialog on the directory - of the current file rather than in the default directory. - </li> - <li> - SciTE on Windows handles command line arguments in "check.if.already.open" - correctly when the current directory of the new instance is different to the - already open instance of SciTE. - </li> - <li> - "cwd" command (change working directory) defined for SciTE director interface. - </li> - <li> - SciTE "Export As HTML" produces better, more compliant, and shorter files. - </li> - <li> - SciTE on Windows allows several options for determining default file name - for exported files. - </li> - <li> - Automatic indentation of Python in SciTE fixed. - </li> - <li> - Exported HTML can support folding. - </li> - <li> - Bug fixed in SCI_GETTEXT macro command of director interface. - </li> - <li> - Cursor leak fixed on GTK+. - </li> - <li> - During SciTE shutdown, "identity" messages are no longer sent over the director interface. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite139.zip?download">Release 1.39</a> - </h3> - <ul> - <li> - Released on 22 August 2001. - </li> - <li> - Windows version requires msvcrt.dll to be available so will not work - on original Windows 95 version 1. The msvcrt.dll file is installed - by almost everything including Internet Explorer so should be available. - </li> - <li> - Flattened tree control style folding margin. The SciTE fold.plus option is - now fold.symbols and has more values for the new styles. - </li> - <li> - Mouse dwell events are generated when the user holds the mouse steady - over Scintilla. - </li> - <li> - PositionFromPointClose is like PositionFromPoint but returns - INVALID_POSITION when point outside window or after end of line. - </li> - <li> - Input of Hungarian and Russian characters in GTK+ version works by - truncating input to 8 bits if in the range of normal characters. - </li> - <li> - Better choices for font descriptors on GTK+ for most character sets. - </li> - <li> - GTK+ Scintilla is destroyed upon receiving destroy signal rather than - destroy_event signal. - </li> - <li> - Style setting that force upper or lower case text. - </li> - <li> - Case-insensitive autocompletion lists work correctly. - </li> - <li> - Keywords can be prefix based so ^GTK_ will treat all words that start - with GTK_ as keywords. - </li> - <li> - Qt::Horizontal scrolling can be jumpy rather than gradual. - </li> - <li> - GetSelText places a '\0' in the buffer if the selection is empty.. - </li> - <li> - EnsureVisible split into two methods EnsureVisible which will not scroll to show - the line and EnsureVisibleEnforcePolicy which may scroll. - </li> - <li> - Python folder has options to fold multi-line comments and triple quoted strings. - </li> - <li> - C++ lexer handles keywords before '.' like "this.x" in Java as keywords. - Compact folding mode option chooses whether blank lines after a structure are - folded with that structure. Second set of keywords with separate style supported. - </li> - <li> - Ruby lexer handles multi-line comments. - </li> - <li> - VB has folder. - </li> - <li> - PHP lexer has an operator style, handles "<?" and "?>" inside strings - and some comments. - </li> - <li> - TCL lexer which is just an alias for the C++ lexer so does not really - understand TCL syntax. - </li> - <li> - Error lines lexer has styles for Lua error messages and .NET stack traces. - </li> - <li> - Makefile lexer has a target style. - </li> - <li> - Lua lexer handles some [[]] string literals. - </li> - <li> - HTML and XML lexer have a SCE_H_SGML state for tags that - start with "<!". - </li> - <li> - Fixed Scintilla bugs with folding. When modifications were performed near - folded regions sometimes no unfolding occurred when it should have. Deleting a - fold causing character sometimes failed to update fold information correctly. - </li> - <li> - Better support for Scintilla on GTK+ for Win32 including separate - PLAT_GTK_WIN32 definition and correct handling of rectangular selection - with clipboard operations. - </li> - <li> - SciTE has a Tools | Switch Pane (Ctrl+F6) command to switch focus between - edit and output panes. - </li> - <li> - SciTE option output.scroll allows automatic scrolling of output pane to - be turned off. - </li> - <li> - Commands can be typed into the SciTE output pane similar to a shell window. - </li> - <li> - SciTE properties magnification and output magnification set initial zoom levels. - </li> - <li> - Option for SciTE comment block command to place comments at start of line. - </li> - <li> - SciTE for Win32 has an option to minimize to the tray rather than the task bar. - </li> - <li> - Close button on SciTE tool bar for Win32. - </li> - <li> - SciTE compiles with GCC 3.0. - </li> - <li> - SciTE's automatic indentation of C++ handles braces without preceding keyword - correctly. - </li> - <li> - Bug fixed with GetLine method writing past the end of where it should. - </li> - <li> - Bug fixed with mouse drag automatic scrolling when some lines were folded. - </li> - <li> - Bug fixed because caret XEven setting was inverted. - </li> - <li> - Bug fixed where caret was initially visible even though window was not focussed. - </li> - <li> - Bug fixed where some file names could end with "\\" which caused slow - downs on Windows 9x. - </li> - <li> - On Win32, SciTE Replace dialog starts with focus on replacement text. - </li> - <li> - SciTE Go to dialog displays correct current line. - </li> - <li> - Fixed bug with SciTE opening multiple files at once. - </li> - <li> - Fixed bug with Unicode key values reported to container truncated. - </li> - <li> - Fixed bug with unnecessary save point notifications. - </li> - <li> - Fixed bugs with indenting and unindenting at start of line. - </li> - <li> - Monospace Font setting behaves more consistently. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite138.zip?download">Release 1.38</a> - </h3> - <ul> - <li> - Released on 23 May 2001. - </li> - <li> - Loadable lexer plugins on Windows. - </li> - <li> - Ruby lexer and support. - </li> - <li> - Lisp lexer and support. - </li> - <li> - Eiffel lexer and support. - </li> - <li> - Modes for better handling of Tab and BackSpace keys within - indentation. Mode to avoid autocompletion list cancelling when - there are no viable matches. - </li> - <li> - ReplaceTarget replaced with two calls ReplaceTarget - (which is incompatible with previous ReplaceTarget) and - ReplaceTargetRE. Both of these calls have a count first - parameter which allows using strings containing nulls. - SearchInTarget and SetSearchFlags functions allow - specifying a search in several simple steps which helps - some clients which can not create structs or pointers easily. - </li> - <li> - Asian language input through an Input Method Editor works - on Windows 2000. - </li> - <li> - On Windows, control characters can be entered through use of - the numeric keypad in conjunction with the Alt key. - </li> - <li> - Document memory allocation changed to grow exponentially - which reduced time to load a 30 Megabyte file from - 1000 seconds to 25. Change means more memory may be used. - </li> - <li> - Word part movement keys now handled in Scintilla rather than - SciTE. - </li> - <li> - Regular expression '^' and '$' work more often allowing insertion - of text at start or end of line with a replace command. - Backslash quoted control characters \a, \b, \f, \t, and \v - recognised within sets. - </li> - <li> - Session files for SciTE. - </li> - <li> - Export as PDF command hidden in SciTE as it often failed. - Code still present so can be turned on by those willing to cope. - </li> - <li> - Bug fixed in HTML lexer handling % before > as end ASP - even when no start ASP encountered. - Bug fixed when scripts ended with a quoted string and - end tag was not seen. - </li> - <li> - Bug fixed on Windows where context menu key caused menu to - appear in corner of screen rather than within window. - </li> - <li> - Bug fixed in SciTE's Replace All command not processing - whole file when replace string longer than search string. - </li> - <li> - Bug fixed in SciTE's MRU list repeating entries if Ctrl+Tab - used when all entries filled. - </li> - <li> - ConvertEOLs call documentation fixed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite137.zip?download">Release 1.37</a> - </h3> - <ul> - <li> - Released on 17 April 2001. - </li> - <li> - Bug fixed with scroll bars being invisible on GTK+ 1.2.9. - </li> - <li> - Scintilla and SciTE support find and replace using simple regular - expressions with tagged expressions. SciTE supports C '\' escapes - in the Find and Replace dialogs. - Replace in Selection available in SciTE. - </li> - <li> - Scintilla has a 'target' feature for replacing code rapidly without - causing display updates. - </li> - <li> - Scintilla and SciTE on GTK+ support file dropping from file managers - such as Nautilus and gmc. Files or other URIs dropped on Scintilla - result in a URIDropped notification. - </li> - <li> - Lexers may have separate Lex and Fold functions. - </li> - <li> - Lexer infrastructure improved to allow for plug in lexers and for referring - to lexers by name rather than by ID. - </li> - <li> - Ada lexer and support added. - </li> - <li> - Option in both Scintilla and SciTE to treat both left and right margin - as equally important when repositioning visible area in response to - caret movement. Default is to prefer visible area positioning which - minimises the horizontal scroll position thus favouring the left margin. - </li> - <li> - Caret line highlighting. - </li> - <li> - Commands to delete from the caret to the end of line and - from the caret to the beginning of line. - </li> - <li> - SciTE has commands for inserting and removing block comments and - for inserting stream comments. - </li> - <li> - SciTE Director interface uses C++ '\' escapes to send control characters. - </li> - <li> - SciTE Director interface adds more commands including support for macros. - </li> - <li> - SciTE has menu options for recording and playing macros which are visible - when used with a companion program that supports these features. - </li> - <li> - SciTE has an Expand Abbreviation command. - Abbreviations are stored in a global abbrev.properties file. - </li> - <li> - SciTE has a Full Screen command to switch between a normal window - size and using the full screen. On Windows, the menu bar can be turned - off when in full screen mode. - </li> - <li> - SciTE has a Use monospaced font command to switch between the normal - set of fonts and one size of a particular fixed width font. - </li> - <li> - SciTE's use of tabs can be controlled for particular file names - as well as globally. - </li> - <li> - The contents of SciTE's status bar can be defined by a property and - include variables. On Windows, several status bar definitions can be active - with a click on the status bar cycling through them. - </li> - <li> - Copy as RTF command in SciTE on Windows to allow pasting - styled text into word processors. - </li> - <li> - SciTE can allow the use of non-alphabetic characters in - Complete Symbol lists and can automatically display this autocompletion - list when a trigger character such as '.' is typed. - Complete word can be set to pop up when the user is typing a word and - there is only one matching word in the document. - </li> - <li> - SciTE lists the imported properties files on a menu to allow rapid - access to them. - </li> - <li> - SciTE on GTK+ improvements to handling accelerator keys and focus - in dialogs. Message boxes respond to key presses without the Alt key as - they have no text entries to accept normal keystrokes. - </li> - <li> - SciTE on GTK+ sets the application icon. - </li> - <li> - SciTE allows setting the colours used to indicate the current - error line. - </li> - <li> - Variables within PHP strings have own style. Keyword list updated. - </li> - <li> - Keyword list for Lua updated for Lua 4.0. - </li> - <li> - Bug fixed in rectangular selection where rectangle still appeared - selected after using cursor keys to move caret. - </li> - <li> - Bug fixed in C++ lexer when deleting a '{' controlling a folded range - led to that range becoming permanently invisible. - </li> - <li> - Bug fixed in Batch lexer where comments were not recognised. - </li> - <li> - Bug fixed with undo actions coalescing into steps incorrectly. - </li> - <li> - Bug fixed with Scintilla on GTK+ positioning scroll bars 1 pixel - over the Scintilla window leading to their sides being chopped off. - </li> - <li> - Bugs fixed in SciTE when doing some actions led to the start - or end of the file being displayed rather than the current location. - </li> - <li> - Appearance of calltips fixed to look like document text including - any zoom factor. Positioned to be outside current line even when - multiple fonts and sizes used. - </li> - <li> - Bug fixed in Scintilla macro support where typing Enter caused both a newline - command and newline character insertion to be recorded. - </li> - <li> - Bug fixed in SciTE on GTK+ where focus was moving - between widgets incorrectly. - </li> - <li> - Bug fixed with fold symbols sometimes not updating when - the text changed. - </li> - <li> - Bugs fixed in SciTE's handling of folding commands. - </li> - <li> - Deprecated undo collection enumeration removed from API. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite136.zip?download">Release 1.36</a> - </h3> - <ul> - <li> - Released on 1 March 2001. - </li> - <li> - Scintilla supports GTK+ on Win32. - </li> - <li> - Some untested work on making Scintilla and SciTE 64 bit compatible. - For users on GTK+ this requires including Scintilla.h before - ScintillaWidget.h. - </li> - <li> - HTML lexer allows folding HTML. - </li> - <li> - New lexer for Avenue files which are used in the ESRI ArcView GIS. - </li> - <li> - DOS Batch file lexer has states for '@', external commands, variables and - operators. - </li> - <li> - C++ lexer can fold comments of /* .. */ form. - </li> - <li> - Better disabling of popup menu items in Scintilla when in read-only mode. - </li> - <li> - Starting to move to Doxygen compatible commenting. - </li> - <li> - Director interface on Windows enables another application to control SciTE. - </li> - <li> - Opening SciTE on Windows 9x sped up greatly for some cases. - </li> - <li> - The command.build.directory property allows SciTE to run the build - command in a different directory to the source files. - </li> - <li> - SciTE on Windows allows setting foreground and background colours - for printed headers and footers. - </li> - <li> - Bug fixed in finding calltips in SciTE which led to no calltips for some identifiers. - </li> - <li> - Documentation added for lexers and for the extension and director interfaces. - </li> - <li> - SciTE menus rearranged with new View menu taking over some of the items that - were under the Options menu. Clear All Bookmarks command added. - </li> - <li> - Clear Output command in SciTE. - </li> - <li> - SciTE on Windows gains an Always On Top command. - </li> - <li> - Bug fixed in SciTE with attempts to define properties recursively. - </li> - <li> - Bug fixed in SciTE properties where only one level of substitution was done. - </li> - <li> - Bug fixed in SciTE properties where extensions were not being - matched in a case insensitive manner. - </li> - <li> - Bug fixed in SciTE on Windows where the Go to dialog displays the correct - line number. - </li> - <li> - In SciTE, if fold.on.open set then switching buffers also performs fold. - </li> - <li> - Bug fixed in Scintilla where ensuring a line was visible in the presence of folding - operated on the document line instead of the visible line. - </li> - <li> - SciTE command line processing modified to operate on arguments in order and in - two phases. First any arguments before the first file name are processed, then the - UI is opened, then the remaining arguments are processed. Actions defined for the - Director interface (currently only "open") may also be used on the command line. - For example, "SciTE -open:x.txt" will start SciTE and open x.txt. - </li> - <li> - Numbered menu items SciTE's Buffers menu and the Most Recently Used portion - of the File menu go from 1..0 rather than 0..9. - </li> - <li> - The tab bar in SciTE for Windows has numbers. - The tab.hide.one option hides the tab bar until there is more than one buffer open. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite135.zip?download">Release 1.35</a> - </h3> - <ul> - <li> - Released on 29 January 2001. - </li> - <li> - Rewritten and simplified widget code for the GTK+ version to enhance - solidity and make more fully compliant with platform norms. This includes more - normal handling of keystrokes so they are forwarded to containers correctly. - </li> - <li> - User defined lists can be shown. - </li> - <li> - Many fixes to the Perl lexer. - </li> - <li> - Pascal lexer handles comments more correctly. - </li> - <li> - C/C++/Java/JavaScipt lexer has a state for line doc comments. - </li> - <li> - Error output lexer understands Sun CC messages. - </li> - <li> - Make file lexer has variable, preprocessor, and operator states. - </li> - <li> - Wider area given to an italics character that is at the end of a line to prevent it - being cut off. - </li> - <li> - Call to move the caret inside the currently visible area. - </li> - <li> - Paste Rectangular will space fill on the left hand side of the pasted text as - needed to ensure it is kept rectangular. - </li> - <li> - Cut and Paste Rectangular does nothing in read-only mode. - </li> - <li> - Undo batching changed so that a paste followed by typing creates two undo actions.. - </li> - <li> - A "visibility policy" setting for Scintilla determines which range of lines are displayed - when a particular line is moved to. Also exposed as a property in SciTE. - </li> - <li> - SciTE command line allows property settings. - </li> - <li> - SciTE has a View Output command to hide or show the output pane. - </li> - <li> - SciTE's Edit menu has been split in two with searching commands moved to a - new Search menu. Find Previous and Previous Bookmark are in the Search menu. - </li> - <li> - SciTE on Windows has options for setting print margins, headers and footers. - </li> - <li> - SciTE on Windows has tooltips for toolbar. - </li> - <li> - SciTE on GTK+ has properties for setting size of file selector. - </li> - <li> - Visual and audio cues in SciTE on Windows enhanced. - </li> - <li> - Fixed performance problem in SciTE for GTK+ by dropping the extra 3D - effect on the content windows. - </li> - <li> - Fixed problem in SciTE where choosing a specific lexer then meant - that no lexer was chosen when files opened. - </li> - <li> - Default selection colour changed to be visible on low colour displays. - </li> - <li> - Fixed problems with automatically reloading changed documents in SciTE on - Windows. - </li> - <li> - Fixed problem with uppercase file extensions in SciTE. - </li> - <li> - Fixed some problems when using characters >= 128, some of which were being - incorrectly treated as spaces. - </li> - <li> - Fixed handling multiple line tags, non-inline scripts, and XML end tags /> in HTML/XML lexer. - </li> - <li> - Bookmarks in SciTE no longer disappear when switching between buffers. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite134.zip?download">Release 1.34</a> - </h3> - <ul> - <li> - Released on 28 November 2000. - </li> - <li> - Pascal lexer. - </li> - <li> - Export as PDF in SciTE. - </li> - <li> - Support for the OpenVMS operating system in SciTE. - </li> - <li> - SciTE for GTK+ can check for another instance of SciTE - editing a file and switch to it rather than open a second instance - on one file. - </li> - <li> - Fixes to quoting and here documents in the Perl lexer. - </li> - <li> - SciTE on Windows can give extra visual and audio cues when a - warning is shown or find restarts from beginning of file. - </li> - <li> - Open Selected Filename command in SciTE. Also understands some - warning message formats. - </li> - <li> - Wider area for line numbers when printing. - </li> - <li> - Better scrolling performance on GTK+. - </li> - <li> - Fixed problem where rectangles with negative coordinates were - invalidated leading to trouble with platforms that use - unsigned coordinates. - </li> - <li> - GTK+ Scintilla uses more compliant signalling code so that keyboard - events should propagate to containers. - </li> - <li> - Bug fixed with opening full or partial paths. - </li> - <li> - Improved handling of paths in error messages in SciTE. - </li> - <li> - Better handling of F6 in SciTE. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite133.zip?download">Release 1.33</a> - </h3> - <ul> - <li> - Released on 6 November 2000. - </li> - <li> - XIM support for the GTK+ version of Scintilla ensures that more non-English - characters can be typed. - </li> - <li> - Caret may be 1, 2, or 3 pixels wide. - </li> - <li> - Cursor may be switched to wait image during lengthy processing. - </li> - <li> - Scintilla's internal focus flag is exposed for clients where focus is handled in - complex ways. - </li> - <li> - Error status defined for Scintilla to hold indication that an operation failed and the reason - for that failure. No detection yet implemented but clients may start using the interface - so as to be ready for when it does. - </li> - <li> - Context sensitive help in SciTE. - </li> - <li> - CurrentWord property available in SciTE holding the value of the word the - caret is within or near. - </li> - <li> - Apache CONF file lexer. - </li> - <li> - Changes to Python lexer to allow 'as' as a context sensitive keyword and the - string forms starting with u, r, and ur to be recognised. - </li> - <li> - SCN_POSCHANGED notification now working and SCN_PAINTED notification added. - </li> - <li> - Word part movement commands for cursoring between the parts of reallyLongCamelIdentifiers and - other_ways_of_making_words. - </li> - <li> - When text on only one line is selected, Shift+Tab moves to the previous tab stop. - </li> - <li> - Tab control available for Windows version of SciTE listing all the buffers - and making it easy to switch between them. - </li> - <li> - SciTE can be set to automatically determine the line ending type from the contents of a - file when it is opened. - </li> - <li> - Dialogs in GTK+ version of SciTE made more modal and have accelerator keys. - </li> - <li> - Find in Files command in GTK+ version of SciTE allows choice of directory. - </li> - <li> - On Windows, multiple files can be opened at once. - </li> - <li> - SciTE source broken up into more files. - </li> - <li> - Scintilla headers made safe for C language, not just C++. - </li> - <li> - New printing modes - force background to white and force default background to white. - </li> - <li> - Automatic unfolding not occurring when Enter pressed at end of line bug fixed. - </li> - <li> - Bugs fixed in line selection. - </li> - <li> - Bug fixed with escapes in PHP strings in the HTML lexer. - </li> - <li> - Bug fixed in SciTE for GTK+ opening files when given full paths. - </li> - <li> - Bug fixed in autocompletion where user backspaces into existing text. - </li> - <li> - Bugs fixed in opening files and ensuring they are saved before running. - A case bug also fixed here. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite132.zip?download">Release 1.32</a> - </h3> - <ul> - <li> - Released on 8 September 2000. - </li> - <li> - Fixes bugs in complete word and related code. Protection against a bug when - receiving a bad argument. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite131.zip?download">Release 1.31</a> - </h3> - <ul> - <li> - Released on 6 September 2000. - </li> - <li> - Scintilla is available as a COM control from the scintillactrl module in CVS. - </li> - <li> - Style setting to underline text. Exposed in SciTE as "underlined". - </li> - <li> - Style setting to make text invisible. - </li> - <li> - SciTE has an extensibility interface that can be used to implement features such as - a scripting language or remote control. An example use of this is the extlua module - available from CVS which allows SciTE to be scripted in Lua. - </li> - <li> - Many minor fixes to all of the lexers. - </li> - <li> - New lexer for diff and patch files. - </li> - <li> - Error message lexer understands Perl error messages. - </li> - <li> - C/C++/Java lexer now supports C#, specifically verbatim strings and - @ quoting of identifiers that are the same as keywords. SciTE has - a set of keywords for C# and a build command set up for C#. - </li> - <li> - Scintilla property to see whether in overtype or insert state. - </li> - <li> - PosChanged notification fired when caret moved. - </li> - <li> - Comboboxes in dialogs in SciTE on Windows can be horizontally scrolled. - </li> - <li> - Autocompletion and calltips can treat the document as case sensitive or - case insensitive. - </li> - <li> - Autocompletion can be set to automatically choose the only - element in a single element list. - </li> - <li> - Set of characters that automatically complete an autocompletion list - can be set. - </li> - <li> - SciTE command to display calltip - useful when dropped because of - editing. - </li> - <li> - SciTE has a Revert command to go back to the last saved version. - </li> - <li> - SciTE has an Export as RTF command. Save as HTML is renamed - to Export as HTML and is located on the Export sub menu. - </li> - <li> - SciTE command "Complete Word" searches document for any - words starting with characters before caret. - </li> - <li> - SciTE options for changing aspects of the formatting of files exported - as HTML or RTF. - </li> - <li> - SciTE "character.set" option for choosing the character - set for all fonts. - </li> - <li> - SciTE has a "Toggle all folds" command. - </li> - <li> - The makefiles have changed. The makefile_vc and - makefile_bor files in scintilla/win32 and scite/win32 have been - merged into scintilla/win32/scintilla.mak and scite/win32/scite.mak. - DEBUG may be defined for all make files and this will turn on - assertions and for some make files will choose other debugging - options. - </li> - <li> - To make debugging easier and allow good use of BoundsChecker - there is a Visual C++ project file in scite/boundscheck that builds - all of Scintilla and SciTE into one executable. - </li> - <li> - The size of the SciTE output window can be set with the - output.horizontal.size and output.vertical.size settings. - </li> - <li> - SciTE status bar indicator for insert or overwrite mode. - </li> - <li> - Performance improvements to autocompletion and calltips. - </li> - <li> - A caret redraw problem when undoing is fixed. - </li> - <li> - Crash with long lines fixed. - </li> - <li> - Bug fixed with merging markers when lines merged. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite130.zip?download">Release 1.30</a> - </h3> - <ul> - <li> - Released on 26 July 2000. - </li> - <li> - Much better support for PHP which is now an integral part of the HTML support. - </li> - <li> - Start replacement of Windows-specific APIs with cross platform APIs. - In 1.30, the new APIs are introduced but the old APIs are still available. - For the GTK+ version, may have to include "WinDefs.h" explicitly to - use the old APIs. - </li> - <li> - "if" and "import" statements in SciTE properties files allows modularisation into - language-specific properties files and choices based upon platform. - This means that SciTE is delivered with 9 language-specific properties files - as well as the standard SciTEGlobal.properties file. - </li> - <li> - Much lower resource usage on Windows 9x. - </li> - <li> - "/p" option in SciTE on Windows for printing a file and then exiting. - </li> - <li> - Options for printing with inverted brightness (when the screen is set to use - a dark background) and to force black on white printing. - </li> - <li> - Option for printing magnified or miniaturised from screen settings. - </li> - <li> - In SciTE, Ctrl+F3 and Ctrl+Shift+F3 find the selection in the forwards and backwards - directions respectively. - </li> - <li> - Auto-completion lists may be set to cancel when the cursor goes before - its start position or before the start of string being completed. - </li> - <li> - Auto-completion lists automatically size more sensibly. - </li> - <li> - SCI_CLEARDOCUMENTSTYLE zeroes all style bytes, ensures all - lines are shown and deletes all folding information. - </li> - <li> - On Windows, auto-completion lists are visually outdented rather than indented. - </li> - <li> - Close all command in SciTE. - </li> - <li> - On Windows multiple files can be dragged into SciTE. - </li> - <li> - When saving a file, the SciTE option save.deletes.first deletes it before doing the save. - This allows saving with a different capitalisation on Windows. - </li> - <li> - When use tabs option is off pressing the tab key inserts spaces. - </li> - <li> - Bug in indicators leading to extra line drawn fixed. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite128.zip?download">Release 1.28</a> - </h3> - <ul> - <li> - Released on 27 June 2000. - </li> - <li> - Fixes crash in indentation guides when indent size set to 0. - </li> - <li> - Fixes to installation on GTK+/Linux. User properties file on GTK+ has a dot at front of name: - .SciTEUser.properties. Global properties file location configurable at compile time - defaulting to $prefix/share/scite. $prefix determined from Gnome if present else its - /usr/local and can be overridden by installer. Gnome menu integration performed in - make install if Gnome present. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite127.zip?download">Release 1.27</a> - </h3> - <ul> - <li> - Released on 23 June 2000. - </li> - <li> - Indentation guides. View whitespace mode may be set to not display whitespace - in indentation. - </li> - <li> - Set methods have corresponding gets for UndoCollection, BufferedDraw, - CodePage, UsePalette, ReadOnly, CaretFore, and ModEventMask. - </li> - <li> - Caret is continuously on rather than blinking while typing or holding down - delete or backspace. And is now always shown if non blinking when focused on GTK+. - </li> - <li> - Bug fixed in SciTE with file extension comparison now done in case insensitive way. - </li> - <li> - Bugs fixed in SciTE's file path handling on Windows. - </li> - <li> - Bug fixed with preprocessor '#' last visible character causing hang. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite126.zip?download">Release 1.26</a> - </h3> - <ul> - <li> - Released on 13 June 2000. - </li> - <li> - Support for the Lua language in both Scintilla and SciTE. - </li> - <li> - Multiple buffers may be open in SciTE. - </li> - <li> - Each style may have a character set configured. This may determine - the characters that are displayed by the style. - </li> - <li> - In the C++ lexer, lexing of preprocessor source may either treat it all as being in - the preprocessor class or only the initial # and preprocessor command word as - being in the preprocessor class. - </li> - <li> - Scintilla provides SCI_CREATEDOCUMENT, SCI_ADDREFDOCUMENT, and - SCI_RELEASEDOCUMENT to make it easier for a container to deal with multiple - documents. - </li> - <li> - GTK+ specific definitions in Scintilla.h were removed to ScintillaWidget.h. All GTK+ clients will need to - #include "ScintillaWidget.h". - </li> - <li> - For GTK+, tools can be executed in the background by setting subsystem to 2. - </li> - <li> - Keys in the properties files are now case sensitive. This leads to a performance increase. - </li> - <li> - Menu to choose which lexer to use on a file. - </li> - <li> - Tab size dialog on Windows. - </li> - <li> - File dialogs enlarged on GTK+. - </li> - <li> - Match Brace command bound to Ctrl+E on both platforms with Ctrl+] a synonym on Windows. - Ctrl+Shift+E is select to matching brace. Brace matching tries to match to either the inside or the - outside, depending on whether the cursor is inside or outside the braces initially. - View End of Line bound to Ctrl+Shift+O. - </li> - <li> - The Home key may be bound to move the caret to either the start of the line or the start of the - text on the line. - </li> - <li> - Visual C++ project file for SciTE. - </li> - <li> - Bug fixed with current x location after Tab key. - </li> - <li> - Bug fixed with hiding fold margin by setting fold.margin.width to 0. - </li> - <li> - Bugs fixed with file name confusion on Windows when long and short names used, or different capitalisations, - or relative paths. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite125.zip?download">Release 1.25</a> - </h3> - <ul> - <li> - Released on 9 May 2000. - </li> - <li> - Some Unicode support on Windows. Treats buffer and API as UTF-8 and displays - through UCS-2 of Windows. - </li> - <li> - Automatic indentation. Indentation size can be different to tab size. - </li> - <li> - Tool bar. - </li> - <li> - Status bar now on Windows as well as GTK+. - </li> - <li> - Input fields in Find and Replace dialogs now have history on both Windows and - GTK+. - </li> - <li> - Auto completion list items may be separated by a chosen character to allow spaces - in items. The selected item may be changed through the API. - </li> - <li> - Qt::Horizontal scrollbar can be turned off. - </li> - <li> - Property to remove trailing spaces when saving file. - </li> - <li> - On Windows, changed font size calculation to be more compatible with - other applications. - </li> - <li> - On GTK+, SciTE's global properties files are looked for in the directory specified in the - SCITE_HOME environment variable if it is set. This allows hiding in a dot directory. - </li> - <li> - Keyword lists in SciTE updated for JavaScript to include those destined to be used in - the future. IDL includes XPIDL keywords as well as MSIDL keywords. - </li> - <li> - Zoom level can be set and queried through API. - </li> - <li> - New notification sent before insertions and deletions. - </li> - <li> - LaTeX lexer. - </li> - <li> - Fixes to folding including when deletions and additions are performed. - </li> - <li> - Fix for crash with very long lines. - </li> - <li> - Fix to affect all of rectangular selections with deletion and case changing. - </li> - <li> - Removed non-working messages that had been included only for Richedit compatibility. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/scite124.zip">Release 1.24</a> - </h3> - <ul> - <li> - Released on 29 March 2000. - </li> - <li> - Added lexing of IDL based on C++ lexer with extra UUID lexical class. - </li> - <li> - Functions and associated keys for Line Delete, Line Cut, Line Transpose, - Selection Lower Case and Selection Upper Case. - </li> - <li> - Property setting for SciTE, eol.mode, chooses initial state of line end characters. - </li> - <li> - Fixed bugs in undo history with small almost-contiguous changes being incorrectly coalesced. - </li> - <li> - Fixed bugs with incorrect expansion of ContractionState data structures causing crash. - </li> - <li> - Fixed bugs relating to null fonts. - </li> - <li> - Fixed bugs where recolourisation was not done sometimes when required. - </li> - <li> - Fixed compilation problems with SVector.h. - </li> - <li> - Fixed bad setting of fold points in Python. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/scite123.zip?download">Release 1.23</a> - </h3> - <ul> - <li> - Released on 21 March 2000. - </li> - <li> - Directory structure to separate on basis of product (Scintilla, SciTE, DMApp) - and environment (Cross-platform, Win32, GTK+). - </li> - <li> - Download packaging to allow download of the source or platform dependent executables. - </li> - <li> - Source code now available from CVS at SourceForge. - </li> - <li> - Very simple Windows-only demonstration application DMApp is available from cvs as dmapp. - </li> - <li> - Lexing functionality may optionally be included in Scintilla rather than be provided by - the container. - </li> - <li> - Set of lexers included is determined at link time by defining which of the Lex* object files - are linked in. - </li> - <li> - On Windows, the SciLexer.DLL extends Scintilla.DLL with the standard lexers. - </li> - <li> - Enhanced HTML lexer styles embedded VBScript and Python. - ASP segments are styled and ASP scripts in JavaScript, VBScript and Python are styled. - </li> - <li> - PLSQL and PHP supported. - </li> - <li> - Maximum number of lexical states extended to 128. - </li> - <li> - Lexers may store per line parse state for multiple line features such as ASP script language choice. - </li> - <li> - Lexing API simplified. - </li> - <li> - Project file for Visual C++. - </li> - <li> - Can now cycle through all recent files with Ctrl+Tab in SciTE. - </li> - <li> - Bookmarks in SciTE. - </li> - <li> - Drag and drop copy works when dragging to the edge of the selection. - </li> - <li> - Fixed bug with value sizes in properties file. - </li> - <li> - Fixed bug with last line in properties file not being used. - </li> - <li> - Bug with multiple views of one document fixed. - </li> - <li> - Keypad now works on GTK+. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/SciTE122.zip?download">Release 1.22</a> - </h3> - <ul> - <li> - Released on 27 February 2000. - </li> - <li> - wxWindows platform defined. - Implementation for wxWindows will be available separately - from main Scintilla distribution. - </li> - <li> - Line folding in Scintilla. - </li> - <li> - SciTE performs syntax directed folding for C/C++/Java/JavaScript and for Python. - </li> - <li> - Optional macro recording support. - </li> - <li> - User properties file (SciTEUser.properties) allows for customisation by the user - that is not overwritten with each installation of SciTE. - </li> - <li> - Python lexer detects and highlights inconsistent indentation. - </li> - <li> - Margin API made more orthogonal. SCI_SETMARGINWIDTH and SCI_SETLINENUMBERWIDTH - are deprecated in favour of this new API. - </li> - <li> - Margins may be made sensitive to forward mouse click events to container. - </li> - <li> - SQL lexer and styles included. - </li> - <li> - Perl lexer handles regular expressions better. - </li> - <li> - Caret policy determines how closely caret is tracked by visible area. - </li> - <li> - New marker shapes: arrow pointing down, plus and minus. - </li> - <li> - Optionally display full path in title rather than just file name. - </li> - <li> - Container is notified when Scintilla gains or loses focus. - </li> - <li> - SciTE handles focus in a more standard way and applies the main - edit commands to the focused pane. - </li> - <li> - Container is notified when Scintilla determines that a line needs to be made visible. - </li> - <li> - Document watchers receive notification when document about to be deleted. - </li> - <li> - Document interface allows access to list of watchers. - </li> - <li> - Line end determined correctly for lines ending with only a '\n'. - </li> - <li> - Search variant that searches form current selection and sets selection. - </li> - <li> - SciTE understands format of diagnostic messages from WScript. - </li> - <li> - SciTE remembers top line of window for each file in MRU list so switching to a recent file - is more likely to show the same text as when the file was previously visible. - </li> - <li> - Document reference count now initialised correctly. - </li> - <li> - Setting a null document pointer creates an empty document. - </li> - <li> - WM_GETTEXT can no longer overrun buffer. - </li> - <li> - Polygon drawing bug fixed on GTK+. - </li> - <li> - Java and JavaScript lexers merged into C++ lexer. - </li> - <li> - C++ lexer indicates unterminated strings by colouring the end of the line - rather than changing the rest of the file to string style. This is less - obtrusive and helps the folding. - </li> - </ul> - <h3> - <a href="http://prdownloads.sourceforge.net/scintilla/SciTE121.zip?download">Release 1.21</a> - </h3> - <ul> - <li> - Released on 2 February 2000. - </li> - <li> - Blank margins on left and right side of text. - </li> - <li> - SCN_CHECKBRACE renamed SCN_UPDATEUI and made more efficient. - </li> - <li> - SciTE source code refactored into platform independent and platform specific classes. - </li> - <li> - XML and Perl subset lexers in SciTE. - </li> - <li> - Large improvement to lexing speed. - </li> - <li> - A new subsystem, 2, allows use of ShellExec on Windows. - </li> - <li> - Borland compatible makefile. - </li> - <li> - Status bar showing caret position in GTK+ version of SciTE. - </li> - <li> - Bug fixes to selection drawing when part of selection outside window, mouse release over - scroll bars, and scroll positioning after deletion. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE120.zip">Release 1.2</a> - </h3> - <ul> - <li> - Released on 21 January 2000. - </li> - <li> - Multiple views of one document. - </li> - <li> - Rectangular selection, cut, copy, paste, drag and drop. - </li> - <li> - Long line indication. - </li> - <li> - Reverse searching - </li> - <li> - Line end conversion. - </li> - <li> - Generic autocompletion and calltips in SciTE. - </li> - <li> - Call tip background colour can be set. - </li> - <li> - SCI_MARKERPREV for moving to a previous marker. - </li> - <li> - Caret kept more within window where possible. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE115.zip">Release 1.15</a> - </h3> - <ul> - <li> - Released on 15 December 1999. - </li> - <li> - Brace highlighting and badlighting (for mismatched braces). - </li> - <li> - Visible line ends. - </li> - <li> - Multiple line call tips. - </li> - <li> - Printing now works from SciTE on Windows. - </li> - <li> - SciTE has a global "*" lexer style that is used as the basis for all the lexers' styles. - </li> - <li> - Fixes some warnings on GTK+ 1.2.6. - </li> - <li> - Better handling of modal dialogs on GTK+. - </li> - <li> - Resize handle drawn on pane splitter in SciTE on GTK+ so it looks more like a regular GTK+ - *paned widget. - </li> - <li> - SciTE does not place window origin offscreen if no properties file found on GTK+. - </li> - <li> - File open filter remembered in SciTE on Windows. - </li> - <li> - New mechanism using style numbers 32 to 36 standardises the setting of styles for brace - highlighting, brace badlighting, line numbers, control characters and the default style. - </li> - <li> - Old messages SCI_SETFORE .. SCI_SETFONT have been replaced by the default style 32. The old - messages are deprecated and will disappear in a future version. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE114.zip">Release 1.14</a> - </h3> - <ul> - <li> - Released on 20 November 1999. - </li> - <li> - Fixes a scrolling bug reported on GTK+. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE113.zip">Release 1.13</a> - </h3> - <ul> - <li> - Released on 18 November 1999. - </li> - <li> - Fixes compilation problems with the mingw32 GCC 2.95.2 on Windows. - </li> - <li> - Control characters are now visible. - </li> - <li> - Performance has improved, particularly for scrolling. - </li> - <li> - Windows RichEdit emulation is more accurate. This may break client code that uses these - messages: EM_GETLINE, EM_GETLINECOUNT, EM_EXGETSEL, EM_EXSETSEL, EM_EXLINEFROMCHAR, - EM_LINELENGTH, EM_LINEINDEX, EM_CHARFROMPOS, EM_POSFROMCHAR, and EM_GETTEXTRANGE. - </li> - <li> - Menus rearranged and accelerator keys set for all static items. - </li> - <li> - Placement of space indicators in view whitespace mode is more accurate with some fonts. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE112.zip">Release 1.12</a> - </h3> - <ul> - <li> - Released on 9 November 1999. - </li> - <li> - Packaging error in 1.11 meant that the compilation error was not fixed in that release. - Linux/GTK+ should compile with GCC 2.95 this time. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE111.zip">Release 1.11</a> - </h3> - <ul> - <li> - Released on 7 November 1999. - </li> - <li> - Fixed a compilation bug in ScintillaGTK.cxx. - </li> - <li> - Added a README file to explain how to build. - </li> - <li> - GTK+/Linux downloads now include documentation. - </li> - <li> - Binary only Sc1.EXE one file download for Windows. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE110.zip">Release 1.1</a> - </h3> - <ul> - <li> - Released on 6 November 1999. - </li> - <li> - Major restructuring for better modularity and platform independence. - </li> - <li> - Inter-application drag and drop. - </li> - <li> - Printing support in Scintilla on Windows. - </li> - <li> - Styles can select colouring to end of line. This can be used when a file contains more than - one language to differentiate between the areas in each language. An example is the HTML + - JavaScript styling in SciTE. - </li> - <li> - Actions can be grouped in the undo stack, so they will be undone together. This grouping is - hierarchical so higher level actions such as replace all can be undone in one go. Call to - discover whether there are any actions to redo. - </li> - <li> - The set of characters that define words can be changed. - </li> - <li> - Markers now have identifiers and can be found and deleted by their identifier. The empty - marker type can be used to make a marker that is invisible and which is only used to trace - where a particular line moves to. - </li> - <li> - Double click notification. - </li> - <li> - HTML styling in SciTE also styles embedded JavaScript. - </li> - <li> - Additional tool commands can be added to SciTE. - </li> - <li> - SciTE option to allow reloading if changed upon application activation and saving on - application deactivation. Not yet working on GTK+ version. - </li> - <li> - Entry fields in search dialogs remember last 10 user entries. Not working in all cases in - Windows version. - </li> - <li> - SciTE can save a styled copy of the current file in HTML format. As SciTE does not yet - support printing, this can be used to print a file by then using a browser to print the - HTML file. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE102.zip">Release 1.02</a> - </h3> - <ul> - <li> - Released on 1 October 1999. - </li> - <li> - GTK+ version compiles with GCC 2.95. - </li> - <li> - Properly deleting objects when window destroyed under GTK+. - </li> - <li> - If the selection is not empty backspace deletes the selection. - </li> - <li> - Some X style middle mouse button handling for copying the primary selection to and from - Scintilla. Does not work in all cases. - </li> - <li> - HTML styling in SciTE. - </li> - <li> - Stopped dirty flag being set in SciTE when results pane modified. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE101.zip">Release 1.01</a> - </h3> - <ul> - <li> - Released on 28 September 1999. - </li> - <li> - Better DBCS support on Windows including IME. - </li> - <li> - Wheel mouse support for scrolling and zooming on Windows. Zooming with Ctrl+KeypadPlus and - Ctrl+KeypadMinus. - </li> - <li> - Performance improvements especially on GTK+. - </li> - <li> - Caret blinking and settable colour on both GTK+ and Windows. - </li> - <li> - Drag and drop within a Scintilla window. On Windows, files can be dragged into SciTE. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/SciTE100.zip">Release 1.0</a> - </h3> - <ul> - <li> - Released on 17 May 1999. - </li> - <li> - Changed name of "Tide" to "SciTE" to avoid clash with a TCL based IDE. "SciTE" is a - SCIntilla based Text Editor and is Latin meaning something like "understanding in a neat - way" and is also an Old English version of the word "shit". - </li> - <li> - There is a SCI_AUTOCSTOPS message for defining a string of characters that will stop - autocompletion mode. Autocompletion mode is cancelled when any cursor movement occurs apart - from backspace. - </li> - <li> - GTK+ version now splits horizontally as well as vertically and all dialogs cancel when the - escape key is pressed. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide92.zip">Beta release 0.93</a> - </h3> - <ul> - <li> - Released on 12 May 1999. - </li> - <li> - A bit more robust than 0.92 and supports SCI_MARKERNEXT message. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide92.zip">Beta release 0.92</a> - </h3> - <ul> - <li> - Released on 11 May 1999. - </li> - <li> - GTK+ version now contains all features of Windows version with some very small differences. - Executing programs works much better now. - </li> - <li> - New palette code to allow more colours to be displayed in 256 colour screen modes. A line - number column can be displayed to the left of the selection margin. - </li> - <li> - The code that maps from line numbers to text positions and back has been completely - rewritten to be faster, and to allow markers to move with the text. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide91.zip">Beta release 0.91</a> - </h3> - <ul> - <li> - Released on 30 April 1999, containing fixes to text measuring to make Scintilla work better - with bitmap fonts. Also some small fixes to make compiling work with Visual C++. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide90.zip">Beta release 0.90</a> - </h3> - <ul> - <li> - Released on 29 April 1999, containing working GTK+/Linux version. - </li> - <li> - The Java, C++ and Python lexers recognise operators as distinct from default allowing them - to be highlighted. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide82.zip">Beta release 0.82</a> - </h3> - <ul> - <li> - Released on 1 April 1999, to fix a problem with handling the Enter key in PythonWin. Also - fixes some problems with cmd key mapping. - </li> - </ul> - <h3> - <a href="http://www.scintilla.org/Tide81.zip">Beta release 0.81</a> - </h3> - <ul> - <li> - Released on 30th March 1999, containing bug fixes and a few more features. - </li> - <li> - Static linking supported and Tidy.EXE, a statically linked version of Tide.EXE. Changes to - compiler flags in the makefiles to optimise for size. - </li> - <li> - Scintilla supports a 'savepoint' in the undo stack which can be set by the container when - the document is saved. Notifications are sent to the container when the savepoint is - entered or left, allowing the container to to display a dirty indicator and change its - menus. - </li> - <li> - When Scintilla is set to read-only mode, a notification is sent to the container should the - user try to edit the document. This can be used to check the document out of a version - control system. - </li> - <li> - There is an API for setting the appearance of indicators. - </li> - <li> - The keyboard mapping can be redefined or removed so it can be implemented completely by the - container. All of the keyboard commands are now commands which can be sent by the - container. - </li> - <li> - A home command like Visual C++ with one hit going to the start of the text on the line and - the next going to the left margin is available. I do not personally like this but my - fingers have become trained to it by much repetition. - </li> - <li> - SCI_MARKERDELETEALL has an argument in wParam which is the number of the type marker to - delete with -1 performing the old action of removing all marker types. - </li> - <li> - Tide now understands both the file name and line numbers in error messages in most cases. - </li> - <li> - Tide remembers the current lines of files in the recently used list. - </li> - <li> - Tide has a Find in Files command. - </li> - </ul> - <h3> - Beta release 0.80 - </h3> - <ul> - <li> - This was the first public release on 14th March 1999, containing a mostly working Win32 - Scintilla DLL and Tide EXE. - </li> - </ul> - <h3> - Beta releases of SciTE were called Tide - </h3> - </body> -</html> - diff --git a/doc/Scintilla/ScintillaRelated.html b/doc/Scintilla/ScintillaRelated.html deleted file mode 100644 index 410ddb7..0000000 --- a/doc/Scintilla/ScintillaRelated.html +++ /dev/null @@ -1,507 +0,0 @@ -<?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 Related Sites - </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> - Related Sites - </h2> - <h3> - Ports and Bindings of Scintilla - </h3> - <p> - <a href="http://mewsoft.com/cgi-bin/forum/forum.cgi?action=ViewTopic&Topic=1494&Forum=1&Page=1&Period=0a&Lang=English">Editawy</a> - is an ActiveX Control wrapper that support all Scintilla functions and additional high level functions. - </p> - <p> - <a href="http://sourceforge.net/projects/jintilla/">Jintilla</a> - is a JNI wrapper that allows Scintilla to be used in Java with - both SWT and AWT. - </p> - <p> - <a href="http://delphisci.sourceforge.net/">Delphi Scintilla Interface Components</a> - is a FREE collection of components that makes it easy to use the - Scintilla source code editing control from within Delphi and C++ Builder. - </p> - <p> - <a href="http://www.lehigh.edu/~jrl1/">wxStEdit</a> - is a library and sample program that provides extra features over wxStyledTextControl. - </p> - <p> - <a href="http://www.naughter.com/scintilla.html">CScintillaCtrl, CScintillaView & CScintillaDoc</a> - are freeware MFC classes to encapsulate Scintilla. - </p> - <p> - <a href="http://sourceforge.net/projects/scide/">ScintillaNet - </a> is an encapsulation of Scintilla for use within the .NET framework. - </p> - <p> - <a href="http://www.riverbankcomputing.co.uk/qscintilla/index.php">TQScintilla - </a> is a port of Scintilla to the TQt platform. It has a similar license to TQt: GPL for use in - free software and commercial for use in close-source applications. - </p> - <p> - <a href="http://www.adapower.com/gwindows/"> - GWindows</a> is a Win32 RAD GUI Framework for Ada 95 that - includes a binding of Scintilla. - </p> - <p> - <a href="http://www.templatetamer.org/index.php?DolphinScintilla"> - DolphinScintilla</a> is a DolphinSmalltalk wrapper for Scintilla. - </p> - <p> - <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/scintilla/ScintillaVB/">ScintillaVB</a> - is an ActiveX control written in VB that encapsulates Scintilla. - </p> - <p> - <a href="http://savannah.nongnu.org/projects/fxscintilla/">FXScintilla - </a> is a port of Scintilla to the FOX platform. FXRuby includes Ruby - bindings for FXScintilla. - </p> - <p> - <a href="http://www.pnotepad.org/scintilla/">Delphi wrapper</a> for - Scintilla which is also usable from Borland C++ Builder. - </p> - <p> - The wxStyledTextCtrl editor component in the - <a href="http://wxwindows.org/">wxWindows</a> cross platform toolkit is based on Scintilla.<br /> - A Python binding for wxStyledTextCtrl is part of <a href="http://wxpython.org/">wxPython</a>. - </p> - <p> - <a href="http://sourceforge.net/projects/moleskine/">gtkscintilla</a> - is an alternative GTK class implementation for scintilla. - This implementation acts more like a Gtk+ object, with many methods rather - than just scintilla_send_message() and is available as a shared library. - This implementation works with GTK 1.x. - </p> - <p> - <a href="http://sourceforge.net/projects/moleskine/">gtkscintilla2</a> - is an alternative GTK class implementation for scintilla - similar to the above, but for GTK 2.x. - </p> - <p> - <a href="http://www.wingide.com/opensource/pyscintilla.html">pyscintilla</a> - is the original Python binding for Scintilla's default GTK - 1.x class. Includes some additional support, such as native printing on - Windows. The binding is hand-written rather than auto-generated from the - Scintilla.iface file. - </p> - <p> - <a href="http://sourceforge.net/projects/moleskine/">pygtkscintilla</a> - is a Python binding for gtk1.x scintilla that uses - gtkscintilla instead of the default GTK class. - </p> - <p> - <a href="http://sra.itc.it/people/cavada/PyScintilla2.html">pyscintilla2</a> - is a Python binding for GTK 2.x scintilla that uses - gtkscintilla2. - </p> - <p> - <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/scintilla/scintillactrl/">ScintillaCtrl</a> - is an unmaintained ActiveX control wrapper for Scintilla. - </p> - <h3> - Projects using Scintilla - </h3> - <p> - <a href="http://pype.sourceforge.net/">PyPE</a> - is an editor written in Python with the wxPython GUI toolkit. - </p> - <p> - <a href="http://home.mweb.co.za/sd/sdonovan/sciboo.html">Sciboo</a> - is an editor based on ScintillaNET. - </p> - <p> - <a href="https://sourceforge.net/projects/tsct/">The Scite Config Tool</a> - is a graphical user interface for changing SciTE properties files. - </p> - <p> - <a href="http://www.totalcmd.net/plugring/SciLister.html">Scintilla Lister</a> - is a plugin for Total Commander allowing viewing all documents with syntax highlighting - inside Total Commander. - </p> - <p> - <a href="http://chscite.sourceforge.net">ChSciTE</a> - is a free IDE for C/C++ interpreter Ch. It runs cross platform. - Ch is for cross-platform scripting, shell - programming, 2D/3D plotting, numerical computing, and embedded - scripting. - </p> - <p> - <a href="http://codeblocks.org/"> - Code::Blocks</a> is an open source, cross platform free C++ IDE. - </p> - <p> - <a href="http://notepad-plus.sourceforge.net/uk/site.htm"> - Notepad++</a> is a free source code editor under Windows. - </p> - <p> - <a href="http://gubed.mccabe.nu/"> - Gubed</a> is a cross platform program to debug PHP scripts. - </p> - <p> - <a href="http://www.lesser-software.com/lswdnl.htm"> - LSW DotNet-Lab</a> is a development environment for the .NET platform. - </p> - <p> - <a href="http://glintercept.nutty.org/"> - GLIntercept</a> is an OpenGL function call interceptor that uses SciTE as a - run-time shader editor. - </p> - <p> - <a href="http://xined.sourceforge.net/"> - Xin</a> is an open-source XML editor for Windows. - </p> - <p> - <a href="http://wxguide.sourceforge.net/indexedit.html"> - wyoEditor</a> is "A nice editor with a well designed and consistent look and feel". - </p> - <p> - <a href="http://www.flos-freeware.ch/notepad2.html"> - Notepad2</a> is "Yet another Notepad replacement". - </p> - <p> - <a href="http://pycrash.sourceforge.net/index.php?type=3"> - PyCrash Viewer</a> can examine crash dumps of Python programs. - </p> - <p> - <a href="http://www.cabletest.com/mpt-discovery.shtml"> - MPT series Wire Analyzers</a> use Scintilla and SciTE. - </p> - <p> - <a href="http://www.mygenerationsoftware.com">MyGeneration</a> - is a .NET based code generator. - </p> - <p> - <a href="http://cssed.sourceforge.net">CSSED</a> - is a tiny GTK2 CSS editor. - </p> - <p> - <a href="http://www.atari-soldiers.com/dide.html">DIDE</a> - is a free IDE for the D language on Windows. - </p> - <p> - <a href="http://wxghostscript.sourceforge.net/"> - IdePS</a> - is a free Integrated Development Environment for PostScript - </p> - <p> - <a href="http://cute.sourceforge.net/"> - CUTE</a> - is a user-friendly source code editor easily extended using Python. - </p> - <p> - <a href="http://www.spaceblue.com/venis/"> - Venis IX</a>, - the Visual Environment for NSIS (Nullsoft Scriptable Install System). - </p> - <p> - <a href="http://www.parinya.ca/"> - MinGW Developer Studio</a> - is a simple C/C++ IDE for the MinGW compiler on Windows. - </p> - <p> - <a href="http://www.die-offenbachs.de/detlev/eric3.html">Eric3</a> - is a Python IDE written using PyTQt and TQScintilla. - </p> - <p> - <a href="http://www.templatetamer.com/">TemplateTamer</a> - is a tool for development of template based PHP web pages. - </p> - <p> - <a href="http://www.bomberstudios.com/sciteflash/">SciTE|Flash</a> - is a free Scintilla-based ActionScript editor for Windows. - </p> - <p> - <a href="http://www.computersciencelab.com/CppIde.htm">CPPIDE</a> - is part of some commercial high-school oriented programming course software. - </p> - <p> - <a href="http://www.phpwebclasses.org/index.php?node=13">phpSciTE</a> - is a free distribution of SciTE for Windows customised for use with PHP - and bundled with a PHP API file and online help. - </p> - <p> - <a href="http://www.blazingtools.com/is.html">Instant Source</a> - is a commercial tool for looking at the HTML on web sites. - </p> - <p> - <a href="http://www.codejoin.com/radon/">RAD.On++</a> - is a free C++ Rapid Application Developer for Win32. - </p> - <p> - <a href="http://www.luascript.thersgb.net/index.htm">wxLua</a> is both - a binding of the wxWindows classes for Lua and a small IDE that works on Linux - and Windows. - </p> - <p> - <a href="http://wxbasic.sourceforge.net/">wxBasic</a> is an open source - Basic interpreter that uses the wxWindows toolkit. A small IDE is under construction. - </p> - <p> - <a href="http://freeride.rubyforge.org/wiki/wiki.pl">FreeRIDE</a> will be a - cross-platform IDE for the Ruby programming language. - </p> - <p> - <a href="http://visual-mingw.sourceforge.net/">Visual MinGW</a> is an - IDE for the MinGW compiler system.This runs on Windows with gcc. - </p> - <p> - The <a href="http://archaeopteryx.com/wingide">Wing IDE</a> is a - complete integrated development environment for the Python programming - language. - Available on Intel based Linux and Windows and on MacOS X through XDarwin. - </p> - <p> - <a href="http://www.gorlice.net.pl/~rybak/luaide/">LuaIDE</a> - is an IDE for Lua on Windows. - </p> - <p> - <a href="http://www.aegisknight.org/sphere/">Sphere</a> - is 2D RPG engine with a development environment. - </p> - <p> - <a href="http://gaiacrtn.free.fr/practical-ruby/index.html">Practical Ruby</a> - is an IDE for Ruby on Windows. - </p> - <p> - <a href="http://www.gnuenterprise.org/">GNUe</a> - is a suite of tools and applications for solving the needs of the enterprise. - </p> - <p> - <a href="http://silvercity.sourceforge.net/">SilverCity</a> - is a lexing package that can provide lexical analysis for over 20 programming - and markup languages. - </p> - <p> - <a href="http://www.akbkhome.com/Projects/phpmole-IDE/">Php mole</a> - is an integrated development enviroment for developing (primarily) - web based and phpgtk based applications. - </p> - <p> - <a href="http://hapdebugger.sourceforge.net/">HAP Python Remote Debugger</a> - is a Python debugger that can run on one Windows machine debugging a Python program running - on either the same or another machine. - </p> - <p> - <a href="http://www.rexx.com/~dkuhlman/">pyeditor and wxEditor</a> - are scriptable editors implemented in Python. pyeditor is based on GTK+ and - the pyscintilla wrapper. wxEditor is based on wxWindows, wxPython and - wxStyledTextControl. - </p> - <p> - <a href="http://www.pragmaticprogrammer.com/ruby/downloads/ruby-install.html">Ruby installation</a> - that includes SciTE set up for Ruby using an included copy of the "Programming Ruby" book for help. - </p> - <p> - <a href="http://www.lcc.ufrn.br/~milano/ild/index.html">Interactive LuaSpace Development</a> - is a graphical environment for LuaSpace which combines the CORBA platform - with the language Lua. - </p> - <p> - <a href="http://sourceforge.net/projects/pycrust/">PyCrust</a> is an interactive - Python shell based on wxPython. - </p> - <p> - <a href="http://www.thekompany.com/products/blackadder/">Black Adder</a> is a - TQt based development environment for Python and Ruby. - </p> - <p> - <a href="http://www.activestate.com/Products/Komodo/">Komodo</a> - is a cross-platform multi-language development environment built - as an application of Mozilla. - </p> - <p> - <a href="http://www.xtgsystems.com/lua/">titmouse</a> - is a Lua editor/debugger for Windows. It is available as both a component - and an application. - </p> - <p> - <a href="http://llt.chez.tiscali.fr/">Filerx</a> - is a project manager for SciTE on Windows. - Open source and includes an implementation of SciTE's Director interface so - will be of interest to others wanting to control SciTE. - </p> - <p> - <a href="http://anjuta.sourceforge.net/">Anjuta</a> - is an open source C/C++ IDE for Linux/GNOME. - </p> - <p> - <a href="http://www.develop.com/genx/">Gen<X></a> - is a <i>code generalisation</i> product for Win32 that uses Scintilla in the X-Code Editor (which - can also be used for general purpose editing) and for editing HTML in the HTML Dialog - Editor. - </p> - <p> - <a href="http://www.micampe.it/software/moleskine/">Moleskine</a> is a Scintilla - based editor for GTK+. More ambitious than SciTE with plans - for MDI, printing, and session management. - Includes a new GTK+ wrapper widget for Scintilla. - </p> - <p> - A <a href="http://www.burgaud.com">version of SciTE for Win32</a> enhanced - with a tab control to allow easy movement between buffers. - Go to the "Goodies" area on this site. - </p> - <p> - <a href="http://www.suneido.com"> - Suneido</a> is an integrated application platform currently available for Win32 that includes an - object-oriented language, client-server database, and user interface and reporting frameworks. - </p> - <p> - <a href="http://www.BitBuilder.com"> - BitLeaf</a> is a new GNOME based development environment. - Currently at an early stage of development. - </p> - <p> - <a href="http://agast.dyndns.org/agast/home.html"> - Agast</a> is an authoring system for adventure games which includes - a customised version of SciTE. - </p> - <p> - <a href="http://oss.software.ibm.com/developerworks/opensource/sashxb/"> - SashXB for Linux</a> is an open source application development tool by - IBM that uses Scintilla. - </p> - <p> - <a href="http://boa-constructor.sourceforge.net/">Boa Constructor</a> is a RAD GUI - Building IDE for the wxWindows cross platform platform. Written using wxPython with the - wxStyledTextCtrl used as its editor. - </p> - <p> - <a href="http://www.python.org/windows/">PythonWin</a>, a Win32 IDE for Python, uses - Scintilla for both its editing and interactive windows. - </p> - <h3> - Editing Components - </h3> - <p> - <a href="http://gtksourceview.sourceforge.net/index.html">GtkSourceView</a> - is a text widget that extends the standard GTK+ 2.x text widget and improves it - by implementing syntax highlighting and other features typical of a source editor. - </p> - <p> - <a href="http://aeditor.rubyforge.org/">AEditor</a> - is a free source code editing component implemented in Ruby. - </p> - <p> - <a href="http://www.actiprosoftware.com/Products/DotNet/SyntaxEditor/Default.aspx">SyntaxEditor</a> - is a commercial native .Net source code editing component. - </p> - <p> - <a href="http://jedit.sourceforge.net/">jEdit</a> is a good Open Source syntax colouring - editor written in and for Java. - </p> - <p> - <a href="http://www.gtk.org/">GTK+</a>, the GIMP Toolkit, contains a rich text editing - widget.<br /> - <a href="http://gedit.sourceforge.net/">Gedit</a> is an editor for GTK+/GNOME.<br /> - <!-- - <a href="http://www.daimi.au.dk/~mailund/gtk.html">GtkEditor</a> is a source code editing - widget based on the GTK+ text widget.<br /> - <a href="http://gide.gdev.net/">gIDE</a> is an IDE based on GTK+.<br /> - <a href="http://www.bahnhof.se/~mikeh/linux_software.html">GtkExText</a> is a source code - oriented text widget for GTK+. - --> - </p> - <p> - <a href="http://www.codeguru.com/">CodeGuru</a> has source code for several Win32 MFC based - editors. - </p> - <a href="http://synedit.sourceforge.net/">SynEdit</a> is a Win32 edit control written - in Delphi. - <p> - <a href="http://www.tetradyne.com/srcvwax.htm">SourceView</a> is a commercial editing - component for Win32. - </p> - <p> - <a href="http://www.winmain.com/">CodeMax</a> is another commercial component for Win32. - </p> - <h3> - Documents - </h3> - <p> - <a href="http://www.finseth.com/~fin/craft/">The Craft of Text Editing</a> - describes how EMACS works, <i>Craig A. Finseth</i> - </p> - <p> - <a href="http://freespace.virgin.net/james.brown7/tuts/bigmem02.htm">Span Tables</a> - are another data structure that can be used to represent documents in memory in a way - that performs well when data is inserted and deleted, <i>James Brown</i> - </p> - <p> - <a href="http://www.cs.cmu.edu/~wjh/papers/byte.html">Data Structures in a Bit-Mapped Text - Editor</a>, <i>Wilfred J. Hanson</i>, Byte January 1987 - </p> - <p> - Text Editors: Algorithms and Architectures, <i>Ray Valdés</i>, Dr. Dobbs Journal - April 1993 - </p> - <p> - Macintosh User Interface Guidelines and TextEdit chapters of Inside Macintosh - </p> - <h3> - Development Tools - </h3> - <p> - Scintilla and SciTE were developed using the - <a href="http://www.mingw.org/">Mingw version of GCC</a>. - </p> - <p> - <a href="http://astyle.sourceforge.net/">AStyle</a> is a source code formatter for C++ and - Java code. SciTE has an Indent command defined for .cxx files that uses AStyle. - </p> - <p> - <a href="http://winmerge.sourceforge.net/">WinMerge</a> is an interactive diff / merge - for Windows. I prefer code submissions in the form of source files rather than diffs and then run - WinMerge over the files to work out how to merge. - </p> - <p> - <a href="http://www.python.org">Python</a> is my favourite programming language. Scintilla - was started after I tried to improve the editor built into <a - href="http://www.python.org/windows/">PythonWin</a>, but was frustrated by the limitations of - the Windows Richedit control which PythonWin used. - </p> - <p> - <a href="http://www.cs.yorku.ca/~oz/">regex</a> is a public domain - implementation of regular expression pattern matching used in Scintilla. - </p> - <!-- - <p> - <a href="http://www.petes-place.com/">CodeMagic</a> is a free generic IDE for Win32. - Strongly Perl focused but customisable for other languages. Has more user interface features - than SciTE. - </p> - --> - <p> - <!-- - Debugging dance soundtrack from <a href="http://www.insurge.com.au">iNsuRge</a> - and --> - Inspirational coding soundscapes by <a href="http://www.davidbridie.com.au">David Bridie</a>. - </p> - <p> - Get away from hacking without any of that tedious standing up bother: <a - href="http://www.zip.com.au/~sneal/index.html">Virtually There</a> ;). - </p> - </body> -</html> - diff --git a/doc/Scintilla/ScintillaToDo.html b/doc/Scintilla/ScintillaToDo.html deleted file mode 100644 index 0fd6b0b..0000000 --- a/doc/Scintilla/ScintillaToDo.html +++ /dev/null @@ -1,178 +0,0 @@ -<?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 To Do - </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> - Bugs and To Do List - </h2> - <h3> - Feedback - </h3> - <p> - Issues can be reported on the <a href="https://sourceforge.net/tracker/?group_id=2439&atid=102439">Bug Tracker</a> - and features requested on the <a href="https://sourceforge.net/tracker/?group_id=2439&atid=352439">Feature Request Tracker</a>. - </p> - <h3> - Scintilla Bugs - </h3> - <p> - At the end of italics style runs characters can be chopped off. An example - is using Verdana 12 point italics for strings makes an ending double quote - half visible and an ending single quote invisible. This is hard to solve - completely, may be better to avoid these situations by, for example, - choosing a font like Times New Roman for strings. There is a specific kluge - for the end of line which adds some room for italics but this does not - work elsewhere. - </p> - <p> - Dragging over bold text in some fonts will ripple because of the difference in - size between drawing all of a string at once and drawing it in parts. - </p> - <p> - Automatic scrolling when text dragged near edge of window. - </p> - <h3> - GTK+ Version Bugs - </h3> - <h3> - Scintilla To Do - </h3> - <p> - Folding for languages that don't have it yet and good folding for languages - that inherited poor folding from another languages folding code. - </p> - <p> - Simple pattern based styling. - </p> - <p> - Different height lines based upon tallest text on the line rather than on the tallest style - possible. - </p> - <p> - Composition of lexing for mixed languages (such as ASP+ over COBOL) by - combining lexers. - </p> - <p> - Printing support on GTK+. Maybe Postscript output or use Gnome? - </p> - <p> - Stream folding which could be used to fold up the contents of HTML elements. - </p> - <p> - Persisting view state such as current folding into a stream or blob so it is easy - to restore. - </p> - <p> - Move line up and move line down keys or move selected lines up / down. - </p> - <p> - Printing of highlight lines and folding margin. - </p> - <p> - Flow diagrams inside editor similar to - <a href="http://www.eng.auburn.edu/grasp/grasp_main.shtml"> - GRASP</a>. - </p> - <p> - A VCL component wrapper around Scintilla so it can be used with Delphi or - Borland C++ Builder. - There is <a href="http://www.pnotepad.org/scintilla/">some work</a> - on this available. - </p> - <p> - Port to MacOS X. - </p> - <p> - More lexers for other languages. - </p> - <p> - Automatically calculated range for horizontal scrolling. - </p> - <p> - Virtual space at the end of lines so the caret can be moved beyond the end - of lines with the cursor keys. May also make rectangular operations easier - to perform. - </p> - <h3> - SciTE To Do - </h3> - <p> - Good regular expression support through a plugin. - </p> - <p> - Allow tools to transform the selection, performing an operation like - indentation or sorting. - </p> - <p> - Allow file name based selection on all properties rather than just a chosen few. - </p> - <p> - Opening from and saving to FTP servers. - </p> - <p> - Setting to fold away comments upon opening. - </p> - <p> - User defined fold ranges. - </p> - <p> - Silent mode that does not display any message boxes. - </p> - <h3> - Features I am unlikely to do - </h3> - <p> - These are features I don't like or don't think are important enough to work on. - Implementations are welcome from others though. - </p> - <p> - Automatically saving modified menu shortcuts on exit. - </p> - <p> - Mouse wheel panning (press the mouse wheel and then move the mouse) on - Windows. - </p> - <p> - Adding options to the save dialog to save in a particular encoding or with a - chosen line ending. - </p> - <h3> - Directions - </h3> - <p> - The main point of this development is Scintilla, and this is where most effort will - go. SciTE will get new features, but only when they make my life easier - I am - not intending to make it grow up to be a huge full-function IDE like Visual - Cafe. The lines I've currently decided not to step over in SciTE are any sort of - project facility and any configuration dialogs. SciTE for Windows now has a - Director interface for communicating with a separate project manager - application. - </p> - <p> - If you are interested in contributing code, do not feel any need to make it cross - platform. - Just code it for your platform and I'll either reimplement for the other platform or - ensure that there is no effect on the other platform. - </p> - </body> -</html> diff --git a/doc/Scintilla/ScintillaUsage.html b/doc/Scintilla/ScintillaUsage.html deleted file mode 100644 index e0ffb0b..0000000 --- a/doc/Scintilla/ScintillaUsage.html +++ /dev/null @@ -1,375 +0,0 @@ -<?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 Usage Notes - </title> -<style type="text/css"> -SPAN { - font-family: Verdana, Arial, Helvetica; - font-size: 9pt; -} -.S0 { - color: #808080; - font-family: Verdana, Arial, Helvetica; -} -.S1 { - font-family: Comic Sans MS, Times New Roman, Times; - color: #007F00; - font-size: 8pt; -} -.S2 { - font-family: Comic Sans MS, Times New Roman, Times; - color: #007F00; - font-size: 8pt; -} -.S3 { - font-family: Verdana, Arial, Helvetica; - color: #7F7F7F; -} -.S4 { - font-family: Verdana, Arial, Helvetica; - color: #007F7F; -} -.S5 { - color: #00007F; - font-weight: bold; - font-family: Verdana, Arial, Helvetica; -} -.S6 { - color: #7F007F; - font-family: Courier New, Courier; -} -.S7 { - color: #7F007F; - font-family: Courier New, Courier; -} -.S8 { - color: #007F7F; -} -.S9 { - color: #7F7F00; -} -.S10 { - font-weight: bold; -} -</style> - </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 - Usage Notes</font></a> - </td> - </tr> - </table> - <h2> - Implementing Auto-Indent - </h2> - <p> - The key idea is to use the SCN_CHARADDED notification to add indentation after a newline. - </p> - <p> - The lParam on the notification is a pointer to a SCNotification structure whose ch member - specifies the character added. If a newline was added, the previous line can be retrieved and - the same indentation can be added to the new line. - </p> - <p> - Here is the relevant portion of code from SciTE: (SciTE.cxx SciTEWindow::CharAdded) - </p> - <span class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span - class='S11'>ch</span><span class='S0'> </span> <span class='S10'>==</span><span - class='S0'> </span> <span class='S7'>'\r'</span><span class='S0'> </span> <span - class='S10'>||</span><span class='S0'> </span> <span class='S11'>ch</span><span - class='S0'> </span> <span class='S10'>==</span><span class='S0'> </span> <span - class='S7'>'\n'</span><span class='S10'>)</span><span class='S0'> </span> <span - class='S10'>{</span><span class='S0'><br /> - </span> <span class='S5'>char</span><span class='S0'> </span> - <span class='S11'>linebuf</span><span class='S10'>[</span><span class='S4'>1000</span><span - class='S10'>];</span><span class='S0'><br /> - </span> <span class='S5'>int</span><span class='S0'> </span> - <span class='S11'>curLine</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>GetCurrentLineNumber</span><span - class='S10'>();</span><span class='S0'><br /> - </span> <span class='S5'>int</span><span class='S0'> </span> - <span class='S11'>lineLength</span><span class='S0'> </span> <span class='S10'> - =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span - class='S10'>(</span><span class='S11'>SCI_LINELENGTH</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>curLine</span><span class='S10'>);</span><span - class='S0'><br /> - </span> <span class='S2'> - //Platform::DebugPrintf("[CR] %d len = %d\n", curLine, lineLength);</span><span - class='S0'><br /> - </span> <span class='S5'>if</span><span class='S0'> </span> <span - class='S10'>(</span><span class='S11'>curLine</span><span class='S0'> </span> <span - class='S10'>></span><span class='S0'> </span> <span class='S4'>0</span><span - class='S0'> </span> <span class='S10'>&&</span><span class='S0'> </span> - <span class='S11'>lineLength</span><span class='S0'> </span> <span class='S10'> - <=</span><span class='S0'> </span> <span class='S4'>2</span><span - class='S10'>)</span><span class='S0'> </span> <span class='S10'>{</span><span - class='S0'><br /> - </span> <span class='S5'>int</span><span class='S0'> </span> - <span class='S11'>prevLineLength</span><span class='S0'> </span> <span class='S10'> - =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span - class='S10'>(</span><span class='S11'>SCI_LINELENGTH</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>curLine</span><span class='S0'> </span> <span - class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span - class='S10'>);</span><span class='S0'><br /> - </span> <span class='S5'>if</span><span class='S0'> </span> <span - class='S10'>(</span><span class='S11'>prevLineLength</span><span class='S0'> </span> <span - class='S10'><</span><span class='S0'> </span> <span class='S5'>sizeof</span><span - class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>))</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> <span class='S11'>WORD</span><span - class='S0'> </span> <span class='S11'>buflen</span><span class='S0'> </span> <span - class='S10'>=</span><span class='S0'> </span> <span class='S5'>sizeof</span><span - class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>);</span><span - class='S0'><br /> - </span> <span class='S11'>memcpy</span><span - class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S10'>&</span><span class='S11'>buflen</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S5'>sizeof</span><span - class='S10'>(</span><span class='S11'>buflen</span><span class='S10'>));</span><span - class='S0'><br /> - </span> <span class='S11'> - SendEditor</span><span class='S10'>(</span><span class='S11'>EM_GETLINE</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S11'>curLine</span><span - class='S0'> </span> <span class='S10'>-</span><span class='S0'> </span> <span - class='S4'>1</span><span class='S10'>,</span><span class='S0'><br /> - </span> - <span class='S5'>reinterpret_cast</span><span class='S10'><</span><span - class='S11'>LPARAM</span><span class='S10'>>(</span><span class='S5'>static_cast</span><span - class='S10'><</span><span class='S5'>char</span><span class='S0'> </span> <span - class='S10'>*>(</span><span class='S11'>linebuf</span><span class='S10'>)));</span><span - class='S0'><br /> - </span> <span class='S11'>linebuf</span><span - class='S10'>[</span><span class='S11'>prevLineLength</span><span class='S10'>]</span><span - class='S0'> </span> <span class='S10'>=</span><span class='S0'> </span> <span - class='S7'>'\0'</span><span class='S10'>;</span><span class='S0'><br /> - </span> <span class='S5'>for</span><span - class='S0'> </span> <span class='S10'>(</span><span class='S5'>int</span><span - class='S0'> </span> <span class='S11'>pos</span><span class='S0'> </span> <span - class='S10'>=</span><span class='S0'> </span> <span class='S4'>0</span><span - class='S10'>;</span><span class='S0'> </span> <span class='S11'>linebuf</span><span - class='S10'>[</span><span class='S11'>pos</span><span class='S10'>];</span><span - class='S0'> </span> <span class='S11'>pos</span><span class='S10'>++)</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> <span - class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span - class='S11'>linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span - class='S10'>]</span><span class='S0'> </span> <span class='S10'>!=</span><span - class='S0'> </span> <span class='S7'>' '</span><span class='S0'> </span> <span - class='S10'>&&</span><span class='S0'> </span> <span class='S11'> - linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span - class='S10'>]</span><span class='S0'> </span> <span class='S10'>!=</span><span - class='S0'> </span> <span class='S7'>'\t'</span><span class='S10'>)</span><span - class='S0'><br /> - </span> - <span class='S11'>linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span - class='S10'>]</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S7'>'\0'</span><span class='S10'>;</span><span - class='S0'><br /> - </span> <span class='S10'>}</span><span - class='S0'><br /> - </span> <span class='S11'> - SendEditor</span><span class='S10'>(</span><span class='S11'>EM_REPLACESEL</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S5'> - reinterpret_cast</span><span class='S10'><</span><span class='S11'>LPARAM</span><span - class='S10'>>(</span><span class='S5'>static_cast</span><span class='S10'><</span><span - class='S5'>char</span><span class='S0'> </span> <span class='S10'>*>(</span><span - class='S11'>linebuf</span><span class='S10'>)));</span><span class='S0'><br /> - </span> <span class='S10'>}</span><span class='S0'><br /> - </span> <span class='S10'>}</span><br /> - - <p style="margin-bottom: 0in"> - Of course, fancier handling could be implemented. For example, if the previous line was the - start of a control construct, the next line could be automatically indented one tab further. - (Assuming that is your indenting style.) - </p> - <h2> - Implementing Syntax Styling - </h2> - <p> - Syntax styling is handled by the SCN_STYLENEEDED notification. Scintilla keeps track of the - end of the styled text - this is retrieved with SCI_GETENDSTYLED. In response to the - SCN_STYLENEEDED notification, you should apply styles to the text from ENDSTYLED to the - position specified by the notification. - </p> - <p> - Here is the relevant portion of code from SciTE: (SciTE.cxx) - </p> - <span class='S5'>void</span><span class='S0'> </span> <span class='S11'> - SciTEWindow</span><span class='S10'>::</span><span class='S11'>Notify</span><span - class='S10'>(</span><span class='S11'>SCNotification</span><span class='S0'> </span> <span - class='S10'>*</span><span class='S11'>notification</span><span class='S10'>)</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> <span class='S5'>switch</span><span class='S0'> </span> - <span class='S10'>(</span><span class='S11'>notification</span><span - class='S10'>-></span><span class='S11'>nmhdr.code</span><span class='S10'>)</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> <span class='S5'>case</span><span class='S0'> </span> - <span class='S11'>SCN_STYLENEEDED</span><span class='S10'>:</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> <span - class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span - class='S11'>notification</span><span class='S10'>-></span><span - class='S11'>nmhdr.idFrom</span><span class='S0'> </span> <span class='S10'>==</span><span - class='S0'> </span> <span class='S11'>IDM_SRCWIN</span><span class='S10'>)</span><span - class='S0'> </span> <span class='S10'>{</span><span class='S0'><br /> - </span> - <span class='S5'>int</span><span class='S0'> </span> <span class='S11'> - endStyled</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span - class='S11'>SCI_GETENDSTYLED</span><span class='S10'>);</span><span class='S0'><br /> - </span> - <span class='S5'>int</span><span class='S0'> </span> <span class='S11'> - lineEndStyled</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span - class='S11'>EM_LINEFROMCHAR</span><span class='S10'>,</span><span class='S0'> </span> - <span class='S11'>endStyled</span><span class='S10'>);</span><span class='S0'><br /> - </span> - <span class='S11'>endStyled</span><span class='S0'> </span> <span class='S10'> - =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span - class='S10'>(</span><span class='S11'>EM_LINEINDEX</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>lineEndStyled</span><span class='S10'>);</span><span - class='S0'><br /> - </span> - <span class='S11'>Colourise</span><span class='S10'>(</span><span - class='S11'>endStyled</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>notification</span><span class='S10'>-></span><span - class='S11'>position</span><span class='S10'>);</span><br /> - - <p> - Colourize(start, end) retrieves the specified range of text and then calls ColourizeDoc in - keywords.cxx. It starts the process by calling: - </p> - <span class='S11'>SendMessage</span><span class='S10'>(</span><span - class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>SCI_STARTSTYLING</span><span class='S10'>,</span><span class='S0'> </span> - <span class='S11'>startPos</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S4'>31</span><span class='S10'>);</span><br /> - - <p> - and then for each token of the text, calling: - </p> - <span class='S11'>SendMessage</span><span class='S10'>(</span><span - class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>SCI_SETSTYLING</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>length</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>style</span><span class='S10'>);</span><br /> - - <p> - where style is a number from 0 to 31 whose appearance has been defined using the - SCI_STYLESET... messages. - </p> - <h2> - Implementing Calltips - </h2> - <p> - Again, the SCN_CHARADDED notification is used to catch when an opening parenthesis is added. - The preceding word can then be retrieved from the current line: - </p> - <span class='S5'>char</span><span class='S0'> </span> <span - class='S11'>linebuf</span><span class='S10'>[</span><span class='S4'>1000</span><span - class='S10'>];</span><span class='S0'><br /> - </span> <span class='S5'>int</span><span class='S0'> </span> <span - class='S11'>current</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span - class='S11'>SCI_GETCURLINE</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S5'>sizeof</span><span class='S10'>(</span><span class='S11'>linebuf</span><span - class='S10'>),</span><span class='S0'><br /> - </span> <span class='S5'> - reinterpret_cast</span><span class='S10'><</span><span class='S11'>LPARAM</span><span - class='S10'>>(</span><span class='S5'>static_cast</span><span class='S10'><</span><span - class='S5'>char</span><span class='S0'> </span> <span class='S10'>*>(</span><span - class='S11'>linebuf</span><span class='S10'>)));</span><span class='S0'><br /> - </span> <span class='S5'>int</span><span class='S0'> </span> <span - class='S11'>pos</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span - class='S11'>SCI_GETCURRENTPOS</span><span class='S10'>);</span><span class='S0'><br /> - <br /> - </span> <span class='S5'>int</span><span class='S0'> </span> <span - class='S11'>startword</span><span class='S0'> </span> <span class='S10'>=</span><span - class='S0'> </span> <span class='S11'>current</span><span class='S0'> </span> <span - class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span - class='S10'>;</span><span class='S0'><br /> - </span> <span class='S5'>while</span><span class='S0'> </span> - <span class='S10'>(</span><span class='S11'>startword</span><span class='S0'> </span> - <span class='S10'>></span><span class='S0'> </span> <span class='S4'>0</span><span - class='S0'> </span> <span class='S10'>&&</span><span class='S0'> </span> - <span class='S11'>isalpha</span><span class='S10'>(</span><span class='S11'>linebuf</span><span - class='S10'>[</span><span class='S11'>startword</span><span class='S0'> </span> <span - class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span - class='S10'>]))</span><span class='S0'><br /> - </span> <span class='S11'> - startword</span><span class='S10'>--;</span><span class='S0'><br /> - </span> <span class='S11'>linebuf</span><span class='S10'>[</span><span - class='S11'>current</span><span class='S0'> </span> <span class='S10'>-</span><span - class='S0'> </span> <span class='S4'>1</span><span class='S10'>]</span><span - class='S0'> </span> <span class='S10'>=</span><span class='S0'> </span> <span - class='S7'>'\0'</span><span class='S10'>;</span><span class='S0'><br /> - </span> <span class='S5'>char</span><span class='S10'>*</span><span - class='S0'> </span> <span class='S11'>word</span><span class='S0'> </span> <span - class='S10'>=</span><span class='S0'> </span> <span class='S11'>linebuf</span><span - class='S0'> </span> <span class='S10'>+</span><span class='S0'> </span> <span - class='S11'>startword</span><span class='S10'>;</span><br /> - - <p> - Then if a calltip is available it can be displayed. The calltip appears immediately below - the position specified. The calltip can be multiple lines separated by newlines (\n). - </p> - <span class='S11'>pos</span><span class='S0'> </span> <span - class='S10'>=</span><span class='S0'> </span> <span class='S11'>SendMessage</span><span - class='S10'>(</span><span class='S11'>hwnd</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>SCI_GETCURRENTPOS</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span - class='S10'>);</span><span class='S0'><br /> - </span> <span class='S11'>SendMessageText</span><span - class='S10'>(</span><span class='S11'>hwnd</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>SCI_CALLTIPSHOW</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S11'>pos</span><span - class='S0'> </span> <span class='S10'>-</span><span class='S0'> </span> <span - class='S11'>wordLen</span><span class='S0'> </span> <span class='S10'>-</span><span - class='S0'> </span> <span class='S4'>1</span><span class='S10'>,</span><span - class='S0'> </span> <span class='S11'>calltip</span><span class='S10'>);</span><br /> - - <p> - The calltip can be removed when a closing parenthesis is entered: - </p> - <span class='S5'>if</span><span class='S0'> </span> <span - class='S10'>(</span><span class='S11'>SendMessage</span><span class='S10'>(</span><span - class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S11'>SCI_CALLTIPACTIVE</span><span class='S10'>,</span><span class='S0'> </span> - <span class='S4'>0</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S4'>0</span><span class='S10'>))</span><span class='S0'><br /> - </span> <span class='S11'> - SendMessage</span><span class='S10'>(</span><span class='S11'>hwnd</span><span - class='S10'>,</span><span class='S0'> </span> <span class='S11'> - SCI_CALLTIPCANCEL</span><span class='S10'>,</span><span class='S0'> </span> <span - class='S4'>0</span><span class='S10'>,</span><span class='S0'> </span> <span class='S4'> - 0</span><span class='S10'>);</span><br /> - - <p> - Obviously, it is up the application to look after supplying the appropriate calltip text. - </p> - <p> - SciTE goes one step further, counting the commas between arguments and highlighting the - corresponding part of the calltip. This code is in ContinueCallTip. - </p> - <p> - <i>Page contributed by Andrew McKinlay.</i> - </p> - </body> -</html> - diff --git a/doc/Scintilla/Steps.html b/doc/Scintilla/Steps.html deleted file mode 100644 index ff88e88..0000000 --- a/doc/Scintilla/Steps.html +++ /dev/null @@ -1,142 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>How to use the Scintilla Edit Control in windows?</title></head><body bgcolor="#ffffff"> - <p><h2>How to use the Scintilla Edit Control in windows?</h2> - <p> - This should be a little step by step explanation how to use Scintilla in the windows environment. - </p> - </p> - <p><h2>How to create Scintilla Edit Control?</h2> - <p> - First of all, load the Scintilla DLL with something like: - </p> - <pre> - - hmod = LoadLibrary("SciLexer.DLL"); - if (hmod==NULL) - { - MessageBox(hwndParent, - "The Scintilla DLL could not be loaded.", - "Error loading Scintilla", - MB_OK | MB_ICONERROR); - } - </pre> - <p> - If the DLL was loaded successfully, then the DLL has registered (yes, by itself) a new - window class. The new class called "Scintilla" is the new scintilla edit control. - </p> - <p> - Now you can use this new control just like any other windows control. - </p> - <pre> - - hwndScintilla = CreateWindowEx(0, - "Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN, - 10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL); - </pre> - <p> - Note the new window class name: "Scintilla". By reaching this point you actually included - a Scintilla Edit Control to your windows program. - </p> - </p> - <p><h2>How to control the Scintilla Edit Control?</h2> - <p> - You can control Scintilla by sending commands to the Edit Control. - There a 2 ways of doing this. A simple and fast way. - </p> - <p><h3>The simple way to control Scintilla</h3> - <p> - The simple way is just like with any other windows control. You can send messages to the - Scintilla Edit Control and receive notifications from the control. (Note that the notifications - are sent to the parent window of the Scintilla Edit Control.) - </p> - <p> - The Scintilla Edit Control knows a special message for each command. - To send commands to the Scintilla Edit Control you can use the SendMessage function. - </p> - <pre> - - SendMessage(hwndScintilla,sci_command,wparam,lparam); - </pre> - <p> - like: - </p> - <pre> - - SendMessage(hwndScintilla,SCI_CREATEDOCUMENT, 0, 0); - </pre> - <p> - Some of the commands will return a value and unused parameters should be set to NULL. - </p> - </p> - <p><h3>The fast way to control Scintilla</h3> - <p> - The fast way of controlling the Scintilla Edit Control is to call message handling function by yourself. - You can retrieve a pointer to the message handling function of the Scintilla Edit Control and - call it directly to execute a command. This way is much more faster than the SendMessage() way. - </p> - <p> - 1st you have to use the SCI_GETDIRECTFUNCTION and SCI_GETDIRECTPOINTER commands to - retrieve the pointer to the function and a pointer which must be the first parameter when calling the retrieved - function pointer. - You have to do this with the SendMessage way :) - </p> - <p> - The whole thing has to look like this: - </p> - <pre> - - int (*fn)(void*,int,int,int); - void * ptr; - int canundo; - - fn = (int (__cdecl *)(void *,int,int,int))SendMessage( - hwndScintilla,SCI_GETDIRECTFUNCTION,0,0); - ptr = (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0); - - canundo = fn(ptr,SCI_CANUNDO,0,0); - </pre> - <p> - with "fn" as the function pointer to the message handling function of the Scintilla Control - and "ptr" as the pointer that must be used as 1st parameter. - The next parameters are the Scintilla Command with its two (optional) parameters. - </p> - - </p> - <p><h3>How will I receive notifications?</h3> - <p> - Whenever an event occurs where Scintilla wants to inform you about something, the Scintilla Edit Control - will send notification to the parent window. This is done by a WM_NOTITY message. - When receiving that message, you have to look in the xxx struct for the actual message. - </p> - <p> - So in Scintillas parent window message handling function you have to include some code like this: - </p> - <pre> - NMHDR *lpnmhdr; - - [...] - - case WM_NOTIFY: - lpnmhdr = (LPNMHDR) lParam; - - if(lpnmhdr->hwndFrom==hwndScintilla) - { - switch(lpnmhdr->code) - { - case SCN_CHARADDED: - /* Hey, Scintilla just told me that a new */ - /* character was added to the Edit Control.*/ - /* Now i do something cool with that char. */ - break; - } - } - break; - </pre> - </p> - </p> - - <p> - <i>Page contributed by Holger Schmidt.</i> - </p> -</body></html> - diff --git a/doc/Scintilla/index.html b/doc/Scintilla/index.html deleted file mode 100644 index a4eeeda..0000000 --- a/doc/Scintilla/index.html +++ /dev/null @@ -1,198 +0,0 @@ -<?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" /> - <meta name="keywords" content="Scintilla, SciTE, Editing Component, Text Editor" /> - <meta name="Description" - content="www.scintilla.org is the home of the Scintilla editing component and SciTE text editor application." /> - <meta name="Date.Modified" content="20060821" /> - <style type="text/css"> - .versionlist { - color: #FFCC99; - } - </style> - <script> - function IsRemote() { - var loc = '' + window.location; - return loc.indexOf('http:') != -1; - } - </script> - <title> - Scintilla and SciTE - </title> - </head> - <body bgcolor="#FFFFFF" text="#000000"> - <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0"> - <tr> - <td width="256"> - <img src="SciWord.jpg" height="78" width="256" alt="Scintilla" /> - </td> - <td width="40%" align="left"> - <font color="#FFCC99" size="4"> A free source code editing component for Win32 and - GTK+</font> - </td> - <td width="40%" align="right"> - <font color="#FFCC99" size="3"> Release version 1.71<br /> - Site last modified August 21 2006</font> - </td> - <td width="20%"> - - </td> - </tr> - </table> - <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0"> - <tr> - <td width="100%"> - <img src="SciBreak.jpg" height="150" width="1024" alt="Sci Break" /> - </td> - </tr> - </table> - <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="6" border="0"> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.71 defaults mouse drag to be move on GTK+ - and GTK+ also has some internationalisation fixes.</span> - </td> - </tr> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.70 allows, on GTK+, approximate character set conversions - for pasting and uses internationalised input at all times.</span> - </td> - </tr> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.69 supports the Spice language and can draw - the selection and whole line markers translucently.</span> - </td> - </tr> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.68 can draw the caret line - and box indicators translucently and has an accurate TCL lexer.</span> - </td> - </tr> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.67 enhances some lexers and fixes bugs.</span> - </td> - </tr> - <tr> - <td width="100%"> - <span class="versionlist">Version 1.66 has a new Ruby lexer and fixes bugs on GTK+ - with Pango 1.8.</span> - </td> - </tr> - </table> - <table bgcolor="#CCCCCC" width="100%" cellspacing="0" cellpadding="8" border="0"> - <tr> - <td> - <font size="4"> -<script type="text/javascript" language="JavaScript"><!-- -if (IsRemote()) { - document.write('<a href="http://scintilla.sourceforge.net/SciTEImage.html">Screenshot</a> '); - document.write('<a href="http://scintilla.sourceforge.net/ScintillaDownload.html">Download</a> '); -} -//--></script> - <a href="http://scintilla.sourceforge.net/ScintillaDoc.html">Documentation</a> - <a href="http://scintilla.sourceforge.net/ScintillaToDo.html">Bugs</a> -<script type="text/javascript" language="JavaScript"><!-- -if (IsRemote()) { - document.write('<a href="http://scintilla.sourceforge.net/SciTE.html">SciTE</a> '); -} -//--></script> - <a href="http://scintilla.sourceforge.net/ScintillaHistory.html"> - History</a> <a href="http://scintilla.sourceforge.net/ScintillaRelated.html">Related</a> </font> - </td> - </tr> - </table> - <p> - <a href="http://scintilla.sourceforge.net/ScintillaDoc.html">Scintilla</a> is a free source code editing component. - It comes with complete source code and a <a href="http://scintilla.sourceforge.net/License.txt">license</a> that - permits use in any free project or commercial product. - </p> - <p> - 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. - </p> - <p> - The <a href="http://scintilla.sourceforge.net/SinkWorld.html">SinkWorld project</a> - investigates possible future directions for Scintilla to make it more flexible, robust, perform - better and run on the .NET and Java virtual machines. - </p> - <p> - <a href="http://scintilla.sourceforge.net/SciTE.html">SciTE</a> is a SCIntilla based Text Editor. Originally built to - demonstrate Scintilla, it has grown to be a generally useful editor with facilities for - building and running programs. It is best used for jobs with simple configurations - I use it - for building test and demonstration programs as well as SciTE and Scintilla, themselves. - </p> - <p> - Development of Scintilla started as an effort to improve the text editor in PythonWin. After - being frustrated by problems in the Richedit control used by PythonWin, it looked like the - best way forward was to write a new edit control. The biggest problem with Richedit and other - similar controls is that they treat styling changes as important persistent changes to the - document so they are saved into the undo stack and set the document's dirty flag. For source - code, styling should not be persisted as it can be mechanically recreated. - </p> - <p> - Scintilla and SciTE are currently available for Intel Win32 and Linux compatible operating - systems with GTK+. They have been run on Windows 95, NT 4.0, Windows 2000, and on Red Hat - Linux 8 and 9 with GTK+ 1.2 and 2.0. <a href="http://scintilla.sourceforge.net/SciTEImage.html">Here is a screenshot of - SciTE.</a><br /> - </p> - <p> - You can <a href="http://scintilla.sourceforge.net/ScintillaDownload.html">download Scintilla.</a> - </p> - <p> - The source code can be downloaded via CVS at the Source Forge - <a href="https://sourceforge.net/project/?group_id=2439">Scintilla project page</a>. - </p> - <p> - <a href="http://scintilla.sourceforge.net/ScintillaRelated.html">Related sites.</a> - </p> - <p> - <a href="http://scintilla.sourceforge.net/ScintillaToDo.html">Bugs and To Do list.</a> - </p> - <p> - <a href="http://scintilla.sourceforge.net/ScintillaHistory.html">History and contribution credits.</a> - </p> - <p> - <a href="http://scintilla.sourceforge.net/Icons.html">Icons that can be used with Scintilla.</a> - </p> - <p> - Questions and comments about Scintilla should be directed to the - <a href="http://mailman.lyra.org/mailman/listinfo/scintilla-interest">scintilla-interest</a> - mailing list, - which is for discussion of Scintilla and related projects, their bugs and future features. - This is a low traffic list, averaging less than 50 messages per week. - To avoid spam, only list members can write to the list. - Announcements of new versions of Scintilla go to both the scintilla-interest list and - <a href="http://mailman.lyra.org/mailman/listinfo/scintilla-announce">scintilla-announce</a>. - Messages sent to my personal email address that could have been sent to the list - may receive no response. - <br /> - </p> -<script type="text/javascript" language="JavaScript"> -<!-- -document.write('There is a <a href="https://sourceforge.net/project/?group_id=2439">Scintilla project page<\/a>'); -document.write(' hosted on '); -if (IsRemote()) { - document.write('<a href="http://sourceforge.net">'); - document.write('<img src="http://sourceforge.net/sflogo.php?group_id=2439&type=1" width="88" height="31" border="0" /><\/a> '); -} else { - document.write('<a href="http://sourceforge.net">SourceForge<\/a>'); -} -//--> -</script> - </body> -</html> - |