= Changelog

This changelog contains major and/or breaking changes to Kakoune between
released versions.

== Development version

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 renames `auto_complete` and is
  now a `flags(insert|prompt)` option, allowing more granular
  configuration of when the completions should be displayed
  automatically.

== Kakoune 2018.04.13

First official Kakoune release.