summarylogtreecommitdiffstats
path: root/CHANGELOG
blob: f9a8732250b9be810d93def35b16953a04e43f6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
1.0 (29 Aug 2016)
  Initial release

1.0.1 (30 Aug 2016)
  Fixes the tutorial help file.
  Fixes settings not being saved between sessions if the settings.json file didn't exist beforehand.
  Fixes various typos

1.0.2 (4 Sep 2016)
  Support for bracketed paste
  Set options at startup with command line flags
  Use json5 for configuration files
  Open files at a given line/column number with -startpos LINE,COL
  Bubblegum light colorscheme
  Infobar option
  QuitAll action
  Various syntax file improvements: dart, lfe, php, yaml, asm, micro, json, conf, caddyfile, ini
  Numerous bug fixes

1.0.3 (7 Sep 2016)
  Macros
  Support for both 'clipboard' and 'primary' clipboard on Linux
  Change unsaved changes prompt, now says Save changes to filename before closing? (y,n,esc)
  Syntax file improvements: Pascal, Typescript, PHP improvements, CSS improvements
  Plugin API improvements:
	Plugins can create custom autocomplete functions for commands
	HandleShellCommand returns the stdout of the command
	(*View).Open(filename string) for opening files easily
  And many bug fixes as well

1.1.0 (7 Oct 2016)
  Plugin Manager
	You can install, remove, update, list, or search for plugins using > plugin ....
	  List of official plugins can be found here
	  For more information read the end of > help plugins and also > help commands
	Snippets Plugin
	  Provides snippets for many languages. Uses snippet files found here.
	  Install with > plugin install snippets
  Add SaveAs keybinding action
	The save command can also take an argument to save as
  Performance improvements
	Faster handling of xml and html
	Search and replace is much faster
  Runtime files change
	Plugins can access runtime files
	Plugins can add their own runtime files
	  Internal handling of runtime files is much improved
  Mouse support and more keybindings in command mode
  Messages are now logged
	See the logs with the > log command
  Configuration files now use json5 instead of json
  New colorcolumn option
	For example: highlight column 80 with set colorcolumn 80
  New eval command to quickly execute lua code
	Try > eval "CurView():VSplit(NewBuffer('', 'Test'))"
  Allow a buffer to be opened in two splits at the same time (edits will happen in both splits)
  Version numbers are now even more informative
  Unsplit action
	Closes all splits except for the active one
  Fix some issues recognizing CtrlH as a binding (depending on the terminal CtrlH may be the same as backspace)
	Use Backspace for backspace instead of Backspace2 when creating keybindings
  Some bugfixes regarding using splits and tabs together
  Autosave option which will automatically save in the background and always save and quit
	Use with caution as it will save the file, overwriting the previous copy, without asking
  Plugins can now provide a completion function for the commands they create

1.1.1 (11 Oct 2016)
  Fixed a bug which caused the plugin manager to crash
  Fixed a bug causing cursor not to display in certain terminals

1.1.2 (24 Oct 2016)
  Make Monokai the default colorscheme
  Add MoveLinesUp and MoveLinesDown actions
	Bound to Alt-up and Alt-down by default
  Softwrap option
  Improved search and replace
	Some bugs with regex were fixed
	More intuitive behavior when cancelling search
  Add OutdentLine action
  Some syntax file updates: Dockerfile, Yaml, TypeScript
  Add reload command to reload the runtime files without restarting the editor
  Add eofnewline option to automatically add make sure files end in newlines
  Improve Windows support
	Colors when using certain Windows terminals are no longer reset
	Mouse tracking now works properly with PuTTY
  Many smaller bug fixes as well.

1.1.3 (6 Dec 2016)
  Plugin API
	plugin available command to show which plugins can be installed
	ByteOffset and ToCharPos functions added
	JobSpawn: like JobStart but takes arguments separately
	tab.CurView is now public
  New default ftoptions plugin to automatically set options for some filetypes (e.g. tabstospaces off for makefiles)
  It is possible to resize splits via lua scripting
  'cd'  and 'pwd' commands to manage the working directory
  'open' command added and bound to CtrlO
  Splits can be created either way with splitRight and splitBottom commands
  Syntax files: Crystal language, TeX updated to use colorschemes, Pony language, VHDL, Objective C, Python 3 (separate from Python 2)
  File reading optimization

1.1.4 (10 Feb 2017)
  New rmtrailingws option (off by default)
  New keepautoindent option (off by default)
  New linters: Nim, Objective-C
  Improved syntax files: toml, Go, Nim, Solidity, Pony, Pascal, PHP, Mail, Micro
  Plugin API
	JobStart uses shell to parse
	JobSpawn should be used for direct executable invocation
  Improved key unbinding
  Bug fixes
	Opening a directory doesn't crash
	Minor mouse clicking bug and more

