SciTE Changelog

What's new in SciTE 4.3.0

Jan 17, 2020
  • Lexers made available as Lexilla library. TestLexers program with tests for Lexilla and lexers added in lexilla/test.
  • SCI_SETILEXER implemented to use lexers from Lexilla or other sources.
  • ILexer5 interface defined provisionally to support use of Lexilla. The details of this interface may change before being stabilised in Scintilla 5.0.
  • SCI_LOADLEXERLIBRARY implemented on Cocoa.
  • Build Scintilla with SCI_EMPTYCATALOGUE to avoid making lexers available.
  • Lexer and folder added for Raku language. Feature #1328.
  • Don't clear clipboard before copying text with Qt. Bug #2147.
  • On Win32, remove support for CF_TEXT clipboard format as Windows will convert to CF_UNICODETEXT.
  • Improve IME behaviour on GTK. Set candidate position for windowed IME. Improve location of candidate window. Prevent movement of candidate window while typing. Bug #2135.

New in SciTE 4.2.2 (Dec 8, 2019)

  • Move rather than grow selection when insertion at start. Bug #2140.
  • Allow target to have virtual space. Add methods for finding the virtual space at start and end of multiple selections. Feature #1316.
  • SciTE on Win32 adds mouse button "Forward" and "Backward" key definitions for use in properties like user.shortcuts. Feature #1317.
  • Lexer and folder added for Hollywood language. Feature #1324.
  • HTML lexer treats custom tags from HTML5 as known tags. These contain "-" like "custom-tag". Feature #1299.
  • HTML lexer fixes bug with some non-alphabetic characters in unknown tags. Feature #1320.
  • Fix bug in properties file lexer where long lines were only styled for the first 1024 characters. Bug #1933.
  • Ruby lexer recognizes squiggly heredocs. Feature #1326.
  • Avoid unnecessary IME caret movement on Win32. Feature #1304.
  • Clear IME state when switching language on Win32. Bug #2137.
  • Fixed drawing of translucent rounded rectangles on Win32 with Direct2D. Bug #2144.
  • Setting rectangular selection made faster. Bug #2130.
  • SciTE reassigns *.s extension to the GNU Assembler language from the S+ statistical language

New in SciTE 4.2.1 (Oct 28, 2019)

  • Add SCI_SETTABMINIMUMWIDTH to set the minimum width of tabs. This allows minimaps or overviews to be layed out to match the full size editing view. Bug #2118.
  • SciTE enables use of SCI_ commands in user.context.menu.
  • XML folder adds fold.xml.at.tag.open option to fold tags at the start of the tag "". Bug #2128.
  • Metapost lexer fixes crash with 'interface=none' comment. Bug #2129.
  • Perl lexer supports indented here-docs. Bug #2121.
  • Perl folder folds qw arrays. Feature #1306.
  • TCL folder can turn off whitespace flag by setting fold.compact property to 0. Bug #2131.
  • Optimize setting up keyword lists in lexers. Feature #1305.
  • Updated case conversion and character categories to Unicode 12.1. Feature #1315.
  • On Win32, stop the IME candidate window moving unnecessarily and position it better.
  • Stop candidate window overlapping composition text and taskbar.
  • Position candidate window closer to composition text.
  • Stop candidate window moving while typing.
  • Align candidate window to target part of composition text.
  • Stop Google IME on Windows 7 moving while typing.
  • Bug #2120. Feature #1300.

