1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Merge from CEDET upstream (8564).

* lisp/emacs-lisp:

	* emacs-lisp/eieio.el (eieio--defalias, eieio-hook)
	(eieio-error-unsupported-class-tags, eieio-skip-typecheck)
	(eieio-optimize-primary-methods-flag, eieio-initializing-object)
	(eieio-unbound, eieio-default-superclass)
	(eieio--define-field-accessors, method-static, method-before)
	(method-primary, method-after, method-num-lists)
	(method-generic-before, method-generic-primary)
	(method-generic-after, method-num-slots)
	(eieio-specialized-key-to-generic-key)
	(eieio--check-type, class-v, class-p)
	(eieio-class-name, define-obsolete-function-alias)
	(eieio-class-parents-fast, eieio-class-children-fast)
	(same-class-fast-p, class-constructor, generic-p)
	(generic-primary-only-p, generic-primary-only-one-p)
	(class-option-assoc, class-option, eieio-object-p)
	(class-abstract-p, class-method-invocation-order)
	(eieio-defclass-autoload-map, eieio-defclass-autoload)
	(eieio-class-un-autoload, eieio-defclass)
	(eieio-eval-default-p, eieio-perform-slot-validation-for-default)
	(eieio-add-new-slot, eieio-copy-parents-into-subclass)
	(eieio--defgeneric-init-form, eieio-defgeneric-form)
	(eieio-defgeneric-reset-generic-form)
	(eieio-defgeneric-form-primary-only)
	(eieio-defgeneric-reset-generic-form-primary-only)
	(eieio-defgeneric-form-primary-only-one)
	(eieio-defgeneric-reset-generic-form-primary-only-one)
	(eieio-unbind-method-implementations)
	(eieio--defmethod, eieio--typep)
	(eieio-perform-slot-validation, eieio-validate-slot-value)
	(eieio-validate-class-slot-value, eieio-barf-if-slot-unbound)
	(eieio-oref, eieio-oref-default, eieio-default-eval-maybe)
	(eieio-oset, eieio-oset-default, eieio-slot-originating-class-p)
	(eieio-slot-name-index, eieio-class-slot-name-index)
	(eieio-set-defaults, eieio-initarg-to-attribute)
	(eieio-attribute-to-initarg, eieio-c3-candidate)
	(eieio-c3-merge-lists, eieio-class-precedence-c3)
	(eieio-class-precedence-dfs, eieio-class-precedence-bfs)
	(eieio-class-precedence-list, eieio-generic-call-methodname)
	(eieio-generic-call-arglst, eieio-generic-call-key)
	(eieio-generic-call-next-method-list)
	(eieio-pre-method-execution-functions, eieio-generic-call)
	(eieio-generic-call-primary-only, eieiomt-method-list)
	(eieiomt-optimizing-obarray, eieiomt-install)
	(eieiomt-add, eieiomt-next, eieiomt-sym-optimize)
	(eieio-generic-form, eieio-defmethod, make-obsolete)
	(eieio-defgeneric, make-obsolete): Moved to eieio-core.el
	(defclass): Remove `eval-and-compile' from macro.
	(call-next-method, shared-initialize): Instead of using
	`scoped-class' variable, use new eieio--scoped-class, and
	eieio--with-scoped-class.
	(initialize-instance): Rename local variable 'scoped-class' to
	'this-class' to remove ambiguitity from old global.

	* emacs-lisp/eieio-core.el: New file.  Derived from key parts of
	eieio.el.
	(eieio--scoped-class-stack): New variable
	(eieio--scoped-class): New fcn
	(eieio--with-scoped-class): New scoping macro.
	(eieio-defclass): Use pushnew instead of add-to-list.
	(eieio-defgeneric-form-primary-only-one, eieio-oset-default)
	(eieio-slot-name-index, eieio-set-defaults, eieio-generic-call)
	(eieio-generic-call-primary-only, eieiomt-add): Instead of using
	`scoped-class' variable, use new eieio--scoped-class, and
	eieio--with-scoped-class.

	* emacs-lisp/eieio-base.el (cl-lib): Require during compile.

* admin/grammars:

	* grammars/srecode-template.wy (variable): Accept a single number
	as a variable value.  Allows the 'priority' to be set to a number.
	(wisent-srecode-template-lexer): Move number up so it can be
	created.

* etc/srecode:

	* srecode/c.srt (header_guard): Add :c parameter so it works
	standalone

* lisp/cedet:

	* semantic/edit.el (semantic-change-function): Use
	`save-match-data' around running hooks.

	* semantic/decorate/mode.el
	(semantic-decorate-style-predicate-default)
	(semantic-decorate-style-highlighter-default): New.
	(semantic-decoration-mode): Do not require
	`semantic/decorate/include' anymore.
	(semantic-toggle-decoration-style): Error if an unknown decoration
	style is toggled.
	(define-semantic-decoration-style): Add new :load option.  When
	:load is specified, add autoload tokens for the definition
	functions so that code is loaded when the mode is used.
	(semantic-decoration-on-includes): New autoload definition for
	highlighting includes.

	* semantic/bovine/c.el (semantic-lex-c-ifdef): Allow some misc
	characters to appear after the tested variable.

	* semantic/ede-grammar.el (project-compile-target): Calculate full
	src name via ede-expand-filename instead of the crutch of the
	current buffer.  Enables this target to compile in batch mode.

	* semantic/idle.el
	(semantic-idle-symbol-maybe-highlight): Wrap highlighting of
	remote symbol with `save-excursion'.
	(semantic-idle-scheduler-work-parse-neighboring-files): Instead of
	using directory-files on each found mode pattern, collect all the
	patterns for the current mode, and then for each file, see if it
	matches any of them.  If it does, parse the file.  (Patch
	inspiration from Tomasz Gajewski.)

	* semantic/ctxt.el (semantic-ctxt-end-of-symbol): New.
	(semantic-ctxt-current-symbol-default): New.

	* semantic/bovine/el.el (semantic-default-elisp-setup): Add
	autoload cookie.  Explain existence.
	(footer): Add local variable for loaddefs.

	* semantic/db.el (semanticdb-file-table-object): Add new filter,
	only checking for regular files too.

	* semantic/wisent/python.el
	(semantic-format-tag-abbreviate): New override.  Cuts back on size
	of code tags.

	* srecode/compile.el (srecode-compile-templates): Fix warning
	punctuation.  Remove status messages to clean up testing output

	* ede/base.el (ede-project-placeholder-cache-file): Update doc to
	mention 'nil' value.
	(ede-save-cache): Disable cache save if file is nil.

	* ede.el (ede-initialize-state-current-buffer): Flush deleted
	projects.
	(global-ede-mode): Always append our find-file-hook to the end.
	(ede-flush-deleted-projects): New command.

	* ede/cpp-root.el (ede-preprocessor-map): Protect against init
	problems.

	* ede/proj.el (ede-proj-target): Added a new "custom" option for
	custom symbols representing a compiler or linker instead of
	restricting things to only the predefined compilers and linkers.

	* semantic.el (semantic-mode-map): To avoid showing showing
	Development menu twice, only disable menu item if menu-bar is
	actually enabled, otherwise the popup 'global menu' might display
	a disabled Development menu.

	* semantic/complete.el
	(semantic-displayor-show-request): Fix which slot in obj is set to
	the max tags.
