Release 4.0.2
Released 26 October 2017.
Fix HTML lexer handling of Django so that nesting a {{ }} or {% %} Django tag inside of a {# #} Django comment does not break highlighting of rest of file
Fix failure on Cocoa with animated find indicator in large files with macOS 10.13 by disabling animation on 10.13.
Fix Cocoa hang when Scintilla loaded from SMB share on macOS 10.13. Bug #1979.
Release 4.0.1
Released 23 October 2017.
The ILoader interface is defined in its own header ILoader.h as it is not related to lexing so doesn't belong in ILexer.h.
The Scintilla namespace is always active for internal symbols and for the lexer interfaces ILexer4 and IDocument.
The Baan lexer checks that matches to 3rd set of keywords are function calls and leaves as identifiers if not. Baan lexer and folder support #context_on / #context_off preprocessor feature.
The C++ lexer improved preprocessor conformance.
Default value of 0 for undefined preprocessor symbols.
#define A is treated as #define A 1.
"defined A" removes "A" before replacing "defined" with value. Bug #1966.
The Python folder treats triple-quoted f-strings like triple-quoted strings. Bug #1977.
The SQL lexer uses sql.backslash.escapes for double quoted strings. Bug #1968.
Minor undefined behaviour fixed. Bug #1978.
On Cocoa, improve scrolling on macOS 10.12. Bug #1885.
On Cocoa, fix line selection by clicking in the margin when scrolled. Bug #1971.
Release 4.0.0
Released 16 August 2017.
This is an unstable release with changes to interfaces used for lexers and platform access. Some more changes may occur to internal and external interfaces before stability is regained with 4.1.0.
Uses C++14 features. Requires Microsoft Visual C++ 2017, GCC 7, and Clang 4.0 or newer.
Support dropped for GTK+ versions before 2.24.
The lexer interfaces ILexer and ILexerWithSubStyles, along with additional style metadata methods, were merged into ILexer4. Most lexers will need to be updated to match the new interfaces.
The IDocumentWithLineEnd interface was merged into IDocument.
The platform layer interface has changed with unused methods removed, a new mechanism for reporting events, removal of methods that take individual keyboard modifiers, and removal of old timer methods.
Style metadata may be retrieved from lexers that support this through the SCI_GETNAMEDSTYLES, SCI_NAMEOFSTYLE, SCI_TAGSOFSTYLE, and SCI_DESCRIPTIONOFSTYLE APIs.
The Cocoa platform layer uses Automatic Reference Counting (ARC).
The default encoding in Scintilla is UTF-8.
An SCN_AUTOCSELECTIONCHANGE notification is sent when items are highlighted in an autocompletion or user list.
The data parameter to ILoader::AddData made const. Bug #1955.
SciTE's embedded Lua interpreter updated to Lua 5.3.
SciTE allows event handlers to be arbitrary callables, not just functions. Feature #1190.
SciTE allows user.shortcuts to be defined with symbolic Scintilla messages like 'Ctrl+L|SCI_LINEDELETE|'.
The Matlab lexer treats 'end' as a number rather than a keyword when used as a index. This also stops incorrect folding. Bug #1951.
The Matlab folder implements "fold", "fold.comment", and "fold.compact" properties. Bug #1965.
The Rust lexer recognizes 'usize' numeric literal suffixes. Bug #1919.
Ensure redraw when application changes overtype mode so caret change visible even when not blinking. Notify application with SC_UPDATE_SELECTION when overtype changed - previously sent SC_UPDATE_CONTENT.
Fix drawing failure when in wrap mode for delete to start/end of line which affects later lines but did not redraw them. Also fixed drawing for wrap mode on GTK+ 2.x. Bug #1949.
On GTK+ fix drawing problems including incorrect scrollbar redrawing and flickering of text. Bug #1876.
On Linux, both for GTK+ and Qt, the default modifier key for rectangular selection is now Alt. This is the same as Windows and macOS. This was changed from Ctrl as window managers are less likely to intercept Alt+Drag for moving windows than in the past.
On Cocoa, fix doCommandBySelector but avoid double effect of 'delete' key. Bug #1958.
On Qt, the updateUi signal includes the 'updated' flags. No updateUi signal is sent for focus in events. These changes make Qt behave more like the other platforms.
On Qt, dropping files on Scintilla now fires the SCN_URIDROPPED notification instead of inserting text.
On Qt, focus changes send the focusChanged signal. Bug #1957.
On Qt, mouse tracking is reenabled when the window is reshown. Bug #1948.
On Windows, the DirectWrite modes SC_TECHNOLOGY_DIRECTWRITEDC and SC_TECHNOLOGY_DIRECTWRITERETAIN are no longer provisional.
SciTE on macOS fixes a crash when platform-specific and platform-independent session restoration clashed. Bug #1960.
SciTE on GTK+ implements find.close.on.find. Bug #1152, Bug #1254, Bug #1762, Feature #849.
Release 3.7.6
Released 8 August 2017.
This is the first release of the long term branch which avoids using features from C++14 or later in order to support older systems.
The Baan lexer correctly highlights numbers when followed by an operator.
On Cocoa, fix a bug with retrieving encoded bytes.
Release 3.7.5
Released 26 May 2017.
Support dropped for Microsoft Visual C++ 2013 due to increased use of C++11 features.
Added a caret line frame as an alternative visual for highlighting the caret line.
Added "Reverse Selected Lines" feature.
SciTE adds "Select All Bookmarks" command.
SciTE adds a save.path.suggestion setting to suggest a file name when saving an unnamed buffer.
Updated case conversion and character categories to Unicode 9.
The Baan lexer recognizes numeric literals in a more compliant manner including hexadecimal numbers and exponentials.
The Bash lexer recognizes strings in lists in more cases. Bug #1944.
The Fortran lexer recognizes a preprocessor line after a line continuation &. Bug #1935.
The Fortran folder can fold comments. Bug #1936.
The PowerShell lexer recognizes escaped quotes in strings. Bug #1929.
The Python lexer recognizes identifiers more accurately when they include non-ASCII characters.
The Python folder treats comments at the end of the file as separate from the preceding structure.
The YAML lexer recognizes comments in more situations and styles a "..." line like a "---" line. Bug #1931.
Update scroll bar when annotations added, removed, or visibility changed. Feature #1187.
Canceling modes with the Esc key preserves a rectangular selection. Bug #1940.
Builds are made with a sorted list of lexers to be more reproducible. Bug #1946.
On Cocoa, a leak of mouse tracking areas was fixed.
On Cocoa, the autocompletion is 4 pixels wider to avoid text truncation.
On Windows, stop drawing a focus rectangle on the autocompletion list and raise the default list length to 9 items.
SciTE examines at most 1 MB of a file to automatically determine indentation for indent.auto to avoid a lengthy pause when loading very large files.
SciTE user interface uses lighter colours and fewer 3D elements to match current desktop environments.
SciTE sets buffer dirty and shows message when file deleted if load.on.activate on.
SciTE on Windows Find strip Find button works in incremental no-close mode. Bug #1926.
Release 3.7.4
Released 21 March 2017.
Requires a C++11 compiler. GCC 4.8 and MSVC 2015 are supported.
Support dropped for Windows NT 4.
Accessibility support may be queried with SCI_GETACCESSIBILITY. On GTK+, accessibility may be disabled by calling SCI_SETACCESSIBILITY.
Lexer added for "indent" language which is styled as plain text but folded by indentation level.
The Progress ABL lexer handles nested comments where comment starts or ends are adjacent like "/*/*" or "*/*/".
In the Python lexer, improve f-string support. Add support for multiline expressions in triple quoted f-strings. Handle nested "()", "[]", and "{}" in f-string expressions and terminate expression colouring at ":" or "!". End f-string if ending quote is seen in a "{}" expression. Fix terminating single quoted f-string at EOL. Bug #1918.
The VHDL folder folds an "entity" on the first line of the file.
For IMEs, do not clear selected text when there is no composition text to show.
Fix to crash with fold tags where line inserted at start.
Fix to stream selection mode when moving caret up or down. Bug #1905.
Drawing fixes for fold tags include fully drawing lines and not overlapping some drawing and ensuring edges and mark underlines are visible.
Fix Cocoa failure to display accented character chooser for European languages by partially reverting a change made to prevent a crash with Chinese input by special-casing the Cangjie input source. Bug #1881.
Fix potential problems with IME on Cocoa when document contains invalid UTF-8.
Fix crash on Cocoa with OS X 10.9 due to accessibility API not available. Bug #1915.
Improved speed of accessibility code on GTK+ by using additional memory as a cache. Bug #1910.
Fix crash in accessibility code on GTK+ < 3.3.6 caused by previous bug fix. Bug #1907.
Fix to prevent double scrolling on GTK+ with X11. Bug #1901.
SciTE on GTK+ adds an "accessibility" property to allow disabling accessibility on GTK+ as an optimization.
SciTE on GTK+ has changed file chooser behaviour for some actions: overwriting an existing file shows a warning; the default session file name "SciTE.session" is shown and a "*.session" filter is applied; appropriate filters are applied when exporting; the current file name is displayed in "Save As" even when that file no longer exists.
SciTE fixed a bug where, on GTK+, when the output pane had focus, menu commands performed by mouse were sent instead to the edit pane.
SciTE on Windows 8+ further restricts the paths searched for DLLs to the application and system directories which may prevent some binary planting attacks.
Fix failure to load Direct2D on Windows when used on old versions of Windows. Bug #1653.
Release 3.7.3
Released 19 February 2017.
Display block caret over the character at the end of a selection to be similar to other editors.
In SciTE can choose colours for fold markers. Feature #1172.
In SciTE can hide buffer numbers in tabs. Feature #1173.
The Diff lexer recognizes deleted lines that start with "--- ".
The Lua lexer requires the first line to start with "#!" to be treated as a shebang comment, not just "#". Bug #1900.
The Matlab lexer requires block comment start and end to be alone on a line. Bug #1902.
The Python lexer supports f-strings with new styles, allows Unicode identifiers, and no longer allows @1 to be a decorator. Bug #1848.
Fix folding inconsistency when fold header added above a folded part. Avoid unnecessary unfolding when a deletion does not include a line end. Bug #1896.
Fix finalization crash on Cocoa. Bug #1909.
SciTE on GTK+ can have a wide divider between the panes with the split.wide property.
Fix display of autocompletion lists and calltips on GTK+ 3.22 on Wayland. Newer APIs used on GTK+ 3.22 as older APIs were deprecated.
Fix crash in accessibility code on GTK+ due to signal receipt after destruction. Bug #1907.
Make trackpad scrolling work on Wayland. Bug #1901.