Change Log

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

Version 1.0

Version 1.1

Version 1.2

Version 1.3

Version 1.4

Version 1.5

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

Version 1.6

Version 1.7

Two "repeat" related bigger improvements:

And some minor changes:

Version 2.0

Major release containing lot of new features and improvements.

Preset keybindings

It is possible now to import keybindings through the modaledit.importPresets command. Vim presets are included in the extension (#7). The presets can be also defined as JavaScript (#9). They are evaluated or "compiled" to JSON when import is run.

Search command has several new features:

Cursor and Status Bar Configuration

You can now define a different cursor shape when selection is active in normal mode using the selectCursorStyle. Also, you can change the status bar text shown in each mode. It is possible to include icons in the status bar, if you like. This should be sufficient to close issue #13

A secondary status bar was added to show the keys that have been pressed so far. It also shows help messages defined in bindings and warnings from the search command.

Bookmark Improvements

There is a new command modaledit.showBookmarks that shows all the defined bookmarks. You can jump to any of them by selecting one in the list. Also, the bookmark can now be any string instead of a number. This actually worked previously, but now documentation about this is updated too.

New parameter select in the modaledit.goToBookmark command extends selection till the bookmark instead of putting the cursor on it. This makes it possible to use bookmarks as selection scoping mechanism ร  la Vim.

Changes Concerning JS Expressions

New variables __cmd and __rcmd can be used in JS expressions. They contain the key sequence that was pressed as a string. They correspond to expressions:

__cmd = __keys.join('')
__rcmd = __rkeys.join('')

In many cases, these variables allow you to write expressions that inspect the key sequence in a shorter form.

All the variants of __keys or __keySequence variables now contain the actual key sequence that was used to invoke the command. Previously they contained the sequence that the user pressed. Since you can also invoke key commands programmatically using modaledit.typeNormalKeys, this made implementing reusable commands more difficult. You could not rely on the key sequence to correspond to the path to the keybinding you were defining. Now you can rely that the __keys variable and its variants contain the path to the binding, which should make sure that commands work correctly when invoked through modaledit.typeNormalKeys.

Other Changes

Version 2.1

Two new commands (courtesy of David Little):

Version 2.2