* cedet/ede.el (global-ede-mode-map): Move menu to

global-ede-mode-map.
(ede-minor-mode, global-ede-mode): Use define-minor-mode.

* cedet/semantic.el (semantic-mode-map): Use cedet-menu-map.

* cedet/cedet.el (cedet-menu-map): New var.  Don't require
Semantic etc.
This commit is contained in:
Chong Yidong 2009-09-27 17:50:53 +00:00
parent 78f9c78d2d
commit 715f35a55d
4 changed files with 259 additions and 212 deletions

View file

@ -1,3 +1,14 @@
2009-09-27 Chong Yidong <cyd@stupidchicken.com>
* cedet/ede.el (global-ede-mode-map): Move menu to
global-ede-mode-map.
(ede-minor-mode, global-ede-mode): Use define-minor-mode.
* cedet/semantic.el (semantic-mode-map): Use cedet-menu-map.
* cedet/cedet.el (cedet-menu-map): New var. Don't require
Semantic etc.
2009-09-27 Chong Yidong <cyd@stupidchicken.com> 2009-09-27 Chong Yidong <cyd@stupidchicken.com>
* cedet/semantic/symref/list.el: Require semantic/complete. * cedet/semantic/symref/list.el: Require semantic/complete.

View file

@ -34,15 +34,11 @@
(eval-when-compile (eval-when-compile
(require 'cl)) (require 'cl))
(declare-function inversion-find-version "inversion")
(defconst cedet-version "1.0pre7" (defconst cedet-version "1.0pre7"
"Current version of CEDET.") "Current version of CEDET.")
(require 'eieio)
(require 'semantic)
(require 'srecode)
(require 'ede)
(require 'speedbar)
(defconst cedet-packages (defconst cedet-packages
`( `(
;;PACKAGE MIN-VERSION ;;PACKAGE MIN-VERSION
@ -54,7 +50,40 @@
(speedbar "1.0.3")) (speedbar "1.0.3"))
"Table of CEDET packages to install.") "Table of CEDET packages to install.")
(declare-function inversion-find-version "inversion") (defvar cedet-menu-map ;(make-sparse-keymap "CEDET menu")
(let ((map (make-sparse-keymap "CEDET menu")))
(define-key map [semantic-force-refresh] 'undefined)
(define-key map [semantic-edit-menu] 'undefined)
(define-key map [navigate-menu] 'undefined)
(define-key map [semantic-options-separator] 'undefined)
(define-key map [global-semantic-highlight-func-mode] 'undefined)
(define-key map [global-semantic-highlight-func-mode] 'undefined)
(define-key map [global-semantic-decoration-mode] 'undefined)
(define-key map [global-semantic-idle-completions-mode] 'undefined)
(define-key map [global-semantic-idle-summary-mode] 'undefined)
(define-key map [global-semanticdb-minor-mode] 'undefined)
(define-key map [global-semantic-idle-scheduler-mode] 'undefined)
(define-key map [semantic-menu-separator] '("--"))
(define-key map [semantic-mode]
'(menu-item "Enable parsers (Semantic)" semantic-mode
:help "Enable language parsers (Semantic)"
:visible (not (bound-and-true-p semantic-mode))))
(define-key map [cedet-menu-separator] 'undefined)
(define-key map [ede-mode]
'(menu-item "Enable Projects (EDE)" global-ede-mode
:help "Enable the Emacs Development Environment (EDE)"
:visible (not (bound-and-true-p global-ede-mode))))
(define-key map [ede-menu-separator] '("--"))
(define-key map [ede-find-file] 'undefined)
(define-key map [ede-speedbar] 'undefined)
(define-key map [ede] 'undefined)
(define-key map [ede-new] 'undefined)
(define-key map [ede-target-options] 'undefined)
(define-key map [ede-project-options] 'undefined)
(define-key map [ede-build-forms-menu] 'undefined)
map)
"Menu keymap for the CEDET package.
This is used by `semantic-mode' and `global-ede-mode'.")
(defun cedet-version () (defun cedet-version ()
"Display all active versions of CEDET and Dependant packages. "Display all active versions of CEDET and Dependant packages.

View file

@ -39,6 +39,7 @@
;; ;;
;; (global-ede-mode t) ;; (global-ede-mode t)
(require 'cedet)
(require 'eieio) (require 'eieio)
(require 'eieio-speedbar) (require 'eieio-speedbar)
(require 'ede/source) (require 'ede/source)
@ -549,14 +550,7 @@ Argument LIST-O-O is the list of objects to choose from."
;;; Menu and Keymap ;;; Menu and Keymap
(defvar ede-minor-mode nil (defvar ede-minor-mode-map
"Non-nil in EDE controlled buffers.")
(make-variable-buffer-local 'ede-minor-mode)
;; We don't want to waste space. There is a menu after all.
(add-to-list 'minor-mode-alist '(ede-minor-mode ""))
(defvar ede-minor-keymap
(let ((map (make-sparse-keymap)) (let ((map (make-sparse-keymap))
(pmap (make-sparse-keymap))) (pmap (make-sparse-keymap)))
(define-key pmap "e" 'ede-edit-file-target) (define-key pmap "e" 'ede-edit-file-target)
@ -576,32 +570,37 @@ Argument LIST-O-O is the list of objects to choose from."
map) map)
"Keymap used in project minor mode.") "Keymap used in project minor mode.")
(if ede-minor-keymap (defvar global-ede-mode-map
(progn (let ((map (make-sparse-keymap)))
(easy-menu-define (define-key map [menu-bar cedet-menu]
ede-minor-menu ede-minor-keymap "Project Minor Mode Menu" (cons "Development" cedet-menu-map))
'("Project" map)
( "Build" :filter ede-build-forms-menu ) "Keymap used in `global-ede-mode'")
( "Project Options" :filter ede-project-forms-menu )
( "Target Options" :filter ede-target-forms-menu )
[ "Create Project" ede-new (not ede-object) ]
[ "Load a project" ede t ]
;; [ "Select Active Target" 'undefined nil ]
;; [ "Remove Project" 'undefined nil ]
"---"
[ "Find File in Project..." ede-find-file t ]
( "Customize" :filter ede-customize-forms-menu )
[ "View Project Tree" ede-speedbar t ]
))
))
;; Allow re-insertion of a new keymap ;; Activate the EDE items in cedet-menu-map
(let ((a (assoc 'ede-minor-mode minor-mode-map-alist)))
(if a (define-key cedet-menu-map [ede-find-file]
(setcdr a ede-minor-keymap) '(menu-item "Find File in Project..." ede-find-file :enable ede-object))
(add-to-list 'minor-mode-map-alist (define-key cedet-menu-map [ede-speedbar]
(cons 'ede-minor-mode ede-minor-keymap)) '(menu-item "View Project Tree" ede-speedbar :enable ede-object))
)) (define-key cedet-menu-map [ede]
'(menu-item "Load Project" ede))
(define-key cedet-menu-map [ede-new]
'(menu-item "Create Project" ede-new
:enable (not ede-object)))
(define-key cedet-menu-map [ede-target-options]
'(menu-item "Target Options" ede-target-options
:filter ede-target-forms-menu))
(define-key cedet-menu-map [ede-project-options]
'(menu-item "Project Options" ede-project-options
:filter ede-project-forms-menu))
(define-key cedet-menu-map [ede-build-forms-menu]
'(menu-item "Build Project" ede-build-forms-menu
:filter ede-build-forms-menu
:enable ede-object))
(define-key cedet-menu-map [semantic-menu-separator] 'undefined)
(define-key cedet-menu-map [cedet-menu-separator] 'undefined)
(define-key cedet-menu-map [ede-menu-separator] '("--"))
(defun ede-menu-obj-of-class-p (class) (defun ede-menu-obj-of-class-p (class)
"Return non-nil if some member of `ede-object' is a child of CLASS." "Return non-nil if some member of `ede-object' is a child of CLASS."
@ -781,40 +780,36 @@ To be used in hook functions."
(eq major-mode 'vc-dired-mode)) (eq major-mode 'vc-dired-mode))
(ede-minor-mode 1))) (ede-minor-mode 1)))
(defun ede-minor-mode (&optional arg) (define-minor-mode ede-minor-mode
"Project minor mode. "Toggle EDE (Emacs Development Environment) minor mode.
With non-nil argument ARG, enable EDE minor mode if ARG is
positive; otherwise, disable it.
If this file is contained, or could be contained in an EDE If this file is contained, or could be contained in an EDE
controlled project, then this mode should be active. controlled project, then this mode is activated automatically
provided `global-ede-mode' is enabled."
With argument ARG positive, turn on the mode. Negative, turn off the :group 'ede
mode. nil means to toggle the mode." (cond ((or (eq major-mode 'dired-mode)
(interactive "P") (eq major-mode 'vc-dired-mode))
(if (or (eq major-mode 'dired-mode) (ede-dired-minor-mode (if ede-minor-mode 1 -1)))
(eq major-mode 'vc-dired-mode)) (ede-minor-mode
(ede-dired-minor-mode arg) (if (and (not ede-constructing)
(progn (ede-directory-project-p default-directory t))
(setq ede-minor-mode (let* ((ROOT nil)
(not (or (and (null arg) ede-minor-mode) (proj (ede-directory-get-open-project default-directory
(<= (prefix-numeric-value arg) 0)))) 'ROOT)))
(if (and ede-minor-mode (not ede-constructing) (when (not proj)
(ede-directory-project-p default-directory t)) ;; @todo - this could be wasteful.
(let* ((ROOT nil) (setq proj (ede-load-project-file default-directory 'ROOT)))
(proj (ede-directory-get-open-project default-directory (setq ede-object-project proj)
'ROOT))) (setq ede-object-root-project
(when (not proj) (or ROOT (ede-project-root proj)))
;; @todo - this could be wasteful. (setq ede-object (ede-buffer-object))
(setq proj (ede-load-project-file default-directory 'ROOT))) (if (and (not ede-object) ede-object-project)
(ede-auto-add-to-target))
(setq ede-object-project proj) (ede-apply-target-options))
(setq ede-object-root-project ;; If we fail to have a project here, turn it back off.
(or ROOT (ede-project-root proj))) (ede-minor-mode -1)))))
(setq ede-object (ede-buffer-object))
(if (and (not ede-object) ede-object-project)
(ede-auto-add-to-target))
(ede-apply-target-options))
;; If we fail to have a project here, turn it back off.
(if (not (interactive-p))
(setq ede-minor-mode nil))))))
(defun ede-reset-all-buffers (onoff) (defun ede-reset-all-buffers (onoff)
"Reset all the buffers due to change in EDE. "Reset all the buffers due to change in EDE.
@ -827,31 +822,35 @@ ONOFF indicates enabling or disabling the mode."
(setq b (cdr b))))) (setq b (cdr b)))))
;;;###autoload ;;;###autoload
(defun global-ede-mode (arg) (define-minor-mode global-ede-mode
"Turn on variable `ede-minor-mode' mode when ARG is positive. "Toggle global EDE (Emacs Development Environment) mode.
If ARG is negative, disable. Toggle otherwise." With non-nil argument ARG, enable global EDE mode if ARG is
(interactive "P") positive; otherwise, disable it.
(if (not arg)
(if (member 'ede-turn-on-hook find-file-hook) This global minor mode enables `ede-minor-mode' in all buffers in
(global-ede-mode -1) an EDE controlled project."
(global-ede-mode 1)) :global t
(if (or (eq arg t) (> arg 0)) :group 'ede
(progn (if global-ede-mode
(add-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p) ;; Turn on global-ede-mode
(add-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil) (progn
(add-hook 'ecb-source-path-functions 'ede-ecb-project-paths) (add-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(add-hook 'find-file-hook 'ede-turn-on-hook) (add-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(add-hook 'dired-mode-hook 'ede-turn-on-hook) (add-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(add-hook 'kill-emacs-hook 'ede-save-cache) (add-hook 'find-file-hook 'ede-turn-on-hook)
(ede-load-cache)) (add-hook 'dired-mode-hook 'ede-turn-on-hook)
(remove-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p) (add-hook 'kill-emacs-hook 'ede-save-cache)
(remove-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil) (ede-load-cache)
(remove-hook 'ecb-source-path-functions 'ede-ecb-project-paths) (ede-reset-all-buffers 1))
(remove-hook 'find-file-hook 'ede-turn-on-hook) ;; Turn off global-ede-mode
(remove-hook 'dired-mode-hook 'ede-turn-on-hook) (remove-hook 'semanticdb-project-predicate-functions 'ede-directory-project-p)
(remove-hook 'kill-emacs-hook 'ede-save-cache) (remove-hook 'semanticdb-project-root-functions 'ede-toplevel-project-or-nil)
(ede-save-cache)) (remove-hook 'ecb-source-path-functions 'ede-ecb-project-paths)
(ede-reset-all-buffers arg))) (remove-hook 'find-file-hook 'ede-turn-on-hook)
(remove-hook 'dired-mode-hook 'ede-turn-on-hook)
(remove-hook 'kill-emacs-hook 'ede-save-cache)
(ede-save-cache)
(ede-reset-all-buffers -1)))
(defvar ede-ignored-file-alist (defvar ede-ignored-file-alist
'( "\\.cvsignore$" '( "\\.cvsignore$"

View file

@ -30,6 +30,7 @@
;; designed to handle typical functional and object oriented languages. ;; designed to handle typical functional and object oriented languages.
(require 'assoc) (require 'assoc)
(require 'cedet)
(require 'semantic/tag) (require 'semantic/tag)
(require 'semantic/lex) (require 'semantic/lex)
@ -830,121 +831,12 @@ a START and END part."
Throw away all the old tags, and recreate the tag database." Throw away all the old tags, and recreate the tag database."
(interactive) (interactive)
(semantic-clear-toplevel-cache) (semantic-clear-toplevel-cache)
(semantic-fetch-tags)) (semantic-fetch-tags)
(message "Buffer reparsed."))
(defvar semantic-mode-map (defvar semantic-mode-map
(let ((map (make-sparse-keymap)) (let ((map (make-sparse-keymap)))
(menu (make-sparse-keymap "Semantic"))
(navigate-menu (make-sparse-keymap "Navigate Tags"))
(edit-menu (make-sparse-keymap "Edit Tags")))
(define-key edit-menu [semantic-analyze-possible-completions]
'(menu-item "List Completions" semantic-analyze-possible-completions
:help "Display a list of completions for the tag at point"))
(define-key edit-menu [semantic-complete-analyze-inline]
'(menu-item "Complete Tag Inline" semantic-complete-analyze-inline
:help "Display inline completion for the tag at point"))
(define-key edit-menu [semantic-completion-separator]
'("--"))
(define-key edit-menu [senator-transpose-tags-down]
'(menu-item "Transpose Tags Down" senator-transpose-tags-down
:active (semantic-current-tag)
:help "Transpose the current tag and the next tag"))
(define-key edit-menu [senator-transpose-tags-up]
'(menu-item "Transpose Tags Up" senator-transpose-tags-up
:active (semantic-current-tag)
:help "Transpose the current tag and the previous tag"))
(define-key edit-menu [semantic-edit-separator]
'("--"))
(define-key edit-menu [senator-yank-tag]
'(menu-item "Yank Tag" senator-yank-tag
:active (not (ring-empty-p senator-tag-ring))
:help "Yank the head of the tag ring into the buffer"))
(define-key edit-menu [senator-copy-tag-to-register]
'(menu-item "Copy Tag To Register" senator-copy-tag-to-register
:active (semantic-current-tag)
:help "Yank the head of the tag ring into the buffer"))
(define-key edit-menu [senator-copy-tag]
'(menu-item "Copy Tag" senator-copy-tag
:active (semantic-current-tag)
:help "Copy the current tag to the tag ring"))
(define-key edit-menu [senator-kill-tag]
'(menu-item "Kill Tag" senator-kill-tag
:active (semantic-current-tag)
:help "Kill the current tag, and copy it to the tag ring"))
(define-key navigate-menu [senator-narrow-to-defun]
'(menu-item "Narrow to Tag" senator-narrow-to-defun
:active (semantic-current-tag)
:help "Narrow the buffer to the bounds of the current tag"))
(define-key navigate-menu [semantic-narrow-to-defun-separator]
'("--"))
(define-key navigate-menu [semantic-symref-symbol]
'(menu-item "Find Tag References..." semantic-symref-symbol
:help "Read a tag and list the references to it"))
(define-key navigate-menu [semantic-complete-jump]
'(menu-item "Find Tag Globally..." semantic-complete-jump
:help "Read a tag name and find it in the current project"))
(define-key navigate-menu [semantic-complete-jump-local]
'(menu-item "Find Tag in This Buffer..." semantic-complete-jump-local
:help "Read a tag name and find it in this buffer"))
(define-key navigate-menu [semantic-navigation-separator]
'("--"))
(define-key navigate-menu [senator-go-to-up-reference]
'(menu-item "Parent Tag" senator-go-to-up-reference
:help "Navigate up one reference by tag."))
(define-key navigate-menu [senator-next-tag]
'(menu-item "Next Tag" senator-next-tag
:help "Go to the next tag"))
(define-key navigate-menu [senator-previous-tag]
'(menu-item "Previous Tag" senator-previous-tag
:help "Go to the previous tag"))
(define-key menu [semantic-force-refresh]
'(menu-item "Reparse Buffer" semantic-force-refresh
:help "Force a full reparse of the current buffer."))
(define-key menu [semantic-refresh-separator]
'("--"))
(define-key menu [edit-menu]
(cons "Edit Tags" edit-menu))
(define-key menu [navigate-menu]
(cons "Navigate Tags" navigate-menu))
(define-key menu [semantic-options-separator]
'("--"))
(define-key menu [global-semantic-highlight-func-mode]
(menu-bar-make-mm-toggle
global-semantic-highlight-func-mode
"Highlight Current Function"
"Highlight the tag at point"))
(define-key menu [global-semantic-decoration-mode]
(menu-bar-make-mm-toggle
global-semantic-decoration-mode
"Decorate Tags"
"Decorate tags based on various attributes"))
(define-key menu [global-semantic-idle-completions-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-completions-mode
"Show Tag Completions"
"Show tag completions when idle"))
(define-key menu [global-semantic-idle-summary-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-summary-mode
"Show Tag Summaries"
"Show tag summaries when idle"))
(define-key menu [global-semanticdb-minor-mode]
'(menu-item "Semantic Database" global-semanticdb-minor-mode
:help "Store tag information in a database"
:button (:toggle . (semanticdb-minor-mode-p))))
(define-key menu [global-semantic-idle-scheduler-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-scheduler-mode
"Reparse When Idle"
"Keep a buffer's parse tree up to date when idle"))
(define-key map [menu-bar semantic]
(cons "Development" menu))
;; Key bindings: ;; Key bindings:
;; (define-key km "f" 'senator-search-set-tag-class-filter) ;; (define-key km "f" 'senator-search-set-tag-class-filter)
;; (define-key km "i" 'senator-isearch-toggle-semantic-mode) ;; (define-key km "i" 'senator-isearch-toggle-semantic-mode)
(define-key map "\C-c,j" 'semantic-complete-jump-local) (define-key map "\C-c,j" 'semantic-complete-jump-local)
@ -962,13 +854,129 @@ Throw away all the old tags, and recreate the tag database."
(define-key map [?\C-c ?, up] 'senator-transpose-tags-up) (define-key map [?\C-c ?, up] 'senator-transpose-tags-up)
(define-key map [?\C-c ?, down] 'senator-transpose-tags-down) (define-key map [?\C-c ?, down] 'senator-transpose-tags-down)
(define-key map "\C-c,l" 'semantic-analyze-possible-completions) (define-key map "\C-c,l" 'semantic-analyze-possible-completions)
;; This hack avoids showing the CEDET menu twice if ede-minor-mode
;; and Semantic are both enabled. Is there a better way?
(define-key map [menu-bar cedet-menu]
(list 'menu-item "Development" cedet-menu-map
:enable (quote (not (bound-and-true-p global-ede-mode)))))
;; (define-key km "-" 'senator-fold-tag) ;; (define-key km "-" 'senator-fold-tag)
;; (define-key km "+" 'senator-unfold-tag) ;; (define-key km "+" 'senator-unfold-tag)
map)) map))
;; Activate the Semantic items in cedet-menu-map
(let ((navigate-menu (make-sparse-keymap "Navigate Tags"))
(edit-menu (make-sparse-keymap "Edit Tags")))
;; Edit Tags submenu:
(define-key edit-menu [semantic-analyze-possible-completions]
'(menu-item "List Completions" semantic-analyze-possible-completions
:help "Display a list of completions for the tag at point"))
(define-key edit-menu [semantic-complete-analyze-inline]
'(menu-item "Complete Tag Inline" semantic-complete-analyze-inline
:help "Display inline completion for the tag at point"))
(define-key edit-menu [semantic-completion-separator]
'("--"))
(define-key edit-menu [senator-transpose-tags-down]
'(menu-item "Transpose Tags Down" senator-transpose-tags-down
:active (semantic-current-tag)
:help "Transpose the current tag and the next tag"))
(define-key edit-menu [senator-transpose-tags-up]
'(menu-item "Transpose Tags Up" senator-transpose-tags-up
:active (semantic-current-tag)
:help "Transpose the current tag and the previous tag"))
(define-key edit-menu [semantic-edit-separator]
'("--"))
(define-key edit-menu [senator-yank-tag]
'(menu-item "Yank Tag" senator-yank-tag
:active (not (ring-empty-p senator-tag-ring))
:help "Yank the head of the tag ring into the buffer"))
(define-key edit-menu [senator-copy-tag-to-register]
'(menu-item "Copy Tag To Register" senator-copy-tag-to-register
:active (semantic-current-tag)
:help "Yank the head of the tag ring into the buffer"))
(define-key edit-menu [senator-copy-tag]
'(menu-item "Copy Tag" senator-copy-tag
:active (semantic-current-tag)
:help "Copy the current tag to the tag ring"))
(define-key edit-menu [senator-kill-tag]
'(menu-item "Kill Tag" senator-kill-tag
:active (semantic-current-tag)
:help "Kill the current tag, and copy it to the tag ring"))
;; Navigate Tags submenu:
(define-key navigate-menu [senator-narrow-to-defun]
'(menu-item "Narrow to Tag" senator-narrow-to-defun
:active (semantic-current-tag)
:help "Narrow the buffer to the bounds of the current tag"))
(define-key navigate-menu [semantic-narrow-to-defun-separator]
'("--"))
(define-key navigate-menu [semantic-symref-symbol]
'(menu-item "Find Tag References..." semantic-symref-symbol
:help "Read a tag and list the references to it"))
(define-key navigate-menu [semantic-complete-jump]
'(menu-item "Find Tag Globally..." semantic-complete-jump
:help "Read a tag name and find it in the current project"))
(define-key navigate-menu [semantic-complete-jump-local]
'(menu-item "Find Tag in This Buffer..." semantic-complete-jump-local
:help "Read a tag name and find it in this buffer"))
(define-key navigate-menu [semantic-navigation-separator]
'("--"))
(define-key navigate-menu [senator-go-to-up-reference]
'(menu-item "Parent Tag" senator-go-to-up-reference
:help "Navigate up one reference by tag."))
(define-key navigate-menu [senator-next-tag]
'(menu-item "Next Tag" senator-next-tag
:help "Go to the next tag"))
(define-key navigate-menu [senator-previous-tag]
'(menu-item "Previous Tag" senator-previous-tag
:help "Go to the previous tag"))
;; Top level menu items:
(define-key cedet-menu-map [semantic-force-refresh]
'(menu-item "Reparse Buffer" semantic-force-refresh
:help "Force a full reparse of the current buffer."))
(define-key cedet-menu-map [semantic-edit-menu]
(cons "Edit Tags" edit-menu))
(define-key cedet-menu-map [navigate-menu]
(cons "Navigate Tags" navigate-menu))
(define-key cedet-menu-map [semantic-options-separator]
'("--"))
(define-key cedet-menu-map [global-semantic-highlight-func-mode]
(menu-bar-make-mm-toggle
global-semantic-highlight-func-mode
"Highlight Current Function"
"Highlight the tag at point"))
(define-key cedet-menu-map [global-semantic-decoration-mode]
(menu-bar-make-mm-toggle
global-semantic-decoration-mode
"Decorate Tags"
"Decorate tags based on various attributes"))
(define-key cedet-menu-map [global-semantic-idle-completions-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-completions-mode
"Show Tag Completions"
"Show tag completions when idle"))
(define-key cedet-menu-map [global-semantic-idle-summary-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-summary-mode
"Show Tag Summaries"
"Show tag summaries when idle"))
(define-key cedet-menu-map [global-semanticdb-minor-mode]
'(menu-item "Semantic Database" global-semanticdb-minor-mode
:help "Store tag information in a database"
:button (:toggle . (semanticdb-minor-mode-p))))
(define-key cedet-menu-map [global-semantic-idle-scheduler-mode]
(menu-bar-make-mm-toggle
global-semantic-idle-scheduler-mode
"Reparse When Idle"
"Keep a buffer's parse tree up to date when idle"))
(define-key cedet-menu-map [ede-menu-separator] 'undefined)
(define-key cedet-menu-map [cedet-menu-separator] 'undefined)
(define-key cedet-menu-map [semantic-menu-separator] '("--")))
;; The `semantic-mode' command, in conjuction with the ;; The `semantic-mode' command, in conjuction with the
;; `semantic-default-submodes' variable, are used to collectively ;; `semantic-default-submodes' variable, toggles Semantic's various
;; toggle Semantic's various auxilliary minor modes. ;; auxilliary minor modes.
(defvar semantic-load-system-cache-loaded nil (defvar semantic-load-system-cache-loaded nil
"Non nil when the Semantic system caches have been loaded. "Non nil when the Semantic system caches have been loaded.