Releases: zyedidia/micro
nightly
2.0.15
Micro 2.0.15
Get well into 2026 and have a happy new year! π
What's Changed
New options
truecolor(supersedes theMICRO_TRUECOLORenvironment variable) (by @JoeKar in #2867)showchars(deprecatesindentchar) (by @Neko-Box-Coder in #3760)lockbindingsfor completely disallowing plugins to modify keybindings (by @Neko-Box-Coder in #3618)helpsplitfor changing default split type for thehelpcommand (by @JoeKar in #3502)pageoverlapfor setting number of lines kept during page up/page down (by @nimishjha in #3518)
New actions
FirstTab,LastTab,FirstSplitandLastSplit(by @masmu in #3403)- Note: also changed the behavior of
NextTab,PreviousTab,NextSplit,PreviousSplit - But adjusted the default keybindings so the default behavior remains unchanged
- Note: also changed the behavior of
SkipMultiCursorBackas a counterpart toSkipMultiCursor(by @masmu in #3404)CursorToViewTop,CursorToViewCenter,CursorToViewBottom(by @nimishjha in #3506)Duplicatefor duplicating the selection only, not the whole line (by @dmaluka in #3503)
Improved actions
- Improve and unify
CopyLine,CutLine,DeleteLine,DuplicateLineactions (by @dmaluka in #3335 and #3519)- Note: changed the behavior of those actions
- But also adjusted the default keybindings so the default behavior remains unchanged
- Restore pre-2.0.14 behavior of
SpawnMultiCursor{Up,Down}(by @dmaluka in #3503) - Nano-like page up/page down functionality (by @nimishjha in #3518 and @dmaluka in #3555)
Lua improvements
- Plugins never write to
settings.jsonorbindings.jsonanymore (by @Neko-Box-Coder in #3618) - Add
onBufferOptionChangedcallback (by @JoeKar in #2962) - Add
SpawnCursorAtLoc()(by @Neko-Box-Coder in #3441) - Expose bufpane's
DoubleClickandTripleClickto plugins (by @cutelisp in #3720) - Pass mouse info to
{on,pre}MouseXXXcallbacks (by @dmaluka in #3779) - Support
gotostatement from Lua 5.2 (by @matthias314 in #3597)
Syntax highlighting improvements
- Haskell syntax: various improvements and fixes (by @Andriamanitra in #3373)
- Rust syntax:
- C++ syntax:
- Highlight binary and hex literals with single-quote separator per C++14 (by @Neko-Box-Coder in #3310, #3870, #3891)
- Highlight
autoas data type per C++17 (by @2013ZRZ in #3836) - Improve C++ filetype detection by using more keywords (by @Neko-Box-Coder in #3310)
- Shell syntax:
- Correctly match parameter expansions without braces (by @niten94 in #3663)
- Match variables with leading underscore (by @Andriamanitra in #3833)
- Match --options-with-hyphens (by @nabeelsherazi in #3863)
- Asm syntax: highlight C-like comments (by @dmaluka in #3696)
- Ruby syntax: highlight predefined variables (by @Andriamanitra in #3778)
- CSS syntax: add more commands (by @mystieneko in #3436)
- Swift syntax: add shebang (by @frkd-dev in #3451)
- Java syntax: add
varkeyword (by @owencmcgrath in #3526) - Javascript syntax: add .cjs extension (by @med-ab in #3539)
- Groovy syntax: fix triple quotes highlighting (by @Neko-Box-Coder in #3858)
- Fish syntax: fix variable expansion (by @remisalmon in #3830)
- Raku syntax: add .rakutest extension (by @juanfra684 in #3406)
- Arduino syntax: make filetype detection less aggressive (by @Andriamanitra in #3848)
- Add OpenSCAD syntax (by @jmcorey in #3410)
- Add PRQL syntax (by @vanillajonathan in #3313)
- Add meson syntax (by @asakovets in #3236)
- Add nftables config syntax (by @theredcmdcraft in #3325 and #3517)
Various improvements
- Save files safely, writing to the backup file first (by @JoeKar in #3273, #3806, #3814, @Neko-Box-Coder in #3807 and @dmaluka in #3822)
- Also write
settings.json,bindings.jsonetc safely as well, using a temporary file
- Also write
- Support vim-like
+/textsearch in command-line args (by @luca020400 in #3767) - Add
toggle&togglelocalcommands for toggling boolean options (by @cutelisp in #3783) - Add
-vsplit&-hsplitas optional arguments forhelp(by @JoeKar in #3502) - Make
textfilterwork with multicursors (by @dmaluka in #3511) - Support
\xsyntax for raw escape sequences inbindings.json(by @JoeKar in #3595) - Add
overwritemode indicator to the status line (by @JoeKar in #3620) - Support showing git commit hash and branch in the status line (by @niten94 in #3673)
- Support terminal emulation on Solaris, OpenBSD* and NetBSD (by @niten94 in #3714)
- OpenBSD - on 32-bit only
- Display name "Raw event viewer" instead of "No Name" for
rawpane (by @blamedrop in #3791) - Differentiate built-in plugins when listing (by @Neko-Box-Coder in #3810)
- Disable sudo save prompt on Windows (by @niten94 in #3866)
- Only set buffer type to stdout when no file args are passed (by @AndydeCleyre in #3910)
- Linter: add
rufffor Python (by @Andriamanitra in #3657) - Linter:
ldc2andgdcfor D (by @kodesettings in #3892) - Add comment support for typescript (by @Neko-Box-Coder in #3857)
- README: Update micro's version for the Go Report Card (by @JoeKar in #3835)
Bugfixes
- Fix
cd a\causing crash on Windows (by @JoeKar in #3596) - Fix SIGINT killing micro when saving with sudo (by @dmaluka in #3495)
- Fix crash when exiting terminal in some cases (by @JoeKar in #3738)
- Fix crash when
shell.JobSpawnis called from Lua while no callback is set (by @matthias314 in #3554) - Fix 2.0.14 regression: inconsistently working cursor up/down after selection (by @JoeKar in #3540)
- Fix 2.0.14 regression: colorscheme plugins not working (by @dmaluka in #3761)
- Fix non-working raw escape bindings after restarting the screen (by @dmaluka in #3468)
- Fix spurious backups of unmodified files (by @dmaluka in #3822)
- Fix drawing wide characters in the info bar (by @Andriamanitra in #3919)
- Search / replace fixes:
- Fix infinite loop in
replacewhen empty string matches (by @matthias314 in #3566) - Make
FindNextandFindPreviouswork with empty matches (by @matthias314 in #3572) - Match beginning and end of line correctly (by @matthias314 in #3575 and #3914)
- Fix infinite loop in
- Fixes related to saving files:
- Don't prompt to save file if the same file is opened in another buffer (by @matthias314 in #3559 and @niten94 in #3719)
- Prompt to save new file regardless of
autosaveenabled (by @yz778 in #3626) - Fix per-filetype settings not being applied when saving as a new file (by @Neko-Box-Coder in #3625, #3688 and @JoeKar in #3662)
- Support saving with sudo in more cases (by @Neko-Box-Coder in #3689)
- Update displayed name when saving file with a different name (by @Neko-Box-Coder in #3689)
- Fix comment plugin not using user settings when overriding default setting (by @Neko-Box-Coder in #3424)
- Introduces
comment.typeoption which deprecates existingcommenttype
- Introduces
- Fix rendering Unicode 14.0+ emojis (by @JoeKar in #3601)
- Properly handle escaped and quoted characters in keybindings (by @matthias314 in #3612)
- Fix tabs suddenly becoming invisible after
tabmove(by @Neko-Box-Coder in #3619) - Fix cycling through completion suggestions stopping at non-word character (by @Andriamanitra in #3650)
- Fix scrollbar covering cursor (by @cutelisp in #3741)
- Fix ruler drawn on top of the tab bar (by @cutelisp in #3744)
- Relocate buffer view after setting options that affect it (by @dmaluka in #3743)
- Fix non-working proportional resize after closing a nested VSplit inside a HSplit (by @Neko-Box-Coder in #3708)
- Fix non-working matching brace highlighting in
sunny-daycolorscheme (by @tautte in #3735) - Fix micro broken on OpenBSD (by @niten94 in #3561 and #3895)
Documentation improvements
- Update and improve man page and
micro -helpoutput (by @dmaluka in #3812) - List more bindable actions in
help keybindings(by @Andriamanitra in #3685 and @dmaluka in #3799) - Document binding keys to Lua functions (by @dmaluka in #3799)
- Document passing
*tcell.EventMouseto mouse action callbacks (by @dmaluka in #3799) - Update and correct documentation for
onActionreturn value (by @dmaluka in #3799) - Some small improvements (by @cutelisp in #3786, #3818)
Build system changes
- Minimum supported Go version changed from 1.16 to 1.19 (by @alexandear in #3461 and @JoeKar in #3595)
- Make all builds explicitly fully static (disable CGO) (by @JoeKar in #3466)
- Add build target for Windows ARM64 (by @creeperlv in #3512)
- Add build targets for Solaris and Illumos (by @niten94 in #3714)
- Set version as release when there are no commits ahead (by @niten94 in #3515)
- Fetch tags with
--force(by @JoeKar in #3448) - Micro's dependencies (the forked
tcelland others) moved to https://github.com/micro-editor (by @JoeKar in #3593, #3595, #3596, #3601, #3600)
New Contributors
- @mystieneko made their first contribution in #3436
- @jmcorey made their first contribution in #3410
- @frkd-dev made their first contribution in #3451
- @JonathanBerkeley made their first contribution in #3469
- @alexandear made their first contribution in #3467
- @theredcmdcraft made their first contribution in #3325
- @creeperlv made their first contribution in #3512
- @nimishjha made their first contribution in #3506
- @owencmcgrath made their first contribution in #3526
- @med-ab made their first contribution in #3539
- @antoine2711 made their first contribution in https://github.com/zyedi...
2.0.15-rc1
1st release candidate for micro 2.0.15
2.0.14
Micro 2.0.14
- New options
matchbracestyleto choose whether to underline or highlight matching braces (by @toiletbril in #2876)matchbraceleftto choose whether to match brace to the left of the cursor (by @dmaluka in #3432)hltrailingwsto highlight trailing whitespace (by @dmaluka in #1897)hltaberrorsto highlight tab vs space inconsistencies (by @dmaluka in #1897)
- Cursor movement and selection improvements
- Add
jumpcommand to perform a relativegoto(by @JoeKar in #3210) - Add sub-word movement actions and improve word movements (by @masmu in #2665 #3321)
- Add paragraph selection actions and improve paragraph movements (by @hchac in #3353)
- Make Shift-PageUp/Down the default keybindings for SelectPageUp/Down (by @injust in #3407)
- Add
- Syntax highlighting improvements
- Mouse improvements
- Lua improvements
- Misc improvements
- Allow colorschemes to include other colorschemes (by @JoeKar in #2844)
- Give user's files in
~/.config/micro/precedence over micro's built-in files (by @JoeKar in #3066 and @dmaluka in #3031) - Respect umask when creating files (by @niten94 in #3095)
- Smarter smartpaste (by @Andriamanitra in #3002)
- Make default
fileformatvalue suited to the OS (by @dmaluka in #3141) - Improve buffer view relocation after jumping to a far-away location (by @dmaluka in #2628)
- Improve return values of some actions for better action chaining (by @dmaluka in #3352 and @masmu in #3333)
- Autocomplete filetypes (by @JoeKar in #3090 #3218 and @dmaluka in #3214)
- Allow raw escape sequence to be bound with
bind(by @JoeKar in #2959) - Various small improvements (too many to name)
- Bugfixes
- Fix various crashes (by @JoeKar in #2992 #3082 #3256 #3261 #3266 and @dmaluka in #3069 #3213 #3250 and @Neko-Box-Coder in #3318)
- Fix micro killed by SIGINT sent to its shell job (by @niten94 in #3357)
- Various fixes for setting local options (by @JoeKar in #3042 #3178 #3343)
- Various fixes for reloading settings via
reloadcommand (by @JoeKar in #3062 #3343) - Various fixes for updating settings after changing
filetype(by @JoeKar in #3343) - Fix unneeded rewriting of
settings.json(by @dmaluka in #3009 and @JoeKar in #3178 #3343) - Fix overwriting persistent non-default settings in
settings.jsonwith temporary default settings (by @dmaluka in #3010) - Autosave fixes
- Fix opening filenames including colons with
parsecursor(by @JoeKar in #3119) - Fix replace to be able to insert '$' (by @JoeKar in #2954)
- Fix cursor moving to an unexpected location after a redo (by @dmaluka in #3416)
- Make cursor movements after selection consistent (by @dustdfg in #3103 #3091 and @dmaluka in #3268)
- Fix incorrect buffer view after reloading file (by @dmaluka in #3250)
- Fix lost mouse release events in case the pane becomes inactive (by @JoeKar in #3271)
- Add proper locking to LineArray to fix potential races (by @JoeKar in #3224)
- Various small fixes (too many to name)
- Documentation improvements
- Cleanup indentation and trailing whitespace by (@JoeKar in #3193)
- Improve plugin documentation (by @glupi-borna in #3240)
Thank you to all contributors and @zyedidia for making the release possible.
Full Changelog: v2.0.13...v2.0.14
Full list of contributors: @alexrp @Andriamanitra @blt-r @bound-variable @bryanhonof @cyqsimon @dimaguy @dmaluka @dustdfg @frabjous @glupi-borna @hchac @injust @JoeKar @jsuhaas22 @Krator3 @LizzyFleckenstein03 @log4gin @LordOfTrident @lvyaoting @masmu @matthias314 @mdom @m-kru @Neko-Box-Coder @niten94 @notnout @occupyhabit @paw-lu @stone-w4tch3r @taconi @toiletbril @zyedidia
2.0.14-rc1
Release candidate for micro 2.0.14
2.0.13
2.0.12
Micro 2.0.12
New features and fixes:
- Adds
fakecursoroption. - Adds
HistorySearchUpandHistorySearchDownactions. - Adds
scrollbarcharoption. - Adds
-multiopenflag. - Save with sudo for large files fixed.
- Syntax highlighting engine improvements.
- Many minor bug fixes and highlighting adjustments/improvements (new languages and fixes).
Thanks to all contributors who continue to help with Micro development! Special thanks to @dmaluka for helping to review issues and PRs.
2.0.11
Micro 2.0.11
This is a minor version update to micro including the following general changes:
- Support for clipboard in WSL via clip.exe.
- New
hlsearchoption to highlight search results. - Fixes for OSC52 clipboard support.
- Syntax highlighting fixes, improvements, and new languages.
- Rust clippy and go vet linters.
- Switch to using go embed instead of go-bindata.
- Bug fixes.
2.0.10
Micro 2.0.10
- Bug fixes
- Opening a readonly file now only causes a warning
- Bracketed paste fix
- Terminal title fix
- Allow opting out of loading a backup file
- Default binding of Alt-Shift-f (
Alt-F) for FindLiteral - Find will prefill with selected text
- Syntax highlighting improvements (for nix, racket, v, rust, cpp, erlang, nim)
- Minor documentation improvements
- Shellcheck linter support