1.2.0 (27 May 2017)
  Complete refactor and overhaul of the syntax highlighting engine
	Syntax files now use the yaml format: the old format is no longer supported but you can convert old syntax files to the new format by using the syntax_converter.go program in the runtime/syntax folder
	New support for syntax "regions"
	Support for embedding languages in each other
	Highlighting should be much more accurate (especially for large files)
	All syntax files (the obscure languages) now support colorschemes
	Many new languages/improvements to old syntax files: Kotlin, C++, R, Go, Nim, Swift and more...
  Tab scrolling
  'termtitle' option: when enabled, micro will set the terminal's title
  'SaveAll' action to save all buffers at once
  'Suspend' action (Linux only) which can be bound to 'CtrlZ'
  Various bugs with resizing, search, prompts and more have been fixed
  Unicode support for autoclose plugin
  'tabswitch' command to change tabs without using the mouse
  Snap installation
  More default bindings
  More efficient search and replace
  View refactor
	Under the hood improvements
  Support for 'Literate'

1.3.0 (29 Jul 2017)
  Dependencies distributed as submodules
  Multiple cursors
	New actions that can be bound:
	- SpawnMultiCursor default binding: Alt-n
	- RemoveMultiCursor default binding: Alt-p
	- RemoveAllMultiCursors default binding: Alt-c
	- SkipMultiCursor default binding: Alt-x
	- MouseMultiCursor default binding (can only be bound to mouse buttons): Ctrl-MouseLeft
  Expanded keybinding support
	Mouse buttons can be bound: MouseLeft, MouseRight, MouseMiddle, MouseWheelUp, MouseWheelDown, MouseWheelLeft, MouseWheelRight
	Characters can be bound
	Support for CtrlPgUp and CtrlPgDown
  Various syntax highlighting improvements: Vala improvements, C improvements, New Twig syntax, New Darcula colorscheme
  Improved search and replace
	Default now will ask for each replacement
	Use -a flag to replace all
  No more 1/10th second delay when quitting and using alt keys
  Bug fixes

1.3.1 (8 Aug 2017)
  Add support for the Suspend action for OSX and BSDs (still supported on Linux as well)
  Multiple cursors merge if you spawn multiple with the mouse in the same place
  Fixes to tcell and pasting
  Micro won't write your settings if there was an error when loading settings.json.

1.3.2 (15 Sep 2017)
  Add support for crlf and lf
  Lua now has access to most of the Go standard library
	Simply import go packages: local fmt = import("fmt")
  Syntax highlighting: Julia support, Improved yaml highlighting
  Bug fixes for multiple cursors
  Bug fixes for undo/redo
  Add a new --config-dir option to set a custom location for the configuration directory

1.3.3 (29 Sep 2017)
  Autocompletion for colorschemes and all options more generally
  Only register double/triple clicks if the mouse is in the same location
  Added an option for accurate but inefficient checking if the buffer is modified
	Set fastdirty option to off (on by default)
  Fixed some home directory replacements
  Fixed some command line flags
  Fixed behavior for large pastes

1.3.4 (25 Nov 2017)
  New scrollbar option (off by default)
	Does not have mouse support
  New savehistory option (on by default)
	Micro will remember your command bar history between sessions (after closing and re-opening the editor)
  Nano-like menu for showing the keybindings
	Use Alt-g to enable
	Displayed in the statusline
  Paragraph movement
	Use Alt-{ and Alt-}
  Support for binding raw escape sequences
	Some key events are not sent by terminals by default but they can be configured to send custom escape sequences. This feature lets you configure micro to receive custom escape sequences and bind them to an action.
  'retab' command will convert tabs to spaces or vice versa depending on your 'tabstospaces' setting
  'replace' command now accepts the -l flag for 'literal'
	It will treat the search term literally instead of as a regex
  Command bar improvements
	Environment variables are supported in the command bar
	Shell commands will also be expanded in the command bar using backticks
	Better keybindings
	- CtrlA, CtrlLeft: start of line
	- CtrlE, CtrlRight: end of line
	- CtrlF, AltRight: next word
	- CtrlB, AltLeft: previous word
	- CtrlW, AltBackspace: delete previous word
	- CtrlV: Paste
	- Arrow keys as usual
  Some settings have been renamed for consistency
	splitRight -> splitright
	splitBottom -> splitbottom
  'sucmd' option for customizing "save with sudo" (some systems use a different command from sudo).
  Colorschemes and syntax improvements
	New twilight colorscheme
	Matlab/Octave syntax support
	Lua, Javascript, Scala, Fish etc... syntax improvements
  Minor change to the behavior of search
	Should match the behavior from Vim/Emacs better

