winterTTr / ace-jump-mode

a quick cursor jump mode for emacs

Home Page:https://github.com/winterTTr/ace-jump-mode/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Avoid checking pdf buffers?

DJJ88 opened this issue · comments

Hello,
I used interleave generally have two windows open. One notes and one with pdf. But emacs stalls when using ace-jump when a pdf buffer is open.
I was wondering if there was a way to make ace-jump to skip pdf buffers?

my solution:

(defun bss/pdf-mode-p(window)
(interactive)
(with-selected-window window
(if (string= major-mode "pdf-view-mode")
nil
t)))

(defun bss/window-list-wo-pdf(&optional frame)
(cl-remove-if-not #'bss/pdf-mode-p (window-list frame)))

(defun ace-jump-list-visual-area()
"Based on `ace-jump-mode-scope', search the possible buffers that is showing now."
(cond
((eq ace-jump-mode-scope 'global)
(loop for f in (frame-list)
append (loop for w in (bss/window-list-wo-pdf f)
collect (make-aj-visual-area :buffer (window-buffer w)
:window w
:frame f))))
((eq ace-jump-mode-scope 'visible)
(loop for f in (frame-list)
if (eq t (frame-visible-p f))
append (loop for w in (bss/window-list-wo-pdf f)
collect (make-aj-visual-area :buffer (window-buffer w)
:window w
:frame f))))
((eq ace-jump-mode-scope 'frame)
(loop for w in (bss/window-list-wo-pdf (selected-frame))
collect (make-aj-visual-area :buffer (window-buffer w)
:window w
:frame (selected-frame))))
((eq ace-jump-mode-scope 'window)
(if (string= major-mode "pdf-view-mode")
(error "can not properly work in PDF-mode")
(list
(make-aj-visual-area :buffer (current-buffer)
:window (selected-window)
:frame (selected-frame)))))
(t
(error "[AceJump] Invalid ace-jump-mode-scope, please check your configuration"))))