(defun vc-directory-resynch-file (file)
"Update the entries for FILE in any VC Dired buffers that list it."
- ;;FIXME This needs to be implemented so it works for vc-dir
(let ((buffers (vc-dired-buffers-for-dir (file-name-directory file))))
(when buffers
(mapcar (lambda (buffer)
(define-key map [open]
'(menu-item "Open file" vc-dir-find-file
:help "Find the file on the current line"))
- ;; FIXME: Stuff starting here should be appended by vc
- ;; VC info details
- (define-key map [sepvcdet] '("--"))
- (define-key map [remup]
- '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date
- :help "Hide up-to-date items from display"))
- ;; FIXME: This needs a key binding. And maybe a better name
- ;; ("Insert" like PCL-CVS uses does not sound that great either)...
- (define-key map [ins]
- '(menu-item "Show File" vc-dir-show-fileentry
- :help "Show a file in the VC status listing even though it might be up to date"))
- (define-key map [annotate]
- '(menu-item "Annotate" vc-annotate
- :help "Display the edit history of the current file using colors"))
- (define-key map [diff]
- '(menu-item "Compare with Base Version" vc-diff
- :help "Compare file set with the base version"))
- (define-key map [log]
- '(menu-item "Show history" vc-print-log
- :help "List the change log of the current file set in a window"))
- ;; VC commands.
- (define-key map [sepvccmd] '("--"))
- (define-key map [update]
- '(menu-item "Update to latest version" vc-update
- :help "Update the current fileset's files to their tip revisions"))
- (define-key map [revert]
- '(menu-item "Revert to base version" vc-revert
- :help "Revert working copies of the selected fileset to their repository contents."))
- (define-key map [next-action]
- ;; FIXME: This really really really needs a better name!
- ;; And a key binding too.
- '(menu-item "Check In/Out" vc-next-action
- :help "Do the next logical version control operation on the current fileset"))
- (define-key map [register]
- '(menu-item "Register" vc-dir-register
- :help "Register file set into the version control system"))
map)
"Menu for VC status")
(define-key map "\C-c\C-c" 'vc-dir-kill-dir-status-process)
(define-key map [(down-mouse-3)] 'vc-dir-menu)
(define-key map [(mouse-2)] 'vc-dir-toggle-mark)
-
- ;; FIXME: Calls back into vc.el
- ;; Hook up the menu.
- (define-key map [menu-bar vc-dir-mode]
- '(menu-item
- ;; This is used so that client modes can add mode-specific
- ;; menu items to vc-dir-menu-map.
- "VC Status" vc-dir-menu-map :filter vc-dir-menu-map-filter))
map)
- "Keymap for VC status")
+ "Keymap for VC dispatcher commands")
(defmacro vc-at-event (event &rest body)
"Evaluate `body' wich point located at event-start of `event'.
(defun vc-dir-menu (e)
"Popup the VC status menu."
(interactive "e")
- (vc-at-event e (popup-menu vc-dir-menu-map e)))
+ (vc-at-event e (popup-menu right-menu-map e)))
(defvar vc-dir-tool-bar-map
(let ((map (make-sparse-keymap)))
(setq buffer-read-only t)
(use-local-map vc-dir-mode-map)
(set (make-local-variable 'tool-bar-map) vc-dir-tool-bar-map)
+ (set (make-local-variable 'right-menu-map) vc-dir-menu-map)
(set (make-local-variable 'vc-client-mode) client-object)
(let ((buffer-read-only nil))
(erase-buffer)
(define-key map "R" 'vc-revert) ;; u is taken by dispatcher unmark.
(define-key map "A" 'vc-annotate) ;; g is taken by dispatcher referesh
(define-key map "l" 'vc-print-log) ;; C-x v l
- (define-key map "x" 'vc-dir-hide-up-to-date)
- ))))
+ (define-key map "x" 'vc-dir-hide-up-to-date))
+ ;; Add VC-specific context menu items
+ (let ((map right-menu-map))
+ ;; VC info details
+ (define-key map [sepvcdet] '("--"))
+ (define-key map [remup]
+ '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date
+ :help "Hide up-to-date items from display"))
+ ;; FIXME: This needs a key binding. And maybe a better name
+ ;; ("Insert" like PCL-CVS uses does not sound that great either)...
+ (define-key map [ins]
+ '(menu-item "Show File" vc-dir-show-fileentry
+ :help "Show a file in the VC status listing even though it might be up to date"))
+ (define-key map [annotate]
+ '(menu-item "Annotate" vc-annotate
+ :help "Display the edit history of the current file using colors"))
+ (define-key map [diff]
+ '(menu-item "Compare with Base Version" vc-diff
+ :help "Compare file set with the base version"))
+ (define-key map [log]
+ '(menu-item "Show history" vc-print-log
+ :help "List the change log of the current file set in a window"))
+ ;; VC commands.
+ (define-key map [sepvccmd] '("--"))
+ (define-key map [update]
+ '(menu-item "Update to latest version" vc-update
+ :help "Update the current fileset's files to their tip revisions"))
+ (define-key map [revert]
+ '(menu-item "Revert to base version" vc-revert
+ :help "Revert working copies of the selected fileset to their repository contents."))
+ (define-key map [next-action]
+ ;; FIXME: This really really really needs a better name!
+ ;; And a key binding too.
+ '(menu-item "Check In/Out" vc-next-action
+ :help "Do the next logical version control operation on the current fileset"))
+ (define-key map [register]
+ '(menu-item "Register" vc-dir-register
+ :help "Register file set into the version control system")))
+ ;; Hook up the menu.
+ (define-key (current-local-map) [menu-bar vc-dir-mode]
+ '(menu-item
+ ;; This is used so that back ends can add mode-specific
+ ;; menu items to vc-dir-menu-map.
+ "VC Status" vc-dir-menu-map :filter vc-dir-menu-map-filter))
+ )))
;; Named-configuration entry points