Commit Graph

127 Commits

Author SHA1 Message Date
Maxime Coste
3862b5cbb8 LineAndColumns: always pass by value 2013-07-26 01:50:09 +02:00
Maxime Coste
4ef1bfa4db Use coord instead of iterators for selections 2013-06-04 14:21:07 +02:00
Maxime Coste
3453ebbd52 BufferChangeListener: pass buffer to on_{inser,erase} 2013-06-01 00:48:46 +02:00
Maxime Coste
557acc5068 reorganize check_invariant in SelectionList 2013-05-30 13:59:38 +02:00
Maxime Coste
7f8d5c1fd0 Remove Range::content 2013-05-30 13:59:38 +02:00
Maxime Coste
93dd1ff3c7 Remove begin/end from Ranges, replace with min/max
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 13:59:38 +02:00
Maxime Coste
9a80a58ff4 buffer end should not be in a selection 2013-05-30 13:59:38 +02:00
Maxime Coste
9630990b74 Remove Selection::avoid_eol, move as static func in editor.cc
Conflicts:
	src/editor.cc
2013-05-29 18:53:57 +02:00
Maxime Coste
9cbf790d13 tweak Range::merge_with behaviour 2013-05-14 13:58:35 +02:00
Maxime Coste
4c4b6a404d add SelectionList::check_invariant 2013-05-03 18:44:26 +02:00
Maxime Coste
9b3e0c8055 Move selection update code to SelectionList 2013-05-02 19:04:59 +02:00
Maxime Coste
5adee4a6a7 rename assert to kak_assert to avoid collisions 2013-04-09 20:04:11 +02:00
Maxime Coste
2f410f62e4 Add String Range::content() const 2013-02-27 19:11:25 +01:00
Maxime Coste
cd8c36fc50 Add a debug option to Makefile, and use KAK_DEBUG define to remove debug code 2013-02-27 19:02:01 +01:00
Maxime Coste
3404366b65 add more asserts 2013-01-23 14:39:33 +01:00
Maxime Coste
cfd7ee049a move selection updating code out of selection, to DynamicSelectionList
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-12-13 18:50:27 +01:00
Maxime Coste
b764a0a63e Selection: refactoring, move CaptureList to Selection 2012-11-30 18:32:49 +01:00
Maxime Coste
77272db0fd make Buffer::{add,remove}_change_listener const and the listener list mutable 2012-11-12 20:11:27 +01:00
Maxime Coste
5a267ab627 selections should always point to an utf8 character sequence start byte 2012-10-08 14:26:57 +02:00
Maxime Coste
11d86ca3f3 fix Selection::merge_with 2012-09-05 14:27:48 +02:00
Maxime Coste
a2aefa2998 avoid keeping end of lines selected in Editor::erase 2012-08-15 18:20:02 +02:00
Maxime Coste
31c0931dff Go back to a generic BufferChangeListener interface for selection update 2012-07-16 21:51:37 +02:00
Maxime Coste
e4b872abd2 remove ModificationListener and use a list of iterators to update instead
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-04-04 13:56:19 +00:00
Maxime Coste
0ba7c7286d Store buffer content in a list of lines
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-03-30 11:37:18 +00:00
Maxime Coste
7f175da3fd Selection: handle last buffer character deleted case 2012-02-22 22:03:11 +00:00
Maxime Coste
d84d085cc2 Merge captures into registers, implements register insertion 2012-02-09 23:47:55 +00:00
Maxime Coste
69d96c90da extract an Editor class from Window and refactor 2012-01-31 19:12:06 +00:00