New in SciTE 4.2.0 (Jul 6, 2019)

  • Scintilla.iface adds line and pointer types, increases use of the position type, uses enumeration types in methods and properties, and adds enumeration aliases to produce better CamelCase identifiers. Feature #1297.
  • Source of input (direct / IME composition / IME result) reported in SCN_CHARADDED so applications can treat temporary IME composition input differently. Bug #2038.
  • Lexer added for DataFlex. Feature #1295.
  • Matlab lexer now treats keywords as case-sensitive. Bug #2112.
  • SQL lexer fixes single quoted strings where '" (quote, double quote) was seen as continuing the string. Bug #2098.
  • Platform layers should use InsertCharacter method to perform keyboard and IME input, replacing AddCharUTF method. Feature #1293.
  • Add CARETSTYLE_BLOCK_AFTER option to always display block caret after selection. Bug #1924.
  • On Win32, limit text returned from WM_GETTEXT to the length specified in wParam. This could cause failures when using assistive technologies like NVDA. Bug #2110, Bug #2114.
  • Fix deletion of isolated invalid bytes. Bug #2116.
  • Fix position of line caret when overstrike caret set to block. Bug #2106.

New in SciTE 4.1.6 (Jun 12, 2019)

  • For Visual C++ 2019, /std:c++latest now includes some C++20 features so switch to /std:c++17.
  • SciTE supports editing files larger than 2 gigabytes when built as a 64-bit application.
  • Lexer added for X12. Feature #1280.
  • CMake folder folds function - endfunction. Feature #1289.
  • VB lexer adds support for VB2017 binary literal &B and digit separators 123_456. Feature #1288.
  • Improved performance of line folding code on large files when no folds are contracted. This improves the time taken to open or close large files.
  • Fix bug where changing identifier sets in lexers preserved previous identifiers.
  • Fixed bug where changing to Unicode would rediscover line end positions even if still sticking to ASCII (not Unicode NEL, LS, PS) line ends. Only noticeable on huge files with over 100,000 lines.
  • Changed behaviour of SCI_STYLESETCASE(*,SC_CASE_CAMEL) so that it only treats 'a-zA-Z' as word characters because this covers the feature's intended use (viewing case-insensitive ASCII-only keywords in a specified casing style) and simplifies the behaviour and code. Feature #1238.
  • In SciTE added Camel case option "case:c" for styles to show keywords with initial capital.

New in SciTE 4.1.5 (Apr 18, 2019)

  • On Win32, removed special handling of non-0 wParam to WM_PAINT.
  • Implement high-priority idle on Win32 to make redraw smoother and more efficient.
  • Add vertical bookmark symbol SC_MARK_VERTICALBOOKMARK. Feature #1276.
  • Set default fold display text SCI_SETDEFAULTFOLDDISPLAYTEXT(text). Feature #1272.
  • Add SCI_SETCHARACTERCATEGORYOPTIMIZATION API to optimize speed of character category features like determining whether a character is a space or number at the expense of memory. Feature #1259.
  • Improve the styling of numbers in Nim. Feature #1268.
  • Fix exception when inserting DBCS text. Bug #2093.
  • Improve performance of accessibility on GTK. Bug #2094.
  • Fix text reported for deletion with accessibility on GTK. Bug #2095.
  • Fix flicker when inserting primary selection on GTK. Bug #2087.
  • Support coloured text in Windows 8.1+. Feature #1277.
  • Avoid potential long hangs with idle styling for huge documents on Cocoa and GTK.

