Commit Graph

2265 Commits

Author SHA1 Message Date
Maxime Coste
d33c27acdf Move compute_modified_ranges to selection.cc and use an optimized approach 2014-06-02 15:13:56 +01:00
Maxime Coste
23a1914d7e Optimize SelectionList::update in the case where changes are backward
This case arise on undo, reverse sorted changes that are not overlapping.
2014-06-02 02:16:19 +01:00
Maxime Coste
a5e028e1b1 Add Context::set_selections(std::vector<Selection>)
This methods avoids updating the context selection needlessly as
they are going to get replaced anyway.
2014-06-01 16:01:38 +01:00
Maxime Coste
1b30c0f4fb Extract merge_overlapping as a free function template 2014-06-01 15:57:12 +01:00
Maxime Coste
5bcb55b6dd minor cleanups in insert_completer.cc 2014-05-31 18:18:29 +01:00
Maxime Coste
cf03cc97ef formatting fix 2014-05-31 18:12:54 +01:00
Maxime Coste
9006b31472 remove reverse iterator from SelectionList 2014-05-31 11:56:48 +01:00
Maxime Coste
321e770565 update TODO 2014-05-31 11:51:58 +01:00
Maxime Coste
49ab0c101a Use forward iteration on selections, and take advantage of it when updating
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-29 05:48:40 +01:00
Maxime Coste
72d6ed3575 Add 'n' for number object (inner number does not recognise '.') 2014-05-27 09:50:12 +01:00
Maxime Coste
e1c9e42213 Merge branch 'master' into remove-buffer-change-listener
Conflicts:
	src/normal.cc
	src/selectors.cc
	src/selectors.hh
2014-05-27 00:35:12 +01:00
Maxime Coste
9aa38a1ea0 Rename select_whole_.* to just select_.* 2014-05-26 21:44:57 +01:00
Maxime Coste
c1a7759e7f Tweak inner indent object code
Inner indent is now the set of lines whose indent is >= current
line indent, triming lines containing only whitespaces at start
and end.

Fixes #140
2014-05-26 21:41:51 +01:00
Maxime Coste
9870ac22f6 Remove Modification
Lets consider that as a failed experiment.

You see, I learned something today, for a complicated problem, it
is important to keep as much knowledge of the exact problem as
possible. the Modification approach failed because it tried to
solve the general problem, which is quite complex. The new approach,
which keeps the knowledge that selections are sorted is much simpler
and faster (see f49bec8021).
2014-05-26 21:09:12 +01:00
Maxime Coste
ce469398c5 Revert "Use Modification for region highlighter"
This reverts commit aa64851de6.

Conflicts:
	src/highlighters.cc
2014-05-26 21:02:09 +01:00
Maxime Coste
19a5ed05a6 Revert "update Modification for WordDB"
This reverts commit 8f45623f98.

Conflicts:
	src/word_db.cc
2014-05-26 21:02:08 +01:00
Maxime Coste
fed2094e89 Revert "Remove line modification, replaced by modification"
This reverts commit a7540962cc.
2014-05-26 20:59:08 +01:00
Maxime Coste
f49bec8021 Go back to Buffer::Change based implementation for SelectionList::update
However take into account the ordering of selections in insert and erase
methods, so that we update selection position cheaply.
2014-05-26 20:57:10 +01:00
Maxime Coste
51eae8026b Use SelectionList::insert in InputModes::Insert 2014-05-25 22:59:29 +01:00
Maxime Coste
b2621ca140 Move insert/erase methods from normal.cc to member functions in SelectionList
It does look like the Editor class is attempting a sneaky comeback...
2014-05-25 20:28:32 +01:00
Maxime Coste
0a060b62a2 Merge branch 'master' into remove-buffer-change-listener 2014-05-25 20:01:55 +01:00
Maxime Coste
bf50a1c191 In normal mode, backspace can be used to edit count
Fix #125
2014-05-25 19:14:44 +01:00
Maxime Coste
1498fa9e4a Add kak_selections_desc en vars, containing : separated descs
descs are now <line>.<column>+<len>
Fixes #144
2014-05-25 18:27:51 +01:00
Maxime Coste
811f1c2d76 Rename Key::Erase to Key::Delete and add 'del' keyname
Fixes #145
Fixes #146
2014-05-25 17:41:28 +01:00
Maxime Coste
fe70add4b7 Disable 'interactive' options in :exec/:eval
Incremental search, automatic info and completion are
not needed in non interactive context.
2014-05-25 17:36:12 +01:00
Maxime Coste
fc0700d1fd Fix segfault in region highlighter 2014-05-24 17:17:14 +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
95200d1de1 Avoid buffer end line in word_db update 2014-05-24 14:10:27 +01:00
Maxime Coste
0aa5c4e779 Still more fixes for Modification 2014-05-24 13:15:59 +01:00
Maxime Coste
a6de024c1f Fix Modification 2014-05-24 02:35:08 +01:00
Maxime Coste
1544a006c9 Fix selection update in when doing a 'replace' insert 2014-05-24 02:14:51 +01:00
Maxime Coste
eba98ecad4 Clamp modified coord in Selection as it could be buffer end 2014-05-24 02:14:51 +01:00
Maxime Coste
695c85f451 Fix, cleanup and refactor compute_modifications 2014-05-24 02:14:28 +01:00
Maxime Coste
f08966197e Change # register to contain selection number
Using <c-r># in insert will allow easy numbering
2014-05-23 20:27:35 +01:00
Maxime Coste
a7540962cc Remove line modification, replaced by modification 2014-05-21 23:35:11 +01:00
Maxime Coste
aa64851de6 Use Modification for region highlighter 2014-05-21 23:35:11 +01:00
Maxime Coste
8f45623f98 update Modification for WordDB 2014-05-21 23:35:11 +01:00
Maxime Coste
2c52b8bca6 Add initial (and probably buggy) compute_modifications code
compute_modifications compiles a list of buffer change into
a list of Modifications that can be used for updating BufferCoord
2014-05-21 23:35:10 +01:00
Maxime Coste
152e46a6da Make utif_iterator more tolerant to invalid utf8 2014-05-21 00:25:24 +01:00
Maxime Coste
55959f2cb1 Make expand_unprintable more tolerant to invalid utf8 2014-05-21 00:24:58 +01:00
Maxime Coste
b29cae4d16 Remove duplicated logic and fix insert in Replace mode 2014-05-19 18:59:14 +01:00
Maxime Coste
2bb2c467b6 Fix filename/colalias/buffer completion when completing with trailing text 2014-05-18 14:14:37 +01:00
Maxime Coste
03e5264df4 Remove per lines timestamp in Buffer 2014-05-17 12:17:05 +01:00
Maxime Coste
079d34b82a Minor cleanup in SelectionList methods 2014-05-17 12:13:49 +01:00
Maxime Coste
211b78f536 Merge branch 'master' into remove-buffer-change-listener
Conflicts:
	src/highlighters.cc
2014-05-17 11:39:56 +01:00
Maxime Coste
9240cccf74 set Coords/Counts methods as always_inline
They are well tested, and we never want to step into them when debugging
2014-05-17 10:17:28 +01:00
Maxime Coste
c21368cac5 DisplayAtom::content returns a StringView 2014-05-16 19:29:39 +01:00
Maxime Coste
aa48179131 read all available text in fifo each time the fd is signaled 2014-05-15 19:11:59 +01:00
Maxime Coste
e86e5b1b81 Fix gdb pretty printer 2014-05-14 22:16:51 +01:00
Maxime Coste
2f1388df7b replace LineChangeWatcher with a free function compute_line_modifications 2014-05-14 21:19:19 +01:00