diff options
| author | Chong Yidong | 2010-09-18 22:49:54 -0400 |
|---|---|---|
| committer | Chong Yidong | 2010-09-18 22:49:54 -0400 |
| commit | dd9af436d98d87c8c214a80e728c68cc02674ca0 (patch) | |
| tree | 99550b7a46867cc532df2333282cef2444455fe1 | |
| parent | 7ee54def434389f580b0a620d08501b635e3de44 (diff) | |
| download | emacs-dd9af436d98d87c8c214a80e728c68cc02674ca0.tar.gz emacs-dd9af436d98d87c8c214a80e728c68cc02674ca0.zip | |
Synch Semantic to CEDET 1.0.
Move CEDET ChangeLog entries to new file lisp/cedet/ChangeLog.
* semantic.el (semantic-version): Update to 2.0.
(semantic-mode-map): Add "," and "m" bindings.
(navigate-menu): Update.
* semantic/symref.el (semantic-symref-calculate-rootdir):
New function.
(semantic-symref-detect-symref-tool): Use it.
* semantic/symref/grep.el (semantic-symref-grep-shell): New var.
(semantic-symref-perform-search): Use it. Calculate root dir with
semantic-symref-calculate-rootdir.
(semantic-symref-derive-find-filepatterns): Improve error message.
* semantic/symref/list.el
(semantic-symref-results-mode-map): New bindings.
(semantic-symref-auto-expand-results): New option.
(semantic-symref-results-dump): Obey auto-expand.
(semantic-symref-list-expand-all, semantic-symref-regexp)
(semantic-symref-list-contract-all)
(semantic-symref-list-map-open-hits)
(semantic-symref-list-update-open-hits)
(semantic-symref-list-create-macro-on-open-hit)
(semantic-symref-list-call-macro-on-open-hits): New functions.
(semantic-symref-list-menu-entries)
(semantic-symref-list-menu): New vars.
(semantic-symref-list-map-open-hits): Move cursor to beginning of
match before calling the mapped function.
* semantic/doc.el
(semantic-documentation-comment-preceeding-tag): Do nothing if the
mode doesn't provide comment-start-skip.
* semantic/scope.el
(semantic-analyze-scope-nested-tags-default): Strip duplicates.
(semantic-analyze-scoped-inherited-tag-map): Take the tag we are
looking for as part of the scoped tags list.
* semantic/html.el (semantic-default-html-setup): Add
senator-step-at-tag-classes.
* semantic/decorate/include.el
(semantic-decoration-on-unknown-includes): Change light bgcolor.
(semantic-decoration-on-includes-highlight-default): Check that
the include tag has a postion.
* semantic/complete.el (semantic-collector-local-members):
(semantic-complete-read-tag-local-members)
(semantic-complete-jump-local-members): New class and functions.
(semantic-complete-self-insert): Save excursion before completing.
* semantic/analyze/complete.el
(semantic-analyze-possible-completions-default): If no completions
are found, return the raw by-name-only completion list. Add FLAGS
arguments. Add support for 'no-tc (type constraint) and
'no-unique, or no stripping duplicates.
(semantic-analyze-possible-completions-default): Add FLAGS arg.
* semantic/util-modes.el
(semantic-stickyfunc-show-only-functions-p): New option.
(semantic-stickyfunc-fetch-stickyline): Don't show stickytext for
the very first line in a buffer.
* semantic/util.el (semantic-hack-search)
(semantic-recursive-find-nonterminal-by-name)
(semantic-current-tag-interactive): Deleted.
(semantic-describe-buffer): Fix expand-nonterminal. Add
lex-syntax-mods, type relation separator char, and command
separation char.
(semantic-sanity-check): Only message if called interactively.
* semantic/tag.el (semantic-tag-deep-copy-one-tag): Copy the
:filename property and the tag position.
* semantic/lex-spp.el (semantic-lex-spp-lex-text-string):
Add recursion limit.
* semantic/imenu.el (semantic-imenu-bucketize-type-members):
Make this buffer local, not the obsoleted variable.
* semantic/idle.el: Add breadcrumbs support.
(semantic-idle-summary-current-symbol-info-default)
(semantic-idle-tag-highlight)
(semantic-idle-completion-list-default): Use
semanticdb-without-unloaded-file-searches for speed, and to
conform to the controls that specify if the idle timer is supposed
to be parsing unparsed includes.
(semantic-idle-symbol-highlight-face)
(semantic-idle-symbol-maybe-highlight): Rename from *-summary-*.
Callers changed.
(semantic-idle-work-parse-neighboring-files-flag): Default to nil.
(semantic-idle-work-update-headers-flag): New var.
(semantic-idle-work-for-one-buffer): Use it.
(semantic-idle-local-symbol-highlight): Rename from
semantic-idle-tag-highlight.
(semantic-idle-truncate-long-summaries): New option.
* semantic/ia.el (semantic-ia-cache)
(semantic-ia-get-completions): Deleted. Callers changed.
(semantic-ia-show-variants): New command.
(semantic-ia-show-doc): If doc is empty, don't make a temp buffer.
(semantic-ia-show-summary): If there isn't anything to show, say so.
* semantic/grammar.el (semantic-grammar-create-package):
Save the buffer even in batch mode.
* semantic/fw.el
(semanticdb-without-unloaded-file-searches): New macro.
* semantic/dep.el (semantic-dependency-find-file-on-path):
Fix case dereferencing ede-object when it is a list.
* semantic/db-typecache.el (semanticdb-expand-nested-tag)
(semanticdb-typecache-faux-namespace): New functions.
(semanticdb-typecache-file-tags)
(semanticdb-typecache-merge-streams): Use them.
(semanticdb-typecache-file-tags): When deriving tags from a file,
give the mode a chance to monkey with the tag copy.
(semanticdb-typecache-find-default): Wrap find in save-excursion.
(semanticdb-typecache-find-by-name-helper): Merge found names down.
* semantic/db-global.el
(semanticdb-enable-gnu-global-in-buffer): Don't show messages if
GNU Global is not available and we don't want to throw an error.
* semantic/db-find.el (semanticdb-find-result-nth-in-buffer):
When trying to normalize the tag to a buffer, don't error if
set-buffer method doesn't exist.
* semantic/db-file.el (semanticdb-save-db): Simplify msg.
* semantic/db.el (semanticdb-refresh-table): If forcing a
refresh on a file not in a buffer, use semantic-find-file-noselect
and delete the buffer after use.
(semanticdb-current-database-list): When calculating root via
hooks, force it through true-filename and skip the list of
possible roots.
* semantic/ctxt.el (semantic-ctxt-imported-packages): New.
* semantic/analyze/debug.el
(semantic-analyzer-debug-insert-tag): Reset standard output to
current buffer.
(semantic-analyzer-debug-global-symbol)
(semantic-analyzer-debug-missing-innertype): Change "prefix" to
"symbol" in messages.
* semantic/analyze/refs.el: (semantic-analyze-refs-impl)
(semantic-analyze-refs-proto): When calculating value, make sure
the found tag is 'similar' to the originating tag.
(semantic--analyze-refs-find-tags-with-parent): Attempt to
identify matches via imported symbols of parents.
(semantic--analyze-refs-full-lookup-with-parents): Do a deep
search during the brute search.
* semantic/analyze.el
(semantic-analyze-find-tag-sequence-default): Be robust to
calculated scopes being nil.
* semantic/bovine/c.el (semantic-c-describe-environment): Add
project macro symbol array.
(semantic-c-parse-lexical-token): Add recursion limit.
(semantic-ctxt-imported-packages, semanticdb-expand-nested-tag):
New overrides.
(semantic-expand-c-tag-namelist): Split a full type from a typedef
out to its own tag.
(semantic-expand-c-tag-namelist): Do not split out a typedef'd
inline type if it is an anonymous type.
(semantic-c-reconstitute-token): Use the optional initializers as
a clue that some function is probably a constructor. When
defining the type of these constructors, split the parent name,
and use only the class part, if applicable.
* semantic/bovine/c-by.el:
* semantic/wisent/python-wy.el: Regenerate.
36 files changed, 2526 insertions, 1427 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2e2f3b539b9..29f7f77fc0a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -559,10 +559,6 @@ | |||
| 559 | 559 | ||
| 560 | * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494). | 560 | * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494). |
| 561 | 561 | ||
| 562 | 2010-07-20 Juanma Barranquero <lekktu@gmail.com> | ||
| 563 | |||
| 564 | * cedet/semantic/db-file.el (object-write): Fix typo in docstring. | ||
| 565 | |||
| 566 | 2010-07-19 Juanma Barranquero <lekktu@gmail.com> | 562 | 2010-07-19 Juanma Barranquero <lekktu@gmail.com> |
| 567 | 563 | ||
| 568 | * time.el (display-time-day-and-date): Remove spurious * in docstring. | 564 | * time.el (display-time-day-and-date): Remove spurious * in docstring. |
| @@ -827,12 +823,6 @@ | |||
| 827 | * term/common-win.el (x-colors): Add "dark green" and "dark | 823 | * term/common-win.el (x-colors): Add "dark green" and "dark |
| 828 | turquoise" (Bug#6332). | 824 | turquoise" (Bug#6332). |
| 829 | 825 | ||
| 830 | 2010-06-03 Eric Ludlam <zappo@gnu.org> | ||
| 831 | |||
| 832 | * cedet/semantic/lex-spp.el | ||
| 833 | (semantic-lex-spp-table-write-slot-value): Instead of erroring on | ||
| 834 | invalid values during save, just save a nil (Bug#6324). | ||
| 835 | |||
| 836 | 2010-06-03 Glenn Morris <rgm@gnu.org> | 826 | 2010-06-03 Glenn Morris <rgm@gnu.org> |
| 837 | 827 | ||
| 838 | * desktop.el (desktop-clear-preserve-buffers): | 828 | * desktop.el (desktop-clear-preserve-buffers): |
| @@ -847,11 +837,6 @@ | |||
| 847 | * vc-bzr.el (vc-bzr-revision-completion-table): Apply | 837 | * vc-bzr.el (vc-bzr-revision-completion-table): Apply |
| 848 | `file-directory-p' to the filename part rather than to the whole text. | 838 | `file-directory-p' to the filename part rather than to the whole text. |
| 849 | 839 | ||
| 850 | 2010-05-31 Jonathan Marchand <jonathlela@gmail.com> (tiny change) | ||
| 851 | |||
| 852 | * cedet/ede/cpp-root.el (ede-set-project-variables): Fix feature name | ||
| 853 | (bug#6231). | ||
| 854 | |||
| 855 | 2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca> | 840 | 2010-05-31 Stefan Monnier <monnier@iro.umontreal.ca> |
| 856 | 841 | ||
| 857 | * man.el (Man-completion-table): Let the user type "-k " (bug#6319). | 842 | * man.el (Man-completion-table): Let the user type "-k " (bug#6319). |
| @@ -1006,11 +991,6 @@ | |||
| 1006 | 991 | ||
| 1007 | * minibuffer.el (completion-at-point): Doc fix. | 992 | * minibuffer.el (completion-at-point): Doc fix. |
| 1008 | 993 | ||
| 1009 | 2010-04-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 1010 | |||
| 1011 | * cedet/ede/pmake.el (ede-proj-makefile-insert-variables): | ||
| 1012 | Don't destroy list before using it. | ||
| 1013 | |||
| 1014 | 2010-04-17 Dan Nicolaescu <dann@ics.uci.edu> | 994 | 2010-04-17 Dan Nicolaescu <dann@ics.uci.edu> |
| 1015 | 995 | ||
| 1016 | Fix the version number for added files. | 996 | Fix the version number for added files. |
| @@ -1083,12 +1063,6 @@ | |||
| 1083 | * help.el (help-window-setup-finish): Doc fix (Bug#5830). | 1063 | * help.el (help-window-setup-finish): Doc fix (Bug#5830). |
| 1084 | Reported by monkey@sandpframing.com. | 1064 | Reported by monkey@sandpframing.com. |
| 1085 | 1065 | ||
| 1086 | 2010-04-02 Juanma Barranquero <lekktu@gmail.com> | ||
| 1087 | |||
| 1088 | * cedet/semantic/imenu.el (semantic-imenu-bucketize-type-members) | ||
| 1089 | (semantic-create-imenu-directory-index): Fix typos in docstrings. | ||
| 1090 | (semantic-imenu-goto-function): Reflow docstring. | ||
| 1091 | |||
| 1092 | 2010-03-30 Tomas Abrahamsson <tab@lysator.liu.se> | 1066 | 2010-03-30 Tomas Abrahamsson <tab@lysator.liu.se> |
| 1093 | 1067 | ||
| 1094 | * textmodes/artist.el (artist-mode): Fix typo in docstring. | 1068 | * textmodes/artist.el (artist-mode): Fix typo in docstring. |
| @@ -1166,8 +1140,6 @@ | |||
| 1166 | * faces.el (set-face-attribute): Fix typo in docstring. | 1140 | * faces.el (set-face-attribute): Fix typo in docstring. |
| 1167 | (face-valid-attribute-values): Reflow docstring. | 1141 | (face-valid-attribute-values): Reflow docstring. |
| 1168 | 1142 | ||
| 1169 | * cedet/srecode/table.el (srecode-template-table): Fix docstring typo. | ||
| 1170 | |||
| 1171 | 2010-03-23 Glenn Morris <rgm@gnu.org> | 1143 | 2010-03-23 Glenn Morris <rgm@gnu.org> |
| 1172 | 1144 | ||
| 1173 | * textmodes/flyspell.el (sgml-lexical-context): Autoload it (Bug#5752). | 1145 | * textmodes/flyspell.el (sgml-lexical-context): Autoload it (Bug#5752). |
| @@ -1235,11 +1207,6 @@ | |||
| 1235 | (tramp-open-connection-setup-interactive-shell): Remove workaround | 1207 | (tramp-open-connection-setup-interactive-shell): Remove workaround |
| 1236 | for OpenSolaris bug, it is not needed anymore. | 1208 | for OpenSolaris bug, it is not needed anymore. |
| 1237 | 1209 | ||
| 1238 | 2010-03-13 Eric M. Ludlam <zappo@gnu.org> | ||
| 1239 | |||
| 1240 | * cedet/semantic/imenu.el: New file, from the CEDET repository | ||
| 1241 | (Bug#5412). | ||
| 1242 | |||
| 1243 | 2010-03-12 Glenn Morris <rgm@gnu.org> | 1210 | 2010-03-12 Glenn Morris <rgm@gnu.org> |
| 1244 | 1211 | ||
| 1245 | * emacs-lisp/cl-macs.el (defsubst*): Add autoload cookie. (Bug#4427) | 1212 | * emacs-lisp/cl-macs.el (defsubst*): Add autoload cookie. (Bug#4427) |
| @@ -1288,11 +1255,6 @@ | |||
| 1288 | (vc-git-show-log-entry): Use prog1. | 1255 | (vc-git-show-log-entry): Use prog1. |
| 1289 | (vc-git-after-dir-status-stage): Remove unused var `remaining'. | 1256 | (vc-git-after-dir-status-stage): Remove unused var `remaining'. |
| 1290 | 1257 | ||
| 1291 | 2010-03-06 Glenn Morris <rgm@gnu.org> | ||
| 1292 | |||
| 1293 | * cedet/semantic/grammar.el (semantic-grammar-header-template): | ||
| 1294 | Update template copyright to GPLv3+. | ||
| 1295 | |||
| 1296 | 2010-03-05 Stefan Monnier <monnier@iro.umontreal.ca> | 1258 | 2010-03-05 Stefan Monnier <monnier@iro.umontreal.ca> |
| 1297 | 1259 | ||
| 1298 | * man.el (Man-files-regexp): Tighten up the regexp (bug#5686). | 1260 | * man.el (Man-files-regexp): Tighten up the regexp (bug#5686). |
| @@ -1359,9 +1321,6 @@ | |||
| 1359 | 1321 | ||
| 1360 | * textmodes/reftex-toc.el (reftex-toc-promote-prepare): | 1322 | * textmodes/reftex-toc.el (reftex-toc-promote-prepare): |
| 1361 | * emacs-lisp/elint.el (elint-add-required-env): | 1323 | * emacs-lisp/elint.el (elint-add-required-env): |
| 1362 | * cedet/semantic/db-find.el | ||
| 1363 | (semanticdb-find-translate-path-brutish-default): | ||
| 1364 | * cedet/ede/make.el (ede-make-check-version): | ||
| 1365 | * calendar/icalendar.el (icalendar--add-diary-entry): | 1324 | * calendar/icalendar.el (icalendar--add-diary-entry): |
| 1366 | * calc/calcalg2.el (math-tracing-integral): | 1325 | * calc/calcalg2.el (math-tracing-integral): |
| 1367 | * files.el (recover-session-finish): Use with-current-buffer | 1326 | * files.el (recover-session-finish): Use with-current-buffer |
| @@ -1526,12 +1485,6 @@ | |||
| 1526 | 1485 | ||
| 1527 | * doc-view.el (doc-view): Add to data custom group. | 1486 | * doc-view.el (doc-view): Add to data custom group. |
| 1528 | 1487 | ||
| 1529 | * cedet/data-debug.el (data-debug): Move to extensions group. | ||
| 1530 | |||
| 1531 | * cedet/ede.el (ede): | ||
| 1532 | * cedet/srecode.el (srecode): | ||
| 1533 | * cedet/semantic.el (semantic): Put in tools and extensions group. | ||
| 1534 | |||
| 1535 | * nxml/nxml-mode.el (nxml-faces): Remove from font-lock-faces group. | 1488 | * nxml/nxml-mode.el (nxml-faces): Remove from font-lock-faces group. |
| 1536 | 1489 | ||
| 1537 | * textmodes/flyspell.el (flyspell-word): Obey the offset specified | 1490 | * textmodes/flyspell.el (flyspell-word): Obey the offset specified |
| @@ -1568,10 +1521,6 @@ | |||
| 1568 | 1521 | ||
| 1569 | * outline.el (outline-head-from-level): | 1522 | * outline.el (outline-head-from-level): |
| 1570 | * simple.el (with-wrapper-hook): | 1523 | * simple.el (with-wrapper-hook): |
| 1571 | * cedet/ede.el (ede-run-target, project-delete-target) | ||
| 1572 | (project-dist-files, ede-name, ede-documentation, ede-parent-project) | ||
| 1573 | (ede-adebug-project, ede-adebug-project-parent) | ||
| 1574 | (ede-adebug-project-root): | ||
| 1575 | * emacs-lisp/elint.el (elint-extra-errors, elint-current-buffer) | 1524 | * emacs-lisp/elint.el (elint-extra-errors, elint-current-buffer) |
| 1576 | (elint-defun, elint-buffer-env, elint-top-form-logged) | 1525 | (elint-defun, elint-buffer-env, elint-top-form-logged) |
| 1577 | (elint-unbound-variable): | 1526 | (elint-unbound-variable): |
| @@ -2020,70 +1969,10 @@ | |||
| 2020 | 1969 | ||
| 2021 | 2010-01-18 Juanma Barranquero <lekktu@gmail.com> | 1970 | 2010-01-18 Juanma Barranquero <lekktu@gmail.com> |
| 2022 | 1971 | ||
| 2023 | * cedet/ede/locate.el (ede-locate-file-in-project) | ||
| 2024 | (ede-locate-file-in-project-impl): Fix typos in docstrings. | ||
| 2025 | (ede-enable-locate-on-project): Fix typos in error messages. | ||
| 2026 | |||
| 2027 | * cedet/semantic/util-modes.el (semantic-unmatched-syntax-face) | ||
| 2028 | (semantic-stickyfunc-old-hlf, semantic-stickyfunc-header-line-format) | ||
| 2029 | (semantic-stickyfunc-sticky-classes, semantic-highlight-func-mode-setup) | ||
| 2030 | (semantic-stickyfunc-fetch-stickyline): Fix typos in docstrings. | ||
| 2031 | (semantic-stickyfunc-popup-menu, semantic-highlight-func-popup-menu): | ||
| 2032 | Fix typos in menu help. | ||
| 2033 | |||
| 2034 | * emacs-lisp/chart.el (chart-file-count, chart-rmail-from): | 1972 | * emacs-lisp/chart.el (chart-file-count, chart-rmail-from): |
| 2035 | Fix typos in chart titles. | 1973 | Fix typos in chart titles. |
| 2036 | 1974 | ||
| 2037 | * whitespace.el (whitespace-style, global-whitespace-newline-mode): | 1975 | * whitespace.el (whitespace-style, global-whitespace-newline-mode): |
| 2038 | * cedet/semantic.el (semantic-require-version, semantic--buffer-cache) | ||
| 2039 | (semantic-unmatched-syntax-cache-check, semantic-unmatched-syntax-hook) | ||
| 2040 | (semantic--before-fetch-tags-hook, semantic-new-buffer-fcn-was-run) | ||
| 2041 | (semantic--umatched-syntax-needs-refresh-p, semantic-elapsed-time) | ||
| 2042 | (semantic-parse-stream, semantic-parse-region) | ||
| 2043 | (semantic-parse-region-default, semantic--set-buffer-cache) | ||
| 2044 | (semantic-minimum-working-buffer-size, semantic-refresh-tags-safe) | ||
| 2045 | (semantic-bovinate-toplevel, semantic-load-system-cache-loaded) | ||
| 2046 | (semantic-default-submodes): | ||
| 2047 | * cedet/semantic/db-ebrowse.el (semanticdb-table-ebrowse) | ||
| 2048 | (semanticdb-create-ebrowse-database) | ||
| 2049 | (semanticdb-find-tags-for-completion-method) | ||
| 2050 | (semanticdb-find-tags-by-class-method) | ||
| 2051 | (semanticdb-deep-find-tags-by-name-method) | ||
| 2052 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 2053 | * cedet/semantic/db-el.el (semanticdb-elisp-mapatom-collector) | ||
| 2054 | (semanticdb-find-tags-by-name-method, emacs-lisp-mode) | ||
| 2055 | (semanticdb-find-tags-for-completion-method) | ||
| 2056 | (semanticdb-find-tags-by-class-method) | ||
| 2057 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 2058 | * cedet/semantic/db-find.el (semanticdb-find-translate-path) | ||
| 2059 | (semanticdb-find-need-cache-update-p, semanticdb-find-result-with-nil-p) | ||
| 2060 | (semanticdb-find-scanned-include-tags, semanticdb-find-tags-collector) | ||
| 2061 | (semanticdb-find-tags-by-name-method) | ||
| 2062 | (semanticdb-find-tags-by-name-regexp-method) | ||
| 2063 | (semanticdb-find-tags-for-completion-method) | ||
| 2064 | (semanticdb-find-tags-by-class-method) | ||
| 2065 | (semanticdb-find-tags-external-children-of-type-method) | ||
| 2066 | (semanticdb-find-tags-subclasses-of-type-method) | ||
| 2067 | (semanticdb-deep-find-tags-by-name-method) | ||
| 2068 | (semanticdb-deep-find-tags-by-name-regexp-method) | ||
| 2069 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 2070 | * cedet/semantic/db-global.el (semanticdb-enable-gnu-global-hook) | ||
| 2071 | (semanticdb-enable-gnu-global-in-buffer) | ||
| 2072 | (semanticdb-find-tags-for-completion-method) | ||
| 2073 | (semanticdb-deep-find-tags-by-name-method) | ||
| 2074 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 2075 | * cedet/semantic/db-javascript.el (semanticdb-javascript-tags) | ||
| 2076 | (javascript-mode, semanticdb-find-translate-path) | ||
| 2077 | (semanticdb-find-tags-for-completion-method) | ||
| 2078 | (semanticdb-find-tags-by-class-method) | ||
| 2079 | (semanticdb-deep-find-tags-by-name-method) | ||
| 2080 | (semanticdb-deep-find-tags-for-completion-method) | ||
| 2081 | (semanticdb-find-tags-external-children-of-type-method): | ||
| 2082 | * cedet/semantic/idle.el (semantic-idle-work-core-handler) | ||
| 2083 | (define-semantic-idle-service, semantic-idle-summary-useful-context-p) | ||
| 2084 | (global-semantic-idle-scheduler-mode): | ||
| 2085 | * cedet/srecode/dictionary.el (srecode-field-value) | ||
| 2086 | (srecode-dictionary-add-section-dictionary): | ||
| 2087 | * emacs-lisp/eieio.el (eieio-error-unsupported-class-tags) | 1976 | * emacs-lisp/eieio.el (eieio-error-unsupported-class-tags) |
| 2088 | (eieio-generic-form, eieio-help-mode-augmentation-maybee, eieio-browse) | 1977 | (eieio-generic-form, eieio-help-mode-augmentation-maybee, eieio-browse) |
| 2089 | (describe-class, eieio-describe-generic, describe-generic): | 1978 | (describe-class, eieio-describe-generic, describe-generic): |
| @@ -2135,13 +2024,8 @@ | |||
| 2135 | 2024 | ||
| 2136 | * calc/calc.el (calc-command-flags): Give it an initial value. | 2025 | * calc/calc.el (calc-command-flags): Give it an initial value. |
| 2137 | 2026 | ||
| 2138 | 2010-01-17 Glenn Morris <rgm@gnu.org> | ||
| 2139 | |||
| 2140 | * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer): Doc fix. | ||
| 2141 | |||
| 2142 | 2010-01-17 Juanma Barranquero <lekktu@gmail.com> | 2027 | 2010-01-17 Juanma Barranquero <lekktu@gmail.com> |
| 2143 | 2028 | ||
| 2144 | * cedet/semantic.el (semantic-mode): | ||
| 2145 | * files.el (minibuffer-with-setup-hook): | 2029 | * files.el (minibuffer-with-setup-hook): |
| 2146 | * textmodes/artist.el (artist-mt, artist-key-undraw-continously) | 2030 | * textmodes/artist.el (artist-mt, artist-key-undraw-continously) |
| 2147 | (artist-key-draw-continously, artist-key-do-continously-continously) | 2031 | (artist-key-draw-continously, artist-key-do-continously-continously) |
| @@ -2173,17 +2057,6 @@ | |||
| 2173 | 2057 | ||
| 2174 | 2010-01-16 Mario Lang <mlang@delysid.org> | 2058 | 2010-01-16 Mario Lang <mlang@delysid.org> |
| 2175 | 2059 | ||
| 2176 | * cedet/ede/cpp-root.el (ede-cpp-root-project): | ||
| 2177 | * cedet/ede/files.el (ede-expand-filename): | ||
| 2178 | * cedet/ede/simple.el (ede-simple-project): | ||
| 2179 | * cedet/semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 2180 | (semantic-complete-inline-tag-engine): | ||
| 2181 | * cedet/semantic/db-el.el (semanticdb-equivalent-mode): | ||
| 2182 | * cedet/semantic/db-global.el (semanticdb-equivalent-mode): | ||
| 2183 | * cedet/semantic/db-javascript.el (semanticdb-equivalent-mode): | ||
| 2184 | * cedet/semantic/db.el (semanticdb-equivalent-mode): | ||
| 2185 | * cedet/semantic/decorate/include.el (semantic-decoration-unknown-include-describe): | ||
| 2186 | * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer): | ||
| 2187 | * emacs-lisp/chart.el (chart-translate-namezone): | 2060 | * emacs-lisp/chart.el (chart-translate-namezone): |
| 2188 | * textmodes/artist.el (artist-compute-popup-menu-table): | 2061 | * textmodes/artist.el (artist-compute-popup-menu-table): |
| 2189 | Remove duplicated words in doc-strings. | 2062 | Remove duplicated words in doc-strings. |
| @@ -2212,13 +2085,6 @@ | |||
| 2212 | * find-cmd.el (find-constituents): | 2085 | * find-cmd.el (find-constituents): |
| 2213 | * vc-arch.el (vc-arch-root): | 2086 | * vc-arch.el (vc-arch-root): |
| 2214 | * window.el (window-body-height, pop-up-frames): | 2087 | * window.el (window-body-height, pop-up-frames): |
| 2215 | * cedet/semantic/edit.el (semantic-reparse-needed-change-hook) | ||
| 2216 | (semantic-no-reparse-needed-change-hook): | ||
| 2217 | * cedet/srecode/insert.el (srecode-resolve-argument-list) | ||
| 2218 | (srecode-template-inserter-blank, srecode-template-inserter-variable) | ||
| 2219 | (srecode-template-inserter-ask, srecode-template-inserter-width) | ||
| 2220 | (srecode-template-inserter-section-start) | ||
| 2221 | (srecode-template-inserter-section-end, srecode-insert-method): | ||
| 2222 | * emacs-lisp/eieio-base.el (eieio-singleton, slot-missing): | 2088 | * emacs-lisp/eieio-base.el (eieio-singleton, slot-missing): |
| 2223 | * progmodes/ada-stmt.el (ada-if): | 2089 | * progmodes/ada-stmt.el (ada-if): |
| 2224 | * progmodes/gdb-ui.el (gdb-jsonify-buffer): | 2090 | * progmodes/gdb-ui.el (gdb-jsonify-buffer): |
| @@ -2289,36 +2155,6 @@ | |||
| 2289 | * mail/emacsbug.el (report-emacs-bug-pretest-address): Set | 2155 | * mail/emacsbug.el (report-emacs-bug-pretest-address): Set |
| 2290 | it to bug-gnu-emacs rather than emacs-pretest-bug. | 2156 | it to bug-gnu-emacs rather than emacs-pretest-bug. |
| 2291 | 2157 | ||
| 2292 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | ||
| 2293 | |||
| 2294 | * cedet/data-debug.el (data-debug): Fix customization group reference. | ||
| 2295 | |||
| 2296 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | ||
| 2297 | |||
| 2298 | * cedet/semantic/analyze.el (semantic-analyze-push-error) | ||
| 2299 | (semantic-analyze-context, semantic-analyze-context-assignment) | ||
| 2300 | (semantic-analyze-find-tag-sequence, semantic-analyze-find-tag): | ||
| 2301 | * cedet/semantic/java.el (java-mode, semantic-tag-include-filename) | ||
| 2302 | (semantic-java-doc-keywords-map): | ||
| 2303 | * cedet/semantic/bovine/c.el (c-mode, semantic-c-member-of-autocast) | ||
| 2304 | (semantic-lex-c-nested-namespace-ignore-second, semantic-parse-region) | ||
| 2305 | (semantic-c-parse-lexical-token, semantic-c-debug-mode-init-pch) | ||
| 2306 | (semantic-c-classname, semantic-format-tag-uml-prototype) | ||
| 2307 | (semantic-c-dereference-namespace, semantic-analyze-type-constants): | ||
| 2308 | * cedet/semantic/bovine/el.el (semantic-elisp-form-to-doc-string) | ||
| 2309 | (semantic-emacs-lisp-obsoleted-doc, semantic-up-context) | ||
| 2310 | (semantic-get-local-variables, semantic-end-of-command) | ||
| 2311 | (semantic-beginning-of-command, semantic-ctxt-current-class-list) | ||
| 2312 | (lisp-mode): | ||
| 2313 | * cedet/semantic/bovine/make.el (makefile-mode): | ||
| 2314 | * cedet/semantic/wisent/python.el (wisent-python-string-re) | ||
| 2315 | (wisent-python-implicit-line-joining-p, wisent-python-forward-string) | ||
| 2316 | (wisent-python-lex-beginning-of-line, wisent-python-lex-end-of-line) | ||
| 2317 | (semantic-lex, semantic-get-local-variables, python-mode): | ||
| 2318 | * cedet/semantic/wisent/python-wy.el (wisent-python-wy--keyword-table): | ||
| 2319 | * cedet/srecode/extract.el (srecode-extract-state-set) | ||
| 2320 | (srecode-extract-method): Fix typos in docstrings. | ||
| 2321 | |||
| 2322 | 2010-01-11 Sam Steingold <sds@gnu.org> | 2158 | 2010-01-11 Sam Steingold <sds@gnu.org> |
| 2323 | 2159 | ||
| 2324 | * imenu.el (imenu-default-create-index-function): Detect infinite | 2160 | * imenu.el (imenu-default-create-index-function): Detect infinite |
| @@ -2377,17 +2213,9 @@ | |||
| 2377 | 2213 | ||
| 2378 | 2010-01-10 Chong Yidong <cyd@stupidchicken.com> | 2214 | 2010-01-10 Chong Yidong <cyd@stupidchicken.com> |
| 2379 | 2215 | ||
| 2380 | * cedet/semantic.el (semantic-new-buffer-setup-functions): | ||
| 2381 | Add python parser. | ||
| 2382 | |||
| 2383 | * Makefile.in (ELCFILES): Add wisent/python-wy.el and | 2216 | * Makefile.in (ELCFILES): Add wisent/python-wy.el and |
| 2384 | wisent/python.el. | 2217 | wisent/python.el. |
| 2385 | 2218 | ||
| 2386 | 2010-01-10 Richard Kim <emacs18@gmail.com> | ||
| 2387 | |||
| 2388 | * cedet/semantic/wisent/python-wy.el: | ||
| 2389 | * cedet/semantic/wisent/python.el: New files. | ||
| 2390 | |||
| 2391 | 2010-01-09 Chong Yidong <cyd@stupidchicken.com> | 2219 | 2010-01-09 Chong Yidong <cyd@stupidchicken.com> |
| 2392 | 2220 | ||
| 2393 | * man.el (Man-goto-section): Signal error if the section is not | 2221 | * man.el (Man-goto-section): Signal error if the section is not |
| @@ -2571,9 +2399,6 @@ | |||
| 2571 | 2399 | ||
| 2572 | * mpc.el (mpc-playlist-delete): Fix typo in error messages. | 2400 | * mpc.el (mpc-playlist-delete): Fix typo in error messages. |
| 2573 | 2401 | ||
| 2574 | * cedet/semantic/db-typecache.el (semanticdb-typecache-find-default): | ||
| 2575 | Fix typo in docstring. | ||
| 2576 | |||
| 2577 | * net/imap-hash.el (imap-hash-make): Doc fix. | 2402 | * net/imap-hash.el (imap-hash-make): Doc fix. |
| 2578 | (imap-hash-test): Fix typo in error message; reflow docstring. | 2403 | (imap-hash-test): Fix typo in error message; reflow docstring. |
| 2579 | (imap-hash-p, imap-hash-get, imap-hash-put, imap-hash-make-message) | 2404 | (imap-hash-p, imap-hash-get, imap-hash-put, imap-hash-make-message) |
| @@ -2802,14 +2627,6 @@ | |||
| 2802 | `Info-display-images-node', and not put the `invisible' property | 2627 | `Info-display-images-node', and not put the `invisible' property |
| 2803 | in this case. | 2628 | in this case. |
| 2804 | 2629 | ||
| 2805 | 2009-12-14 Chong Yidong <cyd@stupidchicken.com> | ||
| 2806 | |||
| 2807 | * cedet/semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode) | ||
| 2808 | (semantic-mru-bookmark-mode): Doc fixes. | ||
| 2809 | |||
| 2810 | * cedet/semantic/db.el (semanticdb-cache-get): Use error instead | ||
| 2811 | of assert. | ||
| 2812 | |||
| 2813 | 2009-12-13 Glenn Morris <rgm@gnu.org> | 2630 | 2009-12-13 Glenn Morris <rgm@gnu.org> |
| 2814 | 2631 | ||
| 2815 | * mail/emacsbug.el (message-sort-headers): Define for compiler. | 2632 | * mail/emacsbug.el (message-sort-headers): Define for compiler. |
| @@ -3227,9 +3044,6 @@ | |||
| 3227 | * bindings.el (complete-symbol): Call semantic-ia-complete-symbol | 3044 | * bindings.el (complete-symbol): Call semantic-ia-complete-symbol |
| 3228 | if possible. | 3045 | if possible. |
| 3229 | 3046 | ||
| 3230 | * cedet/semantic/ia.el (semantic-ia-complete-symbol): | ||
| 3231 | Make argument optional. | ||
| 3232 | |||
| 3233 | * shell.el (shell): Require ansi-color (Bug#5113). | 3047 | * shell.el (shell): Require ansi-color (Bug#5113). |
| 3234 | 3048 | ||
| 3235 | * ansi-color.el (ansi-color-for-comint-mode): Default to t. | 3049 | * ansi-color.el (ansi-color-for-comint-mode): Default to t. |
| @@ -3257,24 +3071,6 @@ | |||
| 3257 | (Info-mode-menu): Add `Info-virtual-index' to the menu. | 3071 | (Info-mode-menu): Add `Info-virtual-index' to the menu. |
| 3258 | (Info-mode): Add `Info-virtual-index' to the docstring. | 3072 | (Info-mode): Add `Info-virtual-index' to the docstring. |
| 3259 | 3073 | ||
| 3260 | 2009-12-05 Eric Ludlam <zappo@gnu.org> | ||
| 3261 | |||
| 3262 | * cedet/semantic/bovine/c.el (semantic-c-describe-environment): | ||
| 3263 | Describe project macro symbols. | ||
| 3264 | |||
| 3265 | * cedet/semantic/complete.el (semantic-complete-do-completion): | ||
| 3266 | Don't call semantic-collector-current-exact-match. | ||
| 3267 | |||
| 3268 | * cedet/ede.el (ede-apply-preprocessor-map): Accept lists of | ||
| 3269 | ede-objects as targets. | ||
| 3270 | |||
| 3271 | * cedet/ede/pmake.el (ede-proj-makefile-insert-variables): Output | ||
| 3272 | a target's object list even if compiler vars are already in the | ||
| 3273 | Makefile. | ||
| 3274 | |||
| 3275 | * cedet/ede/emacs.el (ede-preprocessor-map): Add config.h to the | ||
| 3276 | list of headers producing necessary macros. | ||
| 3277 | |||
| 3278 | 2009-12-05 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | 3074 | 2009-12-05 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> |
| 3279 | 3075 | ||
| 3280 | * textmodes/bibtex.el (bibtex-map-entries): Use marker to keep | 3076 | * textmodes/bibtex.el (bibtex-map-entries): Use marker to keep |
| @@ -4157,9 +3953,6 @@ | |||
| 4157 | * bookmark.el (bookmark-bmenu-hide-filenames): Remove assignment to | 3953 | * bookmark.el (bookmark-bmenu-hide-filenames): Remove assignment to |
| 4158 | deleted variable bookmark-bmenu-bookmark-column. | 3954 | deleted variable bookmark-bmenu-bookmark-column. |
| 4159 | 3955 | ||
| 4160 | * cedet/semantic/idle.el (global-semantic-idle-scheduler-mode): | ||
| 4161 | Move after definition of global-semantic-idle-tag-highlight-mode. | ||
| 4162 | |||
| 4163 | 2009-11-24 Stefan Monnier <monnier@iro.umontreal.ca> | 3956 | 2009-11-24 Stefan Monnier <monnier@iro.umontreal.ca> |
| 4164 | 3957 | ||
| 4165 | * bookmark.el (bookmark-bmenu-search): Clear echo area when exiting. | 3958 | * bookmark.el (bookmark-bmenu-search): Clear echo area when exiting. |
| @@ -4224,56 +4017,6 @@ | |||
| 4224 | * dired-x.el (dired-guess-shell-alist-default): | 4017 | * dired-x.el (dired-guess-shell-alist-default): |
| 4225 | Support xz format. (Bug#4953) | 4018 | Support xz format. (Bug#4953) |
| 4226 | 4019 | ||
| 4227 | 2009-11-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 4228 | |||
| 4229 | * cedet/srecode/map.el (srecode-get-maps): | ||
| 4230 | * cedet/semantic/wisent/wisent.el (wisent-parse-toggle-verbose-flag): | ||
| 4231 | * cedet/semantic/wisent/comp.el (wisent-toggle-verbose-flag): | ||
| 4232 | * cedet/semantic/decorate/mode.el (semantic-decoration-mode) | ||
| 4233 | (semantic-toggle-decoration-style): | ||
| 4234 | * cedet/semantic/decorate/include.el | ||
| 4235 | (semantic-decoration-include-describe) | ||
| 4236 | (semantic-decoration-unknown-include-describe) | ||
| 4237 | (semantic-decoration-unparsed-include-describe) | ||
| 4238 | (semantic-decoration-all-include-summary): | ||
| 4239 | * cedet/semantic/bovine/c.el (semantic-c-debug-mode-init): | ||
| 4240 | * cedet/semantic/analyze/complete.el | ||
| 4241 | (semantic-analyze-possible-completions): | ||
| 4242 | * cedet/semantic/util-modes.el (semantic-highlight-edits-mode) | ||
| 4243 | (semantic-show-unmatched-syntax-mode) | ||
| 4244 | (semantic-show-parser-state-mode, semantic-stickyfunc-mode) | ||
| 4245 | (semantic-highlight-func-mode): | ||
| 4246 | * cedet/semantic/util.el (semantic-describe-buffer): | ||
| 4247 | * cedet/semantic/symref.el (semantic-symref-find-references-by-name) | ||
| 4248 | (semantic-symref-find-tags-by-name) | ||
| 4249 | (semantic-symref-find-tags-by-regexp) | ||
| 4250 | (semantic-symref-find-tags-by-completion) | ||
| 4251 | (semantic-symref-find-file-references-by-name) | ||
| 4252 | (semantic-symref-find-text): | ||
| 4253 | * cedet/semantic/senator.el (senator-copy-tag, senator-kill-tag) | ||
| 4254 | (senator-yank-tag): | ||
| 4255 | * cedet/semantic/scope.el (semantic-calculate-scope): | ||
| 4256 | * cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode): | ||
| 4257 | * cedet/semantic/idle.el (semantic-idle-scheduler-mode) | ||
| 4258 | (define-semantic-idle-service): | ||
| 4259 | * cedet/semantic/complete.el (semantic-complete-analyze-inline) | ||
| 4260 | (semantic-complete-analyze-inline-idle): | ||
| 4261 | * cedet/semantic/analyze.el (semantic-analyze-current-context): | ||
| 4262 | * cedet/mode-local.el (describe-mode-local-bindings) | ||
| 4263 | (describe-mode-local-bindings-in-mode): | ||
| 4264 | * cedet/ede/make.el (ede-make-check-version): | ||
| 4265 | * cedet/ede/locate.el (ede-enable-locate-on-project): | ||
| 4266 | * cedet/cedet-idutils.el (cedet-idutils-expand-filename) | ||
| 4267 | (cedet-idutils-version-check): | ||
| 4268 | * cedet/cedet-global.el (cedet-gnu-global-expand-filename) | ||
| 4269 | (cedet-gnu-global-version-check): | ||
| 4270 | * cedet/cedet-cscope.el (cedet-cscope-expand-filename) | ||
| 4271 | (cedet-cscope-version-check): Use called-interactively-p instead | ||
| 4272 | of interactive-p. | ||
| 4273 | |||
| 4274 | * cedet/semantic/ia.el (semantic-ia-completion-format-tag-function): | ||
| 4275 | Use semantic-format-tag-prototype. | ||
| 4276 | |||
| 4277 | 2009-11-22 Michael Kifer <kifer@cs.stonybrook.edu> | 4020 | 2009-11-22 Michael Kifer <kifer@cs.stonybrook.edu> |
| 4278 | 4021 | ||
| 4279 | * emulation/viper-cmd.el: Use viper-last-command-char instead of | 4022 | * emulation/viper-cmd.el: Use viper-last-command-char instead of |
| @@ -4300,12 +4043,6 @@ | |||
| 4300 | * progmodes/subword.el (subword-mode-map): Fix subword-mode-map | 4043 | * progmodes/subword.el (subword-mode-map): Fix subword-mode-map |
| 4301 | generation from word-movement command names. | 4044 | generation from word-movement command names. |
| 4302 | 4045 | ||
| 4303 | 2009-11-21 Chong Yidong <cyd@stupidchicken.com> | ||
| 4304 | |||
| 4305 | * cedet/semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 4306 | (semantic-complete-jump-local, semantic-complete-jump): | ||
| 4307 | Improve prompt string. | ||
| 4308 | |||
| 4309 | 2009-11-21 Jan Djärv <jan.h.d@swipnet.se> | 4046 | 2009-11-21 Jan Djärv <jan.h.d@swipnet.se> |
| 4310 | 4047 | ||
| 4311 | * cus-start.el (all): Add native condition for font-use-system-font. | 4048 | * cus-start.el (all): Add native condition for font-use-system-font. |
| @@ -4392,13 +4129,6 @@ | |||
| 4392 | (bookmark-bmenu-search): New command. | 4129 | (bookmark-bmenu-search): New command. |
| 4393 | (bookmark-bmenu-mode-map): Bind it. | 4130 | (bookmark-bmenu-mode-map): Bind it. |
| 4394 | 4131 | ||
| 4395 | 2009-11-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 4396 | |||
| 4397 | * cedet/semantic/complete.el (semantic-complete-inline-map): Doc fix. | ||
| 4398 | |||
| 4399 | * cedet/semantic/idle.el (define-semantic-idle-service) | ||
| 4400 | (semantic-idle-summary-mode, semantic-idle-completions): Doc fix. | ||
| 4401 | |||
| 4402 | 2009-11-20 Tassilo Horn <tassilo@member.fsf.org> | 4132 | 2009-11-20 Tassilo Horn <tassilo@member.fsf.org> |
| 4403 | 4133 | ||
| 4404 | * progmodes/cc-cmds.el: declare-functioned forward-subword and | 4134 | * progmodes/cc-cmds.el: declare-functioned forward-subword and |
| @@ -4445,17 +4175,6 @@ | |||
| 4445 | 4175 | ||
| 4446 | * Makefile.in (ELCFILES): Regenerate. | 4176 | * Makefile.in (ELCFILES): Regenerate. |
| 4447 | 4177 | ||
| 4448 | 2009-11-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 4449 | |||
| 4450 | * cedet/cedet.el (cedet-menu-map): Re-order menu items. | ||
| 4451 | |||
| 4452 | * cedet/semantic.el: Enable idle-mode menu items only if | ||
| 4453 | global-semantic-idle-scheduler-mode is enabled. | ||
| 4454 | (semantic-default-submodes): Doc fix. | ||
| 4455 | |||
| 4456 | * cedet/semantic/idle.el (global-semantic-idle-scheduler-mode): | ||
| 4457 | When turning off, disable other idle modes. | ||
| 4458 | |||
| 4459 | 2009-11-20 Jay Belanger <jay.p.belanger@gmail.com> | 4178 | 2009-11-20 Jay Belanger <jay.p.belanger@gmail.com> |
| 4460 | 4179 | ||
| 4461 | * calc/calc.el (calc-set-mode-line): | 4180 | * calc/calc.el (calc-set-mode-line): |
| @@ -4762,13 +4481,6 @@ | |||
| 4762 | * strokes.el (strokes-update-window-configuration): Make strokes | 4481 | * strokes.el (strokes-update-window-configuration): Make strokes |
| 4763 | buffer current before erasing (Bug#4906). | 4482 | buffer current before erasing (Bug#4906). |
| 4764 | 4483 | ||
| 4765 | * cedet/semantic/idle.el (semantic-idle-summary-mode) | ||
| 4766 | (semantic-idle-summary-mode): Define using define-minor-mode | ||
| 4767 | instead of define-semantic-idle-service. | ||
| 4768 | (semantic-idle-summary-mode): New function. | ||
| 4769 | (semantic-idle-summary-mode-setup): Use pre-command-hook to ensure | ||
| 4770 | that mouse motion does not reset the echo area. | ||
| 4771 | |||
| 4772 | 2009-11-15 Juri Linkov <juri@jurta.org> | 4484 | 2009-11-15 Juri Linkov <juri@jurta.org> |
| 4773 | 4485 | ||
| 4774 | * simple.el (set-mark-default-inactive): Add :type, :group | 4486 | * simple.el (set-mark-default-inactive): Add :type, :group |
| @@ -5137,9 +4849,6 @@ | |||
| 5137 | 4849 | ||
| 5138 | 2009-11-08 Chong Yidong <cyd@stupidchicken.com> | 4850 | 2009-11-08 Chong Yidong <cyd@stupidchicken.com> |
| 5139 | 4851 | ||
| 5140 | * cedet/semantic/ctxt.el (semantic-get-local-variables): Disable | ||
| 5141 | the progress reporter entirely. | ||
| 5142 | |||
| 5143 | * emulation/cua-base.el: Add CUA property to some CC mode commands | 4852 | * emulation/cua-base.el: Add CUA property to some CC mode commands |
| 5144 | (Bug#4100). | 4853 | (Bug#4100). |
| 5145 | 4854 | ||
| @@ -5422,79 +5131,6 @@ | |||
| 5422 | 5131 | ||
| 5423 | * emacs-lisp/autoload.el (generated-autoload-feature): Remove. | 5132 | * emacs-lisp/autoload.el (generated-autoload-feature): Remove. |
| 5424 | (autoload-rubric): Don't use any more. | 5133 | (autoload-rubric): Don't use any more. |
| 5425 | * cedet/semantic/fw.el (semantic/loaddefs): | ||
| 5426 | * cedet/srecode.el (srecode/loaddefs): | ||
| 5427 | * cedet/ede.el (ede/loaddefs): Load rather than require. | ||
| 5428 | * cedet/ede/cpp-root.el: | ||
| 5429 | * cedet/ede/emacs.el: | ||
| 5430 | * cedet/ede/files.el: | ||
| 5431 | * cedet/ede/linux.el: | ||
| 5432 | * cedet/ede/locate.el: | ||
| 5433 | * cedet/ede/make.el: | ||
| 5434 | * cedet/ede/shell.el: | ||
| 5435 | * cedet/ede/speedbar.el: | ||
| 5436 | * cedet/ede/system.el: | ||
| 5437 | * cedet/ede/util.el: | ||
| 5438 | * cedet/semantic/analyze.el: | ||
| 5439 | * cedet/semantic/bovine.el: | ||
| 5440 | * cedet/semantic/complete.el: | ||
| 5441 | * cedet/semantic/ctxt.el: | ||
| 5442 | * cedet/semantic/db-file.el: | ||
| 5443 | * cedet/semantic/db-find.el: | ||
| 5444 | * cedet/semantic/db-global.el: | ||
| 5445 | * cedet/semantic/db-mode.el: | ||
| 5446 | * cedet/semantic/db-typecache.el: | ||
| 5447 | * cedet/semantic/db.el: | ||
| 5448 | * cedet/semantic/debug.el: | ||
| 5449 | * cedet/semantic/dep.el: | ||
| 5450 | * cedet/semantic/doc.el: | ||
| 5451 | * cedet/semantic/edit.el: | ||
| 5452 | * cedet/semantic/find.el: | ||
| 5453 | * cedet/semantic/format.el: | ||
| 5454 | * cedet/semantic/html.el: | ||
| 5455 | * cedet/semantic/ia-sb.el: | ||
| 5456 | * cedet/semantic/ia.el: | ||
| 5457 | * cedet/semantic/idle.el: | ||
| 5458 | * cedet/semantic/lex-spp.el: | ||
| 5459 | * cedet/semantic/lex.el: | ||
| 5460 | * cedet/semantic/mru-bookmark.el: | ||
| 5461 | * cedet/semantic/scope.el: | ||
| 5462 | * cedet/semantic/senator.el: | ||
| 5463 | * cedet/semantic/sort.el: | ||
| 5464 | * cedet/semantic/symref.el: | ||
| 5465 | * cedet/semantic/tag-file.el: | ||
| 5466 | * cedet/semantic/tag-ls.el: | ||
| 5467 | * cedet/semantic/tag-write.el: | ||
| 5468 | * cedet/semantic/tag.el: | ||
| 5469 | * cedet/semantic/util-modes.el: | ||
| 5470 | * cedet/semantic/analyze/complete.el: | ||
| 5471 | * cedet/semantic/analyze/refs.el: | ||
| 5472 | * cedet/semantic/bovine/c.el: | ||
| 5473 | * cedet/semantic/bovine/gcc.el: | ||
| 5474 | * cedet/semantic/bovine/make.el: | ||
| 5475 | * cedet/semantic/bovine/scm.el: | ||
| 5476 | * cedet/semantic/decorate/include.el: | ||
| 5477 | * cedet/semantic/decorate/mode.el: | ||
| 5478 | * cedet/semantic/symref/cscope.el: | ||
| 5479 | * cedet/semantic/symref/global.el: | ||
| 5480 | * cedet/semantic/symref/grep.el: | ||
| 5481 | * cedet/semantic/symref/idutils.el: | ||
| 5482 | * cedet/semantic/symref/list.el: | ||
| 5483 | * cedet/semantic/wisent/java-tags.el: | ||
| 5484 | * cedet/semantic/wisent/javascript.el: | ||
| 5485 | * cedet/srecode/compile.el: | ||
| 5486 | * cedet/srecode/cpp.el: | ||
| 5487 | * cedet/srecode/document.el: | ||
| 5488 | * cedet/srecode/el.el: | ||
| 5489 | * cedet/srecode/expandproto.el: | ||
| 5490 | * cedet/srecode/getset.el: | ||
| 5491 | * cedet/srecode/insert.el: | ||
| 5492 | * cedet/srecode/java.el: | ||
| 5493 | * cedet/srecode/map.el: | ||
| 5494 | * cedet/srecode/mode.el: | ||
| 5495 | * cedet/srecode/template.el: | ||
| 5496 | * cedet/srecode/texi.el: Remove the file-local setting of | ||
| 5497 | generated-autoload-feature. | ||
| 5498 | 5134 | ||
| 5499 | * emacs-lisp/byte-run.el (define-obsolete-variable-alias): Use dolist, | 5135 | * emacs-lisp/byte-run.el (define-obsolete-variable-alias): Use dolist, |
| 5500 | and only put a prop if it is non-nil. | 5136 | and only put a prop if it is non-nil. |
| @@ -5511,8 +5147,6 @@ | |||
| 5511 | 5147 | ||
| 5512 | 2009-11-03 Glenn Morris <rgm@gnu.org> | 5148 | 2009-11-03 Glenn Morris <rgm@gnu.org> |
| 5513 | 5149 | ||
| 5514 | * cedet/mode-local.el (with-mode-local): Doc fix. | ||
| 5515 | |||
| 5516 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar) | 5150 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar) |
| 5517 | (byte-compile-file-form-define-abbrev-table) | 5151 | (byte-compile-file-form-define-abbrev-table) |
| 5518 | (byte-compile-file-form-custom-declare-variable) | 5152 | (byte-compile-file-form-custom-declare-variable) |
| @@ -5634,12 +5268,6 @@ | |||
| 5634 | * menu-bar.el (menu-bar-tools-menu): Add Semantic and EDE menu | 5268 | * menu-bar.el (menu-bar-tools-menu): Add Semantic and EDE menu |
| 5635 | items. | 5269 | items. |
| 5636 | 5270 | ||
| 5637 | * cedet/cedet.el (cedet-menu-map): Remove Semantic and EDE menu | ||
| 5638 | items. | ||
| 5639 | |||
| 5640 | * cedet/ede.el (ede-minor-mode): | ||
| 5641 | * cedet/semantic.el (semantic-mode): Toggle menu separators. | ||
| 5642 | |||
| 5643 | 2009-10-31 Stefan Monnier <monnier@iro.umontreal.ca> | 5271 | 2009-10-31 Stefan Monnier <monnier@iro.umontreal.ca> |
| 5644 | 5272 | ||
| 5645 | * textmodes/two-column.el (2C-split): | 5273 | * textmodes/two-column.el (2C-split): |
| @@ -5793,89 +5421,12 @@ | |||
| 5793 | (byte-compile-variable-ref, byte-compile-setq-default): | 5421 | (byte-compile-variable-ref, byte-compile-setq-default): |
| 5794 | Respect `constants' member of byte-compile-warnings. | 5422 | Respect `constants' member of byte-compile-warnings. |
| 5795 | 5423 | ||
| 5796 | * cedet/semantic/tag.el (semantic--tag-link-list-to-buffer): | ||
| 5797 | Use mapc rather than mapcar because the return value is never used. | ||
| 5798 | |||
| 5799 | * cedet/srecode/template.el, cedet/semantic/wisent/javascript.el: | ||
| 5800 | * cedet/semantic/wisent/java-tags.el, cedet/semantic/texi.el: | ||
| 5801 | * cedet/semantic/html.el: | ||
| 5802 | Suppress harmless warnings about setting up semantic-imenu (not | ||
| 5803 | part of Emacs) variables. | ||
| 5804 | |||
| 5805 | 2009-10-30 Stefan Monnier <monnier@iro.umontreal.ca> | 5424 | 2009-10-30 Stefan Monnier <monnier@iro.umontreal.ca> |
| 5806 | 5425 | ||
| 5807 | * vc-bzr.el (vc-bzr-revision-keywords): New var. | 5426 | * vc-bzr.el (vc-bzr-revision-keywords): New var. |
| 5808 | (vc-bzr-revision-completion-table): Use it to fix completion of "s:" | 5427 | (vc-bzr-revision-completion-table): Use it to fix completion of "s:" |
| 5809 | to "submit:". | 5428 | to "submit:". |
| 5810 | 5429 | ||
| 5811 | * cedet/srecode/srt-mode.el (semantic-analyze-possible-completions): | ||
| 5812 | * cedet/semantic/symref/list.el (semantic-symref-rb-toggle-expand-tag): | ||
| 5813 | * cedet/semantic/symref/grep.el (semantic-symref-perform-search): | ||
| 5814 | * cedet/semantic/bovine/gcc.el (semantic-gcc-query): | ||
| 5815 | * cedet/semantic/bovine/c.el (semantic-c-parse-lexical-token): | ||
| 5816 | * cedet/semantic/analyze/debug.el (semantic-analyzer-debug-add-buttons) | ||
| 5817 | (semantic-analyzer-debug-global-symbol) | ||
| 5818 | (semantic-analyzer-debug-missing-innertype) | ||
| 5819 | (semantic-analyzer-debug-insert-include-summary): | ||
| 5820 | * cedet/semantic/util.el (semantic-file-tag-table): | ||
| 5821 | (semantic-describe-buffer-var-helper, semantic-something-to-tag-table) | ||
| 5822 | (semantic-recursive-find-nonterminal-by-name): | ||
| 5823 | * cedet/semantic/tag-ls.el (semantic-tag-calculate-parent-default): | ||
| 5824 | * cedet/semantic/tag-file.el (semantic-prototype-file): | ||
| 5825 | * cedet/semantic/symref.el (semantic-symref-parse-tool-output): | ||
| 5826 | * cedet/semantic/sb.el (semantic-sb-fetch-tag-table): | ||
| 5827 | * cedet/semantic/lex-spp.el (semantic-lex-spp-lex-text-string): | ||
| 5828 | * cedet/semantic/idle.el (semantic-idle-work-for-one-buffer): | ||
| 5829 | (semantic-idle-summary-maybe-highlight): | ||
| 5830 | * cedet/semantic/ia-sb.el (semantic-ia-speedbar) | ||
| 5831 | (semantic-ia-sb-tag-info): | ||
| 5832 | * cedet/semantic/grammar.el (semantic-analyze-possible-completions): | ||
| 5833 | * cedet/semantic/find.el (semantic-brute-find-tag-by-position): | ||
| 5834 | * cedet/semantic/ede-grammar.el (project-compile-target): | ||
| 5835 | (ede-proj-makefile-insert-variables): | ||
| 5836 | * cedet/semantic/debug.el (semantic-debug-set-parser-location): | ||
| 5837 | (semantic-debug-set-source-location, semantic-debug-interface-layout) | ||
| 5838 | (semantic-debug-mode, semantic-debug): | ||
| 5839 | * cedet/semantic/db.el (semanticdb-needs-refresh-p): | ||
| 5840 | * cedet/semantic/db-typecache.el (semanticdb-typecache-refresh-for-buffer): | ||
| 5841 | * cedet/semantic/db-javascript.el (semanticdb-equivalent-mode): | ||
| 5842 | * cedet/semantic/db-find.el (semanticdb-find-log-new-search) | ||
| 5843 | (semanticdb-find-translate-path-includes--internal) | ||
| 5844 | (semanticdb-reset-log, semanticdb-find-log-activity): | ||
| 5845 | * cedet/semantic/db-file.el (object-write): | ||
| 5846 | * cedet/semantic/db-el.el (semanticdb-equivalent-mode): | ||
| 5847 | * cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-C-file-p) | ||
| 5848 | (semanticdb-create-ebrowse-database): | ||
| 5849 | * cedet/semantic/db-debug.el (semanticdb-table-sanity-check): | ||
| 5850 | * cedet/semantic/complete.el (semantic-displayor-focus-request) | ||
| 5851 | (semantic-collector-calculate-completions-raw) | ||
| 5852 | (semantic-complete-read-tag-analyzer): | ||
| 5853 | * cedet/semantic/analyze.el (semantic-analyze-pulse): | ||
| 5854 | * cedet/ede/util.el (ede-update-version-in-source): | ||
| 5855 | * cedet/ede/proj.el (project-delete-target): | ||
| 5856 | * cedet/ede/proj-elisp.el (ede-update-version-in-source) | ||
| 5857 | (ede-proj-flush-autoconf): | ||
| 5858 | * cedet/ede/pconf.el (ede-proj-configure-synchronize) | ||
| 5859 | (ede-proj-configure-synchronize): | ||
| 5860 | * cedet/ede/locate.el (ede-locate-file-in-project-impl): | ||
| 5861 | * cedet/ede/linux.el (ede-linux-version): | ||
| 5862 | * cedet/ede/emacs.el (ede-emacs-version): | ||
| 5863 | * cedet/ede/dired.el (ede-dired-add-to-target): | ||
| 5864 | * cedet/ede.el (ede-buffer-header-file, ede-find-target) | ||
| 5865 | (ede-buffer-documentation-files, ede-project-buffers, ede-set) | ||
| 5866 | (ede-target-buffers, ede-buffers, ede-make-project-local-variable): | ||
| 5867 | * cedet/cedet-idutils.el (cedet-idutils-fnid-call): | ||
| 5868 | (cedet-idutils-lid-call, cedet-idutils-expand-filename) | ||
| 5869 | (cedet-idutils-version-check): | ||
| 5870 | * cedet/cedet-global.el (cedet-gnu-global-call): | ||
| 5871 | (cedet-gnu-global-expand-filename, cedet-gnu-global-root) | ||
| 5872 | (cedet-gnu-global-version-check, cedet-gnu-global-scan-hits): | ||
| 5873 | * cedet/cedet-cscope.el (cedet-cscope-call) | ||
| 5874 | (cedet-cscope-expand-filename, cedet-cscope-version-check): | ||
| 5875 | Use with-current-buffer. | ||
| 5876 | * cedet/ede.el (ede-make-project-local-variable) | ||
| 5877 | (ede-set-project-variables, ede-set): Use dolist. | ||
| 5878 | |||
| 5879 | 2009-10-30 Dan Nicolaescu <dann@ics.uci.edu> | 5430 | 2009-10-30 Dan Nicolaescu <dann@ics.uci.edu> |
| 5880 | 5431 | ||
| 5881 | * textmodes/ispell.el (ispell-skip-region-alist): | 5432 | * textmodes/ispell.el (ispell-skip-region-alist): |
| @@ -5919,16 +5470,6 @@ | |||
| 5919 | (calc-embedded-finish-command, calc-embedded-stack-change): | 5470 | (calc-embedded-finish-command, calc-embedded-stack-change): |
| 5920 | * calc/calc-aent.el (calcAlg-enter): Use with-current-buffer. | 5471 | * calc/calc-aent.el (calcAlg-enter): Use with-current-buffer. |
| 5921 | 5472 | ||
| 5922 | * cedet/mode-local.el (make-obsolete-overload): Add `when' argument. | ||
| 5923 | (overload-docstring-extension): Use that info. | ||
| 5924 | * cedet/semantic/fw.el (semantic-alias-obsolete): Pass the `when' info. | ||
| 5925 | * cedet/semantic/idle.el (semantic-eldoc-current-symbol-info): | ||
| 5926 | * cedet/semantic/tag-ls.el (semantic-nonterminal-protection) | ||
| 5927 | (semantic-nonterminal-abstract, semantic-nonterminal-leaf) | ||
| 5928 | (semantic-nonterminal-full-name): Add the new `when' info. | ||
| 5929 | * cedet/semantic/decorate/mode.el (semantic/decorate): Require CL for | ||
| 5930 | `assert'. | ||
| 5931 | |||
| 5932 | * pcomplete.el (pcomplete-comint-setup): If there's a choice, replace | 5473 | * pcomplete.el (pcomplete-comint-setup): If there's a choice, replace |
| 5933 | shell-dynamic-complete-filename in preference to | 5474 | shell-dynamic-complete-filename in preference to |
| 5934 | comint-dynamic-complete-filename. | 5475 | comint-dynamic-complete-filename. |
| @@ -6069,36 +5610,6 @@ | |||
| 6069 | * bookmark.el (bookmark-bmenu-list): Don't use switch-to-buffer if | 5610 | * bookmark.el (bookmark-bmenu-list): Don't use switch-to-buffer if |
| 6070 | we're inside a dedicated or minibuffer window. | 5611 | we're inside a dedicated or minibuffer window. |
| 6071 | 5612 | ||
| 6072 | 2009-10-25 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 6073 | |||
| 6074 | * cedet/semantic/fw.el (semantic-alias-obsolete) | ||
| 6075 | (semantic-varalias-obsolete): Make the `when' arg mandatory. | ||
| 6076 | (define-mode-overload-implementation): | ||
| 6077 | * cedet/semantic/decorate/mode.el (semantic-decorate-pending-decoration-hooks): | ||
| 6078 | * cedet/semantic/wisent.el (wisent-lex-make-token-table): | ||
| 6079 | * cedet/semantic/util.el (semantic-file-token-stream) | ||
| 6080 | (semantic-something-to-stream): | ||
| 6081 | * cedet/semantic/tag.el (semantic-tag-make-assoc-list) | ||
| 6082 | (semantic-expand-nonterminal): | ||
| 6083 | * cedet/semantic/tag-file.el (semantic-find-nonterminal) | ||
| 6084 | (semantic-find-dependency, semantic-find-nonterminal) | ||
| 6085 | (semantic-find-dependency): | ||
| 6086 | * cedet/semantic/lex.el (semantic-flex-start, semantic-flex-end) | ||
| 6087 | (semantic-flex-text, semantic-flex-make-keyword-table) | ||
| 6088 | (semantic-flex-keyword-p, semantic-flex-keyword-put) | ||
| 6089 | (semantic-flex-keyword-get, semantic-flex-map-keywords) | ||
| 6090 | (semantic-flex-keywords, semantic-flex-buffer, semantic-flex-list): | ||
| 6091 | * cedet/semantic/java.el (semantic-java-prototype-nonterminal): | ||
| 6092 | * cedet/semantic/idle.el (semantic-before-idle-scheduler-reparse-hooks) | ||
| 6093 | (semantic-after-idle-scheduler-reparse-hooks): | ||
| 6094 | * cedet/semantic/edit.el (semantic-edits-incremental-reparse-failed-hooks): | ||
| 6095 | * cedet/semantic/db-mode.el (semanticdb-mode-hooks): | ||
| 6096 | * cedet/semantic.el (semantic-toplevel-bovine-table) | ||
| 6097 | (semantic-toplevel-bovine-cache) | ||
| 6098 | (semantic-before-toplevel-bovination-hook, semantic-init-hooks) | ||
| 6099 | (semantic-init-mode-hooks, semantic-init-db-hooks) | ||
| 6100 | (semantic-bovination-working-type): Provide the `when' arg. | ||
| 6101 | |||
| 6102 | 2009-10-24 Karl Fogel <kfogel@red-bean.com> | 5613 | 2009-10-24 Karl Fogel <kfogel@red-bean.com> |
| 6103 | 5614 | ||
| 6104 | * bookmark.el: Update documentation, especially documentation | 5615 | * bookmark.el: Update documentation, especially documentation |
| @@ -6127,15 +5638,6 @@ | |||
| 6127 | * files.el (delete-directory): Delete symlinks to directories with | 5638 | * files.el (delete-directory): Delete symlinks to directories with |
| 6128 | delete-file (Bug#4739). | 5639 | delete-file (Bug#4739). |
| 6129 | 5640 | ||
| 6130 | 2009-10-24 Chong Yidong <cyd@stupidchicken.com> | ||
| 6131 | |||
| 6132 | * cedet/semantic/util.el (semantic-recursive-find-nonterminal-by-name): | ||
| 6133 | * cedet/semantic/tag.el (semantic-token-type-parent): Add WHEN | ||
| 6134 | argument to make-obsolete. | ||
| 6135 | |||
| 6136 | * cedet/semantic/fw.el (semantic-alias-obsolete) | ||
| 6137 | (semantic-varalias-obsolete): Add optional WHEN argument. | ||
| 6138 | |||
| 6139 | 2009-10-24 Dan Nicolaescu <dann@ics.uci.edu> | 5641 | 2009-10-24 Dan Nicolaescu <dann@ics.uci.edu> |
| 6140 | 5642 | ||
| 6141 | * vc.el (vc-backend-for-registration): Rename from | 5643 | * vc.el (vc-backend-for-registration): Rename from |
| @@ -6337,16 +5839,6 @@ | |||
| 6337 | 5839 | ||
| 6338 | * help-fns.el: Don't require help-mode (to avoid bootstrap issues). | 5840 | * help-fns.el: Don't require help-mode (to avoid bootstrap issues). |
| 6339 | 5841 | ||
| 6340 | 2009-10-21 Eric Ludlam <zappo@gnu.org> | ||
| 6341 | |||
| 6342 | * cedet/semantic/bovine/c.el (semantic-c-debug-mode-init) | ||
| 6343 | (semantic-c-debug-mode-init-pch): New functions. | ||
| 6344 | (semantic-c-debug-mode-init-last-mode): New var. | ||
| 6345 | (semantic-c-parse-lexical-token): Use them. | ||
| 6346 | |||
| 6347 | * cedet/semantic/lex-spp.el (semantic-lex-spp-anlyzer-do-replace): | ||
| 6348 | When extracting the argument list, limit only by point-max. | ||
| 6349 | |||
| 6350 | 2009-10-21 Michael Albinus <michael.albinus@gmx.de> | 5842 | 2009-10-21 Michael Albinus <michael.albinus@gmx.de> |
| 6351 | 5843 | ||
| 6352 | * net/tramp-smb.el (tramp-smb-get-stat-capability): New defun. | 5844 | * net/tramp-smb.el (tramp-smb-get-stat-capability): New defun. |
| @@ -6461,81 +5953,6 @@ | |||
| 6461 | (tar-header-block-tokenize): Decode the username and groupname. | 5953 | (tar-header-block-tokenize): Decode the username and groupname. |
| 6462 | (tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730). | 5954 | (tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730). |
| 6463 | 5955 | ||
| 6464 | 2009-10-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 6465 | |||
| 6466 | * cedet/srecode/srt.el: | ||
| 6467 | * cedet/srecode/compile.el: | ||
| 6468 | * cedet/semantic/mru-bookmark.el: | ||
| 6469 | * cedet/semantic/debug.el: | ||
| 6470 | * cedet/semantic/complete.el: | ||
| 6471 | * cedet/semantic/analyze.el: Require CL when compiling. | ||
| 6472 | |||
| 6473 | 2009-10-17 Eric Ludlam <zappo@gnu.org> | ||
| 6474 | |||
| 6475 | * cedet/semantic/scope.el | ||
| 6476 | (semantic-analyze-scoped-inherited-tag-map): Wrap calculation of | ||
| 6477 | tmpscope so that the regular scope will continue to work. | ||
| 6478 | |||
| 6479 | * cedet/semantic/idle.el (semantic-idle-tag-highlight): | ||
| 6480 | Use semantic-idle-summary-highlight-face as the highlighting. | ||
| 6481 | |||
| 6482 | * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer | ||
| 6483 | contains multibyte characters, choose first applicable coding | ||
| 6484 | system automatically. | ||
| 6485 | |||
| 6486 | * cedet/ede/project-am.el (project-run-target): New method. | ||
| 6487 | (project-run-target): New method. | ||
| 6488 | |||
| 6489 | * cedet/ede.el (ede-target): Add run target menu item. | ||
| 6490 | (ede-project, ede-minor-keymap): Add ede-run-target binding. | ||
| 6491 | (ede-run-target): New function. | ||
| 6492 | (ede-target::project-run-target): New method. | ||
| 6493 | |||
| 6494 | * cedet/ede/proj.el (project-run-target): New method. | ||
| 6495 | |||
| 6496 | * cedet/ede/proj-shared.el (ede-gcc-libtool-shared-compiler) | ||
| 6497 | (ede-g++-libtool-shared-compiler): Remove SHELL. Remove COMMANDS. | ||
| 6498 | Add :rules. | ||
| 6499 | (ede-proj-target-makefile-shared-object): Only libtool compilers | ||
| 6500 | now available. Add linkers for libtool. | ||
| 6501 | (ede-cc-linker-libtool, ede-g++-linker-libtool): New. | ||
| 6502 | (ede-proj-makefile-target-name): Always use .la extension. | ||
| 6503 | |||
| 6504 | * cedet/ede/proj-prog.el (project-run-target): New method. | ||
| 6505 | |||
| 6506 | * cedet/ede/proj-obj.el (ede-cc-linker): Rename from ede-gcc-linker. | ||
| 6507 | (ede-g++-linker): Change Change link lines. | ||
| 6508 | |||
| 6509 | * cedet/ede/pmake.el (ede-pmake-insert-variable-shared): | ||
| 6510 | When searching for old variables, go to the end of the buffer and | ||
| 6511 | search backward from there. | ||
| 6512 | (ede-proj-makefile-automake-insert-subdirs) | ||
| 6513 | (ede-proj-makefile-automake-insert-extradist): New methods. | ||
| 6514 | (ede-proj-makefile-create): Use them. | ||
| 6515 | |||
| 6516 | * cedet/ede/pconf.el (ede-proj-configure-test-required-file): | ||
| 6517 | Force FILE to expand to the current target. Use file-exists-p to | ||
| 6518 | check that it exists. | ||
| 6519 | |||
| 6520 | * cedet/ede/linux.el (ede-linux-version): Don't call "head". | ||
| 6521 | (ede-linux-load): Wrap dir in file-name-as-directory. | ||
| 6522 | Set :version slot. | ||
| 6523 | |||
| 6524 | * cedet/ede/files.el (ede-get-locator-object): When enabling | ||
| 6525 | locate, do so on "top". | ||
| 6526 | |||
| 6527 | * cedet/ede/emacs.el (ede-emacs-file-existing): Wrap "dir" in | ||
| 6528 | file-name-as-directory during compare. | ||
| 6529 | (ede-emacs-version): Return Emacs/XEmacs differentiator. | ||
| 6530 | Get version number from different places. Don't call egrep. | ||
| 6531 | (ede-emacs-load): Set :version slot. Call file-name-as-directory | ||
| 6532 | to set the directory. | ||
| 6533 | |||
| 6534 | * cedet/ede/shell.el: New file. | ||
| 6535 | |||
| 6536 | * cedet/inversion.el (inversion-decoders): Allow for stray . in | ||
| 6537 | alpha/beta variants. | ||
| 6538 | |||
| 6539 | 2009-10-17 Stefan Monnier <monnier@iro.umontreal.ca> | 5956 | 2009-10-17 Stefan Monnier <monnier@iro.umontreal.ca> |
| 6540 | 5957 | ||
| 6541 | * international/mule-cmds.el (select-safe-coding-system): If the file | 5958 | * international/mule-cmds.el (select-safe-coding-system): If the file |
| @@ -6543,9 +5960,6 @@ | |||
| 6543 | 5960 | ||
| 6544 | 2009-10-17 Glenn Morris <rgm@gnu.org> | 5961 | 2009-10-17 Glenn Morris <rgm@gnu.org> |
| 6545 | 5962 | ||
| 6546 | * cedet/semantic/grammar.el (semantic-grammar--lex-delim-spec): | ||
| 6547 | All errors should have messages. | ||
| 6548 | |||
| 6549 | * foldout.el (foldout-mouse-swallow-events): | 5963 | * foldout.el (foldout-mouse-swallow-events): |
| 6550 | * gs.el (gs-load-image): Replace obsolete forms of sit-for, sleep-for. | 5964 | * gs.el (gs-load-image): Replace obsolete forms of sit-for, sleep-for. |
| 6551 | 5965 | ||
| @@ -6844,16 +6258,6 @@ | |||
| 6844 | * calendar/calendar.el (calendar-split-width-threshold): New option. | 6258 | * calendar/calendar.el (calendar-split-width-threshold): New option. |
| 6845 | (calendar-basic-setup): Use calendar-split-width-threshold. | 6259 | (calendar-basic-setup): Use calendar-split-width-threshold. |
| 6846 | 6260 | ||
| 6847 | 2009-10-10 Sascha Wilde <wilde@sha-bang.de> | ||
| 6848 | |||
| 6849 | * cedet/ede/proj-shared.el (ede-proj-makefile-target-name): | ||
| 6850 | Use .la for Automake. | ||
| 6851 | |||
| 6852 | 2009-10-09 Chong Yidong <cyd@stupidchicken.com> | ||
| 6853 | |||
| 6854 | * cedet/ede/pconf.el (ede-proj-configure-synchronize): | ||
| 6855 | Use "autoreconf -i". Suggested by Andreas Schwab. | ||
| 6856 | |||
| 6857 | 2009-10-09 Juanma Barranquero <lekktu@gmail.com> | 6261 | 2009-10-09 Juanma Barranquero <lekktu@gmail.com> |
| 6858 | 6262 | ||
| 6859 | * international/mule-cmds.el (ucs-names): Exclude new "Enclosed | 6263 | * international/mule-cmds.el (ucs-names): Exclude new "Enclosed |
| @@ -6882,13 +6286,6 @@ | |||
| 6882 | (bookmark-jump-other-window): Just invoke bookmark-jump with new | 6286 | (bookmark-jump-other-window): Just invoke bookmark-jump with new |
| 6883 | argument now, so the two function's behaviors will match. (Bug#3645) | 6287 | argument now, so the two function's behaviors will match. (Bug#3645) |
| 6884 | 6288 | ||
| 6885 | 2009-10-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 6886 | |||
| 6887 | * cedet/ede/proj.el (project-make-dist, project-compile-project): | ||
| 6888 | Fix filename test. | ||
| 6889 | (ede-proj-dist-makefile): Use expand-file-name instead of concat | ||
| 6890 | to expand file names. | ||
| 6891 | |||
| 6892 | 2009-10-08 Michael Albinus <michael.albinus@gmx.de> | 6289 | 2009-10-08 Michael Albinus <michael.albinus@gmx.de> |
| 6893 | 6290 | ||
| 6894 | * net/tramp.el (tramp-file-name-real-user, tramp-file-name-domain) | 6291 | * net/tramp.el (tramp-file-name-real-user, tramp-file-name-domain) |
| @@ -6900,15 +6297,6 @@ | |||
| 6900 | (tramp-smb-handle-expand-file-name): Implement "~" expansion. | 6297 | (tramp-smb-handle-expand-file-name): Implement "~" expansion. |
| 6901 | (tramp-smb-maybe-open-connection): Flush the cache only if necessary. | 6298 | (tramp-smb-maybe-open-connection): Flush the cache only if necessary. |
| 6902 | 6299 | ||
| 6903 | 2009-10-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 6904 | |||
| 6905 | * cedet/ede/proj-obj.el (ede-gcc-linker): New var. | ||
| 6906 | (ede-proj-target-makefile-objectcode): Use it. | ||
| 6907 | |||
| 6908 | * cedet/ede/source.el (ede-want-any-source-files-p) | ||
| 6909 | (ede-want-any-auxiliary-files-p, ede-want-any-files-p): | ||
| 6910 | Return search result. This error was introduced while merging. | ||
| 6911 | |||
| 6912 | 2009-10-07 Juanma Barranquero <lekktu@gmail.com> | 6300 | 2009-10-07 Juanma Barranquero <lekktu@gmail.com> |
| 6913 | 6301 | ||
| 6914 | * makefile.w32-in (WINS_UPDATES): Fix typo in previous change. | 6302 | * makefile.w32-in (WINS_UPDATES): Fix typo in previous change. |
| @@ -7183,26 +6571,6 @@ | |||
| 7183 | (Info-bookmark-jump): Document with a doc string, not just a comment. | 6571 | (Info-bookmark-jump): Document with a doc string, not just a comment. |
| 7184 | (Bug#4203) | 6572 | (Bug#4203) |
| 7185 | 6573 | ||
| 7186 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 7187 | |||
| 7188 | * cedet/semantic.el (semantic-new-buffer-setup-functions): New option. | ||
| 7189 | (semantic-new-buffer-fcn): Call parser setup functions here. | ||
| 7190 | (semantic-mode): Don't call parser setup functions here, it's done | ||
| 7191 | in semantic-new-buffer-fcn now. | ||
| 7192 | (semantic-mode): Parse all existing buffers when enabled. | ||
| 7193 | |||
| 7194 | * cedet/srecode/compile.el (srecode-compile-file): | ||
| 7195 | Call semantic-new-buffer-fcn if the buffer has not been parsed. | ||
| 7196 | |||
| 7197 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 7198 | |||
| 7199 | * cedet/ede/pmake.el (ede-pmake-insert-variable-once): Delete. | ||
| 7200 | |||
| 7201 | * cedet/ede/proj-comp.el: Don't require ede/pmake at toplevel. | ||
| 7202 | (proj-comp-insert-variable-once): New macro, renamed from | ||
| 7203 | ede-pmake-insert-variable-once in ede/pmake.edl. | ||
| 7204 | (ede-proj-makefile-insert-variables): Use it. | ||
| 7205 | |||
| 7206 | 2009-10-04 Michael Albinus <michael.albinus@gmx.de> | 6574 | 2009-10-04 Michael Albinus <michael.albinus@gmx.de> |
| 7207 | 6575 | ||
| 7208 | * files.el (copy-directory): New defun. | 6576 | * files.el (copy-directory): New defun. |
| @@ -7211,35 +6579,12 @@ | |||
| 7211 | 6579 | ||
| 7212 | 2009-10-04 Juanma Barranquero <lekktu@gmail.com> | 6580 | 2009-10-04 Juanma Barranquero <lekktu@gmail.com> |
| 7213 | 6581 | ||
| 7214 | * cedet/ede/makefile-edit.el (makefile-beginning-of-command) | ||
| 7215 | (makefile-end-of-command): | ||
| 7216 | * cedet/srecode/srt-mode.el (semantic-beginning-of-context) | ||
| 7217 | (semantic-end-of-context): Fix previous change. Doc fixes. | ||
| 7218 | |||
| 7219 | 2009-10-04 Juanma Barranquero <lekktu@gmail.com> | ||
| 7220 | |||
| 7221 | * files-x.el (modify-dir-local-variable) | 6582 | * files-x.el (modify-dir-local-variable) |
| 7222 | (copy-dir-locals-to-file-locals-prop-line): | 6583 | (copy-dir-locals-to-file-locals-prop-line): Fix typos in |
| 7223 | * cedet/ede/makefile-edit.el (makefile-beginning-of-command) | 6584 | docstrings. |
| 7224 | (makefile-end-of-command): | ||
| 7225 | * cedet/semantic/lex.el (semantic-lex-token): | ||
| 7226 | * cedet/semantic/analyze/fcn.el | ||
| 7227 | (semantic-analyze-dereference-metatype-1): | ||
| 7228 | * cedet/semantic/bovine/c.el (semantic-lex-cpp-define) | ||
| 7229 | (semantic-lex-cpp-undef): | ||
| 7230 | * cedet/semantic/wisent/wisent.el (wisent-skip-block): | ||
| 7231 | * cedet/srecode/srt-mode.el (semantic-beginning-of-context) | ||
| 7232 | (semantic-end-of-context): Fix typos in docstrings. | ||
| 7233 | 6585 | ||
| 7234 | * recentf.el (recentf-unload-function): New function. | 6586 | * recentf.el (recentf-unload-function): New function. |
| 7235 | 6587 | ||
| 7236 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 7237 | |||
| 7238 | * cedet/ede.el (ede-project-placeholder-cache-file): | ||
| 7239 | * cedet/semantic/db-file.el (semanticdb-default-save-directory): | ||
| 7240 | * cedet/srecode/map.el (srecode-map-save-file): | ||
| 7241 | Use locate-user-emacs-file. Suggested by Juanma Barranquero. | ||
| 7242 | |||
| 7243 | 2009-10-04 Glenn Morris <rgm@gnu.org> | 6588 | 2009-10-04 Glenn Morris <rgm@gnu.org> |
| 7244 | 6589 | ||
| 7245 | * window.el (window-full-height-p): Add doc string. | 6590 | * window.el (window-full-height-p): Add doc string. |
| @@ -7248,51 +6593,6 @@ | |||
| 7248 | 6593 | ||
| 7249 | * window.el (window-full-height-p): New function. (Bug#4543) | 6594 | * window.el (window-full-height-p): New function. (Bug#4543) |
| 7250 | 6595 | ||
| 7251 | 2009-10-03 Chong Yidong <cyd@stupidchicken.com> | ||
| 7252 | |||
| 7253 | * cedet/srecode/insert.el: Require srecode/args. | ||
| 7254 | |||
| 7255 | * cedet/srecode/args.el: Require srecode/dictionary instead of | ||
| 7256 | srecode/insert. | ||
| 7257 | |||
| 7258 | * cedet/srecode/srt-mode.el (srecode-template-mode): Doc fix. | ||
| 7259 | |||
| 7260 | * files.el (auto-mode-alist): Add .srt and Project.ede. | ||
| 7261 | |||
| 7262 | * cedet/semantic.el (semantic-mode): | ||
| 7263 | Handle srecode-template-mode-hook as well. | ||
| 7264 | (semantic-mode): Use js-mode-hook for Javascript hook. | ||
| 7265 | |||
| 7266 | * cedet/srecode/template.el: Remove hook variable. | ||
| 7267 | |||
| 7268 | * cedet/ede/proj-comp.el: Require ede/pmake when compiling. | ||
| 7269 | |||
| 7270 | * cedet/ede.el (ede-target-forms-menu): Don't enable if no | ||
| 7271 | projects exist. | ||
| 7272 | (ede-project-placeholder-cache-file): Default to a file in | ||
| 7273 | user-emacs-directory. | ||
| 7274 | |||
| 7275 | * cedet/srecode/map.el (srecode-map-base-template-dir): Look for | ||
| 7276 | templates in data-directory. | ||
| 7277 | (srecode-map-save-file): Default to a file in user-emacs-directory. | ||
| 7278 | |||
| 7279 | * cedet/ede/srecode.el (ede-srecode-setup): Use default templates | ||
| 7280 | directory. | ||
| 7281 | |||
| 7282 | 2009-09-30 Eric Ludlam <zappo@gnu.org> | ||
| 7283 | |||
| 7284 | * cedet/semantic/util-modes.el (semantic-highlight-func-mode): | ||
| 7285 | Doc fix. | ||
| 7286 | |||
| 7287 | * cedet/ede/proj-comp.el (ede-proj-makefile-insert-variables): | ||
| 7288 | Only insert each variable once. | ||
| 7289 | |||
| 7290 | * cedet/ede/pmake.el (ede-pmake-insert-variable-once): New macro. | ||
| 7291 | (ede-pmake-insert-variable-shared): Use it. | ||
| 7292 | |||
| 7293 | * cedet/ede/cpp-root.el (ede-preprocessor-map): Do not deref table | ||
| 7294 | for lexical table iff table is nil. | ||
| 7295 | |||
| 7296 | 2009-10-03 Dan Nicolaescu <dann@ics.uci.edu> | 6596 | 2009-10-03 Dan Nicolaescu <dann@ics.uci.edu> |
| 7297 | 6597 | ||
| 7298 | * vc.el: Remove commented out code. | 6598 | * vc.el: Remove commented out code. |
| @@ -7312,9 +6612,6 @@ | |||
| 7312 | the frame is wide. | 6612 | the frame is wide. |
| 7313 | (calendar-generate-window): Test for shrinkability rather than width. | 6613 | (calendar-generate-window): Test for shrinkability rather than width. |
| 7314 | 6614 | ||
| 7315 | * cedet/semantic/db-find.el (data-debug-insert-tag-list): Comment out | ||
| 7316 | declaration, currently false. | ||
| 7317 | |||
| 7318 | * mail/rmail.el (rmail-generate-viewer-buffer): Be more careful about | 6615 | * mail/rmail.el (rmail-generate-viewer-buffer): Be more careful about |
| 7319 | reusing existing buffers, in case we happen to visit two files with the | 6616 | reusing existing buffers, in case we happen to visit two files with the |
| 7320 | same basename. (Bug#4593) | 6617 | same basename. (Bug#4593) |
| @@ -7584,142 +6881,10 @@ | |||
| 7584 | * emacs-lisp/eieio.el (defclass, eieio-defclass-autoload) | 6881 | * emacs-lisp/eieio.el (defclass, eieio-defclass-autoload) |
| 7585 | (eieio-copy-parents-into-subclass, make-instance, class-children) | 6882 | (eieio-copy-parents-into-subclass, make-instance, class-children) |
| 7586 | (eieio-generic-form): | 6883 | (eieio-generic-form): |
| 7587 | * cedet/cedet-files.el (cedet-directory-name-to-file-name): | ||
| 7588 | * cedet/cedet-idutils.el (cedet-idutils-search) | ||
| 7589 | (cedet-idutils-expand-filename, cedet-idutils-support-for-directory) | ||
| 7590 | (cedet-idutils-version-check): | ||
| 7591 | * cedet/cedet.el (cedet-version): | ||
| 7592 | * cedet/data-debug.el (data-debug-insert-overlay-button) | ||
| 7593 | (data-debug-insert-overlay-list-button) | ||
| 7594 | (data-debug-insert-buffer-button) | ||
| 7595 | (data-debug-insert-buffer-list-button) | ||
| 7596 | (data-debug-insert-process-button, data-debug-insert-ring-button) | ||
| 7597 | (data-debug-insert-widget, data-debug-insert-stuff-list-button) | ||
| 7598 | (data-debug-insert-stuff-vector-button) | ||
| 7599 | (data-debug-insert-symbol-button, data-debug-insert-string) | ||
| 7600 | (data-debug-insert-number, data-debug-insert-lambda-expression) | ||
| 7601 | (data-debug-insert-nil, data-debug-insert-simple-thing) | ||
| 7602 | (data-debug-insert-custom, data-debug-edebug-expr): | ||
| 7603 | * cedet/ede.el (ede-auto-add-method, ede-project-class-files) | ||
| 7604 | (global-ede-mode-map, ede-new, ede-debug-target) | ||
| 7605 | (ede-customize-current-target, ede-buffers, ede-map-buffers, ede-set): | ||
| 7606 | * cedet/semantic.el (semantic-minimum-working-buffer-size) | ||
| 7607 | (semantic-fetch-tags, semantic-submode-list) | ||
| 7608 | (semantic-default-submodes): | ||
| 7609 | * cedet/ede/source.el (ede-source-match): | ||
| 7610 | * cedet/ede/project-am.el (project-am-type-alist, project-add-file) | ||
| 7611 | (project-am-package-info): | ||
| 7612 | * cedet/ede/proj.el (ede-proj-target, project-new-target): | ||
| 7613 | * cedet/ede/proj-elisp.el (ede-proj-tweak-autoconf): | ||
| 7614 | * cedet/ede/proj-comp.el (ede-current-build-list): | ||
| 7615 | * cedet/ede/makefile-edit.el (makefile-move-to-macro): | ||
| 7616 | * cedet/ede/files.el (ede-toplevel-project-or-nil): | ||
| 7617 | * cedet/ede/cpp-root.el (initialize-instance): | ||
| 7618 | * cedet/ede/autoconf-edit.el (autoconf-find-last-macro) | ||
| 7619 | (autoconf-parameter-strip, autoconf-insert-new-macro): | ||
| 7620 | * cedet/semantic/wisent.el (wisent-lex-eoi): | ||
| 7621 | * cedet/semantic/util-modes.el (global-semantic-show-parser-state-mode) | ||
| 7622 | (semantic-show-parser-state-mode): | ||
| 7623 | * cedet/semantic/texi.el (semantic-texi-environment-regexp): | ||
| 7624 | * cedet/semantic/tag.el (semantic-tag-new-variable) | ||
| 7625 | (semantic-tag-class, semantic-tag-new-variable, semantic-tag-copy) | ||
| 7626 | (semantic--tag-deep-copy-attributes, semantic--tag-deep-copy-value) | ||
| 7627 | (semantic--tag-deep-copy-tag-list) | ||
| 7628 | (semantic-tag-components-with-overlays-default): | ||
| 7629 | * cedet/semantic/symref.el (semantic-symref-find-text): | ||
| 7630 | * cedet/semantic/senator.el (senator-yank-tag) | ||
| 7631 | (senator-transpose-tags-up): | ||
| 7632 | * cedet/semantic/scope.el (semantic-analyze-scoped-tags-default) | ||
| 7633 | (semantic-analyze-scoped-inherited-tags, semantic-scope-find): | ||
| 7634 | * cedet/semantic/sb.el (semantic-sb-autoexpand-length): | ||
| 7635 | * cedet/semantic/lex.el (semantic-lex-comment-regex) | ||
| 7636 | (semantic-lex-maximum-depth, define-lex, semantic-lex-token) | ||
| 7637 | (semantic-lex-unterminated-syntax-protection, define-lex-analyzer): | ||
| 7638 | * cedet/semantic/lex-spp.el | ||
| 7639 | (semantic-lex-spp-dynamic-macro-symbol-obarray-stack) | ||
| 7640 | (semantic-lex-spp-symbol, semantic-lex-spp-one-token-to-txt): | ||
| 7641 | * cedet/semantic/idle.el | ||
| 7642 | (semantic-idle-summary-current-symbol-info-brutish) | ||
| 7643 | (semantic-idle-summary-current-symbol-info-default): | ||
| 7644 | * cedet/semantic/grammar.el (semantic-grammar-recreate-package) | ||
| 7645 | (semantic--grammar-macro-compl-dict): | ||
| 7646 | * cedet/semantic/grammar-wy.el (semantic-grammar-wy--parse-table): | ||
| 7647 | * cedet/semantic/format.el (semantic-format-tag-custom-list) | ||
| 7648 | (semantic-format-tag-canonical-name-default): | ||
| 7649 | * cedet/semantic/find.el (semantic-find-tag-by-overlay-in-region) | ||
| 7650 | (semantic-find-tags-for-completion) | ||
| 7651 | (semantic-find-tags-by-scope-protection-default) | ||
| 7652 | (semantic-deep-find-tags-for-completion): | ||
| 7653 | * cedet/semantic/edit.el | ||
| 7654 | (semantic-edits-incremental-reparse-failed-hook) | ||
| 7655 | (semantic-edits-verbose-flag, semantic-edits-assert-valid-region) | ||
| 7656 | (semantic-edits-splice-remove, semantic-edits-splice-replace): | ||
| 7657 | * cedet/semantic/doc.el (semantic-documentation-comment-preceeding-tag): | ||
| 7658 | * cedet/semantic/dep.el (semantic-dependency-include-path): | ||
| 7659 | * cedet/semantic/db.el (semanticdb-default-find-index-class) | ||
| 7660 | (semanticdb-match-any-mode, semanticdb-with-match-any-mode) | ||
| 7661 | (semanticdb-project-roots): | ||
| 7662 | * cedet/semantic/db-find.el (semanticdb-implied-include-tags) | ||
| 7663 | (semanticdb-find-adebug-insert-scanned-tag-cons) | ||
| 7664 | (semanticdb-find-log-buffer-name, semanticdb-find-result-mapc) | ||
| 7665 | (semanticdb-brute-deep-find-tags-for-completion): | ||
| 7666 | * cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-add-tree-to-table): | ||
| 7667 | * cedet/semantic/ctxt.el (semantic-beginning-of-context-default) | ||
| 7668 | (semantic-end-of-context-default) | ||
| 7669 | (semantic-ctxt-current-function-default) | ||
| 7670 | (semantic-ctxt-scoped-types-default): | ||
| 7671 | * cedet/semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 7672 | (semantic-complete-inline-tag-engine) | ||
| 7673 | (semantic-complete-inline-custom-type) | ||
| 7674 | (semantic-complete-read-tag-analyzer): | ||
| 7675 | * cedet/semantic/chart.el (semantic-chart-tags-by-class) | ||
| 7676 | (semantic-chart-database-size): | ||
| 7677 | * cedet/semantic/analyze.el (semantic-analyze-current-symbol) | ||
| 7678 | (semantic-analyze-current-context): | ||
| 7679 | * cedet/semantic/symref/list.el (semantic-symref) | ||
| 7680 | (semantic-symref-hide-buffer, semantic-symref-symbol): | ||
| 7681 | * cedet/semantic/symref/grep.el (semantic-symref-grep-use-template): | ||
| 7682 | * cedet/semantic/symref/filter.el (semantic-symref-hits-in-region): | ||
| 7683 | * cedet/semantic/bovine/el.el (semantic-elisp-form-to-doc-string): | ||
| 7684 | * cedet/semantic/bovine/c.el (semantic-lex-c-preprocessor-symbol-map) | ||
| 7685 | (semantic-c-parse-token-hack-depth, semantic-c--template-name-1) | ||
| 7686 | (semantic-c-dereference-template): | ||
| 7687 | * cedet/semantic/analyze/refs.el (semantic--analyze-refs-full-lookup) | ||
| 7688 | (semantic--analyze-refs-full-lookup-with-parents) | ||
| 7689 | (semantic--analyze-refs-full-lookup-simple): | ||
| 7690 | * cedet/semantic/analyze/complete.el | ||
| 7691 | (semantic-analyze-possible-completions): | ||
| 7692 | * cedet/srecode/table.el (srecode-mode-table-new): | ||
| 7693 | * cedet/srecode/srt.el (srecode-read-variable-name): | ||
| 7694 | * cedet/srecode/srt-mode.el (srecode-macro-help, srecode-in-macro-p): | ||
| 7695 | * cedet/srecode/semantic.el (srecode-semantic-handle-:tag) | ||
| 7696 | (srecode-semantic-handle-:tagtype, srecode-semantic-insert-tag): | ||
| 7697 | * cedet/srecode/map.el (srecode-current-map): | ||
| 7698 | * cedet/srecode/insert.el (srecode-insert) | ||
| 7699 | (srecode-insert-variable-secondname-handler, srecode-insert-method) | ||
| 7700 | (srecode-template-inserter-point-override) | ||
| 7701 | (srecode-insert-include-lookup): | ||
| 7702 | * cedet/srecode/getset.el (srecode-auto-choose-class): | ||
| 7703 | * cedet/srecode/extract.el (srecode-inserter-extract): | ||
| 7704 | * cedet/srecode/document.el | ||
| 7705 | (srecode-document-autocomment-return-last-alist) | ||
| 7706 | (srecode-document-autocomment-param-type-alist) | ||
| 7707 | (srecode-document-insert-function-comment) | ||
| 7708 | (srecode-document-insert-variable-one-line-comment) | ||
| 7709 | (srecode-document-function-name-comment): | ||
| 7710 | * cedet/srecode/dictionary.el (srecode-create-dictionary) | ||
| 7711 | (srecode-compound-toString): | ||
| 7712 | * cedet/srecode/compile.el (srecode-flush-active-templates): | ||
| 7713 | * cedet/srecode/args.el (srecode-semantic-handle-:blank): | ||
| 7714 | Doc/message fixes. | ||
| 7715 | 6884 | ||
| 7716 | * vc-cvs.el (vc-cvs-parse-entry): Be more careful with the | 6885 | * vc-cvs.el (vc-cvs-parse-entry): Be more careful with the |
| 7717 | match-data. (Bug#4555). | 6886 | match-data. (Bug#4555). |
| 7718 | 6887 | ||
| 7719 | * cedet/semantic/bovine/gcc.el | ||
| 7720 | (semantic-c-reset-preprocessor-symbol-map): Fix declaration. | ||
| 7721 | (semantic-gcc-get-include-paths, semantic-gcc-setup-data): Doc fixes. | ||
| 7722 | |||
| 7723 | * emacs-lisp/check-declare.el (check-declare-scan): Read the declaration | 6888 | * emacs-lisp/check-declare.el (check-declare-scan): Read the declaration |
| 7724 | rather than parsing it as a regexp. This relaxes the layout | 6889 | rather than parsing it as a regexp. This relaxes the layout |
| 7725 | requirements and makes errors easier to detect. | 6890 | requirements and makes errors easier to detect. |
| @@ -7734,41 +6899,8 @@ | |||
| 7734 | * term/w32-win.el (setup-default-fontset, set-fontset-font): | 6899 | * term/w32-win.el (setup-default-fontset, set-fontset-font): |
| 7735 | Remove unused declarations. | 6900 | Remove unused declarations. |
| 7736 | 6901 | ||
| 7737 | 2009-10-01 Juanma Barranquero <lekktu@gmail.com> | ||
| 7738 | |||
| 7739 | * cedet/semantic/wisent/javat-wy.el | ||
| 7740 | (wisent-java-tags-wy--keyword-table): Use \000 instead of literal ^@. | ||
| 7741 | |||
| 7742 | 2009-09-30 Juanma Barranquero <lekktu@gmail.com> | ||
| 7743 | |||
| 7744 | * cedet/srecode/expandproto.el: Fix provide statement. | ||
| 7745 | |||
| 7746 | 2009-09-30 Eric Ludlam <zappo@gnu.org> | ||
| 7747 | |||
| 7748 | * emacs-lisp/eieio.el (boolean-p): Delete. | ||
| 7749 | |||
| 7750 | 2009-09-30 Sascha Wilde <wilde@sha-bang.de> | ||
| 7751 | |||
| 7752 | * cedet/ede/srecode.el: Fix provide statement. | ||
| 7753 | |||
| 7754 | 2009-09-30 Glenn Morris <rgm@gnu.org> | 6902 | 2009-09-30 Glenn Morris <rgm@gnu.org> |
| 7755 | 6903 | ||
| 7756 | * cedet/ede/proj.el (ede-proj-target-makefile-miscelaneous): | ||
| 7757 | * cedet/ede/proj-aux.el (ede-aux-source): | ||
| 7758 | * cedet/ede/proj-misc.el (ede-proj-target-makefile-miscelaneous) | ||
| 7759 | (ede-misc-source): | ||
| 7760 | * cedet/semantic/mru-bookmark.el (semantic-mrub-completing-read) | ||
| 7761 | (semantic-mrub-switch-tags): Fix doc typos. | ||
| 7762 | |||
| 7763 | * cedet/semantic/db-global.el (data-debug-new-buffer) | ||
| 7764 | (data-debug-insert-thing): Remove unneeded declarations (one broken). | ||
| 7765 | (semanticdb-enable-gnu-global-databases): Fix prompt typo. | ||
| 7766 | |||
| 7767 | * cedet/semantic/analyze/fcn.el (semantic-scope-find): Fix declaration. | ||
| 7768 | |||
| 7769 | * cedet/semantic/bovine/gcc.el (semantic-gcc-setup): Replace runtime | ||
| 7770 | use of CL function `remove-if-not'. | ||
| 7771 | |||
| 7772 | * emacs-lisp/authors.el (authors-ignored-files): Add "js2-mode.el". | 6904 | * emacs-lisp/authors.el (authors-ignored-files): Add "js2-mode.el". |
| 7773 | 6905 | ||
| 7774 | * emacs-lisp/elint.el (elint-init-form): Report declarations where the | 6906 | * emacs-lisp/elint.el (elint-init-form): Report declarations where the |
| @@ -7806,16 +6938,6 @@ | |||
| 7806 | 6938 | ||
| 7807 | 2009-09-29 Glenn Morris <rgm@gnu.org> | 6939 | 2009-09-29 Glenn Morris <rgm@gnu.org> |
| 7808 | 6940 | ||
| 7809 | * cedet/semantic/symref/idutils.el: | ||
| 7810 | * cedet/semantic/symref/list.el: Relicense under GPLv3+. | ||
| 7811 | |||
| 7812 | * cedet/ede/srecode.el (srecode-resolve-arguments): Fix declaration. | ||
| 7813 | |||
| 7814 | * cedet/semantic/complete.el (semantic-displayor-focus-abstract-child-p): | ||
| 7815 | * cedet/semantic/tag-file.el (semanticdb-table-child-p): | ||
| 7816 | * cedet/srecode/compile.el (srecode-template-inserter-newline-child-p): | ||
| 7817 | Mark declarations not understood by check-declare. | ||
| 7818 | |||
| 7819 | * emacs-lisp/check-declare.el (check-declare-locate): Remove pointless | 6941 | * emacs-lisp/check-declare.el (check-declare-locate): Remove pointless |
| 7820 | file-name-nondirectory call preventing location of cedet files. | 6942 | file-name-nondirectory call preventing location of cedet files. |
| 7821 | (check-declare-verify): Use literal search rather than re-search. | 6943 | (check-declare-verify): Use literal search rather than re-search. |
| @@ -7853,15 +6975,6 @@ | |||
| 7853 | 6975 | ||
| 7854 | * Makefile.in (ELCFILES): Add CEDET files. | 6976 | * Makefile.in (ELCFILES): Add CEDET files. |
| 7855 | 6977 | ||
| 7856 | 2009-09-28 Eric Ludlam <zappo@gnu.org> | ||
| 7857 | |||
| 7858 | CEDET (development tools) package merged. | ||
| 7859 | |||
| 7860 | * cedet/*.el: | ||
| 7861 | * cedet/ede/*.el: | ||
| 7862 | * cedet/semantic/*.el: | ||
| 7863 | * cedet/srecode/*.el: New files. | ||
| 7864 | |||
| 7865 | 2009-09-28 Michael Albinus <michael.albinus@gmx.de> | 6978 | 2009-09-28 Michael Albinus <michael.albinus@gmx.de> |
| 7866 | 6979 | ||
| 7867 | * Makefile.in (ELCFILES): Add net/tramp-imap.elc. | 6980 | * Makefile.in (ELCFILES): Add net/tramp-imap.elc. |
| @@ -7875,26 +6988,6 @@ | |||
| 7875 | 6988 | ||
| 7876 | * net/tramp-imap.el: New package. | 6989 | * net/tramp-imap.el: New package. |
| 7877 | 6990 | ||
| 7878 | 2009-09-28 Eric Ludlam <zappo@gnu.org> | ||
| 7879 | |||
| 7880 | * emacs-lisp/chart.el: | ||
| 7881 | * emacs-lisp/eieio-base.el: | ||
| 7882 | * emacs-lisp/eieio-comp.el: | ||
| 7883 | * emacs-lisp/eieio-custom.el: | ||
| 7884 | * emacs-lisp/eieio-datadebug.el: | ||
| 7885 | * emacs-lisp/eieio-opt.el: | ||
| 7886 | * emacs-lisp/eieio-speedbar.el: | ||
| 7887 | * emacs-lisp/eieio.el: New files. | ||
| 7888 | |||
| 7889 | * cedet/cedet-cscope.el: | ||
| 7890 | * cedet/cedet-files.el: | ||
| 7891 | * cedet/cedet-global.el: | ||
| 7892 | * cedet/cedet-idutils.el: | ||
| 7893 | * cedet/data-debug.el: | ||
| 7894 | * cedet/inversion.el: | ||
| 7895 | * cedet/mode-local.el: | ||
| 7896 | * cedet/pulse.el: New files. | ||
| 7897 | |||
| 7898 | 2009-09-27 Vinicius Jose Latorre <viniciusjl@ig.com.br> | 6991 | 2009-09-27 Vinicius Jose Latorre <viniciusjl@ig.com.br> |
| 7899 | 6992 | ||
| 7900 | * whitespace.el (whitespace-trailing-regexp) | 6993 | * whitespace.el (whitespace-trailing-regexp) |
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog new file mode 100644 index 00000000000..9d3c35c829d --- /dev/null +++ b/lisp/cedet/ChangeLog | |||
| @@ -0,0 +1,1152 @@ | |||
| 1 | 2010-09-19 Eric Ludlam <zappo@gnu.org> | ||
| 2 | |||
| 3 | Synch Semantic to CEDET 1.0. | ||
| 4 | |||
| 5 | * semantic.el (semantic-version): Update to 2.0. | ||
| 6 | (semantic-mode-map): Add "," and "m" bindings. | ||
| 7 | (navigate-menu): Update. | ||
| 8 | |||
| 9 | * semantic/symref.el (semantic-symref-calculate-rootdir): | ||
| 10 | New function. | ||
| 11 | (semantic-symref-detect-symref-tool): Use it. | ||
| 12 | |||
| 13 | * semantic/symref/grep.el (semantic-symref-grep-shell): New var. | ||
| 14 | (semantic-symref-perform-search): Use it. Calculate root dir with | ||
| 15 | semantic-symref-calculate-rootdir. | ||
| 16 | (semantic-symref-derive-find-filepatterns): Improve error message. | ||
| 17 | |||
| 18 | * semantic/symref/list.el | ||
| 19 | (semantic-symref-results-mode-map): New bindings. | ||
| 20 | (semantic-symref-auto-expand-results): New option. | ||
| 21 | (semantic-symref-results-dump): Obey auto-expand. | ||
| 22 | (semantic-symref-list-expand-all, semantic-symref-regexp) | ||
| 23 | (semantic-symref-list-contract-all) | ||
| 24 | (semantic-symref-list-map-open-hits) | ||
| 25 | (semantic-symref-list-update-open-hits) | ||
| 26 | (semantic-symref-list-create-macro-on-open-hit) | ||
| 27 | (semantic-symref-list-call-macro-on-open-hits): New functions. | ||
| 28 | (semantic-symref-list-menu-entries) | ||
| 29 | (semantic-symref-list-menu): New vars. | ||
| 30 | (semantic-symref-list-map-open-hits): Move cursor to beginning of | ||
| 31 | match before calling the mapped function. | ||
| 32 | |||
| 33 | * semantic/doc.el | ||
| 34 | (semantic-documentation-comment-preceeding-tag): Do nothing if the | ||
| 35 | mode doesn't provide comment-start-skip. | ||
| 36 | |||
| 37 | * semantic/scope.el | ||
| 38 | (semantic-analyze-scope-nested-tags-default): Strip duplicates. | ||
| 39 | (semantic-analyze-scoped-inherited-tag-map): Take the tag we are | ||
| 40 | looking for as part of the scoped tags list. | ||
| 41 | |||
| 42 | * semantic/html.el (semantic-default-html-setup): Add | ||
| 43 | senator-step-at-tag-classes. | ||
| 44 | |||
| 45 | * semantic/decorate/include.el | ||
| 46 | (semantic-decoration-on-unknown-includes): Change light bgcolor. | ||
| 47 | (semantic-decoration-on-includes-highlight-default): Check that | ||
| 48 | the include tag has a postion. | ||
| 49 | |||
| 50 | * semantic/complete.el (semantic-collector-local-members): | ||
| 51 | (semantic-complete-read-tag-local-members) | ||
| 52 | (semantic-complete-jump-local-members): New class and functions. | ||
| 53 | (semantic-complete-self-insert): Save excursion before completing. | ||
| 54 | |||
| 55 | * semantic/analyze/complete.el | ||
| 56 | (semantic-analyze-possible-completions-default): If no completions | ||
| 57 | are found, return the raw by-name-only completion list. Add FLAGS | ||
| 58 | arguments. Add support for 'no-tc (type constraint) and | ||
| 59 | 'no-unique, or no stripping duplicates. | ||
| 60 | (semantic-analyze-possible-completions-default): Add FLAGS arg. | ||
| 61 | |||
| 62 | * semantic/util-modes.el | ||
| 63 | (semantic-stickyfunc-show-only-functions-p): New option. | ||
| 64 | (semantic-stickyfunc-fetch-stickyline): Don't show stickytext for | ||
| 65 | the very first line in a buffer. | ||
| 66 | |||
| 67 | * semantic/util.el (semantic-hack-search) | ||
| 68 | (semantic-recursive-find-nonterminal-by-name) | ||
| 69 | (semantic-current-tag-interactive): Deleted. | ||
| 70 | (semantic-describe-buffer): Fix expand-nonterminal. Add | ||
| 71 | lex-syntax-mods, type relation separator char, and command | ||
| 72 | separation char. | ||
| 73 | (semantic-sanity-check): Only message if called interactively. | ||
| 74 | |||
| 75 | * semantic/tag.el (semantic-tag-deep-copy-one-tag): Copy the | ||
| 76 | :filename property and the tag position. | ||
| 77 | |||
| 78 | * semantic/lex-spp.el (semantic-lex-spp-lex-text-string): | ||
| 79 | Add recursion limit. | ||
| 80 | |||
| 81 | * semantic/imenu.el (semantic-imenu-bucketize-type-members): | ||
| 82 | Make this buffer local, not the obsoleted variable. | ||
| 83 | |||
| 84 | * semantic/idle.el: Add breadcrumbs support. | ||
| 85 | (semantic-idle-summary-current-symbol-info-default) | ||
| 86 | (semantic-idle-tag-highlight) | ||
| 87 | (semantic-idle-completion-list-default): Use | ||
| 88 | semanticdb-without-unloaded-file-searches for speed, and to | ||
| 89 | conform to the controls that specify if the idle timer is supposed | ||
| 90 | to be parsing unparsed includes. | ||
| 91 | (semantic-idle-symbol-highlight-face) | ||
| 92 | (semantic-idle-symbol-maybe-highlight): Rename from *-summary-*. | ||
| 93 | Callers changed. | ||
| 94 | (semantic-idle-work-parse-neighboring-files-flag): Default to nil. | ||
| 95 | (semantic-idle-work-update-headers-flag): New var. | ||
| 96 | (semantic-idle-work-for-one-buffer): Use it. | ||
| 97 | (semantic-idle-local-symbol-highlight): Rename from | ||
| 98 | semantic-idle-tag-highlight. | ||
| 99 | (semantic-idle-truncate-long-summaries): New option. | ||
| 100 | |||
| 101 | * semantic/ia.el (semantic-ia-cache) | ||
| 102 | (semantic-ia-get-completions): Deleted. Callers changed. | ||
| 103 | (semantic-ia-show-variants): New command. | ||
| 104 | (semantic-ia-show-doc): If doc is empty, don't make a temp buffer. | ||
| 105 | (semantic-ia-show-summary): If there isn't anything to show, say so. | ||
| 106 | |||
| 107 | * semantic/grammar.el (semantic-grammar-create-package): | ||
| 108 | Save the buffer even in batch mode. | ||
| 109 | |||
| 110 | * semantic/fw.el | ||
| 111 | (semanticdb-without-unloaded-file-searches): New macro. | ||
| 112 | |||
| 113 | * semantic/dep.el (semantic-dependency-find-file-on-path): | ||
| 114 | Fix case dereferencing ede-object when it is a list. | ||
| 115 | |||
| 116 | * semantic/db-typecache.el (semanticdb-expand-nested-tag) | ||
| 117 | (semanticdb-typecache-faux-namespace): New functions. | ||
| 118 | (semanticdb-typecache-file-tags) | ||
| 119 | (semanticdb-typecache-merge-streams): Use them. | ||
| 120 | (semanticdb-typecache-file-tags): When deriving tags from a file, | ||
| 121 | give the mode a chance to monkey with the tag copy. | ||
| 122 | (semanticdb-typecache-find-default): Wrap find in save-excursion. | ||
| 123 | (semanticdb-typecache-find-by-name-helper): Merge found names down. | ||
| 124 | |||
| 125 | * semantic/db-global.el | ||
| 126 | (semanticdb-enable-gnu-global-in-buffer): Don't show messages if | ||
| 127 | GNU Global is not available and we don't want to throw an error. | ||
| 128 | |||
| 129 | * semantic/db-find.el (semanticdb-find-result-nth-in-buffer): | ||
| 130 | When trying to normalize the tag to a buffer, don't error if | ||
| 131 | set-buffer method doesn't exist. | ||
| 132 | |||
| 133 | * semantic/db-file.el (semanticdb-save-db): Simplify msg. | ||
| 134 | |||
| 135 | * semantic/db.el (semanticdb-refresh-table): If forcing a | ||
| 136 | refresh on a file not in a buffer, use semantic-find-file-noselect | ||
| 137 | and delete the buffer after use. | ||
| 138 | (semanticdb-current-database-list): When calculating root via | ||
| 139 | hooks, force it through true-filename and skip the list of | ||
| 140 | possible roots. | ||
| 141 | |||
| 142 | * semantic/ctxt.el (semantic-ctxt-imported-packages): New. | ||
| 143 | |||
| 144 | * semantic/analyze/debug.el | ||
| 145 | (semantic-analyzer-debug-insert-tag): Reset standard output to | ||
| 146 | current buffer. | ||
| 147 | (semantic-analyzer-debug-global-symbol) | ||
| 148 | (semantic-analyzer-debug-missing-innertype): Change "prefix" to | ||
| 149 | "symbol" in messages. | ||
| 150 | |||
| 151 | * semantic/analyze/refs.el: (semantic-analyze-refs-impl) | ||
| 152 | (semantic-analyze-refs-proto): When calculating value, make sure | ||
| 153 | the found tag is 'similar' to the originating tag. | ||
| 154 | (semantic--analyze-refs-find-tags-with-parent): Attempt to | ||
| 155 | identify matches via imported symbols of parents. | ||
| 156 | (semantic--analyze-refs-full-lookup-with-parents): Do a deep | ||
| 157 | search during the brute search. | ||
| 158 | |||
| 159 | * semantic/analyze.el | ||
| 160 | (semantic-analyze-find-tag-sequence-default): Be robust to | ||
| 161 | calculated scopes being nil. | ||
| 162 | |||
| 163 | * semantic/bovine/c.el (semantic-c-describe-environment): Add | ||
| 164 | project macro symbol array. | ||
| 165 | (semantic-c-parse-lexical-token): Add recursion limit. | ||
| 166 | (semantic-ctxt-imported-packages, semanticdb-expand-nested-tag): | ||
| 167 | New overrides. | ||
| 168 | (semantic-expand-c-tag-namelist): Split a full type from a typedef | ||
| 169 | out to its own tag. | ||
| 170 | (semantic-expand-c-tag-namelist): Do not split out a typedef'd | ||
| 171 | inline type if it is an anonymous type. | ||
| 172 | (semantic-c-reconstitute-token): Use the optional initializers as | ||
| 173 | a clue that some function is probably a constructor. When | ||
| 174 | defining the type of these constructors, split the parent name, | ||
| 175 | and use only the class part, if applicable. | ||
| 176 | |||
| 177 | * semantic/bovine/c-by.el: | ||
| 178 | * semantic/wisent/python-wy.el: Regenerate. | ||
| 179 | |||
| 180 | 2010-07-20 Juanma Barranquero <lekktu@gmail.com> | ||
| 181 | |||
| 182 | * semantic/db-file.el (object-write): Fix typo in docstring. | ||
| 183 | |||
| 184 | 2010-06-03 Eric Ludlam <zappo@gnu.org> | ||
| 185 | |||
| 186 | * semantic/lex-spp.el | ||
| 187 | (semantic-lex-spp-table-write-slot-value): Instead of erroring on | ||
| 188 | invalid values during save, just save a nil (Bug#6324). | ||
| 189 | |||
| 190 | 2010-05-31 Jonathan Marchand <jonathlela@gmail.com> (tiny change) | ||
| 191 | |||
| 192 | * ede/cpp-root.el (ede-set-project-variables): Fix feature name | ||
| 193 | (bug#6231). | ||
| 194 | |||
| 195 | 2010-04-18 Chong Yidong <cyd@stupidchicken.com> | ||
| 196 | |||
| 197 | * ede/pmake.el (ede-proj-makefile-insert-variables): | ||
| 198 | Don't destroy list before using it. | ||
| 199 | |||
| 200 | 2010-04-02 Juanma Barranquero <lekktu@gmail.com> | ||
| 201 | |||
| 202 | * semantic/imenu.el (semantic-imenu-bucketize-type-members) | ||
| 203 | (semantic-create-imenu-directory-index): Fix typos in docstrings. | ||
| 204 | (semantic-imenu-goto-function): Reflow docstring. | ||
| 205 | |||
| 206 | 2010-03-24 Juanma Barranquero <lekktu@gmail.com> | ||
| 207 | |||
| 208 | * srecode/table.el (srecode-template-table): Fix docstring typo. | ||
| 209 | |||
| 210 | 2010-03-13 Eric M. Ludlam <zappo@gnu.org> | ||
| 211 | |||
| 212 | * semantic/imenu.el: New file, from the CEDET repository | ||
| 213 | (Bug#5412). | ||
| 214 | |||
| 215 | 2010-03-06 Glenn Morris <rgm@gnu.org> | ||
| 216 | |||
| 217 | * semantic/grammar.el (semantic-grammar-header-template): | ||
| 218 | Update template copyright to GPLv3+. | ||
| 219 | |||
| 220 | 2010-02-28 Chong Yidong <cyd@stupidchicken.com> | ||
| 221 | |||
| 222 | * semantic/db-find.el | ||
| 223 | (semanticdb-find-translate-path-brutish-default): | ||
| 224 | * ede/make.el (ede-make-check-version): Use | ||
| 225 | with-current-buffer instead of save-excursion. | ||
| 226 | |||
| 227 | 2010-02-16 Chong Yidong <cyd@stupidchicken.com> | ||
| 228 | |||
| 229 | * data-debug.el (data-debug): Move to extensions group. | ||
| 230 | |||
| 231 | * ede.el (ede): | ||
| 232 | * srecode.el (srecode): | ||
| 233 | * semantic.el (semantic): Put in tools and extensions group. | ||
| 234 | |||
| 235 | 2010-02-14 Juanma Barranquero <lekktu@gmail.com> | ||
| 236 | |||
| 237 | * ede.el (ede-run-target, project-delete-target) | ||
| 238 | (project-dist-files, ede-name, ede-documentation, ede-parent-project) | ||
| 239 | (ede-adebug-project, ede-adebug-project-parent) | ||
| 240 | (ede-adebug-project-root): Fix typos in docstrings. | ||
| 241 | |||
| 242 | 2010-01-18 Juanma Barranquero <lekktu@gmail.com> | ||
| 243 | |||
| 244 | * ede/locate.el (ede-locate-file-in-project) | ||
| 245 | (ede-locate-file-in-project-impl): Fix typos in docstrings. | ||
| 246 | (ede-enable-locate-on-project): Fix typos in error messages. | ||
| 247 | |||
| 248 | * semantic/util-modes.el (semantic-unmatched-syntax-face) | ||
| 249 | (semantic-stickyfunc-old-hlf, semantic-stickyfunc-header-line-format) | ||
| 250 | (semantic-stickyfunc-sticky-classes, semantic-highlight-func-mode-setup) | ||
| 251 | (semantic-stickyfunc-fetch-stickyline): Fix typos in docstrings. | ||
| 252 | (semantic-stickyfunc-popup-menu, semantic-highlight-func-popup-menu): | ||
| 253 | Fix typos in menu help. | ||
| 254 | |||
| 255 | * semantic.el (semantic-require-version, semantic--buffer-cache) | ||
| 256 | (semantic-unmatched-syntax-cache-check, semantic-unmatched-syntax-hook) | ||
| 257 | (semantic--before-fetch-tags-hook, semantic-new-buffer-fcn-was-run) | ||
| 258 | (semantic--umatched-syntax-needs-refresh-p, semantic-elapsed-time) | ||
| 259 | (semantic-parse-stream, semantic-parse-region) | ||
| 260 | (semantic-parse-region-default, semantic--set-buffer-cache) | ||
| 261 | (semantic-minimum-working-buffer-size, semantic-refresh-tags-safe) | ||
| 262 | (semantic-bovinate-toplevel, semantic-load-system-cache-loaded) | ||
| 263 | (semantic-default-submodes): | ||
| 264 | * semantic/db-ebrowse.el (semanticdb-table-ebrowse) | ||
| 265 | (semanticdb-create-ebrowse-database) | ||
| 266 | (semanticdb-find-tags-for-completion-method) | ||
| 267 | (semanticdb-find-tags-by-class-method) | ||
| 268 | (semanticdb-deep-find-tags-by-name-method) | ||
| 269 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 270 | * semantic/db-el.el (semanticdb-elisp-mapatom-collector) | ||
| 271 | (semanticdb-find-tags-by-name-method, emacs-lisp-mode) | ||
| 272 | (semanticdb-find-tags-for-completion-method) | ||
| 273 | (semanticdb-find-tags-by-class-method) | ||
| 274 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 275 | * semantic/db-find.el (semanticdb-find-translate-path) | ||
| 276 | (semanticdb-find-need-cache-update-p, semanticdb-find-result-with-nil-p) | ||
| 277 | (semanticdb-find-scanned-include-tags, semanticdb-find-tags-collector) | ||
| 278 | (semanticdb-find-tags-by-name-method) | ||
| 279 | (semanticdb-find-tags-by-name-regexp-method) | ||
| 280 | (semanticdb-find-tags-for-completion-method) | ||
| 281 | (semanticdb-find-tags-by-class-method) | ||
| 282 | (semanticdb-find-tags-external-children-of-type-method) | ||
| 283 | (semanticdb-find-tags-subclasses-of-type-method) | ||
| 284 | (semanticdb-deep-find-tags-by-name-method) | ||
| 285 | (semanticdb-deep-find-tags-by-name-regexp-method) | ||
| 286 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 287 | * semantic/db-global.el (semanticdb-enable-gnu-global-hook) | ||
| 288 | (semanticdb-enable-gnu-global-in-buffer) | ||
| 289 | (semanticdb-find-tags-for-completion-method) | ||
| 290 | (semanticdb-deep-find-tags-by-name-method) | ||
| 291 | (semanticdb-deep-find-tags-for-completion-method): | ||
| 292 | * semantic/db-javascript.el (semanticdb-javascript-tags) | ||
| 293 | (javascript-mode, semanticdb-find-translate-path) | ||
| 294 | (semanticdb-find-tags-for-completion-method) | ||
| 295 | (semanticdb-find-tags-by-class-method) | ||
| 296 | (semanticdb-deep-find-tags-by-name-method) | ||
| 297 | (semanticdb-deep-find-tags-for-completion-method) | ||
| 298 | (semanticdb-find-tags-external-children-of-type-method): | ||
| 299 | * semantic/idle.el (semantic-idle-work-core-handler) | ||
| 300 | (define-semantic-idle-service, semantic-idle-summary-useful-context-p) | ||
| 301 | (global-semantic-idle-scheduler-mode): | ||
| 302 | * srecode/dictionary.el (srecode-field-value) | ||
| 303 | (srecode-dictionary-add-section-dictionary): | ||
| 304 | Fix typos in docstrings. | ||
| 305 | |||
| 306 | 2010-01-17 Glenn Morris <rgm@gnu.org> | ||
| 307 | |||
| 308 | * semantic/idle.el (semantic-idle-work-for-one-buffer): Doc fix. | ||
| 309 | |||
| 310 | 2010-01-17 Juanma Barranquero <lekktu@gmail.com> | ||
| 311 | |||
| 312 | * semantic.el (semantic-mode): Fix typos in docstrings. | ||
| 313 | |||
| 314 | 2010-01-16 Mario Lang <mlang@delysid.org> | ||
| 315 | |||
| 316 | * ede/cpp-root.el (ede-cpp-root-project): | ||
| 317 | * ede/files.el (ede-expand-filename): | ||
| 318 | * ede/simple.el (ede-simple-project): | ||
| 319 | * semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 320 | (semantic-complete-inline-tag-engine): | ||
| 321 | * semantic/db-el.el (semanticdb-equivalent-mode): | ||
| 322 | * semantic/db-global.el (semanticdb-equivalent-mode): | ||
| 323 | * semantic/db-javascript.el (semanticdb-equivalent-mode): | ||
| 324 | * semantic/db.el (semanticdb-equivalent-mode): | ||
| 325 | * semantic/decorate/include.el (semantic-decoration-unknown-include-describe): | ||
| 326 | * semantic/idle.el (semantic-idle-work-for-one-buffer): | ||
| 327 | Remove duplicated words in doc-strings. | ||
| 328 | |||
| 329 | 2010-01-14 Juanma Barranquero <lekktu@gmail.com> | ||
| 330 | |||
| 331 | * semantic/edit.el (semantic-reparse-needed-change-hook) | ||
| 332 | (semantic-no-reparse-needed-change-hook): | ||
| 333 | * srecode/insert.el (srecode-resolve-argument-list) | ||
| 334 | (srecode-template-inserter-blank, srecode-template-inserter-variable) | ||
| 335 | (srecode-template-inserter-ask, srecode-template-inserter-width) | ||
| 336 | (srecode-template-inserter-section-start) | ||
| 337 | (srecode-template-inserter-section-end, srecode-insert-method): | ||
| 338 | |||
| 339 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | ||
| 340 | |||
| 341 | * data-debug.el (data-debug): Fix customization group reference. | ||
| 342 | |||
| 343 | 2010-01-12 Juanma Barranquero <lekktu@gmail.com> | ||
| 344 | |||
| 345 | * semantic/analyze.el (semantic-analyze-push-error) | ||
| 346 | (semantic-analyze-context, semantic-analyze-context-assignment) | ||
| 347 | (semantic-analyze-find-tag-sequence, semantic-analyze-find-tag): | ||
| 348 | * semantic/java.el (java-mode, semantic-tag-include-filename) | ||
| 349 | (semantic-java-doc-keywords-map): | ||
| 350 | * semantic/bovine/c.el (c-mode, semantic-c-member-of-autocast) | ||
| 351 | (semantic-lex-c-nested-namespace-ignore-second, semantic-parse-region) | ||
| 352 | (semantic-c-parse-lexical-token, semantic-c-debug-mode-init-pch) | ||
| 353 | (semantic-c-classname, semantic-format-tag-uml-prototype) | ||
| 354 | (semantic-c-dereference-namespace, semantic-analyze-type-constants): | ||
| 355 | * semantic/bovine/el.el (semantic-elisp-form-to-doc-string) | ||
| 356 | (semantic-emacs-lisp-obsoleted-doc, semantic-up-context) | ||
| 357 | (semantic-get-local-variables, semantic-end-of-command) | ||
| 358 | (semantic-beginning-of-command, semantic-ctxt-current-class-list) | ||
| 359 | (lisp-mode): | ||
| 360 | * semantic/bovine/make.el (makefile-mode): | ||
| 361 | * semantic/wisent/python.el (wisent-python-string-re) | ||
| 362 | (wisent-python-implicit-line-joining-p, wisent-python-forward-string) | ||
| 363 | (wisent-python-lex-beginning-of-line, wisent-python-lex-end-of-line) | ||
| 364 | (semantic-lex, semantic-get-local-variables, python-mode): | ||
| 365 | * semantic/wisent/python-wy.el (wisent-python-wy--keyword-table): | ||
| 366 | * srecode/extract.el (srecode-extract-state-set) | ||
| 367 | (srecode-extract-method): Fix typos in docstrings. | ||
| 368 | |||
| 369 | 2010-01-10 Chong Yidong <cyd@stupidchicken.com> | ||
| 370 | |||
| 371 | * semantic.el (semantic-new-buffer-setup-functions): | ||
| 372 | Add python parser. | ||
| 373 | |||
| 374 | 2010-01-10 Richard Kim <emacs18@gmail.com> | ||
| 375 | |||
| 376 | * semantic/wisent/python-wy.el: | ||
| 377 | * semantic/wisent/python.el: New files. | ||
| 378 | |||
| 379 | 2010-01-02 Juanma Barranquero <lekktu@gmail.com> | ||
| 380 | |||
| 381 | * semantic/db-typecache.el (semanticdb-typecache-find-default): | ||
| 382 | Fix typo in docstring. | ||
| 383 | |||
| 384 | 2009-12-14 Chong Yidong <cyd@stupidchicken.com> | ||
| 385 | |||
| 386 | * semantic/mru-bookmark.el (global-semantic-mru-bookmark-mode) | ||
| 387 | (semantic-mru-bookmark-mode): Doc fixes. | ||
| 388 | |||
| 389 | * semantic/db.el (semanticdb-cache-get): Use error instead | ||
| 390 | of assert. | ||
| 391 | |||
| 392 | 2009-12-05 Chong Yidong <cyd@stupidchicken.com> | ||
| 393 | |||
| 394 | * semantic/ia.el (semantic-ia-complete-symbol): | ||
| 395 | Make argument optional. | ||
| 396 | |||
| 397 | 2009-12-05 Eric Ludlam <zappo@gnu.org> | ||
| 398 | |||
| 399 | * semantic/bovine/c.el (semantic-c-describe-environment): | ||
| 400 | Describe project macro symbols. | ||
| 401 | |||
| 402 | * semantic/complete.el (semantic-complete-do-completion): | ||
| 403 | Don't call semantic-collector-current-exact-match. | ||
| 404 | |||
| 405 | * ede.el (ede-apply-preprocessor-map): Accept lists of | ||
| 406 | ede-objects as targets. | ||
| 407 | |||
| 408 | * ede/pmake.el (ede-proj-makefile-insert-variables): Output | ||
| 409 | a target's object list even if compiler vars are already in the | ||
| 410 | Makefile. | ||
| 411 | |||
| 412 | * ede/emacs.el (ede-preprocessor-map): Add config.h to the | ||
| 413 | list of headers producing necessary macros. | ||
| 414 | |||
| 415 | 2009-11-24 Glenn Morris <rgm@gnu.org> | ||
| 416 | |||
| 417 | * semantic/idle.el (global-semantic-idle-scheduler-mode): | ||
| 418 | Move after definition of global-semantic-idle-tag-highlight-mode. | ||
| 419 | |||
| 420 | 2009-11-22 Chong Yidong <cyd@stupidchicken.com> | ||
| 421 | |||
| 422 | * srecode/map.el (srecode-get-maps): | ||
| 423 | * semantic/wisent/wisent.el (wisent-parse-toggle-verbose-flag): | ||
| 424 | * semantic/wisent/comp.el (wisent-toggle-verbose-flag): | ||
| 425 | * semantic/decorate/mode.el (semantic-decoration-mode) | ||
| 426 | (semantic-toggle-decoration-style): | ||
| 427 | * semantic/decorate/include.el | ||
| 428 | (semantic-decoration-include-describe) | ||
| 429 | (semantic-decoration-unknown-include-describe) | ||
| 430 | (semantic-decoration-unparsed-include-describe) | ||
| 431 | (semantic-decoration-all-include-summary): | ||
| 432 | * semantic/bovine/c.el (semantic-c-debug-mode-init): | ||
| 433 | * semantic/analyze/complete.el | ||
| 434 | (semantic-analyze-possible-completions): | ||
| 435 | * semantic/util-modes.el (semantic-highlight-edits-mode) | ||
| 436 | (semantic-show-unmatched-syntax-mode) | ||
| 437 | (semantic-show-parser-state-mode, semantic-stickyfunc-mode) | ||
| 438 | (semantic-highlight-func-mode): | ||
| 439 | * semantic/util.el (semantic-describe-buffer): | ||
| 440 | * semantic/symref.el (semantic-symref-find-references-by-name) | ||
| 441 | (semantic-symref-find-tags-by-name) | ||
| 442 | (semantic-symref-find-tags-by-regexp) | ||
| 443 | (semantic-symref-find-tags-by-completion) | ||
| 444 | (semantic-symref-find-file-references-by-name) | ||
| 445 | (semantic-symref-find-text): | ||
| 446 | * semantic/senator.el (senator-copy-tag, senator-kill-tag) | ||
| 447 | (senator-yank-tag): | ||
| 448 | * semantic/scope.el (semantic-calculate-scope): | ||
| 449 | * semantic/mru-bookmark.el (semantic-mru-bookmark-mode): | ||
| 450 | * semantic/idle.el (semantic-idle-scheduler-mode) | ||
| 451 | (define-semantic-idle-service): | ||
| 452 | * semantic/complete.el (semantic-complete-analyze-inline) | ||
| 453 | (semantic-complete-analyze-inline-idle): | ||
| 454 | * semantic/analyze.el (semantic-analyze-current-context): | ||
| 455 | * mode-local.el (describe-mode-local-bindings) | ||
| 456 | (describe-mode-local-bindings-in-mode): | ||
| 457 | * ede/make.el (ede-make-check-version): | ||
| 458 | * ede/locate.el (ede-enable-locate-on-project): | ||
| 459 | * cedet-idutils.el (cedet-idutils-expand-filename) | ||
| 460 | (cedet-idutils-version-check): | ||
| 461 | * cedet-global.el (cedet-gnu-global-expand-filename) | ||
| 462 | (cedet-gnu-global-version-check): | ||
| 463 | * cedet-cscope.el (cedet-cscope-expand-filename) | ||
| 464 | (cedet-cscope-version-check): Use called-interactively-p instead | ||
| 465 | of interactive-p. | ||
| 466 | |||
| 467 | * semantic/ia.el (semantic-ia-completion-format-tag-function): | ||
| 468 | Use semantic-format-tag-prototype. | ||
| 469 | |||
| 470 | 2009-11-21 Chong Yidong <cyd@stupidchicken.com> | ||
| 471 | |||
| 472 | * semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 473 | (semantic-complete-jump-local, semantic-complete-jump): | ||
| 474 | Improve prompt string. | ||
| 475 | |||
| 476 | 2009-11-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 477 | |||
| 478 | * semantic/complete.el (semantic-complete-inline-map): Doc fix. | ||
| 479 | |||
| 480 | * semantic/idle.el (define-semantic-idle-service) | ||
| 481 | (semantic-idle-summary-mode, semantic-idle-completions): Doc fix. | ||
| 482 | |||
| 483 | 2009-11-20 Chong Yidong <cyd@stupidchicken.com> | ||
| 484 | |||
| 485 | * cedet.el (cedet-menu-map): Re-order menu items. | ||
| 486 | |||
| 487 | * semantic.el: Enable idle-mode menu items only if | ||
| 488 | global-semantic-idle-scheduler-mode is enabled. | ||
| 489 | (semantic-default-submodes): Doc fix. | ||
| 490 | |||
| 491 | * semantic/idle.el (global-semantic-idle-scheduler-mode): | ||
| 492 | When turning off, disable other idle modes. | ||
| 493 | |||
| 494 | 2009-11-15 Chong Yidong <cyd@stupidchicken.com> | ||
| 495 | |||
| 496 | * semantic/idle.el (semantic-idle-summary-mode) | ||
| 497 | (semantic-idle-summary-mode): Define using define-minor-mode | ||
| 498 | instead of define-semantic-idle-service. | ||
| 499 | (semantic-idle-summary-mode): New function. | ||
| 500 | (semantic-idle-summary-mode-setup): Use pre-command-hook to ensure | ||
| 501 | that mouse motion does not reset the echo area. | ||
| 502 | |||
| 503 | 2009-11-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 504 | |||
| 505 | * semantic/ctxt.el (semantic-get-local-variables): Disable | ||
| 506 | the progress reporter entirely. | ||
| 507 | |||
| 508 | 2009-11-03 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 509 | |||
| 510 | * semantic/fw.el (semantic/loaddefs): | ||
| 511 | * srecode.el (srecode/loaddefs): | ||
| 512 | * ede.el (ede/loaddefs): Load rather than require. | ||
| 513 | * ede/cpp-root.el: | ||
| 514 | * ede/emacs.el: | ||
| 515 | * ede/files.el: | ||
| 516 | * ede/linux.el: | ||
| 517 | * ede/locate.el: | ||
| 518 | * ede/make.el: | ||
| 519 | * ede/shell.el: | ||
| 520 | * ede/speedbar.el: | ||
| 521 | * ede/system.el: | ||
| 522 | * ede/util.el: | ||
| 523 | * semantic/analyze.el: | ||
| 524 | * semantic/bovine.el: | ||
| 525 | * semantic/complete.el: | ||
| 526 | * semantic/ctxt.el: | ||
| 527 | * semantic/db-file.el: | ||
| 528 | * semantic/db-find.el: | ||
| 529 | * semantic/db-global.el: | ||
| 530 | * semantic/db-mode.el: | ||
| 531 | * semantic/db-typecache.el: | ||
| 532 | * semantic/db.el: | ||
| 533 | * semantic/debug.el: | ||
| 534 | * semantic/dep.el: | ||
| 535 | * semantic/doc.el: | ||
| 536 | * semantic/edit.el: | ||
| 537 | * semantic/find.el: | ||
| 538 | * semantic/format.el: | ||
| 539 | * semantic/html.el: | ||
| 540 | * semantic/ia-sb.el: | ||
| 541 | * semantic/ia.el: | ||
| 542 | * semantic/idle.el: | ||
| 543 | * semantic/lex-spp.el: | ||
| 544 | * semantic/lex.el: | ||
| 545 | * semantic/mru-bookmark.el: | ||
| 546 | * semantic/scope.el: | ||
| 547 | * semantic/senator.el: | ||
| 548 | * semantic/sort.el: | ||
| 549 | * semantic/symref.el: | ||
| 550 | * semantic/tag-file.el: | ||
| 551 | * semantic/tag-ls.el: | ||
| 552 | * semantic/tag-write.el: | ||
| 553 | * semantic/tag.el: | ||
| 554 | * semantic/util-modes.el: | ||
| 555 | * semantic/analyze/complete.el: | ||
| 556 | * semantic/analyze/refs.el: | ||
| 557 | * semantic/bovine/c.el: | ||
| 558 | * semantic/bovine/gcc.el: | ||
| 559 | * semantic/bovine/make.el: | ||
| 560 | * semantic/bovine/scm.el: | ||
| 561 | * semantic/decorate/include.el: | ||
| 562 | * semantic/decorate/mode.el: | ||
| 563 | * semantic/symref/cscope.el: | ||
| 564 | * semantic/symref/global.el: | ||
| 565 | * semantic/symref/grep.el: | ||
| 566 | * semantic/symref/idutils.el: | ||
| 567 | * semantic/symref/list.el: | ||
| 568 | * semantic/wisent/java-tags.el: | ||
| 569 | * semantic/wisent/javascript.el: | ||
| 570 | * srecode/compile.el: | ||
| 571 | * srecode/cpp.el: | ||
| 572 | * srecode/document.el: | ||
| 573 | * srecode/el.el: | ||
| 574 | * srecode/expandproto.el: | ||
| 575 | * srecode/getset.el: | ||
| 576 | * srecode/insert.el: | ||
| 577 | * srecode/java.el: | ||
| 578 | * srecode/map.el: | ||
| 579 | * srecode/mode.el: | ||
| 580 | * srecode/template.el: | ||
| 581 | * srecode/texi.el: Remove the file-local setting of | ||
| 582 | generated-autoload-feature. | ||
| 583 | |||
| 584 | 2009-11-03 Glenn Morris <rgm@gnu.org> | ||
| 585 | |||
| 586 | * mode-local.el (with-mode-local): Doc fix. | ||
| 587 | |||
| 588 | 2009-10-31 Chong Yidong <cyd@stupidchicken.com> | ||
| 589 | |||
| 590 | * cedet.el (cedet-menu-map): Remove Semantic and EDE menu | ||
| 591 | items. | ||
| 592 | |||
| 593 | * ede.el (ede-minor-mode): | ||
| 594 | * semantic.el (semantic-mode): Toggle menu separators. | ||
| 595 | |||
| 596 | 2009-10-31 Glenn Morris <rgm@gnu.org> | ||
| 597 | |||
| 598 | * semantic/tag.el (semantic--tag-link-list-to-buffer): | ||
| 599 | Use mapc rather than mapcar because the return value is never used. | ||
| 600 | |||
| 601 | * srecode/template.el, cedet/semantic/wisent/javascript.el: | ||
| 602 | * semantic/wisent/java-tags.el, cedet/semantic/texi.el: | ||
| 603 | * semantic/html.el: | ||
| 604 | Suppress harmless warnings about setting up semantic-imenu (not | ||
| 605 | part of Emacs) variables. | ||
| 606 | |||
| 607 | 2009-10-30 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 608 | |||
| 609 | * srecode/srt-mode.el (semantic-analyze-possible-completions): | ||
| 610 | * semantic/symref/list.el (semantic-symref-rb-toggle-expand-tag): | ||
| 611 | * semantic/symref/grep.el (semantic-symref-perform-search): | ||
| 612 | * semantic/bovine/gcc.el (semantic-gcc-query): | ||
| 613 | * semantic/bovine/c.el (semantic-c-parse-lexical-token): | ||
| 614 | * semantic/analyze/debug.el (semantic-analyzer-debug-add-buttons) | ||
| 615 | (semantic-analyzer-debug-global-symbol) | ||
| 616 | (semantic-analyzer-debug-missing-innertype) | ||
| 617 | (semantic-analyzer-debug-insert-include-summary): | ||
| 618 | * semantic/util.el (semantic-file-tag-table): | ||
| 619 | (semantic-describe-buffer-var-helper, semantic-something-to-tag-table) | ||
| 620 | (semantic-recursive-find-nonterminal-by-name): | ||
| 621 | * semantic/tag-ls.el (semantic-tag-calculate-parent-default): | ||
| 622 | * semantic/tag-file.el (semantic-prototype-file): | ||
| 623 | * semantic/symref.el (semantic-symref-parse-tool-output): | ||
| 624 | * semantic/sb.el (semantic-sb-fetch-tag-table): | ||
| 625 | * semantic/lex-spp.el (semantic-lex-spp-lex-text-string): | ||
| 626 | * semantic/idle.el (semantic-idle-work-for-one-buffer): | ||
| 627 | (semantic-idle-summary-maybe-highlight): | ||
| 628 | * semantic/ia-sb.el (semantic-ia-speedbar) | ||
| 629 | (semantic-ia-sb-tag-info): | ||
| 630 | * semantic/grammar.el (semantic-analyze-possible-completions): | ||
| 631 | * semantic/find.el (semantic-brute-find-tag-by-position): | ||
| 632 | * semantic/ede-grammar.el (project-compile-target): | ||
| 633 | (ede-proj-makefile-insert-variables): | ||
| 634 | * semantic/debug.el (semantic-debug-set-parser-location): | ||
| 635 | (semantic-debug-set-source-location, semantic-debug-interface-layout) | ||
| 636 | (semantic-debug-mode, semantic-debug): | ||
| 637 | * semantic/db.el (semanticdb-needs-refresh-p): | ||
| 638 | * semantic/db-typecache.el (semanticdb-typecache-refresh-for-buffer): | ||
| 639 | * semantic/db-javascript.el (semanticdb-equivalent-mode): | ||
| 640 | * semantic/db-find.el (semanticdb-find-log-new-search) | ||
| 641 | (semanticdb-find-translate-path-includes--internal) | ||
| 642 | (semanticdb-reset-log, semanticdb-find-log-activity): | ||
| 643 | * semantic/db-file.el (object-write): | ||
| 644 | * semantic/db-el.el (semanticdb-equivalent-mode): | ||
| 645 | * semantic/db-ebrowse.el (semanticdb-ebrowse-C-file-p) | ||
| 646 | (semanticdb-create-ebrowse-database): | ||
| 647 | * semantic/db-debug.el (semanticdb-table-sanity-check): | ||
| 648 | * semantic/complete.el (semantic-displayor-focus-request) | ||
| 649 | (semantic-collector-calculate-completions-raw) | ||
| 650 | (semantic-complete-read-tag-analyzer): | ||
| 651 | * semantic/analyze.el (semantic-analyze-pulse): | ||
| 652 | * ede/util.el (ede-update-version-in-source): | ||
| 653 | * ede/proj.el (project-delete-target): | ||
| 654 | * ede/proj-elisp.el (ede-update-version-in-source) | ||
| 655 | (ede-proj-flush-autoconf): | ||
| 656 | * ede/pconf.el (ede-proj-configure-synchronize) | ||
| 657 | (ede-proj-configure-synchronize): | ||
| 658 | * ede/locate.el (ede-locate-file-in-project-impl): | ||
| 659 | * ede/linux.el (ede-linux-version): | ||
| 660 | * ede/emacs.el (ede-emacs-version): | ||
| 661 | * ede/dired.el (ede-dired-add-to-target): | ||
| 662 | * ede.el (ede-buffer-header-file, ede-find-target) | ||
| 663 | (ede-buffer-documentation-files, ede-project-buffers, ede-set) | ||
| 664 | (ede-target-buffers, ede-buffers, ede-make-project-local-variable): | ||
| 665 | * cedet-idutils.el (cedet-idutils-fnid-call): | ||
| 666 | (cedet-idutils-lid-call, cedet-idutils-expand-filename) | ||
| 667 | (cedet-idutils-version-check): | ||
| 668 | * cedet-global.el (cedet-gnu-global-call): | ||
| 669 | (cedet-gnu-global-expand-filename, cedet-gnu-global-root) | ||
| 670 | (cedet-gnu-global-version-check, cedet-gnu-global-scan-hits): | ||
| 671 | * cedet-cscope.el (cedet-cscope-call) | ||
| 672 | (cedet-cscope-expand-filename, cedet-cscope-version-check): | ||
| 673 | Use with-current-buffer. | ||
| 674 | * ede.el (ede-make-project-local-variable) | ||
| 675 | (ede-set-project-variables, ede-set): Use dolist. | ||
| 676 | |||
| 677 | 2009-10-28 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 678 | |||
| 679 | * mode-local.el (make-obsolete-overload): Add `when' argument. | ||
| 680 | (overload-docstring-extension): Use that info. | ||
| 681 | * semantic/fw.el (semantic-alias-obsolete): Pass the `when' info. | ||
| 682 | * semantic/idle.el (semantic-eldoc-current-symbol-info): | ||
| 683 | * semantic/tag-ls.el (semantic-nonterminal-protection) | ||
| 684 | (semantic-nonterminal-abstract, semantic-nonterminal-leaf) | ||
| 685 | (semantic-nonterminal-full-name): Add the new `when' info. | ||
| 686 | * semantic/decorate/mode.el (semantic/decorate): Require CL for | ||
| 687 | `assert'. | ||
| 688 | |||
| 689 | 2009-10-25 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 690 | |||
| 691 | * semantic/fw.el (semantic-alias-obsolete) | ||
| 692 | (semantic-varalias-obsolete): Make the `when' arg mandatory. | ||
| 693 | (define-mode-overload-implementation): | ||
| 694 | * semantic/decorate/mode.el (semantic-decorate-pending-decoration-hooks): | ||
| 695 | * semantic/wisent.el (wisent-lex-make-token-table): | ||
| 696 | * semantic/util.el (semantic-file-token-stream) | ||
| 697 | (semantic-something-to-stream): | ||
| 698 | * semantic/tag.el (semantic-tag-make-assoc-list) | ||
| 699 | (semantic-expand-nonterminal): | ||
| 700 | * semantic/tag-file.el (semantic-find-nonterminal) | ||
| 701 | (semantic-find-dependency, semantic-find-nonterminal) | ||
| 702 | (semantic-find-dependency): | ||
| 703 | * semantic/lex.el (semantic-flex-start, semantic-flex-end) | ||
| 704 | (semantic-flex-text, semantic-flex-make-keyword-table) | ||
| 705 | (semantic-flex-keyword-p, semantic-flex-keyword-put) | ||
| 706 | (semantic-flex-keyword-get, semantic-flex-map-keywords) | ||
| 707 | (semantic-flex-keywords, semantic-flex-buffer, semantic-flex-list): | ||
| 708 | * semantic/java.el (semantic-java-prototype-nonterminal): | ||
| 709 | * semantic/idle.el (semantic-before-idle-scheduler-reparse-hooks) | ||
| 710 | (semantic-after-idle-scheduler-reparse-hooks): | ||
| 711 | * semantic/edit.el (semantic-edits-incremental-reparse-failed-hooks): | ||
| 712 | * semantic/db-mode.el (semanticdb-mode-hooks): | ||
| 713 | * semantic.el (semantic-toplevel-bovine-table) | ||
| 714 | (semantic-toplevel-bovine-cache) | ||
| 715 | (semantic-before-toplevel-bovination-hook, semantic-init-hooks) | ||
| 716 | (semantic-init-mode-hooks, semantic-init-db-hooks) | ||
| 717 | (semantic-bovination-working-type): Provide the `when' arg. | ||
| 718 | |||
| 719 | 2009-10-24 Chong Yidong <cyd@stupidchicken.com> | ||
| 720 | |||
| 721 | * semantic/util.el (semantic-recursive-find-nonterminal-by-name): | ||
| 722 | * semantic/tag.el (semantic-token-type-parent): Add WHEN | ||
| 723 | argument to make-obsolete. | ||
| 724 | |||
| 725 | * semantic/fw.el (semantic-alias-obsolete) | ||
| 726 | (semantic-varalias-obsolete): Add optional WHEN argument. | ||
| 727 | |||
| 728 | 2009-10-21 Eric Ludlam <zappo@gnu.org> | ||
| 729 | |||
| 730 | * semantic/bovine/c.el (semantic-c-debug-mode-init) | ||
| 731 | (semantic-c-debug-mode-init-pch): New functions. | ||
| 732 | (semantic-c-debug-mode-init-last-mode): New var. | ||
| 733 | (semantic-c-parse-lexical-token): Use them. | ||
| 734 | |||
| 735 | * semantic/lex-spp.el (semantic-lex-spp-anlyzer-do-replace): | ||
| 736 | When extracting the argument list, limit only by point-max. | ||
| 737 | |||
| 738 | 2009-10-17 Chong Yidong <cyd@stupidchicken.com> | ||
| 739 | |||
| 740 | * srecode/srt.el: | ||
| 741 | * srecode/compile.el: | ||
| 742 | * semantic/mru-bookmark.el: | ||
| 743 | * semantic/debug.el: | ||
| 744 | * semantic/complete.el: | ||
| 745 | * semantic/analyze.el: Require CL when compiling. | ||
| 746 | |||
| 747 | 2009-10-17 Eric Ludlam <zappo@gnu.org> | ||
| 748 | |||
| 749 | * semantic/scope.el | ||
| 750 | (semantic-analyze-scoped-inherited-tag-map): Wrap calculation of | ||
| 751 | tmpscope so that the regular scope will continue to work. | ||
| 752 | |||
| 753 | * semantic/idle.el (semantic-idle-tag-highlight): | ||
| 754 | Use semantic-idle-summary-highlight-face as the highlighting. | ||
| 755 | |||
| 756 | * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer | ||
| 757 | contains multibyte characters, choose first applicable coding | ||
| 758 | system automatically. | ||
| 759 | |||
| 760 | * ede/project-am.el (project-run-target): New method. | ||
| 761 | (project-run-target): New method. | ||
| 762 | |||
| 763 | * ede.el (ede-target): Add run target menu item. | ||
| 764 | (ede-project, ede-minor-keymap): Add ede-run-target binding. | ||
| 765 | (ede-run-target): New function. | ||
| 766 | (ede-target::project-run-target): New method. | ||
| 767 | |||
| 768 | * ede/proj.el (project-run-target): New method. | ||
| 769 | |||
| 770 | * ede/proj-shared.el (ede-gcc-libtool-shared-compiler) | ||
| 771 | (ede-g++-libtool-shared-compiler): Remove SHELL. Remove COMMANDS. | ||
| 772 | Add :rules. | ||
| 773 | (ede-proj-target-makefile-shared-object): Only libtool compilers | ||
| 774 | now available. Add linkers for libtool. | ||
| 775 | (ede-cc-linker-libtool, ede-g++-linker-libtool): New. | ||
| 776 | (ede-proj-makefile-target-name): Always use .la extension. | ||
| 777 | |||
| 778 | * ede/proj-prog.el (project-run-target): New method. | ||
| 779 | |||
| 780 | * ede/proj-obj.el (ede-cc-linker): Rename from ede-gcc-linker. | ||
| 781 | (ede-g++-linker): Change Change link lines. | ||
| 782 | |||
| 783 | * ede/pmake.el (ede-pmake-insert-variable-shared): | ||
| 784 | When searching for old variables, go to the end of the buffer and | ||
| 785 | search backward from there. | ||
| 786 | (ede-proj-makefile-automake-insert-subdirs) | ||
| 787 | (ede-proj-makefile-automake-insert-extradist): New methods. | ||
| 788 | (ede-proj-makefile-create): Use them. | ||
| 789 | |||
| 790 | * ede/pconf.el (ede-proj-configure-test-required-file): | ||
| 791 | Force FILE to expand to the current target. Use file-exists-p to | ||
| 792 | check that it exists. | ||
| 793 | |||
| 794 | * ede/linux.el (ede-linux-version): Don't call "head". | ||
| 795 | (ede-linux-load): Wrap dir in file-name-as-directory. | ||
| 796 | Set :version slot. | ||
| 797 | |||
| 798 | * ede/files.el (ede-get-locator-object): When enabling | ||
| 799 | locate, do so on "top". | ||
| 800 | |||
| 801 | * ede/emacs.el (ede-emacs-file-existing): Wrap "dir" in | ||
| 802 | file-name-as-directory during compare. | ||
| 803 | (ede-emacs-version): Return Emacs/XEmacs differentiator. | ||
| 804 | Get version number from different places. Don't call egrep. | ||
| 805 | (ede-emacs-load): Set :version slot. Call file-name-as-directory | ||
| 806 | to set the directory. | ||
| 807 | |||
| 808 | * ede/shell.el: New file. | ||
| 809 | |||
| 810 | * inversion.el (inversion-decoders): Allow for stray . in | ||
| 811 | alpha/beta variants. | ||
| 812 | |||
| 813 | 2009-10-17 Glenn Morris <rgm@gnu.org> | ||
| 814 | |||
| 815 | * semantic/grammar.el (semantic-grammar--lex-delim-spec): | ||
| 816 | All errors should have messages. | ||
| 817 | |||
| 818 | 2009-10-10 Sascha Wilde <wilde@sha-bang.de> | ||
| 819 | |||
| 820 | * ede/proj-shared.el (ede-proj-makefile-target-name): | ||
| 821 | Use .la for Automake. | ||
| 822 | |||
| 823 | 2009-10-09 Chong Yidong <cyd@stupidchicken.com> | ||
| 824 | |||
| 825 | * ede/pconf.el (ede-proj-configure-synchronize): | ||
| 826 | Use "autoreconf -i". Suggested by Andreas Schwab. | ||
| 827 | |||
| 828 | 2009-10-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 829 | |||
| 830 | * ede/proj.el (project-make-dist, project-compile-project): | ||
| 831 | Fix filename test. | ||
| 832 | (ede-proj-dist-makefile): Use expand-file-name instead of concat | ||
| 833 | to expand file names. | ||
| 834 | |||
| 835 | 2009-10-08 Chong Yidong <cyd@stupidchicken.com> | ||
| 836 | |||
| 837 | * ede/proj-obj.el (ede-gcc-linker): New var. | ||
| 838 | (ede-proj-target-makefile-objectcode): Use it. | ||
| 839 | |||
| 840 | * ede/source.el (ede-want-any-source-files-p) | ||
| 841 | (ede-want-any-auxiliary-files-p, ede-want-any-files-p): | ||
| 842 | Return search result. This error was introduced while merging. | ||
| 843 | |||
| 844 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 845 | |||
| 846 | * semantic.el (semantic-new-buffer-setup-functions): New option. | ||
| 847 | (semantic-new-buffer-fcn): Call parser setup functions here. | ||
| 848 | (semantic-mode): Don't call parser setup functions here, it's done | ||
| 849 | in semantic-new-buffer-fcn now. | ||
| 850 | (semantic-mode): Parse all existing buffers when enabled. | ||
| 851 | |||
| 852 | * srecode/compile.el (srecode-compile-file): | ||
| 853 | Call semantic-new-buffer-fcn if the buffer has not been parsed. | ||
| 854 | |||
| 855 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 856 | |||
| 857 | * ede/pmake.el (ede-pmake-insert-variable-once): Delete. | ||
| 858 | |||
| 859 | * ede/proj-comp.el: Don't require ede/pmake at toplevel. | ||
| 860 | (proj-comp-insert-variable-once): New macro, renamed from | ||
| 861 | ede-pmake-insert-variable-once in ede/pmake.edl. | ||
| 862 | (ede-proj-makefile-insert-variables): Use it. | ||
| 863 | |||
| 864 | 2009-10-04 Juanma Barranquero <lekktu@gmail.com> | ||
| 865 | |||
| 866 | * ede/makefile-edit.el (makefile-beginning-of-command) | ||
| 867 | (makefile-end-of-command): | ||
| 868 | * srecode/srt-mode.el (semantic-beginning-of-context) | ||
| 869 | (semantic-end-of-context): Fix previous change. Doc fixes. | ||
| 870 | |||
| 871 | 2009-10-04 Juanma Barranquero <lekktu@gmail.com> | ||
| 872 | |||
| 873 | * ede/makefile-edit.el (makefile-beginning-of-command) | ||
| 874 | (makefile-end-of-command): | ||
| 875 | * semantic/lex.el (semantic-lex-token): | ||
| 876 | * semantic/analyze/fcn.el | ||
| 877 | (semantic-analyze-dereference-metatype-1): | ||
| 878 | * semantic/bovine/c.el (semantic-lex-cpp-define) | ||
| 879 | (semantic-lex-cpp-undef): | ||
| 880 | * semantic/wisent/wisent.el (wisent-skip-block): | ||
| 881 | * srecode/srt-mode.el (semantic-beginning-of-context) | ||
| 882 | (semantic-end-of-context): Fix typos in docstrings. | ||
| 883 | |||
| 884 | 2009-10-04 Chong Yidong <cyd@stupidchicken.com> | ||
| 885 | |||
| 886 | * ede.el (ede-project-placeholder-cache-file): | ||
| 887 | * semantic/db-file.el (semanticdb-default-save-directory): | ||
| 888 | * srecode/map.el (srecode-map-save-file): | ||
| 889 | Use locate-user-emacs-file. Suggested by Juanma Barranquero. | ||
| 890 | |||
| 891 | 2009-10-03 Chong Yidong <cyd@stupidchicken.com> | ||
| 892 | |||
| 893 | * srecode/insert.el: Require srecode/args. | ||
| 894 | |||
| 895 | * srecode/args.el: Require srecode/dictionary instead of | ||
| 896 | srecode/insert. | ||
| 897 | |||
| 898 | * srecode/srt-mode.el (srecode-template-mode): Doc fix. | ||
| 899 | |||
| 900 | * files.el (auto-mode-alist): Add .srt and Project.ede. | ||
| 901 | |||
| 902 | * semantic.el (semantic-mode): | ||
| 903 | Handle srecode-template-mode-hook as well. | ||
| 904 | (semantic-mode): Use js-mode-hook for Javascript hook. | ||
| 905 | |||
| 906 | * srecode/template.el: Remove hook variable. | ||
| 907 | |||
| 908 | * ede/proj-comp.el: Require ede/pmake when compiling. | ||
| 909 | |||
| 910 | * ede.el (ede-target-forms-menu): Don't enable if no | ||
| 911 | projects exist. | ||
| 912 | (ede-project-placeholder-cache-file): Default to a file in | ||
| 913 | user-emacs-directory. | ||
| 914 | |||
| 915 | * srecode/map.el (srecode-map-base-template-dir): Look for | ||
| 916 | templates in data-directory. | ||
| 917 | (srecode-map-save-file): Default to a file in user-emacs-directory. | ||
| 918 | |||
| 919 | * ede/srecode.el (ede-srecode-setup): Use default templates | ||
| 920 | directory. | ||
| 921 | |||
| 922 | 2009-09-30 Eric Ludlam <zappo@gnu.org> | ||
| 923 | |||
| 924 | * semantic/util-modes.el (semantic-highlight-func-mode): | ||
| 925 | Doc fix. | ||
| 926 | |||
| 927 | * ede/proj-comp.el (ede-proj-makefile-insert-variables): | ||
| 928 | Only insert each variable once. | ||
| 929 | |||
| 930 | * ede/pmake.el (ede-pmake-insert-variable-once): New macro. | ||
| 931 | (ede-pmake-insert-variable-shared): Use it. | ||
| 932 | |||
| 933 | * ede/cpp-root.el (ede-preprocessor-map): Do not deref table | ||
| 934 | for lexical table iff table is nil. | ||
| 935 | |||
| 936 | 2009-10-01 Glenn Morris <rgm@gnu.org> | ||
| 937 | |||
| 938 | * semantic/bovine/gcc.el | ||
| 939 | (semantic-c-reset-preprocessor-symbol-map): Fix declaration. | ||
| 940 | (semantic-gcc-get-include-paths, semantic-gcc-setup-data): Doc fixes. | ||
| 941 | |||
| 942 | 2009-10-03 Glenn Morris <rgm@gnu.org> | ||
| 943 | |||
| 944 | * semantic/db-find.el (data-debug-insert-tag-list): Comment out | ||
| 945 | declaration, currently false. | ||
| 946 | |||
| 947 | 2009-10-01 Glenn Morris <rgm@gnu.org> | ||
| 948 | |||
| 949 | * cedet-files.el (cedet-directory-name-to-file-name): | ||
| 950 | * cedet-idutils.el (cedet-idutils-search) | ||
| 951 | (cedet-idutils-expand-filename, cedet-idutils-support-for-directory) | ||
| 952 | (cedet-idutils-version-check): | ||
| 953 | * cedet.el (cedet-version): | ||
| 954 | * data-debug.el (data-debug-insert-overlay-button) | ||
| 955 | (data-debug-insert-overlay-list-button) | ||
| 956 | (data-debug-insert-buffer-button) | ||
| 957 | (data-debug-insert-buffer-list-button) | ||
| 958 | (data-debug-insert-process-button, data-debug-insert-ring-button) | ||
| 959 | (data-debug-insert-widget, data-debug-insert-stuff-list-button) | ||
| 960 | (data-debug-insert-stuff-vector-button) | ||
| 961 | (data-debug-insert-symbol-button, data-debug-insert-string) | ||
| 962 | (data-debug-insert-number, data-debug-insert-lambda-expression) | ||
| 963 | (data-debug-insert-nil, data-debug-insert-simple-thing) | ||
| 964 | (data-debug-insert-custom, data-debug-edebug-expr): | ||
| 965 | * ede.el (ede-auto-add-method, ede-project-class-files) | ||
| 966 | (global-ede-mode-map, ede-new, ede-debug-target) | ||
| 967 | (ede-customize-current-target, ede-buffers, ede-map-buffers, ede-set): | ||
| 968 | * semantic.el (semantic-minimum-working-buffer-size) | ||
| 969 | (semantic-fetch-tags, semantic-submode-list) | ||
| 970 | (semantic-default-submodes): | ||
| 971 | * ede/source.el (ede-source-match): | ||
| 972 | * ede/project-am.el (project-am-type-alist, project-add-file) | ||
| 973 | (project-am-package-info): | ||
| 974 | * ede/proj.el (ede-proj-target, project-new-target): | ||
| 975 | * ede/proj-elisp.el (ede-proj-tweak-autoconf): | ||
| 976 | * ede/proj-comp.el (ede-current-build-list): | ||
| 977 | * ede/makefile-edit.el (makefile-move-to-macro): | ||
| 978 | * ede/files.el (ede-toplevel-project-or-nil): | ||
| 979 | * ede/cpp-root.el (initialize-instance): | ||
| 980 | * ede/autoconf-edit.el (autoconf-find-last-macro) | ||
| 981 | (autoconf-parameter-strip, autoconf-insert-new-macro): | ||
| 982 | * semantic/wisent.el (wisent-lex-eoi): | ||
| 983 | * semantic/util-modes.el (global-semantic-show-parser-state-mode) | ||
| 984 | (semantic-show-parser-state-mode): | ||
| 985 | * semantic/texi.el (semantic-texi-environment-regexp): | ||
| 986 | * semantic/tag.el (semantic-tag-new-variable) | ||
| 987 | (semantic-tag-class, semantic-tag-new-variable, semantic-tag-copy) | ||
| 988 | (semantic--tag-deep-copy-attributes, semantic--tag-deep-copy-value) | ||
| 989 | (semantic--tag-deep-copy-tag-list) | ||
| 990 | (semantic-tag-components-with-overlays-default): | ||
| 991 | * semantic/symref.el (semantic-symref-find-text): | ||
| 992 | * semantic/senator.el (senator-yank-tag) | ||
| 993 | (senator-transpose-tags-up): | ||
| 994 | * semantic/scope.el (semantic-analyze-scoped-tags-default) | ||
| 995 | (semantic-analyze-scoped-inherited-tags, semantic-scope-find): | ||
| 996 | * semantic/sb.el (semantic-sb-autoexpand-length): | ||
| 997 | * semantic/lex.el (semantic-lex-comment-regex) | ||
| 998 | (semantic-lex-maximum-depth, define-lex, semantic-lex-token) | ||
| 999 | (semantic-lex-unterminated-syntax-protection, define-lex-analyzer): | ||
| 1000 | * semantic/lex-spp.el | ||
| 1001 | (semantic-lex-spp-dynamic-macro-symbol-obarray-stack) | ||
| 1002 | (semantic-lex-spp-symbol, semantic-lex-spp-one-token-to-txt): | ||
| 1003 | * semantic/idle.el | ||
| 1004 | (semantic-idle-summary-current-symbol-info-brutish) | ||
| 1005 | (semantic-idle-summary-current-symbol-info-default): | ||
| 1006 | * semantic/grammar.el (semantic-grammar-recreate-package) | ||
| 1007 | (semantic--grammar-macro-compl-dict): | ||
| 1008 | * semantic/grammar-wy.el (semantic-grammar-wy--parse-table): | ||
| 1009 | * semantic/format.el (semantic-format-tag-custom-list) | ||
| 1010 | (semantic-format-tag-canonical-name-default): | ||
| 1011 | * semantic/find.el (semantic-find-tag-by-overlay-in-region) | ||
| 1012 | (semantic-find-tags-for-completion) | ||
| 1013 | (semantic-find-tags-by-scope-protection-default) | ||
| 1014 | (semantic-deep-find-tags-for-completion): | ||
| 1015 | * semantic/edit.el | ||
| 1016 | (semantic-edits-incremental-reparse-failed-hook) | ||
| 1017 | (semantic-edits-verbose-flag, semantic-edits-assert-valid-region) | ||
| 1018 | (semantic-edits-splice-remove, semantic-edits-splice-replace): | ||
| 1019 | * semantic/doc.el (semantic-documentation-comment-preceeding-tag): | ||
| 1020 | * semantic/dep.el (semantic-dependency-include-path): | ||
| 1021 | * semantic/db.el (semanticdb-default-find-index-class) | ||
| 1022 | (semanticdb-match-any-mode, semanticdb-with-match-any-mode) | ||
| 1023 | (semanticdb-project-roots): | ||
| 1024 | * semantic/db-find.el (semanticdb-implied-include-tags) | ||
| 1025 | (semanticdb-find-adebug-insert-scanned-tag-cons) | ||
| 1026 | (semanticdb-find-log-buffer-name, semanticdb-find-result-mapc) | ||
| 1027 | (semanticdb-brute-deep-find-tags-for-completion): | ||
| 1028 | * semantic/db-ebrowse.el (semanticdb-ebrowse-add-tree-to-table): | ||
| 1029 | * semantic/ctxt.el (semantic-beginning-of-context-default) | ||
| 1030 | (semantic-end-of-context-default) | ||
| 1031 | (semantic-ctxt-current-function-default) | ||
| 1032 | (semantic-ctxt-scoped-types-default): | ||
| 1033 | * semantic/complete.el (semantic-complete-read-tag-engine) | ||
| 1034 | (semantic-complete-inline-tag-engine) | ||
| 1035 | (semantic-complete-inline-custom-type) | ||
| 1036 | (semantic-complete-read-tag-analyzer): | ||
| 1037 | * semantic/chart.el (semantic-chart-tags-by-class) | ||
| 1038 | (semantic-chart-database-size): | ||
| 1039 | * semantic/analyze.el (semantic-analyze-current-symbol) | ||
| 1040 | (semantic-analyze-current-context): | ||
| 1041 | * semantic/symref/list.el (semantic-symref) | ||
| 1042 | (semantic-symref-hide-buffer, semantic-symref-symbol): | ||
| 1043 | * semantic/symref/grep.el (semantic-symref-grep-use-template): | ||
| 1044 | * semantic/symref/filter.el (semantic-symref-hits-in-region): | ||
| 1045 | * semantic/bovine/el.el (semantic-elisp-form-to-doc-string): | ||
| 1046 | * semantic/bovine/c.el (semantic-lex-c-preprocessor-symbol-map) | ||
| 1047 | (semantic-c-parse-token-hack-depth, semantic-c--template-name-1) | ||
| 1048 | (semantic-c-dereference-template): | ||
| 1049 | * semantic/analyze/refs.el (semantic--analyze-refs-full-lookup) | ||
| 1050 | (semantic--analyze-refs-full-lookup-with-parents) | ||
| 1051 | (semantic--analyze-refs-full-lookup-simple): | ||
| 1052 | * semantic/analyze/complete.el | ||
| 1053 | (semantic-analyze-possible-completions): | ||
| 1054 | * srecode/table.el (srecode-mode-table-new): | ||
| 1055 | * srecode/srt.el (srecode-read-variable-name): | ||
| 1056 | * srecode/srt-mode.el (srecode-macro-help, srecode-in-macro-p): | ||
| 1057 | * srecode/semantic.el (srecode-semantic-handle-:tag) | ||
| 1058 | (srecode-semantic-handle-:tagtype, srecode-semantic-insert-tag): | ||
| 1059 | * srecode/map.el (srecode-current-map): | ||
| 1060 | * srecode/insert.el (srecode-insert) | ||
| 1061 | (srecode-insert-variable-secondname-handler, srecode-insert-method) | ||
| 1062 | (srecode-template-inserter-point-override) | ||
| 1063 | (srecode-insert-include-lookup): | ||
| 1064 | * srecode/getset.el (srecode-auto-choose-class): | ||
| 1065 | * srecode/extract.el (srecode-inserter-extract): | ||
| 1066 | * srecode/document.el | ||
| 1067 | (srecode-document-autocomment-return-last-alist) | ||
| 1068 | (srecode-document-autocomment-param-type-alist) | ||
| 1069 | (srecode-document-insert-function-comment) | ||
| 1070 | (srecode-document-insert-variable-one-line-comment) | ||
| 1071 | (srecode-document-function-name-comment): | ||
| 1072 | * srecode/dictionary.el (srecode-create-dictionary) | ||
| 1073 | (srecode-compound-toString): | ||
| 1074 | * srecode/compile.el (srecode-flush-active-templates): | ||
| 1075 | * srecode/args.el (srecode-semantic-handle-:blank): | ||
| 1076 | Doc/message fixes. | ||
| 1077 | |||
| 1078 | 2009-10-01 Juanma Barranquero <lekktu@gmail.com> | ||
| 1079 | |||
| 1080 | * semantic/wisent/javat-wy.el | ||
| 1081 | (wisent-java-tags-wy--keyword-table): Use \000 instead of literal ^@. | ||
| 1082 | |||
| 1083 | 2009-09-30 Juanma Barranquero <lekktu@gmail.com> | ||
| 1084 | |||
| 1085 | * srecode/expandproto.el: Fix provide statement. | ||
| 1086 | |||
| 1087 | 2009-09-30 Eric Ludlam <zappo@gnu.org> | ||
| 1088 | |||
| 1089 | * emacs-lisp/eieio.el (boolean-p): Delete. | ||
| 1090 | |||
| 1091 | 2009-09-30 Sascha Wilde <wilde@sha-bang.de> | ||
| 1092 | |||
| 1093 | * ede/srecode.el: Fix provide statement. | ||
| 1094 | |||
| 1095 | 2009-09-30 Glenn Morris <rgm@gnu.org> | ||
| 1096 | |||
| 1097 | * ede/proj.el (ede-proj-target-makefile-miscelaneous): | ||
| 1098 | * ede/proj-aux.el (ede-aux-source): | ||
| 1099 | * ede/proj-misc.el (ede-proj-target-makefile-miscelaneous) | ||
| 1100 | (ede-misc-source): | ||
| 1101 | * semantic/mru-bookmark.el (semantic-mrub-completing-read) | ||
| 1102 | (semantic-mrub-switch-tags): Fix doc typos. | ||
| 1103 | |||
| 1104 | * semantic/db-global.el (data-debug-new-buffer) | ||
| 1105 | (data-debug-insert-thing): Remove unneeded declarations (one broken). | ||
| 1106 | (semanticdb-enable-gnu-global-databases): Fix prompt typo. | ||
| 1107 | |||
| 1108 | * semantic/analyze/fcn.el (semantic-scope-find): Fix declaration. | ||
| 1109 | |||
| 1110 | * semantic/bovine/gcc.el (semantic-gcc-setup): Replace runtime | ||
| 1111 | use of CL function `remove-if-not'. | ||
| 1112 | |||
| 1113 | 2009-09-29 Glenn Morris <rgm@gnu.org> | ||
| 1114 | |||
| 1115 | * semantic/symref/idutils.el: | ||
| 1116 | * semantic/symref/list.el: Relicense under GPLv3+. | ||
| 1117 | |||
| 1118 | * ede/srecode.el (srecode-resolve-arguments): Fix declaration. | ||
| 1119 | |||
| 1120 | * semantic/complete.el (semantic-displayor-focus-abstract-child-p): | ||
| 1121 | * semantic/tag-file.el (semanticdb-table-child-p): | ||
| 1122 | * srecode/compile.el (srecode-template-inserter-newline-child-p): | ||
| 1123 | Mark declarations not understood by check-declare. | ||
| 1124 | |||
| 1125 | 2009-09-28 Eric Ludlam <zappo@gnu.org> | ||
| 1126 | |||
| 1127 | CEDET (development tools) package merged. | ||
| 1128 | |||
| 1129 | * *.el: | ||
| 1130 | * ede/*.el: | ||
| 1131 | * semantic/*.el: | ||
| 1132 | * srecode/*.el: New files. | ||
| 1133 | |||
| 1134 | 2009-09-28 Eric Ludlam <zappo@gnu.org> | ||
| 1135 | |||
| 1136 | * emacs-lisp/chart.el: | ||
| 1137 | * emacs-lisp/eieio-base.el: | ||
| 1138 | * emacs-lisp/eieio-comp.el: | ||
| 1139 | * emacs-lisp/eieio-custom.el: | ||
| 1140 | * emacs-lisp/eieio-datadebug.el: | ||
| 1141 | * emacs-lisp/eieio-opt.el: | ||
| 1142 | * emacs-lisp/eieio-speedbar.el: | ||
| 1143 | * emacs-lisp/eieio.el: New files. | ||
| 1144 | |||
| 1145 | * cedet-cscope.el: | ||
| 1146 | * cedet-files.el: | ||
| 1147 | * cedet-global.el: | ||
| 1148 | * cedet-idutils.el: | ||
| 1149 | * data-debug.el: | ||
| 1150 | * inversion.el: | ||
| 1151 | * mode-local.el: | ||
| 1152 | * pulse.el: New files. | ||
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el index 14b196bbe22..ede96e39183 100644 --- a/lisp/cedet/semantic.el +++ b/lisp/cedet/semantic.el | |||
| @@ -4,7 +4,8 @@ | |||
| 4 | ;; 2008, 2009, 2010 Free Software Foundation, Inc. | 4 | ;; 2008, 2009, 2010 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Eric M. Ludlam <zappo@gnu.org> | 6 | ;; Author: Eric M. Ludlam <zappo@gnu.org> |
| 7 | ;; Keywords: syntax | 7 | ;; Keywords: syntax tools |
| 8 | ;; Version: 2.0 | ||
| 8 | 9 | ||
| 9 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 10 | 11 | ||
| @@ -38,7 +39,7 @@ | |||
| 38 | (require 'semantic/tag) | 39 | (require 'semantic/tag) |
| 39 | (require 'semantic/lex) | 40 | (require 'semantic/lex) |
| 40 | 41 | ||
| 41 | (defvar semantic-version "2.0pre7" | 42 | (defvar semantic-version "2.0" |
| 42 | "Current version of Semantic.") | 43 | "Current version of Semantic.") |
| 43 | 44 | ||
| 44 | (declare-function inversion-test "inversion") | 45 | (declare-function inversion-test "inversion") |
| @@ -875,6 +876,7 @@ Throw away all the old tags, and recreate the tag database." | |||
| 875 | ;; (define-key km "i" 'senator-isearch-toggle-semantic-mode) | 876 | ;; (define-key km "i" 'senator-isearch-toggle-semantic-mode) |
| 876 | (define-key map "\C-c,j" 'semantic-complete-jump-local) | 877 | (define-key map "\C-c,j" 'semantic-complete-jump-local) |
| 877 | (define-key map "\C-c,J" 'semantic-complete-jump) | 878 | (define-key map "\C-c,J" 'semantic-complete-jump) |
| 879 | (define-key map "\C-c,m" 'semantic-complete-jump-local-members) | ||
| 878 | (define-key map "\C-c,g" 'semantic-symref-symbol) | 880 | (define-key map "\C-c,g" 'semantic-symref-symbol) |
| 879 | (define-key map "\C-c,G" 'semantic-symref) | 881 | (define-key map "\C-c,G" 'semantic-symref) |
| 880 | (define-key map "\C-c,p" 'senator-previous-tag) | 882 | (define-key map "\C-c,p" 'senator-previous-tag) |
| @@ -885,6 +887,7 @@ Throw away all the old tags, and recreate the tag database." | |||
| 885 | (define-key map "\C-c,\M-w" 'senator-copy-tag) | 887 | (define-key map "\C-c,\M-w" 'senator-copy-tag) |
| 886 | (define-key map "\C-c,\C-y" 'senator-yank-tag) | 888 | (define-key map "\C-c,\C-y" 'senator-yank-tag) |
| 887 | (define-key map "\C-c,r" 'senator-copy-tag-to-register) | 889 | (define-key map "\C-c,r" 'senator-copy-tag-to-register) |
| 890 | (define-key map "\C-c,," 'semantic-force-refresh) | ||
| 888 | (define-key map [?\C-c ?, up] 'senator-transpose-tags-up) | 891 | (define-key map [?\C-c ?, up] 'senator-transpose-tags-up) |
| 889 | (define-key map [?\C-c ?, down] 'senator-transpose-tags-down) | 892 | (define-key map [?\C-c ?, down] 'senator-transpose-tags-down) |
| 890 | (define-key map "\C-c,l" 'semantic-analyze-possible-completions) | 893 | (define-key map "\C-c,l" 'semantic-analyze-possible-completions) |
| @@ -950,6 +953,9 @@ Throw away all the old tags, and recreate the tag database." | |||
| 950 | (define-key navigate-menu [semantic-complete-jump] | 953 | (define-key navigate-menu [semantic-complete-jump] |
| 951 | '(menu-item "Find Tag Globally..." semantic-complete-jump | 954 | '(menu-item "Find Tag Globally..." semantic-complete-jump |
| 952 | :help "Read a tag name and find it in the current project")) | 955 | :help "Read a tag name and find it in the current project")) |
| 956 | (define-key navigate-menu [semantic-complete-jump-local-members] | ||
| 957 | '(menu-item "Find Local Members ..." semantic-complete-jump-local-members | ||
| 958 | :help "Read a tag name and find a local member with that name")) | ||
| 953 | (define-key navigate-menu [semantic-complete-jump-local] | 959 | (define-key navigate-menu [semantic-complete-jump-local] |
| 954 | '(menu-item "Find Tag in This Buffer..." semantic-complete-jump-local | 960 | '(menu-item "Find Tag in This Buffer..." semantic-complete-jump-local |
| 955 | :help "Read a tag name and find it in this buffer")) | 961 | :help "Read a tag name and find it in this buffer")) |
| @@ -1080,6 +1086,11 @@ Semantic mode. | |||
| 1080 | (require 'semantic/db-ebrowse) | 1086 | (require 'semantic/db-ebrowse) |
| 1081 | (semanticdb-load-ebrowse-caches))) | 1087 | (semanticdb-load-ebrowse-caches))) |
| 1082 | (add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) | 1088 | (add-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) |
| 1089 | ;; Add semantic-ia-complete-symbol to | ||
| 1090 | ;; completion-at-point-functions, so that it is run from | ||
| 1091 | ;; M-TAB. | ||
| 1092 | (add-hook 'completion-at-point-functions | ||
| 1093 | 'semantic-completion-at-point-function) | ||
| 1083 | (if global-ede-mode | 1094 | (if global-ede-mode |
| 1084 | (define-key cedet-menu-map [cedet-menu-separator] '("--"))) | 1095 | (define-key cedet-menu-map [cedet-menu-separator] '("--"))) |
| 1085 | (dolist (b (buffer-list)) | 1096 | (dolist (b (buffer-list)) |
| @@ -1087,6 +1098,8 @@ Semantic mode. | |||
| 1087 | (semantic-new-buffer-fcn)))) | 1098 | (semantic-new-buffer-fcn)))) |
| 1088 | ;; Disable all Semantic features. | 1099 | ;; Disable all Semantic features. |
| 1089 | (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) | 1100 | (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) |
| 1101 | (remove-hook 'completion-at-point-functions | ||
| 1102 | 'semantic-completion-at-point-function) | ||
| 1090 | (define-key cedet-menu-map [cedet-menu-separator] nil) | 1103 | (define-key cedet-menu-map [cedet-menu-separator] nil) |
| 1091 | (define-key cedet-menu-map [semantic-options-separator] nil) | 1104 | (define-key cedet-menu-map [semantic-options-separator] nil) |
| 1092 | ;; FIXME: handle semanticdb-load-ebrowse-caches | 1105 | ;; FIXME: handle semanticdb-load-ebrowse-caches |
| @@ -1094,6 +1107,9 @@ Semantic mode. | |||
| 1094 | (if (and (boundp mode) (eval mode)) | 1107 | (if (and (boundp mode) (eval mode)) |
| 1095 | (funcall mode -1))))) | 1108 | (funcall mode -1))))) |
| 1096 | 1109 | ||
| 1110 | (defun semantic-completion-at-point-function () | ||
| 1111 | 'semantic-ia-complete-symbol) | ||
| 1112 | |||
| 1097 | ;;; Autoload some functions that are not in semantic/loaddefs | 1113 | ;;; Autoload some functions that are not in semantic/loaddefs |
| 1098 | 1114 | ||
| 1099 | (autoload 'global-semantic-idle-completions-mode "semantic/idle" | 1115 | (autoload 'global-semantic-idle-completions-mode "semantic/idle" |
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el index 72e43fe0f82..4009685683b 100644 --- a/lisp/cedet/semantic/analyze.el +++ b/lisp/cedet/semantic/analyze.el | |||
| @@ -253,7 +253,7 @@ Optional argument THROWSYM specifies a symbol the throw on non-recoverable error | |||
| 253 | (tag nil) ; tag return list | 253 | (tag nil) ; tag return list |
| 254 | (tagtype nil) ; tag types return list | 254 | (tagtype nil) ; tag types return list |
| 255 | (fname nil) | 255 | (fname nil) |
| 256 | (miniscope (clone scope)) | 256 | (miniscope (when scope (clone scope))) |
| 257 | ) | 257 | ) |
| 258 | ;; First order check. Is this wholely contained in the typecache? | 258 | ;; First order check. Is this wholely contained in the typecache? |
| 259 | (setq tmp (semanticdb-typecache-find sequence)) | 259 | (setq tmp (semanticdb-typecache-find sequence)) |
| @@ -297,11 +297,12 @@ Optional argument THROWSYM specifies a symbol the throw on non-recoverable error | |||
| 297 | ;; and we can use it directly. | 297 | ;; and we can use it directly. |
| 298 | (cond ((semantic-tag-of-class-p tmp 'type) | 298 | (cond ((semantic-tag-of-class-p tmp 'type) |
| 299 | ;; update the miniscope when we need to analyze types directly. | 299 | ;; update the miniscope when we need to analyze types directly. |
| 300 | (let ((rawscope | 300 | (when miniscope |
| 301 | (apply 'append | 301 | (let ((rawscope |
| 302 | (mapcar 'semantic-tag-type-members | 302 | (apply 'append |
| 303 | tagtype)))) | 303 | (mapcar 'semantic-tag-type-members |
| 304 | (oset miniscope fullscope rawscope)) | 304 | tagtype)))) |
| 305 | (oset miniscope fullscope rawscope))) | ||
| 305 | ;; Now analayze the type to remove metatypes. | 306 | ;; Now analayze the type to remove metatypes. |
| 306 | (or (semantic-analyze-type tmp miniscope) | 307 | (or (semantic-analyze-type tmp miniscope) |
| 307 | tmp)) | 308 | tmp)) |
| @@ -351,7 +352,7 @@ Optional argument SCOPE specifies a scope object which has | |||
| 351 | additional tags which are in SCOPE and do not need prefixing to | 352 | additional tags which are in SCOPE and do not need prefixing to |
| 352 | find. | 353 | find. |
| 353 | 354 | ||
| 354 | This is a wrapper on top of semanticdb, semanticdb-typecache, | 355 | This is a wrapper on top of semanticdb, semanticdb typecache, |
| 355 | semantic-scope, and semantic search functions. Almost all | 356 | semantic-scope, and semantic search functions. Almost all |
| 356 | searches use the same arguments." | 357 | searches use the same arguments." |
| 357 | (let ((namelst (if (consp name) name ;; test if pre-split. | 358 | (let ((namelst (if (consp name) name ;; test if pre-split. |
diff --git a/lisp/cedet/semantic/analyze/complete.el b/lisp/cedet/semantic/analyze/complete.el index 959bae407b1..7f0c7d8a22a 100644 --- a/lisp/cedet/semantic/analyze/complete.el +++ b/lisp/cedet/semantic/analyze/complete.el | |||
| @@ -63,11 +63,15 @@ Used as options when completing.") | |||
| 63 | ;;; MAIN completion calculator | 63 | ;;; MAIN completion calculator |
| 64 | ;; | 64 | ;; |
| 65 | ;;;###autoload | 65 | ;;;###autoload |
| 66 | (define-overloadable-function semantic-analyze-possible-completions (context) | 66 | (define-overloadable-function semantic-analyze-possible-completions (context &rest flags) |
| 67 | "Return a list of semantic tags which are possible completions. | 67 | "Return a list of semantic tags which are possible completions. |
| 68 | CONTEXT is either a position (such as point), or a precalculated | 68 | CONTEXT is either a position (such as point), or a precalculated |
| 69 | context. Passing in a context is useful if the caller also needs | 69 | context. Passing in a context is useful if the caller also needs |
| 70 | to access parts of the analysis. | 70 | to access parts of the analysis. |
| 71 | The remaining FLAGS arguments are passed to the mode specific completion engine. | ||
| 72 | Bad flags should be ignored by modes that don't use them. | ||
| 73 | See `semantic-analyze-possible-completions-default' for details on the default FLAGS. | ||
| 74 | |||
| 71 | Completions run through the following filters: | 75 | Completions run through the following filters: |
| 72 | * Elements currently in scope | 76 | * Elements currently in scope |
| 73 | * Constants currently in scope | 77 | * Constants currently in scope |
| @@ -98,9 +102,13 @@ in a buffer." | |||
| 98 | (get-buffer-window "*Possible Completions*"))) | 102 | (get-buffer-window "*Possible Completions*"))) |
| 99 | ans))) | 103 | ans))) |
| 100 | 104 | ||
| 101 | (defun semantic-analyze-possible-completions-default (context) | 105 | (defun semantic-analyze-possible-completions-default (context &optional flags) |
| 102 | "Default method for producing smart completions. | 106 | "Default method for producing smart completions. |
| 103 | Argument CONTEXT is an object specifying the locally derived context." | 107 | Argument CONTEXT is an object specifying the locally derived context. |
| 108 | The optional argument FLAGS changes which return options are returned. | ||
| 109 | FLAGS can be any number of: | ||
| 110 | 'no-tc - do not apply data-type constraint. | ||
| 111 | 'no-unique - do not apply unique by name filtering." | ||
| 104 | (let* ((a context) | 112 | (let* ((a context) |
| 105 | (desired-type (semantic-analyze-type-constraint a)) | 113 | (desired-type (semantic-analyze-type-constraint a)) |
| 106 | (desired-class (oref a prefixclass)) | 114 | (desired-class (oref a prefixclass)) |
| @@ -109,8 +117,13 @@ Argument CONTEXT is an object specifying the locally derived context." | |||
| 109 | (completetext nil) | 117 | (completetext nil) |
| 110 | (completetexttype nil) | 118 | (completetexttype nil) |
| 111 | (scope (oref a scope)) | 119 | (scope (oref a scope)) |
| 112 | (localvar (oref scope localvar)) | 120 | (localvar (when scope (oref scope localvar))) |
| 113 | (c nil)) | 121 | (origc nil) |
| 122 | (c nil) | ||
| 123 | (any nil) | ||
| 124 | (do-typeconstraint (not (memq 'no-tc flags))) | ||
| 125 | (do-unique (not (memq 'no-unique flags))) | ||
| 126 | ) | ||
| 114 | 127 | ||
| 115 | ;; Calculate what our prefix string is so that we can | 128 | ;; Calculate what our prefix string is so that we can |
| 116 | ;; find all our matching text. | 129 | ;; find all our matching text. |
| @@ -160,33 +173,36 @@ Argument CONTEXT is an object specifying the locally derived context." | |||
| 160 | ;; Argument list and local variables | 173 | ;; Argument list and local variables |
| 161 | (semantic-find-tags-for-completion completetext localvar) | 174 | (semantic-find-tags-for-completion completetext localvar) |
| 162 | ;; The current scope | 175 | ;; The current scope |
| 163 | (semantic-find-tags-for-completion completetext (oref scope fullscope)) | 176 | (semantic-find-tags-for-completion completetext (when scope (oref scope fullscope))) |
| 164 | ;; The world | 177 | ;; The world |
| 165 | (semantic-analyze-find-tags-by-prefix completetext)) | 178 | (semantic-analyze-find-tags-by-prefix completetext)) |
| 166 | ) | 179 | ) |
| 167 | ) | 180 | ) |
| 168 | 181 | ||
| 169 | (let ((origc c) | 182 | (let ((loopc c) |
| 170 | (dtname (semantic-tag-name desired-type))) | 183 | (dtname (semantic-tag-name desired-type))) |
| 171 | 184 | ||
| 185 | ;; Save off our first batch of completions | ||
| 186 | (setq origc c) | ||
| 187 | |||
| 172 | ;; Reset c. | 188 | ;; Reset c. |
| 173 | (setq c nil) | 189 | (setq c nil) |
| 174 | 190 | ||
| 175 | ;; Loop over all the found matches, and catagorize them | 191 | ;; Loop over all the found matches, and catagorize them |
| 176 | ;; as being possible features. | 192 | ;; as being possible features. |
| 177 | (while origc | 193 | (while (and loopc do-typeconstraint) |
| 178 | 194 | ||
| 179 | (cond | 195 | (cond |
| 180 | ;; Strip operators | 196 | ;; Strip operators |
| 181 | ((semantic-tag-get-attribute (car origc) :operator-flag) | 197 | ((semantic-tag-get-attribute (car loopc) :operator-flag) |
| 182 | nil | 198 | nil |
| 183 | ) | 199 | ) |
| 184 | 200 | ||
| 185 | ;; If we are completing from within some prefix, | 201 | ;; If we are completing from within some prefix, |
| 186 | ;; then we want to exclude constructors and destructors | 202 | ;; then we want to exclude constructors and destructors |
| 187 | ((and completetexttype | 203 | ((and completetexttype |
| 188 | (or (semantic-tag-get-attribute (car origc) :constructor-flag) | 204 | (or (semantic-tag-get-attribute (car loopc) :constructor-flag) |
| 189 | (semantic-tag-get-attribute (car origc) :destructor-flag))) | 205 | (semantic-tag-get-attribute (car loopc) :destructor-flag))) |
| 190 | nil | 206 | nil |
| 191 | ) | 207 | ) |
| 192 | 208 | ||
| @@ -197,17 +213,17 @@ Argument CONTEXT is an object specifying the locally derived context." | |||
| 197 | ;; Ok, we now have a completion list based on the text we found | 213 | ;; Ok, we now have a completion list based on the text we found |
| 198 | ;; we want to complete on. Now filter that stream against the | 214 | ;; we want to complete on. Now filter that stream against the |
| 199 | ;; type we want to search for. | 215 | ;; type we want to search for. |
| 200 | ((string= dtname (semantic-analyze-type-to-name (semantic-tag-type (car origc)))) | 216 | ((string= dtname (semantic-analyze-type-to-name (semantic-tag-type (car loopc)))) |
| 201 | (setq c (cons (car origc) c)) | 217 | (setq c (cons (car loopc) c)) |
| 202 | ) | 218 | ) |
| 203 | 219 | ||
| 204 | ;; Now anything that is a compound type which could contain | 220 | ;; Now anything that is a compound type which could contain |
| 205 | ;; additional things which are of the desired type | 221 | ;; additional things which are of the desired type |
| 206 | ((semantic-tag-type (car origc)) | 222 | ((semantic-tag-type (car loopc)) |
| 207 | (let ((att (semantic-analyze-tag-type (car origc) scope)) | 223 | (let ((att (semantic-analyze-tag-type (car loopc) scope)) |
| 208 | ) | 224 | ) |
| 209 | (if (and att (semantic-tag-type-members att)) | 225 | (if (and att (semantic-tag-type-members att)) |
| 210 | (setq c (cons (car origc) c)))) | 226 | (setq c (cons (car loopc) c)))) |
| 211 | ) | 227 | ) |
| 212 | 228 | ||
| 213 | ) ; cond | 229 | ) ; cond |
| @@ -215,11 +231,11 @@ Argument CONTEXT is an object specifying the locally derived context." | |||
| 215 | 231 | ||
| 216 | ;; No desired type, no other restrictions. Just add. | 232 | ;; No desired type, no other restrictions. Just add. |
| 217 | (t | 233 | (t |
| 218 | (setq c (cons (car origc) c))) | 234 | (setq c (cons (car loopc) c))) |
| 219 | 235 | ||
| 220 | ); cond | 236 | ); cond |
| 221 | 237 | ||
| 222 | (setq origc (cdr origc))) | 238 | (setq loopc (cdr loopc))) |
| 223 | 239 | ||
| 224 | (when desired-type | 240 | (when desired-type |
| 225 | ;; Some types, like the enum in C, have special constant values that | 241 | ;; Some types, like the enum in C, have special constant values that |
| @@ -241,15 +257,16 @@ Argument CONTEXT is an object specifying the locally derived context." | |||
| 241 | (when desired-class | 257 | (when desired-class |
| 242 | (setq c (semantic-analyze-tags-of-class-list c desired-class))) | 258 | (setq c (semantic-analyze-tags-of-class-list c desired-class))) |
| 243 | 259 | ||
| 244 | ;; Pull out trash. | 260 | (if do-unique |
| 245 | ;; NOTE TO SELF: Is this too slow? | 261 | (if c |
| 246 | ;; OTHER NOTE: Do we not want to strip duplicates by name and | 262 | ;; Pull out trash. |
| 247 | ;; only by position? When are duplicate by name but not by tag | 263 | ;; NOTE TO SELF: Is this too slow? |
| 248 | ;; useful? | 264 | (setq c (semantic-unique-tag-table-by-name c)) |
| 249 | (setq c (semantic-unique-tag-table-by-name c)) | 265 | (setq c (semantic-unique-tag-table-by-name origc))) |
| 266 | (when (not c) | ||
| 267 | (setq c origc))) | ||
| 250 | 268 | ||
| 251 | ;; All done! | 269 | ;; All done! |
| 252 | |||
| 253 | c)) | 270 | c)) |
| 254 | 271 | ||
| 255 | (provide 'semantic/analyze/complete) | 272 | (provide 'semantic/analyze/complete) |
diff --git a/lisp/cedet/semantic/analyze/debug.el b/lisp/cedet/semantic/analyze/debug.el index 1f253214fcb..490b57bf83a 100644 --- a/lisp/cedet/semantic/analyze/debug.el +++ b/lisp/cedet/semantic/analyze/debug.el | |||
| @@ -54,6 +54,8 @@ | |||
| 54 | 54 | ||
| 55 | )) | 55 | )) |
| 56 | 56 | ||
| 57 | ;; @TODO - If this happens, but the last found type is | ||
| 58 | ;; a datatype, then the below is wrong | ||
| 57 | (defun semantic-analyzer-debug-found-prefix (ctxt) | 59 | (defun semantic-analyzer-debug-found-prefix (ctxt) |
| 58 | "Debug the prefix found by the analyzer output CTXT." | 60 | "Debug the prefix found by the analyzer output CTXT." |
| 59 | (let* ((pf (oref ctxt prefix)) | 61 | (let* ((pf (oref ctxt prefix)) |
| @@ -97,7 +99,7 @@ Argument COMP are possible completions here." | |||
| 97 | ) | 99 | ) |
| 98 | (with-output-to-temp-buffer (help-buffer) | 100 | (with-output-to-temp-buffer (help-buffer) |
| 99 | (with-current-buffer standard-output | 101 | (with-current-buffer standard-output |
| 100 | (princ "Unable to find prefix ") | 102 | (princ "Unable to find symbol ") |
| 101 | (princ prefix) | 103 | (princ prefix) |
| 102 | (princ ".\n\n") | 104 | (princ ".\n\n") |
| 103 | 105 | ||
| @@ -217,7 +219,7 @@ Argument COMP are possible completions here." | |||
| 217 | (when (not dt) (error "Missing Innertype debugger is confused")) | 219 | (when (not dt) (error "Missing Innertype debugger is confused")) |
| 218 | (with-output-to-temp-buffer (help-buffer) | 220 | (with-output-to-temp-buffer (help-buffer) |
| 219 | (with-current-buffer standard-output | 221 | (with-current-buffer standard-output |
| 220 | (princ "Cannot find prefix \"") | 222 | (princ "Cannot find symbol \"") |
| 221 | (princ prefixitem) | 223 | (princ prefixitem) |
| 222 | (princ "\" in datatype: | 224 | (princ "\" in datatype: |
| 223 | ") | 225 | ") |
| @@ -550,24 +552,25 @@ PARENT is a possible parent (by nesting) tag." | |||
| 550 | (let ((str (semantic-format-tag-prototype tag parent))) | 552 | (let ((str (semantic-format-tag-prototype tag parent))) |
| 551 | (if (and (semantic-tag-with-position-p tag) | 553 | (if (and (semantic-tag-with-position-p tag) |
| 552 | (semantic-tag-file-name tag)) | 554 | (semantic-tag-file-name tag)) |
| 553 | (insert-button str | 555 | (with-current-buffer standard-output |
| 554 | 'mouse-face 'custom-button-pressed-face | 556 | (insert-button str |
| 555 | 'tag tag | 557 | 'mouse-face 'custom-button-pressed-face |
| 556 | 'action | 558 | 'tag tag |
| 557 | `(lambda (button) | 559 | 'action |
| 558 | (let ((buff nil) | 560 | `(lambda (button) |
| 559 | (pnt nil)) | 561 | (let ((buff nil) |
| 560 | (save-excursion | 562 | (pnt nil)) |
| 561 | (semantic-go-to-tag | 563 | (save-excursion |
| 562 | (button-get button 'tag)) | 564 | (semantic-go-to-tag |
| 563 | (setq buff (current-buffer)) | 565 | (button-get button 'tag)) |
| 564 | (setq pnt (point))) | 566 | (setq buff (current-buffer)) |
| 565 | (if (get-buffer-window buff) | 567 | (setq pnt (point))) |
| 566 | (select-window (get-buffer-window buff)) | 568 | (if (get-buffer-window buff) |
| 567 | (pop-to-buffer buff t)) | 569 | (select-window (get-buffer-window buff)) |
| 568 | (goto-char pnt) | 570 | (pop-to-buffer buff t)) |
| 569 | (pulse-line-hook-function))) | 571 | (goto-char pnt) |
| 570 | ) | 572 | (pulse-line-hook-function))) |
| 573 | )) | ||
| 571 | (princ "\"") | 574 | (princ "\"") |
| 572 | (princ str) | 575 | (princ str) |
| 573 | (princ "\"")) | 576 | (princ "\"")) |
diff --git a/lisp/cedet/semantic/analyze/refs.el b/lisp/cedet/semantic/analyze/refs.el index 0ccde88ff4a..ec903f0afcc 100644 --- a/lisp/cedet/semantic/analyze/refs.el +++ b/lisp/cedet/semantic/analyze/refs.el | |||
| @@ -104,6 +104,7 @@ Use `semantic-analyze-current-tag' to debug this fcn." | |||
| 104 | "Return the implementations derived in the reference analyzer REFS. | 104 | "Return the implementations derived in the reference analyzer REFS. |
| 105 | Optional argument IN-BUFFER indicates that the returned tag should be in an active buffer." | 105 | Optional argument IN-BUFFER indicates that the returned tag should be in an active buffer." |
| 106 | (let ((allhits (oref refs rawsearchdata)) | 106 | (let ((allhits (oref refs rawsearchdata)) |
| 107 | (tag (oref refs :tag)) | ||
| 107 | (impl nil) | 108 | (impl nil) |
| 108 | ) | 109 | ) |
| 109 | (semanticdb-find-result-mapc | 110 | (semanticdb-find-result-mapc |
| @@ -113,7 +114,8 @@ Optional argument IN-BUFFER indicates that the returned tag should be in an acti | |||
| 113 | (aT (cdr ans)) | 114 | (aT (cdr ans)) |
| 114 | (aDB (car ans)) | 115 | (aDB (car ans)) |
| 115 | ) | 116 | ) |
| 116 | (when (not (semantic-tag-prototype-p aT)) | 117 | (when (and (not (semantic-tag-prototype-p aT)) |
| 118 | (semantic-tag-similar-p tag aT :prototype-flag :parent)) | ||
| 117 | (when in-buffer (save-excursion (semantic-go-to-tag aT aDB))) | 119 | (when in-buffer (save-excursion (semantic-go-to-tag aT aDB))) |
| 118 | (push aT impl)))) | 120 | (push aT impl)))) |
| 119 | allhits) | 121 | allhits) |
| @@ -123,6 +125,7 @@ Optional argument IN-BUFFER indicates that the returned tag should be in an acti | |||
| 123 | "Return the prototypes derived in the reference analyzer REFS. | 125 | "Return the prototypes derived in the reference analyzer REFS. |
| 124 | Optional argument IN-BUFFER indicates that the returned tag should be in an active buffer." | 126 | Optional argument IN-BUFFER indicates that the returned tag should be in an active buffer." |
| 125 | (let ((allhits (oref refs rawsearchdata)) | 127 | (let ((allhits (oref refs rawsearchdata)) |
| 128 | (tag (oref refs :tag)) | ||
| 126 | (proto nil)) | 129 | (proto nil)) |
| 127 | (semanticdb-find-result-mapc | 130 | (semanticdb-find-result-mapc |
| 128 | (lambda (T DB) | 131 | (lambda (T DB) |
| @@ -131,7 +134,8 @@ Optional argument IN-BUFFER indicates that the returned tag should be in an acti | |||
| 131 | (aT (cdr ans)) | 134 | (aT (cdr ans)) |
| 132 | (aDB (car ans)) | 135 | (aDB (car ans)) |
| 133 | ) | 136 | ) |
| 134 | (when (semantic-tag-prototype-p aT) | 137 | (when (and (semantic-tag-prototype-p aT) |
| 138 | (semantic-tag-similar-p tag aT :prototype-flag :parent)) | ||
| 135 | (when in-buffer (save-excursion (semantic-go-to-tag aT aDB))) | 139 | (when in-buffer (save-excursion (semantic-go-to-tag aT aDB))) |
| 136 | (push aT proto)))) | 140 | (push aT proto)))) |
| 137 | allhits) | 141 | allhits) |
| @@ -142,8 +146,8 @@ Optional argument IN-BUFFER indicates that the returned tag should be in an acti | |||
| 142 | (defun semantic--analyze-refs-full-lookup (tag scope) | 146 | (defun semantic--analyze-refs-full-lookup (tag scope) |
| 143 | "Perform a full lookup for all occurrences of TAG in the current project. | 147 | "Perform a full lookup for all occurrences of TAG in the current project. |
| 144 | TAG should be the tag currently under point. | 148 | TAG should be the tag currently under point. |
| 145 | PARENT is the list of tags that are parents to TAG by | 149 | SCOPE is the scope the cursor is in. From this a list of parents is |
| 146 | containment, as opposed to reference." | 150 | derived. If SCOPE does not have parents, then only a simple lookup is done." |
| 147 | (if (not (oref scope parents)) | 151 | (if (not (oref scope parents)) |
| 148 | ;; If this tag has some named parent, but is not | 152 | ;; If this tag has some named parent, but is not |
| 149 | (semantic--analyze-refs-full-lookup-simple tag) | 153 | (semantic--analyze-refs-full-lookup-simple tag) |
| @@ -177,20 +181,36 @@ CLASS is the class of the tag that ought to be returned." | |||
| 177 | ans)) | 181 | ans)) |
| 178 | 182 | ||
| 179 | (defun semantic--analyze-refs-find-tags-with-parent (find-results parents) | 183 | (defun semantic--analyze-refs-find-tags-with-parent (find-results parents) |
| 180 | "Find in FIND-RESULTS all tags with PARNTS. | 184 | "Find in FIND-RESULTS all tags with PARENTS. |
| 181 | NAME is the name of the tag needing finding. | 185 | NAME is the name of the tag needing finding. |
| 182 | PARENTS is a list of names." | 186 | PARENTS is a list of names." |
| 183 | (let ((ans nil)) | 187 | (let ((ans nil) (usingnames nil)) |
| 188 | ;; Loop over the find-results passed in. | ||
| 184 | (semanticdb-find-result-mapc | 189 | (semanticdb-find-result-mapc |
| 185 | (lambda (tag db) | 190 | (lambda (tag db) |
| 186 | (let* ((p (semantic-tag-named-parent tag)) | 191 | (let* ((p (semantic-tag-named-parent tag)) |
| 187 | (ps (when (stringp p) | 192 | (ps (when (stringp p) (semantic-analyze-split-name p)))) |
| 188 | (semantic-analyze-split-name p)))) | ||
| 189 | (when (stringp ps) (setq ps (list ps))) | 193 | (when (stringp ps) (setq ps (list ps))) |
| 190 | (when (and ps (equal ps parents)) | 194 | (when ps |
| 191 | ;; We could optimize this, but it seems unlikely. | 195 | ;; If there is a perfect match, then use it. |
| 192 | (push (list db tag) ans)) | 196 | (if (equal ps parents) |
| 193 | )) | 197 | (push (list db tag) ans)) |
| 198 | ;; No match, find something from our list of using names. | ||
| 199 | ;; Do we need to split UN? | ||
| 200 | (save-excursion | ||
| 201 | (semantic-go-to-tag tag db) | ||
| 202 | (setq usingnames nil) | ||
| 203 | (let ((imports (semantic-ctxt-imported-packages))) | ||
| 204 | ;; Derive the names from all the using statements. | ||
| 205 | (mapc (lambda (T) | ||
| 206 | (setq usingnames | ||
| 207 | (cons (semantic-format-tag-name-from-anything T) usingnames))) | ||
| 208 | imports)) | ||
| 209 | (dolist (UN usingnames) | ||
| 210 | (when (equal (cons UN ps) parents) | ||
| 211 | (push (list db tag) ans) | ||
| 212 | (setq usingnames (cdr usingnames)))) | ||
| 213 | )))) | ||
| 194 | find-results) | 214 | find-results) |
| 195 | ans)) | 215 | ans)) |
| 196 | 216 | ||
| @@ -206,7 +226,7 @@ TAG should be the tag currently under point." | |||
| 206 | ;; Find all hits for the first parent name. | 226 | ;; Find all hits for the first parent name. |
| 207 | (brute (semanticdb-find-tags-collector | 227 | (brute (semanticdb-find-tags-collector |
| 208 | (lambda (table tags) | 228 | (lambda (table tags) |
| 209 | (semanticdb-find-tags-by-name-method table name tags) | 229 | (semanticdb-deep-find-tags-by-name-method table name tags) |
| 210 | ) | 230 | ) |
| 211 | nil nil t)) | 231 | nil nil t)) |
| 212 | ;; Prime the answer. | 232 | ;; Prime the answer. |
| @@ -214,6 +234,7 @@ TAG should be the tag currently under point." | |||
| 214 | ) | 234 | ) |
| 215 | ;; First parent is already search to initialize "brute". | 235 | ;; First parent is already search to initialize "brute". |
| 216 | (setq plist (cdr plist)) | 236 | (setq plist (cdr plist)) |
| 237 | |||
| 217 | ;; Go through the list of parents, and try to find matches. | 238 | ;; Go through the list of parents, and try to find matches. |
| 218 | ;; As we cycle through plist, for each level look for NAME, | 239 | ;; As we cycle through plist, for each level look for NAME, |
| 219 | ;; and compare the named-parent, and also dive into the next item of | 240 | ;; and compare the named-parent, and also dive into the next item of |
| @@ -253,7 +274,8 @@ Only works for tags in the global namespace." | |||
| 253 | (lambda (table tags) | 274 | (lambda (table tags) |
| 254 | (semanticdb-find-tags-by-name-method table name tags) | 275 | (semanticdb-find-tags-by-name-method table name tags) |
| 255 | ) | 276 | ) |
| 256 | nil nil t)) | 277 | nil ;; This may need to be the entire project?? |
| 278 | nil t)) | ||
| 257 | ) | 279 | ) |
| 258 | 280 | ||
| 259 | (when (and (not brute) (not noerror)) | 281 | (when (and (not brute) (not noerror)) |
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index 1f8b96afe0d..011be1cb006 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | (declare-function semantic-brute-find-tag-by-attribute "semantic/find") | 39 | (declare-function semantic-brute-find-tag-by-attribute "semantic/find") |
| 40 | (declare-function semanticdb-minor-mode-p "semantic/db-mode") | 40 | (declare-function semanticdb-minor-mode-p "semantic/db-mode") |
| 41 | (declare-function semanticdb-needs-refresh-p "semantic/db") | 41 | (declare-function semanticdb-needs-refresh-p "semantic/db") |
| 42 | (declare-function semanticdb-typecache-faux-namespace "semantic/db-typecache") | ||
| 42 | (declare-function c-forward-conditional "cc-cmds") | 43 | (declare-function c-forward-conditional "cc-cmds") |
| 43 | (declare-function ede-system-include-path "ede") | 44 | (declare-function ede-system-include-path "ede") |
| 44 | 45 | ||
| @@ -158,7 +159,7 @@ part of the preprocessor map.") | |||
| 158 | Each entry is a cons cell like this: | 159 | Each entry is a cons cell like this: |
| 159 | ( \"KEYWORD\" . \"REPLACEMENT\" ) | 160 | ( \"KEYWORD\" . \"REPLACEMENT\" ) |
| 160 | Where KEYWORD is the macro that gets replaced in the lexical phase, | 161 | Where KEYWORD is the macro that gets replaced in the lexical phase, |
| 161 | and REPLACEMENT is a string that is inserted in it's place. Empty string | 162 | and REPLACEMENT is a string that is inserted in its place. Empty string |
| 162 | implies that the lexical analyzer will discard KEYWORD when it is encountered. | 163 | implies that the lexical analyzer will discard KEYWORD when it is encountered. |
| 163 | 164 | ||
| 164 | Alternately, it can be of the form: | 165 | Alternately, it can be of the form: |
| @@ -295,6 +296,7 @@ Moves completely over balanced #if blocks." | |||
| 295 | (cond | 296 | (cond |
| 296 | ((looking-at "^\\s-*#\\s-*if") | 297 | ((looking-at "^\\s-*#\\s-*if") |
| 297 | ;; We found a nested if. Skip it. | 298 | ;; We found a nested if. Skip it. |
| 299 | ;; @TODO - can we use the new c-scan-conditionals | ||
| 298 | (c-forward-conditional 1)) | 300 | (c-forward-conditional 1)) |
| 299 | ((looking-at "^\\s-*#\\s-*elif") | 301 | ((looking-at "^\\s-*#\\s-*elif") |
| 300 | ;; We need to let the preprocessor analize this one. | 302 | ;; We need to let the preprocessor analize this one. |
| @@ -348,7 +350,6 @@ Uses known macro tables in SPP to determine what block to skip." | |||
| 348 | ;; (message "%s %s yes" ift sym) | 350 | ;; (message "%s %s yes" ift sym) |
| 349 | (beginning-of-line) | 351 | (beginning-of-line) |
| 350 | (setq pt (point)) | 352 | (setq pt (point)) |
| 351 | ;;(c-forward-conditional 1) | ||
| 352 | ;; This skips only a section of a conditional. Once that section | 353 | ;; This skips only a section of a conditional. Once that section |
| 353 | ;; is opened, encountering any new #else or related conditional | 354 | ;; is opened, encountering any new #else or related conditional |
| 354 | ;; should be skipped. | 355 | ;; should be skipped. |
| @@ -356,8 +357,8 @@ Uses known macro tables in SPP to determine what block to skip." | |||
| 356 | (setq semantic-lex-end-point (point)) | 357 | (setq semantic-lex-end-point (point)) |
| 357 | (semantic-push-parser-warning (format "Skip #%s %s" ift sym) | 358 | (semantic-push-parser-warning (format "Skip #%s %s" ift sym) |
| 358 | pt (point)) | 359 | pt (point)) |
| 359 | ;; (semantic-lex-push-token | 360 | ;; (semantic-lex-push-token |
| 360 | ;; (semantic-lex-token 'c-preprocessor-skip pt (point))) | 361 | ;; (semantic-lex-token 'c-preprocessor-skip pt (point))) |
| 361 | nil) | 362 | nil) |
| 362 | ;; Else, don't ignore it, but do handle the internals. | 363 | ;; Else, don't ignore it, but do handle the internals. |
| 363 | ;;(message "%s %s no" ift sym) | 364 | ;;(message "%s %s no" ift sym) |
| @@ -703,58 +704,60 @@ the regular parser." | |||
| 703 | (symtext (semantic-lex-token-text lexicaltoken)) | 704 | (symtext (semantic-lex-token-text lexicaltoken)) |
| 704 | (macros (get-text-property 0 'macros symtext)) | 705 | (macros (get-text-property 0 'macros symtext)) |
| 705 | ) | 706 | ) |
| 706 | (with-current-buffer buf | 707 | (if (> semantic-c-parse-token-hack-depth 5) |
| 707 | (erase-buffer) | 708 | nil |
| 708 | (when (not (eq major-mode mode)) | 709 | (with-current-buffer buf |
| 709 | (save-match-data | 710 | (erase-buffer) |
| 710 | 711 | (when (not (eq major-mode mode)) | |
| 711 | ;; Protect against user hooks throwing errors. | 712 | (save-match-data |
| 712 | (condition-case nil | 713 | |
| 713 | (funcall mode) | 714 | ;; Protect against user hooks throwing errors. |
| 714 | (error | 715 | (condition-case nil |
| 715 | (if (y-or-n-p | 716 | (funcall mode) |
| 716 | (format "There was an error initializing %s in buffer \"%s\". Debug your hooks? " | 717 | (error |
| 717 | mode (buffer-name))) | 718 | (if (y-or-n-p |
| 718 | (semantic-c-debug-mode-init mode) | 719 | (format "There was an error initializing %s in buffer \"%s\". Debug your hooks? " |
| 719 | (message "Macro parsing state may be broken...") | 720 | mode (buffer-name))) |
| 720 | (sit-for 1)))) | 721 | (semantic-c-debug-mode-init mode) |
| 721 | ) ; save match data | 722 | (message "Macro parsing state may be broken...") |
| 722 | 723 | (sit-for 1)))) | |
| 723 | ;; Hack in mode-local | 724 | ) ; save match data |
| 724 | (activate-mode-local-bindings) | 725 | |
| 725 | ;; CHEATER! The following 3 lines are from | 726 | ;; Hack in mode-local |
| 726 | ;; `semantic-new-buffer-fcn', but we don't want to turn | 727 | (activate-mode-local-bindings) |
| 727 | ;; on all the other annoying modes for this little task. | 728 | ;; CHEATER! The following 3 lines are from |
| 728 | (setq semantic-new-buffer-fcn-was-run t) | 729 | ;; `semantic-new-buffer-fcn', but we don't want to turn |
| 729 | (semantic-lex-init) | 730 | ;; on all the other annoying modes for this little task. |
| 730 | (semantic-clear-toplevel-cache) | 731 | (setq semantic-new-buffer-fcn-was-run t) |
| 731 | (remove-hook 'semantic-lex-reset-hooks 'semantic-lex-spp-reset-hook | 732 | (semantic-lex-init) |
| 732 | t) | 733 | (semantic-clear-toplevel-cache) |
| 733 | ) | 734 | (remove-hook 'semantic-lex-reset-hooks 'semantic-lex-spp-reset-hook |
| 734 | ;; Get the macro symbol table right. | 735 | t) |
| 735 | (setq semantic-lex-spp-dynamic-macro-symbol-obarray spp-syms) | 736 | ) |
| 736 | ;; (message "%S" macros) | 737 | ;; Get the macro symbol table right. |
| 737 | (dolist (sym macros) | 738 | (setq semantic-lex-spp-dynamic-macro-symbol-obarray spp-syms) |
| 738 | (semantic-lex-spp-symbol-set (car sym) (cdr sym))) | 739 | ;; (message "%S" macros) |
| 739 | 740 | (dolist (sym macros) | |
| 740 | (insert symtext) | 741 | (semantic-lex-spp-symbol-set (car sym) (cdr sym))) |
| 741 | 742 | ||
| 742 | (setq stream | 743 | (insert symtext) |
| 743 | (semantic-parse-region-default | 744 | |
| 744 | (point-min) (point-max) nonterminal depth returnonerror)) | 745 | (setq stream |
| 745 | 746 | (semantic-parse-region-default | |
| 746 | ;; Clean up macro symbols | 747 | (point-min) (point-max) nonterminal depth returnonerror)) |
| 747 | (dolist (sym macros) | 748 | |
| 748 | (semantic-lex-spp-symbol-remove (car sym))) | 749 | ;; Clean up macro symbols |
| 749 | 750 | (dolist (sym macros) | |
| 750 | ;; Convert the text of the stream. | 751 | (semantic-lex-spp-symbol-remove (car sym))) |
| 751 | (dolist (tag stream) | 752 | |
| 752 | ;; Only do two levels here 'cause I'm lazy. | 753 | ;; Convert the text of the stream. |
| 753 | (semantic--tag-set-overlay tag (list start end)) | 754 | (dolist (tag stream) |
| 754 | (dolist (stag (semantic-tag-components-with-overlays tag)) | 755 | ;; Only do two levels here 'cause I'm lazy. |
| 755 | (semantic--tag-set-overlay stag (list start end)) | 756 | (semantic--tag-set-overlay tag (list start end)) |
| 756 | )) | 757 | (dolist (stag (semantic-tag-components-with-overlays tag)) |
| 757 | ) | 758 | (semantic--tag-set-overlay stag (list start end)) |
| 759 | )) | ||
| 760 | )) | ||
| 758 | stream)) | 761 | stream)) |
| 759 | 762 | ||
| 760 | (defvar semantic-c-debug-mode-init-last-mode nil | 763 | (defvar semantic-c-debug-mode-init-last-mode nil |
| @@ -920,8 +923,34 @@ now. | |||
| 920 | ;; of type "typedef". | 923 | ;; of type "typedef". |
| 921 | ;; Each elt of NAME is ( STARS NAME ) | 924 | ;; Each elt of NAME is ( STARS NAME ) |
| 922 | (let ((vl nil) | 925 | (let ((vl nil) |
| 923 | (names (semantic-tag-name tag))) | 926 | (names (semantic-tag-name tag)) |
| 927 | (super (semantic-tag-get-attribute tag :superclasses)) | ||
| 928 | (addlast nil)) | ||
| 929 | |||
| 930 | (when (and (semantic-tag-of-type-p tag "typedef") | ||
| 931 | (semantic-tag-of-class-p super 'type) | ||
| 932 | (semantic-tag-type-members super)) | ||
| 933 | ;; This is a typedef of a real type. Extract | ||
| 934 | ;; the super class, and stick it into the tags list. | ||
| 935 | (setq addlast super) | ||
| 936 | |||
| 937 | ;; Clone super and remove the members IFF super has a name. | ||
| 938 | ;; Note: anonymous struct/enums that are typedef'd shouldn't | ||
| 939 | ;; exist in the top level type list, so they will appear only | ||
| 940 | ;; in the :typedef slot of the typedef. | ||
| 941 | (setq super (semantic-tag-clone super)) | ||
| 942 | (if (not (string= (semantic-tag-name super) "")) | ||
| 943 | (semantic-tag-put-attribute super :members nil) | ||
| 944 | (setq addlast nil)) | ||
| 945 | |||
| 946 | ;; Add in props to the full superclass. | ||
| 947 | (when addlast | ||
| 948 | (semantic--tag-copy-properties tag addlast) | ||
| 949 | (semantic--tag-set-overlay addlast (semantic-tag-overlay tag))) | ||
| 950 | ) | ||
| 951 | |||
| 924 | (while names | 952 | (while names |
| 953 | |||
| 925 | (setq vl (cons (semantic-tag-new-type | 954 | (setq vl (cons (semantic-tag-new-type |
| 926 | (nth 1 (car names)) ; name | 955 | (nth 1 (car names)) ; name |
| 927 | "typedef" | 956 | "typedef" |
| @@ -938,16 +967,18 @@ now. | |||
| 938 | ;; is expanded out as. Just the | 967 | ;; is expanded out as. Just the |
| 939 | ;; name shows up as a parent of this | 968 | ;; name shows up as a parent of this |
| 940 | ;; typedef. | 969 | ;; typedef. |
| 941 | :typedef | 970 | :typedef super |
| 942 | (semantic-tag-get-attribute tag :superclasses) | ||
| 943 | ;;(semantic-tag-type-superclasses tag) | 971 | ;;(semantic-tag-type-superclasses tag) |
| 944 | :documentation | 972 | :documentation |
| 945 | (semantic-tag-docstring tag)) | 973 | (semantic-tag-docstring tag)) |
| 946 | vl)) | 974 | vl)) |
| 947 | (semantic--tag-copy-properties tag (car vl)) | 975 | (semantic--tag-copy-properties tag (car vl)) |
| 948 | (semantic--tag-set-overlay (car vl) | 976 | (semantic--tag-set-overlay (car vl) (semantic-tag-overlay tag)) |
| 949 | (semantic-tag-overlay tag)) | ||
| 950 | (setq names (cdr names))) | 977 | (setq names (cdr names))) |
| 978 | |||
| 979 | ;; Add typedef superclass last. | ||
| 980 | (when addlast (setq vl (cons addlast vl))) | ||
| 981 | |||
| 951 | vl)) | 982 | vl)) |
| 952 | ((and (listp (car tag)) | 983 | ((and (listp (car tag)) |
| 953 | (semantic-tag-of-class-p (car tag) 'variable)) | 984 | (semantic-tag-of-class-p (car tag) 'variable)) |
| @@ -999,6 +1030,7 @@ Optional argument STAR and REF indicate the number of * and & in the typedef." | |||
| 999 | (car tokenpart))) | 1030 | (car tokenpart))) |
| 1000 | (and (stringp (car (nth 2 tokenpart))) | 1031 | (and (stringp (car (nth 2 tokenpart))) |
| 1001 | (string= (car (nth 2 tokenpart)) (car tokenpart))) | 1032 | (string= (car (nth 2 tokenpart)) (car tokenpart))) |
| 1033 | (nth 10 tokenpart) ; initializers | ||
| 1002 | ) | 1034 | ) |
| 1003 | (not (car (nth 3 tokenpart))))) | 1035 | (not (car (nth 3 tokenpart))))) |
| 1004 | (fcnpointer (string-match "^\\*" (car tokenpart))) | 1036 | (fcnpointer (string-match "^\\*" (car tokenpart))) |
| @@ -1029,7 +1061,10 @@ Optional argument STAR and REF indicate the number of * and & in the typedef." | |||
| 1029 | (semantic-tag-new-type | 1061 | (semantic-tag-new-type |
| 1030 | ;; name | 1062 | ;; name |
| 1031 | (or (car semantic-c-classname) | 1063 | (or (car semantic-c-classname) |
| 1032 | (car (nth 2 tokenpart))) | 1064 | (let ((split (semantic-analyze-split-name-c-mode |
| 1065 | (car (nth 2 tokenpart))))) | ||
| 1066 | (if (stringp split) split | ||
| 1067 | (car (last split))))) | ||
| 1033 | ;; type | 1068 | ;; type |
| 1034 | (or (cdr semantic-c-classname) | 1069 | (or (cdr semantic-c-classname) |
| 1035 | "class") | 1070 | "class") |
| @@ -1580,6 +1615,48 @@ DO NOT return the list of tags encompassing point." | |||
| 1580 | tagreturn | 1615 | tagreturn |
| 1581 | )) | 1616 | )) |
| 1582 | 1617 | ||
| 1618 | (define-mode-local-override semantic-ctxt-imported-packages c++-mode (&optional point) | ||
| 1619 | "Return the list of using tag types in scope of POINT." | ||
| 1620 | (when point (goto-char (point))) | ||
| 1621 | (let ((tagsaroundpoint (semantic-find-tag-by-overlay)) | ||
| 1622 | (namereturn nil) | ||
| 1623 | (tmp nil) | ||
| 1624 | ) | ||
| 1625 | ;; Collect using statements from the top level. | ||
| 1626 | (setq tmp (semantic-find-tags-by-class 'using (current-buffer))) | ||
| 1627 | (dolist (T tmp) (setq namereturn (cons (semantic-tag-type T) namereturn))) | ||
| 1628 | ;; Move through the tags around point looking for more using statements | ||
| 1629 | (while (cdr tagsaroundpoint) ; don't search the last one | ||
| 1630 | (setq tmp (semantic-find-tags-by-class 'using (semantic-tag-components (car tagsaroundpoint)))) | ||
| 1631 | (dolist (T tmp) (setq namereturn (cons (semantic-tag-type T) namereturn))) | ||
| 1632 | (setq tagsaroundpoint (cdr tagsaroundpoint)) | ||
| 1633 | ) | ||
| 1634 | namereturn)) | ||
| 1635 | |||
| 1636 | (define-mode-local-override semanticdb-expand-nested-tag c++-mode (tag) | ||
| 1637 | "Expand TAG if it has a fully qualified name. | ||
| 1638 | For types with a :parent, create faux namespaces to put TAG into." | ||
| 1639 | (let ((p (semantic-tag-get-attribute tag :parent))) | ||
| 1640 | (if (and p (semantic-tag-of-class-p tag 'type)) | ||
| 1641 | ;; Expand the tag | ||
| 1642 | (let ((s (semantic-analyze-split-name p)) | ||
| 1643 | (newtag (semantic-tag-copy tag nil t))) | ||
| 1644 | ;; Erase the qualified name. | ||
| 1645 | (semantic-tag-put-attribute newtag :parent nil) | ||
| 1646 | ;; Fixup the namespace name | ||
| 1647 | (setq s (if (stringp s) (list s) (nreverse s))) | ||
| 1648 | ;; Loop over all the parents, creating the nested | ||
| 1649 | ;; namespace. | ||
| 1650 | (require 'semantic/db-typecache) | ||
| 1651 | (dolist (namespace s) | ||
| 1652 | (setq newtag (semanticdb-typecache-faux-namespace | ||
| 1653 | namespace (list newtag))) | ||
| 1654 | ) | ||
| 1655 | ;; Return the last created namespace. | ||
| 1656 | newtag) | ||
| 1657 | ;; Else, return tag unmodified. | ||
| 1658 | tag))) | ||
| 1659 | |||
| 1583 | (define-mode-local-override semantic-get-local-variables c++-mode () | 1660 | (define-mode-local-override semantic-get-local-variables c++-mode () |
| 1584 | "Do what `semantic-get-local-variables' does, plus add `this' if needed." | 1661 | "Do what `semantic-get-local-variables' does, plus add `this' if needed." |
| 1585 | (let* ((origvar (semantic-get-local-variables-default)) | 1662 | (let* ((origvar (semantic-get-local-variables-default)) |
| @@ -1759,7 +1836,9 @@ DO NOT return the list of tags encompassing point." | |||
| 1759 | (princ "\n") | 1836 | (princ "\n") |
| 1760 | )) | 1837 | )) |
| 1761 | 1838 | ||
| 1762 | (when (arrayp semantic-lex-spp-project-macro-symbol-obarray) | 1839 | (when (and (boundp 'ede-object) |
| 1840 | ede-object | ||
| 1841 | (arrayp semantic-lex-spp-project-macro-symbol-obarray)) | ||
| 1763 | (princ "\n Project symbol map:\n") | 1842 | (princ "\n Project symbol map:\n") |
| 1764 | (princ " Your project symbol map is derived from the EDE object:\n ") | 1843 | (princ " Your project symbol map is derived from the EDE object:\n ") |
| 1765 | (princ (object-print ede-object)) | 1844 | (princ (object-print ede-object)) |
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index d72b12083a0..1f8ee260ade 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el | |||
| @@ -1206,6 +1206,27 @@ Uses semanticdb for searching all tags in the current project." | |||
| 1206 | (require 'semantic/db-find) | 1206 | (require 'semantic/db-find) |
| 1207 | (semanticdb-brute-deep-find-tags-for-completion prefix (oref obj path))) | 1207 | (semanticdb-brute-deep-find-tags-for-completion prefix (oref obj path))) |
| 1208 | 1208 | ||
| 1209 | ;;; Current Datatype member search. | ||
| 1210 | (defclass semantic-collector-local-members (semantic-collector-project-abstract) | ||
| 1211 | ((scope :initform nil | ||
| 1212 | :type (or null semantic-scope-cache) | ||
| 1213 | :documentation | ||
| 1214 | "The scope the local members are being completed from.")) | ||
| 1215 | "Completion engine for tags in a project.") | ||
| 1216 | |||
| 1217 | (defmethod semantic-collector-calculate-completions-raw | ||
| 1218 | ((obj semantic-collector-local-members) prefix completionlist) | ||
| 1219 | "Calculate the completions for prefix from completionlist." | ||
| 1220 | (let* ((scope (or (oref obj scope) | ||
| 1221 | (oset obj scope (semantic-calculate-scope)))) | ||
| 1222 | (localstuff (oref scope scope))) | ||
| 1223 | (list | ||
| 1224 | (cons | ||
| 1225 | (oref scope :table) | ||
| 1226 | (semantic-find-tags-for-completion prefix localstuff))))) | ||
| 1227 | ;(semanticdb-brute-deep-find-tags-for-completion prefix (oref obj path)))) | ||
| 1228 | |||
| 1229 | ;;; Smart completion collector | ||
| 1209 | (defclass semantic-collector-analyze-completions (semantic-collector-abstract) | 1230 | (defclass semantic-collector-analyze-completions (semantic-collector-abstract) |
| 1210 | ((context :initarg :context | 1231 | ((context :initarg :context |
| 1211 | :type semantic-analyze-context | 1232 | :type semantic-analyze-context |
| @@ -1800,6 +1821,28 @@ HISTORY is a symbol representing a variable to store the history in." | |||
| 1800 | history) | 1821 | history) |
| 1801 | ) | 1822 | ) |
| 1802 | 1823 | ||
| 1824 | (defun semantic-complete-read-tag-local-members (prompt &optional | ||
| 1825 | default-tag | ||
| 1826 | initial-input | ||
| 1827 | history) | ||
| 1828 | "Ask for a tag by name from the local type members. | ||
| 1829 | Available tags are from the the current scope. | ||
| 1830 | Completion options are presented in a traditional way, with highlighting | ||
| 1831 | to resolve same-name collisions. | ||
| 1832 | PROMPT is a string to prompt with. | ||
| 1833 | DEFAULT-TAG is a semantic tag or string to use as the default value. | ||
| 1834 | If INITIAL-INPUT is non-nil, insert it in the minibuffer initially. | ||
| 1835 | HISTORY is a symbol representing a variable to store the history in." | ||
| 1836 | (semantic-complete-read-tag-engine | ||
| 1837 | (semantic-collector-local-members prompt :buffer (current-buffer)) | ||
| 1838 | (semantic-displayor-traditional-with-focus-highlight "simple") | ||
| 1839 | ;;(semantic-displayor-tooltip "simple") | ||
| 1840 | prompt | ||
| 1841 | default-tag | ||
| 1842 | initial-input | ||
| 1843 | history) | ||
| 1844 | ) | ||
| 1845 | |||
| 1803 | (defun semantic-complete-read-tag-project (prompt &optional | 1846 | (defun semantic-complete-read-tag-project (prompt &optional |
| 1804 | default-tag | 1847 | default-tag |
| 1805 | initial-input | 1848 | initial-input |
| @@ -1979,7 +2022,7 @@ completion works." | |||
| 1979 | 2022 | ||
| 1980 | ;;;###autoload | 2023 | ;;;###autoload |
| 1981 | (defun semantic-complete-jump-local () | 2024 | (defun semantic-complete-jump-local () |
| 1982 | "Jump to a semantic symbol." | 2025 | "Jump to a local semantic symbol." |
| 1983 | (interactive) | 2026 | (interactive) |
| 1984 | (let ((tag (semantic-complete-read-tag-buffer-deep "Jump to symbol: "))) | 2027 | (let ((tag (semantic-complete-read-tag-buffer-deep "Jump to symbol: "))) |
| 1985 | (when (semantic-tag-p tag) | 2028 | (when (semantic-tag-p tag) |
| @@ -2005,6 +2048,23 @@ completion works." | |||
| 2005 | (semantic-tag-name tag))))) | 2048 | (semantic-tag-name tag))))) |
| 2006 | 2049 | ||
| 2007 | ;;;###autoload | 2050 | ;;;###autoload |
| 2051 | (defun semantic-complete-jump-local-members () | ||
| 2052 | "Jump to a semantic symbol." | ||
| 2053 | (interactive) | ||
| 2054 | (let* ((tag (semantic-complete-read-tag-local-members "Jump to symbol: "))) | ||
| 2055 | (when (semantic-tag-p tag) | ||
| 2056 | (let ((start (condition-case nil (semantic-tag-start tag) | ||
| 2057 | (error nil)))) | ||
| 2058 | (unless start | ||
| 2059 | (error "Tag %s has no location" (semantic-format-tag-prototype tag))) | ||
| 2060 | (push-mark) | ||
| 2061 | (goto-char start) | ||
| 2062 | (semantic-momentary-highlight-tag tag) | ||
| 2063 | (message "%S: %s " | ||
| 2064 | (semantic-tag-class tag) | ||
| 2065 | (semantic-tag-name tag)))))) | ||
| 2066 | |||
| 2067 | ;;;###autoload | ||
| 2008 | (defun semantic-complete-analyze-and-replace () | 2068 | (defun semantic-complete-analyze-and-replace () |
| 2009 | "Perform prompt completion to do in buffer completion. | 2069 | "Perform prompt completion to do in buffer completion. |
| 2010 | `semantic-analyze-possible-completions' is used to determine the | 2070 | `semantic-analyze-possible-completions' is used to determine the |
| @@ -2075,15 +2135,17 @@ use `semantic-complete-analyze-inline' to complete." | |||
| 2075 | 2135 | ||
| 2076 | ;; Prepare for doing completion, but exit quickly if there is keyboard | 2136 | ;; Prepare for doing completion, but exit quickly if there is keyboard |
| 2077 | ;; input. | 2137 | ;; input. |
| 2078 | (when (and (not (semantic-exit-on-input 'csi | 2138 | (when (save-window-excursion |
| 2079 | (semantic-fetch-tags) | 2139 | (save-excursion |
| 2080 | (semantic-throw-on-input 'csi) | 2140 | (and (not (semantic-exit-on-input 'csi |
| 2081 | nil)) | 2141 | (semantic-fetch-tags) |
| 2082 | (= arg 1) | 2142 | (semantic-throw-on-input 'csi) |
| 2083 | (not (semantic-exit-on-input 'csi | 2143 | nil)) |
| 2084 | (semantic-analyze-current-context) | 2144 | (= arg 1) |
| 2085 | (semantic-throw-on-input 'csi) | 2145 | (not (semantic-exit-on-input 'csi |
| 2086 | nil))) | 2146 | (semantic-analyze-current-context) |
| 2147 | (semantic-throw-on-input 'csi) | ||
| 2148 | nil))))) | ||
| 2087 | (condition-case nil | 2149 | (condition-case nil |
| 2088 | (semantic-complete-analyze-inline) | 2150 | (semantic-complete-analyze-inline) |
| 2089 | ;; Ignore errors. Seems likely that we'll get some once in a while. | 2151 | ;; Ignore errors. Seems likely that we'll get some once in a while. |
diff --git a/lisp/cedet/semantic/ctxt.el b/lisp/cedet/semantic/ctxt.el index 3561bc7bea1..b158adffc14 100644 --- a/lisp/cedet/semantic/ctxt.el +++ b/lisp/cedet/semantic/ctxt.el | |||
| @@ -599,12 +599,18 @@ that may or may not have a name.)") | |||
| 599 | "Return a list of scoped types by name for the current context at POINT. | 599 | "Return a list of scoped types by name for the current context at POINT. |
| 600 | This is very different for various languages, and does nothing unless | 600 | This is very different for various languages, and does nothing unless |
| 601 | overridden." | 601 | overridden." |
| 602 | (if point (goto-char point)) | 602 | nil) |
| 603 | (let ((case-fold-search semantic-case-fold)) | 603 | |
| 604 | ;; We need to look at TYPES within the bounds of locally parse arguments. | 604 | (define-overloadable-function semantic-ctxt-imported-packages (&optional point) |
| 605 | ;; C needs to find using statements and the like too. Bleh. | 605 | "Return a list of package tags or names which are being imported at POINT. |
| 606 | nil | 606 | The return value is a list of strings which are package names |
| 607 | )) | 607 | that are implied in code. Thus a C++ symbol: |
| 608 | foo::bar(); | ||
| 609 | where there is a statement such as: | ||
| 610 | using baz; | ||
| 611 | means that the first symbol might be: | ||
| 612 | baz::foo::bar();" | ||
| 613 | nil) | ||
| 608 | 614 | ||
| 609 | (provide 'semantic/ctxt) | 615 | (provide 'semantic/ctxt) |
| 610 | 616 | ||
diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el index 95d634920b5..3c96290cc93 100644 --- a/lisp/cedet/semantic/db-file.el +++ b/lisp/cedet/semantic/db-file.el | |||
| @@ -245,7 +245,7 @@ If DB is not specified, then use the current database." | |||
| 245 | ;; @todo - It should ask if we are not called from a hook. | 245 | ;; @todo - It should ask if we are not called from a hook. |
| 246 | ;; How? | 246 | ;; How? |
| 247 | (if (or supress-questions | 247 | (if (or supress-questions |
| 248 | (y-or-n-p (format "Skip Error: %S ?" (car (cdr foo))))) | 248 | (y-or-n-p (format "Skip Error: %s ?" (car (cdr foo))))) |
| 249 | (message "Save Error: %S: %s" (car (cdr foo)) | 249 | (message "Save Error: %S: %s" (car (cdr foo)) |
| 250 | objname) | 250 | objname) |
| 251 | (error "%S" (car (cdr foo)))))))) | 251 | (error "%S" (car (cdr foo)))))))) |
diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el index 4c2626ca8bd..b266fc8bdfc 100644 --- a/lisp/cedet/semantic/db-find.el +++ b/lisp/cedet/semantic/db-find.el | |||
| @@ -202,7 +202,7 @@ This class will cache data derived during various searches.") | |||
| 202 | (when (oref idx type-cache) | 202 | (when (oref idx type-cache) |
| 203 | (semantic-reset (oref idx type-cache))) | 203 | (semantic-reset (oref idx type-cache))) |
| 204 | ;; Clear the scope. Scope doesn't have the data it needs to track | 204 | ;; Clear the scope. Scope doesn't have the data it needs to track |
| 205 | ;; it's own reset. | 205 | ;; its own reset. |
| 206 | (semantic-scope-reset-cache) | 206 | (semantic-scope-reset-cache) |
| 207 | ) | 207 | ) |
| 208 | 208 | ||
| @@ -262,13 +262,13 @@ This class will cache data derived during various searches.") | |||
| 262 | "Translate PATH into a list of semantic tables. | 262 | "Translate PATH into a list of semantic tables. |
| 263 | Path translation involves identifying the PATH input argument | 263 | Path translation involves identifying the PATH input argument |
| 264 | in one of the following ways: | 264 | in one of the following ways: |
| 265 | nil - Take the current buffer, and use it's include list | 265 | nil - Take the current buffer, and use its include list |
| 266 | buffer - Use that buffer's include list. | 266 | buffer - Use that buffer's include list. |
| 267 | filename - Use that file's include list. If the file is not | 267 | filename - Use that file's include list. If the file is not |
| 268 | in a buffer, see of there is a semanticdb table for it. If | 268 | in a buffer, see of there is a semanticdb table for it. If |
| 269 | not, read that file into a buffer. | 269 | not, read that file into a buffer. |
| 270 | tag - Get that tag's buffer of file file. See above. | 270 | tag - Get that tag's buffer of file file. See above. |
| 271 | table - Search that table, and it's include list. | 271 | table - Search that table, and its include list. |
| 272 | find result - Search the results of a previous find. | 272 | find result - Search the results of a previous find. |
| 273 | 273 | ||
| 274 | In addition, once the base path is found, there is the possibility of | 274 | In addition, once the base path is found, there is the possibility of |
| @@ -1006,9 +1006,14 @@ is still made current." | |||
| 1006 | (when norm | 1006 | (when norm |
| 1007 | ;; The normalized tags can now be found based on that | 1007 | ;; The normalized tags can now be found based on that |
| 1008 | ;; tags table. | 1008 | ;; tags table. |
| 1009 | (semanticdb-set-buffer (car norm)) | 1009 | (condition-case foo |
| 1010 | ;; Now reset ans | 1010 | (progn |
| 1011 | (setq ans (cdr norm)) | 1011 | (semanticdb-set-buffer (car norm)) |
| 1012 | ;; Now reset ans | ||
| 1013 | (setq ans (cdr norm))) | ||
| 1014 | ;; Don't error for this case, but don't store | ||
| 1015 | ;; the thing either. | ||
| 1016 | (no-method-definition nil)) | ||
| 1012 | )) | 1017 | )) |
| 1013 | ) | 1018 | ) |
| 1014 | ;; Return the tag. | 1019 | ;; Return the tag. |
| @@ -1019,10 +1024,10 @@ is still made current." | |||
| 1019 | FCN takes two arguments. The first is a TAG, and the | 1024 | FCN takes two arguments. The first is a TAG, and the |
| 1020 | second is a DB from whence TAG originated. | 1025 | second is a DB from whence TAG originated. |
| 1021 | Returns result." | 1026 | Returns result." |
| 1022 | (mapc (lambda (sublst) | 1027 | (mapc (lambda (sublst-icky) |
| 1023 | (mapc (lambda (tag) | 1028 | (mapc (lambda (tag-icky) |
| 1024 | (funcall fcn tag (car sublst))) | 1029 | (funcall fcn tag-icky (car sublst-icky))) |
| 1025 | (cdr sublst))) | 1030 | (cdr sublst-icky))) |
| 1026 | result) | 1031 | result) |
| 1027 | result) | 1032 | result) |
| 1028 | 1033 | ||
diff --git a/lisp/cedet/semantic/db-global.el b/lisp/cedet/semantic/db-global.el index 444efbd17e0..3d827b9ede0 100644 --- a/lisp/cedet/semantic/db-global.el +++ b/lisp/cedet/semantic/db-global.el | |||
| @@ -93,7 +93,7 @@ if optional DONT-ERR-IF-NOT-AVAILABLE is non-nil; else throw an error." | |||
| 93 | '(omniscience)) | 93 | '(omniscience)) |
| 94 | ) | 94 | ) |
| 95 | (if dont-err-if-not-available | 95 | (if dont-err-if-not-available |
| 96 | (message "No Global support in %s" default-directory) | 96 | nil; (message "No Global support in %s" default-directory) |
| 97 | (error "No Global support in %s" default-directory)) | 97 | (error "No Global support in %s" default-directory)) |
| 98 | )) | 98 | )) |
| 99 | 99 | ||
diff --git a/lisp/cedet/semantic/db-typecache.el b/lisp/cedet/semantic/db-typecache.el index d7c4f0a5abd..71b15fdf82a 100644 --- a/lisp/cedet/semantic/db-typecache.el +++ b/lisp/cedet/semantic/db-typecache.el | |||
| @@ -217,6 +217,14 @@ Adds a filename and copies the tags." | |||
| 217 | (semanticdb-full-filename table) | 217 | (semanticdb-full-filename table) |
| 218 | tags)) | 218 | tags)) |
| 219 | 219 | ||
| 220 | (defun semanticdb-typecache-faux-namespace (name members) | ||
| 221 | "Create a new namespace tag with NAME and a set of MEMBERS. | ||
| 222 | The new tag will be a faux tag, used as a placeholder in a typecache." | ||
| 223 | (let ((tag (semantic-tag-new-type name "namespace" members nil))) | ||
| 224 | ;; Make sure we mark this as a fake tag. | ||
| 225 | (semantic-tag-set-faux tag) | ||
| 226 | tag)) | ||
| 227 | |||
| 220 | (defun semanticdb-typecache-merge-streams (cache1 cache2) | 228 | (defun semanticdb-typecache-merge-streams (cache1 cache2) |
| 221 | "Merge into CACHE1 and CACHE2 together. The Caches will be merged in place." | 229 | "Merge into CACHE1 and CACHE2 together. The Caches will be merged in place." |
| 222 | (if (or (and (not cache1) (not cache2)) | 230 | (if (or (and (not cache1) (not cache2)) |
| @@ -256,23 +264,22 @@ Adds a filename and copies the tags." | |||
| 256 | (setq ans (cons next ans)) | 264 | (setq ans (cons next ans)) |
| 257 | ;; ELSE - We have a NAME match. | 265 | ;; ELSE - We have a NAME match. |
| 258 | (setq type (semantic-tag-type next)) | 266 | (setq type (semantic-tag-type next)) |
| 259 | (if (semantic-tag-of-type-p prev type) ; Are they the same datatype | 267 | (if (or (semantic-tag-of-type-p prev type) ; Are they the same datatype |
| 268 | (semantic-tag-faux-p prev) | ||
| 269 | (semantic-tag-faux-p next) ; or either a faux tag? | ||
| 270 | ) | ||
| 260 | ;; Same Class, we can do a merge. | 271 | ;; Same Class, we can do a merge. |
| 261 | (cond | 272 | (cond |
| 262 | ((and (semantic-tag-of-class-p next 'type) | 273 | ((and (semantic-tag-of-class-p next 'type) |
| 263 | (string= type "namespace")) | 274 | (string= type "namespace")) |
| 264 | ;; Namespaces - merge the children together. | 275 | ;; Namespaces - merge the children together. |
| 265 | (setcar ans | 276 | (setcar ans |
| 266 | (semantic-tag-new-type | 277 | (semanticdb-typecache-faux-namespace |
| 267 | (semantic-tag-name prev) ; - they are the same | 278 | (semantic-tag-name prev) ; - they are the same |
| 268 | "namespace" ; - we know this as fact | ||
| 269 | (semanticdb-typecache-merge-streams | 279 | (semanticdb-typecache-merge-streams |
| 270 | (semanticdb-typecache-safe-tag-members prev) | 280 | (semanticdb-typecache-safe-tag-members prev) |
| 271 | (semanticdb-typecache-safe-tag-members next)) | 281 | (semanticdb-typecache-safe-tag-members next)) |
| 272 | nil ; - no attributes | ||
| 273 | )) | 282 | )) |
| 274 | ;; Make sure we mark this as a fake tag. | ||
| 275 | (semantic-tag-set-faux (car ans)) | ||
| 276 | ) | 283 | ) |
| 277 | ((semantic-tag-prototype-p next) | 284 | ((semantic-tag-prototype-p next) |
| 278 | ;; NEXT is a prototype... so keep previous. | 285 | ;; NEXT is a prototype... so keep previous. |
| @@ -299,6 +306,12 @@ Adds a filename and copies the tags." | |||
| 299 | ;;; Refresh / Query API | 306 | ;;; Refresh / Query API |
| 300 | ;; | 307 | ;; |
| 301 | ;; Queries that can be made for the typecache. | 308 | ;; Queries that can be made for the typecache. |
| 309 | (define-overloadable-function semanticdb-expand-nested-tag (tag) | ||
| 310 | "Expand TAG from fully qualified names. | ||
| 311 | If TAG has fully qualified names, expand it to a series of nested | ||
| 312 | namespaces instead." | ||
| 313 | tag) | ||
| 314 | |||
| 302 | (defmethod semanticdb-typecache-file-tags ((table semanticdb-abstract-table)) | 315 | (defmethod semanticdb-typecache-file-tags ((table semanticdb-abstract-table)) |
| 303 | "No tags available from non-file based tables." | 316 | "No tags available from non-file based tables." |
| 304 | nil) | 317 | nil) |
| @@ -313,10 +326,13 @@ all included files." | |||
| 313 | 326 | ||
| 314 | ;; Make sure our file-tags list is up to date. | 327 | ;; Make sure our file-tags list is up to date. |
| 315 | (when (not (oref cache filestream)) | 328 | (when (not (oref cache filestream)) |
| 316 | (let ((tags (semantic-find-tags-by-class 'type table))) | 329 | (let ((tags (semantic-find-tags-by-class 'type table)) |
| 330 | (exptags nil)) | ||
| 317 | (when tags | 331 | (when tags |
| 318 | (setq tags (semanticdb-typecache-safe-tag-list tags table)) | 332 | (setq tags (semanticdb-typecache-safe-tag-list tags table)) |
| 319 | (oset cache filestream (semanticdb-typecache-merge-streams tags nil))))) | 333 | (dolist (T tags) |
| 334 | (push (semanticdb-expand-nested-tag T) exptags)) | ||
| 335 | (oset cache filestream (semanticdb-typecache-merge-streams exptags nil))))) | ||
| 320 | 336 | ||
| 321 | ;; Return our cache. | 337 | ;; Return our cache. |
| 322 | (oref cache filestream) | 338 | (oref cache filestream) |
| @@ -372,6 +388,7 @@ a master list." | |||
| 372 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 388 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 373 | 389 | ||
| 374 | ;;; Search Routines | 390 | ;;; Search Routines |
| 391 | ;; | ||
| 375 | ;;;###autoload | 392 | ;;;###autoload |
| 376 | (define-overloadable-function semanticdb-typecache-find (type &optional path find-file-match) | 393 | (define-overloadable-function semanticdb-typecache-find (type &optional path find-file-match) |
| 377 | "Search the typecache for TYPE in PATH. | 394 | "Search the typecache for TYPE in PATH. |
| @@ -386,16 +403,20 @@ TYPE is the datatype to find. | |||
| 386 | PATH is the search path, which should be one table object. | 403 | PATH is the search path, which should be one table object. |
| 387 | If FIND-FILE-MATCH is non-nil, then force the file belonging to the | 404 | If FIND-FILE-MATCH is non-nil, then force the file belonging to the |
| 388 | found tag to be loaded." | 405 | found tag to be loaded." |
| 389 | (semanticdb-typecache-find-method (or path semanticdb-current-table) | 406 | (if (not (and (featurep 'semanticdb) semanticdb-current-database)) |
| 390 | type find-file-match)) | 407 | nil ;; No DB, no search |
| 408 | (save-excursion | ||
| 409 | (semanticdb-typecache-find-method (or path semanticdb-current-table) | ||
| 410 | type find-file-match)))) | ||
| 391 | 411 | ||
| 392 | (defun semanticdb-typecache-find-by-name-helper (name table) | 412 | (defun semanticdb-typecache-find-by-name-helper (name table) |
| 393 | "Find the tag with NAME in TABLE, which is from a typecache. | 413 | "Find the tag with NAME in TABLE, which is from a typecache. |
| 394 | If more than one tag has NAME in TABLE, we will prefer the tag that | 414 | If more than one tag has NAME in TABLE, we will prefer the tag that |
| 395 | is of class 'type." | 415 | is of class 'type." |
| 396 | (let* ((names (semantic-find-tags-by-name name table)) | 416 | (let* ((names (semantic-find-tags-by-name name table)) |
| 397 | (types (semantic-find-tags-by-class 'type names))) | 417 | (nmerge (semanticdb-typecache-merge-streams names nil)) |
| 398 | (or (car-safe types) (car-safe names)))) | 418 | (types (semantic-find-tags-by-class 'type nmerge))) |
| 419 | (or (car-safe types) (car-safe nmerge)))) | ||
| 399 | 420 | ||
| 400 | (defmethod semanticdb-typecache-find-method ((table semanticdb-abstract-table) | 421 | (defmethod semanticdb-typecache-find-method ((table semanticdb-abstract-table) |
| 401 | type find-file-match) | 422 | type find-file-match) |
diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el index 3f638a212f0..3ce774b0a99 100644 --- a/lisp/cedet/semantic/db.el +++ b/lisp/cedet/semantic/db.el | |||
| @@ -542,10 +542,25 @@ Optional argument FORCE will force a refresh even if the file in question | |||
| 542 | is not in a buffer. Avoid using FORCE for most uses, as an old cache | 542 | is not in a buffer. Avoid using FORCE for most uses, as an old cache |
| 543 | may be sufficient for the general case. Forced updates can be slow. | 543 | may be sufficient for the general case. Forced updates can be slow. |
| 544 | This will call `semantic-fetch-tags' if that file is in memory." | 544 | This will call `semantic-fetch-tags' if that file is in memory." |
| 545 | (when (or (semanticdb-in-buffer-p obj) force) | 545 | (cond |
| 546 | ;; | ||
| 547 | ;; Already in a buffer, just do it. | ||
| 548 | ((semanticdb-in-buffer-p obj) | ||
| 549 | (semanticdb-set-buffer obj) | ||
| 550 | (semantic-fetch-tags)) | ||
| 551 | ;; | ||
| 552 | ;; Not in a buffer. Forcing a load. | ||
| 553 | (force | ||
| 554 | ;; Patch from Iain Nicol. -- | ||
| 555 | ;; @TODO: I wonder if there is a way to recycle | ||
| 556 | ;; semanticdb-create-table-for-file-not-in-buffer | ||
| 546 | (save-excursion | 557 | (save-excursion |
| 547 | (semanticdb-set-buffer obj) | 558 | (let ((buff (semantic-find-file-noselect |
| 548 | (semantic-fetch-tags)))) | 559 | (semanticdb-full-filename obj)))) |
| 560 | (set-buffer buff) | ||
| 561 | (semantic-fetch-tags) | ||
| 562 | ;; Kill off the buffer if it didn't exist when we were called. | ||
| 563 | (kill-buffer buff)))))) | ||
| 549 | 564 | ||
| 550 | (defmethod semanticdb-needs-refresh-p ((obj semanticdb-table)) | 565 | (defmethod semanticdb-needs-refresh-p ((obj semanticdb-table)) |
| 551 | "Return non-nil of OBJ's tag list is out of date. | 566 | "Return non-nil of OBJ's tag list is out of date. |
| @@ -808,12 +823,14 @@ Always append `semanticdb-project-system-databases' if | |||
| 808 | (setq root (run-hook-with-args-until-success | 823 | (setq root (run-hook-with-args-until-success |
| 809 | 'semanticdb-project-root-functions | 824 | 'semanticdb-project-root-functions |
| 810 | dir)) | 825 | dir)) |
| 811 | ;; Find roots based on strings | 826 | (if root |
| 812 | (while (and roots (not root)) | 827 | (setq root (file-truename root)) |
| 813 | (let ((r (file-truename (car roots)))) | 828 | ;; Else, Find roots based on strings |
| 814 | (if (string-match (concat "^" (regexp-quote r)) dir) | 829 | (while roots |
| 815 | (setq root r))) | 830 | (let ((r (file-truename (car roots)))) |
| 816 | (setq roots (cdr roots))) | 831 | (if (string-match (concat "^" (regexp-quote r)) dir) |
| 832 | (setq root r))) | ||
| 833 | (setq roots (cdr roots)))) | ||
| 817 | 834 | ||
| 818 | ;; If no roots are found, use this directory. | 835 | ;; If no roots are found, use this directory. |
| 819 | (unless root (setq root dir)) | 836 | (unless root (setq root dir)) |
diff --git a/lisp/cedet/semantic/decorate.el b/lisp/cedet/semantic/decorate.el index 314ca2bf46d..f28ce1741f1 100644 --- a/lisp/cedet/semantic/decorate.el +++ b/lisp/cedet/semantic/decorate.el | |||
| @@ -45,7 +45,7 @@ Optional FACE specifies the face to use." | |||
| 45 | )) | 45 | )) |
| 46 | 46 | ||
| 47 | (defun semantic-unhighlight-tag (tag) | 47 | (defun semantic-unhighlight-tag (tag) |
| 48 | "Unhighlight TAG, restoring it's previous face." | 48 | "Unhighlight TAG, restoring its previous face." |
| 49 | (let ((o (semantic-tag-overlay tag))) | 49 | (let ((o (semantic-tag-overlay tag))) |
| 50 | (semantic-overlay-put o 'face (car (semantic-overlay-get o 'old-face))) | 50 | (semantic-overlay-put o 'face (car (semantic-overlay-get o 'old-face))) |
| 51 | (semantic-overlay-put o 'old-face (cdr (semantic-overlay-get o 'old-face))) | 51 | (semantic-overlay-put o 'old-face (cdr (semantic-overlay-get o 'old-face))) |
diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el index 94273dcfaf7..3d6013b7339 100644 --- a/lisp/cedet/semantic/decorate/include.el +++ b/lisp/cedet/semantic/decorate/include.el | |||
| @@ -118,7 +118,7 @@ Used by the decoration style: `semantic-decoration-on-includes'." | |||
| 118 | '((((class color) (background dark)) | 118 | '((((class color) (background dark)) |
| 119 | (:background "#900000")) | 119 | (:background "#900000")) |
| 120 | (((class color) (background light)) | 120 | (((class color) (background light)) |
| 121 | (:background "#ff5050"))) | 121 | (:background "#fff0f0"))) |
| 122 | "*Face used to show includes that cannot be found. | 122 | "*Face used to show includes that cannot be found. |
| 123 | Used by the decoration style: `semantic-decoration-on-unknown-includes'." | 123 | Used by the decoration style: `semantic-decoration-on-unknown-includes'." |
| 124 | :group 'semantic-faces) | 124 | :group 'semantic-faces) |
| @@ -302,16 +302,19 @@ This mode provides a nice context menu on the include statements." | |||
| 302 | ) | 302 | ) |
| 303 | )) | 303 | )) |
| 304 | 304 | ||
| 305 | (let ((ol (semantic-decorate-tag tag | 305 | ;; @TODO - if not a tag w/ a position, we need to get one. How? |
| 306 | (semantic-tag-start tag) | 306 | |
| 307 | (semantic-tag-end tag) | 307 | (when (semantic-tag-with-position-p tag) |
| 308 | face)) | 308 | (let ((ol (semantic-decorate-tag tag |
| 309 | ) | 309 | (semantic-tag-start tag) |
| 310 | (semantic-overlay-put ol 'mouse-face 'highlight) | 310 | (semantic-tag-end tag) |
| 311 | (semantic-overlay-put ol 'keymap map) | 311 | face)) |
| 312 | (semantic-overlay-put ol 'help-echo | 312 | ) |
| 313 | "Header File : mouse-3 - Context menu") | 313 | (semantic-overlay-put ol 'mouse-face 'highlight) |
| 314 | ))) | 314 | (semantic-overlay-put ol 'keymap map) |
| 315 | (semantic-overlay-put ol 'help-echo | ||
| 316 | "Header File : mouse-3 - Context menu") | ||
| 317 | )))) | ||
| 315 | 318 | ||
| 316 | ;;; Regular Include Functions | 319 | ;;; Regular Include Functions |
| 317 | ;; | 320 | ;; |
diff --git a/lisp/cedet/semantic/dep.el b/lisp/cedet/semantic/dep.el index b36e25c6220..c05650caec7 100644 --- a/lisp/cedet/semantic/dep.el +++ b/lisp/cedet/semantic/dep.el | |||
| @@ -208,7 +208,8 @@ provided mode, not from the current major mode." | |||
| 208 | mode 'semantic-dependency-system-include-path)) | 208 | mode 'semantic-dependency-system-include-path)) |
| 209 | (edesys (when (and (featurep 'ede) ede-minor-mode | 209 | (edesys (when (and (featurep 'ede) ede-minor-mode |
| 210 | ede-object) | 210 | ede-object) |
| 211 | (ede-system-include-path ede-object))) | 211 | (ede-system-include-path |
| 212 | (if (listp ede-object) (car ede-object) ede-object)))) | ||
| 212 | (locp (mode-local-value | 213 | (locp (mode-local-value |
| 213 | mode 'semantic-dependency-include-path)) | 214 | mode 'semantic-dependency-include-path)) |
| 214 | (found nil)) | 215 | (found nil)) |
diff --git a/lisp/cedet/semantic/doc.el b/lisp/cedet/semantic/doc.el index c8a3c12e1b2..aca01bd9830 100644 --- a/lisp/cedet/semantic/doc.el +++ b/lisp/cedet/semantic/doc.el | |||
| @@ -78,7 +78,8 @@ just the lexical token and not the string." | |||
| 78 | (start (if starttag | 78 | (start (if starttag |
| 79 | (semantic-tag-end starttag) | 79 | (semantic-tag-end starttag) |
| 80 | (point-min)))) | 80 | (point-min)))) |
| 81 | (when (re-search-backward comment-start-skip start t) | 81 | (when (and comment-start-skip |
| 82 | (re-search-backward comment-start-skip start t)) | ||
| 82 | ;; We found a comment that doesn't belong to the body | 83 | ;; We found a comment that doesn't belong to the body |
| 83 | ;; of a function. | 84 | ;; of a function. |
| 84 | (semantic-doc-snarf-comment-for-tag nosnarf))) | 85 | (semantic-doc-snarf-comment-for-tag nosnarf))) |
diff --git a/lisp/cedet/semantic/fw.el b/lisp/cedet/semantic/fw.el index b7e5f7f7a0e..49790861632 100644 --- a/lisp/cedet/semantic/fw.el +++ b/lisp/cedet/semantic/fw.el | |||
| @@ -310,6 +310,17 @@ FILE, NOWARN, RAWFILE, and WILDCARDS are passed into `find-file-noselect'" | |||
| 310 | (find-file-noselect file nowarn rawfile wildcards))) | 310 | (find-file-noselect file nowarn rawfile wildcards))) |
| 311 | )) | 311 | )) |
| 312 | 312 | ||
| 313 | ;;; Database restriction settings | ||
| 314 | ;; | ||
| 315 | (defmacro semanticdb-without-unloaded-file-searches (forms) | ||
| 316 | "Execute FORMS with `unloaded' removed from the current throttle." | ||
| 317 | `(let ((semanticdb-find-default-throttle | ||
| 318 | (if (featurep 'semanticdb-find) | ||
| 319 | (remq 'unloaded semanticdb-find-default-throttle) | ||
| 320 | nil))) | ||
| 321 | ,forms)) | ||
| 322 | (put 'semanticdb-without-unloaded-file-searches 'lisp-indent-function 1) | ||
| 323 | |||
| 313 | 324 | ||
| 314 | ;; ;;; Editor goodies ;-) | 325 | ;; ;;; Editor goodies ;-) |
| 315 | ;; ;; | 326 | ;; ;; |
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el index 8f5d1cd3e14..65365768f98 100644 --- a/lisp/cedet/semantic/grammar.el +++ b/lisp/cedet/semantic/grammar.el | |||
| @@ -928,6 +928,12 @@ Lisp code." | |||
| 928 | ;; If running interactively, eval declarations and epilogue | 928 | ;; If running interactively, eval declarations and epilogue |
| 929 | ;; code, then pop to the buffer visiting the generated file. | 929 | ;; code, then pop to the buffer visiting the generated file. |
| 930 | (eval-region (point) (point-max)) | 930 | (eval-region (point) (point-max)) |
| 931 | ;; Loop over the defvars and eval them explicitly to force | ||
| 932 | ;; them to be evaluated and ready to use. | ||
| 933 | (goto-char (point-min)) | ||
| 934 | (while (re-search-forward "(defvar " nil t) | ||
| 935 | (eval-defun nil)) | ||
| 936 | ;; Move cursor to a logical spot in the generated code. | ||
| 931 | (goto-char (point-min)) | 937 | (goto-char (point-min)) |
| 932 | (pop-to-buffer (current-buffer)) | 938 | (pop-to-buffer (current-buffer)) |
| 933 | ;; The generated code has been evaluated and updated into | 939 | ;; The generated code has been evaluated and updated into |
diff --git a/lisp/cedet/semantic/html.el b/lisp/cedet/semantic/html.el index 1a7ada02e34..7597370dff5 100644 --- a/lisp/cedet/semantic/html.el +++ b/lisp/cedet/semantic/html.el | |||
| @@ -243,6 +243,7 @@ tag with greater section value than LEVEL is found." | |||
| 243 | semantic-imenu-bucketize-file nil | 243 | semantic-imenu-bucketize-file nil |
| 244 | semantic-imenu-bucketize-type-members nil | 244 | semantic-imenu-bucketize-type-members nil |
| 245 | senator-step-at-start-end-tag-classes '(section) | 245 | senator-step-at-start-end-tag-classes '(section) |
| 246 | senator-step-at-tag-classes '(section) | ||
| 246 | semantic-stickyfunc-sticky-classes '(section) | 247 | semantic-stickyfunc-sticky-classes '(section) |
| 247 | ) | 248 | ) |
| 248 | (semantic-install-function-overrides | 249 | (semantic-install-function-overrides |
diff --git a/lisp/cedet/semantic/ia.el b/lisp/cedet/semantic/ia.el index 2e926005ead..c7e1458fa3f 100644 --- a/lisp/cedet/semantic/ia.el +++ b/lisp/cedet/semantic/ia.el | |||
| @@ -40,7 +40,8 @@ | |||
| 40 | (require 'pulse) | 40 | (require 'pulse) |
| 41 | (eval-when-compile | 41 | (eval-when-compile |
| 42 | (require 'semantic/analyze) | 42 | (require 'semantic/analyze) |
| 43 | (require 'semantic/analyze/refs)) | 43 | (require 'semantic/analyze/refs) |
| 44 | (require 'semantic/find)) | ||
| 44 | 45 | ||
| 45 | (declare-function imenu--mouse-menu "imenu") | 46 | (declare-function imenu--mouse-menu "imenu") |
| 46 | 47 | ||
| @@ -57,14 +58,6 @@ | |||
| 57 | :group 'semantic | 58 | :group 'semantic |
| 58 | :type semantic-format-tag-custom-list) | 59 | :type semantic-format-tag-custom-list) |
| 59 | 60 | ||
| 60 | (defvar semantic-ia-cache nil | ||
| 61 | "Cache of the last completion request. | ||
| 62 | Of the form ( POINT . COMPLETIONS ) where POINT is a location in the | ||
| 63 | buffer where the completion was requested. COMPLETONS is the list | ||
| 64 | of semantic tag names that provide logical completions from that | ||
| 65 | location.") | ||
| 66 | (make-variable-buffer-local 'semantic-ia-cache) | ||
| 67 | |||
| 68 | ;;; COMPLETION HELPER | 61 | ;;; COMPLETION HELPER |
| 69 | ;; | 62 | ;; |
| 70 | ;; This overload function handles inserting a tag | 63 | ;; This overload function handles inserting a tag |
| @@ -86,23 +79,16 @@ location.") | |||
| 86 | (insert "(")) | 79 | (insert "(")) |
| 87 | (t nil)))) | 80 | (t nil)))) |
| 88 | 81 | ||
| 89 | (declare-function semantic-analyze-possible-completions | 82 | (defalias 'semantic-ia-get-completions 'semantic-ia-get-completions-deprecated |
| 90 | "semantic/analyze/complete") | 83 | "`Semantic-ia-get-completions' is obsolete. |
| 91 | 84 | Use `semantic-analyze-possible-completions' instead.") | |
| 92 | (defun semantic-ia-get-completions (context point) | 85 | |
| 93 | "Fetch the completion of CONTEXT at POINT. | 86 | (defun semantic-ia-get-completions-deprecated (context point) |
| 94 | Supports caching." | 87 | "A function to help transition away from `semantic-ia-get-completions'. |
| 95 | ;; Cache the current set of symbols so that we can get at | 88 | Return completions based on CONTEXT at POINT. |
| 96 | ;; them quickly the second time someone presses the | 89 | You should not use this, nor the aliased version. |
| 97 | ;; complete button. | 90 | Use `semantic-analyze-possible-completions' instead." |
| 98 | (let ((symbols | 91 | (semantic-analyze-possible-completions context)) |
| 99 | (if (and semantic-ia-cache | ||
| 100 | (= point (car semantic-ia-cache))) | ||
| 101 | (cdr semantic-ia-cache) | ||
| 102 | (semantic-analyze-possible-completions context)))) | ||
| 103 | ;; Set the cache | ||
| 104 | (setq semantic-ia-cache (cons point symbols)) | ||
| 105 | symbols)) | ||
| 106 | 92 | ||
| 107 | ;;;###autoload | 93 | ;;;###autoload |
| 108 | (defun semantic-ia-complete-symbol (&optional pos) | 94 | (defun semantic-ia-complete-symbol (&optional pos) |
| @@ -110,56 +96,52 @@ Supports caching." | |||
| 110 | If POS is nil, default to point. | 96 | If POS is nil, default to point. |
| 111 | Completion options are calculated with `semantic-analyze-possible-completions'." | 97 | Completion options are calculated with `semantic-analyze-possible-completions'." |
| 112 | (interactive "d") | 98 | (interactive "d") |
| 113 | (or pos (setq pos (point))) | 99 | (when (semantic-active-p) |
| 114 | ;; Calculating completions is a two step process. | 100 | (or pos (setq pos (point))) |
| 115 | ;; | 101 | ;; Calculating completions is a two step process. |
| 116 | ;; The first analyzer the current context, which finds tags | 102 | ;; |
| 117 | ;; for all the stuff that may be references by the code around | 103 | ;; The first analyzer the current context, which finds tags for |
| 118 | ;; POS. | 104 | ;; all the stuff that may be references by the code around POS. |
| 119 | ;; | 105 | ;; |
| 120 | ;; The second step derives completions from that context. | 106 | ;; The second step derives completions from that context. |
| 121 | (let* ((a (semantic-analyze-current-context pos)) | 107 | (let* ((a (semantic-analyze-current-context pos)) |
| 122 | (syms (semantic-ia-get-completions a pos)) | 108 | (syms (semantic-analyze-possible-completions a)) |
| 123 | (pre (car (reverse (oref a prefix)))) | 109 | (pre (car (reverse (oref a prefix))))) |
| 124 | ) | 110 | ;; If PRE was actually an already completed symbol, it doesn't |
| 125 | ;; If PRE was actually an already completed symbol, it doesn't | 111 | ;; come in as a string, but as a tag instead. |
| 126 | ;; come in as a string, but as a tag instead. | 112 | (if (semantic-tag-p pre) |
| 127 | (if (semantic-tag-p pre) | 113 | ;; We will try completions on it anyway. |
| 128 | ;; We will try completions on it anyway. | 114 | (setq pre (semantic-tag-name pre))) |
| 129 | (setq pre (semantic-tag-name pre))) | 115 | ;; Complete this symbol. |
| 130 | ;; Complete this symbol. | 116 | (if (null syms) |
| 131 | (if (null syms) | ||
| 132 | (progn | ||
| 133 | ;(message "No smart completions found. Trying senator-complete-symbol.") | ||
| 134 | (if (semantic-analyze-context-p a) | 117 | (if (semantic-analyze-context-p a) |
| 135 | ;; This is a clever hack. If we were unable to find any | 118 | ;; This is a clever hack. If we were unable to find any |
| 136 | ;; smart completions, lets divert to how senator derives | 119 | ;; smart completions, lets divert to how senator derives |
| 137 | ;; completions. | 120 | ;; completions. |
| 138 | ;; | 121 | ;; |
| 139 | ;; This is a way of making this fcn more useful since the | 122 | ;; This is a way of making this fcn more useful since |
| 140 | ;; smart completion engine sometimes failes. | 123 | ;; the smart completion engine sometimes failes. |
| 141 | (semantic-complete-symbol))) | 124 | (semantic-complete-symbol)) |
| 142 | ;; Use try completion to seek a common substring. | 125 | ;; Use try completion to seek a common substring. |
| 143 | (let ((tc (try-completion (or pre "") syms))) | 126 | (let ((tc (try-completion (or pre "") syms))) |
| 144 | (if (and (stringp tc) (not (string= tc (or pre "")))) | 127 | (if (and (stringp tc) (not (string= tc (or pre "")))) |
| 145 | (let ((tok (semantic-find-first-tag-by-name | 128 | (let ((tok (semantic-find-first-tag-by-name |
| 146 | tc syms))) | 129 | tc syms))) |
| 147 | ;; Delete what came before... | 130 | ;; Delete what came before... |
| 148 | (when (and (car (oref a bounds)) (cdr (oref a bounds))) | 131 | (when (and (car (oref a bounds)) (cdr (oref a bounds))) |
| 149 | (delete-region (car (oref a bounds)) | 132 | (delete-region (car (oref a bounds)) |
| 150 | (cdr (oref a bounds))) | 133 | (cdr (oref a bounds))) |
| 151 | (goto-char (car (oref a bounds)))) | 134 | (goto-char (car (oref a bounds)))) |
| 152 | ;; We have some new text. Stick it in. | 135 | ;; We have some new text. Stick it in. |
| 153 | (if tok | 136 | (if tok |
| 154 | (semantic-ia-insert-tag tok) | 137 | (semantic-ia-insert-tag tok) |
| 155 | (insert tc))) | 138 | (insert tc))) |
| 156 | ;; We don't have new text. Show all completions. | 139 | ;; We don't have new text. Show all completions. |
| 157 | (when (cdr (oref a bounds)) | 140 | (when (cdr (oref a bounds)) |
| 158 | (goto-char (cdr (oref a bounds)))) | 141 | (goto-char (cdr (oref a bounds)))) |
| 159 | (with-output-to-temp-buffer "*Completions*" | 142 | (with-output-to-temp-buffer "*Completions*" |
| 160 | (display-completion-list | 143 | (display-completion-list |
| 161 | (mapcar semantic-ia-completion-format-tag-function syms)) | 144 | (mapcar semantic-ia-completion-format-tag-function syms))))))))) |
| 162 | )))))) | ||
| 163 | 145 | ||
| 164 | (defcustom semantic-ia-completion-menu-format-tag-function | 146 | (defcustom semantic-ia-completion-menu-format-tag-function |
| 165 | 'semantic-uml-concise-prototype-nonterminal | 147 | 'semantic-uml-concise-prototype-nonterminal |
| @@ -177,7 +159,7 @@ Completion options are calculated with `semantic-analyze-possible-completions'." | |||
| 177 | "Pop up a tooltip for completion at POINT." | 159 | "Pop up a tooltip for completion at POINT." |
| 178 | (interactive "d") | 160 | (interactive "d") |
| 179 | (let* ((a (semantic-analyze-current-context point)) | 161 | (let* ((a (semantic-analyze-current-context point)) |
| 180 | (syms (semantic-ia-get-completions a point)) | 162 | (syms (semantic-analyze-possible-completions a)) |
| 181 | (x (mod (- (current-column) (window-hscroll)) | 163 | (x (mod (- (current-column) (window-hscroll)) |
| 182 | (window-width))) | 164 | (window-width))) |
| 183 | (y (save-excursion | 165 | (y (save-excursion |
| @@ -216,8 +198,48 @@ Completion options are calculated with `semantic-analyze-possible-completions'." | |||
| 216 | ;; tag associated with the current context. | 198 | ;; tag associated with the current context. |
| 217 | (semantic-analyze-interesting-tag ctxt))) | 199 | (semantic-analyze-interesting-tag ctxt))) |
| 218 | ) | 200 | ) |
| 219 | (when pf | 201 | (if pf |
| 220 | (message "%s" (semantic-format-tag-summarize pf nil t))))) | 202 | (message "%s" (semantic-format-tag-summarize pf nil t)) |
| 203 | (message "No summary info availalble")))) | ||
| 204 | |||
| 205 | ;;; Variants | ||
| 206 | ;; | ||
| 207 | ;; Show all variants for the symbol under point. | ||
| 208 | |||
| 209 | ;;;###autoload | ||
| 210 | (defun semantic-ia-show-variants (point) | ||
| 211 | "Display a list of all variants for the symbol under POINT." | ||
| 212 | (interactive "P") | ||
| 213 | (let* ((ctxt (semantic-analyze-current-context point)) | ||
| 214 | (comp nil)) | ||
| 215 | |||
| 216 | ;; We really want to look at the function if we are on an | ||
| 217 | ;; argument. Are there some additional rules we care about for | ||
| 218 | ;; changing the CTXT we look at? | ||
| 219 | (when (semantic-analyze-context-functionarg-p ctxt) | ||
| 220 | (goto-char (cdr (oref ctxt bounds))) | ||
| 221 | (setq ctxt (semantic-analyze-current-context (point)))) | ||
| 222 | |||
| 223 | ;; Get the "completion list", but remove ALL filters to get the master list | ||
| 224 | ;; of all the possible things. | ||
| 225 | (setq comp (semantic-analyze-possible-completions ctxt 'no-unique 'no-tc)) | ||
| 226 | |||
| 227 | ;; Special case for a single type. List the constructors? | ||
| 228 | (when (and (= (length comp) 1) (semantic-tag-of-class-p (car comp) 'type)) | ||
| 229 | (setq comp (semantic-find-tags-by-name (semantic-tag-name (car comp)) | ||
| 230 | (semantic-tag-type-members (car comp))))) | ||
| 231 | |||
| 232 | ;; Display the results. | ||
| 233 | (cond ((= (length comp) 0) | ||
| 234 | (message "No Variants found.")) | ||
| 235 | ((= (length comp) 1) | ||
| 236 | (message "%s" (semantic-format-tag-summarize (car comp) nil t))) | ||
| 237 | (t | ||
| 238 | (with-output-to-temp-buffer "*Symbol Variants*" | ||
| 239 | (semantic-analyze-princ-sequence comp "" (current-buffer))) | ||
| 240 | (shrink-window-if-larger-than-buffer | ||
| 241 | (get-buffer-window "*Symbol Variants*"))) | ||
| 242 | ))) | ||
| 221 | 243 | ||
| 222 | ;;; FAST Jump | 244 | ;;; FAST Jump |
| 223 | ;; | 245 | ;; |
| @@ -358,18 +380,21 @@ See `semantic-ia-fast-jump' for details on how it works. | |||
| 358 | ;; The default tries to find a comment in front of the tag | 380 | ;; The default tries to find a comment in front of the tag |
| 359 | ;; and then strings off comment prefixes. | 381 | ;; and then strings off comment prefixes. |
| 360 | (let ((doc (semantic-documentation-for-tag (car pf)))) | 382 | (let ((doc (semantic-documentation-for-tag (car pf)))) |
| 361 | (with-output-to-temp-buffer "*TAG DOCUMENTATION*" | 383 | (if (or (null doc) (string= doc "")) |
| 362 | (princ "Tag: ") | 384 | (message "Doc unavailable for: %s" |
| 363 | (princ (semantic-format-tag-prototype (car pf))) | 385 | (semantic-format-tag-prototype (car pf))) |
| 364 | (princ "\n") | 386 | (with-output-to-temp-buffer "*TAG DOCUMENTATION*" |
| 365 | (princ "\n") | 387 | (princ "Tag: ") |
| 366 | (princ "Snarfed Documentation: ") | 388 | (princ (semantic-format-tag-prototype (car pf))) |
| 367 | (princ "\n") | 389 | (princ "\n") |
| 368 | (princ "\n") | 390 | (princ "\n") |
| 369 | (if doc | 391 | (princ "Snarfed Documentation: ") |
| 370 | (princ doc) | 392 | (princ "\n") |
| 371 | (princ " Documentation unavailable.")) | 393 | (princ "\n") |
| 372 | ))) | 394 | (if doc |
| 395 | (princ doc) | ||
| 396 | (princ " Documentation unavailable.")) | ||
| 397 | )))) | ||
| 373 | (t | 398 | (t |
| 374 | (message "Unknown tag."))) | 399 | (message "Unknown tag."))) |
| 375 | )) | 400 | )) |
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el index ba7a49757a5..6bafdde7f08 100644 --- a/lisp/cedet/semantic/idle.el +++ b/lisp/cedet/semantic/idle.el | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | (defvar eldoc-last-message) | 49 | (defvar eldoc-last-message) |
| 50 | (declare-function eldoc-message "eldoc") | 50 | (declare-function eldoc-message "eldoc") |
| 51 | (declare-function semantic-analyze-interesting-tag "semantic/analyze") | 51 | (declare-function semantic-analyze-interesting-tag "semantic/analyze") |
| 52 | (declare-function semantic-analyze-unsplit-name "semantic/analyze/fcn") | ||
| 52 | (declare-function semantic-complete-analyze-inline-idle "semantic/complete") | 53 | (declare-function semantic-complete-analyze-inline-idle "semantic/complete") |
| 53 | (declare-function semanticdb-deep-find-tags-by-name "semantic/db-find") | 54 | (declare-function semanticdb-deep-find-tags-by-name "semantic/db-find") |
| 54 | (declare-function semanticdb-save-all-db-idle "semantic/db") | 55 | (declare-function semanticdb-save-all-db-idle "semantic/db") |
| @@ -328,12 +329,18 @@ call additional functions registered with the timer calls." | |||
| 328 | ;; | 329 | ;; |
| 329 | ;; Unlike the shorter timer, the WORK timer will kick of tasks that | 330 | ;; Unlike the shorter timer, the WORK timer will kick of tasks that |
| 330 | ;; may take a long time to complete. | 331 | ;; may take a long time to complete. |
| 331 | (defcustom semantic-idle-work-parse-neighboring-files-flag t | 332 | (defcustom semantic-idle-work-parse-neighboring-files-flag nil |
| 332 | "*Non-nil means to parse files in the same dir as the current buffer. | 333 | "*Non-nil means to parse files in the same dir as the current buffer. |
| 333 | Disable to prevent lots of excessive parsing in idle time." | 334 | Disable to prevent lots of excessive parsing in idle time." |
| 334 | :group 'semantic | 335 | :group 'semantic |
| 335 | :type 'boolean) | 336 | :type 'boolean) |
| 336 | 337 | ||
| 338 | (defcustom semantic-idle-work-update-headers-flag nil | ||
| 339 | "*Non-nil means to parse through header files in idle time. | ||
| 340 | Disable to prevent idle time parsing of many files. If completion | ||
| 341 | is called that work will be done then instead." | ||
| 342 | :group 'semantic | ||
| 343 | :type 'boolean) | ||
| 337 | 344 | ||
| 338 | (defun semantic-idle-work-for-one-buffer (buffer) | 345 | (defun semantic-idle-work-for-one-buffer (buffer) |
| 339 | "Do long-processing work for BUFFER. | 346 | "Do long-processing work for BUFFER. |
| @@ -346,6 +353,9 @@ Returns t if all processing succeeded." | |||
| 346 | (semantic-idle-scheduler-refresh-tags) | 353 | (semantic-idle-scheduler-refresh-tags) |
| 347 | t) | 354 | t) |
| 348 | 355 | ||
| 356 | ;; Option to disable this work. | ||
| 357 | semantic-idle-work-update-headers-flag | ||
| 358 | |||
| 349 | ;; Force all our include files to get read in so we | 359 | ;; Force all our include files to get read in so we |
| 350 | ;; are ready to provide good smart completion and idle | 360 | ;; are ready to provide good smart completion and idle |
| 351 | ;; summary information | 361 | ;; summary information |
| @@ -674,6 +684,11 @@ Return non-nil if the minor mode is enabled.") | |||
| 674 | ;;; SUMMARY MODE | 684 | ;;; SUMMARY MODE |
| 675 | ;; | 685 | ;; |
| 676 | ;; A mode similar to eldoc using semantic | 686 | ;; A mode similar to eldoc using semantic |
| 687 | (defcustom semantic-idle-truncate-long-summaries t | ||
| 688 | "Truncate summaries that are too long to fit in the minibuffer. | ||
| 689 | This can prevent minibuffer resizing in idle time." | ||
| 690 | :group 'semantic | ||
| 691 | :type 'boolean) | ||
| 677 | 692 | ||
| 678 | (defcustom semantic-idle-summary-function | 693 | (defcustom semantic-idle-summary-function |
| 679 | 'semantic-format-tag-summarize-with-file | 694 | 'semantic-format-tag-summarize-with-file |
| @@ -725,21 +740,16 @@ Use the semantic analyzer to find the symbol information." | |||
| 725 | "Return a string message describing the current context. | 740 | "Return a string message describing the current context. |
| 726 | This function will disable loading of previously unloaded files | 741 | This function will disable loading of previously unloaded files |
| 727 | by semanticdb as a time-saving measure." | 742 | by semanticdb as a time-saving measure." |
| 728 | (let ( | 743 | (semanticdb-without-unloaded-file-searches |
| 729 | (semanticdb-find-default-throttle | 744 | (save-excursion |
| 730 | (if (featurep 'semantic/db-find) | 745 | ;; use whichever has success first. |
| 731 | (remq 'unloaded semanticdb-find-default-throttle) | 746 | (or |
| 732 | nil)) | 747 | (semantic-idle-summary-current-symbol-keyword) |
| 733 | ) | 748 | |
| 734 | (save-excursion | 749 | (semantic-idle-summary-current-symbol-info-context) |
| 735 | ;; use whicever has success first. | 750 | |
| 736 | (or | 751 | (semantic-idle-summary-current-symbol-info-brutish) |
| 737 | (semantic-idle-summary-current-symbol-keyword) | 752 | )))) |
| 738 | |||
| 739 | (semantic-idle-summary-current-symbol-info-context) | ||
| 740 | |||
| 741 | (semantic-idle-summary-current-symbol-info-brutish) | ||
| 742 | )))) | ||
| 743 | 753 | ||
| 744 | (defvar semantic-idle-summary-out-of-context-faces | 754 | (defvar semantic-idle-summary-out-of-context-faces |
| 745 | '( | 755 | '( |
| @@ -803,6 +813,14 @@ current tag to display information." | |||
| 803 | (let ((w (1- (window-width (minibuffer-window))))) | 813 | (let ((w (1- (window-width (minibuffer-window))))) |
| 804 | (if (> (length str) w) | 814 | (if (> (length str) w) |
| 805 | (setq str (substring str 0 w))))) | 815 | (setq str (substring str 0 w))))) |
| 816 | ;; I borrowed some bits from eldoc to shorten the | ||
| 817 | ;; message. | ||
| 818 | (when semantic-idle-truncate-long-summaries | ||
| 819 | (let ((ea-width (1- (window-width (minibuffer-window)))) | ||
| 820 | (strlen (length str))) | ||
| 821 | (when (> strlen ea-width) | ||
| 822 | (setq str (substring str 0 ea-width))))) | ||
| 823 | ;; Display it | ||
| 806 | (eldoc-message str)))) | 824 | (eldoc-message str)))) |
| 807 | 825 | ||
| 808 | (define-minor-mode semantic-idle-summary-mode | 826 | (define-minor-mode semantic-idle-summary-mode |
| @@ -868,12 +886,12 @@ turned on in every Semantic-supported buffer." | |||
| 868 | ;; of all uses of the symbol that is under the cursor. | 886 | ;; of all uses of the symbol that is under the cursor. |
| 869 | ;; | 887 | ;; |
| 870 | ;; This is to mimic the Eclipse tool of a similar nature. | 888 | ;; This is to mimic the Eclipse tool of a similar nature. |
| 871 | (defvar semantic-idle-summary-highlight-face 'region | 889 | (defvar semantic-idle-symbol-highlight-face 'region |
| 872 | "Face used for the summary highlight.") | 890 | "Face used for highlighting local symbols.") |
| 873 | 891 | ||
| 874 | (defun semantic-idle-summary-maybe-highlight (tag) | 892 | (defun semantic-idle-symbol-maybe-highlight (tag) |
| 875 | "Perhaps add highlighting onto TAG. | 893 | "Perhaps add highlighting to the symbol represented by TAG. |
| 876 | TAG was found as the thing under point. If it happens to be | 894 | TAG was found as the symbol under point. If it happens to be |
| 877 | visible, then highlight it." | 895 | visible, then highlight it." |
| 878 | (require 'pulse) | 896 | (require 'pulse) |
| 879 | (let* ((region (when (and (semantic-tag-p tag) | 897 | (let* ((region (when (and (semantic-tag-p tag) |
| @@ -894,12 +912,12 @@ visible, then highlight it." | |||
| 894 | (point) (get-buffer-window (current-buffer) 'visible)) | 912 | (point) (get-buffer-window (current-buffer) 'visible)) |
| 895 | (if (< (semantic-overlay-end region) (point-at-eol)) | 913 | (if (< (semantic-overlay-end region) (point-at-eol)) |
| 896 | (pulse-momentary-highlight-overlay | 914 | (pulse-momentary-highlight-overlay |
| 897 | region semantic-idle-summary-highlight-face) | 915 | region semantic-idle-symbol-highlight-face) |
| 898 | ;; Not the same | 916 | ;; Not the same |
| 899 | (pulse-momentary-highlight-region | 917 | (pulse-momentary-highlight-region |
| 900 | (semantic-overlay-start region) | 918 | (semantic-overlay-start region) |
| 901 | (point-at-eol) | 919 | (point-at-eol) |
| 902 | semantic-idle-summary-highlight-face))) | 920 | semantic-idle-symbol-highlight-face))) |
| 903 | )) | 921 | )) |
| 904 | ((vectorp region) | 922 | ((vectorp region) |
| 905 | (let ((start (aref region 0)) | 923 | (let ((start (aref region 0)) |
| @@ -919,17 +937,19 @@ visible, then highlight it." | |||
| 919 | (pulse-momentary-highlight-region | 937 | (pulse-momentary-highlight-region |
| 920 | start (if (<= end (point-at-eol)) end | 938 | start (if (<= end (point-at-eol)) end |
| 921 | (point-at-eol)) | 939 | (point-at-eol)) |
| 922 | semantic-idle-summary-highlight-face))) | 940 | semantic-idle-symbol-highlight-face))) |
| 923 | )))) | 941 | )))) |
| 924 | nil)) | 942 | nil)) |
| 925 | 943 | ||
| 926 | (define-semantic-idle-service semantic-idle-tag-highlight | 944 | (define-semantic-idle-service semantic-idle-local-symbol-highlight |
| 927 | "Highlight the tag, and references of the symbol under point. | 945 | "Highlight the tag and symbol references of the symbol under point. |
| 928 | Call `semantic-analyze-current-context' to find the reference tag. | 946 | Call `semantic-analyze-current-context' to find the reference tag. |
| 929 | Call `semantic-symref-hits-in-region' to identify local references." | 947 | Call `semantic-symref-hits-in-region' to identify local references." |
| 930 | (require 'pulse) | 948 | (require 'pulse) |
| 931 | (when (semantic-idle-summary-useful-context-p) | 949 | (when (semantic-idle-summary-useful-context-p) |
| 932 | (let* ((ctxt (semantic-analyze-current-context)) | 950 | (let* ((ctxt |
| 951 | (semanticdb-without-unloaded-file-searches | ||
| 952 | (semantic-analyze-current-context))) | ||
| 933 | (Hbounds (when ctxt (oref ctxt bounds))) | 953 | (Hbounds (when ctxt (oref ctxt bounds))) |
| 934 | (target (when ctxt (car (reverse (oref ctxt prefix))))) | 954 | (target (when ctxt (car (reverse (oref ctxt prefix))))) |
| 935 | (tag (semantic-current-tag)) | 955 | (tag (semantic-current-tag)) |
| @@ -939,7 +959,7 @@ Call `semantic-symref-hits-in-region' to identify local references." | |||
| 939 | (when ctxt | 959 | (when ctxt |
| 940 | ;; Highlight the original tag? Protect against problems. | 960 | ;; Highlight the original tag? Protect against problems. |
| 941 | (condition-case nil | 961 | (condition-case nil |
| 942 | (semantic-idle-summary-maybe-highlight target) | 962 | (semantic-idle-symbol-maybe-highlight target) |
| 943 | (error nil)) | 963 | (error nil)) |
| 944 | ;; Identify all hits in this current tag. | 964 | ;; Identify all hits in this current tag. |
| 945 | (when (semantic-tag-p target) | 965 | (when (semantic-tag-p target) |
| @@ -948,7 +968,7 @@ Call `semantic-symref-hits-in-region' to identify local references." | |||
| 948 | target (lambda (start end prefix) | 968 | target (lambda (start end prefix) |
| 949 | (when (/= start (car Hbounds)) | 969 | (when (/= start (car Hbounds)) |
| 950 | (pulse-momentary-highlight-region | 970 | (pulse-momentary-highlight-region |
| 951 | start end semantic-idle-summary-highlight-face)) | 971 | start end semantic-idle-symbol-highlight-face)) |
| 952 | (semantic-throw-on-input 'symref-highlight) | 972 | (semantic-throw-on-input 'symref-highlight) |
| 953 | ) | 973 | ) |
| 954 | (semantic-tag-start tag) | 974 | (semantic-tag-start tag) |
| @@ -968,7 +988,7 @@ If ARG is nil, then toggle." | |||
| 968 | (when (or (and (numberp arg) (< arg 0)) | 988 | (when (or (and (numberp arg) (< arg 0)) |
| 969 | (and (null arg) global-semantic-idle-scheduler-mode)) | 989 | (and (null arg) global-semantic-idle-scheduler-mode)) |
| 970 | (global-semantic-idle-summary-mode -1) | 990 | (global-semantic-idle-summary-mode -1) |
| 971 | (global-semantic-idle-tag-highlight-mode -1) | 991 | (global-semantic-idle-local-symbol-highlight-mode -1) |
| 972 | (global-semantic-idle-completions-mode -1)) | 992 | (global-semantic-idle-completions-mode -1)) |
| 973 | (setq global-semantic-idle-scheduler-mode | 993 | (setq global-semantic-idle-scheduler-mode |
| 974 | (semantic-toggle-minor-mode-globally | 994 | (semantic-toggle-minor-mode-globally |
| @@ -980,25 +1000,23 @@ If ARG is nil, then toggle." | |||
| 980 | ;; This mode uses tooltips to display a (hopefully) short list of possible | 1000 | ;; This mode uses tooltips to display a (hopefully) short list of possible |
| 981 | ;; completions available for the text under point. It provides | 1001 | ;; completions available for the text under point. It provides |
| 982 | ;; NO provision for actually filling in the values from those completions. | 1002 | ;; NO provision for actually filling in the values from those completions. |
| 1003 | (defun semantic-idle-completions-end-of-symbol-p () | ||
| 1004 | "Return non-nil if the cursor is at the END of a symbol. | ||
| 1005 | If the cursor is in the middle of a symbol, then we shouldn't be | ||
| 1006 | doing fancy completions." | ||
| 1007 | (not (looking-at "\\w\\|\\s_"))) | ||
| 983 | 1008 | ||
| 984 | (defun semantic-idle-completion-list-default () | 1009 | (defun semantic-idle-completion-list-default () |
| 985 | "Calculate and display a list of completions." | 1010 | "Calculate and display a list of completions." |
| 986 | (when (semantic-idle-summary-useful-context-p) | 1011 | (when (and (semantic-idle-summary-useful-context-p) |
| 1012 | (semantic-idle-completions-end-of-symbol-p)) | ||
| 987 | ;; This mode can be fragile. Ignore problems. | 1013 | ;; This mode can be fragile. Ignore problems. |
| 988 | ;; If something doesn't do what you expect, run | 1014 | ;; If something doesn't do what you expect, run |
| 989 | ;; the below command by hand instead. | 1015 | ;; the below command by hand instead. |
| 990 | (condition-case nil | 1016 | (condition-case nil |
| 991 | (let ( | 1017 | (semanticdb-without-unloaded-file-searches |
| 992 | ;; Don't go loading in oodles of header libraries in | 1018 | ;; Use idle version. |
| 993 | ;; IDLE time. | 1019 | (semantic-complete-analyze-inline-idle) |
| 994 | (semanticdb-find-default-throttle | ||
| 995 | (if (featurep 'semantic/db-find) | ||
| 996 | (remq 'unloaded semanticdb-find-default-throttle) | ||
| 997 | nil)) | ||
| 998 | ) | ||
| 999 | ;; Use idle version. | ||
| 1000 | (require 'semantic/complete) | ||
| 1001 | (semantic-complete-analyze-inline-idle) | ||
| 1002 | ) | 1020 | ) |
| 1003 | (error nil)) | 1021 | (error nil)) |
| 1004 | )) | 1022 | )) |
| @@ -1026,6 +1044,347 @@ completion. | |||
| 1026 | ;; Add the ability to override sometime. | 1044 | ;; Add the ability to override sometime. |
| 1027 | (semantic-idle-completion-list-default)) | 1045 | (semantic-idle-completion-list-default)) |
| 1028 | 1046 | ||
| 1047 | |||
| 1048 | ;;; Breadcrumbs for tag under point | ||
| 1049 | ;; | ||
| 1050 | ;; Service that displays a breadcrumbs indication of the tag under | ||
| 1051 | ;; point and its parents in the header or mode line. | ||
| 1052 | ;; | ||
| 1053 | |||
| 1054 | (defcustom semantic-idle-breadcrumbs-display-function | ||
| 1055 | #'semantic-idle-breadcrumbs--display-in-header-line | ||
| 1056 | "Function to display the tag under point in idle time. | ||
| 1057 | This function should take a list of Semantic tags as its only | ||
| 1058 | argument. The tags are sorted according to their nesting order, | ||
| 1059 | starting with the outermost tag. The function should call | ||
| 1060 | `semantic-idle-breadcrumbs-format-tag-list-function' to convert | ||
| 1061 | the tag list into a string." | ||
| 1062 | :group 'semantic | ||
| 1063 | :type '(choice | ||
| 1064 | (const :tag "Display in header line" | ||
| 1065 | semantic-idle-breadcrumbs--display-in-header-line) | ||
| 1066 | (const :tag "Display in mode line" | ||
| 1067 | semantic-idle-breadcrumbs--display-in-mode-line) | ||
| 1068 | (function :tag "Other function"))) | ||
| 1069 | |||
| 1070 | (defcustom semantic-idle-breadcrumbs-format-tag-list-function | ||
| 1071 | #'semantic-idle-breadcrumbs--format-linear | ||
| 1072 | "Function to format the list of tags containing point. | ||
| 1073 | This function should take a list of Semantic tags and an optional | ||
| 1074 | maximum length of the produced string as its arguments. The | ||
| 1075 | maximum length is a hint and can be ignored. When the maximum | ||
| 1076 | length is omitted, an unconstrained string should be | ||
| 1077 | produced. The tags are sorted according to their nesting order, | ||
| 1078 | starting with the outermost tag. Single tags should be formatted | ||
| 1079 | using `semantic-idle-breadcrumbs-format-tag-function' unless | ||
| 1080 | special formatting is required." | ||
| 1081 | :group 'semantic | ||
| 1082 | :type '(choice | ||
| 1083 | (const :tag "Format tags as list, innermost last" | ||
| 1084 | semantic-idle-breadcrumbs--format-linear) | ||
| 1085 | (const :tag "Innermost tag with details, followed by remaining tags" | ||
| 1086 | semantic-idle-breadcrumbs--format-innermost-first) | ||
| 1087 | (function :tag "Other function"))) | ||
| 1088 | |||
| 1089 | (defcustom semantic-idle-breadcrumbs-format-tag-function | ||
| 1090 | #'semantic-format-tag-abbreviate | ||
| 1091 | "Function to call to format information about tags. | ||
| 1092 | This function should take a single argument, a Semantic tag, and | ||
| 1093 | return a string to display. | ||
| 1094 | Some useful functions are found in `semantic-format-tag-functions'." | ||
| 1095 | :group 'semantic | ||
| 1096 | :type semantic-format-tag-custom-list) | ||
| 1097 | |||
| 1098 | (defcustom semantic-idle-breadcrumbs-separator 'mode-specific | ||
| 1099 | "Specify how to separate tags in the breadcrumbs string. | ||
| 1100 | An arbitrary string or a mode-specific scope nesting | ||
| 1101 | string (like, for example, \"::\" in C++, or \".\" in Java) can | ||
| 1102 | be used." | ||
| 1103 | :group 'semantic | ||
| 1104 | :type '(choice | ||
| 1105 | (const :tag "Use mode specific separator" | ||
| 1106 | mode-specific) | ||
| 1107 | (string :tag "Specify separator string"))) | ||
| 1108 | |||
| 1109 | (defcustom semantic-idle-breadcrumbs-header-line-prefix | ||
| 1110 | semantic-stickyfunc-indent-string ;; TODO not optimal | ||
| 1111 | "String used to indent the breadcrumbs string. | ||
| 1112 | Customize this string to match the space used by scrollbars and | ||
| 1113 | fringe." | ||
| 1114 | :group 'semantic | ||
| 1115 | :type 'string) | ||
| 1116 | |||
| 1117 | (defvar semantic-idle-breadcrumbs-popup-menu nil | ||
| 1118 | "Menu used when a tag displayed by `semantic-idle-breadcrumbs-mode' is clicked.") | ||
| 1119 | |||
| 1120 | (defun semantic-idle-breadcrumbs--popup-menu (event) | ||
| 1121 | "Popup a menu that displays things to do to the clicked tag. | ||
| 1122 | Argument EVENT describes the event that caused this function to | ||
| 1123 | be called." | ||
| 1124 | (interactive "e") | ||
| 1125 | (let ((old-window (selected-window)) | ||
| 1126 | (window (semantic-event-window event))) | ||
| 1127 | (select-window window t) | ||
| 1128 | (semantic-popup-menu semantic-idle-breadcrumbs-popup-menu) | ||
| 1129 | (select-window old-window))) | ||
| 1130 | |||
| 1131 | (defmacro semantic-idle-breadcrumbs--tag-function (function) | ||
| 1132 | "Return lambda expression calling FUNCTION when called from a popup." | ||
| 1133 | `(lambda (event) | ||
| 1134 | (interactive "e") | ||
| 1135 | (let* ((old-window (selected-window)) | ||
| 1136 | (window (semantic-event-window event)) | ||
| 1137 | (column (car (nth 6 (nth 1 event)))) ;; TODO semantic-event-column? | ||
| 1138 | (tag (progn | ||
| 1139 | (select-window window t) | ||
| 1140 | (plist-get | ||
| 1141 | (text-properties-at column header-line-format) | ||
| 1142 | 'tag)))) | ||
| 1143 | (,function tag) | ||
| 1144 | (select-window old-window))) | ||
| 1145 | ) | ||
| 1146 | |||
| 1147 | ;; TODO does this work for mode-line case? | ||
| 1148 | (defvar semantic-idle-breadcrumbs-popup-map | ||
| 1149 | (let ((map (make-sparse-keymap))) | ||
| 1150 | ;; mouse-1 goes to clicked tag | ||
| 1151 | (define-key map | ||
| 1152 | [ header-line mouse-1 ] | ||
| 1153 | (semantic-idle-breadcrumbs--tag-function | ||
| 1154 | semantic-go-to-tag)) | ||
| 1155 | ;; mouse-3 pops up a context menu | ||
| 1156 | (define-key map | ||
| 1157 | [ header-line mouse-3 ] | ||
| 1158 | 'semantic-idle-breadcrumbs--popup-menu) | ||
| 1159 | map) | ||
| 1160 | "Keymap for semantic idle breadcrumbs minor mode.") | ||
| 1161 | |||
| 1162 | (easy-menu-define | ||
| 1163 | semantic-idle-breadcrumbs-popup-menu | ||
| 1164 | semantic-idle-breadcrumbs-popup-map | ||
| 1165 | "Semantic Breadcrumbs Mode Menu" | ||
| 1166 | (list | ||
| 1167 | "Breadcrumb Tag" | ||
| 1168 | (semantic-menu-item | ||
| 1169 | (vector | ||
| 1170 | "Go to Tag" | ||
| 1171 | (semantic-idle-breadcrumbs--tag-function | ||
| 1172 | semantic-go-to-tag) | ||
| 1173 | :active t | ||
| 1174 | :help "Jump to this tag")) | ||
| 1175 | ;; TODO these entries need minor changes (optional tag argument) in | ||
| 1176 | ;; senator-copy-tag etc | ||
| 1177 | ;; (semantic-menu-item | ||
| 1178 | ;; (vector | ||
| 1179 | ;; "Copy Tag" | ||
| 1180 | ;; (semantic-idle-breadcrumbs--tag-function | ||
| 1181 | ;; senator-copy-tag) | ||
| 1182 | ;; :active t | ||
| 1183 | ;; :help "Copy this tag")) | ||
| 1184 | ;; (semantic-menu-item | ||
| 1185 | ;; (vector | ||
| 1186 | ;; "Kill Tag" | ||
| 1187 | ;; (semantic-idle-breadcrumbs--tag-function | ||
| 1188 | ;; senator-kill-tag) | ||
| 1189 | ;; :active t | ||
| 1190 | ;; :help "Kill tag text to the kill ring, and copy the tag to | ||
| 1191 | ;; the tag ring")) | ||
| 1192 | ;; (semantic-menu-item | ||
| 1193 | ;; (vector | ||
| 1194 | ;; "Copy Tag to Register" | ||
| 1195 | ;; (semantic-idle-breadcrumbs--tag-function | ||
| 1196 | ;; senator-copy-tag-to-register) | ||
| 1197 | ;; :active t | ||
| 1198 | ;; :help "Copy this tag")) | ||
| 1199 | ;; (semantic-menu-item | ||
| 1200 | ;; (vector | ||
| 1201 | ;; "Narrow to Tag" | ||
| 1202 | ;; (semantic-idle-breadcrumbs--tag-function | ||
| 1203 | ;; senator-narrow-to-defun) | ||
| 1204 | ;; :active t | ||
| 1205 | ;; :help "Narrow to the bounds of the current tag")) | ||
| 1206 | ;; (semantic-menu-item | ||
| 1207 | ;; (vector | ||
| 1208 | ;; "Fold Tag" | ||
| 1209 | ;; (semantic-idle-breadcrumbs--tag-function | ||
| 1210 | ;; senator-fold-tag-toggle) | ||
| 1211 | ;; :active t | ||
| 1212 | ;; :style 'toggle | ||
| 1213 | ;; :selected '(let ((tag (semantic-current-tag))) | ||
| 1214 | ;; (and tag (semantic-tag-folded-p tag))) | ||
| 1215 | ;; :help "Fold the current tag to one line")) | ||
| 1216 | "---" | ||
| 1217 | (semantic-menu-item | ||
| 1218 | (vector | ||
| 1219 | "About this Header Line" | ||
| 1220 | (lambda () | ||
| 1221 | (interactive) | ||
| 1222 | (describe-function 'semantic-idle-breadcrumbs-mode)) | ||
| 1223 | :active t | ||
| 1224 | :help "Display help about this header line.")) | ||
| 1225 | ) | ||
| 1226 | ) | ||
| 1227 | |||
| 1228 | (define-semantic-idle-service semantic-idle-breadcrumbs | ||
| 1229 | "Display breadcrumbs for the tag under point and its parents." | ||
| 1230 | (let* ((scope (semantic-calculate-scope)) | ||
| 1231 | (tag-list (if scope | ||
| 1232 | ;; If there is a scope, extract the tag and its | ||
| 1233 | ;; parents. | ||
| 1234 | (append (oref scope parents) | ||
| 1235 | (when (oref scope tag) | ||
| 1236 | (list (oref scope tag)))) | ||
| 1237 | ;; Fall back to tags by overlay | ||
| 1238 | (semantic-find-tag-by-overlay)))) | ||
| 1239 | ;; Display the tags. | ||
| 1240 | (funcall semantic-idle-breadcrumbs-display-function tag-list))) | ||
| 1241 | |||
| 1242 | (defun semantic-idle-breadcrumbs--display-in-header-line (tag-list) | ||
| 1243 | "Display the tags in TAG-LIST in the header line of their buffer." | ||
| 1244 | (let ((width (- (nth 2 (window-edges)) | ||
| 1245 | (nth 0 (window-edges))))) | ||
| 1246 | ;; Format TAG-LIST and put the formatted string into the header | ||
| 1247 | ;; line. | ||
| 1248 | (setq header-line-format | ||
| 1249 | (concat | ||
| 1250 | semantic-idle-breadcrumbs-header-line-prefix | ||
| 1251 | (if tag-list | ||
| 1252 | (semantic-idle-breadcrumbs--format-tag-list | ||
| 1253 | tag-list | ||
| 1254 | (- width | ||
| 1255 | (length semantic-idle-breadcrumbs-header-line-prefix))) | ||
| 1256 | (propertize | ||
| 1257 | "<not on tags>" | ||
| 1258 | 'face | ||
| 1259 | 'font-lock-comment-face))))) | ||
| 1260 | |||
| 1261 | ;; Update the header line. | ||
| 1262 | (force-mode-line-update)) | ||
| 1263 | |||
| 1264 | (defun semantic-idle-breadcrumbs--display-in-mode-line (tag-list) | ||
| 1265 | "Display the tags in TAG-LIST in the mode line of their buffer. | ||
| 1266 | TODO THIS FUNCTION DOES NOT WORK YET." | ||
| 1267 | |||
| 1268 | (error "This function does not work yet") | ||
| 1269 | |||
| 1270 | (let ((width (- (nth 2 (window-edges)) | ||
| 1271 | (nth 0 (window-edges))))) | ||
| 1272 | (setq mode-line-format | ||
| 1273 | (semantic-idle-breadcrumbs--format-tag-list tag-list width))) | ||
| 1274 | |||
| 1275 | (force-mode-line-update)) | ||
| 1276 | |||
| 1277 | (defun semantic-idle-breadcrumbs--format-tag-list (tag-list max-length) | ||
| 1278 | "Format TAG-LIST using configured functions respecting MAX-LENGTH. | ||
| 1279 | If the initial formatting result is longer than MAX-LENGTH, it is | ||
| 1280 | shortened at the beginning." | ||
| 1281 | ;; Format TAG-LIST using the configured formatting function. | ||
| 1282 | (let* ((complete-format (funcall | ||
| 1283 | semantic-idle-breadcrumbs-format-tag-list-function | ||
| 1284 | tag-list max-length)) | ||
| 1285 | ;; Determine length of complete format. | ||
| 1286 | (complete-length (length complete-format))) | ||
| 1287 | ;; Shorten string if necessary. | ||
| 1288 | (if (<= complete-length max-length) | ||
| 1289 | complete-format | ||
| 1290 | (concat "... " | ||
| 1291 | (substring | ||
| 1292 | complete-format | ||
| 1293 | (- complete-length (- max-length 4)))))) | ||
| 1294 | ) | ||
| 1295 | |||
| 1296 | (defun semantic-idle-breadcrumbs--format-linear | ||
| 1297 | (tag-list &optional max-length) | ||
| 1298 | "Format TAG-LIST as a linear list, starting with the outermost tag. | ||
| 1299 | MAX-LENGTH is not used." | ||
| 1300 | (require 'semantic/analyze/fcn) | ||
| 1301 | (let* ((format-pieces (mapcar | ||
| 1302 | #'semantic-idle-breadcrumbs--format-tag | ||
| 1303 | tag-list)) | ||
| 1304 | ;; Format tag list, putting configured separators between the | ||
| 1305 | ;; tags. | ||
| 1306 | (complete-format (cond | ||
| 1307 | ;; Mode specific separator. | ||
| 1308 | ((eq semantic-idle-breadcrumbs-separator | ||
| 1309 | 'mode-specific) | ||
| 1310 | (semantic-analyze-unsplit-name format-pieces)) | ||
| 1311 | |||
| 1312 | ;; Custom separator. | ||
| 1313 | ((stringp semantic-idle-breadcrumbs-separator) | ||
| 1314 | (mapconcat | ||
| 1315 | #'identity | ||
| 1316 | format-pieces | ||
| 1317 | semantic-idle-breadcrumbs-separator))))) | ||
| 1318 | complete-format) | ||
| 1319 | ) | ||
| 1320 | |||
| 1321 | (defun semantic-idle-breadcrumbs--format-innermost-first | ||
| 1322 | (tag-list &optional max-length) | ||
| 1323 | "Format TAG-LIST placing the innermost tag first, separated from its parents. | ||
| 1324 | If MAX-LENGTH is non-nil, the innermost tag is shortened." | ||
| 1325 | (let* (;; Separate and format remaining tags. Calculate length of | ||
| 1326 | ;; resulting string. | ||
| 1327 | (rest-tags (butlast tag-list)) | ||
| 1328 | (rest-format (if rest-tags | ||
| 1329 | (concat | ||
| 1330 | " | " | ||
| 1331 | (semantic-idle-breadcrumbs--format-linear | ||
| 1332 | rest-tags)) | ||
| 1333 | "")) | ||
| 1334 | (rest-length (length rest-format)) | ||
| 1335 | ;; Format innermost tag and calculate length of resulting | ||
| 1336 | ;; string. | ||
| 1337 | (inner-format (semantic-idle-breadcrumbs--format-tag | ||
| 1338 | (car (last tag-list)) | ||
| 1339 | #'semantic-format-tag-prototype)) | ||
| 1340 | (inner-length (length inner-format)) | ||
| 1341 | ;; Calculate complete length and shorten string for innermost | ||
| 1342 | ;; tag if MAX-LENGTH is non-nil and the complete string is | ||
| 1343 | ;; too long. | ||
| 1344 | (complete-length (+ inner-length rest-length)) | ||
| 1345 | (inner-short (if (and max-length | ||
| 1346 | (<= complete-length max-length)) | ||
| 1347 | inner-format | ||
| 1348 | (concat (substring | ||
| 1349 | inner-format | ||
| 1350 | 0 | ||
| 1351 | (- inner-length | ||
| 1352 | (- complete-length max-length) | ||
| 1353 | 4)) | ||
| 1354 | " ...")))) | ||
| 1355 | ;; Concat both parts. | ||
| 1356 | (concat inner-short rest-format)) | ||
| 1357 | ) | ||
| 1358 | |||
| 1359 | (defun semantic-idle-breadcrumbs--format-tag (tag &optional format-function) | ||
| 1360 | "Format TAG using the configured function or FORMAT-FUNCTION. | ||
| 1361 | This function also adds text properties for help-echo, mouse | ||
| 1362 | highlighting and a keymap." | ||
| 1363 | (let ((formatted (funcall | ||
| 1364 | (or format-function | ||
| 1365 | semantic-idle-breadcrumbs-format-tag-function) | ||
| 1366 | tag nil t))) | ||
| 1367 | (add-text-properties | ||
| 1368 | 0 (length formatted) | ||
| 1369 | (list | ||
| 1370 | 'tag | ||
| 1371 | tag | ||
| 1372 | 'help-echo | ||
| 1373 | (format | ||
| 1374 | "Tag %s | ||
| 1375 | Type: %s | ||
| 1376 | mouse-1: jump to tag | ||
| 1377 | mouse-3: popup context menu" | ||
| 1378 | (semantic-tag-name tag) | ||
| 1379 | (semantic-tag-class tag)) | ||
| 1380 | 'mouse-face | ||
| 1381 | 'highlight | ||
| 1382 | 'keymap | ||
| 1383 | semantic-idle-breadcrumbs-popup-map) | ||
| 1384 | formatted) | ||
| 1385 | formatted)) | ||
| 1386 | |||
| 1387 | |||
| 1029 | (provide 'semantic/idle) | 1388 | (provide 'semantic/idle) |
| 1030 | 1389 | ||
| 1031 | ;; Local variables: | 1390 | ;; Local variables: |
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index 9ce986553aa..e38b50bcd57 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el | |||
| @@ -99,7 +99,7 @@ A nil value means to keep them in the same order. | |||
| 99 | Overriden to nil if `semantic-imenu-bucketize-file' is nil." | 99 | Overriden to nil if `semantic-imenu-bucketize-file' is nil." |
| 100 | :group 'semantic-imenu | 100 | :group 'semantic-imenu |
| 101 | :type 'boolean) | 101 | :type 'boolean) |
| 102 | (make-variable-buffer-local 'semantic-imenu-bucketize-type-parts) | 102 | (make-variable-buffer-local 'semantic-imenu-bucketize-type-members) |
| 103 | (semantic-varalias-obsolete 'semantic-imenu-bucketize-type-parts | 103 | (semantic-varalias-obsolete 'semantic-imenu-bucketize-type-parts |
| 104 | 'semantic-imenu-bucketize-type-members "23.2") | 104 | 'semantic-imenu-bucketize-type-members "23.2") |
| 105 | 105 | ||
diff --git a/lisp/cedet/semantic/lex-spp.el b/lisp/cedet/semantic/lex-spp.el index 58ad681008c..88b77e50e1d 100644 --- a/lisp/cedet/semantic/lex-spp.el +++ b/lisp/cedet/semantic/lex-spp.el | |||
| @@ -864,42 +864,45 @@ and variable state from the current buffer." | |||
| 864 | semantic-lex-spp-expanded-macro-stack | 864 | semantic-lex-spp-expanded-macro-stack |
| 865 | )) | 865 | )) |
| 866 | ) | 866 | ) |
| 867 | (with-current-buffer buf | 867 | (if (> semantic-lex-spp-hack-depth 5) |
| 868 | (erase-buffer) | 868 | nil |
| 869 | ;; Below is a painful hack to make sure everything is setup correctly. | 869 | (with-current-buffer buf |
| 870 | (when (not (eq major-mode mode)) | 870 | (erase-buffer) |
| 871 | (save-match-data | 871 | ;; Below is a painful hack to make sure everything is setup correctly. |
| 872 | 872 | (when (not (eq major-mode mode)) | |
| 873 | ;; Protect against user-hooks that throw errors. | 873 | (save-match-data |
| 874 | (condition-case nil | 874 | |
| 875 | (funcall mode) | 875 | ;; Protect against user-hooks that throw errors. |
| 876 | (error nil)) | 876 | (condition-case nil |
| 877 | 877 | (funcall mode) | |
| 878 | ;; Hack in mode-local | 878 | (error nil)) |
| 879 | (activate-mode-local-bindings) | 879 | |
| 880 | ;; CHEATER! The following 3 lines are from | 880 | ;; Hack in mode-local |
| 881 | ;; `semantic-new-buffer-fcn', but we don't want to turn | 881 | (activate-mode-local-bindings) |
| 882 | ;; on all the other annoying modes for this little task. | 882 | |
| 883 | (setq semantic-new-buffer-fcn-was-run t) | 883 | ;; CHEATER! The following 3 lines are from |
| 884 | (semantic-lex-init) | 884 | ;; `semantic-new-buffer-fcn', but we don't want to turn |
| 885 | (semantic-clear-toplevel-cache) | 885 | ;; on all the other annoying modes for this little task. |
| 886 | (remove-hook 'semantic-lex-reset-hooks 'semantic-lex-spp-reset-hook | 886 | (setq semantic-new-buffer-fcn-was-run t) |
| 887 | t) | 887 | (semantic-lex-init) |
| 888 | )) | 888 | (semantic-clear-toplevel-cache) |
| 889 | (remove-hook 'semantic-lex-reset-hooks 'semantic-lex-spp-reset-hook | ||
| 890 | t) | ||
| 891 | )) | ||
| 889 | 892 | ||
| 890 | ;; Second Cheat: copy key variables regarding macro state from the | 893 | ;; Second Cheat: copy key variables regarding macro state from the |
| 891 | ;; the originating buffer we are parsing. We need to do this every time | 894 | ;; the originating buffer we are parsing. We need to do this every time |
| 892 | ;; since the state changes. | 895 | ;; since the state changes. |
| 893 | (dolist (V important-vars) | 896 | (dolist (V important-vars) |
| 894 | (set V (semantic-buffer-local-value V origbuff))) | 897 | (set V (semantic-buffer-local-value V origbuff))) |
| 895 | (insert text) | 898 | (insert text) |
| 896 | (goto-char (point-min)) | 899 | (goto-char (point-min)) |
| 897 | 900 | ||
| 898 | (setq fresh-toks (semantic-lex-spp-stream-for-macro (point-max)))) | 901 | (setq fresh-toks (semantic-lex-spp-stream-for-macro (point-max)))) |
| 899 | 902 | ||
| 900 | (dolist (tok fresh-toks) | 903 | (dolist (tok fresh-toks) |
| 901 | (when (memq (semantic-lex-token-class tok) '(symbol semantic-list)) | 904 | (when (memq (semantic-lex-token-class tok) '(symbol semantic-list)) |
| 902 | (setq toks (cons tok toks)))) | 905 | (setq toks (cons tok toks))))) |
| 903 | 906 | ||
| 904 | (nreverse toks))) | 907 | (nreverse toks))) |
| 905 | 908 | ||
diff --git a/lisp/cedet/semantic/scope.el b/lisp/cedet/semantic/scope.el index 6da2e9d779a..f2472ef9410 100644 --- a/lisp/cedet/semantic/scope.el +++ b/lisp/cedet/semantic/scope.el | |||
| @@ -67,7 +67,7 @@ | |||
| 67 | :documentation | 67 | :documentation |
| 68 | "The list of types currently in scope. | 68 | "The list of types currently in scope. |
| 69 | For C++, this would contain anonymous namespaces known, and | 69 | For C++, this would contain anonymous namespaces known, and |
| 70 | anything labled by a `using' statement.") | 70 | anything labeled by a `using' statement.") |
| 71 | (parents :initform nil | 71 | (parents :initform nil |
| 72 | :documentation | 72 | :documentation |
| 73 | "List of parents in scope w/in the body of this function. | 73 | "List of parents in scope w/in the body of this function. |
| @@ -239,8 +239,11 @@ are from nesting data types." | |||
| 239 | ) | 239 | ) |
| 240 | ;; In case of arg lists or some-such, throw out non-types. | 240 | ;; In case of arg lists or some-such, throw out non-types. |
| 241 | (while (and stack (not (semantic-tag-of-class-p pparent 'type))) | 241 | (while (and stack (not (semantic-tag-of-class-p pparent 'type))) |
| 242 | (setq stack (cdr stack) | 242 | (setq stack (cdr stack) pparent (car (cdr stack)))) |
| 243 | pparent (car (cdr stack)))) | 243 | |
| 244 | ;; Remove duplicates | ||
| 245 | (while (member pparent scopetypes) | ||
| 246 | (setq stack (cdr stack) pparent (car (cdr stack)))) | ||
| 244 | 247 | ||
| 245 | ;; Step 1: | 248 | ;; Step 1: |
| 246 | ;; Analyze the stack of tags we are nested in as parents. | 249 | ;; Analyze the stack of tags we are nested in as parents. |
| @@ -611,7 +614,7 @@ whose tags can be searched when needed, OR it may be a scope object." | |||
| 611 | ;; to do any of the stuff related to variables and what-not. | 614 | ;; to do any of the stuff related to variables and what-not. |
| 612 | (setq tmpscope (semantic-scope-cache "mini")) | 615 | (setq tmpscope (semantic-scope-cache "mini")) |
| 613 | (let* ( ;; Step 1: | 616 | (let* ( ;; Step 1: |
| 614 | (scopetypes (semantic-analyze-scoped-types (point))) | 617 | (scopetypes (cons type (semantic-analyze-scoped-types (point)))) |
| 615 | (parents (semantic-analyze-scope-nested-tags (point) scopetypes)) | 618 | (parents (semantic-analyze-scope-nested-tags (point) scopetypes)) |
| 616 | ;;(parentinherited (semantic-analyze-scope-lineage-tags parents scopetypes)) | 619 | ;;(parentinherited (semantic-analyze-scope-lineage-tags parents scopetypes)) |
| 617 | (lscope nil) | 620 | (lscope nil) |
diff --git a/lisp/cedet/semantic/sort.el b/lisp/cedet/semantic/sort.el index 1cbb6787460..064ef19ab9a 100644 --- a/lisp/cedet/semantic/sort.el +++ b/lisp/cedet/semantic/sort.el | |||
| @@ -463,7 +463,7 @@ include the default behavior, and merely extend your own." | |||
| 463 | ) | 463 | ) |
| 464 | 464 | ||
| 465 | (defun semantic-tag-external-member-parent-default (tag) | 465 | (defun semantic-tag-external-member-parent-default (tag) |
| 466 | "Return the name of TAGs parent only if TAG is not defined in it's parent." | 466 | "Return the name of TAGs parent only if TAG is not defined in its parent." |
| 467 | ;; Use only the extra spec because a type has a parent which | 467 | ;; Use only the extra spec because a type has a parent which |
| 468 | ;; means something completely different. | 468 | ;; means something completely different. |
| 469 | (let ((tp (semantic-tag-get-attribute tag :parent))) | 469 | (let ((tp (semantic-tag-get-attribute tag :parent))) |
| @@ -473,7 +473,7 @@ include the default behavior, and merely extend your own." | |||
| 473 | (define-overloadable-function semantic-tag-external-member-p (parent tag) | 473 | (define-overloadable-function semantic-tag-external-member-p (parent tag) |
| 474 | "Return non-nil if PARENT is the parent of TAG. | 474 | "Return non-nil if PARENT is the parent of TAG. |
| 475 | TAG is an external member of PARENT when it is somehow tagged | 475 | TAG is an external member of PARENT when it is somehow tagged |
| 476 | as having PARENT as it's parent. | 476 | as having PARENT as its parent. |
| 477 | PARENT and TAG must both be semantic tags. | 477 | PARENT and TAG must both be semantic tags. |
| 478 | 478 | ||
| 479 | The default behavior, if not overridden with | 479 | The default behavior, if not overridden with |
diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el index f1e3f9a5d95..d36beffc95f 100644 --- a/lisp/cedet/semantic/symref.el +++ b/lisp/cedet/semantic/symref.el | |||
| @@ -71,6 +71,7 @@ | |||
| 71 | (declare-function data-debug-insert-object-slots "eieio-datadebug") | 71 | (declare-function data-debug-insert-object-slots "eieio-datadebug") |
| 72 | (declare-function ede-toplevel "ede/files") | 72 | (declare-function ede-toplevel "ede/files") |
| 73 | (declare-function ede-project-root-directory "ede/files") | 73 | (declare-function ede-project-root-directory "ede/files") |
| 74 | (declare-function ede-up-directory "ede/files") | ||
| 74 | 75 | ||
| 75 | ;;; Code: | 76 | ;;; Code: |
| 76 | (defvar semantic-symref-tool 'detect | 77 | (defvar semantic-symref-tool 'detect |
| @@ -98,16 +99,27 @@ is supported. | |||
| 98 | 99 | ||
| 99 | If no tools are supported, then 'grep is assumed.") | 100 | If no tools are supported, then 'grep is assumed.") |
| 100 | 101 | ||
| 102 | (defun semantic-symref-calculate-rootdir () | ||
| 103 | "Calculate the root directory for a symref search. | ||
| 104 | Start with and EDE project, or use the default directory." | ||
| 105 | (let* ((rootproj (when (and (featurep 'ede) ede-minor-mode) | ||
| 106 | (ede-toplevel))) | ||
| 107 | (rootdirbase (if rootproj | ||
| 108 | (ede-project-root-directory rootproj) | ||
| 109 | default-directory))) | ||
| 110 | (if (and rootproj (condition-case nil | ||
| 111 | ;; Hack for subprojects. | ||
| 112 | (oref rootproj :metasubproject) | ||
| 113 | (error nil))) | ||
| 114 | (ede-up-directory rootdirbase) | ||
| 115 | rootdirbase))) | ||
| 116 | |||
| 101 | (defun semantic-symref-detect-symref-tool () | 117 | (defun semantic-symref-detect-symref-tool () |
| 102 | "Detect the symref tool to use for the current buffer." | 118 | "Detect the symref tool to use for the current buffer." |
| 103 | (if (not (eq semantic-symref-tool 'detect)) | 119 | (if (not (eq semantic-symref-tool 'detect)) |
| 104 | semantic-symref-tool | 120 | semantic-symref-tool |
| 105 | ;; We are to perform a detection for the right tool to use. | 121 | ;; We are to perform a detection for the right tool to use. |
| 106 | (let* ((rootproj (when (and (featurep 'ede) ede-minor-mode) | 122 | (let* ((rootdir (semantic-symref-calculate-rootdir)) |
| 107 | (ede-toplevel))) | ||
| 108 | (rootdir (if rootproj | ||
| 109 | (ede-project-root-directory rootproj) | ||
| 110 | default-directory)) | ||
| 111 | (tools semantic-symref-tool-alist)) | 123 | (tools semantic-symref-tool-alist)) |
| 112 | (while (and tools (eq semantic-symref-tool 'detect)) | 124 | (while (and tools (eq semantic-symref-tool 'detect)) |
| 113 | (when (funcall (car (car tools)) rootdir) | 125 | (when (funcall (car (car tools)) rootdir) |
diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index b326062e97d..521babc1f6e 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el | |||
| @@ -30,10 +30,6 @@ | |||
| 30 | (require 'semantic/symref) | 30 | (require 'semantic/symref) |
| 31 | (require 'grep) | 31 | (require 'grep) |
| 32 | 32 | ||
| 33 | (defvar ede-minor-mode) | ||
| 34 | (declare-function ede-toplevel "ede/files") | ||
| 35 | (declare-function ede-project-root-directory "ede/files") | ||
| 36 | |||
| 37 | ;;; Code: | 33 | ;;; Code: |
| 38 | 34 | ||
| 39 | ;;; GREP | 35 | ;;; GREP |
| @@ -86,7 +82,7 @@ Optional argument MODE specifies the `major-mode' to test." | |||
| 86 | " -o ") | 82 | " -o ") |
| 87 | " \\)")) | 83 | " \\)")) |
| 88 | (t | 84 | (t |
| 89 | (error "Configuration for `semantic-symref-tool-grep' needed for %s" major-mode)) | 85 | (error "Customize `semantic-symref-filepattern-alist' for %s" major-mode)) |
| 90 | ))) | 86 | ))) |
| 91 | 87 | ||
| 92 | (defvar semantic-symref-grep-expand-keywords | 88 | (defvar semantic-symref-grep-expand-keywords |
| @@ -119,6 +115,12 @@ GREPPATTERN is the pattern used by grep." | |||
| 119 | ;;(message "New command: %s" cmd) | 115 | ;;(message "New command: %s" cmd) |
| 120 | cmd)) | 116 | cmd)) |
| 121 | 117 | ||
| 118 | (defcustom semantic-symref-grep-shell "sh" | ||
| 119 | "The shell command to use for executing find/grep. | ||
| 120 | This shell should support pipe redirect syntax." | ||
| 121 | :group 'semantic | ||
| 122 | :type 'string) | ||
| 123 | |||
| 122 | (defmethod semantic-symref-perform-search ((tool semantic-symref-tool-grep)) | 124 | (defmethod semantic-symref-perform-search ((tool semantic-symref-tool-grep)) |
| 123 | "Perform a search with Grep." | 125 | "Perform a search with Grep." |
| 124 | ;; Grep doesn't support some types of searches. | 126 | ;; Grep doesn't support some types of searches. |
| @@ -129,19 +131,7 @@ GREPPATTERN is the pattern used by grep." | |||
| 129 | ;; Find the root of the project, and do a find-grep... | 131 | ;; Find the root of the project, and do a find-grep... |
| 130 | (let* (;; Find the file patterns to use. | 132 | (let* (;; Find the file patterns to use. |
| 131 | (pat (cdr (assoc major-mode semantic-symref-filepattern-alist))) | 133 | (pat (cdr (assoc major-mode semantic-symref-filepattern-alist))) |
| 132 | (rootdir (cond | 134 | (rootdir (semantic-symref-calculate-rootdir)) |
| 133 | ;; Project root via EDE. | ||
| 134 | ((eq (oref tool :searchscope) 'project) | ||
| 135 | (let ((rootproj (when (and (featurep 'ede) ede-minor-mode) | ||
| 136 | (ede-toplevel)))) | ||
| 137 | (if rootproj | ||
| 138 | (ede-project-root-directory rootproj) | ||
| 139 | default-directory))) | ||
| 140 | ;; Calculate the target files as just in | ||
| 141 | ;; this directory... cause I'm lazy. | ||
| 142 | ((eq (oref tool :searchscope) 'target) | ||
| 143 | default-directory) | ||
| 144 | )) | ||
| 145 | (filepattern (semantic-symref-derive-find-filepatterns)) | 135 | (filepattern (semantic-symref-derive-find-filepatterns)) |
| 146 | ;; Grep based flags. | 136 | ;; Grep based flags. |
| 147 | (grepflags (cond ((eq (oref tool :resulttype) 'file) | 137 | (grepflags (cond ((eq (oref tool :resulttype) 'file) |
| @@ -168,10 +158,10 @@ GREPPATTERN is the pattern used by grep." | |||
| 168 | (let ((cmd (concat "find " default-directory " -type f " filepattern " -print0 " | 158 | (let ((cmd (concat "find " default-directory " -type f " filepattern " -print0 " |
| 169 | "| xargs -0 grep -H " grepflags "-e " greppat))) | 159 | "| xargs -0 grep -H " grepflags "-e " greppat))) |
| 170 | ;;(message "Old command: %s" cmd) | 160 | ;;(message "Old command: %s" cmd) |
| 171 | (call-process "sh" nil b nil "-c" cmd) | 161 | (call-process semantic-symref-grep-shell nil b nil "-c" cmd) |
| 172 | ) | 162 | ) |
| 173 | (let ((cmd (semantic-symref-grep-use-template rootdir filepattern grepflags greppat))) | 163 | (let ((cmd (semantic-symref-grep-use-template rootdir filepattern grepflags greppat))) |
| 174 | (call-process "sh" nil b nil "-c" cmd)) | 164 | (call-process semantic-symref-grep-shell nil b nil "-c" cmd)) |
| 175 | )) | 165 | )) |
| 176 | (setq ans (semantic-symref-parse-tool-output tool b)) | 166 | (setq ans (semantic-symref-parse-tool-output tool b)) |
| 177 | ;; Return the answer | 167 | ;; Return the answer |
diff --git a/lisp/cedet/semantic/symref/list.el b/lisp/cedet/semantic/symref/list.el index cfc032af9ad..9e0ee2a1b5b 100644 --- a/lisp/cedet/semantic/symref/list.el +++ b/lisp/cedet/semantic/symref/list.el | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | 33 | ||
| 34 | (require 'semantic/symref) | 34 | (require 'semantic/symref) |
| 35 | (require 'semantic/complete) | 35 | (require 'semantic/complete) |
| 36 | (require 'semantic/senator) | ||
| 36 | (require 'pulse) | 37 | (require 'pulse) |
| 37 | 38 | ||
| 38 | ;;; Code: | 39 | ;;; Code: |
| @@ -42,9 +43,9 @@ | |||
| 42 | "Find references to the current tag. | 43 | "Find references to the current tag. |
| 43 | This command uses the currently configured references tool within the | 44 | This command uses the currently configured references tool within the |
| 44 | current project to find references to the current tag. The | 45 | current project to find references to the current tag. The |
| 45 | references are the organized by file and the name of the function | 46 | references are organized by file and the name of the function |
| 46 | they are used in. | 47 | they are used in. |
| 47 | Display the references in`semantic-symref-results-mode'." | 48 | Display the references in `semantic-symref-results-mode'." |
| 48 | (interactive) | 49 | (interactive) |
| 49 | (semantic-fetch-tags) | 50 | (semantic-fetch-tags) |
| 50 | (let ((ct (semantic-current-tag)) | 51 | (let ((ct (semantic-current-tag)) |
| @@ -65,6 +66,24 @@ Display the references in`semantic-symref-results-mode'." | |||
| 65 | "Find references to the symbol SYM. | 66 | "Find references to the symbol SYM. |
| 66 | This command uses the currently configured references tool within the | 67 | This command uses the currently configured references tool within the |
| 67 | current project to find references to the input SYM. The | 68 | current project to find references to the input SYM. The |
| 69 | references are organized by file and the name of the function | ||
| 70 | they are used in. | ||
| 71 | Display the references in `semantic-symref-results-mode'." | ||
| 72 | (interactive (list (semantic-tag-name (semantic-complete-read-tag-buffer-deep | ||
| 73 | "Symrefs for: ")))) | ||
| 74 | (semantic-fetch-tags) | ||
| 75 | (let ((res nil) | ||
| 76 | ) | ||
| 77 | ;; Gather results and tags | ||
| 78 | (message "Gathering References...") | ||
| 79 | (setq res (semantic-symref-find-references-by-name sym)) | ||
| 80 | (semantic-symref-produce-list-on-results res sym))) | ||
| 81 | |||
| 82 | ;;;###autoload | ||
| 83 | (defun semantic-symref-regexp (sym) | ||
| 84 | "Find references to the a symbol regexp SYM. | ||
| 85 | This command uses the currently configured references tool within the | ||
| 86 | current project to find references to the input SYM. The | ||
| 68 | references are the organized by file and the name of the function | 87 | references are the organized by file and the name of the function |
| 69 | they are used in. | 88 | they are used in. |
| 70 | Display the references in`semantic-symref-results-mode'." | 89 | Display the references in`semantic-symref-results-mode'." |
| @@ -75,7 +94,7 @@ Display the references in`semantic-symref-results-mode'." | |||
| 75 | ) | 94 | ) |
| 76 | ;; Gather results and tags | 95 | ;; Gather results and tags |
| 77 | (message "Gathering References...") | 96 | (message "Gathering References...") |
| 78 | (setq res (semantic-symref-find-references-by-name sym)) | 97 | (setq res (semantic-symref-find-text sym)) |
| 79 | (semantic-symref-produce-list-on-results res sym))) | 98 | (semantic-symref-produce-list-on-results res sym))) |
| 80 | 99 | ||
| 81 | 100 | ||
| @@ -110,11 +129,59 @@ Display the references in`semantic-symref-results-mode'." | |||
| 110 | (define-key km "n" 'semantic-symref-list-next-line) | 129 | (define-key km "n" 'semantic-symref-list-next-line) |
| 111 | (define-key km "p" 'semantic-symref-list-prev-line) | 130 | (define-key km "p" 'semantic-symref-list-prev-line) |
| 112 | (define-key km "q" 'semantic-symref-hide-buffer) | 131 | (define-key km "q" 'semantic-symref-hide-buffer) |
| 132 | (define-key km "\C-c\C-e" 'semantic-symref-list-expand-all) | ||
| 133 | (define-key km "\C-c\C-r" 'semantic-symref-list-contract-all) | ||
| 134 | (define-key km "R" 'semantic-symref-list-rename-open-hits) | ||
| 135 | (define-key km "(" 'semantic-symref-list-create-macro-on-open-hit) | ||
| 136 | (define-key km "E" 'semantic-symref-list-call-macro-on-open-hits) | ||
| 113 | km) | 137 | km) |
| 114 | "Keymap used in `semantic-symref-results-mode'.") | 138 | "Keymap used in `semantic-symref-results-mode'.") |
| 115 | 139 | ||
| 140 | (defvar semantic-symref-list-menu-entries | ||
| 141 | (list | ||
| 142 | "Symref" | ||
| 143 | (semantic-menu-item | ||
| 144 | ["Toggle Line Open" | ||
| 145 | semantic-symref-list-toggle-showing | ||
| 146 | :active t | ||
| 147 | :help "Toggle the current line open or closed." | ||
| 148 | ]) | ||
| 149 | (semantic-menu-item | ||
| 150 | ["Expand All Entries" | ||
| 151 | semantic-symref-list-expand-all | ||
| 152 | :active t | ||
| 153 | :help "Expand every expandable entry." | ||
| 154 | ]) | ||
| 155 | (semantic-menu-item | ||
| 156 | ["Contract All Entries" | ||
| 157 | semantic-symref-list-contract-all | ||
| 158 | :active t | ||
| 159 | :help "Close every expandable entry." | ||
| 160 | ]) | ||
| 161 | (semantic-menu-item | ||
| 162 | ["Rename Symbol in Open hits" | ||
| 163 | semantic-symref-list-rename-open-hits | ||
| 164 | :active t | ||
| 165 | :help "Rename the searched for symbol in all hits that are currently open." | ||
| 166 | ]) | ||
| 167 | ) | ||
| 168 | "Menu entries for the Semantic Symref list mode.") | ||
| 169 | |||
| 170 | (defvar semantic-symref-list-menu nil | ||
| 171 | "Menu keymap build from `semantic-symref-results-mode'.") | ||
| 172 | |||
| 173 | (easy-menu-define semantic-symref-list-menu | ||
| 174 | semantic-symref-results-mode-map | ||
| 175 | "Symref Mode Menu" | ||
| 176 | semantic-symref-list-menu-entries) | ||
| 177 | |||
| 178 | (defcustom semantic-symref-auto-expand-results nil | ||
| 179 | "Non-nil to expand symref results on buffer creation." | ||
| 180 | :group 'semantic-symref | ||
| 181 | :type 'boolean) | ||
| 182 | |||
| 116 | (defcustom semantic-symref-results-mode-hook nil | 183 | (defcustom semantic-symref-results-mode-hook nil |
| 117 | "*Hook run when `semantic-symref-results-mode' starts." | 184 | "Hook run when `semantic-symref-results-mode' starts." |
| 118 | :group 'semantic-symref | 185 | :group 'semantic-symref |
| 119 | :type 'hook) | 186 | :type 'hook) |
| 120 | 187 | ||
| @@ -189,6 +256,10 @@ Some useful functions are found in `semantic-format-tag-functions'." | |||
| 189 | 256 | ||
| 190 | )) | 257 | )) |
| 191 | 258 | ||
| 259 | ;; Auto expand | ||
| 260 | (when semantic-symref-auto-expand-results | ||
| 261 | (semantic-symref-list-expand-all)) | ||
| 262 | |||
| 192 | ;; Clean up the mess | 263 | ;; Clean up the mess |
| 193 | (toggle-read-only 1) | 264 | (toggle-read-only 1) |
| 194 | (set-buffer-modified-p nil) | 265 | (set-buffer-modified-p nil) |
| @@ -305,7 +376,8 @@ BUTTON is the button that was clicked." | |||
| 305 | (win (selected-window)) | 376 | (win (selected-window)) |
| 306 | ) | 377 | ) |
| 307 | (switch-to-buffer-other-window buff) | 378 | (switch-to-buffer-other-window buff) |
| 308 | (with-no-warnings (goto-line line)) | 379 | (goto-char (point-min)) |
| 380 | (forward-line (1- line)) | ||
| 309 | (pulse-momentary-highlight-one-line (point)) | 381 | (pulse-momentary-highlight-one-line (point)) |
| 310 | (when (eq last-command-event ?\s) (select-window win)) | 382 | (when (eq last-command-event ?\s) (select-window win)) |
| 311 | ) | 383 | ) |
| @@ -323,6 +395,158 @@ BUTTON is the button that was clicked." | |||
| 323 | (forward-line -1) | 395 | (forward-line -1) |
| 324 | (back-to-indentation)) | 396 | (back-to-indentation)) |
| 325 | 397 | ||
| 398 | (defun semantic-symref-list-expand-all () | ||
| 399 | "Expand all the nodes in the current buffer." | ||
| 400 | (interactive) | ||
| 401 | (let ((start (make-marker))) | ||
| 402 | (move-marker start (point)) | ||
| 403 | (goto-char (point-min)) | ||
| 404 | (while (re-search-forward "\\[[+]\\]" nil t) | ||
| 405 | (semantic-symref-list-toggle-showing)) | ||
| 406 | ;; Restore position | ||
| 407 | (goto-char start))) | ||
| 408 | |||
| 409 | (defun semantic-symref-list-contract-all () | ||
| 410 | "Expand all the nodes in the current buffer." | ||
| 411 | (interactive) | ||
| 412 | (let ((start (make-marker))) | ||
| 413 | (move-marker start (point)) | ||
| 414 | (goto-char (point-min)) | ||
| 415 | (while (re-search-forward "\\[[-]\\]" nil t) | ||
| 416 | (semantic-symref-list-toggle-showing)) | ||
| 417 | ;; Restore position | ||
| 418 | (goto-char start))) | ||
| 419 | |||
| 420 | ;;; UTILS | ||
| 421 | ;; | ||
| 422 | ;; List mode utils for understadning the current line | ||
| 423 | |||
| 424 | (defun semantic-symref-list-on-hit-p () | ||
| 425 | "Return the line number if the cursor is on a buffer line with a hit. | ||
| 426 | Hits are the line of code from the buffer, not the tag summar or file lines." | ||
| 427 | (save-excursion | ||
| 428 | (end-of-line) | ||
| 429 | (let* ((ol (car (semantic-overlays-at (1- (point)))))) ;; trust this for now | ||
| 430 | (when ol (semantic-overlay-get ol 'line))))) | ||
| 431 | |||
| 432 | |||
| 433 | ;;; Keyboard Macros on a Hit | ||
| 434 | ;; | ||
| 435 | ;; Record a macro on a hit, and store in a special way for execution later. | ||
| 436 | (defun semantic-symref-list-create-macro-on-open-hit () | ||
| 437 | "Record a keyboard macro at the location of the hit in the current list. | ||
| 438 | Under point should be one hit for the active keyword. Move | ||
| 439 | cursor to the beginning of that symbol, then record a macro as if | ||
| 440 | `kmacro-start-macro' was pressed. Use `kmacro-end-macro', | ||
| 441 | {kmacro-end-macro} to end the macro, and return to the symbol found list." | ||
| 442 | (interactive) | ||
| 443 | (let* ((oldsym (oref (oref semantic-symref-current-results | ||
| 444 | :created-by) | ||
| 445 | :searchfor)) | ||
| 446 | (ol (save-excursion | ||
| 447 | (end-of-line) | ||
| 448 | (car (semantic-overlays-at (1- (point)))))) | ||
| 449 | (tag (when ol (semantic-overlay-get ol 'tag))) | ||
| 450 | (line (when ol (semantic-overlay-get ol 'line)))) | ||
| 451 | (when (not line) | ||
| 452 | (error "Cannot create macro on a non-hit line")) | ||
| 453 | ;; Go there, and do something useful. | ||
| 454 | (switch-to-buffer-other-window (semantic-tag-buffer tag)) | ||
| 455 | (goto-char (point-min)) | ||
| 456 | (forward-line (1- line)) | ||
| 457 | (when (not (re-search-forward (regexp-quote oldsym) (point-at-eol) t)) | ||
| 458 | (error "Cannot find hit. Cannot record macro")) | ||
| 459 | (goto-char (match-beginning 0)) | ||
| 460 | ;; Cursor is now in the right location. Start recording a macro. | ||
| 461 | (kmacro-start-macro nil) | ||
| 462 | ;; Notify the user | ||
| 463 | (message "Complete with C-x ). Use E in the symref buffer to call this macro."))) | ||
| 464 | |||
| 465 | (defun semantic-symref-list-call-macro-on-open-hits () | ||
| 466 | "Call the most recently created keyboard macro on each hit. | ||
| 467 | Cursor is placed at the beginning of the symbol found, even if | ||
| 468 | there is more than one symbol on the current line. The | ||
| 469 | previously recorded macro is then executed." | ||
| 470 | (interactive) | ||
| 471 | (save-window-excursion | ||
| 472 | (let ((count (semantic-symref-list-map-open-hits | ||
| 473 | (lambda () | ||
| 474 | (switch-to-buffer (current-buffer)) | ||
| 475 | (kmacro-call-macro nil))))) | ||
| 476 | (semantic-symref-list-update-open-hits) | ||
| 477 | (message "Executed Macro %d times." count)))) | ||
| 478 | |||
| 479 | ;;; REFACTORING EDITS | ||
| 480 | ;; | ||
| 481 | ;; Utilities and features for refactoring across a list of hits. | ||
| 482 | ;; | ||
| 483 | (defun semantic-symref-list-rename-open-hits (newname) | ||
| 484 | "Rename the discovered symbol references to NEWNAME. | ||
| 485 | Only renames the locations that are open in the symref list. | ||
| 486 | Closed items will be skipped." | ||
| 487 | (interactive | ||
| 488 | (list (read-string "Rename to: " | ||
| 489 | (oref (oref semantic-symref-current-results | ||
| 490 | :created-by) | ||
| 491 | :searchfor)))) | ||
| 492 | (let ((count (semantic-symref-list-map-open-hits | ||
| 493 | (lambda () (replace-match newname nil t))))) | ||
| 494 | (semantic-symref-list-update-open-hits) | ||
| 495 | (message "Renamed %d occurances." count))) | ||
| 496 | |||
| 497 | ;;; REFACTORING UTILITIES | ||
| 498 | ;; | ||
| 499 | ;; Refactoring tools want to operate on only the "good" stuff the | ||
| 500 | ;; user selected. | ||
| 501 | (defun semantic-symref-list-map-open-hits (function) | ||
| 502 | "For every open hit in the symref buffer, perform FUNCTION. | ||
| 503 | The `match-data' will be set to a successful hit of the searched for symbol. | ||
| 504 | Return the number of occurances FUNCTION was operated upon." | ||
| 505 | |||
| 506 | ;; First Pass in this function - a straight rename. | ||
| 507 | ;; Second Pass - Allow context specification based on | ||
| 508 | ;; class members. (Not Done) | ||
| 509 | |||
| 510 | (let ((oldsym (oref (oref semantic-symref-current-results | ||
| 511 | :created-by) | ||
| 512 | :searchfor)) | ||
| 513 | (count 0)) | ||
| 514 | (save-excursion | ||
| 515 | (goto-char (point-min)) | ||
| 516 | (while (not (eobp)) | ||
| 517 | ;; Is this line a "hit" line? | ||
| 518 | (let* ((ol (car (semantic-overlays-at (1- (point))))) ;; trust this for now | ||
| 519 | (tag (when ol (semantic-overlay-get ol 'tag))) | ||
| 520 | (line (when ol (semantic-overlay-get ol 'line)))) | ||
| 521 | (when line | ||
| 522 | ;; The "line" means we have an open hit. | ||
| 523 | (with-current-buffer (semantic-tag-buffer tag) | ||
| 524 | (goto-char (point-min)) | ||
| 525 | (forward-line (1- line)) | ||
| 526 | (beginning-of-line) | ||
| 527 | (while (re-search-forward (regexp-quote oldsym) (point-at-eol) t) | ||
| 528 | (setq count (1+ count)) | ||
| 529 | (save-excursion ;; Leave cursor after the matched name. | ||
| 530 | (goto-char (match-beginning 0)) ;; Go to beginning of that sym | ||
| 531 | (funcall function)))))) | ||
| 532 | ;; Go to the next line | ||
| 533 | (forward-line 1) | ||
| 534 | (end-of-line))) | ||
| 535 | count)) | ||
| 536 | |||
| 537 | (defun semantic-symref-list-update-open-hits () | ||
| 538 | "Update the text for all the open hits in the symref list." | ||
| 539 | (save-excursion | ||
| 540 | (goto-char (point-min)) | ||
| 541 | (while (re-search-forward "\\[-\\]" nil t) | ||
| 542 | (end-of-line) | ||
| 543 | (let* ((ol (car (semantic-overlays-at (1- (point))))) ;; trust this for now | ||
| 544 | (tag (when ol (semantic-overlay-get ol 'tag)))) | ||
| 545 | ;; If there is a tag, then close/open it. | ||
| 546 | (when tag | ||
| 547 | (semantic-symref-list-toggle-showing) | ||
| 548 | (semantic-symref-list-toggle-showing)))))) | ||
| 549 | |||
| 326 | (provide 'semantic/symref/list) | 550 | (provide 'semantic/symref/list) |
| 327 | 551 | ||
| 328 | ;; Local variables: | 552 | ;; Local variables: |
diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index c324d5cfb46..e9094fcb051 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el | |||
| @@ -687,18 +687,24 @@ This function is for internal use only." | |||
| 687 | ;; | 687 | ;; |
| 688 | (defun semantic-tag-deep-copy-one-tag (tag &optional filter) | 688 | (defun semantic-tag-deep-copy-one-tag (tag &optional filter) |
| 689 | "Make a deep copy of TAG, applying FILTER to each child-tag. | 689 | "Make a deep copy of TAG, applying FILTER to each child-tag. |
| 690 | Properties and overlay info are not copied. | 690 | No properties are copied except for :filename. |
| 691 | FILTER takes TAG as an argument, and should returns a semantic-tag. | 691 | Overlay will be a vector. |
| 692 | FILTER takes TAG as an argument, and should return a `semantic-tag'. | ||
| 692 | It is safe for FILTER to modify the input tag and return it." | 693 | It is safe for FILTER to modify the input tag and return it." |
| 693 | (when (not filter) (setq filter 'identity)) | 694 | (when (not filter) (setq filter 'identity)) |
| 694 | (when (not (semantic-tag-p tag)) | 695 | (when (not (semantic-tag-p tag)) |
| 695 | (signal 'wrong-type-argument (list tag 'semantic-tag-p))) | 696 | (signal 'wrong-type-argument (list tag 'semantic-tag-p))) |
| 696 | (funcall filter (list (semantic-tag-name tag) | 697 | (let ((ol (semantic-tag-overlay tag)) |
| 697 | (semantic-tag-class tag) | 698 | (fn (semantic-tag-file-name tag))) |
| 698 | (semantic--tag-deep-copy-attributes | 699 | (funcall filter (list (semantic-tag-name tag) |
| 699 | (semantic-tag-attributes tag) filter) | 700 | (semantic-tag-class tag) |
| 700 | nil | 701 | (semantic--tag-deep-copy-attributes |
| 701 | nil))) | 702 | (semantic-tag-attributes tag) filter) |
| 703 | ;; Only copy the filename property | ||
| 704 | (when fn (list :filename fn)) | ||
| 705 | ;; Only setup a vector if we had an overlay. | ||
| 706 | (when ol (vector (semantic-tag-start tag) | ||
| 707 | (semantic-tag-end tag))))))) | ||
| 702 | 708 | ||
| 703 | (defun semantic--tag-deep-copy-attributes (attrs &optional filter) | 709 | (defun semantic--tag-deep-copy-attributes (attrs &optional filter) |
| 704 | "Make a deep copy of ATTRS, applying FILTER to each child-tag. | 710 | "Make a deep copy of ATTRS, applying FILTER to each child-tag. |
| @@ -877,7 +883,7 @@ That is the value of the `:throws' attribute." | |||
| 877 | "Return the parent of the function that TAG describes. | 883 | "Return the parent of the function that TAG describes. |
| 878 | That is the value of the `:parent' attribute. | 884 | That is the value of the `:parent' attribute. |
| 879 | A function has a parent if it is a method of a class, and if the | 885 | A function has a parent if it is a method of a class, and if the |
| 880 | function does not appear in body of it's parent class." | 886 | function does not appear in body of its parent class." |
| 881 | (semantic-tag-named-parent tag)) | 887 | (semantic-tag-named-parent tag)) |
| 882 | 888 | ||
| 883 | (defsubst semantic-tag-function-destructor-p (tag) | 889 | (defsubst semantic-tag-function-destructor-p (tag) |
diff --git a/lisp/cedet/semantic/texi.el b/lisp/cedet/semantic/texi.el index e6ab498ea04..2879998a1a8 100644 --- a/lisp/cedet/semantic/texi.el +++ b/lisp/cedet/semantic/texi.el | |||
| @@ -591,12 +591,16 @@ Note: TYPE not yet implemented." | |||
| 591 | ;; ;; Test for doc string | 591 | ;; ;; Test for doc string |
| 592 | ;; (unless docstring | 592 | ;; (unless docstring |
| 593 | ;; (error "Could not find documentation for %s" (semantic-tag-name tag))) | 593 | ;; (error "Could not find documentation for %s" (semantic-tag-name tag))) |
| 594 | ;; | ||
| 595 | ;; (require 'srecode) | ||
| 596 | ;; (require 'srecode-texi) | ||
| 597 | ;; | ||
| 594 | ;; ;; If we have a string, do the replacement. | 598 | ;; ;; If we have a string, do the replacement. |
| 595 | ;; (delete-region (semantic-tag-start tag) | 599 | ;; (delete-region (semantic-tag-start tag) |
| 596 | ;; (semantic-tag-end tag)) | 600 | ;; (semantic-tag-end tag)) |
| 597 | ;; ;; Use useful functions from the docaument library. | 601 | ;; ;; Use useful functions from the docaument library. |
| 598 | ;; (require 'document) | 602 | ;; (srecode-texi-insert-tag-as-doc doctag) |
| 599 | ;; (document-insert-texinfo doctag (semantic-tag-buffer doctag)) | 603 | ;; ;(semantic-insert-foreign-tag doctag) |
| 600 | ;; )) | 604 | ;; )) |
| 601 | 605 | ||
| 602 | ;; (defun semantic-texi-update-doc-from-source (&optional tag) | 606 | ;; (defun semantic-texi-update-doc-from-source (&optional tag) |
diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el index 7e3a615d0b1..aa0535d380c 100644 --- a/lisp/cedet/semantic/util-modes.el +++ b/lisp/cedet/semantic/util-modes.el | |||
| @@ -939,6 +939,13 @@ minor mode is enabled." | |||
| 939 | "List of tag classes which stickyfunc will display in the header line.") | 939 | "List of tag classes which stickyfunc will display in the header line.") |
| 940 | (make-variable-buffer-local 'semantic-stickyfunc-sticky-classes) | 940 | (make-variable-buffer-local 'semantic-stickyfunc-sticky-classes) |
| 941 | 941 | ||
| 942 | (defcustom semantic-stickyfunc-show-only-functions-p nil | ||
| 943 | "Non-nil means don't show lines that aren't part of a tag. | ||
| 944 | If this is nil, then comments or other text between tags that is | ||
| 945 | 1 line above the top of the current window will be shown." | ||
| 946 | :group 'semantic | ||
| 947 | :type 'boolean) | ||
| 948 | |||
| 942 | (defun semantic-stickyfunc-tag-to-stick () | 949 | (defun semantic-stickyfunc-tag-to-stick () |
| 943 | "Return the tag to stick at the current point." | 950 | "Return the tag to stick at the current point." |
| 944 | (let ((tags (nreverse (semantic-find-tag-by-overlay (point))))) | 951 | (let ((tags (nreverse (semantic-find-tag-by-overlay (point))))) |
| @@ -955,45 +962,51 @@ minor mode is enabled." | |||
| 955 | "Make the function at the top of the current window sticky. | 962 | "Make the function at the top of the current window sticky. |
| 956 | Capture its function declaration, and place it in the header line. | 963 | Capture its function declaration, and place it in the header line. |
| 957 | If there is no function, disable the header line." | 964 | If there is no function, disable the header line." |
| 958 | (let ((str | 965 | (save-excursion |
| 959 | (save-excursion | 966 | (goto-char (window-start (selected-window))) |
| 960 | (goto-char (window-start (selected-window))) | 967 | (let* ((noshow (bobp)) |
| 961 | (forward-line -1) | 968 | (str |
| 962 | (end-of-line) | 969 | (progn |
| 963 | ;; Capture this function | 970 | (forward-line -1) |
| 964 | (let* ((tag (semantic-stickyfunc-tag-to-stick))) | 971 | (end-of-line) |
| 965 | ;; TAG is nil if there was nothing of the appropriate type there. | 972 | ;; Capture this function |
| 966 | (if (not tag) | 973 | (let* ((tag (semantic-stickyfunc-tag-to-stick))) |
| 967 | ;; Set it to be the text under the header line | 974 | ;; TAG is nil if there was nothing of the appropriate type there. |
| 968 | (buffer-substring (point-at-bol) (point-at-eol)) | 975 | (if (not tag) |
| 969 | ;; Get it | 976 | ;; Set it to be the text under the header line |
| 970 | (goto-char (semantic-tag-start tag)) | 977 | (if noshow |
| 971 | ;; Klaus Berndl <klaus.berndl@sdm.de>: | 978 | "" |
| 972 | ;; goto the tag name; this is especially needed for languages | 979 | (if semantic-stickyfunc-show-only-functions-p "" |
| 973 | ;; like c++ where a often used style is like: | 980 | (buffer-substring (point-at-bol) (point-at-eol)) |
| 974 | ;; void | 981 | )) |
| 975 | ;; ClassX::methodM(arg1...) | 982 | ;; Go get the first line of this tag. |
| 976 | ;; { | 983 | (goto-char (semantic-tag-start tag)) |
| 977 | ;; ... | 984 | ;; Klaus Berndl <klaus.berndl@sdm.de>: |
| 978 | ;; } | 985 | ;; goto the tag name; this is especially needed for languages |
| 979 | ;; Without going to the tag-name we would get"void" in the | 986 | ;; like c++ where a often used style is like: |
| 980 | ;; header line which is IMHO not really useful | 987 | ;; void |
| 981 | (search-forward (semantic-tag-name tag) nil t) | 988 | ;; ClassX::methodM(arg1...) |
| 982 | (buffer-substring (point-at-bol) (point-at-eol)) | 989 | ;; { |
| 983 | )))) | 990 | ;; ... |
| 984 | (start 0)) | 991 | ;; } |
| 985 | (while (string-match "%" str start) | 992 | ;; Without going to the tag-name we would get"void" in the |
| 986 | (setq str (replace-match "%%" t t str 0) | 993 | ;; header line which is IMHO not really useful |
| 987 | start (1+ (match-end 0))) | 994 | (search-forward (semantic-tag-name tag) nil t) |
| 988 | ) | 995 | (buffer-substring (point-at-bol) (point-at-eol)) |
| 989 | ;; In 21.4 (or 22.1) the heder doesn't expand tabs. Hmmmm. | 996 | )))) |
| 990 | ;; We should replace them here. | 997 | (start 0)) |
| 991 | ;; | 998 | (while (string-match "%" str start) |
| 992 | ;; This hack assumes that tabs are kept smartly at tab boundaries | 999 | (setq str (replace-match "%%" t t str 0) |
| 993 | ;; instead of in a tab boundary where it might only represent 4 spaces. | 1000 | start (1+ (match-end 0))) |
| 994 | (while (string-match "\t" str start) | 1001 | ) |
| 995 | (setq str (replace-match " " t t str 0))) | 1002 | ;; In 21.4 (or 22.1) the header doesn't expand tabs. Hmmmm. |
| 996 | str)) | 1003 | ;; We should replace them here. |
| 1004 | ;; | ||
| 1005 | ;; This hack assumes that tabs are kept smartly at tab boundaries | ||
| 1006 | ;; instead of in a tab boundary where it might only represent 4 spaces. | ||
| 1007 | (while (string-match "\t" str start) | ||
| 1008 | (setq str (replace-match " " t t str 0))) | ||
| 1009 | str))) | ||
| 997 | 1010 | ||
| 998 | (defun semantic-stickyfunc-menu (event) | 1011 | (defun semantic-stickyfunc-menu (event) |
| 999 | "Popup a menu that can help a user understand stickyfunc-mode. | 1012 | "Popup a menu that can help a user understand stickyfunc-mode. |
diff --git a/lisp/cedet/semantic/util.el b/lisp/cedet/semantic/util.el index 86c3517fb54..2b3f53a49d3 100644 --- a/lisp/cedet/semantic/util.el +++ b/lisp/cedet/semantic/util.el | |||
| @@ -132,44 +132,6 @@ buffer, or a filename. If SOMETHING is nil return nil." | |||
| 132 | (semantic-alias-obsolete 'semantic-something-to-stream | 132 | (semantic-alias-obsolete 'semantic-something-to-stream |
| 133 | 'semantic-something-to-tag-table "23.2") | 133 | 'semantic-something-to-tag-table "23.2") |
| 134 | 134 | ||
| 135 | ;;; Recursive searching through dependency trees | ||
| 136 | ;; | ||
| 137 | ;; This will depend on the general searching APIS defined above. | ||
| 138 | ;; but will add full recursion through the dependencies list per | ||
| 139 | ;; stream. | ||
| 140 | (defun semantic-recursive-find-nonterminal-by-name (name buffer) | ||
| 141 | "Recursively find the first occurrence of NAME. | ||
| 142 | Start search with BUFFER. Recurse through all dependencies till found. | ||
| 143 | The return item is of the form (BUFFER TOKEN) where BUFFER is the buffer | ||
| 144 | in which TOKEN (the token found to match NAME) was found. | ||
| 145 | |||
| 146 | THIS ISN'T USED IN SEMANTIC. DELETE ME SOON." | ||
| 147 | (with-current-buffer buffer | ||
| 148 | (let* ((stream (semantic-fetch-tags)) | ||
| 149 | (includelist (or (semantic-find-tags-by-class 'include stream) | ||
| 150 | "empty.silly.thing")) | ||
| 151 | (found (semantic-find-first-tag-by-name name stream)) | ||
| 152 | (unfound nil)) | ||
| 153 | (while (and (not found) includelist) | ||
| 154 | (let ((fn (semantic-dependency-tag-file (car includelist)))) | ||
| 155 | (if (and fn (not (member fn unfound))) | ||
| 156 | (with-current-buffer (save-match-data | ||
| 157 | (find-file-noselect fn)) | ||
| 158 | (message "Scanning %s" (buffer-file-name)) | ||
| 159 | (setq stream (semantic-fetch-tags)) | ||
| 160 | (setq found (semantic-find-first-tag-by-name name stream)) | ||
| 161 | (if found | ||
| 162 | (setq found (cons (current-buffer) (list found))) | ||
| 163 | (setq includelist | ||
| 164 | (append includelist | ||
| 165 | (semantic-find-tags-by-class | ||
| 166 | 'include stream)))) | ||
| 167 | (setq unfound (cons fn unfound))))) | ||
| 168 | (setq includelist (cdr includelist))) | ||
| 169 | found))) | ||
| 170 | (make-obsolete 'semantic-recursive-find-nonterminal-by-name | ||
| 171 | "Do not use this function." "23.2") | ||
| 172 | |||
| 173 | ;;; Completion APIs | 135 | ;;; Completion APIs |
| 174 | ;; | 136 | ;; |
| 175 | ;; These functions provide minibuffer reading/completion for lists of | 137 | ;; These functions provide minibuffer reading/completion for lists of |
| @@ -315,11 +277,12 @@ If TAG is not specified, use the tag at point." | |||
| 315 | (princ "Buffer specific configuration items:\n") | 277 | (princ "Buffer specific configuration items:\n") |
| 316 | (let ((vars '(major-mode | 278 | (let ((vars '(major-mode |
| 317 | semantic-case-fold | 279 | semantic-case-fold |
| 318 | semantic-expand-nonterminal | 280 | semantic-tag-expand-function |
| 319 | semantic-parser-name | 281 | semantic-parser-name |
| 320 | semantic-parse-tree-state | 282 | semantic-parse-tree-state |
| 321 | semantic-lex-analyzer | 283 | semantic-lex-analyzer |
| 322 | semantic-lex-reset-hooks | 284 | semantic-lex-reset-hooks |
| 285 | semantic-lex-syntax-modifications | ||
| 323 | ))) | 286 | ))) |
| 324 | (dolist (V vars) | 287 | (dolist (V vars) |
| 325 | (semantic-describe-buffer-var-helper V buff))) | 288 | (semantic-describe-buffer-var-helper V buff))) |
| @@ -334,7 +297,8 @@ If TAG is not specified, use the tag at point." | |||
| 334 | semantic-after-toplevel-cache-change-hook | 297 | semantic-after-toplevel-cache-change-hook |
| 335 | semantic-before-toplevel-cache-flush-hook | 298 | semantic-before-toplevel-cache-flush-hook |
| 336 | semantic-dump-parse | 299 | semantic-dump-parse |
| 337 | 300 | semantic-type-relation-separator-character | |
| 301 | semantic-command-separation-character | ||
| 338 | ))) | 302 | ))) |
| 339 | (dolist (V vars) | 303 | (dolist (V vars) |
| 340 | (semantic-describe-buffer-var-helper V buff))) | 304 | (semantic-describe-buffer-var-helper V buff))) |
| @@ -344,34 +308,6 @@ If TAG is not specified, use the tag at point." | |||
| 344 | ))) | 308 | ))) |
| 345 | ) | 309 | ) |
| 346 | 310 | ||
| 347 | (defun semantic-current-tag-interactive (p) | ||
| 348 | "Display the current token. | ||
| 349 | Argument P is the point to search from in the current buffer." | ||
| 350 | (interactive "d") | ||
| 351 | (require 'semantic/find) | ||
| 352 | (let ((tok (semantic-brute-find-innermost-tag-by-position | ||
| 353 | p (current-buffer)))) | ||
| 354 | (message (mapconcat 'semantic-abbreviate-nonterminal tok ",")) | ||
| 355 | (car tok)) | ||
| 356 | ) | ||
| 357 | |||
| 358 | (defun semantic-hack-search () | ||
| 359 | "Display info about something under the cursor using generic methods." | ||
| 360 | (interactive) | ||
| 361 | (require 'semantic/find) | ||
| 362 | (let ((strm (cdr (semantic-fetch-tags))) | ||
| 363 | (res nil)) | ||
| 364 | (setq res (semantic-brute-find-tag-by-position (point) strm)) | ||
| 365 | (if res | ||
| 366 | (progn | ||
| 367 | (pop-to-buffer "*SEMANTIC HACK RESULTS*") | ||
| 368 | (require 'pp) | ||
| 369 | (erase-buffer) | ||
| 370 | (insert (pp-to-string res) "\n") | ||
| 371 | (goto-char (point-min)) | ||
| 372 | (shrink-window-if-larger-than-buffer)) | ||
| 373 | (message "nil")))) | ||
| 374 | |||
| 375 | (defun semantic-assert-valid-token (tok) | 311 | (defun semantic-assert-valid-token (tok) |
| 376 | "Assert that TOK is a valid token." | 312 | "Assert that TOK is a valid token." |
| 377 | (if (semantic-tag-p tok) | 313 | (if (semantic-tag-p tok) |
| @@ -415,7 +351,8 @@ NOTFIRST indicates that this was not the first call in the recursive use." | |||
| 415 | 'unmatched))) | 351 | 'unmatched))) |
| 416 | (setq o (cons (car over) o))) | 352 | (setq o (cons (car over) o))) |
| 417 | (setq over (cdr over))) | 353 | (setq over (cdr over))) |
| 418 | (message "Remaining overlays: %S" o))) | 354 | (when (called-interactively-p 'any) |
| 355 | (message "Remaining overlays: %S" o)))) | ||
| 419 | over) | 356 | over) |
| 420 | 357 | ||
| 421 | ;;; Interactive commands (from Senator). | 358 | ;;; Interactive commands (from Senator). |
diff --git a/lisp/cedet/semantic/wisent/python-wy.el b/lisp/cedet/semantic/wisent/python-wy.el index 29b0626ffa6..264ebe9bb7b 100644 --- a/lisp/cedet/semantic/wisent/python-wy.el +++ b/lisp/cedet/semantic/wisent/python-wy.el | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | (defconst wisent-python-wy--keyword-table | 35 | (defconst wisent-python-wy--keyword-table |
| 36 | (semantic-lex-make-keyword-table | 36 | (semantic-lex-make-keyword-table |
| 37 | '(("and" . AND) | 37 | '(("and" . AND) |
| 38 | ("as" . AS) | ||
| 38 | ("assert" . ASSERT) | 39 | ("assert" . ASSERT) |
| 39 | ("break" . BREAK) | 40 | ("break" . BREAK) |
| 40 | ("class" . CLASS) | 41 | ("class" . CLASS) |
| @@ -72,6 +73,7 @@ | |||
| 72 | ("pass" summary "Statement that does nothing") | 73 | ("pass" summary "Statement that does nothing") |
| 73 | ("or" summary "Binary logical 'or' operator") | 74 | ("or" summary "Binary logical 'or' operator") |
| 74 | ("not" summary "Unary boolean negation operator") | 75 | ("not" summary "Unary boolean negation operator") |
| 76 | ("lambda" summary "Create anonymous function") | ||
| 75 | ("is" summary "Binary operator that tests for object equality") | 77 | ("is" summary "Binary operator that tests for object equality") |
| 76 | ("in" summary "Part of 'for' statement ") | 78 | ("in" summary "Part of 'for' statement ") |
| 77 | ("import" summary "Load specified modules") | 79 | ("import" summary "Load specified modules") |
| @@ -86,10 +88,11 @@ | |||
| 86 | ("elif" summary "Shorthand for 'else if' following an 'if' statement") | 88 | ("elif" summary "Shorthand for 'else if' following an 'if' statement") |
| 87 | ("del" summary "Delete specified objects, i.e., undo what assignment did") | 89 | ("del" summary "Delete specified objects, i.e., undo what assignment did") |
| 88 | ("def" summary "Define a new function") | 90 | ("def" summary "Define a new function") |
| 89 | ("continue" summary "Skip to the next interation of enclosing 'for' or 'while' loop") | 91 | ("continue" summary "Skip to the next iteration of enclosing 'for' or 'while' loop") |
| 90 | ("class" summary "Define a new class") | 92 | ("class" summary "Define a new class") |
| 91 | ("break" summary "Terminate 'for' or 'while' loop") | 93 | ("break" summary "Terminate 'for' or 'while' loop") |
| 92 | ("assert" summary "Raise AssertionError exception if <expr> is false") | 94 | ("assert" summary "Raise AssertionError exception if <expr> is false") |
| 95 | ("as" summary "EXPR as NAME makes value of EXPR available as variable NAME") | ||
| 93 | ("and" summary "Logical AND binary operator ... "))) | 96 | ("and" summary "Logical AND binary operator ... "))) |
| 94 | "Table of language keywords.") | 97 | "Table of language keywords.") |
| 95 | 98 | ||
| @@ -172,7 +175,7 @@ | |||
| 172 | (eval-when-compile | 175 | (eval-when-compile |
| 173 | (require 'semantic/wisent/comp)) | 176 | (require 'semantic/wisent/comp)) |
| 174 | (wisent-compile-grammar | 177 | (wisent-compile-grammar |
| 175 | '((BACKSLASH NEWLINE INDENT DEDENT INDENT_BLOCK PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK RBRACK LTLTEQ GTGTEQ EXPEQ DIVDIVEQ DIVDIV LTLT GTGT EXPONENT EQ GE LE PLUSEQ MINUSEQ MULTEQ DIVEQ MODEQ AMPEQ OREQ HATEQ LTGT NE HAT LT GT AMP MULT DIV MOD PLUS MINUS PERIOD TILDE BAR COLON SEMICOLON COMMA ASSIGN BACKQUOTE STRING_LITERAL NUMBER_LITERAL NAME AND ASSERT BREAK CLASS CONTINUE DEF DEL ELIF ELSE EXCEPT EXEC FINALLY FOR FROM GLOBAL IF IMPORT IN IS LAMBDA NOT OR PASS PRINT RAISE RETURN TRY WHILE YIELD) | 178 | '((BACKSLASH NEWLINE INDENT DEDENT INDENT_BLOCK PAREN_BLOCK BRACE_BLOCK BRACK_BLOCK LPAREN RPAREN LBRACE RBRACE LBRACK RBRACK LTLTEQ GTGTEQ EXPEQ DIVDIVEQ DIVDIV LTLT GTGT EXPONENT EQ GE LE PLUSEQ MINUSEQ MULTEQ DIVEQ MODEQ AMPEQ OREQ HATEQ LTGT NE HAT LT GT AMP MULT DIV MOD PLUS MINUS PERIOD TILDE BAR COLON SEMICOLON COMMA ASSIGN BACKQUOTE STRING_LITERAL NUMBER_LITERAL NAME AND AS ASSERT BREAK CLASS CONTINUE DEF DEL ELIF ELSE EXCEPT EXEC FINALLY FOR FROM GLOBAL IF IMPORT IN IS LAMBDA NOT OR PASS PRINT RAISE RETURN TRY WHILE YIELD) |
| 176 | nil | 179 | nil |
| 177 | (goal | 180 | (goal |
| 178 | ((NEWLINE)) | 181 | ((NEWLINE)) |
| @@ -280,6 +283,9 @@ | |||
| 280 | ((testlist) | 283 | ((testlist) |
| 281 | nil)) | 284 | nil)) |
| 282 | (yield_stmt | 285 | (yield_stmt |
| 286 | ((YIELD) | ||
| 287 | (wisent-raw-tag | ||
| 288 | (semantic-tag-new-code $1 nil))) | ||
| 283 | ((YIELD testlist) | 289 | ((YIELD testlist) |
| 284 | (wisent-raw-tag | 290 | (wisent-raw-tag |
| 285 | (semantic-tag-new-code $1 nil)))) | 291 | (semantic-tag-new-code $1 nil)))) |
| @@ -320,14 +326,14 @@ | |||
| 320 | ((import_as_name_list COMMA import_as_name) | 326 | ((import_as_name_list COMMA import_as_name) |
| 321 | nil)) | 327 | nil)) |
| 322 | (import_as_name | 328 | (import_as_name |
| 323 | ((NAME name_name_opt) | 329 | ((NAME as_name_opt) |
| 324 | nil)) | 330 | nil)) |
| 325 | (dotted_as_name | 331 | (dotted_as_name |
| 326 | ((dotted_name name_name_opt))) | 332 | ((dotted_name as_name_opt))) |
| 327 | (name_name_opt | 333 | (as_name_opt |
| 328 | (nil) | 334 | (nil) |
| 329 | ((NAME NAME) | 335 | ((AS NAME) |
| 330 | nil)) | 336 | (identity $2))) |
| 331 | (dotted_name | 337 | (dotted_name |
| 332 | ((NAME)) | 338 | ((NAME)) |
| 333 | ((dotted_name PERIOD NAME) | 339 | ((dotted_name PERIOD NAME) |