Added language lexer requests to Low Priority:
- Haskell (#3035) - Lexilla has LexHaskell.cxx
- Racket (#3035) - Could use Lisp/Scheme lexer
- Verilog HDL (#4108) - Lexilla has LexVerilog.cxx
Created research document for autosave and backup functionality:
- Timer-based periodic autosave to recovery directory
- Versioned backups on save (.bak, .bak_1, etc.)
- Effort estimate: ~1-4 weeks
Refs: #1665, #370, #512
- Created todo/research/editorconfig-integration.md with detailed plan
- Added EditorConfig feature to Medium Priority in TODO.md
- Marked DirectWrite Font Variant Bug as fixed
Adds FontStyle enum matching DWRITE_FONT_STYLE values:
- Normal (0)
- Oblique (1)
- Italic (2)
This provides explicit API support for oblique fonts like 'Iosevka Oblique'.
Adds full range of font weights to support all DirectWrite variants:
- Thin (100), ExtraLight (200), Light (300), SemiLight (350)
- Normal (400), Medium (500)
- SemiBold (600), Bold (700), ExtraBold (800), Black (900), ExtraBlack (950)
Adds ResolveFontFace() function to properly resolve font face names like
'Cascadia Mono Light' or 'Iosevka Oblique' into DirectWrite family name
plus weight/style/stretch parameters.
Uses IDWriteGdiInterop::CreateFontFromLOGFONT() to correctly resolve
font parameters that would otherwise cause DirectWrite to fail silently.
Fixes: #4150 (Iosevka variable fonts)
Fixes: #5410 (Global Default Font not applying)
Fixes: #5455 (Cascadia Mono Light rendering)
Based on Scintilla Bug #2080 and MR #36 discussion.
Changed InvalidateStyleRedraw() to Redraw() in SetSelectionFromSerialized
to match Scintilla 5.5.8 upstream.
Note: ListBox.cxx was already at 5.5.8 parity (opaque colors, ItemHeight bitmap).
Created patches comparing NP3 implementation vs official 5.5.8:
- include/: 2 patches (Scintilla.h, ScintillaTypes.h)
- src/: 16 patches (Editor.cxx largest at 247 lines)
- win32/: 4 patches (ScintillaWin.cxx largest at 380 lines)
All 21 files with NON STD SCI PATCH markers now documented.
Upgrade procedure: copy 5.5.8, apply patches, preserve oniguruma.
The partial upgrade approach failed - Scintilla 5.5.8 src/ files have
tight coupling with win32/ that cannot be separated due to changes in
PLATFORM_ASSERT and other shared macros. Scintilla stays at 5.5.7.
Lexilla 5.4.6 upgrade remains intact.
Reverts the broken Scintilla 5.5.8 / Lexilla 5.4.6 upgrade from
commit 2e4889e82 which was inadvertently pulled during rebase.
This restores the last known working state before incremental
upgrade attempt.
- Updated Scintilla from 5.5.7 to 5.5.8
- Updated Lexilla from 5.4.5 to 5.4.6
- Preserved NP3 customizations (oniguruma regex, lexers_x, Scintilla.h patches)
- Documented all Scintilla.h NP3 patches in research doc
- Added _upgrade_backup to .gitignore
- Updated Changes.txt with upgrade entry
- Added SVG toolbar feature to TODO.md with research link
- Created research/svg-toolbar.md with implementation plan for resolution-independent icons
- CRITICAL: Fixed incorrect 'Lexilla: No Modifications' in upgrade plan
- Documented 24 custom files in lexilla/lexers_x/ that must be preserved
- Updated upgrade steps with proper preservation warnings
Changes:
- Moved installer scripts to Build\Installer folder with local language files
- Fixed user config setup to run as original user context (ExecAsOriginalUser)
- Added Segment Heap memory optimization (PR #5490)
- Updated .gitignore to exclude .agent folder
- Created todo folder with Scintilla/Lexilla upgrade research