home/doc/pages/changelog.asciidoc
2019-06-23 12:04:21 +10:00

161 lines
5.9 KiB
Plaintext

= Changelog
This changelog contains major and/or breaking changes to Kakoune between
released versions.
== Development version
* Re-organized bundled script files directory hierarchy.
* Introduced helpers to write/read from file in scripts with
`%file{...}` expansion and `echo -to-file <filename>`.
* Added `ClientCreate` and `ClientClose` hooks
* `edit -scratch` with no buffer name will create a new
scratch buffer with a unique autogenerated name.
* `info -placement` is now `info -style` and supports
`menu` and `modal` additional styles.
* `completions` option type `docstring` are now arbitrary
kakoune commands that are run on item select.
* `InsertCompletionSelect` hook has been removed as
`completions` commands now provides a similar feature.
* Introduced a module system using the `provide-module` and
`require-module` commands that allows for lazily loading language
support files with dependency resolution.
* Added a new hook `ModuleLoad` which is run when a module is loaded,
allowing for module specific configuration.
* Shell quoting of lists is not automatic anymore, `$kak_quoted_...`
makes it opt-in, and works for all option types.
== Kakoune 2019.01.20
* `auto_complete` has been renamed to `autocomplete` for more
consistency.
* Start of a builtin key parser in the ncurses ui bypassing
the ncurses one. Can be favored by setting the ui option
`ncurses_builtin_key_parser` to `true`.
* Right clicks extend the current selection, the control modifier allows
merging all the selections after extension.
* The `regex` highlighter now supports named capture groups to
ease readability.
== Kakoune 2018.10.27
* `remove-hooks` <group> argument is now a regex and removes all
hooks whose group matches it.
* `exclusive` face attribute (e) has been replaced with more
granular `final foreground` (f), `final background` (g), and `final
attributes` (a), or the three combined as `final` (F). Semantics
changed slightly as those attributes apply to the existing face as
well (a final face will not get modified by a following face if that
following face does not have the final attribute itself.
* `<a-m>` aka "merge consecutive selections" has been moved to `<a-_>`.
The new `<a-m>` and `<a-M>` are now symmetrical with `m` and `M`.
Those commands select (or extend) to the matching char backwards.
* `define-command` switches `-shell-completion` and `-shell-candidates`
have been renamed to `-shell-script-completion` and
`-shell-script-candidates` to make way for a new `-shell-completion`
which completes like the shell (shell command name then filename).
* `asciidoc` is not a dependency anymore, the last file that requiered
it (Kakoune's manpage) has been converted to troff format.
== Kakoune 2018.09.04
This version contains a significant overhaul of various Kakoune
features that can break user configuration. This was a necessary
change to make Kakoune command model cleaner and more robust.
* `%sh{...}` strings are not reparsed automatically anymore, they need
to go through an explicit `evaluate-commands`
* The `-allow-override` switch from `define-command` has been renamed
`-override`.
* The search prompt uses buffer word completion so that fuzzy completion
can be used to quickly search for a buffer word.
* The `wrap` highlighter can accept a new `-marker <marker_text>` switch.
* The command line syntax has changed to support robust escaping.
- `%sh{...}` is not expanded to multiple tokens automatically anymore,
to evaluate its output as multiple tokens/commands, use the
`evaluate-commands` command:
-------------------------------------------------------------
evaluate-commands %sh{ echo "first command; second command" }
-------------------------------------------------------------
- Escaping of `'` in `'...'` and `"` and `%` in `"..."` strings is done
by doubling up (`''`, `""` and `%%`) instead of using a backslash
- Bare words escaping has been tweaked.
See <<command-parsing#,`:doc command-parsing`>>.
* Various lists (options, registers...) in Kakoune are now written using
the command line syntax:
- `set-register` now take an arbitrary number of parameters and sets
the register to multiple strings. `%reg` expands to a list of strings.
- the `$kak_reg_*` environment variable is now a list, `$kak_main_reg_*`
provides the previous behaviour.
- `%opt` expands list options as list of strings.
- selection descs are whitespaces separated instead of `:` separated
* Highlighters syntax has changed to permit explicit naming and remove
highlighter specific name parameters (such as for the group highlighter)
`add-highlighter <path>/<name> <type> <params>` is the new syntax.
* Regions highlighters have been overhauled and are now specified with
a sequence of commands instead of a single one:
------------------------------------------------------------------
add-highlighter <path>/<name> regions
add-highlighter <path>/<name>/<region name> region <begin> <end> \
<type> <params>
------------------------------------------------------------------
The recursion regex is opt-in through a `-recurse <recurse>` flag.
They also are not necessarily groups anymore, a region can directly
apply any other highlighter
See <<highlighters#,`:doc highlighters`>>
* Highlighter type names have been unified, types that used `_` as
word separators, such as `show_whitespaces` are now using `-`
(`show-whitespace`).
* `a` on end of line is not treated specially anymore, it will start
inserting on the next character, which will be the first character
of the next line.
* `autoshowcompl` options has been renamed `auto_complete` and is
now a `flags(insert|prompt)` option, allowing more granular
configuration of when the completions should be displayed
automatically.
* Prompt editing shortcuts have been changed to match readline.
== Kakoune 2018.04.13
First official Kakoune release.