This commit is contained in:
David Engster 2013-06-02 15:33:09 +02:00
parent 336d728464
commit 890f78904a
25 changed files with 2723 additions and 2285 deletions

View file

@ -306,7 +306,8 @@ All specific project types must derive from this project."
;;
(defcustom ede-project-placeholder-cache-file
(locate-user-emacs-file "ede-projects.el" ".projects.ede")
"File containing the list of projects EDE has viewed."
"File containing the list of projects EDE has viewed.
If set to nil, then the cache is not saved."
:group 'ede
:type 'file)
@ -316,38 +317,39 @@ All specific project types must derive from this project."
(defun ede-save-cache ()
"Save a cache of EDE objects that Emacs has seen before."
(interactive)
(let ((p ede-projects)
(c ede-project-cache-files)
(recentf-exclude '( (lambda (f) t) ))
)
(condition-case nil
(progn
(set-buffer (find-file-noselect ede-project-placeholder-cache-file t))
(erase-buffer)
(insert ";; EDE project cache file.
;; This contains a list of projects you have visited.\n(")
(while p
(when (and (car p) (ede-project-p p))
(let ((f (oref (car p) file)))
(when (file-exists-p f)
(insert "\n \"" f "\""))))
(setq p (cdr p)))
(while c
(insert "\n \"" (car c) "\"")
(setq c (cdr c)))
(insert "\n)\n")
(condition-case nil
(save-buffer 0)
(error
(message "File %s could not be saved."
ede-project-placeholder-cache-file)))
(kill-buffer (current-buffer))
(when ede-project-placeholder-cache-file
(let ((p ede-projects)
(c ede-project-cache-files)
(recentf-exclude '( (lambda (f) t) ))
)
(error
(message "File %s could not be read."
ede-project-placeholder-cache-file))
(condition-case nil
(progn
(set-buffer (find-file-noselect ede-project-placeholder-cache-file t))
(erase-buffer)
(insert ";; EDE project cache file.
;; This contains a list of projects you have visited.\n(")
(while p
(when (and (car p) (ede-project-p p))
(let ((f (oref (car p) file)))
(when (file-exists-p f)
(insert "\n \"" f "\""))))
(setq p (cdr p)))
(while c
(insert "\n \"" (car c) "\"")
(setq c (cdr c)))
(insert "\n)\n")
(condition-case nil
(save-buffer 0)
(error
(message "File %s could not be saved."
ede-project-placeholder-cache-file)))
(kill-buffer (current-buffer))
)
(error
(message "File %s could not be read."
ede-project-placeholder-cache-file))
)))
))))
(defun ede-load-cache ()
"Load the cache of EDE projects."

View file

@ -507,7 +507,10 @@ This is for project include paths and spp source files."
(lambda (F)
(let* ((expfile (ede-expand-filename root F))
(table (when expfile
(semanticdb-file-table-object expfile)))
;; Disable EDE init on preprocessor file load
;; otherwise we recurse, cause errs, etc.
(let ((ede-constructing t))
(semanticdb-file-table-object expfile))))
)
(cond
((not (file-exists-p expfile))

View file

@ -104,6 +104,7 @@ distributed, and each should have a corresponding rule to build it.")
:initform nil
:type (or null symbol)
:custom (choice (const :tag "None" nil)
(symbol :tag "Custom Compiler Symbol")
:slotofchoices availablecompilers)
:label "Compiler for building sources"
:group make
@ -116,6 +117,7 @@ of these compiler resources, and global customization thereof.")
:initform nil
:type (or null symbol)
:custom (choice (const :tag "None" nil)
(symbol :tag "Custom Linker Symbol")
:slotofchoices availablelinkers)
:label "Linker for combining intermediate object files."
:group make