Remove trailing space highlight and add highlight of redundant spaces

This commit is contained in:
Veronica Berglyd Olsen
2021-05-23 16:17:05 +02:00
parent a3819a7785
commit 0826a2f8a3
20 changed files with 57 additions and 30 deletions
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 150, 150, 150
keyword = 200, 46, 0 keyword = 200, 46, 0
value = 184, 200, 0 value = 184, 200, 0
spellcheckline = 200, 46, 0 spellcheckline = 200, 46, 0
tagerror = 46, 200, 0 errorline = 46, 200, 0
replacetag = 0, 184, 46 replacetag = 0, 184, 46
modifier = 200, 120, 0 modifier = 200, 120, 0
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 100, 100, 100
keyword = 200, 50, 50 keyword = 200, 50, 50
value = 50, 150, 50 value = 50, 150, 50
spellcheckline = 200, 0, 0 spellcheckline = 200, 0, 0
tagerror = 0, 150, 0 errorline = 0, 150, 0
replacetag = 0, 150, 0 replacetag = 0, 150, 0
modifier = 150, 110, 30 modifier = 150, 110, 30
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 150, 150, 150
keyword = 225, 225, 225 keyword = 225, 225, 225
value = 200, 200, 200 value = 200, 200, 200
spellcheckline = 200, 46, 0 spellcheckline = 200, 46, 0
tagerror = 46, 200, 0 errorline = 46, 200, 0
replacetag = 225, 225, 225 replacetag = 225, 225, 225
modifier = 225, 225, 225 modifier = 225, 225, 225
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 100, 100, 100
keyword = 0, 0, 0 keyword = 0, 0, 0
value = 20, 20, 20 value = 20, 20, 20
spellcheckline = 200, 0, 0 spellcheckline = 200, 0, 0
tagerror = 0, 150, 0 errorline = 0, 150, 0
replacetag = 0, 0, 0 replacetag = 0, 0, 0
modifier = 0, 0, 0 modifier = 0, 0, 0
+1 -1
View File
@@ -40,6 +40,6 @@ hidden = 152, 159, 177
keyword = 222, 61, 58 keyword = 222, 61, 58
value = 150, 74, 193 value = 150, 74, 193
spellcheckline = 222, 61, 58 spellcheckline = 222, 61, 58
tagerror = 8, 145, 106 errorline = 8, 145, 106
replacetag = 42, 162, 152 replacetag = 42, 162, 152
modifier = 224, 175, 5 modifier = 224, 175, 5
+1 -1
View File
@@ -40,6 +40,6 @@ hidden = 99, 119, 119
keyword = 247, 140, 108 keyword = 247, 140, 108
value = 199, 146, 234 value = 199, 146, 234
spellcheckline = 247, 140, 108 spellcheckline = 247, 140, 108
tagerror = 173, 219, 103 errorline = 173, 219, 103
replacetag = 127, 219, 202 replacetag = 127, 219, 202
modifier = 236, 196, 141 modifier = 236, 196, 141
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 147, 161, 161
keyword = 133, 153, 0 keyword = 133, 153, 0
value = 203, 75, 22 value = 203, 75, 22
spellcheckline = 203, 75, 22 spellcheckline = 203, 75, 22
tagerror = 220, 50, 47 errorline = 220, 50, 47
replacetag = 133, 153, 0 replacetag = 133, 153, 0
modifier = 181, 137, 0 modifier = 181, 137, 0
+1 -1
View File
@@ -20,6 +20,6 @@ hidden = 88, 110, 117
keyword = 133, 153, 0 keyword = 133, 153, 0
value = 203, 75, 22 value = 203, 75, 22
spellcheckline = 203, 75, 22 spellcheckline = 203, 75, 22
tagerror = 220, 50, 47 errorline = 220, 50, 47
replacetag = 133, 153, 0 replacetag = 133, 153, 0
modifier = 181, 137, 0 modifier = 181, 137, 0
+1 -1
View File
@@ -40,6 +40,6 @@ hidden = 142, 144, 140
keyword = 240, 40, 41 keyword = 240, 40, 41
value = 137, 89, 168 value = 137, 89, 168
spellcheckline = 240, 40, 41 spellcheckline = 240, 40, 41
tagerror = 113, 140, 0 errorline = 113, 140, 0
replacetag = 62, 153, 159 replacetag = 62, 153, 159
modifier = 245, 135, 31 modifier = 245, 135, 31
+1 -1
View File
@@ -40,6 +40,6 @@ hidden = 150, 152, 150
keyword = 204, 102, 102 keyword = 204, 102, 102
value = 178, 148, 187 value = 178, 148, 187
spellcheckline = 204, 102, 102 spellcheckline = 204, 102, 102
tagerror = 181, 189, 104 errorline = 181, 189, 104
replacetag = 138, 190, 183 replacetag = 138, 190, 183
modifier = 222, 147, 95 modifier = 222, 147, 95
@@ -40,6 +40,6 @@ hidden = 114, 133, 183
keyword = 255, 157, 164 keyword = 255, 157, 164
value = 235, 187, 255 value = 235, 187, 255
spellcheckline = 255, 157, 164 spellcheckline = 255, 157, 164
tagerror = 209, 241, 169 errorline = 209, 241, 169
replacetag = 153, 255, 255 replacetag = 153, 255, 255
modifier = 255, 197, 143 modifier = 255, 197, 143
@@ -40,6 +40,6 @@ hidden = 150, 152, 150
keyword = 213, 78, 83 keyword = 213, 78, 83
value = 195, 151, 216 value = 195, 151, 216
spellcheckline = 213, 78, 83 spellcheckline = 213, 78, 83
tagerror = 185, 202, 74 errorline = 185, 202, 74
replacetag = 112, 192, 177 replacetag = 112, 192, 177
modifier = 231, 140, 69 modifier = 231, 140, 69
@@ -40,6 +40,6 @@ hidden = 153, 153, 153
keyword = 242, 119, 122 keyword = 242, 119, 122
value = 204, 153, 204 value = 204, 153, 204
spellcheckline = 242, 119, 122 spellcheckline = 242, 119, 122
tagerror = 153, 204, 153 errorline = 153, 204, 153
replacetag = 102, 204, 204 replacetag = 102, 204, 204
modifier = 249, 145, 57 modifier = 249, 145, 57
+5
View File
@@ -138,6 +138,7 @@ class Config:
self.doJustify = False # Justify text self.doJustify = False # Justify text
self.showTabsNSpaces = False # Show tabs and spaces in edior self.showTabsNSpaces = False # Show tabs and spaces in edior
self.showLineEndings = False # Show line endings in editor self.showLineEndings = False # Show line endings in editor
self.showMultiSpaces = True # Highlight multiple spaces in the text
self.doReplace = True # Enable auto-replace as you type self.doReplace = True # Enable auto-replace as you type
self.doReplaceSQuote = True # Smart single quotes self.doReplaceSQuote = True # Smart single quotes
@@ -602,6 +603,9 @@ class Config:
self.showLineEndings = self._parseLine( self.showLineEndings = self._parseLine(
cnfParse, cnfSec, "showlineendings", self.CNF_BOOL, self.showLineEndings cnfParse, cnfSec, "showlineendings", self.CNF_BOOL, self.showLineEndings
) )
self.showMultiSpaces = self._parseLine(
cnfParse, cnfSec, "showmultispaces", self.CNF_BOOL, self.showMultiSpaces
)
self.bigDocLimit = self._parseLine( self.bigDocLimit = self._parseLine(
cnfParse, cnfSec, "bigdoclimit", self.CNF_INT, self.bigDocLimit cnfParse, cnfSec, "bigdoclimit", self.CNF_INT, self.bigDocLimit
) )
@@ -765,6 +769,7 @@ class Config:
cnfParse.set(cnfSec, "spellcheck", str(self.spellLanguage)) cnfParse.set(cnfSec, "spellcheck", str(self.spellLanguage))
cnfParse.set(cnfSec, "showtabsnspaces", str(self.showTabsNSpaces)) cnfParse.set(cnfSec, "showtabsnspaces", str(self.showTabsNSpaces))
cnfParse.set(cnfSec, "showlineendings", str(self.showLineEndings)) cnfParse.set(cnfSec, "showlineendings", str(self.showLineEndings))
cnfParse.set(cnfSec, "showmultispaces", str(self.showMultiSpaces))
cnfParse.set(cnfSec, "bigdoclimit", str(self.bigDocLimit)) cnfParse.set(cnfSec, "bigdoclimit", str(self.bigDocLimit))
cnfParse.set(cnfSec, "showfullpath", str(self.showFullPath)) cnfParse.set(cnfSec, "showfullpath", str(self.showFullPath))
cnfParse.set(cnfSec, "highlightquotes", str(self.highlightQuotes)) cnfParse.set(cnfSec, "highlightquotes", str(self.highlightQuotes))
+16
View File
@@ -924,6 +924,19 @@ class GuiPreferencesSyntax(QWidget):
self.tr("Applies to emphasis (italic) and strong (bold).") self.tr("Applies to emphasis (italic) and strong (bold).")
) )
# Text Errors
# ===========
self.mainForm.addGroupLabel(self.tr("Text Errors"))
self.showMultiSpaces = QSwitch()
self.showMultiSpaces.setChecked(self.mainConf.showMultiSpaces)
self.mainForm.addRow(
self.tr("Mark redundant spaces"),
self.showMultiSpaces,
self.tr("Trailing spaces or multiple spaces between words.")
)
return return
def saveValues(self): def saveValues(self):
@@ -940,6 +953,9 @@ class GuiPreferencesSyntax(QWidget):
# Text Emphasis # Text Emphasis
self.mainConf.highlightEmph = self.highlightEmph.isChecked() self.mainConf.highlightEmph = self.highlightEmph.isChecked()
# Text Errors
self.mainConf.showMultiSpaces = self.showMultiSpaces.isChecked()
self.mainConf.confChanged = True self.mainConf.confChanged = True
return return
+18 -14
View File
@@ -71,7 +71,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.colKey = QColor(0, 0, 0) self.colKey = QColor(0, 0, 0)
self.colVal = QColor(0, 0, 0) self.colVal = QColor(0, 0, 0)
self.colSpell = QColor(0, 0, 0) self.colSpell = QColor(0, 0, 0)
self.colTagErr = QColor(0, 0, 0) self.colError = QColor(0, 0, 0)
self.colRepTag = QColor(0, 0, 0) self.colRepTag = QColor(0, 0, 0)
self.initHighlighter() self.initHighlighter()
@@ -95,11 +95,11 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.colKey = QColor(*self.theTheme.colKey) self.colKey = QColor(*self.theTheme.colKey)
self.colVal = QColor(*self.theTheme.colVal) self.colVal = QColor(*self.theTheme.colVal)
self.colSpell = QColor(*self.theTheme.colSpell) self.colSpell = QColor(*self.theTheme.colSpell)
self.colTagErr = QColor(*self.theTheme.colTagErr) self.colError = QColor(*self.theTheme.colError)
self.colRepTag = QColor(*self.theTheme.colRepTag) self.colRepTag = QColor(*self.theTheme.colRepTag)
self.colMod = QColor(*self.theTheme.colMod) self.colMod = QColor(*self.theTheme.colMod)
self.colTrail = QColor(*self.theTheme.colEmph) self.colBreak = QColor(*self.theTheme.colEmph)
self.colTrail.setAlpha(64) self.colBreak.setAlpha(64)
self.colEmph = None self.colEmph = None
if self.mainConf.highlightEmph: if self.mainConf.highlightEmph:
@@ -117,8 +117,8 @@ class GuiDocHighlighter(QSyntaxHighlighter):
"bold" : self._makeFormat(self.colEmph, "bold"), "bold" : self._makeFormat(self.colEmph, "bold"),
"italic" : self._makeFormat(self.colEmph, "italic"), "italic" : self._makeFormat(self.colEmph, "italic"),
"strike" : self._makeFormat(self.colHidden, "strike"), "strike" : self._makeFormat(self.colHidden, "strike"),
"trailing" : self._makeFormat(self.colTrail, "background"), "mspaces" : self._makeFormat(self.colError, "errline"),
"nobreak" : self._makeFormat(self.colTrail, "background"), "nobreak" : self._makeFormat(self.colBreak, "background"),
"dialogue1" : self._makeFormat(self.colDialN), "dialogue1" : self._makeFormat(self.colDialN),
"dialogue2" : self._makeFormat(self.colDialD), "dialogue2" : self._makeFormat(self.colDialD),
"dialogue3" : self._makeFormat(self.colDialS), "dialogue3" : self._makeFormat(self.colDialS),
@@ -131,12 +131,13 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.hRules = [] self.hRules = []
# Trailing Spaces, 2+ # Multiple or Trailing Spaces
self.hRules.append(( if self.mainConf.showMultiSpaces:
r"[ ]{2,}$", { self.hRules.append((
0 : self.hStyles["trailing"], r"[ ]{2,}|[ ]*$", {
} 0 : self.hStyles["mspaces"],
)) }
))
# Non-Breaking Spaces # Non-Breaking Spaces
self.hRules.append(( self.hRules.append((
@@ -174,7 +175,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
} }
)) ))
# Markdown # Markdown Syntax
self.hRules.append(( self.hRules.append((
nwRegEx.FMT_EI, { nwRegEx.FMT_EI, {
1 : self.hStyles["hidden"], 1 : self.hStyles["hidden"],
@@ -296,7 +297,7 @@ class GuiDocHighlighter(QSyntaxHighlighter):
self.setFormat(xPos, xLen, self.hStyles["value"]) self.setFormat(xPos, xLen, self.hStyles["value"])
else: else:
kwFmt = self.format(xPos) kwFmt = self.format(xPos)
kwFmt.setUnderlineColor(self.colTagErr) kwFmt.setUnderlineColor(self.colError)
kwFmt.setUnderlineStyle(QTextCharFormat.SpellCheckUnderline) kwFmt.setUnderlineStyle(QTextCharFormat.SpellCheckUnderline)
self.setFormat(xPos, xLen, kwFmt) self.setFormat(xPos, xLen, kwFmt)
@@ -391,6 +392,9 @@ class GuiDocHighlighter(QSyntaxHighlighter):
theFormat.setFontItalic(True) theFormat.setFontItalic(True)
if "strike" in fmtStyle: if "strike" in fmtStyle:
theFormat.setFontStrikeOut(True) theFormat.setFontStrikeOut(True)
if "errline" in fmtStyle:
theFormat.setUnderlineColor(self.colError)
theFormat.setUnderlineStyle(QTextCharFormat.SpellCheckUnderline)
if "underline" in fmtStyle: if "underline" in fmtStyle:
theFormat.setFontUnderline(True) theFormat.setFontUnderline(True)
if "background" in fmtStyle: if "background" in fmtStyle:
+2 -2
View File
@@ -106,7 +106,7 @@ class GuiTheme:
self.colKey = [0, 0, 0] self.colKey = [0, 0, 0]
self.colVal = [0, 0, 0] self.colVal = [0, 0, 0]
self.colSpell = [0, 0, 0] self.colSpell = [0, 0, 0]
self.colTagErr = [0, 0, 0] self.colError = [0, 0, 0]
self.colRepTag = [0, 0, 0] self.colRepTag = [0, 0, 0]
self.colMod = [0, 0, 0] self.colMod = [0, 0, 0]
@@ -373,7 +373,7 @@ class GuiTheme:
self.colKey = self._loadColour(confParser, cnfSec, "keyword") self.colKey = self._loadColour(confParser, cnfSec, "keyword")
self.colVal = self._loadColour(confParser, cnfSec, "value") self.colVal = self._loadColour(confParser, cnfSec, "value")
self.colSpell = self._loadColour(confParser, cnfSec, "spellcheckline") self.colSpell = self._loadColour(confParser, cnfSec, "spellcheckline")
self.colTagErr = self._loadColour(confParser, cnfSec, "tagerror") self.colError = self._loadColour(confParser, cnfSec, "errorline")
self.colRepTag = self._loadColour(confParser, cnfSec, "replacetag") self.colRepTag = self._loadColour(confParser, cnfSec, "replacetag")
self.colMod = self._loadColour(confParser, cnfSec, "modifier") self.colMod = self._loadColour(confParser, cnfSec, "modifier")
@@ -55,6 +55,7 @@ spelltool = internal
spellcheck = en spellcheck = en
showtabsnspaces = False showtabsnspaces = False
showlineendings = False showlineendings = False
showmultispaces = True
bigdoclimit = 800 bigdoclimit = 800
showfullpath = True showfullpath = True
highlightquotes = True highlightquotes = True
@@ -55,6 +55,7 @@ spelltool = internal
spellcheck = en spellcheck = en
showtabsnspaces = True showtabsnspaces = True
showlineendings = True showlineendings = True
showmultispaces = True
bigdoclimit = 500 bigdoclimit = 500
showfullpath = False showfullpath = False
highlightquotes = False highlightquotes = False
+1 -1
View File
@@ -109,7 +109,7 @@ def testGuiTheme_Main(qtbot, monkeypatch, nwMinimal, tmpDir):
assert nwGUI.theTheme.colKey == [242, 119, 122] assert nwGUI.theTheme.colKey == [242, 119, 122]
assert nwGUI.theTheme.colVal == [204, 153, 204] assert nwGUI.theTheme.colVal == [204, 153, 204]
assert nwGUI.theTheme.colSpell == [242, 119, 122] assert nwGUI.theTheme.colSpell == [242, 119, 122]
assert nwGUI.theTheme.colTagErr == [153, 204, 153] assert nwGUI.theTheme.colError == [153, 204, 153]
assert nwGUI.theTheme.colRepTag == [102, 204, 204] assert nwGUI.theTheme.colRepTag == [102, 204, 204]
assert nwGUI.theTheme.colMod == [249, 145, 57] assert nwGUI.theTheme.colMod == [249, 145, 57]