All notable changes to the "emacs-mcx" extension will be documented in this file.
- Internal package updates.
- Modify
M-s o
andC-i
keybindings, #1916. - Internal package updates.
- Assign
M-s o
to the Quick Search command, which is like Emacs' occur, #1912.
- The package description, #1913.
- Delete invalid keybindings, #1911.
tabToTabStop
behavior in offside-rule languages such as Python is changed to be more like the original Emacs, #1911.
- Cursor position maintenance, #1889.
Skipped.
Skipped.
- Fix the behavior of
killLine
andkillRegion
in the rect-mode, #1817.
- Internal fix on the event handler interrupting the appending kills, #1818
- Kill commands cancel the mark-mode and the rectangle-mark-mode, #1816
- Rename text register commands and refactor their implementations, #1815
delete-horizontal-space
, #1812.
emacs-mcx.paredit.parentheses
setting to configure parentheses characters, #1802.
- Revert the change in
0.54.0
, #1768.
- Override the default value of
editor.find.seedSearchStringFromSelection
to"never"
to make the behavior ofC-s
andC-r
consistent with the original Emacs, #1766.
emacs-mcx.lineMoveVisual
, #1761, by @DrScKAWAMOTO.
- Refactoring, #1750, #1751.
- Command handlers return promises, #1753.
emacs-mcx.executeCommands
is removed. Use the built-inrunCommands
instead which has been available since VSCode 1.77, #1749.
- Implement
delete-indentation
as a command, #1748.
isearch-exit
behavior keeping the mark-mode selections, #1745.- Refactoring, #1744, #1746.
- Remove an unnecessary file from the VSIX package, #1738
- Refactoring, #1742, #1743
- Emacs-like tab, #1735.
C-m
(new-line) with a prefix argument pushes a single edit history, #1733.
- Set the activation event as "onStartupFinished", #1720.
Skipped due to an error.
- Stop revealing the cursor when switching text editors, #1721.
- Stop cursor position modification at switching text editors if the text editor is newly opened, #1722.
- Bugfix for text registers k, y, d, o, c, t, and p not working, #1679.
- Text registers, #1643, by @justinhopkins.
- Assign
C-s
andC-r
tonotebook.find
, #1659.
- The editor switcher waits for selection updates triggered by other functions such as the code jump before synchronizing its own cursor positions so that it doesn't conflict with such other features, #1661.
- Share the mark-mode state and the mark anchor positions among all the editors on the same document, #1648.
Experimental pre-release.
Skipped due to an error.
- Internal updates.
- Internal updates.
Skipped due to an error.
- Keybindings JSON generator, #1622.
paredit-kill
, #1425, by @dandavison.
- Paste command when there is no entry in the kill ring, #1612.
- Assign
(C|M)-<right>
and(C|M)-<left>
toforwardWord
andbackwardWord
in place ofright-word
andleft-word
which work likeforward-word
andbackward-word
in left-to-right languages (ref: https://www.gnu.org/software/emacs/manual/html_node/emacs/Moving-Point.html#index-C_002dRIGHT), #1479. - Assign
C-<down>
andC-<up>
toforwardParagraph
andbackwardParagraph
, #1479.
scrollUpCommand
andscrollDownCommand
with a prefix argument works in the same manner as the original Emacs, #1471.
- Remove unnecessary files from the vsix package, #1458.
- Manage different editor states for different cells in a single Jupyter notebook, #1455.
- Show the extension commands in the command palette, #550, by @clearfeld.
- Internal package updates.
recenterTopBottom
ignores the anchor cursor, #1396.
- Automatically reload the configuration when changed, #1311.
- Dispose unused resources, #1307, #1309.
- Find methods automatically reload the
editor.find.seedSearchStringFromSelection
config when changed, #1310. - Set noop command to
C-g
withsideBarFocus
context, #1314.
- Fix find commands to respect the
editor.find.seedSearchStringFromSelection
config, #1305.
- Internal fix, #1277, #1298, #1304.
- Set the required VSCode version as
^1.63.0
, #1303.
- next/previous buffer by @loadx, #1292.
- An error on
isearch-exit
, #1272. - Restore the find widget string, #1271.
- Internal fix, #1258, #1259.
emacs-mcx.enableDigitArgument
config, #1256.- Regexp search and replace commands, #1257.
- Release process, #1254.
M--
(negative-argument) and-
afterC-u
, #1204.
emacs-mcx.paredit.markSexp
supports a negative prefix argument, #1206.- Internal package updates.
- Fix README about
editor.find.seedSearchStringFromSelection
, #1252.
M-<number>
(digit-argument), #1199.
- Assign
C-g
to all the commands which are assigned to "escape" by default, #1198.
emacs-mcx.paredit.backwardKillSexp
, #1175.emacs-mcx.paredit.markSexp
, #1181.
- Drop
C-x C-k
, #1180. - Cursor positions after
kill-region
in rect-mark-mode, #1187.
- Assign
C-i
to TAB, #1151.
emacs-mcx.executeCommandWithPrefixArgument
command, #1150.
- Internal package updates.
C-a
andC-e
move the cursor to the beginning or the end of the entire, not wrapped line, whenemacs-mcx.strictEmacsMove
flag is set, #1104.
- Release flow.
- Reset active region(s) on set mark when non-empty, #1089. @GregoryBL
- Reset viewport to search start on cancel, #1090. @GregoryBL
- Set empty strings to the command field to disable the keybindings instead of leaving the field undefined, #1081.
C-x r t
(string-rectangle), #1049.
- Internal package updates and fixes.
- Internal package updates including
vsce
.
- Remove
web
andworkspace
from theextensionKind
field and set onlyui
, #1002. @sandy081
- VSCode Web support.
- Revert VSCode upgrade in 0.33.1, #995.
- Add "browser" field in
package.json
, #969.
- Add "web" to "extensionKind" field in
package.json
, #967.
- Dependencies updates.
- Upgrade VSCode compatibility to 1.59.0.
C-x r p
as an alternative toC-x r t
. See #924 for the details. #923. @shengofsun
- (Experimental)
C-x <SPC>
(rectangle-mark-mode), #819. - Rectangle kill, copy, delete and yank commands (
C-x r k
,C-x r M-w
,C-x r d
,C-x r y
), #825. - open-rectangle command (
C-x r o
), #845. - clear-rectangle command (
C-x r c
), #844.
- Fix beginning-of-buffer and end-of-buffer not to push mark if mark-mode has already been started, #839.
- Use
isearchExit
withthen
arg instead ofexecuteCommands
to quit the find widget with key press.
C-x s
forworkbench.action.files.saveAll
, #770.
- Revealing cursor behaviors are fixed for some commands (forward/backward-char/paragraph), #766, #768.
- Promise execution of
executeCommands
command is fixed, #767. - When-clause conditions of
C-s
andC-r
are changed fromfindWidgetVisible
tofindInputFocussed
.
- Disable Emacs-like cursor movements when the find or replace widgets are focused on Windows, because the cursor on the OS native UIs cannot be controlled by extensions.
- Add
C-x C-c
.
- Internal fixes by @a-stewart.
- Fix yank to set the mark at the beginning of the inserted text.
- Fix i-search to add the original value of point to the mark ring when exiting.
- Fix beginning-of-buffer and end-of-buffer to set the mark.
emacs-mcx.cursorMoveOnFindWidget
option.
C-@
for mark andC-_
for undo.
- Change the maintainer's username.
useMetaPrefixCtrlLeftBracket
option to usectrl+[
as a meta key.
- Internal package updates.
- Release steps are automated by GitHub actions
- Keybindings are ignored on the find widget during IME composition.
C-m
to pick the selected item in the quick open widget.
- Internal implementation has been fixed to dispose resources such as registered event listeners.
yank
andyankPop
are fixed to work in the same way as VSCode'spaste
command, in the case of multi-cursors in a single line.
yank
andyankPop
are fixed to work with auto formatting on paste.
C-p
andC-n
on the quick open widget are fixed to only select items but not navigate.- Kill commands are fixed to reveal the cursor after execution.
- Bug fix to invoke features such as auto-completion reacting to character inputs.
C-u
(universal-argument) is reimplemented not to use VSCode API'stype
command by default.
M-\
is assigned to IntelliSense suggestion. @vaelen
- Allow navigation within query replace prompt. @ANorwell
- Internal package updates.
M-m
(back-to-indentation
)C-M-k
(kill-sexp
)
- Use VS Code clipboard API instead of clipboardy.
- Add "workspace" to "extensionKind" manifest to work in remote.
- Fix not to close the find widget by Enter key if replace input is focussed.
- Internal package updates.
- Internal fix and updating dependencies.
- Fix
killWord
andbackwardKillWord
to respecteditor.wordSeparators
config.
emacs-mcx.disableOverridingTypeCommand
option to disable overridingtype
command.
- Keybindings starting with
C-x
are still disabled in the terminals, but enabled in other focuses such as sidebar. C-p
andC-n
are fixed to work as cursor movement when intelli-sense is visible the number of whose items is just one.
- Keybindings starting with
C-x
are disabled in integrated terminals. @youyuanwu
- Implement the Mark Ring and its related commands:
set-mark-command
is updated to push mark positions to the Mark Ring.exchange-point-and-mark
is added.
- Assign
Enter
key to close the find widget, which is like the original Emacs' behavior. killWholeLine
config option.
- Fix
kill
andkill-whole-line
to work based on active cursors, not anchors. - Async commands behavior including kill, yank, and type.
- Fix
M-w
behavior when the find widget is visible. @youyuanwu
- Internal package updates.
- Fix
forwardSexp
andbackwardSexp
to reveal the primary active cursor. - Internal fix of Configuration and Message implementations.
C-x b
is mapped toworkbench.action.showAllEditorsByRecentlyUsed
command, whose behavior is closer to the original Emacs'. @joeshaw
- Internal fix to call clipboardy asynchronously.
- Internal fix to omit unnecessary files from the bundle.
- Fix a bug at bundling to make clipboardy work on Linux.
- Fix internally keybinding definitions to be generated by a script.
- Fix
useMetaPrefixMacCmd
option to enable only the Command key to work as a meta key and disable the Alt key.
- Fix a bug at bundling to make clipboardy work on Windows.
- Introduce Webpack to bundle the source code to improve performance and reduce package size.
useMetaPrefixMacCmd
option to use Command (⌘) key as a meta key. @flindeberg
useMetaPrefixEscape
option to use ESC key as a meta key. @yunkya2
- Fix
C-b
andC-Enter
behavior with the find/replace widget. @yunkya2
- Fix
C-s
(isearch-forward) andC-r
(isearch-backward) to start searching immediately after the find widget appears. @joeshaw
- Add
M-{
(backward-paragraph) andM-}
(forward-paragraph). @icub3d
- Add
M-c
(capitalize-word). @yunkya2
- Internal changes including code formatting.
- Internal package updates.
- Add
M-^
(delete-indentation). @aki77
- Update vulnerable dependencies for security.
- Strictly emacs-like behaviors of
C-a
,C-v
andM-v
. @joeshaw - Config to switch between strictly emacs-line behaviors and VSCode's native ones.
- Correct behavior of
C-v
andM-v
with a prefix argument. @GuyShane - Document
C-j
conflict and provide replacementC-x j
. @jedbrown
- Set extensionKind to support Remote Development. @limon
- Logging system is introduced to some code especially around prefix argument functionality.
- Logging levels are configurable (
emacs-mcx.debug.*
).
- The maximum number of kill ring entries is now configurable (
emacs-mcx.killRingMax
).
- A bug at yank of empty string is fixed.
kill-word
andbackward-kill-word
are now supported and assigned toM-d
andM-DEL
respectively.kill-word
andbackward-kill-word
now support prefix argument.
C-M-p
(emacs-mcx.addSelectionToPreviousFindMatch
) is supported.- Command implementations are drastically changed to be class-based.
- Fix
emacs-mcx.paredit.forwardDownSexp
andemacs-mcx.paredit.backwardUpSexp
to ignore semicolon in non-lisp languages correctly.
- Update
emacs-mcx.paredit.forwardDownSexp
andemacs-mcx.paredit.backwardUpSexp
to treat a semicolon as one entity, but not comment.
- Internal implementation of
C-l
(recenter-top-bottom) is updated. - A message representing the prefix argument is shown.
C-m
is fixed to behave more like ENTER.C-m
is fixed to work with prefix argument.emacs-mcx.paredit.forwardDownSexp
andemacs-mcx.paredit.backwardUpSexp
are implemented (not assigned to keys).
forward-sexp
andbackward-sexp
are updated to support prefix argument.
- Many commands hide the find widget like the original behavior of emacs' i-search. by @ganaware
forward-sexp
andbackward-sexp
are fixed to reveal the cursor. by @ganaware
C-h
(delete-backward-char) andC-d
(delete-forward-char) now support prefix argument.
C-k
(kill-line) now supports prefix argument.
- Behaviors of
C-f
(forward-char) andC-b
(backward-char) are modified to move cursors over multiple lines when prefix argument specified.
- Run CI on Windows
- Sexp navigations with mark-mode compatibility
- A dependency to an external extension
haruhi-s.sexp
is eliminated.
- A dependency to an external extension
C-u
(universal-argument) is implemented.- Prefix argument is supported with single character inputs and movement commands.
- A
when
clause contextemacs-mcx.inMarkMode
is supported.
C-x C-o
(delete-blank-lines)
emacs-mcx.transformTo(Upper|Lower)case
are implemented and assigned toM-u
,C-x C-u
andM-l
,C-x C-l
respectively. However, the current implementation has a drawback in the case there are multiple cursors and empty and non-empty selections are mixed.
- status bar messages disappear when other operations are invoked (or 10 seconds after they appear).
- Fix
ESC
not to override existent necessary keybindings - Fix yank-pop to show a status bar message if invoked not after yank
C-l
(recenter-top-bottom) (#40)- To support
M-l
(downcase-word) andM-u
(upcase-word) (#23)
C-g
(ESC
) cancels continuous kill (#42)
- New kill-ring and yank implementation to append continuous invokation of
C-k
(kill-line) (#26). - Add sexp functionalities by importing
haruhi-s.sexp
(#27).
- New keybinding
ESC
for cancel (quit
) (#30). - New keybinding
M-g M-g
forgoto-line
(#24). - New keybinding
M-g M-n
andM-g M-p
fornext-error
andprevious-error
respectively (#25). - New keybinding
C-o
foropen-line
(#28). - Improve mark-mode behavior with
C-M-n
(#29).