Tw
41833d7b7d
fix line completion with prefix
...
There's a bug in current line completion, fix it.
Signed-off-by: Tw <tw19881113@gmail.com>
2021-04-11 11:54:48 +08:00
nojhan
ba344be51f
fix show-whitespace: add missing NNBSP character
...
- Add the Narrow No-Break SPace (0x202F, NNBSP) to the list of handled
spaces in the show-whitespace highlighter.
- Do not add an aditional option, just handle it like NBSP, with the same highlight character.
2021-03-31 15:28:23 +02:00
Maxime Coste
4be6df9d02
Parse more data at each fifo buffer read
2021-03-31 17:19:20 +11:00
Maxime Coste
da9a196fa0
Profile individual command runtime
...
Different approach than the one suggested by eraserhd
Closes $4095
2021-03-31 17:17:22 +11:00
Maxime Coste
d1e19727ff
Tweak completion quoting behaviour once again
...
Quote by wrapping in quotes if we are replacing the whole token,
using backspaces if the completion only adds to it.
This ensure that the inserted completion will be correctly parsed
once validated.
Fixes #4121
2021-03-31 17:15:31 +11:00
hss
49f5917125
Rename separator-cursor to cursor-separator
2021-03-22 19:38:33 -04:00
hss
3e539c963e
Don't use optionals for storing active separator string
2021-03-21 19:52:19 -04:00
hss
07e2b03c11
Only use separator-cursor for the first line number in a wrapped line
2021-03-20 21:53:31 -04:00
hss
73ecd3356f
Compare column_length of line-number separators
2021-03-20 21:33:53 -04:00
hss
8df2bb8bd5
Use optionals more wisely in line-numbers
2021-03-20 02:48:33 -04:00
hss
f16783b0a8
line-number: Add option to use a different separator on the current line
2021-03-19 23:23:01 -04:00
Maxime Coste
545db22ae4
Fix typo in file.cc
2021-03-12 09:10:19 +11:00
Maxime Coste
8e463e63ea
Do not use replace write method when writing to a non-regular file
...
Fixes #4098
2021-03-11 20:48:44 +11:00
Maxime Coste
d5282735f2
Always redraw after getting some user input
2021-03-11 09:08:35 +11:00
Maxime Coste
4a59018dcd
Do not select on non-urgent fd when handling only urgent events
...
This avoids 100% CPU usage when we have pending fifo input while running
a shell process, as we will not end-up busy looping in pselect but not
reading the available data due to being only processing urgent events.
2021-03-11 09:02:02 +11:00
Maxime Coste
0b234f7f67
Merge remote-tracking branch 'eraserhd/fifo-performance-fixes'
2021-03-11 07:49:20 +11:00
Jason Felice
d3824f3211
Use inplace_merge() for ranges
2021-03-09 10:13:31 -05:00
Jason Felice
c9be6730f6
Binary search for first range to change
2021-03-08 16:55:43 -05:00
Maxime Coste
f6c8ebc4d0
Refactor pipe reader/writer
2021-03-04 20:59:15 +11:00
Maxime Coste
da80a8cf6a
Raise ThreadedVM initial thread capacity to 16
...
Threads are 4 bytes, an initial capacity of 4 led to allocating 16
bytes, raising that to 64 bytes seems quite reasonable.
2021-03-03 20:51:24 +11:00
Maxime Coste
f4a639e078
Re-use the Regex VM when completing filenames to reduce allocations
...
By re-using the VM we avoid re-allocating the threads and saves
buffers over and over again. We can just re-use the ones from the
previous matching.
2021-03-03 20:33:02 +11:00
Maxime Coste
eb292f1f00
Re-tweak command name completion behaviour
...
It turns out the fix for #4061 was breaking auto-selection with
space of command names.
2021-03-02 20:20:58 +11:00
Jacob Collins
9dfab2f1fb
Follow ECMA specification for regex whitespace
...
Changes the behaviour of the \s and \h character classes to include
all WhiteSpace and LineTerminator characters defined in the ECMA
specification.
- <https://262.ecma-international.org/11.0/#sec-white-space >
- <https://262.ecma-international.org/11.0/#sec-line-terminators >
- <https://262.ecma-international.org/11.0/#sec-characterclassescape >
Fixes #4034
2021-02-25 11:03:18 -05:00
Maxime Coste
7c321e121d
Tweak requoting behaviour
...
Only requote when completion is replacing the whole token
Do not requote command names as they should not require it, tag
them as quoted.
Fixes #4061
2021-02-25 21:04:06 +11:00
Maxime Coste
978dfe4bdf
Fix splitting display line in front of a replaced range
...
When a replaced buffer range atom was starting exactly at the
location we wanted to split onto the code would split *after*
that atom instead of before.
Fixes #4052
2021-02-16 12:35:25 +11:00
Maxime Coste
fa3aa3c1a3
Add + key to duplicate selections and <a-+> to merge overlapping ones
...
This is an experiment and might get reverted if overlapping selections
prove too cumbersome.
Fixes #4041
2021-02-15 09:01:14 +11:00
Maxime Coste
e6905552cf
Fix CSI u support for escape key
2021-02-11 20:23:08 +11:00
Maxime Coste
26cf5cd1dc
Fix resizing strings to -1 length
...
Fixes #4042
2021-02-01 20:16:30 +11:00
Maxime Coste
7751c7e188
Check XDG_RUNTIME_DIR owner before creating session directory
...
This avoids an issue when using `su` and running Kakoune which creates
a session directory owned by root and prevents the user from creating
more sessions.
2021-01-26 09:28:24 +11:00
Maxime Coste
74fc52b3de
Write to stderr if execve fails
...
This should be rare but should not happen silently, this way it will
show in the parent process debug buffer.
2021-01-22 17:22:15 +11:00
Maxime Coste
04a64e6e29
Fix performance issue in show-matching highlighter on big buffers
...
Stop searching for the matching character when getting out of view
instead of going until the buffer edge.
2021-01-22 17:21:59 +11:00
Maxime Coste
0fd5a9d995
Slight code cleanup in generate_env
2021-01-22 17:21:59 +11:00
Tim Allen
a7ed1f03fb
Distinguish <c-h> and Backspace on terminals where that is possible.
...
Different terminals send different codes to indicate backspace, usually one of
\x08 or \x7f, so Kakoune blindly treated both as backspace. However, a given
terminal is only likely to use one of those, and mnemonic control codes like
<c-h> are a precious resource so we should endeavour to keep backspace and
<c-h> separate when we can. Luckily, termios tells us what code our terminal is
currently using, and Kakoune already reads the information at startup, so we can
just use that information.
Thanks to @krobelus for figuring out the C++ syntax required.
Fixes #3863 .
2021-01-15 18:49:53 +11:00
Maxime Coste
df7b33bc7b
Merge branch 'master' of http://github.com/Woolworths/kakoune
2021-01-04 09:50:45 +11:00
Maxime Coste
49d1d4666d
Merge remote-tracking branch 'cole-h/trim-only-one-newline'
2021-01-04 09:45:53 +11:00
Cole Helbling
7cde146807
command_manager: only remove last eol in %sh{} expansions
...
This makes it possible to keep significant EOL in shell expansions (e.g.
for use with clipboard helpers).
2021-01-02 19:53:40 -08:00
Maxime Coste
f1e45579a6
Merge remote-tracking branch 'jimt/master'
2021-01-03 11:15:11 +11:00
Maxime Coste
a0c23ccb72
Add missing limits includes
...
Fixes #4003
2021-01-03 10:58:09 +11:00
Jim Tittsler
a7fb4c042a
Fix message typo
2021-01-01 15:15:27 +09:00
Maxime Coste
958a943121
Avoid non-POSIX ln -r switch
...
Fixes #3985
2020-12-25 12:07:13 +11:00
Cole Helbling
266e388c6b
commands: add "registers" subcommand to :debug
...
This prints all non-empty registers and their value(s) to the `*debug*`
buffer.
2020-12-23 14:22:44 -08:00
Jean Abed
650a7143be
remove unused variable changes_tracker
2020-12-22 21:31:11 +11:00
Maxime Coste
e50b5fe137
Add Timer::disable() to be more explicit than set_next_date(TimePoint::max())
2020-12-20 11:32:15 +11:00
Maxime Coste
74c337df5d
Add a libexec/ directory and use it to find the kak command
...
Add that libexec directory to the PATH instead of the current kak
binary directory to avoid impacting other commands.
The libexec directory currently only contains a symlink back to
the Kakoune binary.
2020-12-09 09:13:45 +11:00
Maxime Coste
489404befa
Merge remote-tracking branch 'occivink/no-sel-remaining-alt-space'
2020-12-05 08:47:04 +11:00
Olivier Perret
f2fb5a3214
Throw no_selections_remaining when using <a-space>
...
This makes it possible to use the mechanism introduced by 91386a53
2020-12-03 21:42:14 +01:00
Maxime Coste
95606d2336
Avoid potential use after free of the mode name
...
This can be an issue with NextKey that now does not have a static
mode name.
2020-12-01 21:56:55 +11:00
Maxime Coste
586f79c30d
Ensure InputModes are kept alive during their idle logic
...
Various paths can run arbitrary commands (callbacks, hooks) which
could lead to the InputMode being popped off the mode stack, but
contrarily to the on_key method, we had no guarantees to be kept
alive.
Add a keep_alive RefPtr to this to ensure the mode survives till
the end.
Fixes #3915
2020-12-01 20:00:38 +11:00
Maxime Coste
a8d43ce6ce
Merge remote-tracking branch 'AndrewVos/ignore-indent-on-line-completion'
2020-11-22 16:52:37 +11:00
Andrew Vos
f3f3f80624
Ignore indent when completing lines
...
When doing line completion, we previously used to not complete the line
if it had different indent to the potential completion.
This commit changes the behaviour to ignore indentation when completing lines.
2020-11-20 20:00:46 +00:00