Commit graph

265 commits

Author SHA1 Message Date
Zachary Yedidia
4a860625af Also allow ModShift to be on for windows terminals
Fixes #165
2016-06-11 19:41:37 -04:00
Zachary Yedidia
553b3d80c4 Fix diff remove problem in ApplyDiff
The location counter was being updated when there was a removal in
the text but it shouldn't be.

Fixes #163
2016-06-11 11:23:05 -04:00
Zachary Yedidia
cdfea45a49 Fix cursor line in true color colorschemes
Ref #171
2016-06-09 16:00:43 -04:00
Zachary Yedidia
f3f14193c2 Fix autocompletion using a slash 2016-06-09 13:36:16 -04:00
Zachary Yedidia
e2079ac88e Add file completion to OpenFile (CtrlO) with tab 2016-06-09 10:03:50 -04:00
Zachary Yedidia
1f89b41070 Fix mouse coordinates when tabbar is open
Fixes #170
2016-06-09 09:29:23 -04:00
Zachary Yedidia
1295b877e3 Fix tabbar bug
Fixes #169
2016-06-08 21:07:40 -04:00
Zachary Yedidia
860bc248c4 Fix resizing of tabs opened with the command line 2016-06-08 19:43:05 -04:00
Zachary Yedidia
2c73e1c043 Add default bindings for PreviousTab and NextTab 2016-06-08 18:48:59 -04:00
Zachary Yedidia
a79e964cb6 Make tabs respond to mouse events 2016-06-08 17:47:48 -04:00
Zachary Yedidia
059a5c3b89 Resize the view correctly when there is only one tab left 2016-06-08 14:38:15 -04:00
Zachary Yedidia
57f769c9a1 Don't display the tab bar if only one tab is open 2016-06-08 13:29:24 -04:00
Zachary Yedidia
40affa56c7 Create tab struct and reorganize tab bar 2016-06-08 13:26:50 -04:00
Zachary Yedidia
5f19f69681 Tab bar and support for opening multiple files 2016-06-08 12:19:36 -04:00
Zachary Yedidia
3080e32a8f Fix multiline remove in lineArray
I forgot that when you remove lines[n] then lines[n+1] becomes lines[n]
so to remove the range lines[a:b] you need to remove lines[a] for a-b
times. In this case we should delete lines[start.Y + 1] over and over
instead of removing lines[i] because i is contantly increasing.

Fixes #166
2016-06-08 10:21:27 -04:00
Zachary Yedidia
bd0fa7b6c2 Add DeleteLine binding
Ref #135
2016-06-07 21:47:34 -04:00
Zachary Yedidia
3deee51537 Fix bug with pasting with new Location system 2016-06-07 18:24:13 -04:00
Zachary Yedidia
d72da1eb5c Add more descriptive error message if there is an error with gob 2016-06-07 17:03:05 -04:00
Zachary Yedidia
8d184c1870 Fix glitch with undo 2016-06-07 16:10:39 -04:00
Zachary Yedidia
f0b6725000 Minor fix 2016-06-07 14:45:37 -04:00
Zachary Yedidia
f0faeb3a3e Fix bug with Move() 2016-06-07 12:31:02 -04:00
Zachary Yedidia
72f5808025 Replace rope with lineArray 2016-06-07 11:43:28 -04:00
Zachary Yedidia
d6307b2718 Proper support for double width characters
Fixes #99
2016-06-04 16:25:11 -04:00
Zachary Yedidia
852bd2c904 Fix redraw bug
Fixes #162
2016-06-04 16:00:53 -04:00
Zachary Yedidia
3d62a1baa0 Don't display cursorline if there is a selection 2016-06-02 13:15:47 -04:00
Zachary Yedidia
7e218562a3 Remove "Applying Diff" message on reopen
Fixes #160
2016-06-02 13:05:57 -04:00
Zachary Yedidia
e6c6c7f47d Merge 2016-06-02 13:04:11 -04:00
Zachary Yedidia
1d52ef6c54 Add simple way to save with sudo if you forgot to open micro with sudo
If you are editing a read-only file and forgot to open micro with sudo
so you could write to it, when saving the file, micro will now give you
the option to save with sudo.

This little hack is used by vim users to achieve the same behavior, but
micro makes it nicer to use. Here is an explanation for how it works:
http://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work

Fixes #158
2016-06-02 13:01:13 -04:00
JT Olds
646cdd6a9f chainable actions and flexible modifiers
Doesn't work quite right yet, but the idea is to support
arbitrary modifiers without having to hardcode in all the permutations
of alt/shift/ctrl for every key, along with chainable actions,
so this can be configured:

   "AltBackspace": "SelectWordLeft,Backspace",
2016-06-01 19:43:30 -06:00
Zachary Yedidia
9e96623725 Small improvement to line selection 2016-06-01 18:00:49 -04:00
Zachary Yedidia
742370646f Add cursorline option 2016-06-01 10:05:17 -04:00
Zachary Yedidia
5e83b2c99a Fix redraw glitch 2016-06-01 07:45:01 -04:00
Zachary Yedidia
cd6389c49e Make CursorPageUp and CursorPageDown default
This commit also fixes the documentation for PageUp and PageDown.

