Skip to content

Commit

Permalink
allow optionally brace matching with the closing brace to the left of…
Browse files Browse the repository at this point in the history
… the cursor

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
  • Loading branch information
jtolio committed Feb 28, 2018
1 parent 6d2cbb6 commit ea6a87d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
15 changes: 13 additions & 2 deletions cmd/micro/cellview.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,20 @@ func (c *CellView) Draw(buf *Buffer, top, height, left, width int) {
// bracePairs is defined in buffer.go
if buf.Settings["matchbrace"].(bool) {
for _, bp := range bracePairs {
r := buf.Cursor.RuneUnder(buf.Cursor.X)
if r == bp[0] || r == bp[1] {
if buf.Cursor.RuneUnder(buf.Cursor.X) == bp[0] {
matchingBrace = buf.FindMatchingBrace(bp, buf.Cursor.Loc)
break
}
left := buf.Cursor.Loc.X
if buf.Settings["matchbraceleft"].(bool) {
left -= 1
if left < 0 {
left = 0
}
}
if buf.Cursor.RuneUnder(left) == bp[1] {
matchingBrace = buf.FindMatchingBrace(
bp, Loc{X: left, Y: buf.Cursor.Loc.Y})
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions cmd/micro/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ func DefaultGlobalSettings() map[string]interface{} {
"keepautoindent": false,
"keymenu": false,
"matchbrace": false,
"matchbraceleft": false,
"mouse": true,
"pluginchannels": []string{"https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json"},
"pluginrepos": []string{},
Expand Down Expand Up @@ -257,6 +258,7 @@ func DefaultLocalSettings() map[string]interface{} {
"indentchar": " ",
"keepautoindent": false,
"matchbrace": false,
"matchbraceleft": false,
"rmtrailingws": false,
"ruler": true,
"savecursor": false,
Expand Down
6 changes: 6 additions & 0 deletions runtime/help/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,12 @@ Here are the options that you can set:

default value: `false`

* `matchbraceleft`: when matching a closing brace, should matching match the
brace directly under the cursor, or the character to the left? only matters
if `matchbrace` is true

default value: `false`

* `syntax`: turns syntax on or off.

default value: `true`
Expand Down

0 comments on commit ea6a87d

Please sign in to comment.