From a5b2e47098dfc8a46155cbfca240e08667bbbd6c Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 12 Nov 2023 21:27:24 +0100 Subject: [PATCH] Don't block auto-replace on keyword lines, and only show completer on single keypresses --- novelwriter/gui/doceditor.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py index 8adde701..d6d9c683 100644 --- a/novelwriter/gui/doceditor.py +++ b/novelwriter/gui/doceditor.py @@ -1008,7 +1008,9 @@ class GuiDocEditor(QPlainTextEdit): return text = block.text() - if text.startswith("@"): + if text.startswith("@") and added + removed == 1: + # Only run on single keypresses, otherwise it will trigger + # at unwanted times when other changes are made to the document cursor = self.textCursor() bPos = cursor.positionInBlock() if bPos > 0: @@ -1016,8 +1018,10 @@ class GuiDocEditor(QPlainTextEdit): point = self.cursorRect().bottomRight() self._completer.move(self.viewport().mapToGlobal(point)) self._completer.setVisible(show) + else: + self._completer.setVisible(False) - elif self._doReplace and added == 1: + if self._doReplace and added == 1: self._docAutoReplace(text) return