Unclaimed project
Are you a maintainer of micro? Claim this project to take control of your public changelog and roadmap.
Claim this projectChangelog
micro
A modern and intuitive terminal-based text editor
command-linecross-platformeditorgogolangmicro+2
Last updated about 15 hours ago
Back to changelogNew
2.0.15
Micro 2.0.15
Get well into 2026 and have a happy new year! :fireworks:
What's Changed
New options
truecolor (supersedes the MICRO_TRUECOLOR environment variable) (by @JoeKar in #2867)
showchars (deprecates indentchar) (by @Neko-Box-Coder in #3760)
lockbindings for completely disallowing plugins to modify keybindings (by @Neko-Box-Coder in #3618)
helpsplit for changing default split type for the help command (by @JoeKar in #3502)
pageoverlap for setting number of lines kept during page up/page down (by @nimishjha in #3518)
New actions
FirstTab, LastTab, FirstSplit and LastSplit (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
SkipMultiCursorBack as a counterpart to SkipMultiCursor (by @masmu in #3404)CursorToViewTop, CursorToViewCenter, CursorToViewBottom (by @nimishjha in #3506)Duplicate for duplicating the selection only, not the whole line (by @dmaluka in #3335)
- Improve and unify
CopyLine, CutLine, DeleteLine, DuplicateLine actions (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)
- Plugins never write to
settings.json or bindings.json anymore (by @Neko-Box-Coder in #3618)
- Add
onBufferOptionChanged callback (by @JoeKar in #2962)
- Add
SpawnCursorAtLoc() (by @Neko-Box-Coder in #3441)
- Expose bufpane's
DoubleClick and TripleClick to plugins (by @cutelisp in #3720)
- Pass mouse info to
{on,pre}MouseXXX callbacks (by @dmaluka in #3779)
- Support
goto statement from Lua 5.2 (by @matthias314 in #3597)
Syntax highlighting improvements
- Haskell syntax: various improvements and fixes (by @Andriamanitra in #3373)
- Rust syntax:
- Recognize byte strings and C strings (by @jmcorey in #3452)
- Add more keywords and types (by @edwloef in #3677 and @codemanticism in #3759)
- C++ syntax:
- Highlight binary and hex literals with single-quote separator per C++14 (by @Neko-Box-Coder in #3310, #3870, #3891)
- Highlight
auto as 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
var keyword (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)
- 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.json etc safely as well, using a temporary file
- Support vim-like
+/text search in command-line args (by @luca020400 in #3767)
- Add
toggle & togglelocal commands for toggling boolean options (by @cutelisp in #3783)
- Add
-vsplit & -hsplit as optional arguments for help (by @JoeKar in #3502)
- Make
textfilter work with multicursors (by @dmaluka in #3511)
- Support
\x syntax for raw escape sequences in bindings.json (by @JoeKar in #3595)
- Add
overwrite mode 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)
- Display name "Raw event viewer" instead of "No Name" for
raw pane (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
ruff for Python (by @Andriamanitra in #3657)
- Linter:
ldc2 and gdc for 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)
- 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.JobSpawn is 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
replace when empty string matches (by @matthias314 in #3566)
- Make
FindNext and FindPrevious work with empty matches (by @matthias314 in #3572)
- Match beginning and end of line correctly (by @matthias314 in #3575 and #3914)
- 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
autosave enabled (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.type option which deprecates existing commenttype
- 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-day colorscheme (by @tautte in #3735)
- Fix micro broken on OpenBSD (by @niten94 in #3561 and #3895)
Documentation improvements
- Update and improve man page and
micro -help output (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.EventMouse to mouse action callbacks (by @dmaluka in #3799)
- Update and correct documentation for
onAction return value (by @dmaluka in #3799)
- Some small improvements (by @cutelisp in #3786, #3818)
- 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
tcell and others) moved to https://github.com/micro-editor (by @JoeKar in #3593, #3595, #3596, #3601, #3600)
New Contributors
- @mystieneko made their first contribution in https://github.com/zyedidia/micro/pull/3436
- @jmcorey made their first contribution in https://github.com/zyedidia/micro/pull/3410
- @frkd-dev made their first contribution in https://github.com/zyedidia/micro/pull/3451
- @JonathanBerkeley made their first contribution in https://github.com/zyedidia/micro/pull/3469
- @alexandear made their first contribution in https://github.com/zyedidia/micro/pull/3467
- @theredcmdcraft made their first contribution in https://github.com/zyedidia/micro/pull/3325
- @creeperlv made their first contribution in https://github.com/zyedidia/micro/pull/3512
- @nimishjha made their first contribution in https://github.com/zyedidia/micro/pull/3506
- @owencmcgrath made their first contribution in https://github.com/zyedidia/micro/pull/3526
- @med-ab made their first contribution in https://github.com/zyedidia/micro/pull/3539
- @antoine2711 made their first contribution in https://github.com/zyedidia/micro/pull/3615
- @yz778 made their first contribution in https://github.com/zyedidia/micro/pull/3626
- @usfbih8u made their first contribution in https://github.com/zyedidia/micro/pull/3647
- @edwloef made their first contribution in https://github.com/zyedidia/micro/pull/3677
- @cutelisp made their first contribution in https://github.com/zyedidia/micro/pull/3716
- @tautte made their first contribution in https://github.com/zyedidia/micro/pull/3735
- @codemanticism made their first contribution in https://github.com/zyedidia/micro/pull/3759
- @vanillajonathan made their first contribution in https://github.com/zyedidia/micro/pull/3313
- @blamedrop made their first contribution in https://github.com/zyedidia/micro/pull/3791
- @asakovets made their first contribution in https://github.com/zyedidia/micro/pull/3236
- @remisalmon made their first contribution in https://github.com/zyedidia/micro/pull/3830
- @deepdring made their first contribution in https://github.com/zyedidia/micro/pull/3834
- @2013ZRZ made their first contribution in https://github.com/zyedidia/micro/pull/3836
- @luca020400 made their first contribution in https://github.com/zyedidia/micro/pull/3767
- @kodesettings made their first contribution in https://github.com/zyedidia/micro/pull/3892
- @nabeelsherazi made their first contribution in https://github.com/zyedidia/micro/pull/3863
Full Changelog: https://github.com/zyedidia/micro/compare/v2.0.14...v2.0.15
Go