From b11d8924b565bd96939537b10a70bb3c26532bed Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 22 Dec 2014 12:43:23 -0500 Subject: [PATCH] * lisp/cedet: Reduce reliance on EIEIO internals. * lisp/cedet/ede/generic.el (ede-find-target): Prefer \` and \' to ^ and $. * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag): Prefer find-class over class-v. * lisp/cedet/semantic/db.el (semanticdb-cache-get): Prefer eieio-object-class over eieio--object-class. * lisp/cedet/srecode/srt-mode.el (srecode-macro-help): Use eieio-class-children. --- lisp/cedet/ChangeLog | 88 ++++++++++++++++++++++++------------------ lisp/cedet/ede/generic.el | 2 +- lisp/cedet/semantic/db-el.el | 4 +- lisp/cedet/semantic/db.el | 4 +- lisp/cedet/srecode/srt-mode.el | 4 +- 5 files changed, 58 insertions(+), 44 deletions(-) diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog index 46296d3e39f..a43e94c5686 100644 --- a/lisp/cedet/ChangeLog +++ b/lisp/cedet/ChangeLog @@ -1,9 +1,21 @@ +2014-12-22 Stefan Monnier + + * srecode/srt-mode.el (srecode-macro-help): Use eieio-class-children. + + * semantic/db.el (semanticdb-cache-get): Prefer eieio-object-class over + eieio--object-class. + + * semantic/db-el.el (semanticdb-elisp-sym->tag): Prefer find-class over + class-v. + + * ede/generic.el (ede-find-target): Prefer \` and \' to ^ and $. + 2014-12-14 Dmitry Gutov * semantic.el (semantic-analyze-completion-at-point-function) (semantic-analyze-notc-completion-at-point-function) - (semantic-analyze-nolongprefix-completion-at-point-function): Do - nothing if the current buffer is not using Semantic (bug#19077). + (semantic-analyze-nolongprefix-completion-at-point-function): + Do nothing if the current buffer is not using Semantic (bug#19077). 2014-12-08 Matt Curtis (tiny change) @@ -14,11 +26,11 @@ * semantic.el (semantic-mode): Add/remove 3 completion-at-point-functions. - (semantic-completion-at-point-function): Removed. + (semantic-completion-at-point-function): Remove. (semantic-analyze-completion-at-point-function) (semantic-analyze-notc-completion-at-point-function) - (semantic-analyze-nolongprefix-completion-at-point-function): New - completion at point functions. + (semantic-analyze-nolongprefix-completion-at-point-function): + New completion at point functions. * semantic/doc.el (semantic-doc-snarf-comment-for-tag): Fix case when comment-end is empty string. @@ -62,18 +74,18 @@ assignee now must be of class variable. * semantic/analyze/complete.el - (semantic-analyze-possible-completions-default): Add - 'no-longprefix' flag. When used, the prefix and prefixtypes are + (semantic-analyze-possible-completions-default): + Add 'no-longprefix' flag. When used, the prefix and prefixtypes are shortened to just the last symbol. * semantic/bovine/c.el (semantic-c-do-lex-if): Catch errors from 'hideif', and push to the parser warning stack. (semantic-lex-cpp-define): When a comment is at the end of a - macro, do not subtract an extra 1 from the found position. Fixes - bug with: #define foo (a)/**/ adding an extra ')' to the stream. + macro, do not subtract an extra 1 from the found position. + Fixes bug with: #define foo (a)/**/ adding an extra ')' to the stream. - * semantic/bovine/scm.el (semantic-lex-scheme-symbol): Allow - symbols to be one char long. + * semantic/bovine/scm.el (semantic-lex-scheme-symbol): + Allow symbols to be one char long. * semantic/bovine/grammar.el (bovine-grammar-calculate-source-on-path): New. @@ -89,8 +101,8 @@ (ede-check-project-query-fcn): New variable (ede-check-project-directory): Use above when querying the user. Added to support unit testing of this security measure. - (ede-initialize-state-current-buffer): Use - `ede-directory-project-cons' instead of the -detect- fcn to take + (ede-initialize-state-current-buffer): + Use `ede-directory-project-cons' instead of the -detect- fcn to take advantage of the cache. Pass found project into `ede-load-project-file'. (ede-load-project-file): Add new input DETECTIN. @@ -103,18 +115,18 @@ (ede-global-list-sanity-check): New Testing fcn. (ede-parent-project): Replace old code with call to faster `ede-find-subproject-for-directory'. - (ede-load-project-file): Use - `ede-directory-get-toplevel-open-project' instead of above - deleted. Rename "pfc" to "autoloader". Use - `ede-directory-project-cons' to detect a project. Delete no + (ede-load-project-file): + Use `ede-directory-get-toplevel-open-project' instead of above + deleted. Rename "pfc" to "autoloader". + Use `ede-directory-project-cons' to detect a project. Delete no project found case where we search up the tree. - * ede/auto.el (ede-project-autoload): Fix doc typo. Add - `:root-only' slot. + * ede/auto.el (ede-project-autoload): Fix doc typo. + Add `:root-only' slot. (ede-auto-load-project): Doc update: warn to not use. - (ede-dir-to-projectfile): Deleted. - (ede-project-autoload-dirmatch): Add subdir-only slot. Make - configdatastash unbound by default. + (ede-dir-to-projectfile): Delete. + (ede-project-autoload-dirmatch): Add subdir-only slot. + Make configdatastash unbound by default. (ede-do-dirmatch): If subdir-only is true, then don't allow exact matches. Account for configdatastash as unbound. Assume value of nil means no tool installed. Make sure loaded path matches from @@ -122,7 +134,7 @@ (ede-project-class-files): Note that makefile and automake are not root only. (ede-auto-detect-in-dir): New (for use with `ede/detect.el'). - (ede-project-dirmatch-p): Deleted. + (ede-project-dirmatch-p): Delete. (ede-project-root-directory): Remove body, return nil. (ede-project-autoload): :proj-root-dirmatch can be null & doc fix. (ede-auto-detect-in-dir): If there is no :proj-file, check for a @@ -140,8 +152,8 @@ (ede-generic-config): Remove slots: c-include-path, c-preprocessor-table, c-preprocessor-files, classpath, build-command, debug-command, run command. Inherit from - ede-extra-config-build, ede-extra-config-program. Make - run-command :value match :custom so only strings are accepted. + ede-extra-config-build, ede-extra-config-program. + Make run-command :value match :custom so only strings are accepted. Add some more :group slot specifiers. (ede-generic-project): Add mixins `ede-project-with-config-c' and `ede-project-with-config-java'. Inherit from @@ -153,15 +165,15 @@ (ede-generic-target-c-cpp): Add mixin `ede-target-with-config-c'. (ede-generic-target-java): Add mixin `ede-target-with-config-java'. (ede-preprocessor-map, ede-system-include-path) - (edejava-classpath): Deleted, moved to config.el. + (edejava-classpath): Delete, moved to config.el. (project-compile-project, project-compile-target) - (project-debug-target, project-run-target): Deleted. + (project-debug-target, project-run-target): Delete. (ede-generic-get-configuration, ede-generic-setup-configuration) (ede-commit-project, project-rescan) (ede-generic-project::ede-customize) (ede-generic-target::ede-customize) (ede-generic-config::eieio-done-customizing) - (ede-generic-config::ede-commit): Deleted. Subsumed by new + (ede-generic-config::ede-commit): Delete. Subsumed by new baseclass. (ede-preprocessor-map, ede-system-include-path) (project-debug-target, project-run-target): Call new @@ -170,7 +182,7 @@ * ede/files.el (ede-find-project-root) (ede-files-find-existing) - (ede-directory-get-toplevel-open-project-new): Deleted. + (ede-directory-get-toplevel-open-project-new): Delete. (ede-project-root-directory): Use `ede-project-root' first. (ede-project-directory-remove-hash) (ede--directory-project-from-hash) @@ -186,20 +198,20 @@ projects. When doing directory name matching, save the 'short' version of an answer (non-exact match) and eventually select the shortest answer at the end. Expand the filename of tested - projects. Better support for when inodes are disabled. Add - 'exact' option so that it will return a project that is an exact + projects. Better support for when inodes are disabled. + Add 'exact' option so that it will return a project that is an exact match. (ede-find-subproject-for-directory): Small optimization to run `file-truename' less often. (ede-directory-project-p): Move content, then use - `ede-directory-project-cons'. Use - `ede-detect-directory-for-project', replacing old detection loop. + `ede-directory-project-cons'. + Use `ede-detect-directory-for-project', replacing old detection loop. (ede-directory-project-cons): New, from above. - (ede-toplevel-project): Toss old scanning code. Use - `ede-detect-directory-for-project' instead. + (ede-toplevel-project): Toss old scanning code. + Use `ede-detect-directory-for-project' instead. (ede-directory-get-toplevel-open-project-new): New. - * ede/linux.el (ede-linux-project-root): Deleted. + * ede/linux.el (ede-linux-project-root): Delete. (ede-project-autoload): Remove dirmatch entry - it is no longer needed. @@ -220,7 +232,7 @@ * ede/linux.el (ede-linux-load): Do not add to global list here. Don't check for existing anymore. (project-rescan): New. - (ede-linux-project-list, ede-linux-file-existing): Deleted. + (ede-linux-project-list, ede-linux-file-existing): Delete. (ede-linux-project-root): Delete body. Need symbol for autoloads for now. (ede-linux-project): No longer instance tracker. @@ -242,7 +254,7 @@ (ede-cpp-root-file-existing) (ede-cpp-root-project-file-for-dir) (ede-cpp-root-count, ede-cpp-root-project-root, ede-cpp-root-load) - (ede-project-autoload cpp-root): Deleted. + (ede-project-autoload cpp-root): Delete. (ede-project-root-directory): Return :directory instead of calculating from :file. (project-rescan): New. diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el index f0314cb7f22..6d4535323d0 100644 --- a/lisp/cedet/ede/generic.el +++ b/lisp/cedet/ede/generic.el @@ -232,7 +232,7 @@ If one doesn't exist, create a new one for this directory." (let* ((classsym (intern (car C))) (extreg (oref classsym extension))) (when (and (not (string= extreg "")) - (string-match (concat "^" extreg "$") ext)) + (string-match (concat "\\`\\(?:" extreg "\\)\\'") ext)) (setq cls classsym))))) (when (not cls) (setq cls 'ede-generic-target-misc)) ;; find a pre-existing matching target diff --git a/lisp/cedet/semantic/db-el.el b/lisp/cedet/semantic/db-el.el index 7ff1538dd2b..f37aa07ebe6 100644 --- a/lisp/cedet/semantic/db-el.el +++ b/lisp/cedet/semantic/db-el.el @@ -223,7 +223,9 @@ TOKTYPE is a hint to the type of tag desired." (symbol-name sym) "class" (semantic-elisp-desymbolify - (eieio--class-public-a (class-v semanticdb-project-database))) ;; slots + ;; FIXME: This only gives the instance slots and ignores the + ;; class-allocated slots. + (eieio--class-public-a (find-class semanticdb-project-database))) ;; slots ;FIXME: eieio-- (semantic-elisp-desymbolify (eieio-class-parents sym)) ;; parents )) ((not toktype) diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 13e2d1b37d4..0732f225779 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el @@ -481,7 +481,7 @@ other than :table." (let ((cache (oref table cache)) (obj nil)) (while (and (not obj) cache) - (if (eq (eieio--object-class (car cache)) desired-class) + (if (eq (eieio-object-class (car cache)) desired-class) (setq obj (car cache))) (setq cache (cdr cache))) (if obj @@ -532,7 +532,7 @@ other than :table." (let ((cache (oref db cache)) (obj nil)) (while (and (not obj) cache) - (if (eq (eieio--object-class (car cache)) desired-class) + (if (eq (eieio-object-class (car cache)) desired-class) (setq obj (car cache))) (setq cache (cdr cache))) (if obj diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el index 48a4865e176..dfc1df805af 100644 --- a/lisp/cedet/srecode/srt-mode.el +++ b/lisp/cedet/srecode/srt-mode.el @@ -233,7 +233,7 @@ we can tell font lock about them.") "Provide help for working with macros in a template." (interactive) (let* ((root 'srecode-template-inserter) - (chl (eieio--class-children (class-v root))) + (chl (eieio-class-children root)) (ess (srecode-template-get-escape-start)) (ees (srecode-template-get-escape-end)) ) @@ -249,7 +249,7 @@ we can tell font lock about them.") (showexample t) ) (setq chl (cdr chl)) - (setq chl (append (eieio--class-children (class-v C)) chl)) + (setq chl (append (eieio-class-children C) chl)) (catch 'skip (when (eq C 'srecode-template-inserter-section-end) -- 2.11.4.GIT