aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/PositionCache.cxx
AgeCommit message (Collapse)AuthorFilesLines
2021-05-24Define C++ version of the Scintilla API in ScintillaTypes.h, ScintillaMessages.hNeil1-17/+19
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-15Protect against out-of-bounds layout cache level and remove unnecessary code.Neil1-2/+1
Make documentation more accurate.
2021-05-07Use shared_ptr for LineLayoutCache as it simpifies lifetime management.Neil1-24/+6
AutoLineLayout and other code no longer needed so removed.
2021-05-07Overallocate line layout cache so that don't reallocate too often.Neil1-2/+13
2021-05-07When resizing for Cache::page, move cached entries to correct positions.Neil1-20/+57
Hoist position calculation into EntryForLine method.
2021-05-07Add lineNumber_ argument to LineLayout constructor so always knows which line itNeil1-12/+16
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-05-07Ensure a line is only ever in one line layout cache entry. Preserve calculatedNeil1-29/+49
data where possible when overwriting a cache entry.
2021-04-28Use copy instead of loop and rely on make_unique zeroing result.Neil1-5/+2
2021-04-27Rename CharacterSet and CharacterCategory modules in Scintilla to CharacterTypeNeil1-1/+1
and CharacterCategoryMap to avoid clashes with Lexilla when building an executable that includes both.
2021-04-05Extract unnamed caching enum as LineLayoutCache::Cache and change to enum class.Neil1-9/+9
2021-03-29Add SCI_SETELEMENTCOLOUR and related APIs to change colours of visible elements.Neil1-0/+1
Implement SC_ELEMENT_LIST* to change colours of autocompletion lists.
2021-03-26Minor changes: const, constexpr, and noexcept.Neil1-2/+2
2021-03-22Use XYPOSITION for xStart parameter as it is only passed as XYPOSITION.Neil1-2/+2
2021-03-19Switch enum to enum class.Neil1-3/+3
2021-03-18std::optional is a basic vocabulary type that may be used widely so includeNeil1-0/+1
almost everywhere.
2021-03-18Move assert and debug trace functions into their own header Debugging.h.Neil1-0/+1
PLATFORM_ASSERT is used in data structure headers which led to including graphics and windowing APIs in data structure modules.
2021-03-17Change Font to an interface and stop using FontID. Fonts are shared andNeil1-2/+2
reference counted using std::shared_ptr. This optimizes memory and reduces potential for allocation bugs.
2021-03-17Extract geometry and colour definitions from Platform.h into src/Geometry.h.Neil1-0/+1
2020-07-16Rename validLevel to ValidLevel and make an enum class.Neil1-5/+5
2020-07-16Make EncodingFamily an enum class for more type safety.Neil1-2/+2
2020-06-11Use noexcept where safe and maintainable.Neil1-14/+14
2020-05-01Make lambdas noexcept.Zufu Liu1-1/+1
2019-11-01Remove noexcept from allocating constructors as may throw on memory exhaustion.Neil1-1/+1
2019-07-02Bug [#2115]. Backed out changeset: d70ccc4f172a as not undefined behaviour.Neil1-3/+2
2019-06-29Bug [#2115]. Fix undefined behaviour of shifting negative values.Zufu Liu1-2/+3
2019-04-25Bug [#1223]. Removed duplicate code.Neil1-2/+1
2019-03-29Include "CharacterCategory.h" in all files that include "Document.h" as it willNeil1-0/+1
be needed for adding a CharacterCategory feature.
2019-03-25Use generic versions of ceil, floor, round, lround, trunc from <cmath>.Neil1-1/+1
2019-03-03Use noexcept where reasonable.Neil1-12/+12
2019-01-06Bug [#2068]. Fix some clang-tidy warnings.Zufu Liu1-1/+1
2018-09-26Bug [#2046]. Optimize setting up representation.Zufu Liu1-2/+3
2018-05-30Add header needed for floor.Neil Hodgson1-0/+1
2018-05-30Add TabPositionAfter method to IScreenLine as this calculation is needed on eachNeil1-0/+4
platform and it allows extension to custom tab stops.
2018-05-24Fix warnings. Add const, constexpr, and noexcept. Initialize. Standard methods.Neil1-7/+6
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/+103
2018-05-21Draw invalid bytes in DBCS when detected as blobs in a similar way to UTF-8.Neil Hodgson1-1/+2
2018-05-14Modernize Platform.h (4) - update Surface to use string_view for text arguments.Neil1-2/+2
2018-05-14Include <string_view> to allow future use in Platform interface and Unicode.Neil1-0/+1
2018-05-13When line end characters are displayed, indicators are drawn under/over them.Neil1-5/+5
2018-05-03Use Range and Position in more cases to avoid casts.Neil1-15/+18
2018-05-03Ensure all 4 byte characters will work in MapRepresentation by using ↵Neil1-9/+16
unsigned int. Use variable assignments to avoid casts.
2018-04-21Tighten definition of regular expression iterators so they are noexcept andNeil1-1/+1
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-03-28Split decorations into interface and implementation.Neil1-3/+3
2018-03-15Use forward class definitions of XPM and RGBAImage so only code that uses themNeil1-1/+0
needs to #include "XPM.h". Move definition of standard methods on LineMarker from header to implementation to reduce included text and further isolate use of XPM and RGBAImage.
2018-03-09Use Position/Line/int more accurately in preparation for large documents.Neil1-14/+15
2018-03-01Mark variables as const where simple.Neil1-10/+10
2018-03-01Use make_unique in preference to new.Neil1-9/+9
From Effective Modern C++ Item 21.
2018-01-28Use std::end when filling arrays as reduces chance of mistake.Neil1-2/+3
2017-09-11The Scintilla namespace is always active for internal symbols and for the lexerNeil1-2/+0
interfaces ILexer4 and IDocument.
2017-08-28New header ILoader.h defines ILoader interface as it does not belong in ↵Neil1-0/+1
ILexer.h.