1.4.0 (26 Jan 2018)
  Terminal emulator within micro
	Use the 'term' command to open a shell
	Use 'term ...' to start the emulator with a custom process
	Only supported on MacOS, Linux, OpenBSD, FreeBSD, Dragonfly
	Lua system for interfacing with the emulator as well
  Brace highlighting
	Use the 'matchbrace' option (off by default)
  New 'JumpToMatchingBrace' action
  New 'raw' command
	Using this command will show all escape sequences micro is using
	Useful for debugging
  New 'showkey' command
	See what action a key is bound to
  'ReplaceMode' (bound to insert key by default)
  Bind keys to actions
	Use 'command:...' as an action to bind a command
	Use 'command-edit:...' as an action to bind a command prompt
  Optimization for saving large files
  New 'basename' option for the path shown in the status bar
  New railscast colorscheme
  New 'SelectLine' action
  Support 'line:col' syntax in JumpLine
  Prompt to create parent folders if they don't exist when saving
  Syntax highlighting improvements: Javascript, Git-commit, Julia, Lua, Makefile
  Bug fixes

1.4.1 (10 Aug 2018)
  New syntax for opening files at a specific line
	micro file.txt:line:col
  New hidehelp option
  Fix for "text file busy"
  Fix for "terminal entry not found" without need for mkinfo
  Ctrl-X acts like Ctrl-k when nothing is selected
  Many small bug fixes and optimizations

2.0.0 (11 Feb 2020)
  The micro codebase has been refactored, introduces breaking changes to the plugin API, though nearly all official plugins have been updated with 2.0 support.
  Please use the -clean flag when upgrading to micro 2.0 to clean out your configuration directory. This will remove unused options, remove the plugins directory if it exists, and remove any non-compliant file formats from ~/.config/micro/buffers, which stores buffer information for persistent undo and cursor history.

  Overall performance and stability improvements
  Simple autocompletion.
	Autocompletion (tab by default) will do a simple "buffer completion" which will autocomplete according to words used elsewhere in the buffer. In the future plugin support could be added along with support for interfacing with language-specific autocompletion tools.
  Automatic backups.
	Backup files are stored in ~/.config/micro/backups for every open buffer and are saved roughly every 8 seconds if the buffer is being modified. Backups are removed when the buffer is closed, but if micro or the system crashes, any unsaved changes can be recovered by re-opening the file (micro will auto- recover) or by manually viewing the backup in the ~/.config/micro/backups directory.
  Diff gutter
	Shows your modifications in real-time in the gutter. Integrates with git automatically. Enable with the diffgutter option.
  Configurable statusline (see the statusformatl and statusformatr options).
  Configurable linter plugin (see the new linter docs).
  Resizeable splits (click and drag on separators).
  Buffer synchronization when the same file is opened multiple times.
  Keybindings and mouse support in the command bar.
  New options:
	encoding: support for loading files in non-UTF8 encodings.
	backup: performs automatic backups.
	diffgutter: shows modifications in the gutter (integrates with Git).
	statusformatl and statusformatr: options for customizing the look of the status line (left and right sides).
	paste: tells micro a paste event is happening. Enable this before doing a paste through the terminal, and disable afterwards. See > help copy-paste for extensive details.
	smartpaste: attempts to preserve correct indentation when pasting.
  New textfilter command for using shell commands to help with editing.
  Complete re-organization of the code to support better go modules and maintain a better directory structure.
  Better plugin interface with better access to the Go standard library and internal Micro functions (lots of documentation still needs to be written). See the new plugins documentation.
  The plugin manager can now be used from the CLI.
  General QoL improvements and bug fixes.
	Notably the infamous autoclose plugin crash issue is fixed.
  New pre-installed colorschemes: darcula, one-dark, gotham, sunny-day, material-tc, monokai-dark
  Improved Windows support.
  Many new syntax files and improvements to existing syntax files.

2.0.1 (12 Feb 2020)
  Fixed bugs in core.
  Updated documentation.
  Expose OpenLogBuf to plugins (via bp:OpenLogBuf()).
  Clicking the arrow in the tabbar now scrolls the tabs.
  New IndentLine action (unbound by default).
  New option autosu to automatically use sudo to save file if you don't have permission to save (on by default).
  Pressing esc when prompted to reload a file will cancel the reload and all future reloads.
  Update to Haskell syntax file.

