aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/SplitVector.h
AgeCommit message (Collapse)AuthorFilesLines
2022-07-29Apply rule-of-zero to delete standard methods where possible as handled byNeil1-9/+0
contained types. This allows flexibility as most lower-level data types can be moved and SplitVector and Partitioning of non-move-only types may be copied. CellBuffer still needs destructor due to incomplete type so retains all standard operations.
2022-07-29Flatten Partitioning and RunStyles to avoid a level of indirection by containingNeil1-2/+2
SplitVector and Partitioning directly instead of using std::unique_ptr. This will enable more value semantics and reduces potential memory allocation failure scenarios.
2022-07-29Add growSize argument to SplitVector constructor with default value so can beNeil1-1/+1
used more simply. Add default value to growSize argument of Partitioning to enable default construction.
2022-07-25Use size_t for sizing SplitVector as compatible with vector.size() which avoidsNeil1-10/+7
casts and warnings.
2021-07-16SplitVector::RoomFor does not resize when there is exactly enough room as thisNeil1-14/+16
prevents extra reallocations. This change made 0-length gaps more likely and that caused attempts to std::move by 0 which is undefined and failed with the g++ standard library. Fixed by not moving for 0-length gap.
2021-07-15Feature [feature-requests:#1381] Move SplitView to header so it can be used moreNeil1-0/+10
widely. Ensure that case where all text is after the gap is as efficient as when all text is before the gap.
2021-05-28Better exception handling for noexcept methods. More accurate noexcept marking.Neil1-14/+19
2021-05-24Define C++ version of the Scintilla API in ScintillaTypes.h, ScintillaMessages.hNeil1-1/+1
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.
2020-05-02InsertEmpty now returns a pointer to the newly added elements to allow caller toNeil1-2/+4
efficiently set those elements.
2020-03-26Fix spelling mistakes.Neil1-1/+1
2019-12-02Use noexcept and const where reasonable.Neil1-3/+3
2018-04-21Use noexcept in basic data structures where reasonable.Neil1-13/+12
Declare the standard member functions in more classes
2018-04-21Tighten definition of regular expression iterators so they are noexcept andNeil1-4/+4
define all the standard member functions. This cascades to all methods called by the iterators, affecting Document, CellBuffer, Partitioning, SplitVector and UTF-8 and DBCS functions. Other trivial functions declared noexcept.
2018-04-20Feature [feature-requests:#1215]. Fix forwarding reference warnings.Neil1-2/+2
2018-03-16Remove line-end white space.Neil1-1/+1
2018-01-26Extend SplitVector to allow more than 2 billion elements on 64-bit systems.Neil1-35/+35
2017-09-11The Scintilla namespace is always active for internal symbols and for the lexerNeil1-4/+0
interfaces ILexer4 and IDocument.
2017-05-21Make SplitVector work with move-only types like unique_ptr.Neil1-55/+92
Provide InsertEmpty and both const and non-const reference returning operator[]. Add and fix comments.
2017-04-21More consistent deletion of standard methods.Neil1-0/+4
2017-04-06Added const where possible.Neil1-1/+1
2016-09-30Enable SplitVector to store objects by using std::copy to copy elements insteadNeil1-10/+12
of memmove and memcpy. This allows SplitVector<std::string> to work.
2015-07-04Throw an exception for a negative sized reallocation as occurs when askedNeil Hodgson1-0/+3
for more than 2GB.
2013-12-15Format normalization - whitespace and braces made consistent.Neil1-2/+2
Parameter names added to method declarations.
2013-07-21Standardising header guards and namespaces.Neil1-0/+8
2013-04-19Using std::fill instead of a loop is much faster. As much as 4x on a large ↵nyamatongwe1-2/+1
block.
2012-05-26Add GetRangePointer and GetGapPosition methods.nyamatongwe1-0/+18
2011-01-19Fix typo.nyamatongwe1-1/+1
2010-09-24Added GetRange method to SplitVector as fast way to retrieve elements.nyamatongwe1-0/+17
2010-02-17Formatting whitespace.nyamatongwe1-6/+6
2009-04-01Speed up increase in growth size.nyamatongwe1-1/+1
Made one test run 4 times faster.
2008-04-27Implemented GetCharacterPointer feature.nyamatongwe1-0/+6
2007-07-27Changed lineStates to a SplitVector so that it supports insert and deletenyamatongwe1-0/+8
so inserting and deleting lines does not cause a really large number of changed values under most circumstances leading to fewer notifications. SVector is no longer used.
2007-04-05Implemented decorations which are extended indicators.nyamatongwe1-2/+2
2007-03-21When deleting all contents of a SplitVector, free the memory.nyamatongwe1-6/+12
2007-01-03Added range check for InsertValue and some more assertions.nyamatongwe1-0/+8
2007-01-02Separated the cell buffer into substance and style buffers.nyamatongwe1-1/+1
2007-01-01Major change to CellBuffer class with addition of Partitioning class and ↵nyamatongwe1-0/+221
SplitVector template. Inserting and deleting lines are made more efficient by lessening the amount of per line information copied. Marker data is only allocated for each line if markers are added.