%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/cedet/semantic/ |
Current File : //usr/local/share/emacs/27.2/lisp/cedet/semantic/db.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require eieio-base semantic] 2) #@43 Refresh references to DBT in other files. (autoload 'semanticdb-refresh-references "semantic/db-ref" '(#$ . 481)) (custom-declare-group 'semanticdb nil "Parser Generator Persistent Database interface." :group 'semantic) #@31 List of all active databases. (defvar semanticdb-database-list nil (#$ . 707)) #@198 The default type of database created for new files. This can be changed on a per file basis, so that some directories are saved using one mechanism, and some directories via a different mechanism. (defvar semanticdb-new-database-class 'semanticdb-project-database-file (#$ . 793)) (make-variable-buffer-local 'semanticdb-new-database-class) #@128 The default type of search index to use for a `semanticdb-table's. This can be changed to try out new types of search indices. (defvar semanticdb-default-find-index-class 'semanticdb-find-search-index (#$ . 1141)) (make-variable-buffer-local 'semanticdb-default-find=index-class) #@60 For a given buffer, this is the currently active database. (defvar semanticdb-current-database nil (#$ . 1427)) (make-variable-buffer-local 'semanticdb-current-database) #@66 For a given buffer, this is the currently active database table. (defvar semanticdb-current-table nil (#$ . 1603)) (byte-code "\300\301!\210\302\303\304\305!\"\210\302\306\307\305!\"\210\302\310\306\"\210\311\310\312\313#\210\314\305\315\306#\316\305\317\320\321$\210\322\323\317\324\317\325%\210\322\326\317\327\317\330%\207" [make-variable-buffer-local semanticdb-current-table defalias semanticdb-abstract-table-p eieio-make-class-predicate semanticdb-abstract-table semanticdb-abstract-table--eieio-childp eieio-make-child-predicate semanticdb-abstract-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((parent-db :documentation "Database Object containing this table.") (major-mode :initarg :major-mode :initform nil :documentation "Major mode this table belongs to.\nSometimes it is important for a program to know if a given table has the\nsame major mode as the current buffer.") (tags :initarg :tags :accessor semanticdb-get-tags :printer semantic-tag-write-list-slot-value :documentation "The tags belonging to this table.") (db-refs :initform nil :documentation "List of `semanticdb-table' objects refering to this one.\nThese aren't saved, but are instead recalculated after load.\nSee the file semanticdb-ref.el for how this slot is used.") (index :type semanticdb-abstract-search-index :documentation "The search index.\nUsed by semanticdb-find to store additional information about\nthis table for searching purposes.\n\nNote: This index will not be saved in a persistent file.") (cache :type list :initform nil :documentation "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime. Caches can be\nreferenced even when the file is not in a buffer.\n\nNote: This index will not be saved in a persistent file.")) (:documentation "A simple table for semantic tags.\nThis table is the root of tables, and contains the minimum needed\nfor a new table not associated with a buffer." :abstract t) cl-generic-define-method semanticdb-get-tags ((this semanticdb-abstract-table)) #[257 "\300\301\"\205 \302\301\"\207" [slot-boundp tags eieio-oref] 4 "Retrieve the slot `tags' from an object of class `semanticdb-abstract-table'.\n\n(fn THIS)"] \(setf\ semanticdb-get-tags\) (value (this semanticdb-abstract-table)) #[514 "\300\301#\207" [eieio-oset tags] 6 "\n\n(fn VALUE THIS)"]] 7) #@83 You cannot create a new object of type `semanticdb-abstract-table'. (fn &rest _) (defalias 'semanticdb-abstract-table #[128 "\300\301!\207" [error "Class semanticdb-abstract-table is abstract"] 3 (#$ . 4215)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\310\302\313\302\314%\210\300\315\302\316\302\317%\210\300\320\302\321\302\322%\210\300\323\302\324\302\325%\210\300\326\302\327\302\330%\210\331\332\333\334!\"\210\331\335\336\334!\"\210\331\337\335\"\210\340\337\341\342#\210\343\334\344\335#\345\334\302\346\347$\207" [cl-generic-define-method semanticdb-in-buffer-p nil ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return a nil, meaning abstract table OBJ is not in a buffer.\n\n(fn OBJ)"] semanticdb-get-buffer ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return a buffer associated with OBJ.\nIf the buffer is not in memory, load it with `find-file-noselect'.\n\n(fn OBJ)"] semanticdb-full-filename (buffer-or-string) #[257 "\301!\203 r\211q\210\302!)\207\211;\205 \303!\205 \304!\207" [semanticdb-current-table bufferp semanticdb-full-filename file-exists-p expand-file-name] 3 "Fetch the full filename that BUFFER-OR-STRING refers to.\nThis uses semanticdb to get a better file name.\n\n(fn BUFFER-OR-STRING)"] ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Fetch the full filename that OBJ refers to.\nAbstract tables do not have file names associated with them.\n\n(fn OBJ)"] semanticdb-dirty-p ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Return non-nil if OBJ is dirty.\n\n(fn OBJ)"] semanticdb-set-dirty ((_obj semanticdb-abstract-table)) #[257 "\300\207" [nil] 2 "Mark the abstract table OBJ dirty.\nAbstract tables can not be marked dirty, as there is nothing\nfor them to synchronize against.\n\n(fn OBJ)"] semanticdb-normalize-tags ((_obj semanticdb-abstract-table) tags) #[514 "\207" #1=[] 3 "For the table OBJ, convert a list of TAGS, into standardized form.\nThe default is to return TAGS.\nSome databases may default to searching and providing simplified tags\nbased on whichever technique used. This method provides a hook for\nthem to convert TAG into a more complete form.\n\n(fn OBJ TAGS)"] semanticdb-normalize-one-tag ((obj semanticdb-abstract-table) tag) #[514 "B\207" #1# 4 "For the table OBJ, convert a TAG, into standardized form.\nThis method returns a list of the form (DATABASE . NEWTAG).\n\nThe default is to just return (OBJ TAG).\n\nSome databases may default to searching and providing simplified tags\nbased on whichever technique used. This method provides a hook for\nthem to convert TAG into a more complete form.\n\n(fn OBJ TAG)"] defalias semanticdb-abstract-search-index-p eieio-make-class-predicate semanticdb-abstract-search-index semanticdb-abstract-search-index--eieio-childp eieio-make-child-predicate semanticdb-abstract-search-index-child-p make-obsolete "use (cl-typep ... \\='semanticdb-abstract-search-index) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((table :initarg :table :type semanticdb-abstract-table :documentation "XRef to the table this belongs to.")) (:documentation "A place where semanticdb-find can store search index information.\nThe search index will store data about which other tables might be\nneeded, or perhaps create hash or index tables for the current buffer." :abstract t)] 6) #@90 You cannot create a new object of type `semanticdb-abstract-search-index'. (fn &rest _) (defalias 'semanticdb-abstract-search-index #[128 "\300\301!\207" [error "Class semanticdb-abstract-search-index is abstract"] 3 (#$ . 7652)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\313\314\315\316!\"\210\313\317\320\316!\"\210\313\321\317\"\210\322\321\323\324#\210\325\316\326\317#\327\316\330\302\331$\207" [cl-generic-define-method semanticdb-get-table-index nil ((obj semanticdb-abstract-table)) #[257 "\301\302\"\203\f \303\302\"\207\304\305!\306P\307#\262\310\302#\266\211\207" [semanticdb-default-find-index-class slot-boundp index eieio-oref nil eieio-object-name " index" :table eieio-oset] 7 "Return the search index for the table OBJ.\nIf one doesn't exist, create it.\n\n(fn OBJ)"] semanticdb-synchronize ((_idx semanticdb-abstract-search-index) _new-tags) #[514 "\300\207" ["Synchronize the search index IDX with some NEW-TAGS."] 3 "\n\n(fn IDX NEW-TAGS)"] semanticdb-partial-synchronize ((_idx semanticdb-abstract-search-index) _new-tags) #[514 "\300\207" ["Synchronize the search index IDX with some changed NEW-TAGS."] 3 "\n\n(fn IDX NEW-TAGS)"] defalias semanticdb-search-results-table-p eieio-make-class-predicate semanticdb-search-results-table semanticdb-search-results-table--eieio-childp eieio-make-child-predicate semanticdb-search-results-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-search-results-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (semanticdb-abstract-table) (:documentation "Table used for search results when there is no file or table association.\nExamples include search results from external sources such as from\nEmacs's own symbol table, or from external libraries.")] 6) #@88 Create a new object of class type `semanticdb-search-results-table'. (fn &rest SLOTS) (defalias 'semanticdb-search-results-table #[128 "\300\301\302#\207" [apply make-instance semanticdb-search-results-table] 5 (#$ . 9494)]) (byte-code "\300\301\302\303#\300\207" [function-put semanticdb-search-results-table compiler-macro semanticdb-search-results-table--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'semanticdb-search-results-table--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 9876)]) (byte-code "\300\301\302\303\302\304%\210\305\306\307\310!\"\210\305\311\312\310!\"\210\305\313\311\"\210\314\313\315\316#\210\317\310\320\311#\321\310\322\323\324$\207" [cl-generic-define-method semanticdb-refresh-table nil ((_obj semanticdb-search-results-table) &optional _force) #[513 "\300\207" [nil] 3 "If the tag list associated with OBJ is loaded, refresh it.\nThis will call `semantic-fetch-tags' if that file is in memory.\n\n(fn OBJ &optional FORCE)"] defalias semanticdb-table-p eieio-make-class-predicate semanticdb-table semanticdb-table--eieio-childp eieio-make-child-predicate semanticdb-table-child-p make-obsolete "use (cl-typep ... \\='semanticdb-table) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (semanticdb-abstract-table) ((file :initarg :file :documentation "File name relative to the parent database.\nThis is for the file whose tags are stored in this TABLE object.") (buffer :initform nil :documentation "The buffer associated with this table.\nIf nil, the table's buffer is no in Emacs. If it has a value, then\nit is in Emacs.") (dirty :initform nil :documentation "Non-nil if this table needs to be `Saved'.") (db-refs :initform nil :documentation "List of `semanticdb-table' objects referring to this one.\nThese aren't saved, but are instead recalculated after load.\nSee the file semantic/db-ref.el for how this slot is used.") (pointmax :initarg :pointmax :initform nil :documentation "Size of buffer when written to disk.\nChecked on retrieval to make sure the file is the same.") (fsize :initarg :fsize :initform nil :documentation "Size of the file when it was last referenced.\nChecked when deciding if a loaded table needs updating from changes\noutside of Semantic's control.") (lastmodtime :initarg :lastmodtime :initform nil :documentation "Last modification time of the file referenced.\nChecked when deciding if a loaded table needs updating from changes outside of\nSemantic's control.") (unmatched-syntax :initarg :unmatched-syntax :documentation "List of vectors specifying unmatched syntax.") (lexical-table :initarg :lexical-table :initform nil :printer semantic-lex-spp-table-write-slot-value :documentation "Table that might be needed by the lexical analyzer.\nFor C/C++, the C preprocessor macros can be saved here.")) (:documentation "A single table of tags derived from file.")] 6) #@73 Create a new object of class type `semanticdb-table'. (fn &rest SLOTS) (defalias 'semanticdb-table #[128 "\300\301\302#\207" [apply make-instance semanticdb-table] 5 (#$ . 12499)]) (byte-code "\300\301\302\303#\300\207" [function-put semanticdb-table compiler-macro semanticdb-table--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'semanticdb-table--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 12807)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\313\302\314\302\315%\210\300\316\302\317\302\320%\210\300\321\302\322\302\323%\210\300\324\302\325\302\326%\210\327\330\331\332#\210\333\334\335\336!\"\210\333\337\340\336!\"\210\333\341\337\"\210\342\341\343\344#\210\345\336\346\337#\347\336\350\351\352$\210\300\353\302\354\302\355%\210\300\356\302\357\302\360%\207" [cl-generic-define-method semanticdb-in-buffer-p nil ((obj semanticdb-table)) #[257 "\300\301\"\302!\203 \211\202 \303\301\304#\262\207" [eieio-oref buffer buffer-live-p eieio-oset nil] 7 "Return a buffer associated with OBJ.\nIf the buffer is in memory, return that buffer.\n\n(fn OBJ)"] semanticdb-get-buffer ((obj semanticdb-table)) #[257 "\300!\206 \301 \302\303\304\305\306!\307\"\310$\216\311\312!\313\")\262\207" [semanticdb-in-buffer-p match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 find-file-noselect semanticdb-full-filename t] 8 "Return a buffer associated with OBJ.\nIf the buffer is in memory, return that buffer.\nIf the buffer is not in memory, load it with `find-file-noselect'.\n\n(fn OBJ)"] semanticdb-set-buffer ((obj semanticdb-table)) #[257 "\300!q\207" [semanticdb-get-buffer] 3 "Set the current buffer to be a buffer owned by OBJ.\nIf OBJ's file is not loaded, read it in first.\n\n(fn OBJ)"] semanticdb-dirty-p ((obj semanticdb-table)) #[257 "\300\301\"\207" [eieio-oref dirty] 4 "Return non-nil if OBJ is dirty.\n\n(fn OBJ)"] semanticdb-set-dirty ((obj semanticdb-table)) #[257 "\211\300\301\302#\207" [eieio-oset dirty t] 6 "Mark the abstract table OBJ dirty.\n\n(fn OBJ)"] semanticdb-debug-info ((obj semanticdb-table)) #[257 "\300\301\302!G\303\304\"\203 \305\202 \306#C\207" [format "(%d tags)%s" semanticdb-get-tags eieio-oref dirty ", DIRTY" ""] 7 "\n\n(fn OBJ)"] cl-print-object ((obj semanticdb-table) stream) #[514 "\300\301\302!\"\"\207" [princ eieio-object-name semanticdb-debug-info] 7 "Pretty printer extension for `semanticdb-table'.\nAdds the number of tags in this file to the object print name.\n\n(fn OBJ STREAM)"] put semanticdb-abstract-table-list cl-deftype-handler #[0 "\300\207" [(list-of semanticdb-abstract-table)] 1] defalias semanticdb-project-database-p eieio-make-class-predicate semanticdb-project-database semanticdb-project-database--eieio-childp eieio-make-child-predicate semanticdb-project-database-child-p make-obsolete "use (cl-typep ... \\='semanticdb-project-database) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (eieio-instance-tracker) ((tracking-symbol :initform semanticdb-database-list) (reference-directory :type string :documentation "Directory this database refers to.\nWhen a cache directory is specified, then this refers to the directory\nthis database contains symbols for.") (new-table-class :initform semanticdb-table :type class :documentation "New tables created for this database are of this class.") (cache :type list :initform nil :documentation "List of cache information for tools.\nAny particular tool can cache data to a database at runtime\nwith `semanticdb-cache-get'.\n\nUsing a semanticdb cache does not save any information to a file,\nso your cache will need to be recalculated at runtime.\n\nNote: This index will not be saved in a persistent file.") (tables :initarg :tables :type semanticdb-abstract-table-list :accessor semanticdb-get-database-tables :protection :protected :documentation "List of `semantic-db-table' objects.")) (:documentation "Database of file tables.") semanticdb-get-database-tables ((this semanticdb-project-database)) #[257 "\300\301\"\205 \302\301\"\207" [slot-boundp tables eieio-oref] 4 "Retrieve the slot `tables' from an object of class `semanticdb-project-database'.\n\n(fn THIS)"] \(setf\ semanticdb-get-database-tables\) (value (this semanticdb-project-database)) #[514 "\300\301#\207" [eieio-oset tables] 6 "\n\n(fn VALUE THIS)"]] 7) #@84 Create a new object of class type `semanticdb-project-database'. (fn &rest SLOTS) (defalias 'semanticdb-project-database #[128 "\300\301\302#\207" [apply make-instance semanticdb-project-database] 5 (#$ . 17039)]) (byte-code "\300\301\302\303#\300\207" [function-put semanticdb-project-database compiler-macro semanticdb-project-database--anon-cmacro] 4) #@26 (fn WHOLE &rest SLOTS) (defalias 'semanticdb-project-database--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 17402)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\307\302\310\302\311%\210\300\312\302\313\302\314%\210\300\315\302\316\302\317%\210\300\320\302\321\302\322%\210\300\323\302\324\302\325%\210\300\326\302\327\302\330%\210\300\331\302\332\302\333%\207" [cl-generic-define-method semanticdb-full-filename nil ((obj semanticdb-table)) #[257 "\300\301\302\"\301\211\303\"\304\"\"\207" [expand-file-name eieio-oref file parent-db reference-directory] 7 "Fetch the full filename that OBJ refers to.\n\n(fn OBJ)"] ((_obj semanticdb-project-database)) #[257 "\300\207" [nil] 2 "Fetch the full filename that OBJ refers to.\nAbstract tables do not have file names associated with them.\n\n(fn OBJ)"] semanticdb-dirty-p ((DB semanticdb-project-database)) #[257 "\300\301\302\"\204 \211\203 \303@!\262\211A\262\202 \207" [nil eieio-oref tables semanticdb-dirty-p] 5 "Return non-nil if DB is dirty.\nA database is dirty if the state of the database changed in a way\nwhere it may need to resynchronize with some persistent storage.\n\n(fn DB)"] semanticdb-debug-info ((obj semanticdb-project-database)) #[257 "\300\301\302!G\303!\203 \304\202 \305#C\207" [format "(%d tables%s)" semanticdb-get-database-tables semanticdb-dirty-p " DIRTY" ""] 6 "\n\n(fn OBJ)"] cl-print-object ((obj semanticdb-project-database) stream) #[514 "\300\301\302!\"\"\207" [princ eieio-object-name semanticdb-debug-info] 7 "Pretty printer extension for `semanticdb-project-database'.\nAdds the number of tables in this file to the object print name.\n\n(fn OBJ STREAM)"] semanticdb-create-database ((_dbc (subclass semanticdb-project-database)) directory) #[514 "\300!\211\204 \301\302!\303\304#\262\211\305\306\307!#\266\211\207" [semanticdb-directory-loaded-p semanticdb-project-database file-name-nondirectory :tables nil eieio-oset reference-directory file-truename] 9 "Create a new semantic database of class DBC for DIRECTORY and return it.\nIf a database for DIRECTORY has already been created, return it.\nIf DIRECTORY doesn't exist, create a new one.\n\n(fn DBC DIRECTORY)"] semanticdb-flush-database-tables ((db semanticdb-project-database)) #[257 "\211\300\301\302#\207" [eieio-oset tables nil] 6 "Reset the tables in DB to be empty.\n\n(fn DB)"] semanticdb-create-table ((db semanticdb-project-database) file) #[514 "\300\"\211\204&