2.0.2 (26 Feb 2020)
  Search and replace improvements:
	Regex capture groups are now supported in the replace command. Examples:
	- > replace "(foo)" "$1-bar"
	- > replace "(foo)" "${1}-bar"
	- > replace "(?P<group>foo)" "$group-bar"
	- > replace "(?P<group>foo)" "$group-bar"
	- > replace "(?P<key>\w+):\s+(?P<value>\w+)$" "$key=$value"
  Search and replace will only take effect in the current selection if one exists.
  Option changes:
	New xterm option (off by default) to force micro to believe the current terminal is xterm-256color. Please use with caution.
	Make eofnewline on by default.
	Make autosu off by default.
	Make fastdirty off by default.
  Correct version info for snap builds.
  Bug fixes (and a new test suite for text transformation correctness).

2.0.3 (10 Apr 2020)
  Micro will output to pipes if it is on the left side of a pipe
	Running micro | cat will open micro and pipe the result (when the buffer is closed) to cat. Since micro can also read from pipes, this means you can make a pipe chain interactive by placing micro in it.
  New +LINE:COL flag for opening a file at a location (file.txt:LINE:COL syntax still supported)
  Minor bug fixes
  Syntax file improvements: Csharp-script (new), Sagemath (new), Julia, Python 3
  Linter improvements: Haskell, C++

2.0.4 (23 May 2020)
  Better clipboard handling for SSH sessions (use internal clipboard even if xclip/xsel is installed if no X-server is available).
  New CopyLine action (default for CtrlC with no selection).
  FindLiteral action for Find without regexes (unbound by default).
  tabmove command for moving tabs.
  Support for Unicode combining characters.
  Better customization for dividers with new divchars and divreverse options.
  Support for italics in colorschemes.
  Bug fixes:
	Dropped redraw events.
	View relocating with a selection.
	More minor fixes.

2.0.5 (18 Jun 2020)
  Micro will ensure that settings.json only contains non-default settings.
	Settings will have default values unless overridden in settings.json.
	Any settings with default values in settings.json will be removed after modifying your settings or running micro -clean.
  New relativeruler option (default off).
	Makes line numbers relative to your current cursor position.
  New parsecursor option for file:line:col syntax (default off).
	Enable for previous behavior to open a file at a location.
  More consistent key labels to reduce confusion about keybindings.
  Autocompletion is more conservative and only triggers for alphanumerics.
  Performance improvements.
  More languages supported by the default comment plugin.
	Use Alt-/ or Ctrl-/ (new) to comment/uncomment a block of code.
	Note that micro sees Ctrl-/ as the CtrlUnderscore event from the terminal.
  Bug fixes:
	Mouse support in command bar.
	Escape sequence handling.
  Other minor issues and improvements.

2.0.6 (24 Jun 2020)
  Improvements to the backup system.
	permbackup option (default off).
	backdupdir option (default directory is ~/.config/micro/backups).
  Some new statusformat directives for the statusline:
	status.lines, status.vcol, status.bytes, status.size.
  Errors parsing settings.json will not cause settings to be overwritten.
  Bug fixes:
	Pasting CRLF text.
	Plugin options not persisting properly.
	Backspace on Windows.
	Better test infrastructure.

2.0.7 (6 Sep 2020)
  Keybindings improvements
	Key sequences can be bound with <Key1><Key2>..., for example <Ctrl-x><Ctrl-c>.
	Different keybindings for buffers, command bar, and terminal panes can be specified.
	- See > help keybindings for the details and defaults.
	Better support for complex keybindings.
	- Function keys with modifiers.
	- PgUp, PgDown, Delete... with modifiers.
  Clipboard
	Support for multiple cursors (internal clipboards for each cursor).
	Support for OSC52 (copy and paste via your terminal, which works over ssh).
	- New clipboard option (default external).
		Set to internal for internal clipboard only.
		Set to external for xclip/xsel external clipboard.
		Set to terminal to use OSC52.
		- Known to work in iTerm2, kitty, xterm, st, rxvt-unicode.
		- See > help copypaste for details on enabling support in your terminal.
  24-bit color support on Windows (make sure to set MICRO_TRUECOLOR=1)
	Doesn't work with ConEmu but works with Windows-terminal, command prompt...
  Minor changes:
	Better support for obscure terminals (reading terminfo dynamically without relying on infocmp).
	Better truecolor detection.
	No duplicates in up-arrow history.
	Graceful exit when receiving SIGTERM.
  Bug fixes:
	Fix path escaping on Windows.
	Fix issue when fastdirty is off
	Syntax highlighting and linting fixes