emacs/lisp/cedet/cedet.el

132 lines
4.8 KiB
EmacsLisp
Raw Normal View History

;;; cedet.el --- Setup CEDET environment
;; Copyright (C) 2002-2019 Free Software Foundation, Inc.
;; Author: David Ponce <david@dponce.com>
;; Maintainer: Eric M. Ludlam <zappo@gnu.org>
;; Version: 2.0
;; Keywords: OO, lisp
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
;;; Commentary:
Synch to Eric M. Ludlam's upstream CEDET repository. * cedet/semantic/wisent/java-tags.el: * cedet/semantic/wisent/javat-wy.el: New files. * cedet/semantic/wisent/java.el: * cedet/semantic/wisent/java-wy.el: Files removed. * cedet/semantic/java.el (semantic-java-prototype-function) (semantic-java-prototype-variable, semantic-java-prototype-type): Doc fix (java-mode::semantic-format-tag-prototype): Renamed from semantic-format-prototype-tag, which didn't match the overloadable function. * cedet/semantic/bovine/c.el (semantic-c-dereference-namespace-alias): Deal correctly with nested namespaces. Make sure type actually exists in original namespace. * cedet/semantic/lex-spp.el (semantic-lex-spp-hack-depth): New. (semantic-lex-spp-lex-text-string): Use above to enable recursion. * cedet/semantic/format.el: Whitespace cleanup. (semantic-test-all-format-tag-functions): Move to end. (semantic-format-tag-prototype, semantic-format-tag-name) (semantic-format-tag-name-default): Revert to original upstream positions. * cedet/semantic/elp.el: File removed. * cedet/semantic/analyze.el (semantic-adebug-analyze): New function, moved here from semantic/adebug. * cedet/semantic/adebug.el: Declare external semanticdb functions. (semantic-adebug-analyze, semantic-adebug-edebug-expr): Deleted. * emacs-lisp/eieio.el (eieio-unbound): Default value is now robust to recompile. * emacs-lisp/eieio-datadebug.el: Add eieio objects to the list of data debug things to recognize. * emacs-lisp/eieio-comp.el: Synch to upstream. * cedet/data-debug.el: Don't require eieio and semantic/tag. If eieio is loaded, require eieio-datadebug. (data-debug-insert-ring-button): Do not be specific about the ring contents. (data-debug-thing-alist): Remove eieio and semantic specific entries. (data-debug-add-specialized-thing): New function. * cedet/cedet.el: Update commentary. * cedet/cedet-edebug.el: Require edebug and debug.
2009-09-13 15:58:30 +00:00
;;; Code:
;;
2009-09-20 22:18:36 +00:00
;; This file depends on the major components of CEDET, so that you can
;; load them all by doing (require 'cedet). This is mostly for
;; compatibility with the upstream, stand-alone CEDET distribution.
(declare-function inversion-find-version "inversion")
(defconst cedet-version "2.0"
"Current version of CEDET.")
(defconst cedet-packages
`(
2012-10-02 02:10:29 +08:00
;;PACKAGE MIN-VERSION INSTALLDIR DOCDIR
(cedet ,cedet-version "common" "common" )
(eieio "1.4" nil "eieio" )
(semantic "2.2" nil "semantic/doc")
(srecode "1.2" nil "srecode" )
(ede "1.2" nil "ede" )
2012-10-02 02:10:29 +08:00
)
"Table of CEDET packages to install.")
(defvar cedet-menu-map ;(make-sparse-keymap "CEDET menu")
(let ((map (make-sparse-keymap "CEDET menu")))
(define-key map [semantic-force-refresh] 'undefined)
(define-key map [semantic-edit-menu] 'undefined)
(define-key map [navigate-menu] 'undefined)
(define-key map [semantic-options-separator] 'undefined)
(define-key map [global-semantic-highlight-func-mode] 'undefined)
(define-key map [global-semantic-stickyfunc-mode] 'undefined)
(define-key map [global-semantic-decoration-mode] 'undefined)
(define-key map [global-semantic-idle-completions-mode] 'undefined)
(define-key map [global-semantic-idle-summary-mode] 'undefined)
(define-key map [global-semantic-idle-scheduler-mode] 'undefined)
(define-key map [global-semanticdb-minor-mode] 'undefined)
(define-key map [cedet-menu-separator] 'undefined)
(define-key map [ede-find-file] 'undefined)
(define-key map [ede-speedbar] 'undefined)
(define-key map [ede] 'undefined)
(define-key map [ede-new] 'undefined)
(define-key map [ede-target-options] 'undefined)
(define-key map [ede-project-options] 'undefined)
(define-key map [ede-build-forms-menu] 'undefined)
map)
"Menu keymap for the CEDET package.
This is used by `semantic-mode' and `global-ede-mode'.")
(defun cedet-version ()
2011-11-20 04:48:53 +01:00
"Display all active versions of CEDET and dependent packages.
The PACKAGE column is the name of a given package from CEDET.
REQUESTED VERSION is the version requested by the CEDET load script.
See `cedet-packages' for details.
FILE VERSION is the version number found in the source file
2009-10-01 02:39:07 +00:00
for the specified PACKAGE.
2011-11-20 04:48:53 +01:00
LOADED VERSION is the version of PACKAGE currently loaded in Emacs
memory and (presumably) running in this Emacs instance. Value is X
if the package has not been loaded."
(interactive)
(require 'inversion)
(with-output-to-temp-buffer "*CEDET*"
(princ "CEDET Version:\t") (princ cedet-version)
(princ "\n \t\t\tRequested\tFile\t\tLoaded")
(princ "\n Package\t\tVersion\t\tVersion\t\tVersion")
(princ "\n ----------------------------------------------------------")
(let ((p cedet-packages))
(while p
(let ((sym (symbol-name (car (car p)))))
(princ "\n ")
(princ sym)
(princ ":\t")
(if (< (length sym) 5)
(princ "\t"))
(if (< (length sym) 13)
(princ "\t"))
(let ((reqver (nth 1 (car p)))
(filever (car (inversion-find-version sym)))
(loadver (when (featurep (car (car p)))
(symbol-value (intern-soft (concat sym "-version"))))))
(princ reqver)
(if (< (length reqver) 8) (princ "\t"))
(princ "\t")
(if (string= filever reqver)
;; I tried the words "check" and "match", but that
;; just looked lame.
(princ "ok\t")
(princ filever)
(if (< (length filever) 8) (princ "\t")))
(princ "\t")
(if loadver
(if (string= loadver reqver)
(princ "ok")
(princ loadver))
(princ "Not Loaded"))
))
(setq p (cdr p))))
(princ "\n\n\nC-h f cedet-version RET\n for details on output format.")
))
(provide 'cedet)
;;; cedet.el ends here