lisp/emacs-lisp/autoload.el (generated-autoload-feature): New var.
(autoload-rubric): Use it.
lisp/cedet/semantic/adebug.el (data-debug-insert-find-results-button): Require
db-find.
lisp/cedet/semantic/analyze.el: Require semantic/tag. Don't declare
autoloaded functions.
lisp/cedet/semantic/chart.el: Don't declare autoloaded functions.
lisp/cedet/semantic/complete.el: eval-when-compile semantic/find for macro.
(semantic-collector-calculate-completions-raw): Require semantic/db-find.
lisp/cedet/semantic/ctxt.el (semantic-up-context): Require semantic/find.
Don't require it at top-level.
lisp/cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-dump): Require
data-debug. Don't require it at top-level. Don't require semantic/sort.
lisp/cedet/semantic/db-find.el: Add local vars for autoloading.
Don't require semantic/tag-file and semantic/sort.
(semanticdb-find-default-throttle, semanticdb-find-result-length)
(semanticdb-find-result-nth, semanticdb-find-result-nth-in-buffer)
(semanticdb-find-tags-by-name, semanticdb-find-tags-for-completion)
(semanticdb-find-translate-path, semanticdb-find-table-for-include): Autoload.
lisp/cedet/semantic/db-ref.el: Require semantic and semantic/tag.
(semanticdb-ref-test): Require data-debug. Don't require it at
top-level.
lisp/cedet/semantic/db-typecache.el: Require semantic and semantic/tag.
Declare semantic-sort-tags-by-name-then-type-increasing and
semantic-scope-tag-clone-with-scope.
eval-when-compile semantic/find for semantic-find-tags-by-* macros.
Add local vars for autoloading.
(semanticdb-typecache-find): Autoload.
lisp/cedet/semantic/db.el: Add local vars for autoloading.
(semanticdb-current-database, semanticdb-current-table)
(semanticdb-file-table-object): Autoload.
lisp/cedet/semantic/decorate.el: Don't requirements for autoloaded functions.
lisp/cedet/semantic/doc.el: Add local vars for autoloading.
(semantic-documentation-for-tag): Autoload.
lisp/cedet/semantic/edit.el: Drop requirements for autoloaded functions.
lisp/cedet/semantic/find.el: Add local vars for autoloading.
(semantic-current-tag, semantic-find-tag-by-overlay)
(semantic-find-first-tag-by-name): Autoload.
lisp/cedet/semantic/format.el: Add local vars for autoloading.
(semantic-format-tag-name, semantic-format-tag-custom-list)
(semantic-format-tag-functions): Autoload.
lisp/cedet/semantic/fw.el: Require semantic/loaddefs.
lisp/cedet/semantic/html.el (semantic-html-recursive-combobulate-list):
Use assoc-string instead of assoc-case.
lisp/cedet/semantic/ia.el (semantic-ia-insert-tag): Move up to avoid
compiler error.
(semantic-ia-complete-symbol-menu): Require imenu.
(semantic-ia-fast-jump): Require semantic/decorate/include.
lisp/cedet/semantic/idle.el: Require semantic and semantic/tag.
Declare semanticdb-typecache-refresh-for-buffer and eldoc-message.
eval-when-compile semantic/find for semantic-find-tags-by-name macro.
lisp/cedet/semantic/sort.el: Add local vars for autoloading.
(semantic-flatten-tags-table, semantic-tag-external-member-parent):
Autoload.
lisp/cedet/semantic/tag-file.el: Add local vars for autoloading.
(semantic-go-to-tag, semantic-dependency-tag-file): Autoload.
lisp/cedet/semantic/tag-ls.el: Add local vars for autoloading.
(semantic-tag-prototype-p): Autoload.
lisp/cedet/semantic/tag.el: Don't declare autoloaded functions.
lisp/cedet/semantic/analyze/complete.el: Add local variables for autoloading.
(semantic-analyze-possible-completions): Autoload.
lisp/cedet/semantic/analyze/fcn.el: Require mode-local.
-2009-08-22 Chong Yidong <cyd@stupidchicken.com>
+2009-09-02 Chong Yidong <cyd@stupidchicken.com>
+
+ * emacs-lisp/autoload.el (generated-autoload-feature): New var.
+ (autoload-rubric): Use it.
+
+ * Makefile.in (setwins): Ignore CEDET subdirectories when making
+ subdirs.el.
* emacs-lisp/cl-loaddefs.el (deftype): Add autoload for deftype.
esac; \
done
+# Find all subdirectories except `cedet'
+
+setwins_nocedet=subdirs=`(cd $$wd; find . -type d -print)`; \
+ for file in $$subdirs; do \
+ case $$file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */cedet* ) ;; \
+ *) wins="$$wins $$wd/$$file" ;; \
+ esac; \
+ done
+
+
# `compile-main' tends to be slower than `recompile' but can be parallelized
# with "make -j" and results in more deterministic compilation warnings.
# cus-load and finder-inf are not explicitly requested by anything, so
$(lisp)/subdirs.el:
$(MAKE) $(MFLAGS) update-subdirs
update-subdirs: doit
- wd=$(lisp); $(setwins); \
+ wd=$(lisp); $(setwins_nocedet); \
for file in $$wins; do \
$(srcdir)/update-subdirs $$file; \
done;
(goto-char start)
))
+(declare-function semanticdb-find-result-prin1-to-string "semantic/db-find")
+
(defun data-debug-insert-find-results-button (findres prefix prebuttontext)
"Insert a single summary of a find results FINDRES.
PREFIX is the text that preceeds the button.
PREBUTTONTEXT is some text between prefix and the find results button."
+ (require 'semantic/db-find)
(let ((start (point))
(end nil)
(str (semanticdb-find-result-prin1-to-string findres))
(require 'semantic/sort)
(eval-when-compile (require 'semantic/find))
(require 'semantic/scope)
+(require 'semantic/tag)
(require 'semantic/analyze/fcn)
-;; `semanticdb-typecache-find' autoloads from semantic/db-typecache,
-;; which requires semantic/db-find.
-(declare-function semanticdb-strip-find-results "semantic/db-find")
-(declare-function semanticdb-find-tags-by-name "semantic/db-find")
-
;;; Code:
(defvar semantic-analyze-error-stack nil
"Collection of any errors thrown during analysis.")
;;; MAIN completion calculator
;;
-;;
+;;;###autoload
(define-overloadable-function semantic-analyze-possible-completions (context)
"Return a list of semantic tags which are possible completions.
CONTEXT is either a position (such as point), or a precalculated
c))
-
-
(provide 'semantic/analyze/complete)
+;; Local variables:
+;; generated-autoload-file: "../loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/analyze/complete.el ends here
;;; Code:
+(require 'mode-local)
+
;;; Small Mode Specific Options
;;
;; These queries allow a major mode to help the analyzer make decisions.
(require 'chart)
(require 'semantic)
-(require 'semantic/db-mode)
-(require 'semantic/db-typecache)
-(require 'semantic/scope)
+(require 'semantic/db)
+(require 'semantic/tag)
+
+(eval-when-compile (require 'semantic/find))
+
+;; (require 'semantic/db-mode)
+;; (require 'semantic/db-typecache)
+;; (require 'semantic/scope)
;;; Code:
exist in each database entry.
TAGTABLE is passed to `semantic-something-to-tag-table'."
(interactive)
- (if (or (not (fboundp 'semanticdb-minor-mode-p))
- (not (semanticdb-minor-mode-p)))
- (error "Semanticdb is not enabled"))
+ (unless (and (fboundp 'semanticdb-minor-mode-p)
+ (semanticdb-minor-mode-p))
+ (error "Semanticdb is not enabled"))
(let* ((db semanticdb-current-database)
(dbt (semanticdb-get-database-tables db))
(names (mapcar 'car
nums "Complexity (Lines of code)")
))
+(declare-function semanticdb-get-typecache "semantic/db-typecache")
+(declare-function semantic-calculate-scope "semantic/scope")
+
(defun semantic-chart-analyzer ()
"Chart the extent of the context analysis."
(interactive)
+ (require 'semantic/db-typecache)
+ (require 'semantic/scope)
(let* ((p (semanticdb-find-translate-path nil nil))
(plen (length p))
(tab semanticdb-current-table)
(require 'eieio)
(require 'eieio-opt)
-(require 'semantic/tag-file)
+(require 'semantic)
(require 'semantic/analyze)
-(require 'semantic/format)
(require 'semantic/ctxt)
-;; Keep semanticdb optional.
-;; (eval-when-compile
-;; (require 'semantic/db)
-;; (require 'semantic/db-find))
(require 'semantic/decorate)
-(require 'semantic/analyze/complete)
+(require 'semantic/format)
+(require 'semantic/tag)
+(eval-when-compile
+ ;; For the semantic-find-tags-for-completion macro.
+ (require 'semantic/find))
(eval-when-compile
(condition-case nil
()
"Completion engine for tags in a project.")
+(declare-function semanticdb-brute-deep-find-tags-for-completion
+ "semantic/db-find")
+
(defmethod semantic-collector-calculate-completions-raw
((obj semantic-collector-project-brutish) prefix completionlist)
"Calculate the completions for prefix from completionlist."
+ (require 'semantic/db-find)
(semanticdb-brute-deep-find-tags-for-completion prefix (oref obj path)))
(defclass semantic-collector-analyze-completions (semantic-collector-abstract)
;; the current context is calculated.
;;
(require 'semantic)
-(require 'semantic/find)
;;; Code:
(defvar semantic-command-separation-character
;;
;; These context are nested blocks of code, such as code in an
;; if clause
+(declare-function semantic-current-tag-of-class "semantic/find")
+
(define-overloadable-function semantic-up-context (&optional point bounds-type)
"Move point up one context from POINT.
Return non-nil if there are no more context levels.
This will find the smallest tag of that class (function, variable,
type, etc) and make sure non-nil is returned if you cannot
go up past the bounds of that tag."
+ (require 'semantic/find)
(if point (goto-char point))
(let ((nar (semantic-current-tag-of-class (or bounds-type 'function))))
(if nar
)
(require 'semantic/db-file)
(require 'semantic/find)
-(require 'semantic/sort)
-(require 'data-debug)
(declare-function semantic-add-system-include "semantic/dep")
+(declare-function data-debug-new-buffer "data-debug")
+(declare-function data-debug-insert-thing "data-debug")
(eval-and-compile
;; Hopefully, this will allow semanticdb-ebrowse to compile under
(defun semanticdb-ebrowse-dump ()
"Find the first loaded ebrowse table, and dump out the contents."
(interactive)
+ (require 'data-debug)
(let ((db semanticdb-database-list)
(ab nil))
(while db
(require 'eieio)
(require 'semantic/find))
-(require 'semantic/tag-file)
-(require 'semantic/sort)
-
;;; Code:
(defvar data-debug-thing-alist)
;; These routines needed to be overloaded by specific language modes.
;; They are needed for translating an INCLUDE tag into a semanticdb
;; TABLE object.
+;;;###autoload
(define-overloadable-function semanticdb-find-translate-path (path brutish)
"Translate PATH into a list of semantic tables.
Path translation involves identifying the PATH input argument
(semanticdb-find-translate-path-brutish-default path)
(semanticdb-find-translate-path-includes-default path))))
+;;;###autoload
(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.
;; Once you have a search result, use these routines to operate
;; on the search results at a higher level
+;;;###autoload
(defun semanticdb-strip-find-results (results &optional find-file-match)
"Strip a semanticdb search RESULTS to exclude objects.
This makes it appear more like the results of a `semantic-find-' call.
(null tag-to-test))))
)))
+;;;###autoload
(defun semanticdb-find-result-length (result)
"Number of tags found in RESULT."
(let ((count 0))
result)
count))
+;;;###autoload
(defun semanticdb-find-result-nth (result n)
"In RESULT, return the Nth search result.
This is a 0 based search result, with the first match being element 0.
(error "%d entry is not a tag" i)))
(setq i (1+ i)))))
+;;;###autoload
(defun semanticdb-find-result-nth-in-buffer (result n)
"In RESULT, return the Nth search result.
Like `semanticdb-find-result-nth', except that only the TAG
;; It must be reversed.
(nreverse found)))
+;;;###autoload
(defun semanticdb-find-tags-by-name (name &optional path find-file-match)
"Search for all tags matching NAME on PATH.
See `semanticdb-find-translate-path' for details on PATH.
(semanticdb-find-tags-by-name-method table name tags))
path find-file-match))
+;;;###autoload
(defun semanticdb-find-tags-by-name-regexp (regexp &optional path find-file-match)
"Search for all tags matching REGEXP on PATH.
See `semanticdb-find-translate-path' for details on PATH.
(semanticdb-find-tags-by-name-regexp-method table regexp tags))
path find-file-match))
+;;;###autoload
(defun semanticdb-find-tags-for-completion (prefix &optional path find-file-match)
"Search for all tags matching PREFIX on PATH.
See `semanticdb-find-translate-path' for details on PATH.
(semanticdb-find-tags-for-completion-method table prefix tags))
path find-file-match))
+;;;###autoload
(defun semanticdb-find-tags-by-class (class &optional path find-file-match)
"Search for all tags of CLASS on PATH.
See `semanticdb-find-translate-path' for details on PATH.
path find-file-match))
;;; Brutish Search Routines
+;;
(defun semanticdb-brute-deep-find-tags-by-name (name &optional path find-file-match)
"Search for all tags matching NAME on PATH.
See `semanticdb-find-translate-path' for details on PATH.
(provide 'semantic/db-find)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/db-find.el ends here
;;; Code:
(require 'eieio)
-(require 'semantic/db)
-(require 'semantic/util)
+(require 'semantic)
+(require 'semantic/tag)
(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)
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))
;;
;; It is likely this feature will only be needed for C/C++.
+(require 'semantic)
(require 'semantic/db)
(require 'semantic/db-find)
-(require 'semantic/tag-ls)
+(require 'semantic/tag)
(require 'semantic/analyze/fcn)
-(require 'semantic/scope)
+
+;; For semantic-find-tags-by-* macros
+(eval-when-compile (require 'semantic/find))
+
+;; (require 'semantic/scope)
(declare-function data-debug-insert-thing "data-debug")
(declare-function data-debug-new-buffer "data-debug")
+(declare-function semantic-sort-tags-by-name-then-type-increasing "semantic/sort")
+(declare-function semantic-scope-tag-clone-with-scope "semantic/scope")
;;; Code:
;; Assume we always have datatypes, as this typecache isn't really
;; useful without a typed language.
+ (require 'semantic/sort)
(let ((S (semantic-sort-tags-by-name-then-type-increasing
;; I used to use append, but it copied cache1 but not cache2.
;; Since sort was permuting cache2, I already had to make sure
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Search Routines
-;;
+;;;###autoload
(define-overloadable-function semanticdb-typecache-find (type &optional path find-file-match)
"Search the typecache for TYPE in PATH.
If type is a string, split the string, and search for the parts.
(if (and lastans calculated-scope)
;; Put our discovered scope into the tag if we have a tag
- (semantic-scope-tag-clone-with-scope
- lastans (reverse (cdr calculated-scope)))
+ (progn
+ (require 'semantic/scope)
+ (semantic-scope-tag-clone-with-scope
+ lastans (reverse (cdr calculated-scope))))
;; Else, just return
lastans
))
-
(provide 'semantic/db-typecache)
+
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semanticdb-typecache.el ends here
This can be changed to try out new types of search indicies.")
(make-variable-buffer-local 'semanticdb-default-find=index-class)
+;;;###autoload
(defvar semanticdb-current-database nil
"For a given buffer, this is the currently active database.")
(make-variable-buffer-local 'semanticdb-current-database)
+;;;###autoload
(defvar semanticdb-current-table nil
"For a given buffer, this is the currently active database table.")
(make-variable-buffer-local 'semanticdb-current-table)
"For FILE, associate DBTABLE in the hash table."
(puthash file dbtable semanticdb-file-table-hash))
+;;;###autoload
(defun semanticdb-file-table-object (file &optional dontload)
"Return a semanticdb table belonging to FILE, make it up to date.
If file has database tags available in the database, return it.
(provide 'semantic/db)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/db.el ends here
;;
(require 'semantic)
-(require 'semantic/tag-file)
(require 'pulse)
;;; Code:
(defun semantic-set-tag-folded-isearch (overlay)
"Called by isearch if it discovers text in the folded region.
OVERLAY is passed in by isearch."
- (require 'semantic/find)
(semantic-set-tag-folded (semantic-current-tag) nil)
)
;; the symbol on the same line.
(require 'semantic/tag)
-(require 'semantic/tag-file)
-(require 'semantic/find)
;;; Code:
+;;;###autoload
(define-overloadable-function semantic-documentation-for-tag (&optional tag nosnarf)
"Find documentation from TAG and return it as a clean string.
TAG might have DOCUMENTATION set in it already. If not, there may be
(provide 'semantic/doc)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/doc.el ends here
;;
(require 'semantic)
-(require 'semantic/find)
-(require 'semantic/format)
;;; Code:
(defvar semantic-after-partial-cache-change-hook nil
;;
;; These routines provide fast access to tokens based on a buffer that
;; has parsed tokens in it. Uses overlays to perform the hard work.
+
+;;;###autoload
(defun semantic-find-tag-by-overlay (&optional positionormarker buffer)
"Find all tags covering POSITIONORMARKER by using overlays.
If POSITIONORMARKER is nil, use the current point.
(sort ret (lambda (a b) (< (semantic-tag-start a)
(semantic-tag-start b)))))))
+;;;###autoload
(defun semantic-find-tag-by-overlay-in-region (start end &optional buffer)
"Find all tags which exist in whole or in part between START and END.
Uses overlays to determine positin.
(sort ret (lambda (a b) (< (semantic-tag-start a)
(semantic-tag-start b)))))))
+;;;###autoload
(defun semantic-find-tag-by-overlay-next (&optional start buffer)
"Find the next tag after START in BUFFER.
If START is in an overlay, find the tag which starts next,
(when (and ol (semantic-tag-p (semantic-overlay-get ol 'semantic)))
(semantic-overlay-get ol 'semantic)))))
+;;;###autoload
(defun semantic-find-tag-by-overlay-prev (&optional start buffer)
"Find the next tag before START in BUFFER.
If START is in an overlay, find the tag which starts next,
(semantic-tag-p (semantic-overlay-get ol 'semantic)))
(semantic-overlay-get ol 'semantic)))))
+;;;###autoload
(defun semantic-find-tag-parent-by-overlay (tag)
"Find the parent of TAG by overlays.
Overlays are a fast way of finding this information for active buffers."
;; the same start unless they are siblings.
(car (cdr tag))))
+;;;###autoload
(defun semantic-current-tag ()
"Return the current tag in the current buffer.
If there are more than one in the same location, return the
(nreverse result)))
;;; Top level Searches
-;;
-(defsubst semantic-find-first-tag-by-name (name &optional table)
+
+;;;###autoload
+(defun semantic-find-first-tag-by-name (name &optional table)
"Find the first tag with NAME in TABLE.
NAME is a string.
TABLE is a semantic tags table. See `semantic-something-to-tag-table'.
"Find all tags in whose parent is TYPE in TABLE.
These tags are defined outside the scope of the original TYPE declaration.
TABLE is a tag table. See `semantic-something-to-tag-table'."
- (require 'semantic/sort)
(semantic--find-tags-by-macro
(equal (semantic-tag-external-member-parent (car tags))
type)
(car b-comp))
))
-
(provide 'semantic/find)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/find.el ends here
;;; Tag to text overload functions
;;
;; abbreviations, prototypes, and coloring support.
+;;;###autoload
(defvar semantic-format-tag-functions
'(semantic-format-tag-name
semantic-format-tag-canonical-name
(semantic-varalias-obsolete 'semantic-token->text-functions
'semantic-format-tag-functions)
+;;;###autoload
(defvar semantic-format-tag-custom-list
(append '(radio)
(mapcar (lambda (f) (list 'const f))
"Text used to separate names when between namespaces/classes and functions.")
(make-variable-buffer-local 'semantic-format-parent-separator)
+;;;###autoload
(define-overloadable-function semantic-format-tag-name (tag &optional parent color)
"Return the name string describing TAG.
The name is the shortest possible representation.
(provide 'semantic/format)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic/format.el ends here
;;
(require 'mode-local)
(require 'eieio)
+(require 'semantic/loaddefs)
;;; Compatibility
;;
-;;; html.el --- Semantic details for html files
+;;; semantic/html.el --- Semantic details for html files
;;; Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
(goto-char (car oldl))
(if (looking-at "<\\(\\w+\\)")
(let* ((word (match-string 1))
- (levelmatch (assoc-ignore-case
- word semantic-html-section-list))
+ (levelmatch (assoc-string
+ word semantic-html-section-list t))
text begin tmp
)
(when (not levelmatch)
(provide 'semantic/html)
-;;; semantic-html.el ends here
+;;; semantic/html.el ends here
(require 'semantic/analyze)
(require 'semantic/analyze/refs))
+(declare-function imenu--mouse-menu "imenu")
+
;;; Code:
;;; COMPLETION
location.")
(make-variable-buffer-local 'semantic-ia-cache)
+;;; COMPLETION HELPER
+;;
+;; This overload function handles inserting a tag
+;; into a buffer for these local completion routines.
+;;
+;; By creating the functions as overloadable, it can be
+;; customized. For example, the default will put a paren "("
+;; character after function names. For Lisp, it might check
+;; to put a "(" in front of a function name.
+
+(define-overloadable-function semantic-ia-insert-tag (tag)
+ "Insert TAG into the current buffer based on completion.")
+
+(defun semantic-ia-insert-tag-default (tag)
+ "Insert TAG into the current buffer based on completion."
+ (insert (semantic-tag-name tag))
+ (let ((tt (semantic-tag-class tag)))
+ (cond ((eq tt 'function)
+ (insert "("))
+ (t nil))))
+
+(declare-function semantic-analyze-possible-completions
+ "semantic/analyze/complete")
+
(defun semantic-ia-get-completions (context point)
"Fetch the completion of CONTEXT at POINT.
Supports caching."
"Complete the current symbol via a menu based at POINT.
Completion options are calculated with `semantic-analyze-possible-completions'."
(interactive "d")
+ (require 'imenu)
(let* ((a (semantic-analyze-current-context point))
(syms (semantic-ia-get-completions a point))
)
(semantic-ia-insert-tag ans))
))))
-;;; COMPLETION HELPER
-;;
-;; This overload function handles inserting a tag
-;; into a buffer for these local completion routines.
-;;
-;; By creating the functions as overloadable, it can be
-;; customized. For example, the default will put a paren "("
-;; character after function names. For Lisp, it might check
-;; to put a "(" in front of a function name.
-
-(define-overloadable-function semantic-ia-insert-tag (tag)
- "Insert TAG into the current buffer based on completion.")
-
-(defun semantic-ia-insert-tag-default (tag)
- "Insert TAG into the current buffer based on completion."
- (insert (semantic-tag-name tag))
- (let ((tt (semantic-tag-class tag)))
- (cond ((eq tt 'function)
- (insert "("))
- (t nil))))
-
;;; Completions Tip
;;
;; This functions shows how to get the list of completions,
(pulse-momentary-highlight-one-line (point))
)
+(declare-function semantic-decoration-include-visit "semantic/decorate/include")
+
(defun semantic-ia-fast-jump (point)
"Jump to the tag referred to by the code at POINT.
Uses `semantic-analyze-current-context' output to identify an accurate
((semantic-tag-of-class-p (semantic-current-tag) 'include)
;; Just borrow this cool fcn.
+ (require 'semantic/decorate/include)
(semantic-decoration-include-visit)
)
;; automatically caches the created context, so it is shared amongst
;; all idle modes that will need it.
-(require 'semantic/util-modes)
+(require 'semantic)
+(require 'semantic/ctxt)
+(require 'semantic/tag)
+;(require 'semantic/util-modes)
(require 'timer)
+;; For the semantic-find-tags-by-name macro.
+(eval-when-compile (require 'semantic/find))
+
+(declare-function semanticdb-typecache-refresh-for-buffer "semantic/db-typecache")
+(declare-function eldoc-message "eldoc")
+
;;; Code:
;;; TIMER RELATED FUNCTIONS
idle-scheduler is disabled when debugging or if the buffer size
exceeds the `semantic-idle-scheduler-max-buffer-size' threshold."
(and semantic-idle-scheduler-mode
- (not semantic-debug-enabled)
+ (not (and (boundp 'semantic-debug-enabled)
+ semantic-debug-enabled))
(not semantic-lex-debug)
(or (<= semantic-idle-scheduler-max-buffer-size 0)
(< (buffer-size) semantic-idle-scheduler-max-buffer-size))))
;;; SUMMARY MODE
;;
;; A mode similar to eldoc using semantic
-(require 'semantic/ctxt)
(defcustom semantic-idle-summary-function
'semantic-format-tag-summarize-with-file
;; of commands would be better off with a flattened list, where all
;; tags appear at the top level.
+;;;###autoload
(defun semantic-flatten-tags-table (&optional table)
"Flatten the tags table TABLE.
All tags in TABLE, and all components of top level tags
;;
;; In order to adopt external children, we need a few overload methods
;; to enable the feature.
-;;
+
+;;;###autoload
(define-overloadable-function semantic-tag-external-member-parent (tag)
"Return a parent for TAG when TAG is an external member.
TAG is an external member if it is defined at a toplevel and
(provide 'semantic/sort)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic-sort.el ends here
;;; Location a TAG came from.
;;
+;;;###autoload
(define-overloadable-function semantic-go-to-tag (tag &optional parent)
"Go to the location of TAG.
TAG may be a stripped element, in which case PARENT specifies a
;; Dependencies usually represent a file of some sort.
;; Find the file described by a dependency.
+;;;###autoload
(define-overloadable-function semantic-dependency-tag-file (&optional tag)
"Find the filename represented from TAG.
Depends on `semantic-dependency-include-path' for searching. Always searches
(provide 'semantic/tag-file)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic-tag-file.el ends here
(setq mods (cdr mods)))
static))
+;;;###autoload
(define-overloadable-function semantic-tag-prototype-p (tag)
"Return non nil if TAG is a prototype.
For some laguages, such as C, a prototype is a declaration of
(semantic-alias-obsolete 'semantic-tag-leaf 'semantic-tag-leaf-p)
(semantic-alias-obsolete 'semantic-tag-abstract 'semantic-tag-abstract-p)
-
(provide 'semantic/tag-ls)
+;; Local variables:
+;; generated-autoload-file: "loaddefs.el"
+;; generated-autoload-feature: semantic/loaddefs
+;; End:
+
;;; semantic-tag-ls.el ends here
(require 'semantic/fw)
(require 'semantic/lex)
-(declare-function semantic-current-tag "semantic/find")
-(declare-function semantic-find-first-tag-by-name "semantic/find")
(declare-function semantic-ctxt-current-mode "semantic/ctxt")
(declare-function semantic-analyze-split-name "semantic/analyze/fcn")
(declare-function semantic-fetch-tags "semantic")
"Find the superclass NAME in the list of SUPERS.
If a simple search doesn't do it, try splitting up the names
in SUPERS."
- (require 'semantic/find)
(let ((stag nil))
(setq stag (semantic-find-first-tag-by-name name supers))
-
(when (not stag)
(require 'semantic/analyze/fcn)
(dolist (S supers)
;;;###autoload
(put 'generated-autoload-file 'safe-local-variable 'stringp)
+(defvar generated-autoload-feature nil
+ "*Feature that `generated-autoload-file' should provide.
+If nil, this defaults to `generated-autoload-file', sans extension.")
+;;;###autoload
+(put 'generated-autoload-feature 'safe-local-variable 'symbolp)
+
;; This feels like it should be a defconst, but MH-E sets it to
;; ";;;###mh-autoload" for the autoloads that are to go into mh-loaddefs.el.
(defvar generate-autoload-cookie ";;;###autoload"
";;\n"
";;; Code:\n\n"
"\f\n"
- "(provide '" (file-name-sans-extension basename) ")\n"
+ "(provide '"
+ (if (symbolp generated-autoload-feature)
+ (format "%s" generated-autoload-feature)
+ (file-name-sans-extension basename))
+ ")\n"
";; Local Variables:\n"
";; version-control: never\n"
";; no-byte-compile: t\n"