From f28d238e0eccf9bda74b7c8691852d137839f06a Mon Sep 17 00:00:00 2001 From: Oleh Krehel Date: Thu, 22 Oct 2015 10:57:21 +0200 Subject: [PATCH] Fix for combined org-indent-mode and visual-line-mode * avy.el (avy-styles-alist): Make `avy-goto-line' use the 'pre style. (avy--overlay): Clone `line-prefix' and `wrap-prefix' text properties if any. These are the properties that `org-indent-mode' uses. (avy--line): Set `temporary-goal-column' to 0 - this affects `line-move-visual'. Fixes #110 --- avy.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/avy.el b/avy.el index f47d882..121630d 100644 --- a/avy.el +++ b/avy.el @@ -93,7 +93,7 @@ Use `avy-styles-alist' to customize this per-command." (const :tag "Post" post) (const :tag "De Bruijn" de-bruijn))) -(defcustom avy-styles-alist nil +(defcustom avy-styles-alist '((avy-goto-line . pre)) "Alist of avy-jump commands to the style for each command. If the commands isn't on the list, `avy-style' is used." :type '(alist @@ -619,10 +619,16 @@ When GROUP is non-nil, (BEG . END) should delimit that regex group." (let* ((pt (+ pt avy--overlay-offset)) (ol (make-overlay pt (1+ pt) (window-buffer wnd))) (old-str (with-selected-window wnd - (buffer-substring pt (1+ pt))))) + (buffer-substring pt (1+ pt)))) + (os-line-prefix (get-text-property 0 'line-prefix old-str)) + (os-wrap-prefix (get-text-property 0 'wrap-prefix old-str))) (when avy-background (setq old-str (propertize old-str 'face 'avy-background-face))) + (when os-line-prefix + (add-text-properties 0 1 `(line-prefix ,os-line-prefix) str)) + (when os-wrap-prefix + (add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str)) (overlay-put ol 'window wnd) (overlay-put ol 'display (concat str old-str)) (push ol avy--overlays-lead)))) @@ -976,8 +982,9 @@ Narrow the scope to BEG END." (point)) (selected-window)) candidates)) (if visual-line-mode - (ignore-errors - (line-move 1)) + (progn + (setq temporary-goal-column 0) + (line-move-visual 1 t)) (forward-line 1))))))) (setq avy-action #'identity) (avy--process (nreverse candidates) (avy--style-fn avy-style))))