New in SciTE 4.1.3 (Jan 10, 2019)

  • Add SCI_SETCOMMANDEVENTS API to allow turning off command events as they can be a significant performance cost.
  • Improve efficiency of idle wrapping by wrapping in blocks as large as possible while still remaining responsive.
  • Updated case conversion and character categories to Unicode 11.
  • Errorlist lexer recognizes negative line numbers as some programs show whole-file errors occurring on line -1. SciTE's parsing of diagnostics also updated to handle this case.
  • Added "nim" lexer (SCLEX_NIM) for the Nim language which was previously called Nimrod. For compatibility, the old "nimrod" lexer is still present but is deprecated and will be removed at the next major version. Feature #1242.
  • The Bash lexer implements substyles for multiple sets of keywords and supports SCI_PROPERTYNAMES. Bug #2054.
  • The C++ lexer interprets continued preprocessor lines correctly by reading all of the logical line. Bug #2062.
  • The C++ lexer interprets preprocessor arithmetic expressions containing multiplicative and additive operators correctly by following operator precedence rules. Bug #2069.
  • The EDIFACT lexer handles message groups as well as messages. Feature #1247.
  • For SciTE's Find in Files, allow case-sensitivity and whole-word options when running a user defined command. Bug #2053.
  • Notify with SC_UPDATE_SELECTION when user performs a multiple selection add.
  • On macOS 10.14 Cocoa, fix incorrect horizontal offset. Bug #2022.
  • On Cocoa, fix a crash that occurred when entering a dead key diacritic then a character that can not take that diacritic, such as option+e (acute accent) followed by g. Bug #2061.
  • On Cocoa, use dark info bar background when system is set to Dark Appearance. Bug #2055.
  • Fixed a crash on Cocoa in bidirectional mode where some patterns of invalid UTF-8 caused failures to create Unicode strings.
  • SCI_MARKERADD returns -1 for invalid lines as documented instead of 0. Bug #2051.
  • Improve performance of text insertion when Unicode line indexing off.
  • For Qt on Windows, stop specifying -std:c++latest as that is no longer needed to enable C++17 with MSVC 2017 and Qt 5.12 and it caused duplicate flag warnings.
  • On Linux, enable Lua to access dynamic libraries. Bug #2058.

New in SciTE 4.1.2 (Oct 2, 2018)

  • C++ lexer fixes evaluation of "#elif". Bug #2045.
  • Markdown lexer fixes highlighting of non-ASCII characters in links.
  • SciTE on Win32 drops menukey feature, makes Del key work again in find and replace strips and disables F5 while command running. Bug #2044.

New in SciTE 4.1.0 (Jun 19, 2018)

  • Experimental and incomplete support added for bidirectional text on Windows using DirectWrite and Cocoa for UTF-8 documents by calling SCI_SETBIDIRECTIONAL(SC_BIDIRECTIONAL_L2R). This allows documents that contain Arabic or Hebrew to be edited more easily in a way that is similar to other editors.
  • INDIC_GRADIENT and INDIC_GRADIENTCENTRE indicator types added. INDIC_GRADIENT starts with a specified colour and alpha at top of line and fades to fully transparent at bottom. INDIC_GRADIENTCENTRE starts with a specified colour and alpha at centre of line and fades to fully transparent at top and bottom.
  • Wrap indent mode SC_WRAPINDENT_DEEPINDENT added which indents two tabs from previous line.
  • Indicators are drawn for line end characters when displayed.
  • Most invalid bytes in DBCS encodings are displayed as blobs to make problems clear and ensure something is shown.
  • On Cocoa, invalid text in DBCS encodings will be interpreted through the single-byte MacRoman encoding as that will accept any byte.
  • Diff lexer adds styles for diffs containing patches.
  • Crashes fixed on macOS for invalid DBCS characters when dragging text, changing case of text, case-insensitive searching, and retrieving text as UTF-8.
  • Regular expression crash fixed on macOS when linking to libstdc++.
  • SciTE on GTK+, when running in single-instance mode, now forwards all command line arguments to the already running instance. This allows "SciTE filename -goto:line" to work.

