From 70fb3a95004b297870c792033ec03cc11ed15037 Mon Sep 17 00:00:00 2001 From: John Lorentzson Date: Thu, 31 Jul 2025 15:34:12 +0200 Subject: [PATCH] Make a compile failure only redisplay if it needs to --- editor/editor.lisp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/editor/editor.lisp b/editor/editor.lisp index 830a97a..27fb7e5 100644 --- a/editor/editor.lisp +++ b/editor/editor.lisp @@ -530,6 +530,12 @@ Additionally ensures correct line numbers on the way, as a bonus." ,column (ignore-errors (line-length ,line)))) :until (null ,line))) +(defmethod get-line-in-buffer-by-number ((buffer buffer) line-number) + (loop :for line := (first-line buffer) :then (next-line line) + :until (null line) + :when (eql line-number (line-number line)) + :return line)) + (defun status-line-string () @@ -942,8 +948,14 @@ Additionally ensures correct line numbers on the way, as a bonus." (force-output *eio*) (let ((key (get-input-sequence))) (if (and (integerp line) (integerp col) - (equal '(:C . #\j) key)) - (cursor-go-to (cursor *editor*) line col) + (equal '(:C . #\j) key)) + (let ((refreshp (line-in-view + (get-line-in-buffer-by-number + (current-buffer *editor*) line) + (current-view *editor*)))) + (cursor-go-to (cursor *editor*) line col) + (when refreshp + (redisplay-view (current-view *editor*)))) (redisplay-view (current-view *editor*))))) (defparameter *refresh-asm-functions-p* #+swank t #-swank nil