[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r100114: Use define-minor-mode in CED
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r100114: Use define-minor-mode in CEDET where applicable. |
Date: |
Sat, 01 May 2010 23:38:19 -0400 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 100114
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Sat 2010-05-01 23:38:19 -0400
message:
Use define-minor-mode in CEDET where applicable.
* cedet/srecode/mode.el (srecode-minor-mode,global-srecode-minor-mode):
Use define-minor-mode.
* cedet/semantic/util-modes.el (semantic-add-minor-mode):
Remove unused arg `keymap' and code redundant with define-minor-mode.
(semantic-toggle-minor-mode-globally): Only handle arg -1 and 1.
(semantic-stickyfunc-mode, global-semantic-show-unmatched-syntax-mode)
(semantic-highlight-func-mode, global-semantic-show-parser-state-mode)
(global-semantic-highlight-edits-mode, semantic-highlight-edits-mode)
(semantic-show-unmatched-syntax-mode, semantic-show-parser-state-mode)
(global-semantic-stickyfunc-mode, global-semantic-highlight-func-mode):
Use define-minor-mode.
(semantic-stickyfunc-mode-setup, semantic-highlight-edits-mode-setup)
(semantic-show-unmatched-syntax-mode-setup)
(semantic-show-parser-state-mode-setup)
(semantic-highlight-func-mode-setup): Inline into sole caller.
* cedet/semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode)
(semantic-mru-bookmark-mode): Use define-minor-mode.
(semantic-mru-bookmark-mode-setup): Inline into sole caller.
* cedet/semantic/idle.el (define-semantic-idle-service):
Use define-minor-mode and inline setup function into its sole caller.
(semantic-idle-scheduler-mode-setup)
(semantic-idle-summary-mode-setup): Inline into sole caller.
(global-semantic-idle-scheduler-mode, semantic-idle-scheduler-mode):
Use define-minor-mode.
* cedet/semantic/decorate/mode.el (global-semantic-decoration-mode)
(semantic-decoration-mode): Use define-minor-mode.
(semantic-decoration-mode-setup): Inline into sole caller.
* cedet/ede/dired.el (ede-dired-minor-mode): Initialize in declaration.
(ede-dired-minor-mode): Use define-minor-mode and derived-mode-p.
(ede-dired-add-to-target): Use dolist.
modified:
lisp/ChangeLog
lisp/cedet/ede/dired.el
lisp/cedet/semantic/decorate/mode.el
lisp/cedet/semantic/idle.el
lisp/cedet/semantic/mru-bookmark.el
lisp/cedet/semantic/util-modes.el
lisp/cedet/srecode/mode.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-05-01 09:34:14 +0000
+++ b/lisp/ChangeLog 2010-05-02 03:38:19 +0000
@@ -1,3 +1,43 @@
+2010-05-02 Stefan Monnier <address@hidden>
+
+ Use define-minor-mode in CEDET where applicable.
+
+ * cedet/srecode/mode.el (srecode-minor-mode,global-srecode-minor-mode):
+ Use define-minor-mode.
+
+ * cedet/semantic/util-modes.el (semantic-add-minor-mode):
+ Remove unused arg `keymap' and code redundant with define-minor-mode.
+ (semantic-toggle-minor-mode-globally): Only handle arg -1 and 1.
+ (semantic-stickyfunc-mode, global-semantic-show-unmatched-syntax-mode)
+ (semantic-highlight-func-mode, global-semantic-show-parser-state-mode)
+ (global-semantic-highlight-edits-mode, semantic-highlight-edits-mode)
+ (semantic-show-unmatched-syntax-mode, semantic-show-parser-state-mode)
+ (global-semantic-stickyfunc-mode, global-semantic-highlight-func-mode):
+ Use define-minor-mode.
+ (semantic-stickyfunc-mode-setup, semantic-highlight-edits-mode-setup)
+ (semantic-show-unmatched-syntax-mode-setup)
+ (semantic-show-parser-state-mode-setup)
+ (semantic-highlight-func-mode-setup): Inline into sole caller.
+
+ * cedet/semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode)
+ (semantic-mru-bookmark-mode): Use define-minor-mode.
+ (semantic-mru-bookmark-mode-setup): Inline into sole caller.
+
+ * cedet/semantic/idle.el (define-semantic-idle-service):
+ Use define-minor-mode and inline setup function into its sole caller.
+ (semantic-idle-scheduler-mode-setup)
+ (semantic-idle-summary-mode-setup): Inline into sole caller.
+ (global-semantic-idle-scheduler-mode, semantic-idle-scheduler-mode):
+ Use define-minor-mode.
+
+ * cedet/semantic/decorate/mode.el (global-semantic-decoration-mode)
+ (semantic-decoration-mode): Use define-minor-mode.
+ (semantic-decoration-mode-setup): Inline into sole caller.
+
+ * cedet/ede/dired.el (ede-dired-minor-mode): Initialize in declaration.
+ (ede-dired-minor-mode): Use define-minor-mode and derived-mode-p.
+ (ede-dired-add-to-target): Use dolist.
+
2010-05-01 Toru TSUNEYOSHI <address@hidden>
Michael Albinus <address@hidden>
@@ -8,8 +48,8 @@
(tramp-inline-compress-commands): New defconst.
(tramp-find-inline-compress, tramp-get-inline-compress)
(tramp-get-inline-coding): New defuns.
- (tramp-get-remote-coding, tramp-get-local-coding): Removed,
- replaced by `tramp-get-inline-coding'.
+ (tramp-get-remote-coding, tramp-get-local-coding): Remove,
+ replace by `tramp-get-inline-coding'.
(tramp-handle-file-local-copy, tramp-handle-write-region)
(tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
@@ -41,8 +81,7 @@
2010-04-30 Chong Yidong <address@hidden>
- * minibuffer.el (tags-completion-at-point-function): Fix return
- value.
+ * minibuffer.el (tags-completion-at-point-function): Fix return value.
2010-04-30 Eli Zaretskii <address@hidden>
=== modified file 'lisp/cedet/ede/dired.el'
--- a/lisp/cedet/ede/dired.el 2010-01-13 08:35:10 +0000
+++ b/lisp/cedet/ede/dired.el 2010-05-02 03:38:19 +0000
@@ -27,57 +27,46 @@
;; This provides a dired interface to EDE, allowing users to modify
;; their project file by adding files (or whatever) directly from a
;; dired buffer.
-
+(eval-when-compile (require 'cl))
(require 'easymenu)
(require 'dired)
(require 'ede)
;;; Code:
-(defvar ede-dired-minor-mode nil
- "Non-nil when in ede dired minor mode.")
-(make-variable-buffer-local 'ede-dired-minor-mode)
+(defvar ede-dired-keymap
+ (let ((map (make-sparse-keymap)))
+ (define-key map ".a" 'ede-dired-add-to-target)
+ (define-key map ".t" 'ede-new-target)
+ (define-key map ".s" 'ede-speedbar)
+ (define-key map ".C" 'ede-compile-project)
+ (define-key map ".d" 'ede-make-dist)
-(defvar ede-dired-keymap nil
+ (easy-menu-define
+ ede-dired-menu map "EDE Dired Minor Mode Menu"
+ '("Project"
+ [ "Add files to target" ede-dired-add-to-target (ede-current-project) ]
+ ( "Build" :filter ede-build-forms-menu)
+ "-"
+ [ "Create Project" ede-new (not (ede-current-project)) ]
+ [ "Create Target" ede-new-target (ede-current-project) ]
+ "-"
+ ( "Customize Project" :filter ede-customize-forms-menu )
+ [ "View Project Tree" ede-speedbar (ede-current-project) ]
+ ))
+ map)
"Keymap used for ede dired minor mode.")
-(if ede-dired-keymap
- nil
- (setq ede-dired-keymap (make-sparse-keymap))
- (define-key ede-dired-keymap ".a" 'ede-dired-add-to-target)
- (define-key ede-dired-keymap ".t" 'ede-new-target)
- (define-key ede-dired-keymap ".s" 'ede-speedbar)
- (define-key ede-dired-keymap ".C" 'ede-compile-project)
- (define-key ede-dired-keymap ".d" 'ede-make-dist)
-
- (easy-menu-define
- ede-dired-menu ede-dired-keymap "EDE Dired Minor Mode Menu"
- '("Project"
- [ "Add files to target" ede-dired-add-to-target (ede-current-project) ]
- ( "Build" :filter ede-build-forms-menu)
- "-"
- [ "Create Project" ede-new (not (ede-current-project)) ]
- [ "Create Target" ede-new-target (ede-current-project) ]
- "-"
- ( "Customize Project" :filter ede-customize-forms-menu )
- [ "View Project Tree" ede-speedbar (ede-current-project) ]
- ))
- )
-
-(defun ede-dired-minor-mode (&optional arg)
+(define-minor-mode ede-dired-minor-mode
"A minor mode that should only be activated in DIRED buffers.
-If ARG is nil, toggle, if it is a positive number, force on, if
+If ARG is nil or a positive number, force on, if
negative, force off."
- (interactive "P")
- (if (not (or (eq major-mode 'dired-mode)
- (eq major-mode 'vc-dired-mode)))
- (error "Not in DIRED mode"))
- (setq ede-dired-minor-mode
- (not (or (and (null arg) ede-dired-minor-mode)
- (<= (prefix-numeric-value arg) 0))))
- (if (and (not (ede-directory-project-p default-directory))
- (not (interactive-p)))
- (setq ede-dired-minor-mode nil))
- )
+ :lighter " EDE" :keymap ede-dired-keymap
+ (unless (derived-mode-p 'dired-mode)
+ (setq ede-dired-minor-mode nil)
+ (error "Not in DIRED mode"))
+ (unless (or (ede-directory-project-p default-directory)
+ (interactive-p))
+ (setq ede-dired-minor-mode nil)))
(defun ede-dired-add-to-target (target)
"Add a file, or all marked files into a TARGET."
@@ -85,24 +74,13 @@
(let ((ede-object (ede-current-project)))
(ede-invoke-method 'project-interactive-select-target
"Add files to Target: "))))
- (let ((files (dired-get-marked-files t)))
- (while files
- (project-add-file target (car files))
- ;; Find the buffer for this files, and set it's ede-object
- (if (get-file-buffer (car files))
- (with-current-buffer (get-file-buffer (car files))
- (setq ede-object nil)
- (setq ede-object (ede-buffer-object (current-buffer)))))
- ;; Increment.
- (setq files (cdr files)))))
-
-;; Minor mode management.
-(add-to-list 'minor-mode-alist '(ede-dired-minor-mode " EDE"))
-(let ((a (assoc 'ede-dired-minor-mode minor-mode-map-alist)))
- (if a
- (setcdr a ede-dired-keymap)
- (add-to-list 'minor-mode-map-alist (cons 'ede-dired-minor-mode
- ede-dired-keymap))))
+ (dolist (file (dired-get-marked-files t))
+ (project-add-file target file)
+ ;; Find the buffer for this files, and set it's ede-object
+ (if (get-file-buffer file)
+ (with-current-buffer (get-file-buffer file)
+ (setq ede-object nil)
+ (setq ede-object (ede-buffer-object (current-buffer)))))))
(provide 'ede/dired)
=== modified file 'lisp/cedet/semantic/decorate/mode.el'
--- a/lisp/cedet/semantic/decorate/mode.el 2010-01-13 08:35:10 +0000
+++ b/lisp/cedet/semantic/decorate/mode.el 2010-05-02 03:38:19 +0000
@@ -224,46 +224,34 @@
;; Generic mode for handling basic highlighting and decorations.
;;
-(defcustom global-semantic-decoration-mode nil
- "*If non-nil, enable global use of command `semantic-decoration-mode'.
-When this mode is activated, decorations specified by
-`semantic-decoration-styles'."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/decorate/mode
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-decoration-mode (if val 1 -1))))
-
;;;###autoload
-(defun global-semantic-decoration-mode (&optional arg)
+(define-minor-mode global-semantic-decoration-mode
"Toggle global use of option `semantic-decoration-mode'.
Decoration mode turns on all active decorations as specified
-by `semantic-decoration-styles'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-decoration-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-decoration-mode arg)))
+by `semantic-decoration-styles'."
+ :global t :group 'semantic :group 'semantic-modes
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic/decorate/mode
+ (semantic-toggle-minor-mode-globally
+ 'semantic-decoration-mode (if global-semantic-decoration-mode 1 -1)))
(defcustom semantic-decoration-mode-hook nil
"Hook run at the end of function `semantic-decoration-mode'."
:group 'semantic
:type 'hook)
-;;;;###autoload
-(defvar semantic-decoration-mode nil
- "Non-nil if command `semantic-decoration-mode' is enabled.
-Use the command `semantic-decoration-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-decoration-mode)
-
-(defun semantic-decoration-mode-setup ()
- "Setup the `semantic-decoration-mode' minor mode.
-The minor mode can be turned on only if the semantic feature is available
-and the current buffer was set up for parsing. Return non-nil if the
+(define-minor-mode semantic-decoration-mode
+ "Minor mode for decorating tags.
+Decorations are specified in `semantic-decoration-styles'.
+You can define new decoration styles with
+`define-semantic-decoration-style'.
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
+;;
+;;\\{semantic-decoration-map}"
+ nil nil nil
(if semantic-decoration-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -280,8 +268,7 @@
'semantic-decorate-tags-after-full-reparse nil t)
;; Add decorations to available tags. The above hooks ensure
;; that new tags will be decorated when they become available.
- (semantic-decorate-add-decorations (semantic-fetch-available-tags))
- )
+ (semantic-decorate-add-decorations (semantic-fetch-available-tags)))
;; Remove decorations from available tags.
(semantic-decorate-clear-decorations (semantic-fetch-available-tags))
;; Cleanup any leftover crap too.
@@ -290,41 +277,11 @@
(remove-hook 'semantic-after-partial-cache-change-hook
'semantic-decorate-tags-after-partial-reparse t)
(remove-hook 'semantic-after-toplevel-cache-change-hook
- 'semantic-decorate-tags-after-full-reparse t)
- )
- semantic-decoration-mode)
-
-(defun semantic-decoration-mode (&optional arg)
- "Minor mode for decorating tags.
-Decorations are specified in `semantic-decoration-styles'.
-You can define new decoration styles with
-`define-semantic-decoration-style'.
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
-;;
-;;\\{semantic-decoration-map}"
- (interactive
- (list (or current-prefix-arg
- (if semantic-decoration-mode 0 1))))
- (setq semantic-decoration-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-decoration-mode)))
- (semantic-decoration-mode-setup)
- (run-hooks 'semantic-decoration-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "decoration-mode minor mode %sabled"
- (if semantic-decoration-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-decoration-mode)
+ 'semantic-decorate-tags-after-full-reparse t))
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-decoration-mode
- ""
- nil)
+ "")
(defun semantic-decorate-tags-after-full-reparse (tag-list)
"Add decorations after a complete reparse of the current buffer.
=== modified file 'lisp/cedet/semantic/idle.el'
--- a/lisp/cedet/semantic/idle.el 2010-01-18 04:39:40 +0000
+++ b/lisp/cedet/semantic/idle.el 2010-05-02 03:38:19 +0000
@@ -128,16 +128,6 @@
;; The minor mode portion of this code just sets up the minor mode
;; which does the initial scheduling of the idle timers.
;;
-;;;###autoload
-(defcustom global-semantic-idle-scheduler-mode nil
- "*If non-nil, enable global use of idle-scheduler mode."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/idle
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-idle-scheduler-mode (if val 1 -1))))
(defcustom semantic-idle-scheduler-mode-hook nil
"Hook run at the end of the function `semantic-idle-scheduler-mode'."
@@ -167,12 +157,19 @@
(or (<= semantic-idle-scheduler-max-buffer-size 0)
(< (buffer-size) semantic-idle-scheduler-max-buffer-size))))
-(defun semantic-idle-scheduler-mode-setup ()
- "Setup option `semantic-idle-scheduler-mode'.
-The minor mode can be turned on only if semantic feature is available
-and the current buffer was set up for parsing. When minor mode is
-enabled parse the current buffer if needed. Return non-nil if the
+;;;###autoload
+(define-minor-mode semantic-idle-scheduler-mode
+ "Minor mode to auto parse buffer following a change.
+When this mode is off, a buffer is only rescanned for tokens when
+some command requests the list of available tokens. When idle-scheduler
+is enabled, Emacs periodically checks to see if the buffer is out of
+date, and reparses while the user is idle (not typing.)
+
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
+ nil nil nil
(if semantic-idle-scheduler-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -181,40 +178,10 @@
(error "Buffer %s was not set up idle time scheduling"
(buffer-name)))
(semantic-idle-scheduler-setup-timers)))
- semantic-idle-scheduler-mode)
-
-;;;###autoload
-(defun semantic-idle-scheduler-mode (&optional arg)
- "Minor mode to auto parse buffer following a change.
-When this mode is off, a buffer is only rescanned for tokens when
-some command requests the list of available tokens. When idle-scheduler
-is enabled, Emacs periodically checks to see if the buffer is out of
-date, and reparses while the user is idle (not typing.)
-
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-idle-scheduler-mode 0 1))))
- (setq semantic-idle-scheduler-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-idle-scheduler-mode)))
- (semantic-idle-scheduler-mode-setup)
- (run-hooks 'semantic-idle-scheduler-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "idle-scheduler minor mode %sabled"
- (if semantic-idle-scheduler-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-idle-scheduler-mode)
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-idle-scheduler-mode
- "ARP"
- nil)
+ "ARP")
;;; SERVICES services
;;
@@ -582,31 +549,23 @@
(mode (intern (concat (symbol-name name) "-mode")))
(hook (intern (concat (symbol-name name) "-mode-hook")))
(map (intern (concat (symbol-name name) "-mode-map")))
- (setup (intern (concat (symbol-name name) "-mode-setup")))
(func (intern (concat (symbol-name name) "-idle-function"))))
`(eval-and-compile
- (defun ,global (&optional arg)
+ (define-minor-mode ,global
,(concat "Toggle " (symbol-name global) ".
With ARG, turn the minor mode on if ARG is positive, off otherwise.
When this minor mode is enabled, `" (symbol-name mode) "' is
turned on in every Semantic-supported buffer.")
- (interactive "P")
- (setq ,global
- (semantic-toggle-minor-mode-globally
- ',mode arg)))
-
- (defcustom ,global nil
- ,(concat "Non-nil if `" (symbol-name mode) "' is enabled.")
+ :global t
:group 'semantic
:group 'semantic-modes
- :type 'boolean
:require 'semantic/idle
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (,global (if val 1 -1))))
+ (semantic-toggle-minor-mode-globally
+ ',mode (if ,global 1 -1)))
+ ;; FIXME: Get rid of this when define-minor-mode does it for us.
(defcustom ,hook nil
,(concat "Hook run at the end of function `" (symbol-name mode) "'.")
:group 'semantic
@@ -617,14 +576,9 @@
km)
,(concat "Keymap for `" (symbol-name mode) "'."))
- (defvar ,mode nil
- ,(concat "Non-nil if the minor mode `" (symbol-name mode) "' is
enabled.
-Use the command `" (symbol-name mode) "' to change this variable."))
- (make-variable-buffer-local ',mode)
-
- (defun ,setup ()
- ,(concat "Set up `" (symbol-name mode) "'.
-Return non-nil if the minor mode is enabled.")
+ (define-minor-mode ,mode
+ ,doc
+ :keymap ,map
(if ,mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -633,36 +587,13 @@
(error "Buffer %s was not set up for parsing"
(buffer-name)))
;; Enable the mode mode
- (semantic-idle-scheduler-add #',func)
- )
+ (semantic-idle-scheduler-add #',func))
;; Disable the mode mode
- (semantic-idle-scheduler-remove #',func)
- )
- ,mode)
-
- (defun ,mode (&optional arg)
- ,doc
- (interactive
- (list (or current-prefix-arg
- (if ,mode 0 1))))
- (setq ,mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not ,mode)))
- (,setup)
- (run-hooks ,hook)
- (if (called-interactively-p 'interactive)
- (message "%s %sabled"
- (symbol-name ',mode)
- (if ,mode "en" "dis")))
- (semantic-mode-line-update)
- ,mode)
+ (semantic-idle-scheduler-remove #',func))
+ (semantic-mode-line-update))
(semantic-add-minor-mode ',mode
- "" ; idle schedulers are quiet?
- ,map)
+ "") ; idle schedulers are quiet?
(defun ,func ()
,(concat "Perform idle activity for the minor mode `"
@@ -814,21 +745,6 @@
of the lexical token at point whenever Emacs is idle."
:group 'semantic
:group 'semantic-modes
- (semantic-idle-summary-mode-setup)
- (semantic-mode-line-update))
-
-(defun semantic-idle-summary-refresh-echo-area ()
- (and semantic-idle-summary-mode
- eldoc-last-message
- (if (and (not executing-kbd-macro)
- (not (and (boundp 'edebug-active) edebug-active))
- (not cursor-in-echo-area)
- (not (eq (selected-window) (minibuffer-window))))
- (eldoc-message eldoc-last-message)
- (setq eldoc-last-message nil))))
-
-(defun semantic-idle-summary-mode-setup ()
- "Set up `semantic-idle-summary-mode'."
(if semantic-idle-summary-mode
;; Enable the mode
(progn
@@ -843,7 +759,17 @@
;; Disable the mode
(semantic-idle-scheduler-remove 'semantic-idle-summary-idle-function)
(remove-hook 'pre-command-hook 'semantic-idle-summary-refresh-echo-area t))
- semantic-idle-summary-mode)
+ (semantic-mode-line-update))
+
+(defun semantic-idle-summary-refresh-echo-area ()
+ (and semantic-idle-summary-mode
+ eldoc-last-message
+ (if (and (not executing-kbd-macro)
+ (not (and (boundp 'edebug-active) edebug-active))
+ (not cursor-in-echo-area)
+ (not (eq (selected-window) (minibuffer-window))))
+ (eldoc-message eldoc-last-message)
+ (setq eldoc-last-message nil))))
(semantic-add-minor-mode 'semantic-idle-summary-mode "")
@@ -957,22 +883,22 @@
;;;###autoload
-(defun global-semantic-idle-scheduler-mode (&optional arg)
+(define-minor-mode global-semantic-idle-scheduler-mode
"Toggle global use of option `semantic-idle-scheduler-mode'.
The idle scheduler will automatically reparse buffers in idle time,
and then schedule other jobs setup with `semantic-idle-scheduler-add'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t
+ :group 'semantic
+ :group 'semantic-modes
;; When turning off, disable other idle modes.
- (when (or (and (numberp arg) (< arg 0))
- (and (null arg) global-semantic-idle-scheduler-mode))
+ (when (null global-semantic-idle-scheduler-mode)
(global-semantic-idle-summary-mode -1)
(global-semantic-idle-tag-highlight-mode -1)
(global-semantic-idle-completions-mode -1))
- (setq global-semantic-idle-scheduler-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-idle-scheduler-mode arg)))
+ (semantic-toggle-minor-mode-globally
+ 'semantic-idle-scheduler-mode
+ (if global-semantic-idle-scheduler-mode 1 -1)))
;;; Completion Popup Mode
=== modified file 'lisp/cedet/semantic/mru-bookmark.el'
--- a/lisp/cedet/semantic/mru-bookmark.el 2010-01-13 08:35:10 +0000
+++ b/lisp/cedet/semantic/mru-bookmark.el 2010-05-02 03:38:19 +0000
@@ -239,27 +239,15 @@
;;
;; Tracking minor mode.
-(defcustom global-semantic-mru-bookmark-mode nil
- "If non-nil, enable `semantic-mru-bookmark-mode' globally.
-When this mode is enabled, Emacs keeps track of which tags have
-been edited, and you can re-visit them with \\[semantic-mrub-switch-tags]."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic-util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-mru-bookmark-mode (if val 1 -1))))
-
;;;###autoload
-(defun global-semantic-mru-bookmark-mode (&optional arg)
+(define-minor-mode global-semantic-mru-bookmark-mode
"Toggle global use of option `semantic-mru-bookmark-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-mru-bookmark-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-mru-bookmark-mode arg)))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic :group 'semantic-modes
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic-util-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-mru-bookmark-mode (if global-semantic-mru-bookmark-mode 1 -1)))
(defcustom semantic-mru-bookmark-mode-hook nil
"*Hook run at the end of function `semantic-mru-bookmark-mode'."
@@ -272,17 +260,18 @@
km)
"Keymap for mru-bookmark minor mode.")
-(defvar semantic-mru-bookmark-mode nil
- "Non-nil if mru-bookmark minor mode is enabled.
-Use the command `semantic-mru-bookmark-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-mru-bookmark-mode)
-
-(defun semantic-mru-bookmark-mode-setup ()
- "Setup option `semantic-mru-bookmark-mode'.
-The minor mode can be turned on only if semantic feature is available
-and the current buffer was set up for parsing. When minor mode is
-enabled parse the current buffer if needed. Return non-nil if the
+(define-minor-mode semantic-mru-bookmark-mode
+ "Minor mode for tracking tag-based bookmarks automatically.
+When this mode is enabled, Emacs keeps track of which tags have
+been edited, and you can re-visit them with \\[semantic-mrub-switch-tags].
+
+\\{semantic-mru-bookmark-mode-map}
+
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
+ :keymap semantic-mru-bookmark-mode-map
(if semantic-mru-bookmark-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -294,47 +283,16 @@
(add-hook 'semantic-edits-new-change-hooks
'semantic-mru-bookmark-change-hook-fcn nil t)
(add-hook 'semantic-edits-move-change-hooks
- 'semantic-mru-bookmark-change-hook-fcn nil t)
- )
+ 'semantic-mru-bookmark-change-hook-fcn nil t))
;; Remove hooks
(remove-hook 'semantic-edits-new-change-hooks
'semantic-mru-bookmark-change-hook-fcn t)
(remove-hook 'semantic-edits-move-change-hooks
- 'semantic-mru-bookmark-change-hook-fcn t)
- )
- semantic-mru-bookmark-mode)
-
-(defun semantic-mru-bookmark-mode (&optional arg)
- "Minor mode for tracking tag-based bookmarks automatically.
-When this mode is enabled, Emacs keeps track of which tags have
-been edited, and you can re-visit them with \\[semantic-mrub-switch-tags].
-
-\\{semantic-mru-bookmark-mode-map}
-
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-mru-bookmark-mode 0 1))))
- (setq semantic-mru-bookmark-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-mru-bookmark-mode)))
- (semantic-mru-bookmark-mode-setup)
- (run-hooks 'semantic-mru-bookmark-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "mru-bookmark minor mode %sabled"
- (if semantic-mru-bookmark-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-mru-bookmark-mode)
+ 'semantic-mru-bookmark-change-hook-fcn t))
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-mru-bookmark-mode
- "k"
- semantic-mru-bookmark-mode-map)
+ "k")
;;; COMPLETING READ
;;
=== modified file 'lisp/cedet/semantic/util-modes.el'
--- a/lisp/cedet/semantic/util-modes.el 2010-01-18 04:39:40 +0000
+++ b/lisp/cedet/semantic/util-modes.el 2010-05-02 03:38:19 +0000
@@ -112,7 +112,7 @@
BUFFER is the buffer to not initialize a Semantic minor mode in."
nil)
-(defun semantic-add-minor-mode (toggle name &optional keymap)
+(defun semantic-add-minor-mode (toggle name)
"Register a new Semantic minor mode.
TOGGLE is a symbol which is the name of a buffer-local variable that
is toggled on or off to say whether the minor mode is active or not.
@@ -120,25 +120,12 @@
NAME specifies what will appear in the mode line when the minor mode
is active. NAME should be either a string starting with a space, or a
-symbol whose value is such a string.
-
-Optional KEYMAP is the keymap for the minor mode that will be added to
-`minor-mode-map-alist'."
+symbol whose value is such a string."
;; Add a dymmy semantic minor mode to display the status
(or (assq 'semantic-minor-modes-status minor-mode-alist)
(setq minor-mode-alist (cons (list 'semantic-minor-modes-status
'semantic-minor-modes-status)
minor-mode-alist)))
- (if (fboundp 'add-minor-mode)
- ;; Emacs 21 & XEmacs
- (add-minor-mode toggle "" keymap)
- ;; Emacs 20
- (or (assq toggle minor-mode-alist)
- (setq minor-mode-alist (cons (list toggle "") minor-mode-alist)))
- (or (not keymap)
- (assq toggle minor-mode-map-alist)
- (setq minor-mode-map-alist (cons (cons toggle keymap)
- minor-mode-map-alist))))
;; Record how to display this minor mode in the mode line
(let ((mm (assq toggle semantic-minor-mode-alist)))
(if mm
@@ -157,61 +144,36 @@
(defun semantic-toggle-minor-mode-globally (mode &optional arg)
"Toggle minor mode MODE in every Semantic enabled buffer.
Return non-nil if MODE is turned on in every Semantic enabled buffer.
-If ARG is positive, enable, if it is negative, disable. If ARG is
-nil, then toggle. Otherwise do nothing. MODE must be a valid minor
-mode defined in `minor-mode-alist' and must be too an interactive
-function used to toggle the mode."
+If ARG is positive, enable, if it is negative, disable.
+MODE must be a valid minor mode defined in `minor-mode-alist' and must be
+too an interactive function used to toggle the mode."
+ ;; FIXME: All callers should pass a -1 or +1 argument.
(or (and (fboundp mode) (assq mode minor-mode-alist))
(error "Semantic minor mode %s not found" mode))
- (if (not arg)
- (if (memq mode semantic-init-hook)
- (setq arg -1)
- (setq arg 1)))
- ;; Add or remove the MODE toggle function from
- ;; `semantic-init-hook'. Then turn MODE on or off in every
- ;; Semantic enabled buffer.
+ ;; Add or remove the MODE toggle function from `semantic-init-hook'.
(cond
;; Turn off if ARG < 0
- ((< arg 0)
- (remove-hook 'semantic-init-hook mode)
- (semantic-map-buffers #'(lambda () (funcall mode -1)))
- nil)
+ ((< arg 0) (remove-hook 'semantic-init-hook mode))
;; Turn on if ARG > 0
- ((> arg 0)
- (add-hook 'semantic-init-hook mode)
- (semantic-map-buffers #'(lambda () (funcall mode 1)))
- t)
+ ((> arg 0) (add-hook 'semantic-init-hook mode))
;; Otherwise just check MODE state
(t
- (memq mode semantic-init-hook))
- ))
+ (error "semantic-toggle-minor-mode-globally: arg should be -1 or 1")))
+ ;; Then turn MODE on or off in every Semantic enabled buffer.
+ (semantic-map-buffers #'(lambda () (funcall mode arg))))
;;;;
;;;; Minor mode to highlight areas that a user edits.
;;;;
;;;###autoload
-(defun global-semantic-highlight-edits-mode (&optional arg)
+(define-minor-mode global-semantic-highlight-edits-mode
"Toggle global use of option `semantic-highlight-edits-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-highlight-edits-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-highlight-edits-mode arg)))
-
-;;;###autoload
-(defcustom global-semantic-highlight-edits-mode nil
- "If non-nil enable global use of variable `semantic-highlight-edits-mode'.
-When this mode is enabled, changes made to a buffer are highlighted
-until the buffer is reparsed."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-highlight-edits-mode (if val 1 -1))))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic :group 'semantic-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-highlight-edits-mode
+ (if global-semantic-highlight-edits-mode 1 -1)))
(defcustom semantic-highlight-edits-mode-hook nil
"Hook run at the end of function `semantic-highlight-edits-mode'."
@@ -238,17 +200,18 @@
km)
"Keymap for highlight-edits minor mode.")
-(defvar semantic-highlight-edits-mode nil
- "Non-nil if highlight-edits minor mode is enabled.
-Use the command `semantic-highlight-edits-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-highlight-edits-mode)
-
-(defun semantic-highlight-edits-mode-setup ()
- "Setup option `semantic-highlight-edits-mode'.
-The minor mode can be turned on only if semantic feature is available
-and the current buffer was set up for parsing. When minor mode is
-enabled parse the current buffer if needed. Return non-nil if the
+;;;###autoload
+(define-minor-mode semantic-highlight-edits-mode
+ "Minor mode for highlighting changes made in a buffer.
+Changes are tracked by semantic so that the incremental parser can work
+properly.
+This mode will highlight those changes as they are made, and clear them
+when the incremental parser accounts for those edits.
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
+ :keymap semantic-highlight-edits-mode-map
(if semantic-highlight-edits-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -258,73 +221,29 @@
(buffer-name)))
(semantic-make-local-hook 'semantic-edits-new-change-hooks)
(add-hook 'semantic-edits-new-change-hooks
- 'semantic-highlight-edits-new-change-hook-fcn nil t)
- )
+ 'semantic-highlight-edits-new-change-hook-fcn nil t))
;; Remove hooks
(remove-hook 'semantic-edits-new-change-hooks
- 'semantic-highlight-edits-new-change-hook-fcn t)
- )
- semantic-highlight-edits-mode)
-
-;;;###autoload
-(defun semantic-highlight-edits-mode (&optional arg)
- "Minor mode for highlighting changes made in a buffer.
-Changes are tracked by semantic so that the incremental parser can work
-properly.
-This mode will highlight those changes as they are made, and clear them
-when the incremental parser accounts for those edits.
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-highlight-edits-mode 0 1))))
- (setq semantic-highlight-edits-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-highlight-edits-mode)))
- (semantic-highlight-edits-mode-setup)
- (run-hooks 'semantic-highlight-edits-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "highlight-edits minor mode %sabled"
- (if semantic-highlight-edits-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-highlight-edits-mode)
+ 'semantic-highlight-edits-new-change-hook-fcn t))
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-highlight-edits-mode
- "e"
- semantic-highlight-edits-mode-map)
-
+ "e")
;;;;
;;;; Minor mode to show unmatched-syntax elements
;;;;
;;;###autoload
-(defun global-semantic-show-unmatched-syntax-mode (&optional arg)
+(define-minor-mode global-semantic-show-unmatched-syntax-mode
"Toggle global use of option `semantic-show-unmatched-syntax-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-show-unmatched-syntax-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-show-unmatched-syntax-mode arg)))
-
-;;;###autoload
-(defcustom global-semantic-show-unmatched-syntax-mode nil
- "If non-nil, enable global use of `semantic-show-unmatched-syntax-mode'.
-When this mode is enabled, syntax in the current buffer which the
-semantic parser cannot match is highlighted with a red underline."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-show-unmatched-syntax-mode (if val 1 -1))))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic :group 'semantic-modes
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic/util-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-show-unmatched-syntax-mode
+ (if global-semantic-show-unmatched-syntax-mode 1 -1)))
(defcustom semantic-show-unmatched-syntax-mode-hook nil
"Hook run at the end of function `semantic-show-unmatched-syntax-mode'."
@@ -432,18 +351,21 @@
km)
"Keymap for command `semantic-show-unmatched-syntax-mode'.")
-(defvar semantic-show-unmatched-syntax-mode nil
- "Non-nil if show-unmatched-syntax minor mode is enabled.
-Use the command `semantic-show-unmatched-syntax-mode' to change this
-variable.")
-(make-variable-buffer-local 'semantic-show-unmatched-syntax-mode)
-
-(defun semantic-show-unmatched-syntax-mode-setup ()
- "Setup the `semantic-show-unmatched-syntax' minor mode.
-The minor mode can be turned on only if semantic feature is available
-and the current buffer was set up for parsing. When minor mode is
-enabled parse the current buffer if needed. Return non-nil if the
-minor mode is enabled."
+;;;###autoload
+(define-minor-mode semantic-show-unmatched-syntax-mode
+ "Minor mode to highlight unmatched lexical syntax tokens.
+When a parser executes, some elements in the buffer may not match any
+parser rules. These text characters are considered unmatched syntax.
+Often time, the display of unmatched syntax can expose coding
+problems before the compiler is run.
+
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
+minor mode is enabled.
+
+\\{semantic-show-unmatched-syntax-mode-map}"
+ :keymap semantic-show-unmatched-syntax-mode-map
(if semantic-show-unmatched-syntax-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -469,42 +391,10 @@
'semantic-clean-token-of-unmatched-syntax t)
;; Cleanup unmatched-syntax highlighting
(semantic-clean-unmatched-syntax-in-buffer))
- semantic-show-unmatched-syntax-mode)
-
-;;;###autoload
-(defun semantic-show-unmatched-syntax-mode (&optional arg)
- "Minor mode to highlight unmatched lexical syntax tokens.
-When a parser executes, some elements in the buffer may not match any
-parser rules. These text characters are considered unmatched syntax.
-Often time, the display of unmatched syntax can expose coding
-problems before the compiler is run.
-
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled.
-
-\\{semantic-show-unmatched-syntax-mode-map}"
- (interactive
- (list (or current-prefix-arg
- (if semantic-show-unmatched-syntax-mode 0 1))))
- (setq semantic-show-unmatched-syntax-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-show-unmatched-syntax-mode)))
- (semantic-show-unmatched-syntax-mode-setup)
- (run-hooks 'semantic-show-unmatched-syntax-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "show-unmatched-syntax minor mode %sabled"
- (if semantic-show-unmatched-syntax-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-show-unmatched-syntax-mode)
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-show-unmatched-syntax-mode
- "u"
- semantic-show-unmatched-syntax-mode-map)
+ "u")
(defun semantic-show-unmatched-syntax-next ()
"Move forward to the next occurrence of unmatched syntax."
@@ -519,27 +409,15 @@
;;;;
;;;###autoload
-(defcustom global-semantic-show-parser-state-mode nil
- "If non-nil enable global use of `semantic-show-parser-state-mode'.
-When enabled, the current parse state of the current buffer is displayed
-in the mode line. See `semantic-show-parser-state-marker' for details
-on what is displayed."
- :group 'semantic
- :type 'boolean
- :require 'semantic/util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-show-parser-state-mode (if val 1 -1))))
-
-;;;###autoload
-(defun global-semantic-show-parser-state-mode (&optional arg)
+(define-minor-mode global-semantic-show-parser-state-mode
"Toggle global use of option `semantic-show-parser-state-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-show-parser-state-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-show-parser-state-mode arg)))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic/util-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-show-parser-state-mode
+ (if global-semantic-show-parser-state-mode 1 -1)))
(defcustom semantic-show-parser-state-mode-hook nil
"Hook run at the end of function `semantic-show-parser-state-mode'."
@@ -551,17 +429,22 @@
km)
"Keymap for show-parser-state minor mode.")
-(defvar semantic-show-parser-state-mode nil
- "Non-nil if show-parser-state minor mode is enabled.
-Use the command `semantic-show-parser-state-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-show-parser-state-mode)
-
-(defun semantic-show-parser-state-mode-setup ()
- "Setup option `semantic-show-parser-state-mode'.
-The minor mode can be turned on only if semantic feature is available
-and the current buffer was set up for parsing. When minor mode is
-enabled parse the current buffer if needed. Return non-nil if the
+;;;###autoload
+(define-minor-mode semantic-show-parser-state-mode
+ "Minor mode for displaying parser cache state in the modeline.
+The cache can be in one of three states. They are
+Up to date, Partial reparse needed, and Full reparse needed.
+The state is indicated in the modeline with the following characters:
+ `-' -> The cache is up to date.
+ `!' -> The cache requires a full update.
+ `~' -> The cache needs to be incrementally parsed.
+ `%' -> The cache is not currently parseable.
+ `@' -> Auto-parse in progress (not set here.)
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
+ :keymap semantic-show-parser-state-mode-map
(if semantic-show-parser-state-mode
(if (not (and (featurep 'semantic) (semantic-active-p)))
(progn
@@ -603,8 +486,7 @@
'semantic-show-parser-state-auto-marker nil t)
(semantic-make-local-hook 'semantic-after-idle-scheduler-reparse-hook)
(add-hook 'semantic-after-idle-scheduler-reparse-hook
- 'semantic-show-parser-state-marker nil t)
- )
+ 'semantic-show-parser-state-marker nil t))
;; Remove parts of mode line
(setq mode-line-modified
(delq 'semantic-show-parser-state-string mode-line-modified))
@@ -626,45 +508,11 @@
(remove-hook 'semantic-before-idle-scheduler-reparse-hook
'semantic-show-parser-state-auto-marker t)
(remove-hook 'semantic-after-idle-scheduler-reparse-hook
- 'semantic-show-parser-state-marker t)
- )
- semantic-show-parser-state-mode)
-
-;;;###autoload
-(defun semantic-show-parser-state-mode (&optional arg)
- "Minor mode for displaying parser cache state in the modeline.
-The cache can be in one of three states. They are
-Up to date, Partial reparse needed, and Full reparse needed.
-The state is indicated in the modeline with the following characters:
- `-' -> The cache is up to date.
- `!' -> The cache requires a full update.
- `~' -> The cache needs to be incrementally parsed.
- `%' -> The cache is not currently parseable.
- `@' -> Auto-parse in progress (not set here.)
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-show-parser-state-mode 0 1))))
- (setq semantic-show-parser-state-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-show-parser-state-mode)))
- (semantic-show-parser-state-mode-setup)
- (run-hooks 'semantic-show-parser-state-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "show-parser-state minor mode %sabled"
- (if semantic-show-parser-state-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-show-parser-state-mode)
+ 'semantic-show-parser-state-marker t))
+ (semantic-mode-line-update))
(semantic-add-minor-mode 'semantic-show-parser-state-mode
- ""
- semantic-show-parser-state-mode-map)
+ "")
(defvar semantic-show-parser-state-string nil
"String showing the parser state for this buffer.
@@ -710,30 +558,14 @@
;;;;
;;;###autoload
-(defun global-semantic-stickyfunc-mode (&optional arg)
+(define-minor-mode global-semantic-stickyfunc-mode
"Toggle global use of option `semantic-stickyfunc-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-stickyfunc-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-stickyfunc-mode arg)))
-
-;;;###autoload
-(defcustom global-semantic-stickyfunc-mode nil
- "If non-nil, enable global use of `semantic-stickyfunc-mode'.
-This minor mode only works for Emacs 21 or later.
-When enabled, the header line is enabled, and the first line
-of the current function or method is displayed in it.
-This makes it appear that the first line of that tag is
-`sticky' to the top of the window."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-stickyfunc-mode (if val 1 -1))))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic :group 'semantic-modes
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic/util-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-stickyfunc-mode (if global-semantic-stickyfunc-mode 1 -1)))
(defcustom semantic-stickyfunc-mode-hook nil
"Hook run at the end of function `semantic-stickyfunc-mode'."
@@ -781,11 +613,6 @@
(describe-function 'semantic-stickyfunc-mode)) t])
)
-(defvar semantic-stickyfunc-mode nil
- "Non-nil if stickyfunc minor mode is enabled.
-Use the command `semantic-stickyfunc-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-stickyfunc-mode)
-
(defcustom semantic-stickyfunc-indent-string
(if (and window-system (not (featurep 'xemacs)))
(concat
@@ -870,11 +697,21 @@
(t nil))
"The header line format used by stickyfunc mode.")
-(defun semantic-stickyfunc-mode-setup ()
- "Setup option `semantic-stickyfunc-mode'.
-For semantic enabled buffers, make the function declaration for the top most
-function \"sticky\". This is accomplished by putting the first line of
-text for that function in the header line."
+;;;###autoload
+(define-minor-mode semantic-stickyfunc-mode
+ "Minor mode to show the title of a tag in the header line.
+Enables/disables making the header line of functions sticky.
+A function (or other tag class specified by
+`semantic-stickyfunc-sticky-classes') has a header line, meaning the
+first line which describes the rest of the construct. This first
+line is what is displayed in the header line.
+
+With prefix argument ARG, turn on if positive, otherwise off. The
+minor mode can be turned on only if semantic feature is available and
+the current buffer was set up for parsing. Return non-nil if the
+minor mode is enabled."
+ ;; Don't need indicator. It's quite visible
+ :keymap semantic-stickyfunc-mode-map
(if semantic-stickyfunc-mode
(progn
(unless (and (featurep 'semantic) (semantic-active-p))
@@ -892,8 +729,7 @@
semantic-stickyfunc-header-line-format)))
(set (make-local-variable 'semantic-stickyfunc-old-hlf)
header-line-format))
- (setq header-line-format semantic-stickyfunc-header-line-format)
- )
+ (setq header-line-format semantic-stickyfunc-header-line-format))
;; Disable sticky func mode
;; Restore previous buffer local value of header line format if
;; the current one is the sticky func one.
@@ -902,37 +738,7 @@
(when (local-variable-p 'semantic-stickyfunc-old-hlf (current-buffer))
(setq header-line-format semantic-stickyfunc-old-hlf)
(kill-local-variable 'semantic-stickyfunc-old-hlf))))
- semantic-stickyfunc-mode)
-
-;;;###autoload
-(defun semantic-stickyfunc-mode (&optional arg)
- "Minor mode to show the title of a tag in the header line.
-Enables/disables making the header line of functions sticky.
-A function (or other tag class specified by
-`semantic-stickyfunc-sticky-classes') has a header line, meaning the
-first line which describes the rest of the construct. This first
-line is what is displayed in the header line.
-
-With prefix argument ARG, turn on if positive, otherwise off. The
-minor mode can be turned on only if semantic feature is available and
-the current buffer was set up for parsing. Return non-nil if the
-minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-stickyfunc-mode 0 1))))
- (setq semantic-stickyfunc-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-stickyfunc-mode)))
- (semantic-stickyfunc-mode-setup)
- (run-hooks 'semantic-stickyfunc-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "Stickyfunc minor mode %sabled"
- (if semantic-stickyfunc-mode "en" "dis")))
- (semantic-mode-line-update)
- semantic-stickyfunc-mode)
+ (semantic-mode-line-update))
(defvar semantic-stickyfunc-sticky-classes
'(function type)
@@ -1012,8 +818,7 @@
(semantic-add-minor-mode 'semantic-stickyfunc-mode
- "" ;; Don't need indicator. It's quite visible
- semantic-stickyfunc-mode-map)
+ "") ;; Don't need indicator. It's quite visible
@@ -1025,26 +830,15 @@
;; from the tag going off the top of the screen.
;;;###autoload
-(defun global-semantic-highlight-func-mode (&optional arg)
+(define-minor-mode global-semantic-highlight-func-mode
"Toggle global use of option `semantic-highlight-func-mode'.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-semantic-highlight-func-mode
- (semantic-toggle-minor-mode-globally
- 'semantic-highlight-func-mode arg)))
-
-;;;###autoload
-(defcustom global-semantic-highlight-func-mode nil
- "If non-nil, enable global use of `semantic-highlight-func-mode'.
-When enabled, the first line of the current tag is highlighted."
- :group 'semantic
- :group 'semantic-modes
- :type 'boolean
- :require 'semantic/util-modes
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-semantic-highlight-func-mode (if val 1 -1))))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'semantic :group 'semantic-modes
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'semantic/util-modes
+ (semantic-toggle-minor-mode-globally
+ 'semantic-highlight-func-mode
+ (if global-semantic-highlight-func-mode 1 -1)))
(defcustom semantic-highlight-func-mode-hook nil
"Hook run at the end of function `semantic-highlight-func-mode'."
@@ -1108,11 +902,6 @@
)
(select-window startwin)))
-(defvar semantic-highlight-func-mode nil
- "Non-nil if highlight-func minor mode is enabled.
-Use the command `semantic-highlight-func-mode' to change this variable.")
-(make-variable-buffer-local 'semantic-highlight-func-mode)
-
(defvar semantic-highlight-func-ct-overlay nil
"Overlay used to highlight the tag the cursor is in.")
(make-variable-buffer-local 'semantic-highlight-func-ct-overlay)
@@ -1126,28 +915,8 @@
"Face used to show the top of current function."
:group 'semantic-faces)
-
-(defun semantic-highlight-func-mode-setup ()
- "Setup option `semantic-highlight-func-mode'.
-For Semantic enabled buffers, highlight the first line of the
-current tag declaration."
- (if semantic-highlight-func-mode
- (progn
- (unless (and (featurep 'semantic) (semantic-active-p))
- ;; Disable minor mode if semantic stuff not available
- (setq semantic-highlight-func-mode nil)
- (error "Buffer %s was not set up for parsing" (buffer-name)))
- ;; Setup our hook
- (add-hook 'post-command-hook
'semantic-highlight-func-highlight-current-tag nil t)
- )
- ;; Disable highlight func mode
- (remove-hook 'post-command-hook
'semantic-highlight-func-highlight-current-tag t)
- (semantic-highlight-func-highlight-current-tag t)
- )
- semantic-highlight-func-mode)
-
;;;###autoload
-(defun semantic-highlight-func-mode (&optional arg)
+(define-minor-mode semantic-highlight-func-mode
"Minor mode to highlight the first line of the current tag.
Enables/disables making the current function's first line light up.
A function (or other tag class specified by
@@ -1162,21 +931,20 @@
minor mode can be turned on only if semantic feature is available and
the current buffer was set up for parsing. Return non-nil if the
minor mode is enabled."
- (interactive
- (list (or current-prefix-arg
- (if semantic-highlight-func-mode 0 1))))
- (setq semantic-highlight-func-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not semantic-highlight-func-mode)))
- (semantic-highlight-func-mode-setup)
- (run-hooks 'semantic-highlight-func-mode-hook)
- (if (called-interactively-p 'interactive)
- (message "Highlight-Func minor mode %sabled"
- (if semantic-highlight-func-mode "en" "dis")))
- semantic-highlight-func-mode)
+ :lighter nil ;; Don't need indicator. It's quite visible.
+ (if semantic-highlight-func-mode
+ (progn
+ (unless (and (featurep 'semantic) (semantic-active-p))
+ ;; Disable minor mode if semantic stuff not available
+ (setq semantic-highlight-func-mode nil)
+ (error "Buffer %s was not set up for parsing" (buffer-name)))
+ ;; Setup our hook
+ (add-hook 'post-command-hook
+ 'semantic-highlight-func-highlight-current-tag nil t))
+ ;; Disable highlight func mode
+ (remove-hook 'post-command-hook
+ 'semantic-highlight-func-highlight-current-tag t)
+ (semantic-highlight-func-highlight-current-tag t)))
(defun semantic-highlight-func-highlight-current-tag (&optional disable)
"Highlight the current tag under point.
@@ -1223,8 +991,7 @@
nil)
(semantic-add-minor-mode 'semantic-highlight-func-mode
- "" ;; Don't need indicator. It's quite visible
- nil)
+ "") ;; Don't need indicator. It's quite visible
(provide 'semantic/util-modes)
=== modified file 'lisp/cedet/srecode/mode.el'
--- a/lisp/cedet/srecode/mode.el 2010-01-13 08:35:10 +0000
+++ b/lisp/cedet/srecode/mode.el 2010-05-02 03:38:19 +0000
@@ -37,19 +37,6 @@
;;; Code:
-(defcustom global-srecode-minor-mode nil
- "Non-nil in buffers with Semantic Recoder macro keybindings."
- :group 'srecode
- :type 'boolean
- :require 'srecode/mode
- :initialize 'custom-initialize-default
- :set (lambda (sym val)
- (global-srecode-minor-mode (if val 1 -1))))
-
-(defvar srecode-minor-mode nil
- "Non-nil in buffers with Semantic Recoder macro keybindings.")
-(make-variable-buffer-local 'srecode-minor-mode)
-
(defcustom srecode-minor-mode-hook nil
"Hook run at the end of the function `srecode-minor-mode'."
:group 'srecode
@@ -150,7 +137,7 @@
"Keymap for srecode minor mode.")
;;;###autoload
-(defun srecode-minor-mode (&optional arg)
+(define-minor-mode srecode-minor-mode
"Toggle srecode minor mode.
With prefix argument ARG, turn on if positive, otherwise off. The
minor mode can be turned on only if semantic feature is available and
@@ -158,16 +145,7 @@
minor mode is enabled.
\\{srecode-mode-map}"
- (interactive
- (list (or current-prefix-arg
- (if srecode-minor-mode 0 1))))
- ;; Flip the bits.
- (setq srecode-minor-mode
- (if arg
- (>
- (prefix-numeric-value arg)
- 0)
- (not srecode-minor-mode)))
+ :keymap srecode-mode-map
;; If we are turning things on, make sure we have templates for
;; this mode first.
(when srecode-minor-mode
@@ -176,25 +154,20 @@
(mapcar (lambda (map)
(srecode-map-entries-for-mode map major-mode))
(srecode-get-maps))))
- (setq srecode-minor-mode nil))
- )
- ;; Run hooks if we are turning this on.
- (when srecode-minor-mode
- (run-hooks 'srecode-minor-mode-hook))
- srecode-minor-mode)
+ (setq srecode-minor-mode nil))))
;;;###autoload
-(defun global-srecode-minor-mode (&optional arg)
+(define-minor-mode global-srecode-minor-mode
"Toggle global use of srecode minor mode.
-If ARG is positive, enable, if it is negative, disable.
-If ARG is nil, then toggle."
- (interactive "P")
- (setq global-srecode-minor-mode
- (semantic-toggle-minor-mode-globally
- 'srecode-minor-mode arg)))
+If ARG is positive or nil, enable, if it is negative, disable."
+ :global t :group 'srecode
+ ;; Not needed because it's autoloaded instead.
+ ;; :require 'srecode/mode
+ (semantic-toggle-minor-mode-globally
+ 'srecode-minor-mode (if global-srecode-minor-mode 1 -1)))
;; Use the semantic minor mode magic stuff.
-(semantic-add-minor-mode 'srecode-minor-mode "" srecode-mode-map)
+(semantic-add-minor-mode 'srecode-minor-mode "")
;;; Menu Filters
;;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r100114: Use define-minor-mode in CEDET where applicable.,
Stefan Monnier <=