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
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
Maxime Coste
420c6aca23
Change documentation directory towards $kak_runtime/doc
2017-08-03 15:00:02 +07:00
Maxime Coste
53e1d2f0de
Slight formatting tweak
2017-08-01 14:48:45 +07:00
Delapouite
233a459dee
Use single_param for ParameterDesc when relevant in command descs
2017-07-28 20:43:42 +02:00
Maxime Coste
d0dfcd2b78
Support values starting with -
for in set-register command
...
Fixes #1220
2017-07-25 11:38:13 +02:00
Maxime Coste
5eb63a32e5
Do not reject switch parameters starting with -
...
Closes #1193
2017-07-23 23:21:51 +02:00
Maxime Coste
d75a835ca1
Merge remote-tracking branch 'Delapouite/main_index'
2017-07-23 23:15:51 +02:00
Maxime Coste
d1c005dd8c
Limit diff algorithm complexity
...
Return a non-optimal, but valid, diff when we detect too many
iterations
Fixes #1509
2017-07-23 21:33:12 +02:00
Maxime Coste
d43e2ac843
More cleanups in diff code
2017-07-20 17:47:50 +02:00
Maxime Coste
d7c0bfddd0
Merge remote-tracking branch 'Delapouite/rmhl'
2017-07-20 12:47:49 +02:00
Delapouite
720ff62f03
Fix wrong autoinfo for remove-highlighter
2017-07-20 12:08:06 +02:00
Maxime Coste
ec1824d3c3
Make non smart case full match better than smart case full match
2017-07-19 20:18:47 +02:00
Maxime Coste
016a50f213
Use smart case matching for contiguous/prefix/fullmatch detection
...
Fixes #1498
2017-07-19 20:16:28 +02:00
Maxime Coste
f87afbcb65
Detect overflow using a long long for the computation result.
...
Closes #1306
2017-07-19 17:55:48 +02:00
Maxime Coste
d3f438810e
Fix main selection handling in keep pipe ($)
...
$kak_reg_hash will properly contain the current selection index when
executing the shell command, fixing its use.
Fixes #1503
2017-07-19 17:42:41 +02:00
Maxime Coste
9c4448ac41
Remove echo -color
support, superseeded by echo -markup
...
`echo -color Error "blah"` is the same as `echo -markup '{Error}blah'`
Fixes #1512
2017-07-19 17:18:52 +02:00
Maxime Coste
5ccf18d772
More use of std::enable_if_t alias
2017-07-19 08:55:24 +02:00
Maxime Coste
d37c3d175d
More uses of standard type traits aliases
2017-07-19 08:49:44 +02:00
Maxime Coste
609bc24f67
Remove unused function
2017-07-19 08:49:44 +02:00
Maxime Coste
ba83cbee0e
Use c++14 function deduction and decltype(auto) to cleanup some code
2017-07-19 08:49:43 +02:00
Maxime Coste
5bf401948a
Cleanup some code with C++14 features
2017-07-19 08:47:14 +02:00
Maxime Coste
bbaa98c46d
Fix travis configuration for C++14 support
2017-07-19 08:47:14 +02:00
Maxime Coste
7a79cbbc81
Migrate code to c++14
2017-07-19 08:47:14 +02:00
Maxime Coste
fbffd86f85
Add an assert to try to get more info on #1506
2017-07-19 08:40:17 +02:00
Maxime Coste
7b96d56996
Use the provided equal functor for prefix/suffix detection in diff
...
We were wrongly using the `==` operator.
2017-07-18 17:53:30 +02:00
Maxime Coste
9197dd393c
More refactoring of the diff code in order to make it cleaner
2017-07-18 16:11:24 +02:00
Maxime Coste
50fec86749
Change diff Implementation to use end indices instead of length
...
Having absolute begin and relative lenght was a bit strange to
work with. Rename middle_snake to snake.
2017-07-18 12:14:52 +02:00
Maxime Coste
793c2ed9cf
Slight style change
2017-07-17 19:29:57 +02:00
Maxime Coste
d90cd6de77
Refactor find_diff_rec and detect kept prefix/suffixes early
...
Certain cases, like diffing an empty buffer with a big buffer, were
very slow, now this should get better as we will directly detect the
matching eol at the end of both buffers, end then immediatly detect
we need to add the rest of the big buffer.
We still are too slow on some general diff when there is a lot of
differences.
2017-07-17 13:30:11 +02:00
Maxime Coste
388ada8142
Remove MirroredArray for diff implementation
...
We can index native arrays negatively, so just setup V1 and V2 to
point in the middle of the work arrays and remove the need for
creating MirroredArray.
2017-07-17 19:28:52 +09:00
Maxime Coste
da9794e272
Fix xmessage handling in assert.cc
...
The return value of the system call is not directly the exit value
of the process, but a status that needs to be inspected with some
macros.
2017-07-17 18:13:20 +09:00
Maxime Coste
a9455bf132
Tolerate that the cursor might not be visible
...
Sometimes, like if the window is not high enough, we might not be
able to display any buffer lines, hence not have the cursor visible.
Fixes #1502
2017-07-16 13:12:17 +09:00
Maxime Coste
5eae7aacc7
Small code cleanup in diff implementation
2017-07-15 17:17:27 +09:00
Maxime Coste
6e40e57ed4
Fix replacing reducing selections to their cursor
...
Broken by 8650c99f13
2017-07-14 16:16:43 +09:00
Maxime Coste
580eae0388
|
now applies the diff of the modification instead of plain replace
...
Fixes #312
Fixes #1501
2017-07-14 16:16:40 +09:00
Maxime Coste
8650c99f13
Fix assertion when replacing with empty strings
...
Replacing with empty strings is essentially a deletion, which means
it can end up push some selections out of the buffer (imagine 3 a
2 empty line buffer, and deleting the second one). We are fixing
the selections in SelectionList::erase, but we were not doing that
in SelectionList::insert.
Fixes #1504
2017-07-14 13:08:29 +09:00
Maxime Coste
53f5b3d709
Fix an assert in compute modified ranges when merging single char ranges
...
Due to the way Selection::min/max worked, we were creating backward
selections, with cursor < anchor, which was triggering an assert when
trying to move cursor back one char when it was already on the first
char of the buffer.
2017-07-14 12:42:43 +09:00
Maxime Coste
26cc8b3ee0
Fix undo handling in <a-o>/<a-O>
2017-07-13 08:24:55 +09:00
Delapouite
287a20c485
Add main selection index in mode_info
2017-07-12 19:08:13 +02:00
Maxime Coste
7389e37b4b
Small startup message formatting tweak
2017-07-13 00:31:17 +09:00
Maxime Coste
74076ef9b7
Alternative, and hopefully safer implementation of <a-o>/<a-O>
...
Fixes #1495
2017-07-11 22:35:42 +09:00
Maxime Coste
81b5de6fd8
Add <a-c> and <a-d> for changing/deleting without yanking
...
As asked for in #1175
2017-07-11 22:25:15 +09:00