| Age | Commit message (Expand) | Author |
| 2014-05-29 | Use forward iteration on selections, and take advantage of it when updating | Maxime Coste |
| 2014-05-26 | Go back to Buffer::Change based implementation for SelectionList::update | Maxime Coste |
| 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 |
| 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 |
| 2014-05-14 | Iterate in reversed order on selections when modifing buffer | Maxime Coste |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 2012-03-30 | Store buffer content in a list of lines | Maxime Coste |
| 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 |