Commit 3f2a848d authored by David Engster's avatar David Engster
Browse files

Merge CEDET upstream.

* emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression):
Removed.  This feature is already integrated in imenu.

* emacs-lisp/eieio-opt.el: Remove require for `button' since it is
always loaded.  Require `speedbar' unconditionally.

* semantic/analyze.el (semantic-analyze-dereference-alias): New
function to dereference aliases.
(semantic-analyze-current-context-default): Use it.

* semantic/grammar.el (semantic-grammar-create-package):
* srecode/compile.el (srecode-compile-templates): Throw a proper
error if semantic-mode is not enabled (bug#9968).

Compiler warning fixes:

* semantic.el (semantic-elapsed-time): Make it a defsubst.

* srecode/dictionary.el (srecode-adebug-dictionary): Remove
require for `semantic'.

* srecode/map.el:
* srecode/insert.el: Declare functions from `data-debug'.

* semantic/grammar.el: Require `help-fns'.  Declare functions from
`eldoc', which is required in function body.

* srecode/java.el:
* semantic/texi.el:
* semantic/grammar-wy.el:
* semantic/db-file.el:
* semantic/db-el.el:
* semantic/chart.el: Fix requires.

* ede/locate.el: Remove useless requires. Declare functions
instead and require in functions when needed.
parent aaabfc8b
2012-10-25 David Engster <deng@randomsample.de>
* emacs-lisp/eieio.el (eieio-update-lisp-imenu-expression):
Removed. This feature is already integrated in imenu.
* emacs-lisp/eieio-opt.el: Remove require for `button' since it is
always loaded. Require `speedbar' unconditionally.
2012-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
* dired.el (dired-get-marked-files): Allow ! on . and .. (bug#12725).
......
2012-10-25 David Engster <deng@randomsample.de>
* semantic/analyze.el (semantic-analyze-dereference-alias): New
function to dereference aliases.
(semantic-analyze-current-context-default): Use it.
* semantic/grammar.el (semantic-grammar-create-package):
* srecode/compile.el (srecode-compile-templates): Throw a proper
error if semantic-mode is not enabled (bug#9968).
Compiler warning fixes:
* semantic.el (semantic-elapsed-time): Make it a defsubst.
* srecode/dictionary.el (srecode-adebug-dictionary): Remove
require for `semantic'.
* srecode/map.el:
* srecode/insert.el: Declare functions from `data-debug'.
* semantic/grammar.el: Require `help-fns'. Declare functions from
`eldoc', which is required in function body.
* srecode/java.el:
* semantic/texi.el:
* semantic/grammar-wy.el:
* semantic/db-file.el:
* semantic/db-el.el:
* semantic/chart.el: Fix requires.
* ede/locate.el: Remove useless requires. Declare functions
instead and require in functions when needed.
2012-10-23 Stefan Monnier <monnier@iro.umontreal.ca>
* semantic/db-file.el (semanticdb-save-database-functions):
......
......@@ -49,13 +49,7 @@
;; when it is available.
(require 'ede)
(eval-when-compile (require 'data-debug)
(require 'eieio-datadebug)
(require 'cedet-global)
(require 'cedet-idutils)
(require 'cedet-cscope))
(require 'locate)
(eval-when-compile (require 'locate))
;;; Code:
(defcustom ede-locate-setup-options
......@@ -214,6 +208,12 @@ that created this EDE locate object."
;;; GLOBAL
;;
(declare-function cedet-gnu-global-version-check "cedet-global")
(declare-function cedet-gnu-global-root "cedet-global")
(declare-function cedet-gnu-global-expand-filename "cedet-global")
(declare-function cedet-gnu-global-create/update-database "cedet-global")
(defclass ede-locate-global (ede-locate-base)
()
"EDE Locator using GNU Global.
......@@ -260,6 +260,12 @@ that created this EDE locate object."
;;; IDUTILS
;;
(declare-function cedet-idutils-version-check "cedet-idutils")
(declare-function cedet-idutils-support-for-directory "cedet-idutils")
(declare-function cedet-idutils-expand-filename "cedet-idutils")
(declare-function cedet-idutils-create/update-database "cedet-idutils")
(defclass ede-locate-idutils (ede-locate-base)
()
"EDE Locator using IDUtils.
......@@ -303,6 +309,12 @@ that created this EDE locate object."
;;; CSCOPE
;;
(declare-function cedet-cscope-version-check "cedet-scope")
(declare-function cedet-cscope-support-for-directory "cedet-scope")
(declare-function cedet-cscope-expand-filename "cedet-cscope")
(declare-function cedet-cscope-create/update-database "cedet-cscope")
(defclass ede-locate-cscope (ede-locate-base)
()
"EDE Locator using Cscope.
......@@ -315,6 +327,7 @@ file name searching variable `cedet-cscope-file-command'.")
;; Get ourselves initialized.
(call-next-method)
;; Do the checks.
(require 'cedet-cscope)
(cedet-cscope-version-check)
(when (not (cedet-cscope-support-for-directory (oref loc root)))
(error "Cannot use Cscope in %s"
......@@ -324,6 +337,7 @@ file name searching variable `cedet-cscope-file-command'.")
(defmethod ede-locate-ok-in-project :static ((loc ede-locate-cscope)
root)
"Is it ok to use this project type under ROOT."
(require 'cedet-cscope)
(cedet-cscope-version-check)
(when (cedet-cscope-support-for-directory root)
root))
......@@ -334,11 +348,13 @@ file name searching variable `cedet-cscope-file-command'.")
Searches are done under the current root of the EDE project
that created this EDE locate object."
(let ((default-directory (oref loc root)))
(require 'cedet-cscope)
(cedet-cscope-expand-filename filesubstring)))
(defmethod ede-locate-create/update-root-database :STATIC
((loc ede-locate-cscope) root)
"Create or update the GNU Global database for the current project."
(require 'cedet-cscope)
(cedet-cscope-create/update-database root))
(provide 'ede/locate)
......
......@@ -382,7 +382,7 @@ to use Semantic, and `semantic-init-hook' is run."
"When non-nil, activate the interactive parsing debugger.
Do not set this yourself. Call `semantic-debug'.")
(defun semantic-elapsed-time (start end)
(defsubst semantic-elapsed-time (start end)
"Copied from elp.el. Was `elp-elapsed-time'.
Arguments START and END bound the time being calculated."
(float-time (time-subtract end start)))
......
......@@ -527,7 +527,7 @@ Returns an object based on symbol `semantic-analyze-context'."
(function nil)
(fntag nil)
arg fntagend argtag
assign asstag
assign asstag newseq
)
;; Pattern for Analysis:
......@@ -601,16 +601,26 @@ Returns an object based on symbol `semantic-analyze-context'."
(if debug-on-error
(catch 'unfindable
;; If debug on error is on, allow debugging in this fcn.
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes 'unfindable)))
prefix scope 'prefixtypes 'unfindable))
;; If there's an alias, dereference it and analyze
;; sequence again.
(when (setq newseq
(semantic-analyze-dereference-alias prefix))
(setq prefix (semantic-analyze-find-tag-sequence
newseq scope 'prefixtypes 'unfindable))))
;; Debug on error is off. Capture errors and move on
(condition-case err
;; NOTE: This line is duplicated in
;; semantic-analyzer-debug-global-symbol
;; You will need to update both places.
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes))
(progn
(setq prefix (semantic-analyze-find-tag-sequence
prefix scope 'prefixtypes))
(when (setq newseq
(semantic-analyze-dereference-alias prefix))
(setq prefix (semantic-analyze-find-tag-sequence
newseq scope 'prefixtypes))))
(error (semantic-analyze-push-error err))))
)
......@@ -679,6 +689,20 @@ Returns an object based on symbol `semantic-analyze-context'."
;; Return our context.
context-return))
(defun semantic-analyze-dereference-alias (taglist)
"Dereference first tag in TAGLIST if it is an alias.
Returns a sequence of names which can then be fed again into
`semantic-analyze-find-tag-sequence'.
Returns nil if no alias was found."
(when (eq (semantic-tag-get-attribute (car taglist) :kind) 'alias)
(let ((tagname
(semantic-analyze-split-name
(semantic-tag-name
(car (semantic-tag-get-attribute (car taglist) :members))))))
(append (if (listp tagname)
tagname
(list tagname))
(cdr taglist)))))
(defun semantic-adebug-analyze (&optional ctxt)
"Perform `semantic-analyze-current-context'.
......
......@@ -26,12 +26,9 @@
;; the output of the semantic parser.
;;
(require 'semantic)
(require 'chart)
(require 'semantic/db)
(require 'semantic/tag)
(eval-when-compile (require 'semantic/find))
(require 'semantic/find)
;;; Code:
......
......@@ -31,12 +31,7 @@
;;
(require 'semantic/db)
(eval-when-compile
;; For generic function searching.
(require 'eieio)
(require 'eieio-opt)
(require 'eieio-base))
(require 'eieio-opt)
(declare-function semantic-elisp-desymbolify "semantic/bovine/el")
(declare-function semantic-tag-similar-p "semantic/tag-ls")
......
......@@ -25,12 +25,9 @@
;; A set of semanticdb classes for persistently saving caches on disk.
;;
(require 'semantic)
(require 'semantic/db)
(require 'cedet-files)
(eval-when-compile
(require 'data-debug))
(require 'data-debug)
(defvar semanticdb-file-version semantic-version
"Version of semanticdb we are writing files to disk with.")
......
......@@ -23,9 +23,8 @@
;;; Code:
(require 'semantic/lex)
(eval-when-compile (require 'semantic/bovine))
(require 'semantic)
;;; Prologue
;;
(defvar semantic-grammar-lex-c-char-re)
......
......@@ -35,6 +35,7 @@
(require 'semantic/format)
(require 'semantic/grammar-wy)
(require 'semantic/idle)
(require 'help-fns)
(declare-function semantic-momentary-highlight-tag "semantic/decorate")
(declare-function semantic-analyze-context "semantic/analyze")
......@@ -47,6 +48,9 @@
(require 'semantic/find)
(require 'semantic/db))
(declare-function semantic-grammar-wy--install-parser
"semantic/gram-wy-fallback")
;;;;
;;;; Set up lexer
......@@ -825,6 +829,8 @@ Does nothing if the Lisp code seems up to date.
If optional argument FORCE is non-nil, unconditionally re-generate the
Lisp code."
(interactive "P")
(unless (semantic-active-p)
(error "You have to activate semantic-mode to create a package."))
(setq force (or force current-prefix-arg))
(semantic-fetch-tags)
(let* (
......@@ -1636,6 +1642,12 @@ Select the buffer containing the tag's definition, and move point there."
)
"Association of syntax elements, and the corresponding help.")
(declare-function eldoc-function-argstring "eldoc")
(declare-function eldoc-docstring-format-sym-doc "eldoc")
(declare-function eldoc-last-data-store "eldoc")
(declare-function eldoc-get-fnsym-args-string "eldoc")
(declare-function eldoc-get-var-docstring "eldoc")
(defun semantic-grammar-eldoc-get-macro-docstring (macro expander)
"Return a one-line docstring for the given grammar MACRO.
EXPANDER is the name of the function that expands MACRO."
......
......@@ -26,17 +26,11 @@
;; parser plug-in is the function `semantic-texi-parse-region' that
;; overrides `semantic-parse-region'.
(require 'semantic)
(require 'semantic/db-find)
(require 'semantic/format)
(require 'semantic/ctxt)
(require 'texinfo)
(eval-when-compile
(require 'semantic/db)
(require 'semantic/db-find)
(require 'semantic/ctxt)
(require 'semantic/find)
(require 'semantic/doc))
(defvar ede-minor-mode)
(declare-function lookup-words "ispell")
(declare-function ede-current-project "ede")
......
......@@ -199,6 +199,8 @@ 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)
(unless (semantic-active-p)
(error "You have to activate semantic-mode to compile SRecode templates."))
(require 'srecode/insert)
(message "Compiling template %s..."
(file-name-nondirectory (buffer-file-name)))
......
......@@ -604,7 +604,6 @@ STATE is the current compiler state."
"Run data-debug on this mode's dictionary."
(interactive)
(require 'eieio-datadebug)
(require 'semantic)
(require 'srecode/find)
(let* ((modesym major-mode)
(start (current-time))
......
......@@ -195,6 +195,10 @@ Buffer based features related to change hooks is handled one level up."
;; area. Return value is not important.
))
(declare-function data-debug-new-buffer "data-debug")
(declare-function data-debug-insert-stuff-list "data-debug")
(declare-function data-debug-insert-thing dictionary "data-debug")
(defun srecode-insert-show-error-report (dictionary format &rest args)
"Display an error report based on DICTIONARY, FORMAT and ARGS.
This is intended to diagnose problems with failed template
......
......@@ -26,10 +26,7 @@
;;; Code:
(require 'srecode/dictionary)
(require 'semantic/tag)
(eval-when-compile
(require 'semantic/find))
(require 'semantic/find)
;;;###autoload
(defun srecode-semantic-handle-:java (dict)
......
......@@ -215,7 +215,8 @@ Optional argument RESET forces a reset of the current map."
;; Eventually, I want to return many maps to search through.
(list srecode-current-map)))
(eval-when-compile (require 'data-debug))
(declare-function data-debug-new-buffer "data-debug")
(declare-function data-debug-insert-stuff-list "data-debug")
(defun srecode-adebug-maps ()
"Run ADEBUG on the output of `srecode-get-maps'."
......
......@@ -29,9 +29,9 @@
;;
(require 'eieio)
(require 'button)
(require 'help-mode)
(require 'find-func)
(require 'speedbar)
(require 'help-mode)
;;; Code:
;;;###autoload
......@@ -710,10 +710,6 @@ Arguments UNUSED are not used."
;;; SPEEDBAR SUPPORT
;;
(eval-when-compile
(condition-case nil
(require 'speedbar)
(error (message "Error loading speedbar... ignored"))))
(defvar eieio-class-speedbar-key-map nil
"Keymap used when working with a project in speedbar.")
......
......@@ -3049,29 +3049,6 @@ Optional argument NOESCAPE is passed to `prin1-to-string' when appropriate."
)
)
;;; Interfacing with imenu in emacs lisp mode
;; (Only if the expression is defined)
;;
(if (eval-when-compile (boundp 'lisp-imenu-generic-expression))
(progn
(defun eieio-update-lisp-imenu-expression ()
"Examine `lisp-imenu-generic-expression' and modify it to find `defmethod'."
(let ((exp lisp-imenu-generic-expression))
(while exp
;; it's of the form '( ( title expr indx ) ... )
(let* ((subcar (cdr (car exp)))
(substr (car subcar)))
(if (and (not (string-match "|method\\\\" substr))
(string-match "|advice\\\\" substr))
(setcar subcar
(replace-match "|advice\\|method\\" t t substr 0))))
(setq exp (cdr exp)))))
(eieio-update-lisp-imenu-expression)
))
;;; Autoloading some external symbols, and hooking into the help system
;;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment