You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Render double-width UTF-8 characters in two terminal columns, keeping incremental redraws and cursor positioning aligned
New line-wrap-mode, where a line too long for the window continues on the rows below instead of being truncated with a $. A continued row ends with an arrow, or a backslash outside UTF-8 locales. Off by default; set it per buffer, or with set-default-mode wrap in ~/.mg
Character widths follow Unicode 17. Emoji, and the scripts added since Unicode 5, are measured correctly instead of being drawn one column wide and overlapping whatever followed them
Shift and PgUp/PgDn mark text a page at a time, completing the shift-select support from v4.0: new commands shift-scroll-down and shift-scroll-up
The mode line names the major mode where it used to say Fundamental, with the modes that qualify it after: a python buffer reads (Python Notab Indent) and a text buffer (Text Fill). Fundamental is shown when there is no major mode, which is what it means
The buffer list mode is called buffer-list rather than listbufmap, its internal keymap name, now that the mode line leads with it
New yaml-mode with syntax highlighting, detected for *.yml, *.yaml, .clang-format and .yamllint. Whitespace is structure in YAML, so the mode indents two columns with spaces only, a tab being a syntax error. Block scalars introduced by | or > are left as text, so the shell in a run: | step is not colored as YAML
New text-mode for prose, which turns on auto-fill-mode, detected for *.txt, *.text, the suffixless files a source tree keeps like README and LICENSE, and the file mutt hands its editor
New git-commit-mode for COMMIT_EDITMSG and friends: the comments git adds are dimmed, trailers stand out, and a commit -v diff is colored on the diff-mode rules. Bound like Magit's git-commit mode: C-c C-c finishes the commit, C-c C-k aborts it, and C-c C-s, C-c C-a, C-c C-r, C-c C-t add Signed-off-by, Acked-by, Reviewed-by and Tested-by trailers
New diff-mode with syntax highlighting for patches, detected for *.diff, *.patch and *.rej. Removed and added lines are only colored inside a hunk, so the message of a mailed patch keeps its own dashes
New conf-mode with syntax highlighting for configuration files, detected for *.conf, *.cfg, *.ini, *.toml, systemd units, .desktop entries, fstab, ssh_config, sshd_config, ~/.gitconfig, ~/.editorconfig, and the .config and *defconfig files written by kconfig
New makefile-mode with syntax highlighting and hard tabs, detected for Makefile, GNUmakefile, *.mk, *.make, and #!/usr/bin/make -f scripts shell-script-mode is now also detected for *.bash, *.ksh, *.zsh, and rc files like ~/.bashrc and ~/.profile
auto-execute patterns now also match against the file's basename, so auto-execute .bashrc shell-script-mode works without a leading */
Syntax highlighting: $(...) variable references are now colored like ${...}, including nested ones in makefiles
Fixes
Fix marking text with shifted keys in VTE-based terminals when built --without-curses: the ansi backend now enters the alternate screen like the terminfo backend. As a side effect the shell's content and scrollback survive an editing session
Report errors in the startup file again. The message was written to the echo line and immediately covered, by the help text or by the line count of the files named on the command line, so a ~/.mg that failed on its first line looked like it had never been read at all, issue #41
set-tab-width in ~/.mg now also applies to scratch, which is created before the startup file is read, issue #41
Raise the number of modes a buffer can hold from four to six. A major mode that brings two helper modes of its own, like python-mode, no longer runs out of room and gets dropped when the buffer already carries a default mode
A mode named in ~/.mg, such as auto-fill-mode, now becomes a default for the files opened afterwards. It used to be applied to scratch, the only buffer in existence while the startup file is read, and so had no effect on anything the user went on to edit
The tab width a mode wants now follows the startup file like the mode itself. yaml-mode in ~/.mg used to leave the files opened afterwards at width eight, with only scratch getting the two the mode asked for
Default modes from ~/.mg now reach the buffers that already exist, in particular scratch. The mode list was copied to them but the count was not, so the modes were there and inert, the same shape as issue #41
markdown-mode no longer colors the indented continuation lines of a list item as a verbatim block. An indented block is only verbatim when a blank line precedes it