summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2009-09-21 02:14:58 +0000
committerChong Yidong <cyd@stupidchicken.com>2009-09-21 02:14:58 +0000
commitb82525f29a46897b1583919818d174d6f778e2bd (patch)
tree5511f4ab7485018d22b9953c91735bc006c8f6e5 /lisp
parent826608a5fd403acf8a9ae40884fac604b31b0843 (diff)
downloademacs-b82525f29a46897b1583919818d174d6f778e2bd.tar.gz
* menu-bar.el: Remove ediff-misc from Tools menu.
* cedet/semantic.el (semantic-init-hook) (semantic-init-mode-hook, semantic-init-db-hook): Rename from *-hooks, to follow hook naming conventions. (semantic-submode-list, semantic-default-submodes): New vars. (semantic-mode): New mode. (semantic-parser-working-message): Add ellipses to parse message. * cedet/semantic/bovine/c.el: * cedet/semantic/bovine/make.el: * cedet/semantic/bovine/scm.el: * cedet/semantic/wisent/java-tags.el: * cedet/semantic/wisent/javascript.el: Don't set hooks directly. This is now done in semantic-mode. * cedet/semantic/decorate/mode.el (global-semantic-decoration-mode): Autoload. * cedet/srecode/compile.el: * cedet/srecode/insert.el: * cedet/srecode/mode.el: Fix require statements.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog37
-rw-r--r--lisp/cedet/ede/cpp-root.el2
-rw-r--r--lisp/cedet/ede/pmake.el2
-rw-r--r--lisp/cedet/semantic.el132
-rw-r--r--lisp/cedet/semantic/bovine/c.el5
-rw-r--r--lisp/cedet/semantic/bovine/make.el3
-rw-r--r--lisp/cedet/semantic/bovine/scm.el3
-rw-r--r--lisp/cedet/semantic/decorate/mode.el8
-rw-r--r--lisp/cedet/semantic/html.el3
-rw-r--r--lisp/cedet/semantic/wisent/java-tags.el3
-rw-r--r--lisp/cedet/semantic/wisent/javascript.el5
-rw-r--r--lisp/cedet/srecode/compile.el2
-rw-r--r--lisp/cedet/srecode/insert.el2
-rw-r--r--lisp/cedet/srecode/mode.el2
-rw-r--r--lisp/ediff-hook.el7
-rw-r--r--lisp/menu-bar.el2
16 files changed, 166 insertions, 52 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 200ff032de9..3f4b8f705ae 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,40 @@
+2009-09-21 Chong Yidong <cyd@stupidchicken.com>
+
+ * menu-bar.el: Remove ediff-misc from Tools menu.
+
+ * cedet/semantic.el (semantic-init-hook)
+ (semantic-init-mode-hook, semantic-init-db-hook): Rename
+ from *-hooks, to follow hook naming conventions.
+ (semantic-submode-list, semantic-default-submodes): New vars.
+ (semantic-mode): New mode.
+ (semantic-parser-working-message): Add ellipses to parse message.
+
+ * cedet/semantic/bovine/c.el:
+ * cedet/semantic/bovine/make.el:
+ * cedet/semantic/bovine/scm.el:
+ * cedet/semantic/wisent/java-tags.el:
+ * cedet/semantic/wisent/javascript.el: Don't set hooks directly.
+ This is now done in semantic-mode.
+
+ * cedet/semantic/decorate/mode.el (global-semantic-decoration-mode):
+ Autoload.
+
+ * cedet/srecode/compile.el:
+ * cedet/srecode/insert.el:
+ * cedet/srecode/mode.el: Fix require statements.
+
2009-09-20 Chong Yidong <cyd@stupidchicken.com>
+ * cedet/semantic/decorate/mode.el (global-semantic-decoration-mode):
+ Autoload.
+
+ * cedet/ede/cpp-root.el (ede-set-project-variables): Fix featurep.
+
+ * cedet/srecode/mode.el (global-srecode-minor-mode): Fix require.
+
+ * cedet/srecode/insert.el (srecode--insert-into-buffer): Fix
+ require.
+
* cedet/cedet.el: Require srecode.
* cedet/ede/system.el: Add local vars for autoloading.
@@ -7,9 +42,11 @@
* cedet/ede/pmake.el (ede-proj-makefile-create): Require
ede/srecode.
+ (ede-proj-makefile-create): Fix require.
* cedet/srecode/compile.el (srecode-compile-split-code)
(srecode-compile-parse-inserter): Fix compiler warning.
+ (srecode-compile-templates): Fix require.
2009-09-20 Chong Yidong <cyd@stupidchicken.com>
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el
index 02f86d2c856..a922cc15782 100644
--- a/lisp/cedet/ede/cpp-root.el
+++ b/lisp/cedet/ede/cpp-root.el
@@ -467,7 +467,7 @@ This is for project include paths and spp source files."
"Set variables local to PROJECT in BUFFER.
Also set up the lexical preprocessor map."
(call-next-method)
- (when (and (featurep 'semantic-c) (featurep 'semantic-lex-spp))
+ (when (and (featurep 'semantic/c) (featurep 'semantic/lex-spp))
(setq semantic-lex-spp-project-macro-symbol-obarray
(semantic-lex-make-spp-table (oref project spp-table)))
))
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index 302de420543..348bc3e302b 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -204,7 +204,7 @@ MFILENAME is the makefile to generate."
((eq (oref this makefile-type) 'Makefile.in)
(error "Makefile.in is not supported"))
((eq (oref this makefile-type) 'Makefile.am)
- (require 'ede-pconf)
+ (require 'ede/pconf)
;; Distribution variables
(let ((targ (if isdist (oref this targets) mt)))
(ede-compiler-begin-unique
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index 2d38103f9ee..5596bda981b 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -255,19 +255,26 @@ setup to use Semantic."
:group 'semantic
:type 'hook)
-(defvar semantic-init-hooks nil
- "*Hooks run when a buffer is initialized with a parsing table.")
+(defvar semantic-init-hook nil
+ "Hook run when a buffer is initialized with a parsing table.")
-(defvar semantic-init-mode-hooks nil
- "*Hooks run when a buffer of a particular mode is initialized.")
-(make-variable-buffer-local 'semantic-init-mode-hooks)
+(defvar semantic-init-mode-hook nil
+ "Hook run when a buffer of a particular mode is initialized.")
+(make-variable-buffer-local 'semantic-init-mode-hook)
-(defvar semantic-init-db-hooks nil
- "Hooks run when a buffer is initialized with a parsing table for DBs.
+(defvar semantic-init-db-hook nil
+ "Hook run when a buffer is initialized with a parsing table for DBs.
This hook is for database functions which intend to swap in a tag table.
This guarantees that the DB will go before other modes that require
a parse of the buffer.")
+(define-obsolete-variable-alias 'semantic-init-hooks
+ 'semantic-init-hook "23.2")
+(define-obsolete-variable-alias 'semantic-init-mode-hooks
+ 'semantic-init-mode-hook "23.2")
+(define-obsolete-variable-alias 'semantic-init-db-hooks
+ 'semantic-init-db-hook "23.2")
+
(defvar semantic-new-buffer-fcn-was-run nil
"Non nil after `semantic-new-buffer-fcn' has been executed.")
(make-variable-buffer-local 'semantic-new-buffer-fcn-was-run)
@@ -306,17 +313,11 @@ to use Semantic, and `semantic-init-hook' is run."
;; Force this buffer to have its cache refreshed.
(semantic-clear-toplevel-cache)
;; Call DB hooks before regular init hooks
- (run-hooks 'semantic-init-db-hooks)
+ (run-hooks 'semantic-init-db-hook)
;; Set up semantic modes
- (run-hooks 'semantic-init-hooks)
+ (run-hooks 'semantic-init-hook)
;; Set up major-mode specific semantic modes
- (run-hooks 'semantic-init-mode-hooks)
- ))
-
-(add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
-
-;; Test the above hook.
-;;(add-hook 'semantic-init-hooks (lambda () (message "init for semantic")))
+ (run-hooks 'semantic-init-mode-hook)))
(defun semantic-fetch-tags-fast ()
"For use in a hook. When only a partial reparse is needed, reparse."
@@ -325,9 +326,6 @@ to use Semantic, and `semantic-init-hook' is run."
(semantic-fetch-tags))
(error nil))
semantic--buffer-cache)
-
-(if (boundp 'eval-defun-hooks)
- (add-hook 'eval-defun-hooks 'semantic-fetch-tags-fast))
;;; Parsing Commands
;;
@@ -528,7 +526,7 @@ Bufferse larger than this will display the working progress bar.")
If optional argument ARG is non-nil it is appended to the message
string."
(if semantic-parser-name
- (format "%s/%s" semantic-parser-name (or arg ""))
+ (format "%s/%s..." semantic-parser-name (or arg ""))
(format "%s" (or arg ""))))
;;; Application Parser Entry Points
@@ -817,10 +815,104 @@ a START and END part."
(make-obsolete 'semantic-bovinate-from-nonterminal-full
'semantic-parse-region)
+;;; User interface
+
+;; The `semantic-mode' command, in conjuction with the
+;; `semantic-default-submodes' variable, are used to collectively
+;; toggle Semantic's various auxilliary minor modes.
+
+(defvar semantic-load-system-cache-loaded nil
+ "Non nil when the Semantic system caches have been loaded.
+Prevent this load system from loading files in twice.")
+
+(defconst semantic-submode-list
+ '(global-semantic-highlight-func-mode
+ global-semantic-decoration-mode
+ global-semantic-stickyfunc-mode
+ global-semantic-idle-completions-mode
+ global-semantic-idle-scheduler-mode
+ global-semanticdb-minor-mode
+ global-semantic-idle-summary-mode
+ global-semantic-mru-bookmark-mode)
+ "List of auxilliary minor modes in the Semantic package.")
+
+;;;###autoload
+(defcustom semantic-default-submodes
+ '(global-semantic-idle-scheduler-mode global-semanticdb-minor-mode)
+ "List of auxilliary Semantic minor modes enabled by `semantic-mode'.
+The possible elements of this list include the following:
+
+ `semantic-highlight-func-mode' - Highlight the current tag.
+ `semantic-decoration-mode' - Decorate tags based on various attributes.
+ `semantic-stickyfunc-mode' - Track current function in the header-line.
+ `semantic-idle-completions-mode' - Provide smart symbol completion
+ automatically when idle.
+ `semantic-idle-scheduler-mode' - Keep a buffer's parse tree up to date.
+ `semanticdb-minor-mode' - Store tags when a buffer is not in memory.
+ `semantic-idle-summary-mode' - Show a summary for the code at point.
+ `semantic-mru-bookmark-mode' - Provide `switch-to-buffer'-like
+ keybinding for tag names."
+ :group 'semantic
+ :type `(set ,@(mapcar (lambda (c) (list 'const c))
+ semantic-submode-list)))
+
+;;;###autoload
+(define-minor-mode semantic-mode
+ "Toggle Semantic mode.
+With ARG, turn Semantic mode on if ARG is positive, off otherwise.
+
+In Semantic mode, Emacs parses the buffers you visit for their
+semantic content. This information is used by a variety of
+auxilliary minor modes, listed in `semantic-default-submodes';
+all the minor modes in this list are also enabled when you enable
+Semantic mode."
+ :group 'semantic
+ (if semantic-mode
+ ;; Turn on Semantic mode
+ (progn
+ (dolist (mode semantic-submode-list)
+ (if (memq mode semantic-default-submodes)
+ (funcall mode 1)))
+ (unless semantic-load-system-cache-loaded
+ (setq semantic-load-system-cache-loaded t)
+ (when (and (boundp 'semanticdb-default-system-save-directory)
+ (stringp semanticdb-default-system-save-directory)
+ (file-exists-p semanticdb-default-system-save-directory))
+ (semanticdb-load-ebrowse-caches)))
+ (add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
+ ;; Add mode-local hooks
+ (add-hook 'javascript-mode-hook 'wisent-javascript-setup-parser)
+ (add-hook 'ecmascript-mode-hook 'wisent-javascript-setup-parser)
+ (add-hook 'java-mode-hook 'wisent-java-default-setup)
+ (add-hook 'scheme-mode-hook 'semantic-default-scheme-setup)
+ (add-hook 'makefile-mode-hook 'semantic-default-make-setup)
+ (add-hook 'c-mode-hook 'semantic-default-c-setup)
+ (add-hook 'c++-mode-hook 'semantic-default-c-setup)
+ (add-hook 'html-mode-hook 'semantic-default-html-setup))
+ ;; Disable all Semantic features.
+ (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
+ (remove-hook 'javascript-mode-hook 'wisent-javascript-setup-parser)
+ (remove-hook 'ecmascript-mode-hook 'wisent-javascript-setup-parser)
+ (remove-hook 'java-mode-hook 'wisent-java-default-setup)
+ (remove-hook 'scheme-mode-hook 'semantic-default-scheme-setup)
+ (remove-hook 'makefile-mode-hook 'semantic-default-make-setup)
+ (remove-hook 'c-mode-hook 'semantic-default-c-setup)
+ (remove-hook 'c++-mode-hook 'semantic-default-c-setup)
+ (remove-hook 'html-mode-hook 'semantic-default-html-setup)
+
+ ;; FIXME: handle semanticdb-load-ebrowse-caches
+
+ (dolist (mode semantic-submode-list)
+ (if (and (boundp mode) (eval mode))
+ (funcall mode -1)))))
+
+
(provide 'semantic)
;; Semantic-util is a part of the semantic API. Include it last
;; because it depends on semantic.
(require 'semantic/util)
+;; (require 'semantic/load)
+
;;; semantic.el ends here
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index 5ab658d6af7..f49d569c43e 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -1629,11 +1629,6 @@ DO NOT return the list of tags encompassing point."
(semantic-c-reset-preprocessor-symbol-map)
)
-;;;###autoload
-(add-hook 'c-mode-hook 'semantic-default-c-setup)
-;;;###autoload
-(add-hook 'c++-mode-hook 'semantic-default-c-setup)
-
;;; SETUP QUERY
;;
(defun semantic-c-describe-environment ()
diff --git a/lisp/cedet/semantic/bovine/make.el b/lisp/cedet/semantic/bovine/make.el
index 1686ef2aa15..ac7d084a384 100644
--- a/lisp/cedet/semantic/bovine/make.el
+++ b/lisp/cedet/semantic/bovine/make.el
@@ -230,9 +230,6 @@ Uses default implementation, and also gets a list of filenames."
(setq semantic-lex-analyzer #'semantic-make-lexer)
)
-;;;###autoload
-(add-hook 'makefile-mode-hook 'semantic-default-make-setup)
-
(provide 'semantic/bovine/make)
;; Local variables:
diff --git a/lisp/cedet/semantic/bovine/scm.el b/lisp/cedet/semantic/bovine/scm.el
index 3558062d61d..091486cc382 100644
--- a/lisp/cedet/semantic/bovine/scm.el
+++ b/lisp/cedet/semantic/bovine/scm.el
@@ -110,9 +110,6 @@ syntax as specified by the syntax table."
(setq semantic-lex-analyzer #'semantic-scheme-lexer)
)
-;;;###autoload
-(add-hook 'scheme-mode-hook 'semantic-default-scheme-setup)
-
(provide 'semantic/bovine/scm)
;; Local variables:
diff --git a/lisp/cedet/semantic/decorate/mode.el b/lisp/cedet/semantic/decorate/mode.el
index a02d4c388fb..c35df575812 100644
--- a/lisp/cedet/semantic/decorate/mode.el
+++ b/lisp/cedet/semantic/decorate/mode.el
@@ -234,6 +234,7 @@ When this mode is activated, decorations specified by
:set (lambda (sym val)
(global-semantic-decoration-mode (if val 1 -1))))
+;;;###autoload
(defun global-semantic-decoration-mode (&optional arg)
"Toggle global use of option `semantic-decoration-mode'.
Decoration mode turns on all active decorations as specified
@@ -558,5 +559,10 @@ Use a primary decoration."
(provide 'semantic/decorate/mode)
-;;; semantic/decorate/mode.el ends here
+;; Local variables:
+;; generated-autoload-file: "../loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; generated-autoload-load-name: "semantic/decorate/mode"
+;; End:
+;;; semantic/decorate/mode.el ends here
diff --git a/lisp/cedet/semantic/html.el b/lisp/cedet/semantic/html.el
index 5ed7908f893..0ce3ed710b0 100644
--- a/lisp/cedet/semantic/html.el
+++ b/lisp/cedet/semantic/html.el
@@ -254,9 +254,6 @@ tag with greater section value than LEVEL is found."
t)
)
-;;;###autoload
-(add-hook 'html-mode-hook 'semantic-default-html-setup)
-
(define-child-mode html-helper-mode html-mode
"`html-helper-mode' needs the same semantic support as `html-mode'.")
diff --git a/lisp/cedet/semantic/wisent/java-tags.el b/lisp/cedet/semantic/wisent/java-tags.el
index ff5e0634d96..5a9d8c398b4 100644
--- a/lisp/cedet/semantic/wisent/java-tags.el
+++ b/lisp/cedet/semantic/wisent/java-tags.el
@@ -111,9 +111,6 @@ Use the alternate LALR(1) parser."
;; Setup javadoc stuff
(semantic-java-doc-setup))
-;;;###autoload
-(add-hook 'java-mode-hook 'wisent-java-default-setup)
-
(provide 'semantic/wisent/java-tags)
;; Local variables:
diff --git a/lisp/cedet/semantic/wisent/javascript.el b/lisp/cedet/semantic/wisent/javascript.el
index 184f1eaf546..892f76be4f0 100644
--- a/lisp/cedet/semantic/wisent/javascript.el
+++ b/lisp/cedet/semantic/wisent/javascript.el
@@ -92,11 +92,6 @@ This function overrides `get-local-variables'."
semantic-command-separation-character ";"
))
-;;;###autoload
-(add-hook 'javascript-mode-hook 'wisent-javascript-setup-parser)
-;;;###autoload
-(add-hook 'ecmascript-mode-hook 'wisent-javascript-setup-parser)
-
(provide 'semantic/wisent/javascript-jv)
;; Local variables:
diff --git a/lisp/cedet/srecode/compile.el b/lisp/cedet/srecode/compile.el
index 769c0137e68..5b3d8fb50fc 100644
--- a/lisp/cedet/srecode/compile.el
+++ b/lisp/cedet/srecode/compile.el
@@ -197,7 +197,7 @@ Arguments ESCAPE-START and ESCAPE-END are the current escape sequences in use."
(defun srecode-compile-templates ()
"Compile a semantic recode template file into a mode-local variable."
(interactive)
- (require 'srecode-insert)
+ (require 'srecode/insert)
(message "Compiling template %s..."
(file-name-nondirectory (buffer-file-name)))
(let ((tags (semantic-fetch-tags))
diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
index 743c8e8e652..e1772b3c578 100644
--- a/lisp/cedet/srecode/insert.el
+++ b/lisp/cedet/srecode/insert.el
@@ -159,7 +159,7 @@ Buffer based features related to change hooks is handled one level up."
;; while the field insert tool is loaded via autoloads during
;; the insert.
(when (eq srecode-insert-ask-variable-method 'field)
- (require 'srecode-fields))
+ (require 'srecode/fields))
(let ((srecode-field-archive nil) ; Prevent field leaks during insert
(start (point)) ; Beginning of the region.
diff --git a/lisp/cedet/srecode/mode.el b/lisp/cedet/srecode/mode.el
index 3100a392cf2..f8493138e49 100644
--- a/lisp/cedet/srecode/mode.el
+++ b/lisp/cedet/srecode/mode.el
@@ -42,7 +42,7 @@
"Non-nil in buffers with Semantic Recoder macro keybindings."
:group 'srecode
:type 'boolean
- :require 'srecode-mode
+ :require 'srecode/mode
:initialize 'custom-initialize-default
:set (lambda (sym val)
(global-srecode-minor-mode (if val 1 -1))))
diff --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el
index 00525b6fe44..f2b3e0d437f 100644
--- a/lisp/ediff-hook.el
+++ b/lisp/ediff-hook.el
@@ -123,7 +123,7 @@
:style toggle
:selected (if (featurep 'ediff-tbar)
(ediff-use-toolbar-p))]))
-
+
;; put these menus before Object-Oriented-Browser in Tools menu
(if (and (featurep 'menubar) (not (featurep 'infodock))
(not (featurep 'ediff-hook)))
@@ -141,8 +141,11 @@
(symbol-value 'menu-bar-ediff-merge-menu))
(defvar menu-bar-ediff-menu (make-sparse-keymap "Compare"))
(fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu))
-
+
;; define ediff compare menu
+ (define-key menu-bar-ediff-menu [ediff-misc]
+ (list 'menu-item "Ediff Miscellanea" menu-bar-ediff-misc-menu))
+ (define-key menu-bar-ediff-menu [separator-ediff-misc] '("--"))
(define-key menu-bar-ediff-menu [window]
'(menu-item "This Window and Next Window" compare-windows
:help "Compare the current window and the next window"))
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 24fd88e6819..e3aa7bc04b8 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1312,8 +1312,6 @@ mail status in mode line"))
(define-key menu-bar-tools-menu [separator-compare]
'("--"))
-(define-key menu-bar-tools-menu [ediff-misc]
- '(menu-item "Ediff Miscellanea" menu-bar-ediff-misc-menu))
(define-key menu-bar-tools-menu [epatch]
'(menu-item "Apply Patch" menu-bar-epatch-menu))
(define-key menu-bar-tools-menu [ediff-merge]