summaryrefslogtreecommitdiff
path: root/src/line_modification.cc
AgeCommit message (Collapse)Author
2024-02-28Templatize StringData::createMaxime Coste
This improves performance by letting the compiler optimize most use cases where string count and length are known are compile time.
2023-10-25Default comparison operators that can beMaxime Coste
2022-09-17Avoid potentially quadratic runtime when updating selections after modificationJohannes Altmanninger
LineRangeSet::add_range() calls Vector::erase() in a loop over the same vector. This could cause performance problems when there are many selections. Fix this by only calling Vector::erase() once. I didn't measure anything because my benchmark is dominated by another issue (see next commit). LineRangeSet::remove_range() also has a suspicious call to erase() but that one is only used in test code, so it doesn't matter.
2021-05-28Support opening files bigger than 2 GiBMaxime Coste
The real technical limit is with lines bigger than 2 GiB and buffers with more than 2 Gi lines, refactor buffer loading to make it possible to load those files. Fix an overflow with the hash_data function at the same time
2020-05-29Add a range based remove_if overloadMaxime Coste
2020-05-02Fix traling whitespacesMaxime Coste
2019-09-01Introduce FunctionRef to replace std::function when not storingMaxime Coste
std::function is not necessary when we just want to pass a type erased callback that does not need to own its target. FunctionRef provides that functionality for a much lower compile time cost.
2019-01-24Header and dependency cleanupMaxime Coste
2018-10-21Move LineRangeSet to line_modification.hhMaxime Coste
2018-05-17compute_line_modifications: avoid potentially long iterationMaxime Coste
2017-06-11Fix the Buffer::end() madnessMaxime Coste
Until now, buffer had multiple recognized end coordinates, either { line_count, 0 } or { line_count - 1, line[line_count - 1].length }. Now the only correct end coord is { line_count, 0 }, removing the need for various special cases.
2016-05-17Use variadic macros for kak_assert to remove the need for COMMAMaxime Coste
2016-03-16Use ByteCoords directly for buffer insert/erase/replaceMaxime Coste
2015-12-27Fix uses of non-keyword logical operators (replace &&, || and ! with and, or ↵Maxime Coste
and not)
2015-10-17Move line parsing and to Buffer.cc directlyMaxime Coste
2015-05-22Move unit test functions in next to the code they are testingMaxime Coste
2015-02-01Fixes in line_modification change, along with style tweakMaxime Coste
2015-01-31Rewrite line modifications, hopefully with easier to comprehend codeMaxime Coste
2015-01-12replace all std::vector with VectorMaxime Coste
2014-09-18Add a small validation assert to catch a rare bugMaxime Coste
2014-05-26Revert "Remove line modification, replaced by modification"Maxime Coste
This reverts commit a7540962cc90266f4f46858184b89f048364f9b2.
2014-05-21Remove line modification, replaced by modificationMaxime Coste
2014-05-14replace LineChangeWatcher with a free function compute_line_modificationsMaxime Coste