Commit Graph

3997 Commits

Author SHA1 Message Date
Maxime Coste
d49555fc75 Move highlighters into Scopes
That means we can now have highlighters active at global, buffer, and
window scope. The add-highlighter and remove-highlighter syntax changed
to take the parent path (scope/group/...) as a mandatory argument,
superseeding the previous -group switch.
2017-10-28 13:43:04 +08:00
Maxime Coste
9a449a3344 Display the fallback value in prompts
Fixes #1654
2017-10-28 10:07:28 +08:00
Maxime Coste
7062022187 HashMap: Tolerate reserving for 0 elements
Fixes #1652
2017-10-27 11:03:43 +08:00
Maxime Coste
75767f5cb5 Fix infinite loop shell_complete
Fixes #1648
2017-10-25 11:26:03 +08:00
Maxime Coste
ab9283bc37 Merge remote-tracking branch 'net/master' 2017-10-25 11:13:42 +08:00
Net
74202fab45 Rename br* colors to bright-* 2017-10-24 23:08:22 -04:00
Maxime Coste
654e3fcb46 Fix regions highlighter infinite loops when regex matches empty ranges 2017-10-25 10:39:35 +08:00
Delapouite
d5b6669a83 Add distinct w (curr buf) / W (all buf) word completion for <c-x> 2017-10-24 22:47:43 +02:00
Net
2b44e93f79 Support bright named colors 2017-10-22 14:30:49 -04:00
Maxime Coste
600ba45189 Add missing include to meta.hh 2017-10-21 05:30:43 +08:00
Maxime Coste
d6cb10d693 Disable constexpr keymap as it breaks compilation with gcc 5 2017-10-20 19:12:21 +08:00
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