| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2014-05-29 | Use forward iteration on selections, and take advantage of it when updating | Maxime Coste | |
| SelectionList::update now is optimized for the common case where changes are sorted, the algorithm is O(m*n) with m the number of sorted ranges in the changes. In the common case, m should be very small. | |||
| 2014-05-26 | Go back to Buffer::Change based implementation for SelectionList::update | Maxime Coste | |
| However take into account the ordering of selections in insert and erase methods, so that we update selection position cheaply. | |||
| 2014-05-25 | Use SelectionList::insert in InputModes::Insert | Maxime Coste | |
| 2014-05-25 | Move insert/erase methods from normal.cc to member functions in SelectionList | Maxime Coste | |
| It does look like the Editor class is attempting a sneaky comeback... | |||
| 2014-05-24 | Clamp modified coord in Selection as it could be buffer end | Maxime Coste | |
| 2014-05-24 | Fix, cleanup and refactor compute_modifications | Maxime Coste | |
| 2014-05-21 | Add initial (and probably buggy) compute_modifications code | Maxime Coste | |
| compute_modifications compiles a list of buffer change into a list of Modifications that can be used for updating BufferCoord | |||
| 2014-05-14 | Iterate in reversed order on selections when modifing buffer | Maxime Coste | |
| This way, update only needs to be called once everything is done as we always modify after the next selection to be used. | |||
| 2014-05-14 | Use a plain SelectionList for Context, remove DynamicSelectionList | Maxime Coste | |
| 2014-05-14 | utf8::is_character_start takes directly the char value | Maxime Coste | |
| 2014-05-13 | Make it harder to have an invalid SelectionList | Maxime Coste | |
| 2014-05-13 | SelectionList know its buffer and timestamp | Maxime Coste | |
| 2014-05-13 | Pass a at_end param to BufferChangeListener::on_{insert,erase} | Maxime Coste | |
| 2014-05-07 | Refactor LineAndColumn coordinates | Maxime Coste | |
| BufferCoord -> ByteCoord DisplayCoord -> CharCoord Moved their definition along with LineAndColumn into coord.hh | |||
| 2014-04-08 | Minor formatting fixes (very long lines) | Maxime Coste | |
| 2014-03-29 | Remove Range struct, merge it back in Selection | Maxime Coste | |
| 2014-01-28 | Rename selections first,last to more explicit anchor,cursor | Maxime Coste | |
| 2013-12-14 | SelectionList should never be empty | Maxime Coste | |
| 2013-12-14 | Move main selection index to SelectionList | Maxime Coste | |
| 2013-07-26 | LineAndColumns: always pass by value | Maxime Coste | |
| 2013-06-04 | Use coord instead of iterators for selections | Maxime Coste | |
| 2013-06-01 | BufferChangeListener: pass buffer to on_{inser,erase} | Maxime Coste | |
| 2013-05-30 | reorganize check_invariant in SelectionList | Maxime Coste | |
| 2013-05-30 | Remove Range::content | Maxime Coste | |
| 2013-05-30 | Remove begin/end from Ranges, replace with min/max | Maxime Coste | |
| Ranges should not be utf8 aware (needed for end), and a lot of uses for end() were in fact looking for max. | |||
| 2013-05-30 | buffer end should not be in a selection | Maxime Coste | |
| 2013-05-29 | Remove Selection::avoid_eol, move as static func in editor.cc | Maxime Coste | |
| Conflicts: src/editor.cc | |||
| 2013-05-14 | tweak Range::merge_with behaviour | Maxime Coste | |
| 2013-05-03 | add SelectionList::check_invariant | Maxime Coste | |
| 2013-05-02 | Move selection update code to SelectionList | Maxime Coste | |
| 2013-04-09 | rename assert to kak_assert to avoid collisions | Maxime Coste | |
| 2013-02-27 | Add String Range::content() const | Maxime Coste | |
| 2013-02-27 | Add a debug option to Makefile, and use KAK_DEBUG define to remove debug code | Maxime Coste | |
| 2013-01-23 | add more asserts | Maxime Coste | |
| 2012-12-13 | move selection updating code out of selection, to DynamicSelectionList | Maxime Coste | |
| this avoids a lot of unnecessary (add|remove)_change_listener as creating temporary Selections do not call that anymore. Use can choose between a SelectionList which or a DynamicSelectionList depending on wethear the buffer will be modified or not during the selections lifetime. | |||
| 2012-11-30 | Selection: refactoring, move CaptureList to Selection | Maxime Coste | |
| 2012-11-12 | make Buffer::{add,remove}_change_listener const and the listener list mutable | Maxime Coste | |
| 2012-10-08 | selections should always point to an utf8 character sequence start byte | Maxime Coste | |
| 2012-09-05 | fix Selection::merge_with | Maxime Coste | |
| 2012-08-15 | avoid keeping end of lines selected in Editor::erase | Maxime Coste | |
| 2012-07-16 | Go back to a generic BufferChangeListener interface for selection update | Maxime Coste | |
| 2012-04-04 | remove ModificationListener and use a list of iterators to update instead | Maxime Coste | |
| This permits to fix a bug in BufferIterator::upgrade, replaced by BufferIterator::on_insert and BufferIterator::on_erase. ModificationListener was only used to updating iterators anyway. | |||
| 2012-03-30 | Store buffer content in a list of lines | Maxime Coste | |
| Instead of a big std::string, buffer now store it's content in a list of lines. In order to achieve O(log(n)) random access, lines contains both their content and their offset since the start of the file, making binary search usable. BufferIterator now have a LineAndColumn coordinate into the buffer instead of an offset so that access is still O(1). | |||
| 2012-02-22 | Selection: handle last buffer character deleted case | Maxime Coste | |
| 2012-02-09 | Merge captures into registers, implements register insertion | Maxime Coste | |
| 2012-01-31 | extract an Editor class from Window and refactor | Maxime Coste | |