See #149
2016-05-31 19:45:19 -04:00
Zachary Yedidia
312595ba4f Merge 2016-05-31 19:25:35 -04:00
Zachary Yedidia
64c0446b8d Fix redraw glitch 2016-05-31 19:25:32 -04:00
JT Olds
8bd23a575f Add CursorPageUp and CursorPageDown actions 2016-05-31 16:02:42 -06:00
Zachary Yedidia
74cac8291a Screen redraw optimization
We don't have to clear the screen every time, we only have to make sure
that we erase the rest of the line that used to be on the current line.
We can still optimize a bit more by finding the longest line and drawing
to that length, but using the full width is fine for now.
2016-05-31 17:23:08 -04:00
Zachary Yedidia
ef17306f8b Allow changes from external programs to be undone
We use a diff to be able to transform the buffer into an arbitrary
string (usually when we reread the file after an external program such
as gofmt has changed it) and still preserve undo/redo.

Fixes #136
2016-05-30 21:01:40 -04:00
Zachary Yedidia
d4caf4510c Fix bug with on reopen 2016-05-30 18:22:10 -04:00
Zachary Yedidia
b312e7c9ad Refactor ReOpen function 2016-05-30 17:48:33 -04:00
Zachary Yedidia
7adcb13c08 Add support for user-created commands
Plugins can now create their own commands using the `MakeCommand`
function. Plugins can also now create their own keybindings with the
`BindKey` function. See the go plugin for an example of `MakeCommand`.
2016-05-30 13:38:50 -04:00
Zachary Yedidia
68189fd406 Add ability to bind lua functions defined in plugins 2016-05-30 09:12:04 -04:00
Zachary Yedidia
e3e50dd6f6 Add DeleteWordRight and DeleteWordLeft bindings 2016-05-29 19:09:27 -04:00
Zachary Yedidia
19717dd3ae Check if the file being edited has been modified by an external program 2016-05-29 17:58:06 -04:00
Zachary Yedidia
ee9f2a3d9c Add persistent undo as the option 2016-05-29 11:02:56 -04:00
Zachary Yedidia
1fe18eecb7 Add history navigation with up and down arrows
Fixes #145
2016-05-28 18:41:53 -04:00
Zachary Yedidia
a92a7dc4e6 Add savecursor option
This adds the `savecursor` option which will remember where the cursor
was when the file was closed and put it back when the file is opened
again. The option is off by default so that people aren't confused as to
why the cursor isn't at the start of a file when they open it.

This commit also adds a more general ability to serialize a buffer so
various components can be saved (which could also be useful for persistent
undo).

Fixes #107
2016-05-28 17:29:49 -04:00
Zachary Yedidia
96c7bc67c0 Make Quit() close help if its open and not the whole editor
Fixes #146
2016-05-28 14:53:48 -04:00
Zachary Yedidia
87d147cf92 Indicate correct help binding in status line 2016-05-28 13:58:42 -04:00
Zachary Yedidia
a08f457cd0 Allow users to insert \t and \n in replace commands
Fixes #144
2016-05-28 11:40:22 -04:00
Zachary Yedidia
b641d67561 Rematch every time a replacement is made 2016-05-28 11:36:48 -04:00
Zachary Yedidia
e8d8da1443 Refactor and clean up
This commit puts in place the ability for multiple views (splits).
This commit also removes the editor bindings so that all bindings can be
rebound by the user.
I also added some more comments

