8000 do not change point position for open buffers by QiangF · Pull Request #8 · minad/bookmark-view · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

do not change point position for open buffers #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations < 8000 details-menu class="select-menu-modal position-absolute" style="z-index: 99;" id="conversations-menu" src="/minad/bookmark-view/pull/8/conversations_menu" preload>
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions bookmark-view.el
D300
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ The current buffer must not have a backing file."
(eq bookmark-make-record-function #'bookmark-make-record-default))
`(,(bookmark-buffer-name)
(buffer . ,(buffer-name))
;; save buffer dir for dired-mode buffers
(buffer-dir . ,(if (equal major-mode 'dired-mode)
default-directory nil))
(handler . ,#'bookmark-view-handler-fallback))
(bookmark-make-record)))

Expand Down Expand Up @@ -183,10 +186,44 @@ without overwriting an already existing bookmark."
(bookmark-store name (bookmark-view--get) no-overwrite)
(message "View `%s' saved" name))

(defun bookmark-view-update-buffer-point (elt)
(when (eq (car-safe elt) 'buffer)
(let ((buffer (get-buffer (nth 1 elt))))
(when (buffer-live-p buffer)
(with-current-buffer buffer
(mapc (lambda (elt)
(when (eq (car-safe elt) 'point)
(setcdr elt (point))))
(cddr elt)))))))

;;;###autoload
(defun bookmark-view-open (bm)
"Open view bookmark BM."
(interactive (list (bookmark-view-read "Open view: ")))
;; update point for open buffers
(mapc (lambda (elt)
(if (eq (car-safe elt) 'buffer)
;; create non-existing dired buffer
(mapc (lambda (elt)
(let* ((buffer-alist (cdr elt))
(buffer-cons (assoc 'buffer buffer-alist))
(buffer-dir (cdr (assoc 'buffer-dir buffer-alist))))
(when buffer-dir
(unless (and buffer-cons (get-buffer (cdr buffer-cons)))
(dired buffer-dir)))))
(cdr elt))
(when (eq (car-safe elt) 'window)
(mapc (lambda (elt)
(if (eq (car-safe elt) 'leaf)
(mapc (lambda (elt)
(when (eq (car-safe elt) 'buffer)
(bookmark-view-update-buffer-point elt)))
(cdr elt))
(when (eq (car-safe elt) 'buffer)
(bookmark-view-update-buffer-point elt))))
(cdr elt))
(cdr elt))))
(cdr (bookmark-get-bookmark bm)))
(bookmark-jump bm #'ignore))

;;;###autoload
Expand Down
0