| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Co-authored-by: Johannes Altmanninger <aclopte@gmail.com>
|
|
|
|
Moving across history moved to <c-j>/<c-k> to keep <a-u>/<a-U>
for selection undo/redo
This reverts commit e0d33f51b36c9f0be7ae2467dab455d211bbf561.
|
|
|
|
This switch makes show-matching fallback to the character preceeding
the cursor if the character under the cursor is not a matching
character, which should make show-matching more useful in insert mode.
|
|
The current implementation only does this during regex operations,
but should be extensible to other operations that might take a long
time by regularly calling EventManager::handle_urgent_events().
|
|
|
|
%exp{...} just expands its content the same way double quoted strings
do, but using a named expansion type makes it possible to use the
more quoting mechanism to avoid quoting hell.
|
|
Text pasted into Kakoune's normal mode is interpreted as command
sequence, which is probably never what the user wants. Text
pasted during insert mode will be inserted fine but may trigger
auto-indentation hooks which is likely not what users want.
Bracketed paste is pair of escape codes sent by terminals that allow
applications to distinguish between pasted text and typed text.
Let's use this feature to always insert pasted text verbatim, skipping
keymap lookup and the InsertChar hook. In future, we could add a
dedicated Paste hook.
We need to make a decision on whether to paste before or after the
selection. I chose "before" because that's what I'm used to.
TerminalUI::set_on_key has
EventManager::instance().force_signal(0);
I'm not sure if we want the same for TerminalUI::set_on_paste?
I assume it doesn't matter because they are always called in tandem.
Closes #2465
|
|
|
|
Including this here because grandparent parent commit broke completions
for "edit -fifo".
|
|
Some plugins (*cough* kak-lsp) and help texts tend to have immensely long content
in a single line. This generates info boxes that span the entire terminal width.
This is made especially worse on widescreen monitors or at small text size.
This grants user control over how wide these boxes are.
I deliberately avoid pushing this change to `kak-lsp` because it's not the only
plugin that this could help--see the `hook` help text for an example of this
problem in vanilla Kakoune. I would also suggest that since this is a rendering
concern, it be handled by the terminal rendering logic.
|
|
|
|
Pass the first buffer on the the command line explicitely to client
creation. This ensure the buffer list matches the command line, which
makes buffer-next/buffer-previous a bit more useful.
Fixes #2705
|
|
|
|
|
|
|
|
Always start with full buffer lines and trim the display buffer at
the very end, treat non-range display atoms as non-trimable in that
case and keep track of how many columns are occupied by "widgets"
such as line numbers or flags.
Fixes #4659
|
|
Besides being redundant, it is easy to press esc by mistake/habit
while recording a macro.
|
|
|
|
`x` is often criticized as hard to predict due to its slightly complex
behaviour of selecting next line if the current one is fully selected.
Change `x` to use the previous `<a-x>` behaviour, and change `<a-x>` to
trim to fully selected lines as `<a-X>` did.
Adapt existing indentation script to the new behaviour
|
|
|
|
This makes it possible to change command completion in hooks and
paves the way to more flexibility in how custom commands can be
completed
|
|
This will unfortunately break some use case which will require
using wrapper scripts to add the necessary newline. It is however
harder to do the contrary, and it makes a lot of other use case
possible, such as checksuming.
Fixes #3669
|
|
Only ui type Terminal is intended to be a user interactive session.
If your ui type is not Terminal, don't worry about making
the tty your stdin if fd 0 is not a tty.
This allows json-rpc commands sent via stdin to be acted up rather
than sent to a fifo (which is the default behavior for kakoune).
Does not change the behavior for Terminal ui sessions
|
|
|
|
|
|
ARM uses @ as a comment character, so %progbits must be
used in place of @progbits here. This change fixes the
build on armv7 FreeBSD 13.0.
Fixes mawww/kakoune/issues#4385
See also https://bugs.freebsd.org/259434
|
|
terminal_synchronized ui_option now also controls this behaviour,
update out of date documentation for ui_options as well.
As discussed in #4317
|
|
It seems nobody uses it, and it is not plugged through anyway.
Closes #2642
|
|
|
|
Make readonly specified on startup only apply to files provided on
the command line, and use the correct scope in `edit -readonly`
Fixes #4278
|
|
They mostly rely on assertions that are disabled in those builds
anyway.
|
|
|
|
|
|
|
|
Fixes #3974
|
|
|
|
The real technical limit is with lines bigger than 2 GiB and buffers
with more than 2 Gi lines, refactor buffer loading to make it possible
to load those files.
Fix an overflow with the hash_data function at the same time
|
|
Minuscule things like these can make a huge difference if you are
a first time user of a new text editor.
|
|
|
|
When the `kill` command is called in the `-E` CLI flag, the resulting
exception is not caught and crashes the server.
This commit allows the server to terminate cleanly.
Since `KakEnd` hooks also need to be executed should the user run a
command like `kak -E 'kill 0'`, the execution of `KakBegin` hooks is
now performed *before* the command provided in `-E` is executed. The
documentation for `KakBegin` (executed after the `-E` command prior to
this commit) consequently becomes more truthful, as it states:
KakBegin session name
kakoune has started, this hook is called just after
reading the user configuration files
Fixes #3972
|
|
`-atomic` becomes `-method replace` and `-method overwrite` is now
supported explicitely instead of only available through the
writemethod option.
Fixes #3827
|
|
|
|
Because the server will out-live that client's disconnection it
is still ok to have modified buffers, the server will complain
on `kill`.
Fixes #3801
|
|
`set -remove ...` will remove from the current option value, substracting
from int, removing elements from vectors and maps.
|
|
|