Table of Contents

Change Log

All notable changes to the ModalEdit extension will be documented in this file.

Version 1.0

  • Initial release

Version 1.1

  • Added selectTillMatch argument to command.
  • Editor does not automatically revert back to normal mode when changing window.

Version 1.2

  • Added startInNormalMode setting, resolving issue #1

Version 1.3

  • Incremental search now returns to insert mode, if it was invoked from there #4
  • Added new command modaledit.typeNormalKeys which can be used to "call" key bindings. Also fixes issue #3
  • Added new argument typeAfterAccept to command. This invokes normal mode key bindings (using modaledit.typeNormalKeys) after successful search. The argument can be used to enter insert mode, or clear selection after search, for example.

Version 1.4

  • Fixed few issues with command.
  • You can use __selection variable in JS expressions to access currently selected text.

Version 1.5

Update that was sparked by issue #6. Contains multiple new features:

  • repeat attribute added to commands with parameters.
  • Keymaps can contain key ranges.
  • Support for recursive keymaps.
  • New __keySequence variable added to JS expressions. Contains the key sequence that was used to invoke a command.
  • New property help added to keymaps. The help string is shown in the status bar when the associated keymap is active.
  • Added ModalEdit log to output window.
  • Semi-large refactoring of type definitions in the actions module.

Version 1.6

  • New command modaledit.selectBetween selects text between two delimiter strings. Especially useful when combined with the key ranges and recursive keymaps introduced in version 1.5.
  • Added a shorter alias __keys to the __keySequence variable available in JS expressions.

Version 1.7

Two "repeat" related bigger improvements:

  • New modaledit.repeatLastChange command emulates Vim's dot . command quite faithfully.
  • The repeat property used in context with commands taking arguments can now also contain a JS expression that returns a boolean value. In this case, the value is used as a condition that tells if the command should be repeated. The command is repeated as long as the expression returns a truthy value.

And some minor changes:

  • New variable __rkeys available for use in JS expressions. It contains the keys pressed to invoke a command in reverse order. This is handy if you need to access the last keys in the sequence. They are conveniently the first ones in __rkeys.
  • Removed unneeded images from the extension package. The package is now 3 MBs smaller.