This fixes #109
2016-05-28 11:32:09 -04:00
Zachary Yedidia
d9d0af4a99 Merge pull request #139 from onodera-punpun/undo_option
make undothresthold a setting and add stackundo option
2016-05-27 18:05:37 -04:00
Camille
00fe82e9c7 Fix typo 2016-05-27 23:39:53 +02:00
Camille Scholtz
1806ef3ad0 Remove undo options, make stackundo default behavior 2016-05-27 23:39:27 +02:00
Camille Scholtz
007ece1e78 Add stackundo option 2016-05-26 19:36:59 +02:00
Zachary Yedidia
66d448a59c Fix highlighting and searching with unicode characters
Fixes #134
Fixes #138
2016-05-25 11:49:04 -04:00
Zachary Yedidia
ca58fc949e Make sure there is a selection before deleting it
Fixes #140
2016-05-24 17:46:46 -04:00
Camille Scholtz
e553815501 make undothresthold a setting (part 2) 2016-05-24 21:40:05 +02:00
Camille Scholtz
3da2a870b6 make undothresthold a setting 2016-05-24 21:38:46 +02:00
Zachary Yedidia
f730864e9f Do a bounds check for charpos function 2016-05-24 09:15:01 -04:00
Zachary Yedidia
55a6b6701d Fix crash 2016-05-22 20:59:31 -04:00
Zachary Yedidia
7d1d118fee Improve the scrollmargin behavior at the end of the buffer 2016-05-22 17:52:42 -04:00
Zachary Yedidia
6ece5bc41a Fix tabstospaces problem 2016-05-22 15:47:28 -04:00
Zachary Yedidia
4cc85868d9 Rename to tabstospaces for consistency 2016-05-22 15:35:57 -04:00
Zachary Yedidia
74e55f03fe Merge pull request #130 from onodera-punpun/center_search
Add a bit of "padding" to relocate.
2016-05-22 15:35:29 -04:00
Zachary Yedidia
f9adcd525d Add ability to bind alt keys
This lets you bind keys like Alt-b or Alt-f.
This commit also adds some new default keybindings in emacs style, so
alt-a is beginning of line and alt-e is end etc...
2016-05-22 15:33:40 -04:00
Zachary Yedidia
df684ec505 Store cursor and eventhandler in buffer instead of view
This is better design because the cursor and eventhandler are things the
buffer should know about directly but the view shouldn't. This should
make it easier to add persistent undo or location saving between
sessions (see #107).
2016-05-22 15:01:02 -04:00
Camille Scholtz
52f1be5725 simplify scrollmargins 2016-05-20 20:06:01 +02:00
Camille Scholtz
9791f192f8 Move scrollmargin declaration 2016-05-20 19:46:18 +02:00
Camille Scholtz
116b247439 Add scrollmargin option, rename scrollSpeed to scrollspeed for consistency, make help.md more consistent (replaced some spaces with tabs) 2016-05-20 19:44:16 +02:00
Camille Scholtz
096221fd0e Add padding to relocate func (fixes weird scrolling behavior) 2016-05-20 17:43:26 +02:00
Camille Scholtz
bbcd33d9fd Add a bit of "padding" to relocate 2016-05-20 17:34:20 +02:00
Zachary Yedidia
0673396335 Merge branch 'duplicate' of https://github.com/onodera-punpun/micro into onodera-punpun-duplicate 2016-05-20 09:46:54 -04:00
Zachary Yedidia
009792b6b1 Fix ctrl modifiers 2016-05-20 09:41:00 -04:00
Zachary Yedidia
3d6eba376d Merge 2016-05-20 09:19:28 -04:00
Zachary Yedidia
ebaad9b00c Use the new and updated version of tcell 2016-05-20 09:19:25 -04:00
Camille Scholtz
81e1a6e157 Give shortcuts more message feedback, add duplicate line option (fixes #124) 2016-05-20 00:04:53 +02:00
Zachary Yedidia
342149af3f Add colorscheme to makefile syntax file
Closes #125
2016-05-19 07:26:10 -04:00
Zachary Yedidia
b0930a0bb8 Merge pull request #121 from onodera-punpun/case_insensitive
search case insensitive
2016-05-18 12:47:40 -04:00
Camille Scholtz
bfbfc50018 Add ignorecase option 2016-05-18 18:44:32 +02:00
Camille Scholtz
2a95d0b012 search case insensitive 2016-05-18 18:11:11 +02:00
aerth
17397d503e
add binding for ClearStatus 2016-05-18 07:18:14 -07:00
Zachary Yedidia
77d8a2217f Fix selection graphics for indentchar 2016-05-18 09:33:49 -04:00
Zachary Yedidia
333c4ac6b1 Fix ordering of selection on SelectAll
Fixes #119
2016-05-18 09:27:17 -04:00
Zachary Yedidia
d7b61ecfa8 Fix small bug in Remove function in buffer 2016-05-17 19:57:16 -04:00
Camille Scholtz
4a38f232c0 Add copy feedback 2016-05-17 20:09:59 +02:00
Zachary Yedidia
6d394efcd9 Remove some unnecessary code
Fixes #104
2016-05-17 13:39:27 -04:00
Zachary Yedidia
c727775557 Merge pull request #111 from onodera-punpun/fix_jump
Fix jumping in rxvt-unicode when switching focus
2016-05-17 13:38:59 -04:00
Camille
baddc4107e Change relocate from true to false 2016-05-17 19:31:36 +02:00
Zachary Yedidia
363697a657 Fix capitalization of scrollSpeed option
Closes #114
2016-05-17 12:53:46 -04:00
Zachary Yedidia
abddd6eecd Merge pull request #110 from onodera-punpun/indentchar
Add indentation character option(s).
2016-05-17 12:37:47 -04:00
Zachary Yedidia
213bb6fabe Fix find where the match indicies are the same
Fixes #113
2016-05-17 12:36:41 -04:00
Camille Scholtz
87a0c06197 Add scrollspeed option 2016-05-17 18:15:47 +02:00
Camille Scholtz
93927cf0f5 Rename indent-line to indent-char, change default value from | to 2016-05-17 18:09:49 +02:00
Camille Scholtz
266461cc72 Fix jumping in rxvt-unicode when switching focus 2016-05-17 17:53:49 +02:00
Camille Scholtz
a0d4123731 Add indent character option 2016-05-17 17:17:18 +02:00
Zachary Yedidia
3d1fb69c15 Merge 2016-05-15 13:44:30 -04:00
Zachary Yedidia
aa8944304b Add statusline option
Fixes #105
2016-05-15 13:44:07 -04:00
Dante Swift
a03cacf1e7 saving now resets buffer IsModified to false 2016-05-15 00:26:36 -06:00