mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-24 10:38:38 +00:00
Added mouse-selection feature for bookmark list buffer.
(bookmark-bmenu-other-window-with-mouse): New function. (bookmark-bmenu-mode-map): Bind mouse-2. (bookmark-bmenu-list, bookmark-insert-location, bookmark-bmenu-hide-filenames): Put text property on bookmarks. (bookmark-bmenu-show-filenames): Remove text property from white spaces generated by `move-to-column'. (bookmark-bmenu-bookmark): Use `buffer-substring-no-properties' instead of `buffer-substring'.
This commit is contained in:
parent
97ae4b8947
commit
7e510a5e22
@ -1160,7 +1160,15 @@ Optional second arg NO-HISTORY means don't record this in the
|
|||||||
minibuffer history list `bookmark-history'."
|
minibuffer history list `bookmark-history'."
|
||||||
(interactive (bookmark-completing-read "Insert bookmark location"))
|
(interactive (bookmark-completing-read "Insert bookmark location"))
|
||||||
(or no-history (bookmark-maybe-historicize-string bookmark))
|
(or no-history (bookmark-maybe-historicize-string bookmark))
|
||||||
(insert (bookmark-location bookmark)))
|
(let ((start (point)))
|
||||||
|
(prog1
|
||||||
|
(insert (bookmark-location bookmark)) ; *Return this line*
|
||||||
|
(if window-system
|
||||||
|
(put-text-property start
|
||||||
|
(save-excursion (re-search-backward
|
||||||
|
"[^ \t]")
|
||||||
|
(1+ (point)))
|
||||||
|
'mouse-face 'highlight)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defalias 'bookmark-locate 'bookmark-insert-location)
|
(defalias 'bookmark-locate 'bookmark-insert-location)
|
||||||
@ -1444,7 +1452,9 @@ explicitly."
|
|||||||
(define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames)
|
(define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames)
|
||||||
(define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation)
|
(define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation)
|
||||||
(define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations)
|
(define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations)
|
||||||
(define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation))
|
(define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation)
|
||||||
|
(define-key bookmark-bmenu-mode-map [mouse-2]
|
||||||
|
'bookmark-bmenu-other-window-with-mouse))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1495,7 +1505,16 @@ deletion, or > if it is flagged for displaying."
|
|||||||
(not (string-equal annotation "")))
|
(not (string-equal annotation "")))
|
||||||
(insert " *")
|
(insert " *")
|
||||||
(insert " "))
|
(insert " "))
|
||||||
(insert (concat (bookmark-name-from-full-record full-record) "\n"))))
|
(let ((start (point)))
|
||||||
|
(insert (bookmark-name-from-full-record full-record))
|
||||||
|
(if window-system
|
||||||
|
(put-text-property start
|
||||||
|
(save-excursion (re-search-backward
|
||||||
|
"[^ \t]")
|
||||||
|
(1+ (point)))
|
||||||
|
'mouse-face 'highlight))
|
||||||
|
(insert "\n")
|
||||||
|
)))
|
||||||
bookmark-alist))
|
bookmark-alist))
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(forward-line 2)
|
(forward-line 2)
|
||||||
@ -1581,8 +1600,13 @@ Optional argument SHOW means show them unconditionally."
|
|||||||
(let ((bmrk (bookmark-bmenu-bookmark)))
|
(let ((bmrk (bookmark-bmenu-bookmark)))
|
||||||
(setq bookmark-bmenu-hidden-bookmarks
|
(setq bookmark-bmenu-hidden-bookmarks
|
||||||
(cons bmrk bookmark-bmenu-hidden-bookmarks))
|
(cons bmrk bookmark-bmenu-hidden-bookmarks))
|
||||||
(move-to-column bookmark-bmenu-file-column t)
|
(let ((start (save-excursion (end-of-line) (point))))
|
||||||
(delete-region (point) (progn (end-of-line) (point)))
|
(move-to-column bookmark-bmenu-file-column t)
|
||||||
|
;; Strip off `mouse-face' from the white spaces region.
|
||||||
|
(if window-system
|
||||||
|
(remove-text-properties start (point)
|
||||||
|
'(mouse-face))))
|
||||||
|
(delete-region (point) (progn (end-of-line) (point)))
|
||||||
(insert " ")
|
(insert " ")
|
||||||
;; Pass the NO-HISTORY arg:
|
;; Pass the NO-HISTORY arg:
|
||||||
(bookmark-insert-location bmrk t)
|
(bookmark-insert-location bmrk t)
|
||||||
@ -1608,7 +1632,14 @@ Optional argument SHOW means show them unconditionally."
|
|||||||
(while bookmark-bmenu-hidden-bookmarks
|
(while bookmark-bmenu-hidden-bookmarks
|
||||||
(move-to-column bookmark-bmenu-bookmark-column t)
|
(move-to-column bookmark-bmenu-bookmark-column t)
|
||||||
(bookmark-kill-line)
|
(bookmark-kill-line)
|
||||||
(insert (car bookmark-bmenu-hidden-bookmarks))
|
(let ((start (point)))
|
||||||
|
(insert (car bookmark-bmenu-hidden-bookmarks))
|
||||||
|
(if window-system
|
||||||
|
(put-text-property start
|
||||||
|
(save-excursion (re-search-backward
|
||||||
|
"[^ \t]")
|
||||||
|
(1+ (point)))
|
||||||
|
'mouse-face 'highlight)))
|
||||||
(setq bookmark-bmenu-hidden-bookmarks
|
(setq bookmark-bmenu-hidden-bookmarks
|
||||||
(cdr bookmark-bmenu-hidden-bookmarks))
|
(cdr bookmark-bmenu-hidden-bookmarks))
|
||||||
(forward-line 1))))))))
|
(forward-line 1))))))))
|
||||||
@ -1648,7 +1679,7 @@ Optional argument SHOW means show them unconditionally."
|
|||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(forward-char bookmark-bmenu-bookmark-column)
|
(forward-char bookmark-bmenu-bookmark-column)
|
||||||
(prog1
|
(prog1
|
||||||
(buffer-substring (point)
|
(buffer-substring-no-properties (point)
|
||||||
(progn
|
(progn
|
||||||
(end-of-line)
|
(end-of-line)
|
||||||
(point)))
|
(point)))
|
||||||
@ -1826,6 +1857,15 @@ The current window remains selected."
|
|||||||
(set-buffer o-buffer))
|
(set-buffer o-buffer))
|
||||||
(bookmark-show-annotation bookmark)))))
|
(bookmark-show-annotation bookmark)))))
|
||||||
|
|
||||||
|
(defun bookmark-bmenu-other-window-with-mouse (event)
|
||||||
|
"Select bookmark at the mouse pointer in other window, leaving bookmark menu visible."
|
||||||
|
(interactive "e")
|
||||||
|
(save-excursion
|
||||||
|
(set-buffer (window-buffer (posn-window (event-end event))))
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (posn-point (event-end event)))
|
||||||
|
(bookmark-bmenu-other-window))))
|
||||||
|
|
||||||
|
|
||||||
(defun bookmark-bmenu-show-annotation ()
|
(defun bookmark-bmenu-show-annotation ()
|
||||||
"Show the annotation for the current bookmark in another window."
|
"Show the annotation for the current bookmark in another window."
|
||||||
|
Loading…
Reference in New Issue
Block a user