diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-08-02 10:22:00 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-08-02 13:06:51 -0400 |
commit | 344b48f490416cb1200e19b28d356e7fb5b04387 (patch) | |
tree | f3bb79289f9224b6a06bbdd836e48454b6d4c979 /lisp/cedet/semantic/db.el | |
parent | 2be7ed257b06539ad3a6180d8c9e57f475455ec8 (diff) | |
download | emacs-344b48f490416cb1200e19b28d356e7fb5b04387.tar.gz |
CEDET: Remove left-over uses of obsolete <class>-child-p predicates
Those predicates were still sometimes used in a few places, notably via
`:type ... <class>-child` which was never technically correct.
* lisp/cedet/ede/config.el (ede-extra-config, ede-project-with-config):
* lisp/cedet/ede/base.el (ede-project-placeholder): Avoid pseudo-type
`<class>-child`.
* lisp/cedet/semantic/complete.el (semantic-displayer-focus-abstract):
Move before use of `cl-typep` on it.
(semantic-complete-current-match):
* lisp/cedet/ede/speedbar.el (ede-speedbar-menu): Use `cl-typep`
instead of `<class>-child-p`.
* lisp/cedet/semantic/db.el (semanticdb-get-buffer):
Use `cl-defgeneric` for the main/default definition.
(semantic-tag-parent-buffer): Add method.
* lisp/cedet/semantic/tag-file.el (semantic-tag-parent-buffer):
New generic function extracted from `semantic-go-to-tag`.
This allows us to keep the semanticdb-table part in semantic/db and
thus break a cyclic dependency.
(semantic-go-to-tag): Use it.
Demote to a plain `defun` since it's not overloaded anywhere.
* lisp/cedet/semantic/util.el (semanticdb-abstract-table-child-p):
Remove unused declaration.
* lisp/cedet/srecode/compile.el (srecode-template-inserter-newline-child-p):
Remove unused declaration.
(srecord-compile-inserter-newline-p): New generic function, so we can
move the `srecode-template-inserter-newline` case to `srecode/insert.el`,
to avoid a cyclic dependency.
* lisp/cedet/srecode/insert.el (srecord-compile-inserter-newline-p):
New method.
Diffstat (limited to 'lisp/cedet/semantic/db.el')
-rw-r--r-- | lisp/cedet/semantic/db.el | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 757e46677ed..ff62f53d3cf 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el @@ -115,11 +115,13 @@ for a new table not associated with a buffer." "Return a nil, meaning abstract table OBJ is not in a buffer." nil) -(cl-defmethod semanticdb-get-buffer ((_obj semanticdb-abstract-table)) - "Return a buffer associated with OBJ. +(cl-defgeneric semanticdb-get-buffer (_obj) + "Return a buffer associated with semanticdb table OBJ. If the buffer is not in memory, load it with `find-file-noselect'." nil) +;; FIXME: Should we merge `semanticdb-get-buffer' and +;; `semantic-tag-parent-buffer'? ;; This generic method allows for sloppier coding. Many ;; functions treat "table" as something that could be a buffer, ;; file name, or other. This makes use of table more robust. @@ -271,6 +273,9 @@ For C/C++, the C preprocessor macros can be saved here.") ) "A single table of tags derived from file.") +(cl-defmethod semantic-tag-parent-buffer ((parent semanticdb-table)) + (semanticdb-get-buffer parent)) ;FIXME: η-redex! + (cl-defmethod semanticdb-in-buffer-p ((obj semanticdb-table)) "Return a buffer associated with OBJ. If the buffer is in memory, return that buffer." |