Johannes Altmanninger
266fe6f659
Support count argument for [s and ]s
...
Part of #795
2020-08-02 11:30:14 +02:00
Johannes Altmanninger
98a1afcab0
Support count argument for [p and ]p
...
Part of #795
2020-08-02 11:30:14 +02:00
Maxime Coste
39ad6a5bda
Do not flush input buffer in UI creation
...
Fixes #3635
2020-08-02 16:19:13 +10:00
Maxime Coste
e3f3297334
Fix alpha of merged faces
2020-07-31 15:45:52 +10:00
Maxime Coste
c2516f02f6
Do not trigger RegisterModified hooks on register about to be restored
...
This greatly reduces the amount of hooks triggered.
2020-07-21 20:27:42 +10:00
Maxime Coste
47ba36c66e
Add a RegisterModified hook
...
This one has been a long time coming, I am still concerned this could
impact performance a lot. This hook does *not* trigger for capture
registers (0-9) or any other dynamic registers (that are not writable).
Fixes #859
2020-07-19 12:56:55 +10:00
Maxime Coste
5df8073c3c
Code style tweaks
2020-07-19 12:54:41 +10:00
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