Function: vhdl-speedbar-initialize
vhdl-speedbar-initialize is a byte-compiled function defined in
vhdl-mode.el.gz.
Signature
(vhdl-speedbar-initialize)
Documentation
Initialize speedbar.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-speedbar-initialize ()
"Initialize speedbar."
;; general settings
;; VHDL file extensions (extracted from `auto-mode-alist')
(let ((mode-alist auto-mode-alist))
(while mode-alist
(when (eq (cdar mode-alist) 'vhdl-mode)
(speedbar-add-supported-extension (caar mode-alist)))
(setq mode-alist (cdr mode-alist))))
;; hierarchy browser settings
(when (boundp 'speedbar-mode-functions-list)
;; special functions
(speedbar-add-mode-functions-list
'("vhdl directory"
(speedbar-item-info . vhdl-speedbar-item-info)
(speedbar-line-directory . speedbar-files-line-directory)))
(speedbar-add-mode-functions-list
'("vhdl project"
(speedbar-item-info . vhdl-speedbar-item-info)
(speedbar-line-directory . vhdl-speedbar-line-project)))
;; keymap
(unless vhdl-speedbar-mode-map
(setq vhdl-speedbar-mode-map (speedbar-make-specialized-keymap))
(define-key vhdl-speedbar-mode-map "e" #'speedbar-edit-line)
(define-key vhdl-speedbar-mode-map "\C-m" #'speedbar-edit-line)
(define-key vhdl-speedbar-mode-map "+" #'speedbar-expand-line)
(define-key vhdl-speedbar-mode-map "=" #'speedbar-expand-line)
(define-key vhdl-speedbar-mode-map "-" #'vhdl-speedbar-contract-level)
(define-key vhdl-speedbar-mode-map "_" #'vhdl-speedbar-contract-all)
(define-key vhdl-speedbar-mode-map "C" #'vhdl-speedbar-port-copy)
(define-key vhdl-speedbar-mode-map "P" #'vhdl-speedbar-place-component)
(define-key vhdl-speedbar-mode-map "F" #'vhdl-speedbar-configuration)
(define-key vhdl-speedbar-mode-map "A" #'vhdl-speedbar-select-mra)
(define-key vhdl-speedbar-mode-map "K" #'vhdl-speedbar-make-design)
(define-key vhdl-speedbar-mode-map "R" #'vhdl-speedbar-rescan-hierarchy)
(define-key vhdl-speedbar-mode-map "S" #'vhdl-save-caches)
(let ((key 0))
(while (<= key 9)
(define-key vhdl-speedbar-mode-map (int-to-string key)
`(lambda () (interactive) (vhdl-speedbar-set-depth ,key)))
(setq key (1+ key)))))
(define-key speedbar-mode-map "h"
(lambda () (interactive)
(speedbar-change-initial-expansion-list "vhdl directory")))
(define-key speedbar-mode-map "H"
(lambda () (interactive)
(speedbar-change-initial-expansion-list "vhdl project")))
;; menu
(unless vhdl-speedbar-menu-items
(setq
vhdl-speedbar-menu-items
`(["Edit" speedbar-edit-line t]
["Expand" speedbar-expand-line
(save-excursion (beginning-of-line) (looking-at "[0-9]+: *.\\+. "))]
["Contract" vhdl-speedbar-contract-level t]
["Expand All" vhdl-speedbar-expand-all t]
["Contract All" vhdl-speedbar-contract-all t]
,(let ((key 0) (menu-list '("Hierarchy Depth")))
(while (<= key 9)
(setq menu-list
(cons `[,(if (= key 0) "All" (int-to-string key))
(vhdl-speedbar-set-depth ,key)
:style radio
:selected (= vhdl-speedbar-hierarchy-depth ,key)
:keys ,(int-to-string key)]
menu-list))
(setq key (1+ key)))
(nreverse menu-list))
"--"
["Copy Port/Subprogram" vhdl-speedbar-port-copy
(or (vhdl-speedbar-check-unit 'entity)
(vhdl-speedbar-check-unit 'subprogram))]
["Place Component" vhdl-speedbar-place-component
(vhdl-speedbar-check-unit 'entity)]
["Generate Configuration" vhdl-speedbar-configuration
(vhdl-speedbar-check-unit 'architecture)]
["Select as MRA" vhdl-speedbar-select-mra
(vhdl-speedbar-check-unit 'architecture)]
["Make" vhdl-speedbar-make-design
(save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
["Generate Makefile" vhdl-speedbar-generate-makefile
(save-excursion (beginning-of-line) (looking-at "[0-9]+:"))]
["Rescan Directory" vhdl-speedbar-rescan-hierarchy
:active (save-excursion (beginning-of-line) (looking-at "[0-9]+:"))
,(if (featurep 'xemacs) :active :visible) (not vhdl-speedbar-show-projects)]
["Rescan Project" vhdl-speedbar-rescan-hierarchy
:active (save-excursion (beginning-of-line) (looking-at "[0-9]+:"))
,(if (featurep 'xemacs) :active :visible) vhdl-speedbar-show-projects]
["Save Caches" vhdl-save-caches vhdl-updated-project-list])))
;; hook-ups
(speedbar-add-expansion-list
'("vhdl directory" vhdl-speedbar-menu-items vhdl-speedbar-mode-map
vhdl-speedbar-display-directory))
(speedbar-add-expansion-list
'("vhdl project" vhdl-speedbar-menu-items vhdl-speedbar-mode-map
vhdl-speedbar-display-projects))
(setq speedbar-stealthy-function-list
(append
'(("vhdl directory" vhdl-speedbar-update-current-unit)
("vhdl project" vhdl-speedbar-update-current-project
vhdl-speedbar-update-current-unit))
speedbar-stealthy-function-list))
(when (eq vhdl-speedbar-display-mode 'directory)
(setq speedbar-initial-expansion-list-name "vhdl directory"))
(when (eq vhdl-speedbar-display-mode 'project)
(setq speedbar-initial-expansion-list-name "vhdl project"))
(add-hook 'speedbar-timer-hook #'vhdl-update-hierarchy)))