mawww's experiment for a better code editor
This is a bug fix release
<a-u>
and <a-U>
now undo/redo selection changes; the previous meaning of moving in history tree has been moved to <c-j>
and <c-k>
%exp{...}
expansions provide flexible quoting for expanded strings (as double quoted strings)
<c-g>
cancels the current operation and goes back to the main event loop, this provides an escape hatch when Kakoune seems to hang due to a costly operation
show-matching -previous
highlighter will fall back onto the character preceeding the cursor
complete-command
to specify and change how a command is completed
p
, P
, !
and <a-!>
commands now select the inserted text
x
now just extends the selection to contain full lines (as <a-x>
did) <a-x>
trims partial lines from the selection (as <a-X>
did)
User mappings is now bound to <space>
while keeping/removing main selection moved to ,
and <a-,>
Prompt history registers %reg{colon}
, %reg{slash}
and %reg{pipe}
now have reverse chronological order
Executing user mode mappings no longer adds to prompt history registers.
Bug fixes after feedback from 2021.10.28
g
and v
do not auto lower case the next key, so GL
needs to be manually mapped to Gl
for example.
Fix flickering issues on some terminals such as the linux console
command and response fifo support
Shell expansions only trim the last trailing newline instead of all of them to make is possible to losslessly pass text through %sh{...}
.
set-option -remove
support for subtracting/removing from option values
Menu completions such as command name completion are now auto-inserted on space
write -atomic
was replaced with write -method [replace|overwrite]
to make both write methods available explicitly
write <filename>
will fail if the given filename already exists and is a regular file. Use the -force
switch to override that behaviour.
ncurses was replaced with a custom terminal escape sequence backend, ncurses is not a dependency anymore.
This is mostly a bugfix release.
-d
switch) does not fork anymore.Introduce User
hook support.
The bold
and italic
faces are no longer built-in. Highlighters
are expected to use face attributes (+b
and +i
, respectively) to
decorate text.
The lint-enable
command no longer needs to be called to display
linting errors. The lint-disable
command was renamed into
lint-hide-diagnostics
.
The +<length>
part of a range-specs
highlighter consistently
refers to the length of the target range.
clients stdin is transferred to the server, making it possible
to pipe into kak -c <session>
Faces can have an alpha channel, specified using the
rgba:RRGGBBAA
format.
replace-ranges highlighter now support empty and multi-lines ranges
%val{...}
now expands to list of strings, $kak_quoted_...
now work
as expected with these.
*SetOption
hooks filter string will contain a value only for options
of int/str/bool types to avoid performance issue with generating those
on more complex option types.
Mostly a bug fix release for various issues in v2019.12.10
Expose history tree through $kak_history
and $kak_uncommitted_modifications
InsertCompletionHide
parameter is the list of inserted ranges
Arrow keys and <home>
, <end>
are not normal mode commands anymore but default key mappings.
ModeChange
hook parameter now takes push:
or pop:
prefix, InsertBegin
, InsertEnd
, NormalBegin
and NormalEnd
were removed.
-verbatim
switch in evaluate-commands
for perfect command forwarding to another context.
WrapMarker
face used by wrap -marker
highlighter
info
supports markup with the -markup
switch
rename-buffer
gained -file
and -scratch
switches to support converting buffer types.