Maxime Coste
0bbaef6e48
Use a sorted array for keymap rather than an unordered map
...
with ~100 entry, a binary search finds in < 7 step, unordered map
is overkill.
2015-03-08 11:40:50 +00:00
Maxime Coste
c0e4268e17
Reactivate direct file change check on entering normal mode
2015-03-04 20:46:26 +00:00
Maxime Coste
8c843f5bea
Add <a-h>, <a-l>, <a-x> and <a-d> bindings to line editor
...
<a-h> : move cursor left
<a-l> : move cursor right
<a-x> : delete char before cursor
<a-d> : delete char under cursor
2015-02-13 19:13:44 +00:00
Maxime Coste
224f73d72a
Cleanup and refactor externally modified buffer reloading
...
* Correctly hide the reload dialog in every client.
* Correctly handle buffer being deleted.
2015-02-12 19:18:03 +00:00
Maxime Coste
ffff4711c5
Add history memory domain
2015-01-28 22:33:29 +00:00
Maxime Coste
da562e03a0
replace all std::vector with Vector
2015-01-12 13:58:41 +00:00
Maxime Coste
295a97f2a6
Rename memoryview to ArrayView
2015-01-06 13:43:37 +00:00
Maxime Coste
e911c86306
Remove useless code
2014-12-22 20:08:30 +00:00
Maxime Coste
116ea7364a
Restore some special behaviours, I missed them in interactive mode.
2014-12-19 13:58:33 +00:00
Maxime Coste
1c8ee78d1a
Do not register timers for transient input handlers
2014-12-18 23:12:58 +00:00
Maxime Coste
ebecd60eb8
Rework hashing, use a more extensible framework similar to n3876 proposal
...
std::hash specialization is a pain to work with, stop using that, and
just specialize a 'size_t hash_value(const T&)' free function.
2014-12-16 18:57:19 +00:00
Maxime Coste
2c4ed3a78c
Do not avoid eol on escape
2014-12-11 19:36:20 +00:00
Maxime Coste
d57be83522
Disable history writing when running hooks
2014-12-05 14:01:07 +00:00
Maxime Coste
1c5975835e
Consolidate constext disablable feature in a 'Disableable' helper
2014-12-05 13:47:09 +00:00
Maxime Coste
77e2e8a31e
Support selecting yank/paste register with "
2014-11-28 13:58:36 +00:00
Maxime Coste
35b89d5b87
Display selection count in insert mode line
2014-11-24 13:26:42 +00:00
Maxime Coste
88def85d77
Do not merge overlapping selections in InputMode::Replace
...
Fixes #237
2014-11-22 21:20:29 +00:00
Maxime Coste
f56b6ed75b
Do not record keys that were not user generated
2014-11-21 19:00:34 +00:00
Maxime Coste
3f733569ed
Fix case where a context ends up locked in no-hooks mode
2014-11-12 20:31:12 +00:00
Maxime Coste
f6e9018bf0
Reduce idle timeout to 50 milliseconds
2014-11-11 23:32:52 +00:00
Maxime Coste
88aa707b9c
For {Menu,Info}Style::Prompt, choose the anchor directly in ncurses code
2014-11-08 19:08:23 +00:00
Maxime Coste
e1fc2677e3
Add a MenuDoc style for info box, that will place it next to the menu
2014-11-08 18:01:55 +00:00
Maxime Coste
c04dfc7bb7
move more parameters from const String& to StringView
2014-11-01 19:31:13 +00:00
Maxime Coste
fc4142178f
Port more code to StringView instead of const String&
2014-10-20 19:18:38 +01:00
Maxime Coste
fa85f0fc32
Refactor regex uses, do not reference boost except in regex.hh
2014-10-13 13:14:23 +01:00
Maxime Coste
4c4d3cdd38
Add support for mapping keys in goto/view commands
2014-09-23 13:45:18 +01:00
Maxime Coste
827a77539a
Add some color to mode specific mode line info
2014-09-10 19:06:53 +01:00
Maxime Coste
50e1e5fadd
Add support for 'c-o' in prompt and insert to hide the completion menu
...
Fixes #229
2014-08-19 23:32:19 +01:00
Maxime Coste
fbbe741c07
Add support for <c-w> <c-b> and <c-e> for word moves in the line editor
...
This might go away later if we find a better way of handling line
edition, but seems like a good compromise for now.
Fixes #168
2014-08-14 00:31:39 +01:00
Maxime Coste
43f44bbab3
Fix buffer modification check
...
It used to grab the next key, because the normal mode reactivation
when executing the on_next_key would trigger a timestamp check again.
2014-08-07 21:51:36 +01:00
Maxime Coste
8ed16bb2e9
In non interactive interactive mode, disable user key mappings
...
exec and eval now accepts a -with-maps to use them. But by default
they are disabled, so that all the indent scripts work even if you
remap basic keys.
Fixes #217
2014-07-27 20:18:09 +01:00
Maxime Coste
8d6e8bc06f
Display a [no-hooks] tag in the mode line when hooks are disabled
2014-07-25 23:47:47 +01:00
Maxime Coste
731277a425
Disable hooks on a per context basis, and propagate that to Insert mode
...
using \ before entering insert mode will disable hooks during the whole
insert session rather than only the entering phase. That gives a nice
way of pasting text into kakoune.
2014-07-24 19:18:39 +01:00
Maxime Coste
bc48d9260d
Fix Menu use of j/k keys when editing filter
2014-07-22 18:39:04 +01:00
Maxime Coste
f4e3df817f
Clear status line on normal mode command
2014-07-17 19:37:30 +01:00
Maxime Coste
a32b49acd1
Rename ColorPair to Face and ColorRegistry to FaceRegistry
...
Face also stores the attributes
2014-07-11 00:27:43 +01:00
Maxime Coste
b6979e2d2c
Add docstring for normal mode commands and display them if autoinfo >= 2
2014-07-10 19:22:14 +01:00
Maxime Coste
b89b7c754f
Add \ in normal mode to disable user hooks on next normal command
...
Fixes #112
2014-06-21 22:06:02 +01:00
Maxime Coste
7235180614
Use main selection index as default when accessing only one register value
...
Fixes #117
2014-06-21 11:31:08 +01:00
Maxime Coste
e78fd2d235
Do not merge overlapping selection when entering append mode
...
Fixes #163
2014-06-16 01:05:38 +01:00
Maxime Coste
5245f0073c
Refactor InputMode::Insert::prepare
2014-06-09 23:23:49 +01:00
Maxime Coste
f54f8818c6
Merge branch 'master' into remove-buffer-change-listener
2014-06-09 19:29:40 +01:00
Maxime Coste
cf2609de1c
Tweak prompt completion behaviour
...
Always select the common prefix if we just updated the list of
completions. The previous behaviour was to ignore it if we had
it already typed. Do that only if it was already displayed.
2014-06-09 13:47:37 +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
51eae8026b
Use SelectionList::insert in InputModes::Insert
2014-05-25 22:59:29 +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
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
4e280977a2
Iterate in reversed order on selections when modifing buffer
...
This way, update only needs to be called once everything is done
as we always modify after the next selection to be used.
2014-05-14 20:56:49 +01:00
Maxime Coste
bf98b38afd
Use a plain SelectionList for Context, remove DynamicSelectionList
2014-05-14 19:49:04 +01:00