New in SciTE 3.7.5 (May 26, 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.

New in SciTE 3.7.3 (Feb 22, 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.

New in SciTE 3.7.2 (Dec 31, 2016)

  • Minimize redrawing for SCI_SETSELECTIONN* APIs. Bug #1888.
  • Use more precision to allow selecting individual lines in files with more than 16.7 million lines.
  • For Qt 5, define QT_WS_MAC or QT_WS_X11 on those platforms. Bug #1887.
  • For Cocoa, fix crash on view destruction with macOS 10.12.2. Bug #1891.
  • Fix crash on GTK+

New in SciTE 3.7.1 (Dec 6, 2016)

  • The Scintilla namespace is no longer applied to struct definitions in Scintilla.h even when SCI_NAMESPACE defined. Client code should not define SCI_NAMESPACE.
  • Structure names in Scintilla.h without prefixes are deprecated and will now only be usable with INCLUDE_DEPRECATED_FEATURES defined.
  • Use the newer names with the "Sci_" prefix:
  • CharacterRange → Sci_CharacterRange
  • TextRange → Sci_TextRange
  • TextToFind → Sci_TextToFind
  • RangeToFormat → Sci_RangeToFormat
  • NotifyHeader → Sci_NotifyHeader
  • Previously deprecated features SC_CP_DBCS, SCI_SETUSEPALETTE. and SCI_GETUSEPALETTE have been removed and can no longer be used in client code.
  • Accessibility support allowing screen readers to work added on GTK+ and Cocoa.
  • Textual tags may be displayed to the right on folded lines with SCI_TOGGLEFOLDSHOWTEXT. This is commonly something like "{ ... }" or "...". It is displayed with the STYLE_FOLDDISPLAYTEXT style and may have a box drawn around it with SCI_FOLDDISPLAYTEXTSETSTYLE.
  • A mouse right-click over the margin may send an SCN_MARGINRIGHTCLICK event. This only occurs when popup menus are turned off. SCI_USEPOPUP now has three states: SC_POPUP_NEVER, SC_POPUP_ALL, or SC_POPUP_TEXT.
  • INDIC_POINT and INDIC_POINTCHARACTER indicators added to display small arrows underneath positions or characters.
  • Added alternate appearance for visible tabs which looks like a horizontal line. Controlled with SCI_SETTABDRAWMODE. Feature #1165.
  • On Cocoa, a modulemap file is included to allow Scintilla to be treated as a module. This makes it easier to use Scintilla from the Swift language.
  • Baan folder accommodates sections and lexer fixes definition of SCE_BAAN_FUNCDEF.
  • EDIFACT lexer and folder added. Feature #1166.
  • JSON folder fixed where it didn't resume folding with the correct fold level.
  • Matlab folder based on syntax instead of indentation so more accurate. Bug #1692.
  • YAML lexer fixed style of references and keywords when followed by a comment. Bug #1872.
  • Margin click to select line now clears rectangular and additional selections.
  • Fixed a NULL access bug on GTK+ where the scrollbars could be used during destruction. Bug #1873.
  • A potential bug on GTK+ fixed where asynchronous clipboard could be delivered after its target Scintilla instance was destroyed.
  • Cocoa IME made more compliant with documented behaviour to avoid bugs that caused huge allocations. Bug #1881.
  • On Win32 fix EM_SETSEL to match Microsoft documentation.. Bug #1886.
  • SciTE on GTK+ allows localising tool bar tool tips. Feature #1167.
  • SciTE on Windows restores focus to edit pane after closing user strip.
  • SciTE measures files larger that 2 GB which allows it to refuse to open huge files more consistently and to show better warning messages.

New in SciTE 3.6.7 (Sep 6, 2016)

  • C++11 range-based for loops used in SciTE so GCC 4.6 is now the minimum supported version.
  • SC_CHARSET_DEFAULT now means code page 1252 on Windows unless a code page is set. This prevents unexpected behaviour and crashes on East Asian systems where default locales are commonly DBCS. Projects which want to default to DBCS code pages in East Asian locales should set the code page and character set explicitly.
  • SCVS_NOWRAPLINESTART option stops left arrow from wrapping to the previous line. Most commonly wanted when virtual space is used. Bug #1648.
  • The C++ lexer can fold on #else and #elif with the fold.cpp.preprocessor.at.else property. Bug #210.
  • The errorlist lexer detects warnings from Visual C++ which do not contain line numbers.
  • The HTML lexer no longer treats "

New in SciTE 3.6.6 (May 25, 2016)

  • C++ 11 support built by default. Can be disabled by defining NO_CXX11_REGEX.
  • SciTE_USERHOME environment variable allows separate location for writable properties files. Feature #965.
  • GObject introspection supports notify and command events.
  • The Progress lexer now allows comments preceded by a tab.
  • Scripts reading Scintilla.iface file include comments for enu and lex definitions. Bug #1829 .
  • Fix crashes on GTK+ if idle work active when destroyed. Bug #1827.
  • Fixed bugs when used on GTK+ 3.20. Bug #1825. Bug #1831.
  • Fix SciTE search field background with dark theme on GTK+ 2.x. Bug #1826.
  • Fixed bug on Win32 that allowed resizing autocompletion from bottom when it was located above the caret.
  • On Win32, when using a screen reader and selecting text using Shift+Arrow, fix bug when scrolling made the caret stay at the same screen location so the screen reader did not speak the added or removed selection.

New in SciTE 3.6.5 (Apr 26, 2016)

  • Version 3.6.5 fixes minor bugs.

New in SciTE 3.6.4 (Mar 13, 2016)

  • SciTE allows setting the autocompletion type separator character.
  • The C++ folder folds code on '(' and ')' to allow multi-line calls to be folded. Feature #1138.
  • For the HTML lexer, limit the extent of Mako line comments to finish before the line end characters.
  • Folds unfolded when two fold regions are merged by either deleting an intervening line or changing its fold level by adding characters. This was fixed both in Scintilla and in SciTE's equivalent code. Bug #1799.
  • The Progress lexer supports hexadecimal numeric literals, single-line comments, abbreviated keywords and extends nested comments to unlimited levels.
  • Ruby lexer treats alternate hash key syntax "key:" as a symbol. Bug #1810.
  • Rust lexer handles bracketed Unicode string escapes like "\u{123abc}". Bug #1809.
  • For GTK+ on Windows fix 64-bit build which was broken in 3.6.3.
  • For Qt, release builds have assertions turned off.
  • For Qt on Windows, fix compilation failure for Qt 4.x.
  • IME target range displayed on Qt for OS X.
  • On Windows, make clipboard operations more robust by retrying OpenClipboard if it fails as this may occur when another application has opened the clipboard.
  • On Windows back out change that removed use of def file to ensure Scintilla_DirectFunction exported without name mangling. Bug #1813.
  • On GTK+ and Qt over Win32 in Korean fix bug caused by last release's word input change.
  • For SciTE, more descriptive error messages are displayed when there are problems loading the Lua startup script. Feature #1139.

New in SciTE 3.3.9 (Feb 1, 2014)

  • Fix 3.3.8 bug where external lexers became inaccessible.

New in SciTE 3.3.7 (Dec 13, 2013)

  • This release enhances some lexers, with the C++ lexer adding user defined literals and digit grouping from C++11/14.

New in SciTE 3.0.1 (Nov 16, 2011)

  • SciTE on Windows now runs Lua scripts directly on the main thread instead of starting them on a secondary thread and then moving back to the main thread.
  • Highlight "else" as a keyword for TCL in the same way as other languages. Bug #1836954.
  • Fix problems with setting fonts for autocompletion lists on Windows where font handles were copied and later deleted causing a system default font to be used.
  • Fix font size used on Windows for Asian language input methods which sometimes led to IME not being visible. Bug #3436753.
  • Fixed polygon drawing on Windows so fold symbols are visible again. Bug #3433558.
  • Changed background drawing on GTK+ to allow for fractional character positioning as occurs on OS X as this avoids faint lines at lexeme boundaries.
  • Ensure pixmaps allocated before painting as there was a crash when Scintilla drew without common initialisation calls. Bug #3432354.
  • Fixed SciTE on Windows bug causing wrong caret position after indenting a selection. Bug #3433433.
  • Fixed SciTE session saving to store buffer position matching buffer. Bug #3434372.
  • Fixed leak of document objects in SciTE.
  • Recognize URL characters '?' and '%' for Open Selected command in SciTE. Bug #3429409.

New in SciTE 2.24 (Feb 7, 2011)

  • Version 2.24 fixes a memory leak on GTK+.

New in SciTE 2.01 (Aug 20, 2009)

  • Fixes

New in SciTE 1.78 (Apr 29, 2009)

  • includes some more lexers and fixes some bugs.

New in SciTE 1.77 (Nov 3, 2008)

  • Version 1.77 fixes lexer bugs and other minor issues.