aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PositionCache.h
AgeCommit message (Collapse)AuthorFilesLines
2023-11-21Type harmonization.Zufu Liu1-1/+1
2023-11-21Feature [feature-requests:#1502] Improve speed of LineLayoutCache::InvalidateZufu Liu1-1/+1
for replacing text.
2023-03-02Add multithreaded wrap to significantly improve performance of wrapping largeNeil1-0/+9
files.
2023-02-12Feature [feature-requests:#1476] Move default representation code intoNeil1-0/+4
SpecialRepresentations class.
2023-02-12Bug [#2378]. Fix overlapping of text with line end wrap marker.Zufu Liu1-1/+1
2023-01-25Use LineLayout::LineNumber inside LineLayoutCache so it doesn't have to beNeil1-1/+0
declared to be a friend.
2023-01-25Hoist line wrapping code into LineLayout::WrapLine as it has few dependencies.Neil1-0/+1
2023-01-23Allow UTF-8 entries to coexist in the position cache alongside the documentNeil1-1/+1
encoding. Elements like character representations may be in UTF-8 while the document is in a different encoding. UTF-8 will be used for additional features and may later be the only encoding for the position cache. This change does not change performance or the proportion of strings cached - its purpose is to clean up callers and prepare for greater UTF-8 use.
2023-01-16Use intervals for drawing.Neil1-0/+2
2022-08-15Fix bug where deletion at line end indicated with point disappeared when textNeil1-0/+2
inserted on line. Ensure not using old data by clearing all positions - this was hiding problems because deleted positions were still set.
2022-08-13Move append of new line start into PositionCache as AddLineStart.Neil1-1/+1
2022-02-02Feature [feature-requests:#1427] Add multithreaded layout which improvesNeil1-1/+1
performance significantly for very wide lines.
2022-01-22Feature [feature-requests:#1422] Minor improvements to line layout and wrapping.Zufu Liu1-3/+2
May avoid some small costs and be clearer.
2022-01-20Hide details of PositionCache.Neil1-32/+9
Move class declarations of PositionCache and PositionCacheEntry into cxx file and only define IPositionCache interface and CreatePositionCache factory function in header.
2021-10-24Avoid extra breaks introduced by revision 8993.Zufu Liu1-1/+7
2021-10-21Feature [feature-requests:#1417] Cache maximum key value inZufu Liu1-0/+1
SpecialRepresentations as this allows quick determination of absence for most multi-byte UTF-8 and DBCS characters.
2021-10-21Feature [feature-requests:#1417] Use unsigned as that defines wrap-aroundZufu Liu1-1/+1
behaviour.
2021-10-17encodingFamily never changes so mark const.Zufu Liu1-1/+1
2021-10-17Remove SpecialRepresentations::Contains which is no longer used.Zufu Liu1-1/+0
2021-10-05Feature [feature-requests:#1417] Consolidate character classification functionsNeil1-8/+0
in CharacterType.h, merging duplicate functions, removing unused functions and stadardizing names.
2021-09-30Feature [feature-requests:#1416] Mark destructor as noexcept and use defaultZufu Liu1-1/+1
implementation.
2021-09-28Widen styleNumber in PositionCacheEntry from 8 to 16 bits to allow stylesNeil1-5/+5
larger than 255 to be represented. Before this, it may have been possible but extremely rare for a cache entry to wrongly match a styled lexeme and produce incorrect layout. Using uint16_t from cstdint instead of a bit field as tools perform more checking on that.
2021-08-27Feature [feature-requests:#841] Remove hotspot from LineLayout and rely onZufu Liu1-3/+0
reference to model.
2021-07-29Feature [feature-requests:#1413] Decrease cost of representation for \r\n.Zufu Liu1-0/+8
2021-06-10Use string_view for PositionCache methods.Neil1-11/+6
Replace custom hash code with standard library hash. Drop standard methods that are not needed. Restrict representations to 200 bytes. Improve documentation.
2021-06-10Don't divide input text into segments in PositionCache::MeasureWidths as textNeil1-1/+1
should already have been segmented into reasonable lengths. The Document argument is no longer needed.
2021-06-03Add APIs for setting appearance (traditional blob or plain text) and colour ofNeil1-7/+11
representations and support setting a representation for the "\r\n" line end sequence.
2021-05-24Define C++ version of the Scintilla API in ScintillaTypes.h, ScintillaMessages.hNeil1-10/+4
and ScintillaStructures.h using scoped enumerations. Use these headers instead of Scintilla.h internally. External definitions go in the Scintilla namespace and internal definitio0ns in Scintilla::Internal.
2021-05-07Use shared_ptr for LineLayoutCache as it simpifies lifetime management.Neil1-5/+2
AutoLineLayout and other code no longer needed so removed.
2021-05-07When resizing for Cache::page, move cached entries to correct positions.Neil1-1/+1
Hoist position calculation into EntryForLine method.
2021-05-07Add lineNumber_ argument to LineLayout constructor so always knows which line itNeil1-1/+3
is for. Add accessor for line number and method to say whether compatible with a line number and number of characters. Since LineLayout can report its line number, remove line argument from EditView::LayoutLine which simplifies calling it.
2021-04-05Extract unnamed caching enum as LineLayoutCache::Cache and change to enum class.Neil1-9/+11
2021-03-22Use XYPOSITION for xStart parameter as it is only passed as XYPOSITION.Neil1-1/+1
2021-03-19Switch enum to enum class.Neil1-4/+5
2021-03-17Change Font to an interface and stop using FontID. Fonts are shared andNeil1-1/+1
reference counted using std::shared_ptr. This optimizes memory and reduces potential for allocation bugs.
2020-09-18Fix building with Xcode 12 by defining move constructors for FontAlias, Style,Neil1-1/+1
and PositionCacheEntry.
2020-07-16Rename validLevel to ValidLevel and make an enum class.Neil1-3/+3
2020-06-11Use noexcept where safe and maintainable.Neil1-13/+13
2019-11-01Remove noexcept from allocating constructors as may throw on memory exhaustion.Neil1-1/+1
2019-03-03Use noexcept where reasonable.Neil1-14/+14
2019-01-06Bug [#2068]. Fix some clang-tidy warnings.Zufu Liu1-1/+1
2018-05-30Add TabPositionAfter method to IScreenLine as this calculation is needed on eachNeil1-0/+1
platform and it allows extension to custom tab stops.
2018-05-24Fix warnings. Add const, constexpr, and noexcept. Initialize. Standard methods.Neil1-5/+10
Replace 0 and NULL with nullptr for COM, DirectWrite and least ambiguous cases.
2018-05-23Implement bidirectional mode bidiL2R for DirectDraw on Win32.Neil1-0/+36
2018-05-13When line end characters are displayed, indicators are drawn under/over them.Neil1-2/+3
2018-05-03Use Range and Position in more cases to avoid casts.Neil1-2/+2
2018-05-03Ensure all 4 byte characters will work in MapRepresentation by using ↵Neil1-1/+1
unsigned int. Use variable assignments to avoid casts.
2018-04-28Delete standard functions on classes where there could be attempts to copy.Neil1-0/+10
2018-04-21Code improvements - noexcept and intialization.Neil1-4/+4
2017-09-11The Scintilla namespace is always active for internal symbols and for the lexerNeil1-4/+0
interfaces ILexer4 and IDocument.