Kakoune Versions Save

mawww's experiment for a better code editor

v2019.07.01

4 years ago
  • 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 ModuleLoaded which is run after 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.

  • Lower case function key syntax is not accepted anymore, <f1> should be converted to <F1>.

v2019.01.20

5 years ago
  • 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.

v2018.10.27

5 years ago
  • remove-hooks 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.

v2018.09.04

5 years ago

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 :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 :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.

v2018.04.13

6 years ago

First official Kakoune release, releases will track the git master, and are expected to be done at regular intervals.

v20180409

6 years ago

This is an experimental release of Kakoune, to validate the release and versioning design, expect a properly blessed release in a few days if this gets validated.