Maxime Coste
60dda1a597
Handle SIGTERM as a graceful exit, similar to the :kill!
command
...
Do not backup modified files, go through graceful destruction of
singletons.
Fixes #3528
2020-07-07 20:41:40 +10:00
Maxime Coste
8abf18209e
Fix selections getting unsorted on scroll
...
Fixes #3478
2020-07-05 10:13:57 +10:00
Maxime Coste
f2cc7bc891
Add User hook support
2020-07-04 13:48:27 +10:00
Igor Böhm
d79b005323
Fix 'error: non-constant-expression cannot be narrowed...'
...
ncurses_ui.cc:759:59: error: non-constant-expression cannot be narrowed from type 'unsigned int' to 'Key::MouseButton' in initializer list [-Wc++11-narrowing]
return mouse_button(mod, Key::MouseButton{code}, coord, c == 'm');
^~~~
2020-06-28 23:32:12 +02:00
Maxime Coste
d3374e7e5f
Refactor mouse press/release handling to support 3 buttons
...
Change button to be an additional parameter instead of having separate
events for left/right buttons.
Fixes #3471
2020-06-28 19:48:55 +10:00
Maxime Coste
fc3e5ea419
Refactor how InsetCompletionHide hook parameter is computed
...
Keep track of inserted ranges instead of trying to re-derive them.
Fixes #3556
2020-06-27 13:33:50 +10:00
Maxime Coste
f5127f8b22
Merge remote-tracking branch 'lenormf/key-percent'
2020-06-25 20:58:26 +10:00
Maxime Coste
d4487d3bfc
A module is not loaded after failing during load
...
distinguish the loading from loaded state, detect recursive loading.
2020-06-16 19:08:10 +10:00
Maxime Coste
f75d49e9ef
Do not include non-primitive option value in *SetOption hook filter
...
Only include the value for int/str/bool options, for the rest just
write '<option name>=...'.
This should reduce the cost of some patterns such as repeatedly adding
a value inside a list option.
It seems very unlikely that the actual value would be matched by
a hook regex string for non primitive types.
2020-06-09 21:38:47 +10:00
Maxime Coste
66f15cf4ad
Fix select wiping captures
...
It turns out `v = std::move(v)` with v a std::vector is not a no-op,
it clears the vector.
2020-06-07 14:12:54 +10:00
Frank LENORMAND
24c5169400
src: Introduce a <percent> named key
...
Similarly to the <semicolon> key, make it easier to write
`:execute-keys` commands by replacing <percent> with `%`.
Highlighters can keep escaping the sign when regular expressions are
not quoted, but built-in scripts that use `%` as an editing primitive
have been modified to use the named key, for clarity.
2020-06-03 15:42:38 +03:00
Maxime Coste
0fba373d1d
Replace some tag dispatch with if constexpr
2020-06-01 20:46:48 +10:00
Maxime Coste
ec4980df34
Merge commit 'krobelus/05-highlight-replace-ranges-crash^'
2020-05-30 09:18:35 +10:00
Maxime Coste
08e0b663f7
Fix unintended interpretation of ranges length syntax
...
Ranges specified with a +<length> were inconsistent, with +0 meaning
an empty range, while +1 meant a two character long range (first character
+ the following one). Change that to mean a single character.
Fixes #3479
2020-05-29 12:25:57 +10:00
Maxime Coste
63371da8aa
Avoid to_remove vector in select helper function
...
Remove the need to allocate anything when removing selections.
2020-05-29 12:00:02 +10:00
Maxime Coste
94f33bb638
Add a range based remove_if overload
2020-05-29 11:59:03 +10:00
Johannes Altmanninger
13a6aa2fbd
refactor: remove extra semicolons
2020-05-28 20:04:32 +02:00
Maxime Coste
109abbeed4
Fix invalid regions with begin > end being generated
...
Fixes #3495
2020-05-28 20:58:46 +10:00
Maxime Coste
aad20f6576
Merge remote-tracking branch 'krobelus/paragraph-begin-oob'
2020-05-19 19:17:03 +10:00
Maxime Coste
af175d2e7e
Output debug memory stats in a nice table
2020-05-19 17:16:37 +10:00
Johannes Altmanninger
fc63eef695
Fix crash when selecting previous paragraph at buffer begin
...
Fixes #3489
When there are multiple empty lines between a paragraph and the cursor
(C in the example below), <a-[>p skips over one of them. Prevent the
check for the extra newline from going out of bounds.
```
a paragraph
C after <a-[>p, the first two lines will be selected
```
2020-05-17 14:15:48 +02:00
Johannes Altmanninger
08509cb408
Refactor: use is_eol() as elsewhere in this function
2020-05-17 14:11:45 +02:00
Maxime Coste
5fd548d5cf
Fix use of unportable MSG_CMSG_CLOEXEC
2020-05-17 21:28:40 +10:00
Maxime Coste
151eb3299d
Fix CSI u parsing of some special keys
2020-05-12 08:50:27 +10:00
Maxime Coste
60154300f9
Support piping data to client stdin
...
Pass the client stdin fd to the server and open a fifo buffer
from it.
Fixes #3394
2020-05-10 19:30:13 +10:00
Maxime Coste
2104af0771
Fix select_sentence going past the end of the buffer
...
Fixes #3472
2020-05-10 15:13:15 +10:00
Maxime Coste
f4efde7e08
Merge remote-tracking branch 'krobelus/kak-c-initial-buffer-pos'
2020-05-03 13:20:44 +10:00
Maxime Coste
2fca4e5643
Fix traling whitespaces
2020-05-02 13:02:10 +10:00
Maxime Coste
ccecd5bd8e
Add support for alpha channel in colors
...
This makes it easier to define faces that lighten/darken whatever
they apply on.
2020-05-02 12:57:36 +10:00
Johannes Altmanninger
c010f14a7c
Fix +line:col initial buffer position when connecting to session
...
A command line argument like +line[:column] can be used to specify a
target line and column for the first file.
This did not work when connecting to a session, because the client
opens its file parameter with `-e "edit file1; edit file2"` which is
executed after the initial buffer position is set. Work around this by
passing the position to the first file and avoid moving the cursor
in unrelated files.
Reproduce:
kak -s foo
kak -c foo +4:11 README.asciidoc
2020-05-01 10:05:37 +02:00
Maxime Coste
ceff2286af
Fix clang compilation
2020-04-27 17:41:09 +10:00
Maxime Coste
35e8e12b12
Merge branch 'netbsd-1' of https://github.com/krytarowski/kakoune
2020-04-27 17:40:33 +10:00
Maxime Coste
954373d3cf
Support multi-line replace-ranges
...
This likely has lots of rough edges, but should be an initial proof
of concept to support folding.
2020-04-27 17:39:21 +10:00
Maxime Coste
cb119251bc
Do not replace partially selected ranges in replace-ranges highlighter
...
Partially selected ranges should not be replaced to make it possible
to see what is actually selected.
2020-04-27 17:39:21 +10:00
Maxime Coste
0fdfbdfd15
Fix highlighting empty ranges at end of line and begin of line
2020-04-27 14:31:26 +10:00
Maxime Coste
fde4c60dd9
Factor option based highlighters
2020-04-27 14:31:26 +10:00
Kamil Rytarowski
22931bdc1f
Fix get_kak_binary_path() for NetBSD
...
Pass correct mib[] to sysctl(3).
2020-04-23 03:24:24 +02:00
Maxime Coste
a33b938652
Fix issue with select object and empty matches
2020-04-21 13:21:35 +10:00
Maxime Coste
562ee6143a
Parse ascii newline/tab/escape as special keys instead of control keys
...
Fixes #3439
2020-04-13 12:44:15 +10:00
Maxime Coste
8000cd092f
Fix internal command naming
2020-04-13 12:24:45 +10:00
Maxime Coste
91e3a58a3a
Merge remote-tracking branch 'lenormf/fix-3410'
2020-04-13 11:09:08 +10:00
Maxime Coste
0fb479f0c2
Merge branch 'netbsd' of http://github.com/niacat/kakoune
2020-04-09 07:42:53 +10:00
Maxime Coste
f7a2ecfacb
Support empty ranges in replace-ranges highlighter
2020-04-06 11:23:47 +10:00
Maxime Coste
c585107ab5
Add -override support to add-highlighter
...
This allow replacing a highlighter in place, not loosing its current
position in its parent.
Fixes #3436
2020-03-30 21:04:01 +11:00
Maxime Coste
b42885ef71
Fix empty strings not being zero terminated
2020-03-29 20:28:56 +11:00
Maxime Coste
8f30e37507
Untie focus reporting and mouse handling
2020-03-27 07:54:21 +11:00
nia
7d4a83a449
|| -> or for consistency
2020-03-22 11:00:27 +00:00
nia
28982aae92
Fix build on NetBSD
2020-03-22 10:49:06 +00:00
Maxime Coste
3c265acd6c
Remove posB from information given by the diff algorithm
...
posB is always the sum of previous add len and previous keep len,
so very easy to keep track of.
2020-03-20 20:27:50 +11:00
Maxime Coste
401ef84a4b
Remove uses of reverse_iterator in diff implementation
2020-03-20 20:24:42 +11:00