Maxime Coste
|
1fd99e7e88
|
do not check buffer invariant in do_{erase,insert} as this cause O(n²) behaviour
|
2013-04-04 14:04:37 +02:00 |
|
Maxime Coste
|
9429b662ca
|
move absolute path logic to Buffer class
|
2013-03-25 19:58:23 +01:00 |
|
Maxime Coste
|
df79b7610a
|
utf8 validity is not a buffer concern
|
2013-03-20 19:26:46 +01:00 |
|
Maxime Coste
|
a11a162734
|
Buffer: optimize do_insert to minimize changes in m_lines vector
|
2013-03-18 19:45:17 +01:00 |
|
Maxime Coste
|
84e3c99c93
|
Buffer::on_erase: avoid resizing lines more than necessary
|
2013-03-15 14:15:29 +01:00 |
|
Maxime Coste
|
c1db67e31a
|
Buffer: minor refactoring
|
2013-03-13 14:36:10 +01:00 |
|
Maxime Coste
|
161e32e137
|
fix warning
|
2013-02-28 18:51:24 +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
|
4b11f73f1e
|
buffer: remove too slow check from check_invariant
|
2013-02-22 18:38:53 +01:00 |
|
Maxime Coste
|
6573f16dd9
|
Buffer: commit current undo group before attempting to undo anything
|
2013-02-20 14:23:52 +01:00 |
|
Maxime Coste
|
9f4498e035
|
Buffer: replace {begin,end}_undo_group with a single commit_undo_group method
|
2013-02-20 14:20:16 +01:00 |
|
Maxime Coste
|
3d430e14c4
|
Buffer: small fix in apply_modification
|
2013-01-28 13:45:32 +01:00 |
|
Maxime Coste
|
54725ebcca
|
Buffer::do_insert: fix on_insert call when inserting at the end
|
2013-01-24 14:08:24 +01:00 |
|
Maxime Coste
|
410067282a
|
Buffer: end is either one past last character, or one past last line
|
2013-01-23 18:52:42 +01:00 |
|
Maxime Coste
|
72cc61c987
|
add undo unit_test and fix Buffer
|
2013-01-23 14:39:33 +01:00 |
|
Maxime Coste
|
3404366b65
|
add more asserts
|
2013-01-23 14:39:33 +01:00 |
|
Maxime Coste
|
f14bc5e310
|
Buffer: small style fixes
|
2013-01-23 13:47:45 +01:00 |
|
Maxime Coste
|
1b53b92267
|
Buffer: check that newlines are at the end of lines
|
2013-01-22 14:28:15 +01:00 |
|
Maxime Coste
|
621be2ceab
|
Hooks now takes a non-const context
|
2013-01-17 13:45:43 +01:00 |
|
Maxime Coste
|
914ede7a82
|
Add and use a Set template class for recuring small sets
|
2013-01-11 14:28:13 +01:00 |
|
Maxime Coste
|
9531fd5915
|
Buffer loses the 'New' flag when written
|
2012-12-28 13:52:19 +01:00 |
|
Maxime Coste
|
6c901e9152
|
Buffer: close undo group when saved
|
2012-12-19 18:56:20 +01:00 |
|
Maxime Coste
|
f1b15ef86b
|
fix buffer creation on empty file
|
2012-11-27 13:39:35 +01:00 |
|
Maxime Coste
|
c32a7b9b74
|
Buffer takes a vector of lines as initial content
|
2012-11-23 18:42:07 +01:00 |
|
Maxime Coste
|
2523c4955b
|
buffer: increment timestamp on notify saved
|
2012-11-23 13:41:07 +01:00 |
|
Maxime Coste
|
11e885e5a5
|
Cleanups and minor refactoring on Buffer
|
2012-11-22 18:54:37 +01:00 |
|
Maxime Coste
|
08ad8e8a40
|
move Window ownership to the ClientManager instead of the Buffer
|
2012-11-22 14:08:55 +01:00 |
|
Maxime Coste
|
3b5530ac09
|
rename (hook|option)_manager to (hook|option)s.
And Global(Hook|Option)Manager to Global(Hook|Option)s
|
2012-11-22 13:50:29 +01:00 |
|
Maxime Coste
|
d1fade5c9e
|
Buffer: replace reset_undo_data with a NoUndo flag
|
2012-11-21 13:43:10 +01:00 |
|
Maxime Coste
|
ac6171686d
|
minor fixes to buffer constructor
|
2012-11-21 13:37:36 +01:00 |
|
Maxime Coste
|
8bbfbc8c72
|
Buffer: replace Buffer::Type with Buffer::Flags
|
2012-11-20 19:47:56 +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
|
fedabb4176
|
Rework Window creation, avoid using the same window in multiple clients
|
2012-11-05 19:15:42 +01:00 |
|
Maxime Coste
|
c947819154
|
Fix buffer iterator_at_line_{begin,end}(LineCount)
|
2012-10-31 14:28:03 +01:00 |
|
Maxime Coste
|
c92077762c
|
Makefile: add -Wall to CXXFLAGS
|
2012-10-11 01:17:29 +02:00 |
|
Maxime Coste
|
0ce6bd9bf5
|
use ByteCount instead of CharCount when we are really counting bytes
(that is most of the time when we are not concerned with displaying)
|
2012-10-11 00:41:48 +02:00 |
|
Maxime Coste
|
194bf6ac98
|
Buffer: add some utf8 sanity checks
|
2012-10-08 19:25:17 +02:00 |
|
Maxime Coste
|
9ec10daf69
|
move clamp to utils.hh
|
2012-10-02 14:08:09 +02:00 |
|
Maxime Coste
|
e39086cd5f
|
Buffer: reset undo data after executing hooks in constructor
|
2012-09-11 19:03:37 +02:00 |
|
Maxime Coste
|
f9e31856cf
|
Buffer: Allow inserting at the end when the inserted text ends with an end of line
Adapted other code in consequence and added unit tests so that this behavior
is maintained.
|
2012-09-10 19:26:17 +02:00 |
|
Maxime Coste
|
e4fd839dda
|
use a strongly typed int CharCount for character counts
|
2012-08-23 23:56:35 +02:00 |
|
Maxime Coste
|
0d8cce2728
|
use a strongly typed int LineCount for line counts
|
2012-08-22 23:33:52 +02:00 |
|
Maxime Coste
|
0eaf39b725
|
Add Buffer::iterator_at_line{begin,end}(size_t line) overloads
|
2012-08-21 20:52:49 +02:00 |
|
Maxime Coste
|
390d4ccdfc
|
Buffer::{iterator_at,clamp} takes an optional avoid_eol parameter
when avoid_eol is true, clamping does avoid end-of-line if possible
|
2012-08-15 18:06:59 +02:00 |
|
Maxime Coste
|
260b30e6d9
|
misc cleanups
|
2012-08-15 17:55:58 +02:00 |
|
Maxime Coste
|
5393e9e78b
|
Buffer: add a timestamp
|
2012-08-15 17:07:53 +02:00 |
|
Maxime Coste
|
4e34f777b0
|
Buffer: stronger invariant, a buffer is never empty and all lines finish by '\n'
|
2012-08-14 14:13:10 +02:00 |
|
Maxime Coste
|
759319ca44
|
Buffer: move back Modification as an implementation detail
* Filters now only works on insertion and take directly the
iterator and content
* use Buffer::insert and Buffer::erase to modify a buffer
|
2012-08-10 19:12:43 +02:00 |
|
Maxime Coste
|
54b599c1a7
|
Buffer: fix corner case in insert
|
2012-08-10 14:22:57 +02:00 |
|
Maxime Coste
|
c7fc2a9317
|
Buffer: add reset_undo_data method
|
2012-08-10 14:21:32 +02:00 |
|