Commit Graph

3986 Commits

Author SHA1 Message Date
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