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
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
Maxime Coste
0ec0f7c320
Remove unneeded vector for computing line modifications
2014-05-14 21:10:55 +01:00