Maxime Coste
723bb2b175
Merge remote-tracking branch 'fsub/master'
2017-10-20 17:28:06 +08:00
Maxime Coste
7c06667bdf
Make the normal mode keymap a compile time hash map
...
This hash map is now fully constexpr, and ends up stored in the read
only data segment instead of being recomputed at each startup.
2017-10-20 12:21:22 +08:00
Maxime Coste
d486ea84e5
Constexprify various hash functions
2017-10-20 12:21:22 +08:00
Maxime Coste
ddff35e5ab
Move keymap as an implementation detail of the normal mode keys
...
Only expose a free function that tries to get the NormalCmd from a
key.
2017-10-20 12:21:22 +08:00
fsub
a70128a4cf
Avoid some warnings in optimized builds
2017-10-19 22:20:44 +02:00
Maxime Coste
ddc307b8e9
Optimize CommandManager::execute handling of tokens
...
Instead of walking a list of tokens and inserting eventual new
ones in the middle, use a stack of token and push new ones on top.
2017-10-17 10:25:20 +08:00
Maxime Coste
145cf843dd
Add a fail
command to explicitely raise an error
2017-10-17 10:25:16 +08:00
Maxime Coste
89f016d871
Refactor column highlighter to make it more robust
...
Support arbitrary orders for column highlighters (it was previously
failing when column highlighters were not applied in column order).
Fix show_matching tab handling at the same time (horizontal scrolling,
tab characters and show_matching were behaving badly).
Window highlighting now runs user highlighters, then built-ins for each
phases, instead of running all phases for user highlighters, then all
phases for built-ins.
We now consider unprintable character to be 1-column width as we know
we will display them as "�".
Fixes #1615
Fixes #1023
2017-10-12 14:46:15 +08:00
Maxime Coste
78d7d512cb
Fix utf8::to_previous that could go before the begin iterator
2017-10-10 10:53:24 +08:00
Maxime Coste
079cfbc6ac
Remove unused forward declaration
2017-10-10 10:52:58 +08:00
Maxime Coste
6ada6e6d77
Move all non-core string code to string_utils.{hh,cc}
2017-10-10 10:52:32 +08:00
Maxime Coste
d1b9c24afc
Make Server outlive buffer manager
...
Fixes crashes when trying to access the server to get the session
on hooks run during destruction of other managers.
Fixes #1622
2017-10-10 10:49:30 +08:00
Maxime Coste
80d2506c34
Make utf8_iterator traits clear about it returning non-references
2017-10-07 21:54:59 +08:00
Maxime Coste
e18836aea7
Add is_upper and is_lower helper unicode functions
2017-10-07 21:54:55 +08:00
Maxime Coste
ca17fbbeb9
Merge remote-tracking branch 'Delapouite/docs-scroll'
2017-10-07 21:51:37 +08:00
Maxime Coste
a5ae21d70d
Move HookManager::Hook definition in the cpp
...
This avoids including regex.hh in the header.
2017-10-06 13:58:04 +08:00
Maxime Coste
18705a0097
Add missing operator+= and -= on utf8_iterator
...
Fix operator== and != that were non-const as well.
2017-10-06 13:57:54 +08:00
Maxime Coste
cbb6e9ea0f
Merge remote-tracking branch 'Delapouite/client_list'
2017-10-06 13:53:55 +08:00
Maxime Coste
8900d06646
Merge remote-tracking branch 'Delapouite/complete-line'
2017-10-06 13:50:42 +08:00
Maxime Coste
3cfd3a3276
Merge remote-tracking branch 'Delapouite/debug-mappings'
2017-10-06 13:49:52 +08:00
Maxime Coste
1b22472ce8
Remove unneeded regex.hh include in color.cc
2017-10-06 13:48:30 +08:00
Maxime Coste
1a20e26cc4
Allow itersel with draft context to change the buffer
...
That way we can cater to the use case of executing some keys for
`:grep` matches with `exec -itersel -draft :grep-jump<ret>...`
2017-10-06 13:48:16 +08:00
Maxime Coste
30ab437777
Add more constexpr to flags wrapping functions
2017-10-06 13:48:01 +08:00
Maxime Coste
75d2eb2b79
formatting tweak
2017-10-06 13:47:30 +08:00
Delapouite
d03858280a
Add client_list var
2017-10-05 16:41:36 +02:00
Delapouite
0e62518d89
Docs: add missing normal keys <c-[bfud]>
2017-10-04 12:47:56 +02:00
Delapouite
a63cf00b05
Add debug mappings
2017-10-03 23:00:08 +02:00
Delapouite
6bfc99bf08
Add 'line' in completers option as a way to force explicit <c-x>f
2017-10-02 18:45:11 +02:00
Maxime Coste
0da5cabbfe
Distinguish between modes being disabled temporarily and definitely
...
That way, insert mode knows when it can restore selections/avoid eol
instead of (wrongly) doing it in the destructor that ends up running
unpredictibly (as the mode is kept alive during its on_key call, even
though it can happen that it is not the active mode anymore at the end
of that call).
Fixes #1580
2017-09-28 11:11:29 +08:00
Maxime Coste
100be4b836
Merge remote-tracking branch 'Delapouite/runtime-error'
2017-09-28 10:39:44 +08:00
Maxime Coste
a727e0fa0a
Merge remote-tracking branch 'Delapouite/jump'
2017-09-28 10:38:42 +08:00
Delapouite
c7c8c14561
Display selections count in insert mode the same it's displayed in normal mode
2017-09-27 18:47:37 +02:00
Delapouite
7224fe3840
Convert status info into proper runtime_errors
2017-09-27 17:53:52 +02:00
Delapouite
6b339b7a97
Add status info when navigating through jumplist (<c-o>, <c-i>)
2017-09-27 17:26:39 +02:00
Maxime Coste
76f072a786
Removing the local client due to SIGHUP is not graceful
...
That means we will now backup modified buffers if that client was
the last.
Should improve things for #1590
2017-09-27 11:08:55 +08:00
Delapouite
25f25df8f5
Add selections_desc format to select autoinfo
2017-09-26 12:51:52 +02:00
Maxime Coste
626ccc09cc
Merge remote-tracking branch 'Delapouite/next-history-id'
2017-09-23 13:18:58 +09:00
Maxime Coste
3a5bb051a8
Small code style tweak
2017-09-23 13:18:00 +09:00
Maxime Coste
002e77534f
Merge remote-tracking branch 'occivink/quit-on-esc'
2017-09-23 13:13:51 +09:00
Maxime Coste
8107087510
Merge remote-tracking branch 'Delapouite/commands-docstring'
2017-09-23 13:12:03 +09:00
Maxime Coste
0dd9bdd11f
Merge remote-tracking branch 'Delapouite/indent-count'
2017-09-23 13:11:19 +09:00
Delapouite
0b310b64ad
Add count support for indent / deindent
2017-09-21 12:26:22 +02:00
Olivier Perret
a20ecf6b00
Use <esc> to exit on-key modes
2017-09-21 11:53:10 +02:00
Delapouite
3c05b11196
Fix missing spaces / new lines in commands docstring
2017-09-21 10:56:20 +02:00
Delapouite
b46c9ac630
Add max_history_id in status printed with <a-u> and <a-U>
2017-09-20 07:32:45 +02:00
Delapouite
17520a0886
Add '[debug]' context_info for debug buffers
2017-09-19 18:16:11 +02:00
Maxime Coste
3aaf646eda
Fix compilation
2017-09-18 10:30:21 +09:00
Maxime Coste
3d79395e63
Document custom text object move in breaking changes
2017-09-18 10:06:41 +09:00
Maxime Coste
a3644f49a3
Merge remote-tracking branch 'Delapouite/custom-text-object'
2017-09-18 10:05:51 +09:00
Maxime Coste
d5c10472f6
Avoid wrapping between punctuation and word
...
Fixes #1550
2017-09-18 09:52:24 +09:00
Maxime Coste
37589fb7b4
Merge remote-tracking branch 'Delapouite/scroll-count'
2017-09-18 09:42:24 +09:00
Delapouite
e52003049c
Add count support for scroll keys (PageUp, PageDown, C-bfud)
2017-09-17 19:55:06 +02:00
Delapouite
58b0bd6f63
Fix typo: parmeter → parameter
2017-09-14 23:19:55 +02:00
Maxime Coste
772f85b883
Expose the character under the cursor as $kak_cursor_char_value
...
Fixes #142
2017-09-12 12:45:39 +08:00
Maxime Coste
6fefe66415
Replace invalid codepoints with � instead of U+XXXX
...
That way we get more predicitible column lenght with invalid codepoints.
2017-09-12 12:34:13 +08:00
Maxime Coste
df6b39ab60
Hide info box and eventual status message after handling a mouse event
...
Fixes #1566
2017-09-12 11:38:17 +08:00
Maxime Coste
63b1d0c353
Rename some string conversion function to the common 'to_string'
2017-09-12 11:31:57 +08:00
Maxime Coste
90ab5ff93b
Merge remote-tracking branch 'Delapouite/debug-faces'
2017-09-12 10:10:02 +08:00
Delapouite
53090c0dd3
Add debug faces
2017-09-11 15:49:33 +02:00
Maxime Coste
c859cb57dc
Merge remote-tracking branch 'Delapouite/too-many'
2017-09-11 21:14:06 +08:00
Maxime Coste
ba71f209af
Fork server to background when the client/server process receives SIGHUP
...
Avoid losing the whole session when closing the terminal emulator of
the client/server process, only the client will be removed and the
server will be forked.
2017-09-11 14:21:14 +08:00
Delapouite
3ed0ac8f62
Fix typo: to many → too many
2017-09-07 21:45:46 +02:00
Maxime Coste
fdf7cf3944
Small code simplifications
2017-09-07 19:38:34 +08:00
Maxime Coste
bd66aff808
Tolerate unwritable socket when trying to send the disconnection message
...
Fixes #1552
2017-09-07 19:37:58 +08:00
Maxime Coste
8e3e5b10c1
Merge remote-tracking branch 'Franciman/exposed_history_id'
2017-09-06 11:55:00 +08:00
Francesco Magliocca
d4fa94c356
Rename env variable kak_curr_history_id to kak_history_id
2017-09-04 16:41:27 +02:00
Francesco Magliocca
b3ac4d86b6
Add current history id to env variables
2017-09-02 12:14:19 +02:00
Maxime Coste
9baebbd186
Slight tweak of FaceRegistry::FaceOrAlias definition
2017-09-01 17:34:44 +07:00
Maxime Coste
e66a5c78ad
Make Buffer::Modification an aggregate
2017-09-01 17:32:03 +07:00
Maxime Coste
5c5491405e
Make LineAndColumn an aggregate as well
2017-09-01 17:21:50 +07:00
Maxime Coste
64183b1e4c
Make Token a simple aggregate
2017-09-01 17:09:34 +07:00
Maxime Coste
44fb375c81
Make InsertCompletion an aggregate
2017-09-01 17:03:34 +07:00
Maxime Coste
6d0016f89c
Remove unneeded ParameterDesc constructor
...
With C++14, we can use aggregate initialization and default values
together.
2017-09-01 16:58:52 +07:00
Maxime Coste
9672e9219d
Code style tweak in optional.hh
2017-09-01 16:54:06 +07:00
Maxime Coste
ab6a999431
Rename containers.hh to ranges.hh (and Container to Range)
2017-08-29 15:23:03 +07:00
Maxime Coste
c0a0ba3c0a
Rework containers.hh to get rid of the Factory structures
...
Replace them with polymorphic lambdas
2017-08-29 15:19:08 +07:00
Maxime Coste
1709886873
avoid literal eol in status lines, replace them with another symbol
2017-08-29 10:01:43 +07:00
Maxime Coste
24234dffa3
Do less implicit parse_filename calls
2017-08-29 09:42:04 +07:00
Maxime Coste
9001580c9b
Do not expand env vars in parse_filename
...
We have far enough ways to provide that feature, through the shell
or through regular expands.
Fixes #1545
2017-08-29 08:33:00 +07:00
Maxime Coste
5b43c46b75
Fix naming in fd_writable
2017-08-29 08:32:47 +07:00
Maxime Coste
e80b36b495
Expose client pid as $kak_client_pid
...
As requested in #1414
2017-08-28 13:12:45 +07:00
Maxime Coste
da227e48e9
Fix String::Data copying/moving from self
2017-08-23 18:13:42 +07:00
Maxime Coste
f7bed9eb18
Support specifying an exit status on quit
commands
...
The current client exit status can be specified as an optional
parameter, is nothing is given the exit status will be 0.
Fixes #1230
2017-08-23 13:33:13 +07:00
Maxime Coste
3efc406d57
Optimize DisplayBuffer::optimize()
...
Previous implementation was erasing in the middle of the atoms
vector each time two atoms were merged, leading to a move of
all following atoms.
2017-08-23 08:42:00 +07:00
Maxime Coste
6176a19520
Update startup info
...
Remove old breaking changes, add selection extending behaviour change.
2017-08-23 07:00:37 +07:00
Maxime Coste
2050167d98
Add build type (debug/release) in ":debug info" output
2017-08-22 15:12:17 +07:00
Maxime Coste
82d23bc400
Remove now trivial Selection::merge_with method
2017-08-18 08:52:40 +07:00
Maxime Coste
609a8ee8c7
Change selection extension code to be simpler
...
Selection extension now just keeps the anchor in place insead of
trying to be smart depending on the direction of selections.
2017-08-18 08:49:37 +07:00
Maxime Coste
1688332d12
Revert "Change HashCompatible trait to a variable template"
...
This reverts commit b58f72315c
.
Unfortunately gcc-5.1 handling of variable template partial
specializations is bugged.
2017-08-18 08:17:02 +07:00
Maxime Coste
65bac9c027
Respecify EnumDescs array sizes manually to workaround clang-3.6 bug
2017-08-18 08:15:18 +07:00
Maxime Coste
e0e9b8bae4
Try to get make_array to compile with older compiler version
2017-08-18 07:45:38 +07:00
Maxime Coste
8a2b8a9498
Do not consider the 8th bit to mean Alt on keys that are mouse events
...
Fix handling of mouse events for columns 128 to 223, we are still limited
by ncurses for columns > 223.
Fixes #1532
2017-08-16 00:40:45 +07:00
Maxime Coste
b58f72315c
Change HashCompatible trait to a variable template
2017-08-14 11:54:38 +07:00
Maxime Coste
9329fc99d2
Style tweak for regex code
2017-08-14 11:41:12 +07:00
Maxime Coste
6aa2388700
Use decltype(auto) return type for some to_string functions
...
Remove explicit return type thats just duplicating the return
expression.
2017-08-14 11:29:55 +07:00
Maxime Coste
1b1239b25a
Remove size redundancy in enum_desc function declaration
...
The need to have the array size in the return type was redundant with
the actual list of elements.
2017-08-12 22:11:58 +07:00
Maxime Coste
407c84666c
Remove redundant types inside Kakoune::Allocator
2017-08-12 15:49:38 +07:00
Maxime Coste
a61c51dfc6
Merge remote-tracking branch 'Delapouite/single_param'
2017-08-07 21:48:10 +07:00
Maxime Coste
fc64369f9d
Purge history on buffer reload when NoUndo flag is on
...
We were preserving the history in that case, so on fifo buffers
(that set the NoUndo flag until the fifo is closed), we still had
the history from the "previous life" of the buffer, leading crashes
when trying to apply it.
Fixes #1518
2017-08-04 11:39:28 +07:00
Maxime Coste
45a7496f54
Fix SafeCountable and RefCountable copy/move logic
...
The safe and ref counts should not get copied around.
2017-08-04 11:38:04 +07:00