From 2925907e6f8ac98a04bbba46c15909bece49a15f Mon Sep 17 00:00:00 2001
From: Sup Yut Sum Last edited 1 May 2014 NH Last edited 24 May 2014 NH There is an overview of the internal design of
Scintilla. Each byte in a Scintilla document is followed by an associated byte of styling
+ Each byte in a Scintilla document is associated with a byte of styling
information. The combination of a character byte and a style byte is called a cell. Style bytes
- are interpreted an index into an array of styles.
- Style bytes may be split into an index and a set of indicator bits
- but this use is discouraged and indicators should now use
- indicators. 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 up to a maximum of 8 bits.
- The remaining bits can be used for indicators.Scintilla Documentation
-
@@ -364,20 +364,9 @@
Text retrieval and modification
-
In this document, 'character' normally refers to a byte even when multi-byte characters are used. Lengths measure the numbers of bytes, not the amount of characters in those bytes.
@@ -421,8 +410,6 @@ SCI_GETSTYLEAT(int position)pos
in the document, or 0 if pos
is
negative or past the end of the document.
- SCI_SETSTYLEBITS(int bits)
- SCI_GETSTYLEBITS
- This pair of routines sets and reads back the number of bits in each cell to use for styling,
- to a maximum of 8 style bits. The remaining bits can be used as indicators. The standard
- setting is SCI_SETSTYLEBITS(5)
.
- The number of styling bits needed by the current lexer can be found with
- .
SCI_RELEASEALLEXTENDEDSTYLES
SCI_ALLOCATEEXTENDEDSTYLES(int numberStyles)
Extended styles are used for features like textual margins and annotations as well as internally by Scintilla.
@@ -2329,12 +2308,7 @@ struct Sci_TextToFind {
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 = styles 0 to 31) that set a style and three bits (5 to 7) that - define indicators. You can change the balance between - styles and indicators with . If your styling needs can be met by +
The styling messages allow you to assign styles to text. 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
command to select @@ -2345,7 +2319,7 @@ struct Sci_TextToFind { use the styling commands to mark errors detected by a compiler. The following commands can be used.SCI_GETENDSTYLED
- SCI_STARTSTYLING(int position, int mask)
+ SCI_STARTSTYLING(int position, int unused)
SCI_SETSTYLING(int length, int style)
SCI_SETSTYLINGEX(int length, const char
*styles)
@@ -2363,31 +2337,23 @@ struct Sci_TextToFind {
container. The container can send SCI_GETENDSTYLED
to work out where it needs to
start styling. Scintilla will always ask to style whole lines.
- SCI_STARTSTYLING(int pos, int mask)
- This prepares for styling by setting the styling position pos
to start at and a
- mask
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 mask
value
- of 31 (0x1f) if you were setting text styles and did not want to change the indicators. After
+
SCI_STARTSTYLING(int pos, int unused)
+ This prepares for styling by setting the styling position pos
to start at.
+ The unused argument was used in earlier versions but is now ignored.
+ After
SCI_STARTSTYLING
, send multiple SCI_SETSTYLING
messages for each
lexical entity to style.
SCI_SETSTYLING(int length, int style)
This message sets the style of length
characters starting at the styling position
- and then increases the styling position by length
, ready for the next call. If
- sCell
is the style byte, the operation is:
- if ((sCell & mask) != style) sCell = (sCell & ~mask) | (style &
- mask);
+ and then increases the styling position by length
, ready for the next call.
SCI_SETSTYLINGEX(int length, const char *styles)
As an alternative to SCI_SETSTYLING
, which applies the same style to each byte,
you can use this message which specifies the styles for each of length
bytes from
the styling position and then increases the styling position by length
, ready for
- the next call. The length
styling bytes pointed at by styles
should
- not contain any bits not set in mask.
+ the next call.
SCI_SETLINESTATE(int line, int value)
SCI_GETLINESTATE(int line)
@@ -2405,9 +2371,8 @@ struct Sci_TextToFind {
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 256
- lexer styles that can be set, numbered 0 to STYLE_MAX
(255). Unless you use to change the number
- of style bits, styles 0 to 31 are used to set the text attributes. There are also some
+ lexer styles that can be set, numbered 0 to STYLE_MAX
(255).
+ There are also some
predefined numbered styles starting at 32, The following STYLE_
* constants are
defined.
@@ -2504,9 +2469,7 @@ struct Sci_TextToFind {
255
This is not a style but is the number of the maximum style that can be set. Styles
- between STYLE_LASTPREDEFINED
and STYLE_MAX
would be appropriate
- if you used SCI_SETSTYLEBITS
- to set more than 5 style bits.
+ between STYLE_LASTPREDEFINED
and STYLE_MAX
may be used.
@@ -3196,9 +3159,6 @@ struct Sci_TextToFind {
Other settings
- SCI_SETUSEPALETTE(bool
- allowPaletteUse)
- SCI_GETUSEPALETTE
SCI_SETBUFFEREDDRAW(bool isBuffered)
SCI_GETBUFFEREDDRAW
SCI_SETTWOPHASEDRAW(bool twoPhase)
@@ -3839,10 +3799,7 @@ struct Sci_TextToFind {
Indicators are used to display additional information over the top of styling.
They can be used to show, for example, syntax errors, deprecated names and bad indentation
- by drawing underlines under text or boxes around text. Originally, Scintilla stored indicator information in
- the style bytes but this has proved limiting, so now up to 32 separately stored indicators may be used.
- While style byte indicators currently still work, they will soon be removed so all the bits in each style
- byte can be used for lexical states.
+ by drawing underlines under text or boxes around text.
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.
@@ -3853,6 +3810,12 @@ struct Sci_TextToFind {
by lexers (0..7) and a range for use by containers
(8=INDIC_CONTAINER
.. 31=INDIC_MAX
).
+ Originally, Scintilla used a different technique for indicators but this
+ has been removed
+ and the APIs perform no action.
+ While both techniques were supported, the term "modern indicators" was used for the
+ newer implementation.
+
SCI_INDICSETSTYLE(int indicatorNumber, int
indicatorStyle)
SCI_INDICGETSTYLE(int indicatorNumber)
@@ -4074,12 +4037,10 @@ struct Sci_TextToFind {
SCI_INDICSETUNDER(int indicatorNumber, bool under)
SCI_INDICGETUNDER(int indicatorNumber)
These two messages set and get whether an indicator is drawn under text or over(default).
- Drawing under text works only for modern indicators when
+ Drawing under text works only for indicators when
is enabled.
- Modern Indicators
-
- Modern indicators are stored in a format similar to run length encoding which is efficient in both
+
Indicators are stored in a format similar to run length encoding which is efficient in both
speed and storage for sparse information.
An indicator may store different values for each range but currently all values are drawn the same.
In the future, it may be possible to draw different values in different styles.
@@ -4146,32 +4107,8 @@ struct Sci_TextToFind {
This message hides the find indicator.
- Style Byte Indicators (deprecated)
- 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.
-
- The indicators are set using INDICS_MASK
mask
- and with the values
- INDIC0_MASK
, INDIC1_MASK
and INDIC2_MASK
.
-
- with a If you are using indicators in a buffer that has a lexer active
- (see 0x1f
in the default layout of 5 style bits and 3 indicator bits)
- when you are done.
-
- ),
- you must save lexing state information before setting any indicators and restore it afterwards.
- Use
- to retrieve the current "styled to" position and
-
- to reset the styling position and mask (The number of bits used for styles can be altered with INDIC*_MASK
constants defined in Scintilla.h
all assume 5 bits of
- styling information and 3 indicators. If you use a different arrangement, you must define your
- own constants.
+ from 0 to 8 bits. The remaining bits
- can be used for indicators, so there can be from 1 to 8 indicators. However, the
- Earlier versions of Scintilla allowed partitioning style bytes
+ between style numbers and indicators and provided APIs for setting and querying this.
Autocompletion
@@ -4223,6 +4160,8 @@ struct Sci_TextToFind {
SCI_AUTOCGETIGNORECASE
SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR(int behaviour)
SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR
+ SCI_AUTOCSETMULTI(int multi)
+ SCI_AUTOCGETMULTI
SCI_AUTOCSETORDER(int order)
SCI_AUTOCGETORDER
SCI_AUTOCSETAUTOHIDE(bool autoHide)
@@ -4340,6 +4279,12 @@ struct Sci_TextToFind {
This corresponds to a behaviour property of SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE
(0).
If you want autocompletion to ignore case at all, choose SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE
(1).
+ SCI_AUTOCSETMULTI(int multi)
+ SCI_AUTOCGETMULTI
+ When autocompleting with multiple selections present, the autocompleted text can go into just the main selection with
+ SC_MULTIAUTOC_ONCE
(0) or into each selection with SC_MULTIAUTOC_EACH
(1).
+ The default is SC_MULTIAUTOC_ONCE
.
+
SCI_AUTOCSETORDER(int order)
SCI_AUTOCGETORDER
The default setting SC_ORDER_PRESORTED
(0) requires that the list be provided in alphabetical sorted order.
@@ -5968,7 +5913,6 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
-
@@ -6118,11 +6062,6 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
SCI_DESCRIBEKEYWORDSETS(<unused>, char *descriptions)
A description of all of the keyword sets separated by "\n" is returned by SCI_DESCRIBEKEYWORDSETS
.
- SCI_GETSTYLEBITSNEEDED
- Retrieve the number of bits the current lexer needs for styling. This should normally be the argument
- to .
-
-
Substyles
Lexers may support several different sublanguages and each sublanguage may want to style some number of
sets of identifiers (or similar lexemes such as documentation keywords) uniquely. Preallocating a large number for each
@@ -6441,6 +6380,8 @@ segments then changing the statement #define BEOS 0
to #defin
document. The lexer can call ChangeLexerState
to signal to
the document that it should relex and display more.
+For StartStyling
the mask argument has no effect. It was used in version 3.4.2 and earlier.
+
SetErrorStatus
is used to notify the document of
exceptions. Exceptions should not be thrown over build boundaries as the
two sides may be built with different compilers or incompatible
@@ -7481,6 +7422,20 @@ EM_FORMATRANGE
SCI_GETUSEPALETTE Deprecated
Scintilla no longer supports palette mode. The last version to support palettes was 2.29.
Any calls to these methods should be removed.
+
+ The following are features that should be removed from calling code but are still
+ defined to avoid breaking callers.
+
+ SCI_SETSTYLEBITS(int bits) Deprecated
+ SCI_GETSTYLEBITS Deprecated
+ SCI_GETSTYLEBITSNEEDED Deprecated
+ INDIC0_MASK
, INDIC1_MASK
, INDIC2_MASK
, INDICS_MASK
Deprecated
+ Scintilla no longer supports style byte indicators. The last version to support style byte indicators was 3.4.2.
+ Any use of these symbols should be removed and replaced with standard indicators.
+ SCI_GETSTYLEBITS
and SCI_GETSTYLEBITSNEEDED
always return 8,
+ indicating that 8 bits are used for styling and there are 256 styles.
+
+
Edit messages never supported by Scintilla
@@ -7517,6 +7472,12 @@ EM_SETTARGETDEVICE
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.
+ Removed features
+
+ Previous versions of Scintilla allowed indicators to be stord in bits of each style byte.
+ This was deprecated in 2007 and removed in 2014 with release 3.4.3.
+ All uses of style byte indicators should be replaced with standard indicators.
+
Building Scintilla
To build Scintilla or SciTE, see the README file present in both the Scintilla and SciTE
diff --git a/ext/scintilla/doc/ScintillaDownload.html b/ext/scintilla/doc/ScintillaDownload.html
index e8d382ff4..e1407c2eb 100644
--- a/ext/scintilla/doc/ScintillaDownload.html
+++ b/ext/scintilla/doc/ScintillaDownload.html
@@ -25,9 +25,9 @@
-
+
Windows
-
+
GTK+/Linux
@@ -41,7 +41,7 @@
containing very few restrictions.
- Release 3.4.3
+ Release 3.4.4
Source Code
@@ -49,8 +49,8 @@
The source code package contains all of the source code for Scintilla but no binary
executable code and is available in
- - zip format (1450K) commonly used on Windows
- - tgz format (1300K) commonly used on Linux and compatible operating systems
+ - zip format (1450K) commonly used on Windows
+ - tgz format (1300K) commonly used on Linux and compatible operating systems
Instructions for building on both Windows and Linux are included in the readme file.
diff --git a/ext/scintilla/doc/ScintillaHistory.html b/ext/scintilla/doc/ScintillaHistory.html
index fa0a42021..ddd2c2632 100644
--- a/ext/scintilla/doc/ScintillaHistory.html
+++ b/ext/scintilla/doc/ScintillaHistory.html
@@ -460,6 +460,84 @@
+ Release 3.4.4
+
+
+ -
+ Released 3 July 2014.
+
+ -
+ Style byte indicators removed. They were deprecated in 2007. Standard indicators should be used instead.
+
+ -
+ When multiple selections are active, autocompletion text may be inserted at each selection with new
+ SCI_AUTOCSETMULTI method.
+
+ -
+ C++ lexer fixes crash for "#define x(".
+ Bug #1614.
+
+ -
+ C++ lexer fixes raw string recognition so that R"xxx(blah)xxx" is styled as SCE_C_STRINGRAW.
+
+ -
+ The Postscript lexer no longer marks token edges with indicators as this used style byte indicators.
+
+ -
+ The Scriptol lexer no longer displays indicators for poor indentation as this used style byte indicators.
+
+ -
+ TCL lexer fixes names of keyword sets.
+ Bug #1615.
+
+ -
+ Shell lexer fixes fold matching problem caused by "<<<".
+ Bug #1605.
+
+ -
+ Fix bug where indicators were not removed when fold highlighting on.
+ Bug #1604.
+
+ -
+ Fix bug on Cocoa where emoji were treated as being zero width.
+
+ -
+ Fix crash on GTK+ with Ubuntu 12.04 and overlay scroll bars.
+
+ -
+ Avoid creating a Cairo context when measuring text on GTK+ as future versions of GTK+
+ may prohibit calling gdk_cairo_create except inside drawing handlers. This prohibition may
+ be required on Wayland.
+
+ -
+ On Cocoa, the registerNotifyCallback method is now marked as deprecated so client code that
+ uses it will display an error message.
+ Client code should use the delegate mechanism or subclassing instead.
+ The method will be removed in the next version.
+
+ -
+ On Cocoa, package Scintilla more in compliance with platform conventions.
+ Only publish public headers in the framework headers directory.
+ Only define the Scintilla namespace in Scintilla.h when compiling as C++.
+ Use the Cocoa NS_ENUM and NS_OPTIONS macros for exposed enumerations.
+ Hide internal methods from public headers.
+ These changes are aimed towards publishing Scintilla as a module which will allow it to
+ be used from the Swift programming language, although more changes will be needed here.
+
+ -
+ Fix crash in SciTE when stream comment performed at line end.
+ Bug #1610.
+
+ -
+ For SciTE on Windows, display error message when common dialogs fail.
+ Bug #156.
+
+ -
+ For SciTE on GTK+ fix bug with initialisation of toggle buttons in find and replace strips.
+ Bug #1612.
+
+
+
Release 3.4.3
diff --git a/ext/scintilla/doc/index.html b/ext/scintilla/doc/index.html
index 06dcb41a5..1f441afaf 100644
--- a/ext/scintilla/doc/index.html
+++ b/ext/scintilla/doc/index.html
@@ -9,7 +9,7 @@
-
+