aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2025-03-06Move static functions and variables into unnamed namespace and use constexpr.Neil3-49/+60
2025-03-03Feature [feature-requests:#1417]. Improve UTF-8 segmentation for some controlNeil2-2/+139
characters and invalid bytes. Add more test cases.
2025-02-25Bug [#2463]. Disallow case changes if the range contains protected textJoachim Mairboeck2-1/+6
2025-02-27Bug [#2464]. On Qt, draw clipped UTF-8 text correctly.Neil2-1/+13
2025-02-25Added tag rel-5-5-5 for changeset 5cb9af9b3103Neil1-0/+1
2025-02-23Silence some warnings in test code.rel-5-5-5Neil3-17/+24
2025-02-23Feature [feature-requests:#1540]. Remove unused variable.Neil1-17/+0
2025-02-22Updates for version 5.5.5.Neil9-20/+20
2025-02-20Move SizeOfRect to header to allow use in ScintillaWin.cxx where it simplifiesNeil3-8/+7
and avoids type warnings.
2025-02-19Silence warnings with explicit, using, noexcept, [[nodiscard]], unnamedNeil1-132/+118
namespace, = default, in-class default member initializers, avoiding NULL, avoiding unnecessary else. Use POINT for insets as POINT has integer fields avoiding casts. Simplified cursor setting.
2025-02-19Use ComPtr for render targets of SurfaceD2D.Neil2-16/+15
Add comments about different types of Surface.
2025-02-18Use ComPtr for text formats and text layouts.Neil1-59/+42
2025-02-18Use ComPtr for geometric and graphic objects: brush, geometry, geometry sink,Neil1-80/+78
stroke style, bitmap, and gradients to remove explicit release calls and possible leaks. Ensure HPEN and HBRUSH initialised. Not converting render targets, text formats or text layouts yet.
2025-02-18Minor warnings silenced. No return value from void functions, catch theNeil1-7/+10
impossible exception, const some iterators.
2025-02-18Avoid type error from some compilers from returning braced values likeNeil1-16/+8
{ unicodeReplacementChar, 1 } instead of constructed objects. Declare named const values for 2 failure cases of CharacterExtracted. Remove some dead code.
2025-02-17Switch to using ComPtr from WRL for render target code for simplicity andNeil5-134/+74
familiarity.
2025-02-15Minor changes to reduce warnings from Clang-Tidy.Neil1-28/+21
2025-02-15Fix the previous change to prioritise breaking at style-change and spaces (whenNeil1-11/+16
specified) and only discard the last combined character when these fail.
2025-02-14For wrapping, try to break lines without separating letters from modifiers.Neil2-0/+8
There are still problems for languages like Javanese but it will improve most cases. Unicode proposal to improve line breaking: https://www.unicode.org/L2/L2022/22080r2-line-break-ortho-bnd.pdf
2025-02-14Implement LastCharacter to return the last character or character fragment in aNeil2-4/+27
potentially invalid UTF-8 string. Use this in DiscardLastCombinedCharacter. Place DiscardLastCombinedCharacter in Scintilla::Internal namespace for use in text wrap.
2025-02-14Feature [feature-requests:#1417]. Fix some UTF-8 segmentation bugs byNeil1-12/+14
prioritising Unicode-safe base character check over ASCII punctuation check and by treating emoji modifiers as modifiers instead of base characters. This is better for 1) Keycap emoji: *, VARIATION SELECTOR-16, COMBINING ENCLOSING KEYCAP 2) Emoji + skin tone: WAVING HAND SIGN, EMOJI MODIFIER FITZPATRICK TYPE-1-2
2025-02-12Debug tracing was accidentally turned on so turn it off again.Neil1-1/+1
2025-02-12Document SC_TECHNOLOGY_DIRECT_WRITE_1 and reformat technology choice as a table.Neil1-10/+49
2025-02-12Implement Direct2D/DirectWrite 1.1. Add SC_TECHNOLOGY_DIRECT_WRITE_1 to use anNeil8-49/+347
explicit swap chain and ID2D1DeviceContext. Stop supporting DirectWrite on Windows Vista.
2025-02-11Update Direct2D and DirectWrite functions and types to Direct2D 1.1.Neil4-14/+51
2025-02-10Use ID2D1HwndRenderTarget::Resize when handling WM_SIZE to avoid larger stateNeil1-1/+14
invalidation which may be more costly to restore.
2025-02-09Add RenderTargets to hold one render target at a time, either Hwnd or DC.Neil3-39/+74
Drawing code just needs one or the other but other calls need a particular type with casting hiding potential problems. This will be more important in the future when a third type of render target ID2D1DeviceContext will be added. Use unique_ptr more for render targets to ensure they are freed correctly.
2025-02-09Wrap GetClientRect so it can be used more easily to produce const result.Neil1-18/+21
Move GetSizeUFromRect earlier for possible new code.
2025-02-09Update Direct2D headers to Direct2D 1.1.Neil3-6/+6
Doesn't change functionality yet but ensures more recent APIs will be available.
2025-02-09Standardize DLL freeing.Neil1-15/+21
2025-02-07Add vertical scroll position into undo selection history unconditionally.Neil3-14/+21
2025-02-07Use operator== inside <= and >= to shorten code.Neil1-14/+8
Drop else after return in asymmetric cases to clarify the returned value.
2025-02-06Feature [feature-requests:#1540]. Avoid memory leaks caused by addition ofNeil1-1/+4
uninitialized_value_construct_n by using loop in InsertEmpty.
2025-02-06Bug [#2460]. Workaround incorrect scaling of "reverse arrow" cursor under ↵Jiří Techet2-0/+10
Windows and HiDPI screens The GDK_RIGHT_PTR cursor is provided only by GTK - there's no native Windows cursor of this shape so GTK renders the cursor by itself from the cursor theme bitmap. The code doing this is apparently buggy and does not take into account HiDPI screens so on a screen with 300% scaling, the cursor is 3x smaller. Workaround this by using GDK_HAND2 which maps to a native Windows cursor that doesn't suffer from this problem. See https://sourceforge.net/p/scintilla/bugs/2460/
2025-02-05Feature [feature-requests:#1543] Add "Releases" anchor to navigate to Releases.Neil1-1/+2
2025-02-05Use new SelectionSegment constructor and SelectionRange::AsSegment to simplifyNeil3-12/+8
code.
2025-02-05Simplify SelectionRange::Intersect and add SelectionRange constructor fromNeil3-14/+50
positions without virtual space. Add unit tests.
2025-02-04Also delete the local reference to model state when history disabled.Neil1-0/+1
2025-02-04Ensure undo selection history for view is deleted when view destroyed orNeil4-2/+17
history disabled.
2025-02-04Use Lexilla.ruleset from sibling lexilla directory instead of path on myNeil1-1/+2
personal machine.
2025-02-04Fix segmentation of long lexemes to avoid breaking before modifiers like accentsNeil4-7/+157
that must be drawn with their base letters. This is only a subset of implementing grapheme cluster boundaries but it improves behaviour with some Asian scripts like Thai and Javanese. Javanese is mostly written with (ASCII) Roman characters so issues will be rare but Thai uses Thai script. Also slightly improves placement of combining accents in European texts. https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14822 https://github.com/notepad-plus-plus/notepad-plus-plus/issues/16115
2025-02-04Add overload of UnicodeFromUTF8 that takes a string_view.Neil4-1/+19
2025-02-01Serialize selection type and ranges with SCI_GETSELECTIONSERIALIZED andNeil12-1/+110
SCI_SETSELECTIONSERIALIZED.
2025-02-01Use string form for selection undo history as it saves significant space.Neil4-47/+21
On average takes around 20% of SelectionSimple.
2025-02-01Implement serialization of Selection to and from strings.Neil4-0/+265
Requires std::from_chars to be available.
2025-02-01Reconnect to document's undo selection history after switching documents whenNeil1-0/+1
performing undo or redo.
2025-01-31Update comment about modules tested.Neil1-17/+11
2025-01-31Add default basic constructor and operator!= to SelectionPosition to ease use.Neil6-26/+179
Use default member initializer, constexpr for constructors and equality operators and <, [[nodiscard]] for comparison operators. Add simple unit tests for Selection. Not trying to be exhaustive here, just start the process of adding tests.
2025-01-30In Clear, clear fields in declaration order and ensure all fields handled.Neil1-3/+5
2025-01-26Bug [#1539]. Fix some incorrect tags.Zufu Liu1-2/+2