mirror of
https://github.com/zyedidia/micro.git
synced 2024-09-17 15:07:41 +03:00
Highlighting tab errors
Added option `hltaberrors` which helps to spot sloppy whitespace errors with tabs used instead of spaces or vice versa. It uses the value of `tabstospaces` option as a criterion whether a tab or space character is an error or not. If `tabstospaces` is on, we probably expect that the file should contain no tab characters, so any tab character is highlighted as an error. If `tabstospaces` is off, we probably expect that the file uses indentation with tabs, so space characters in the initial indent part of lines are highlighted as errors.
This commit is contained in:
parent
8368af3cc8
commit
64370b70d6
@ -289,6 +289,7 @@ var defaultCommonSettings = map[string]interface{}{
|
||||
"fileformat": defaultFileFormat(),
|
||||
"filetype": "unknown",
|
||||
"hlsearch": false,
|
||||
"hltaberrors": false,
|
||||
"incsearch": true,
|
||||
"ignorecase": true,
|
||||
"indentchar": " ",
|
||||
|
@ -495,6 +495,8 @@ func (w *BufWindow) displayBuffer() {
|
||||
vloc.X = w.gutterOffset
|
||||
}
|
||||
|
||||
leadingwsEnd := len(util.GetLeadingWhitespace(b.LineBytes(bloc.Y)))
|
||||
|
||||
line, nColsBeforeStart, bslice, startStyle := w.getStartInfo(w.StartCol, bloc.Y)
|
||||
if startStyle != nil {
|
||||
curStyle = *startStyle
|
||||
@ -518,6 +520,18 @@ func (w *BufWindow) displayBuffer() {
|
||||
// over cursor-line and color-column
|
||||
dontOverrideBackground := origBg != defBg
|
||||
|
||||
if b.Settings["hltaberrors"].(bool) {
|
||||
if s, ok := config.Colorscheme["tab-error"]; ok {
|
||||
isTab := (r == '\t') || (r == ' ' && !showcursor)
|
||||
if (b.Settings["tabstospaces"].(bool) && isTab) ||
|
||||
(!b.Settings["tabstospaces"].(bool) && bloc.X < leadingwsEnd && r == ' ' && !isTab) {
|
||||
fg, _, _ := s.Decompose()
|
||||
style = style.Background(fg)
|
||||
dontOverrideBackground = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for _, c := range cursors {
|
||||
if c.HasSelection() &&
|
||||
(bloc.GreaterEqual(c.CurSelection[0]) && bloc.LessThan(c.CurSelection[1]) ||
|
||||
|
@ -174,6 +174,13 @@ Here are the available options:
|
||||
|
||||
default value: `false`
|
||||
|
||||
* `hltaberrors`: highlight tabs when spaces are expected, and spaces when tabs
|
||||
are expected. More precisely: if `tabstospaces` option is on, highlight
|
||||
all tab characters; if `tabstospaces` is off, highlight space characters
|
||||
in the initial indent part of the line.
|
||||
|
||||
default value: `false`
|
||||
|
||||
* `incsearch`: enable incremental search in "Find" prompt (matching as you type).
|
||||
|
||||
default value: `true`
|
||||
|
Loading…
Reference in New Issue
Block a user