* Refactored cursor location login into a function. Fixed buffer overflow when line position is 1 more than file lines
* Fixed crash when -startpos has an invalid argument
* Adapted tests to new interface
* Fixed bug where -startpos with lines 0 and 1 would both be on the first line
* Changed Fatalf format back to digits
* Fixed issues with buffer cursor location. Added tests for new function
* ParseCursorLocation will now return an error when path doesnt contain line/col
* Fixed off-by-one line error
* Fixed tests to account for subtracting 1 from the line index
* Now can open Windows full-path from command line arg
Example that now works: micro.exe D:\myfile.txt
* Now correctly retrieves the path from the input path string. Except for single-letter filenames
* Fixed line/cols, need to make the code prettier
* Fixed path matching with regex by @Pariador
* Fixed not stripping the line/col args from file path
* Added tests for ParseCursorLocation
* add binding for more primitive backspace
* support selecting page up and page down
* fix matchbraceleft for braces that start on x=0
* fix multiline copy-paste indenting
let's say you have two lines like
<space><space>line1
<space><space>line2
so you start from cursor x=0 and select both lines, then paste.
we don't want any leading whitespace in this case, because the
cursor is already at x=0 and the selection already includes
whitespace.
* Make ^X act like ^K when nothing is selected
^K is hard to reach with your left hand or requires to use both hands
Also with this you could remove ^K whatsoever and make room for a different command
This is how I configured nano by the way
Line duplication also becomes nearly instantaneous with a flash-quick ^X+^V+^V combo (nano doesn't have a dedicated shortcut)
Small block (5-10 lines) cuts/copies/duplicates can also be made this way
* Remove unnecessary lines
* Call CutLine the right way
by default home sends the cursor to the beginning of the line.
if the cursor is at the beginning of the line already though, home
will send the cursor to the first non-whitespace rune. tapping home
will toggle between these two line starts.
* Add support for ~username syntax (fix#1033)
* Fixed return string
Also removed non-descriptive variable name `foo`
* moved err declarations outside of if statement
this behavior, while slightly less obvious, allows for observing what brace you
just closed. as you write closing braces, the brace you closed gets highlighted
This update incorporates the new terminfo updates in tcell into micro
essentially merging zyedidia/mkinfo into micro. The zyedidia/mkinfo
program should no longer be necessary and micro should automatically
generate a tcell database on its own if it cannot find a terminal
entry. The tcell database will be located in `configDir/.tcelldb`.
Ref #20
Ref #922
I'm trying to add more options for plugins that want to run shell
commands. Also trying to add support for running shell commands in the
terminal emulator from a plugin and return the output.
More to come soon.
Ref #979
This commit adds beta support for running a shell or other program
within a micro view.
Use the `> term` command. With no arguments, `term` will open your
shell in interactive mode. You can also run an arbitrary command
with `> term cmd` and the command with be executed and output
shown. One issue at the moment is the terminal window will close
immediately after the process dies.
No mouse events are sent to programs running within micro.
Ref #243
- Sort keywords alphabetically
- Use `symbol.operator` for operators instead of `statement`
- Add a basic support for back-tick strings
- Mark unassigned keywords as errors
The command bar now supports 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
These keybindings are not rebindable (maybe support will be added
in the future).
The default colorschemes should ideally use 256 colors instead
of just 16 colors. The `simple` colorscheme should cover most
16 color use cases. I went through the colorschemes and put the themes
that didn't look good or looked incomplete in an in_progress directory.
This commit also improves the `cd` command behavior when using an
unnamed buffer.
The -l flag to the replace command means "literal" and will treat
the search term literally instead of as a regular expression.
The command bar also now supports expanding environment variables
and running expressions through the shell and using the result
in the command.
The option is `scrollbar` and is off by default. The scroll bar is
not interactive (you can't click and drag it) but this will likely
be fixed in the future.
Ref #869
When savehistory is enabled, micro will save your command history across
sessions. This includes command-mode, shell-mode, open, jump-to-line...
Anything that uses up-arrow for history in the infobar.
This option is on by default.
Closes#874
This has a few effects:
- `lastSearch` doesn't get overriden with partial searches
unnecessarily, which matches the behaviour of vim/emacs etc.
- Selecting a word, then pressing C-c C-f ENTER works better as you can
now use C-n and C-p to jump to more occurrences of what you just
searched for. Without this C-n would jump to what you searched for
*previously*.
- `lastSearch` will now be updated even if the search did not match -
again, this matches the behaviour of vim/emacs.
Note that you may encounter merge conflicts if you try to update. If you
do, remove the directory `cmd/micro/vendor/github.com/zyedidia/tcell`
and it will be recloned.
Use the `keymenu` option (default `off`) to enable. ToggleKeyMenu is
also bound to `Alt-g` and this info is now displayed in the status line.
Closes#829
Set the `fastdirty` option flag to off if you really want accurate
reporting on whether the buffer is modified. This is more resource
intensive but it can be useful for people who don't mind.
Closes#787Closes#467
Dos and Unix line endings are now both supported (previously on unix
line endings were supported) and can be accessed via the `fileformat`
option. The file format will be automatically detected and displayed in
the statusline but can be overriden.
Possible values for the `fileformat` option are `dos` and `unix`.
Closes#443Closes#755
* Cursor move at the beginning of the line when Up on the first line (and at the last character when Down on last the line)
* Fix an issue when Up to a shorter line than current line
* SelectLeft on the last character is now possible
* SelectLeft on the last character is now possible
* CursorRight on selection places the cursor after the last selected character
* SelectRight on the last character do not select the last character and do nothing
This commit also switches from yosuke-furukawa/json5 to flynn/json5
because yosuke-furukawa/json5 does not provide a license.
Ref zyedidia/json5#1
Closes#775