mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
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.
This commit is contained in:
parent
aaabfc8b27
commit
3f2a848dbe
18 changed files with 124 additions and 73 deletions
|
|
@ -1,3 +1,11 @@
|
|||
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).
|
||||
|
|
|
|||
|
|
@ -1,3 +1,36 @@
|
|||
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
|
||||
;;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue