Commit Graph

186 Commits

Author SHA1 Message Date
Maxime Coste
5092494427 Add support for target column preservation
Fixes #64
2014-09-09 19:42:57 +01:00
Maxime Coste
ed68d1ff28 utf8: use end of sequence iterators for more security 2014-07-05 12:10:06 +01:00
Maxime Coste
63878b03c5 Style fixes 2014-06-26 19:01:39 +01:00
Maxime Coste
c8354588c9 Remove undo group optimizer 2014-06-02 15:17:56 +01:00
Maxime Coste
b6b646e9a2 Remove use of 'offset' in buffer iterators, lines are just String
No need to maintain line offsets anymore.
2014-05-24 17:08:01 +01:00
Maxime Coste
03e5264df4 Remove per lines timestamp in Buffer 2014-05-17 12:17:05 +01:00
Maxime Coste
c3f4ef9ba2 Remove BufferChangeListener 2014-05-14 19:49:04 +01:00
Maxime Coste
ea3e92aa5e SelectionList know its buffer and timestamp 2014-05-13 20:09:06 +01:00
Maxime Coste
67a251ffd5 Pass a at_end param to BufferChangeListener::on_{insert,erase} 2014-05-13 19:01:27 +01:00
Maxime Coste
ddd8f8d392 LineChangeWatcher uses Buffer::changes_since rather than listening 2014-05-13 19:01:27 +01:00
Maxime Coste
a510276025 Maintain an append-only list of changes in Buffer 2014-05-12 19:03:13 +01:00
Maxime Coste
05b79921a9 Minor code cleanups in buffer.{cc,hh} 2014-05-10 16:25:07 +01:00
Maxime Coste
8546788b43 Refactor LineAndColumn coordinates
BufferCoord -> ByteCoord
DisplayCoord -> CharCoord

Moved their definition along with LineAndColumn into coord.hh
2014-05-07 19:53:45 +01:00
Maxime Coste
33de42610d Add g. command to go to the last buffer modification position 2014-04-07 23:47:50 +01:00
Maxime Coste
e1a9d5f71e Fix clang compilation 2014-04-02 22:33:52 +01:00
Maxime Coste
3248829f5b rename buffer_iterator.inl.hh as buffer.inl.hh and inline some more methods 2014-01-12 17:19:05 +00:00
Maxime Coste
4aed32d152 Store timestamp of last content modification in buffer lines
That means that lines that move around keep their timestamp.
2014-01-12 16:26:31 +00:00
Maxime Coste
ba5b21d43e Clear buffer values explicitely in destructor
Buffer values could be registered as a listener, so we need to
get rid of them before asserting that all listeners have been
unregistered.
2014-01-11 19:05:09 +00:00
Maxime Coste
b247a05e43 Buffer: maintain a per line timestamp 2014-01-09 22:51:50 +00:00
Maxime Coste
560b4ab0b5 Fix DynamicSelectionList selecting buffer end on Buffer::reload 2014-01-08 19:36:18 +00:00
Maxime Coste
1e6fbf548b Fix some tabs in the code 2014-01-05 14:30:26 +00:00
Maxime Coste
c0973075fa Get rid of Editor for good
ClientManager now stores only the free windows, clients take
ownership of its own.
2013-12-20 20:14:57 +00:00
Maxime Coste
0e6bbbb8c4 remove useless code in Buffer constructor 2013-12-16 23:53:04 +00:00
Maxime Coste
9b6639eb27 Remove Editor::move_selections 2013-12-15 14:14:52 +00:00
Maxime Coste
563f62b467 Fix Buffer::char_next when the line ends with an invalid utf8 sequence 2013-12-12 13:45:14 +00:00
Maxime Coste
1b1031627c Add Buffer::run_hook_in_own_context helper method 2013-12-11 13:57:10 +00:00
Maxime Coste
ad275d1d1c Extract InputHandler from Client 2013-11-14 18:09:15 +00:00
Maxime Coste
04ae48c346 indent cleanup, correct erroneous 3 spaces indent 2013-11-14 00:12:15 +00:00
Maxime Coste
db5050fab0 Add BufSetOption hook support 2013-11-12 20:36:42 +00:00
Maxime Coste
a11bccaa12 fix Buffer constructor exception safety 2013-11-07 21:43:18 +00:00
Maxime Coste
2c09da50be Add key mapping support 2013-10-25 00:30:46 +01:00
Maxime Coste
60dbec4949 Add Buffer::reload for reloading buffers without loosing options and hooks 2013-10-21 18:57:19 +01:00
Maxime Coste
44281c8fed More robust Buffer filesystem timestamp handling 2013-10-17 18:47:09 +01:00
Maxime Coste
03c74b7a88 Detect file external modification and ask the user whether to reload or not
* Buffer now store a m_fs_timestamp field.
* Client in Normal mode checks current buffer file every 500 ms, or
  each time it goes back to Normal mode.
2013-10-15 18:51:31 +01:00
Maxime Coste
3862b5cbb8 LineAndColumns: always pass by value 2013-07-26 01:50:09 +02:00
Maxime Coste
5b4ef23b9d more tolerant Buffer::string 2013-06-27 23:49:34 +02:00
Maxime Coste
bd8daac3a1 Fix UndoGroupOptimizer 2013-06-12 00:14:05 +02:00
Maxime Coste
7306f6b33b Buffer: always use {line_count(), 0} as end in Modifications 2013-06-06 20:02:20 +02:00
Maxime Coste
2a74b0e9e2 Buffer: insert and erase go back to taking iterators, and return iterators 2013-06-06 19:44:08 +02:00
Maxime Coste
cf454ef904 UndoGroupOptimizer: fix count_byte_to 2013-06-06 19:44:08 +02:00
Maxime Coste
357799c966 replace remaining plain assert with kak_assert 2013-06-06 19:44:08 +02:00
Maxime Coste
bd504058d9 remove unused Buffer::char_at 2013-06-06 19:44:07 +02:00
Maxime Coste
70bf71e51f remove Buffer:char_{distance,advance} use line access instead 2013-06-06 19:44:07 +02:00
Maxime Coste
580749a91d Buffer: remove line_length and replace line_content with operator[] 2013-06-06 19:44:07 +02:00
Maxime Coste
6b667bc803 remove BufferIterator conversion to/from BufferCoord 2013-06-06 19:44:07 +02:00
Maxime Coste
ee22596d61 tweak Buffer::{,char_}prev 2013-06-04 18:53:28 +02:00
Maxime Coste
c4f9253634 Remove Buffer::iterator_at_line_{begin,end}, use iterator_at(line{,+1}) 2013-06-04 14:21:07 +02:00
Maxime Coste
fb41e1fdf9 tweak Buffer::do_insert 2013-06-04 14:21:07 +02:00
Maxime Coste
02b33c7d8f Buffer: add methods for char access instead of byte access 2013-06-03 18:56:48 +02:00
Maxime Coste
3453ebbd52 BufferChangeListener: pass buffer to on_{inser,erase} 2013-06-01 00:48:46 +02:00