cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
authorChong Yidong <cyd@stupidchicken.com>
Mon, 31 Aug 2009 00:45:41 +0000 (00:45 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 31 Aug 2009 00:45:41 +0000 (00:45 +0000)
semanticdb-current-database and semanticdb-current-table are now in
semantic/db.el.

cedet/semantic/db-ebrowse.el: Don't require semantic/db-mode, since
semanticdb-current-database and semanticdb-current-table are now in
semantic/db.el.

cedet/semantic/db-el.el: Require semantic/lex-spp.
Require semantic/db instead of semantic/db-search.

cedet/semantic/db-file.el: Declare inversion-test and
data-debug-insert-thing.
(semanticdb-load-database): Load inversion only if necessary.

cedet/semantic/db-find.el: Autoload semanticdb-find-default-throttle.
Defvar data-debug-thing-alist, and ede-current-project.
Declare data-debug-insert-stuff-list, data-debug-insert-tag-list,
semantic-scope-reset-cache, and semanticdb-typecache-notify-reset.
Require semantic/tag-file, and semantic/sort.
(semantic-reset): Require semantic/scope.
(semanticdb-partial-synchronize): Require semantic/db-typecache.
(semanticdb-find-table-for-include) Move up to avoid compiler warning.

cedet/semantic/db-global.el: Declare data-debug-new-buffer and
data-debug-insert-thing.
(semanticdb-project-database-global) Move up to avoid compiler warning.

cedet/semantic/db-javascript.el: Fix provide statement.
Require semantic/db-find instead of semantic/db-search.

cedet/semantic/db-mode.el: Declare semantic-lex-spp-set-dynamic-table.
(semanticdb-current-database, semanticdb-current-table): Move into
semantic/db.el

cedet/semantic/db-ref.el: Require eieio, semantic/db, and semantic/util.
Declare data-debug-new-buffer and data-debug-insert-object-slots.
Defvar semantic-case-fold.  Require semantic/find when compiling.

cedet/semantic/db-typecache.el: Require semantic/tag-ls,
semantic/analyze/fcn, and semantic/scope.  Declare
data-debug-insert-thing and data-debug-new-buffer.

cedet/semantic/db.el (semanticdb-search-results-table): Move class
definition here from semantic/db-search.el.
(semanticdb-current-database, semanticdb-current-table) Move variable
definitions here from semantic/db-mode.el.

lisp/cedet/semantic/db-debug.el
lisp/cedet/semantic/db-ebrowse.el
lisp/cedet/semantic/db-el.el
lisp/cedet/semantic/db-file.el
lisp/cedet/semantic/db-find.el
lisp/cedet/semantic/db-global.el
lisp/cedet/semantic/db-javascript.el
lisp/cedet/semantic/db-mode.el
lisp/cedet/semantic/db-ref.el
lisp/cedet/semantic/db-typecache.el
lisp/cedet/semantic/db.el

index 52ae605..cf188af 100644 (file)
@@ -26,7 +26,6 @@
 
 (require 'data-debug)
 (require 'semantic/db)
-(require 'semantic/db-mode)
 (require 'semantic/format)
 
 ;;; Code:
index 96f8285..bccd674 100644 (file)
@@ -56,7 +56,6 @@
   (require 'eieio-opt)
   )
 (require 'semantic/db-file)
-(require 'semantic/db-mode)
 (require 'semantic/find)
 (require 'semantic/sort)
 (require 'data-debug)
index 3db6c15..e1459f2 100644 (file)
@@ -1,4 +1,4 @@
-;;; db-el.el --- Semantic database extensions for Emacs Lisp
+;;; semantic/db-el.el --- Semantic database extensions for Emacs Lisp
 
 ;;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 ;;; Free Software Foundation, Inc.
@@ -31,7 +31,8 @@
 ;; to also work in Emacs Lisp with no compromises.
 ;;
 
-(require 'semantic/db-search)
+(require 'semantic/db)
+
 (eval-when-compile
   ;; For generic function searching.
   (require 'eieio)
@@ -340,4 +341,4 @@ Return a list of tags."
 
 (provide 'semantic/db-el)
 
-;;; semanticdb-el.el ends here
+;;; semantic/db-el.el ends here
index a16f9bb..12cadc4 100644 (file)
@@ -1,4 +1,4 @@
-;;; db-file.el --- Save a semanticdb to a cache file.
+;;; semantic/db-file.el --- Save a semanticdb to a cache file.
 
 ;;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
 ;;; Free Software Foundation, Inc.
@@ -147,9 +147,11 @@ If DIRECTORY doesn't exist, create a new one."
     db))
 
 ;;; File IO
+
+(declare-function inversion-test "inversion")
+
 (defun semanticdb-load-database (filename)
   "Load the database FILENAME."
-  (require 'inversion)
   (condition-case foo
       (let* ((r (eieio-persistent-read filename))
             (c (semanticdb-get-database-tables r))
@@ -160,23 +162,26 @@ If DIRECTORY doesn't exist, create a new one."
        (while c
          (oset (car c) parent-db r)
          (setq c (cdr c)))
-       (if (not (inversion-test 'semanticdb-file fv))
-           (when (inversion-test 'semantic-tag tv)
-             ;; Incompatible version.  Flush tables.
-             (semanticdb-flush-database-tables r)
-             ;; Reset the version to new version.
-             (oset r semantic-tag-version semantic-tag-version)
-             ;; Warn user
-             (message "Semanticdb file is old.  Starting over for %s"
-                      filename)
-             )
-         ;; Version is not ok.  Flush whole system
-         (message "semanticdb file is old.  Starting over for %s"
-                  filename)
-         ;; This database is so old, we need to replace it.
-         ;; We also need to delete it from the instance tracker.
-         (delete-instance r)
-         (setq r nil))
+       (unless (and (equal semanticdb-file-version fv)
+                    (equal semantic-tag-version tv))
+         ;; Try not to load inversion unless we need it:
+         (require 'inversion)
+         (if (not (inversion-test 'semanticdb-file fv))
+             (when (inversion-test 'semantic-tag tv)
+               ;; Incompatible version.  Flush tables.
+               (semanticdb-flush-database-tables r)
+               ;; Reset the version to new version.
+               (oset r semantic-tag-version semantic-tag-version)
+               ;; Warn user
+               (message "Semanticdb file is old.  Starting over for %s"
+                        filename))
+           ;; Version is not ok.  Flush whole system
+           (message "semanticdb file is old.  Starting over for %s"
+                    filename)
+           ;; This database is so old, we need to replace it.
+           ;; We also need to delete it from the instance tracker.
+           (delete-instance r)
+           (setq r nil)))
        r)
     (error (message "Cache Error: [%s] %s, Restart"
                    filename foo)
@@ -262,6 +267,8 @@ Live files are either buffers in Emacs, or files existing on the filesystem."
 This variable is set to nil after the first error is encountered
 to prevent overload.")
 
+(declare-function data-debug-insert-thing "data-debug")
+
 (defmethod object-write ((obj semanticdb-table))
   "When writing a table, we have to make sure we deoverlay it first.
 Restore the overlays after writting.
@@ -435,4 +442,4 @@ Optional NOERROR prevents errors from being displayed."
 
 (provide 'semantic/db-file)
 
-;;; semanticdb-file.el ends here
+;;; semantic/db-file.el ends here
index 681b7d2..d81d5c1 100644 (file)
   (require 'eieio)
   )
 
+(require 'semantic/find)
+
+(require 'semantic/tag-file)
+(require 'semantic/sort)
+
 ;;; Code:
+
+(defvar data-debug-thing-alist)
+(declare-function data-debug-insert-stuff-list "data-debug")
+(declare-function data-debug-insert-tag-list "data-debug")
+(declare-function semantic-scope-reset-cache "semantic/scope")
+(declare-function semanticdb-typecache-notify-reset "semantic/db-typecache")
+(declare-function ede-current-project "ede")
+
 (defvar semanticdb-find-throttle-custom-list
   '(repeat (radio (const 'local)
                  (const 'project)
   "Customization values for semanticdb find throttle.
 See `semanticdb-find-throttle' for details.")
 
+;;;###autoload
 (defcustom semanticdb-find-default-throttle
   '(local project unloaded system recursive)
   "The default throttle for `semanticdb-find' routines.
@@ -188,6 +202,7 @@ This class will cache data derived during various searches.")
 
 (defmethod semantic-reset ((idx semanticdb-find-search-index))
   "Reset the object IDX."
+  (require 'semantic/scope)
   ;; Clear the include path.
   (oset idx include-path nil)
   (when (oref idx type-cache)
@@ -233,6 +248,7 @@ This class will cache data derived during various searches.")
           (let ((tab-idx (semanticdb-get-table-index tab)))
             ;; Not a full reset?
             (when (oref tab-idx type-cache)
+              (require 'db-typecache)
               (semanticdb-typecache-notify-reset
                (oref tab-idx type-cache)))
             )))
@@ -300,6 +316,13 @@ Default action as described in `semanticdb-find-translate-path'."
        (semanticdb-find-translate-path-brutish-default path)
       (semanticdb-find-translate-path-includes-default path))))
 
+(define-overloadable-function semanticdb-find-table-for-include (includetag &optional table)
+  "For a single INCLUDETAG found in TABLE, find a `semanticdb-table' object
+INCLUDETAG is a semantic TAG of class 'include.
+TABLE is a semanticdb table that identifies where INCLUDETAG came from.
+TABLE is optional if INCLUDETAG has an overlay of :filename attribute."
+  )
+
 (defun semanticdb-find-translate-path-brutish-default (path)
   "Translate PATH into a list of semantic tables.
 Default action as described in `semanticdb-find-translate-path'."
@@ -582,13 +605,6 @@ isn't in memory yet."
   "Load an unloaded file in FILENAME using the default semanticdb loader."
   (semanticdb-file-table-object filename))
 
-(define-overloadable-function semanticdb-find-table-for-include (includetag &optional table)
-  "For a single INCLUDETAG found in TABLE, find a `semanticdb-table' object
-INCLUDETAG is a semantic TAG of class 'include.
-TABLE is a semanticdb table that identifies where INCLUDETAG came from.
-TABLE is optional if INCLUDETAG has an overlay of :filename attribute."
-  )
-
 (defun semanticdb-find-table-for-include-default (includetag &optional table)
   "Default implementation of `semanticdb-find-table-for-include'.
 Uses `semanticdb-current-database-list' as the search path.
@@ -1079,7 +1095,6 @@ Returns result."
     (semanticdb-find-log-move-to-end)))
 
 ;;; Semanticdb find API functions
-;;
 ;; These are the routines actually used to perform searches.
 ;;
 (defun semanticdb-find-tags-collector (function &optional path find-file-match
index 1677f57..373b0df 100644 (file)
@@ -29,7 +29,7 @@
 ;;
 
 (require 'cedet-global)
-(require 'semantic/db-search)
+(require 'semantic/db-find)
 (require 'semantic/symref/global)
 
 (eval-when-compile
   (require 'eieio)
   (require 'eieio-opt)
   )
+
 ;;; Code:
+
+(declare-function data-debug-new-buffer "data-debug")
+(declare-function data-debug-insert-thing result "data-debug")
+
+
 (defun semanticdb-enable-gnu-global-databases (mode)
   "Enable the use of the GNU Global SemanticDB back end for all files of MODE.
 This will add an instance of a GNU Global database to each buffer
@@ -67,6 +73,12 @@ in a GNU Global supported hierarchy."
 MODE is the major mode to support."
   (semanticdb-enable-gnu-global-in-buffer t))
 
+(defclass semanticdb-project-database-global
+  ;; @todo - convert to one DB per directory.
+  (semanticdb-project-database eieio-instance-tracker)
+  ()
+  "Database representing a GNU Global tags file.")
+
 (defun semanticdb-enable-gnu-global-in-buffer (&optional dont-err-if-not-available)
   "Enable a GNU Global database in the current buffer.
 Argument DONT-ERR-IF-NOT-AVAILABLE will throw an error if GNU Global
@@ -94,12 +106,6 @@ is not available for this directory."
    )
   "A table for returning search results from GNU Global.")
 
-(defclass semanticdb-project-database-global
-  ;; @todo - convert to one DB per directory.
-  (semanticdb-project-database eieio-instance-tracker)
-  ()
-  "Database representing a GNU Global tags file.")
-
 (defmethod semanticdb-equivalent-mode ((table semanticdb-table-global) &optional buffer)
   "Return t, pretend that this table's mode is equivalent to BUFFER.
 Equivalent modes are specified by by `semantic-equivalent-major-modes'
index dca2c38..02c089e 100644 (file)
@@ -1,4 +1,4 @@
-;;; db-javascript.el --- Semantic database extensions for javascript
+;;; semantic/db-javascript.el --- Semantic database extensions for javascript
 
 ;;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
 ;;; Free Software Foundation, Inc.
@@ -29,7 +29,9 @@
 ;; the list of tags.
 ;;
 
-(require 'semantic/db-search)
+(require 'semantic/db)
+(require 'semantic/db-find)
+
 (eval-when-compile
   ;; For generic function searching.
   (require 'eieio)
@@ -305,6 +307,6 @@ Return a list of tags."
 ;; function encodeURIComponent (uriComponent){}
 
 
-(provide 'semantic/db-el)
+(provide 'semantic/db-javascript)
 
-;;; semanticdb-el.el ends here
+;;; semantic/db-javascript.el ends here
index f1baf92..b34fd0b 100644 (file)
 
 (require 'semantic/db)
 ;;; Code:
-(defvar semanticdb-current-database nil
-  "For a given buffer, this is the currently active database.")
-(make-variable-buffer-local 'semanticdb-current-database)
 
-(defvar semanticdb-current-table nil
-  "For a given buffer, this is the currently active database table.")
-(make-variable-buffer-local 'semanticdb-current-table)
+;; Moved into semantic/db.el:
+;; (defvar semanticdb-current-database nil
+;;   "For a given buffer, this is the currently active database.")
+;; (make-variable-buffer-local 'semanticdb-current-database)
+
+;; (defvar semanticdb-current-table nil
+;;   "For a given buffer, this is the currently active database table.")
+;; (make-variable-buffer-local 'semanticdb-current-table)
+
+(declare-function semantic-lex-spp-set-dynamic-table "semantic/lex-spp")
 
 (defcustom semanticdb-global-mode nil
   "*If non-nil enable the use of `semanticdb-minor-mode'."
index 62faf99..45f87ed 100644 (file)
@@ -1,4 +1,4 @@
-;;; db-ref.el --- Handle cross-db file references
+;;; semantic/db-ref.el --- Handle cross-db file references
 
 ;;; Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
 
 
 
 ;;; Code:
+(require 'eieio)
+(require 'semantic/db)
+(require 'semantic/util)
+
+(defvar semanticdb-find-default-throttle)
+
+;; For the semantic-find-tags-by-name-regexp macro.
+(eval-when-compile (require 'semantic/find))
+(defvar semantic-case-fold)
+
 (defmethod semanticdb-add-reference ((dbt semanticdb-abstract-table)
                                     include-tag)
   "Add a reference for the database table DBT based on INCLUDE-TAG.
@@ -137,11 +147,17 @@ DBT, the second argument is DBT."
    (i-include :initarg :i-include))
   "Simple class to allow ADEBUG to show a nice list.")
 
+(defvar semanticdb-current-table)
+(declare-function data-debug-new-buffer "data-debug")
+(declare-function data-debug-insert-object-slots "data-debug")
+
 (defun semanticdb-ref-test (refresh)
   "Dump out the list of references for the current buffer.
 If REFRESH is non-nil, cause the current table to have it's references
 refreshed before dumping the result."
   (interactive "p")
+  (require 'data-debug)
+  (require 'semantic/db)
   ;; If we need to refresh... then do so.
   (when refresh
     (semanticdb-refresh-references semanticdb-current-table))
@@ -158,4 +174,4 @@ refreshed before dumping the result."
   )
 
 (provide 'semantic/db-ref)
-;;; semanticdb-ref.el ends here
+;;; semantic/db-ref.el ends here
index 689e6d9..a0827ee 100644 (file)
 
 (require 'semantic/db)
 (require 'semantic/db-find)
+(require 'semantic/tag-ls)
+(require 'semantic/analyze/fcn)
+(require 'semantic/scope)
+
+(declare-function data-debug-insert-thing "data-debug")
+(declare-function data-debug-new-buffer "data-debug")
 
 ;;; Code:
 
index 807b7b3..ea8bcc9 100644 (file)
@@ -1,4 +1,4 @@
-;;; db.el --- Semantic tag database manager
+;;; semantic/db.el --- Semantic tag database manager
 
 ;;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 ;;; 2008, 2009 Free Software Foundation, Inc.
@@ -59,6 +59,13 @@ mechanism.")
 This can be changed to try out new types of search indicies.")
 (make-variable-buffer-local 'semanticdb-default-find=index-class)
 
+(defvar semanticdb-current-database nil
+  "For a given buffer, this is the currently active database.")
+(make-variable-buffer-local 'semanticdb-current-database)
+
+(defvar semanticdb-current-table nil
+  "For a given buffer, this is the currently active database table.")
+(make-variable-buffer-local 'semanticdb-current-table)
 
 ;;; ABSTRACT CLASSES
 ;;
@@ -151,6 +158,17 @@ Adds the number of tags in this file to the object print name."
                       )
               strings)))
 
+(defclass semanticdb-search-results-table (semanticdb-abstract-table)
+  ( )
+  "Table used for search results when there is no file or table association.
+Examples include search results from external sources such as from
+Emacs' own symbol table, or from external libraries.")
+
+(defmethod semanticdb-refresh-table ((obj semanticdb-search-results-table) &optional force)
+  "If the tag list associated with OBJ is loaded, refresh it.
+This will call `semantic-fetch-tags' if that file is in memory."
+  nil)
+
 ;;; Index Cache
 ;;
 (defclass semanticdb-abstract-search-index ()
@@ -986,4 +1004,4 @@ If file does not have tags available, then load the file, and create them."
 
 (provide 'semantic/db)
 
-;;; semanticdb.el ends here
+;;; semantic/db.el ends here