Remove a few more redundant `:group` args.
Make use of lexical scoping to replace `(lambda...) with proper closures.
* lisp/cedet/ede/custom.el (ede-project-sort-targets-list):
Use `dotimes` and replace `(lambda..) with closures.
* lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once):
* lisp/cedet/ede/pmake.el (ede-pmake-insert-variable-once):
Remove unused var `addcr`.
* lisp/cedet/semantic/complete.el: Use lexical-binding.
(semantic-displayer-show-request): Remove unused var `typing-count`.
Use `equal` instead of `stringp+string=`.
* lisp/cedet/semantic/db-ebrowse.el: Use lexical-binding.
(semanticdb-create-ebrowse-database): Remove unused vars `mma` and `regexp`.
(semanticdb-ebrowse-strip-trees): Remove unused var `class` and `filename`.
(semanticdb-ebrowse-add-globals-to-table): Remove unused var `fname`.
* lisp/cedet/semantic/db-find.el: Use lexical-binding.
(semanticdb-find-adebug-insert-scanned-tag-cons): Remove always-nil var
`tip`.
* lisp/cedet/semantic/db-global.el: Use lexical-binding.
(semanticdb-enable-gnu-global-databases): Access local var
`semantic--ih` by sticking its value in the code passed to `eval`
rather than by dynamic scoping.
* lisp/cedet/semantic/db-typecache.el: Use lexical-binding.
(semanticdb-db-typecache-dump): Remove unused var `junk`.
* lisp/cedet/semantic/debug.el: Use lexical-binding.
* lisp/cedet/semantic/dep.el: Use lexical-binding.
(semantic-add-system-include): Avoid `add-to-list` on a local variable.
Access local var `value` by sticking its value in the code passed to
`eval` rather than by dynamic scoping.
(semantic-remove-system-include): Don't use `delete` on a list received
from elsewhere.
Access local var `value` by sticking its value in the code passed to
`eval` rather than by dynamic scoping.
(semantic-reset-system-include): Simplify a bit.
* lisp/cedet/semantic/ede-grammar.el: Use lexical-binding.
(project-compile-target): Remove unused vars `csrc` and `cb`.
Use `cl-incf`. Remove apparently unneeded `with-no-warnings`.
* lisp/cedet/semantic/edit.el: Use lexical-binding.
(semantic-edits-change-over-tags): Remove unused var `inner-start`.
(semantic-edits-incremental-parser-1): Silence warnings about
intentionally unused var `last-cond`.
* lisp/cedet/semantic/fw.el: Use lexical-binding.
(recentf-exclude, semantic-init-hook, ede-auto-add-method)
(flymake-start-syntax-check-on-find-file, auto-insert): Declare vars.
* lisp/cedet/semantic/ia-sb.el: Use lexical-binding.
(semantic-ia-sb-key-map): Move initialization into declaration.
(semantic-ia-sb-more-buttons): Remove unused var `idx`.
(semantic-ia-sb-line-path): Simplify `if` -> `or`.
* lisp/cedet/semantic/idle.el (semantic-idle-breadcrumbs--tag-function):
Make it a function returning a closure.
* lisp/cedet/semantic/senator.el: Use lexical-binding.
(senator-search-set-tag-class-filter): Replace `(lambda..) with a closure.
* lisp/cedet/semantic/sort.el: Use lexical-binding.
(semanticdb-search-system-databases): Declare var.
(semantic-tag-external-member-children-default): Replace `(lambda..)
with a closure.
* lisp/cedet/semantic/tag-ls.el: Use lexical-binding.
(semantic-tag-protection-default, semantic-tag-abstract-p-default):
Simplify with `member`.
* lisp/cedet/semantic/util.el: Use lexical-binding.
(semantic-something-to-tag-table): Declare function
`semanticdb-abstract-table--eieio-childp` called via `cl-typep`.
* lisp/cedet/semantic/bovine/scm.el (semantic-default-scheme-setup):
Remove duplicate setting of `imenu-create-index-function`.
* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-build-style-menu):
Replace `(lambda..) with a closure.
* lisp/cedet/srecode/cpp.el (srecode-semantic-apply-tag-to-dict):
Remove always-t variable `member`.
* lisp/cedet/srecode/mode.el (srecode-minor-mode-templates-menu):
Replace `(lambda..) with a closure. Use `push`.
* lisp/cedet/semantic/chart.el: Use lexical-binding.
* lisp/cedet/semantic/db-debug.el: Use lexical-binding.
* lisp/cedet/semantic/db-el.el: Use lexical-binding.
* lisp/cedet/semantic/db-file.el: Use lexical-binding.
* lisp/cedet/semantic/db-javascript.el: Use lexical-binding.
* lisp/cedet/semantic/db-mode.el: Use lexical-binding.
* lisp/cedet/semantic/db-ref.el: Use lexical-binding.
* lisp/cedet/semantic/decorate.el: Use lexical-binding.
* lisp/cedet/semantic/doc.el: Use lexical-binding.
* lisp/cedet/semantic/find.el: Use lexical-binding.
* lisp/cedet/semantic/format.el: Use lexical-binding.
* lisp/cedet/semantic/html.el: Use lexical-binding.
* lisp/cedet/semantic/ia.el: Use lexical-binding.
* lisp/cedet/semantic/imenu.el: Use lexical-binding.
* lisp/cedet/semantic/java.el: Use lexical-binding.
* lisp/cedet/semantic/mru-bookmark.el: Use lexical-binding.
* lisp/cedet/semantic/symref.el: Use lexical-binding.
* lisp/cedet/semantic/tag-file.el: Use lexical-binding.
* lisp/cedet/semantic/tag-write.el: Use lexical-binding.
* lisp/cedet/semantic/texi.el: Use lexical-binding.
* lisp/cedet/semantic/util-modes.el: Use lexical-binding.
* lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-variables):
Remove always-nil variable `conf-done`.
* lisp/cedet/ede/project-am.el: Use ref instead of dynbound var.
(project-rescan): Pass the ref.
(project-am-expand-subdirlist): Use it.
* lisp/cedet/semantic/idle.el (semantic-idle-work-core-handler):
Fix misuse of the wrong `errbuf `variable.
* lisp/cedet/semantic/scope.el (semantic-analyze-scoped-type-parts):
Remove always-nil variable `extmeth`.
* lisp/cedet/semantic/wisent/comp.el (wisent-context-name)
(wisent-context-bindings): Make them into functions.
(wisent-with-context): Use `dlet`.
(eldoc-last-message): Remove var declaration.
(eldoc-message): Remove function declaration.
(semantic--eldoc-info): Rename from semantic-idle-summary-idle-function.
Make it usable on `eldoc-documentation-functions`.
(semantic-idle-summary-mode): Use `eldoc-mode`.
(semantic-idle-summary-refresh-echo-area): Delete function.
* lisp/registry.el: Use lexical-binding.
(registry-reindex): Remove unused var `values`.
* lisp/cedet/pulse.el: Use lexical-binding.
* lisp/cedet/semantic/idle.el: Use lexical-binding.
(semantic-idle-core-handler): Remove unused var `safe`.
(ede-auto-add-method): Declare var.
(define-semantic-idle-service): Use `declare`. Remove unused var `setup`.
(pulse-flag): Declare var.
* lisp/net/ldap.el: Use lexical-binding.
(ldap-search-internal): Remove unused var `proc`.
* lisp/net/mairix.el: Use lexical-binding.
Remove redundant `:group` args.
(mairix-widget-create-query): Remove unnused var `allwidgets`.
* doc/misc/sem-user.texi (Idle Completions Mode): Rename
displayor->displayer throughout.
(Idle Completions Mode): Ditto.
* lisp/cedet/semantic/complete.el: Rename displayor->displayer
throughout and add aliases for all the methods that used that name.
Add a paragraph to minor mode's docstring documenting the mode's ARG
usage if the supplied docstring doesn't already contain the word "ARG".
* easy-mmode.el (easy-mmode--arg-docstring): New const.
(easy-mmode--arg-docstring): New function.
(define-minor-mode): Use them.
Remove argument documentation from all minor modes.
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November. Change these FTP URLs to https://ftp.gnu.org
instead. Make similar changes for URLs to other organizations moving
away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
Escape apostrophes and grave accents in docstrings if they are
are supposed to stand for themselves and are not quotes. Remove
apostrophes from docstring examples like ‘'(calendar-nth-named-day
-1 0 10 year)’ that confuse source code with data. Do some other
minor docstring fixups as well, e.g., insert a missing close
quote.
(semantic-idle-symbol-highlight-face): Define face with defface
and obsolete the replaced one defined with defvar. (Bug#15745)
* pulse.el (pulse-momentary-highlight-overlay)
(pulse-momentary-highlight-region): Fix typo in doc
* lisp/emacs-lisp:
* emacs-lisp/eieio.el (eieio--defalias, eieio-hook)
(eieio-error-unsupported-class-tags, eieio-skip-typecheck)
(eieio-optimize-primary-methods-flag, eieio-initializing-object)
(eieio-unbound, eieio-default-superclass)
(eieio--define-field-accessors, method-static, method-before)
(method-primary, method-after, method-num-lists)
(method-generic-before, method-generic-primary)
(method-generic-after, method-num-slots)
(eieio-specialized-key-to-generic-key)
(eieio--check-type, class-v, class-p)
(eieio-class-name, define-obsolete-function-alias)
(eieio-class-parents-fast, eieio-class-children-fast)
(same-class-fast-p, class-constructor, generic-p)
(generic-primary-only-p, generic-primary-only-one-p)
(class-option-assoc, class-option, eieio-object-p)
(class-abstract-p, class-method-invocation-order)
(eieio-defclass-autoload-map, eieio-defclass-autoload)
(eieio-class-un-autoload, eieio-defclass)
(eieio-eval-default-p, eieio-perform-slot-validation-for-default)
(eieio-add-new-slot, eieio-copy-parents-into-subclass)
(eieio--defgeneric-init-form, eieio-defgeneric-form)
(eieio-defgeneric-reset-generic-form)
(eieio-defgeneric-form-primary-only)
(eieio-defgeneric-reset-generic-form-primary-only)
(eieio-defgeneric-form-primary-only-one)
(eieio-defgeneric-reset-generic-form-primary-only-one)
(eieio-unbind-method-implementations)
(eieio--defmethod, eieio--typep)
(eieio-perform-slot-validation, eieio-validate-slot-value)
(eieio-validate-class-slot-value, eieio-barf-if-slot-unbound)
(eieio-oref, eieio-oref-default, eieio-default-eval-maybe)
(eieio-oset, eieio-oset-default, eieio-slot-originating-class-p)
(eieio-slot-name-index, eieio-class-slot-name-index)
(eieio-set-defaults, eieio-initarg-to-attribute)
(eieio-attribute-to-initarg, eieio-c3-candidate)
(eieio-c3-merge-lists, eieio-class-precedence-c3)
(eieio-class-precedence-dfs, eieio-class-precedence-bfs)
(eieio-class-precedence-list, eieio-generic-call-methodname)
(eieio-generic-call-arglst, eieio-generic-call-key)
(eieio-generic-call-next-method-list)
(eieio-pre-method-execution-functions, eieio-generic-call)
(eieio-generic-call-primary-only, eieiomt-method-list)
(eieiomt-optimizing-obarray, eieiomt-install)
(eieiomt-add, eieiomt-next, eieiomt-sym-optimize)
(eieio-generic-form, eieio-defmethod, make-obsolete)
(eieio-defgeneric, make-obsolete): Moved to eieio-core.el
(defclass): Remove `eval-and-compile' from macro.
(call-next-method, shared-initialize): Instead of using
`scoped-class' variable, use new eieio--scoped-class, and
eieio--with-scoped-class.
(initialize-instance): Rename local variable 'scoped-class' to
'this-class' to remove ambiguitity from old global.
* emacs-lisp/eieio-core.el: New file. Derived from key parts of
eieio.el.
(eieio--scoped-class-stack): New variable
(eieio--scoped-class): New fcn
(eieio--with-scoped-class): New scoping macro.
(eieio-defclass): Use pushnew instead of add-to-list.
(eieio-defgeneric-form-primary-only-one, eieio-oset-default)
(eieio-slot-name-index, eieio-set-defaults, eieio-generic-call)
(eieio-generic-call-primary-only, eieiomt-add): Instead of using
`scoped-class' variable, use new eieio--scoped-class, and
eieio--with-scoped-class.
* emacs-lisp/eieio-base.el (cl-lib): Require during compile.
* admin/grammars:
* grammars/srecode-template.wy (variable): Accept a single number
as a variable value. Allows the 'priority' to be set to a number.
(wisent-srecode-template-lexer): Move number up so it can be
created.
* etc/srecode:
* srecode/c.srt (header_guard): Add :c parameter so it works
standalone
* lisp/cedet:
* semantic/edit.el (semantic-change-function): Use
`save-match-data' around running hooks.
* semantic/decorate/mode.el
(semantic-decorate-style-predicate-default)
(semantic-decorate-style-highlighter-default): New.
(semantic-decoration-mode): Do not require
`semantic/decorate/include' anymore.
(semantic-toggle-decoration-style): Error if an unknown decoration
style is toggled.
(define-semantic-decoration-style): Add new :load option. When
:load is specified, add autoload tokens for the definition
functions so that code is loaded when the mode is used.
(semantic-decoration-on-includes): New autoload definition for
highlighting includes.
* semantic/bovine/c.el (semantic-lex-c-ifdef): Allow some misc
characters to appear after the tested variable.
* semantic/ede-grammar.el (project-compile-target): Calculate full
src name via ede-expand-filename instead of the crutch of the
current buffer. Enables this target to compile in batch mode.
* semantic/idle.el
(semantic-idle-symbol-maybe-highlight): Wrap highlighting of
remote symbol with `save-excursion'.
(semantic-idle-scheduler-work-parse-neighboring-files): Instead of
using directory-files on each found mode pattern, collect all the
patterns for the current mode, and then for each file, see if it
matches any of them. If it does, parse the file. (Patch
inspiration from Tomasz Gajewski.)
* semantic/ctxt.el (semantic-ctxt-end-of-symbol): New.
(semantic-ctxt-current-symbol-default): New.
* semantic/bovine/el.el (semantic-default-elisp-setup): Add
autoload cookie. Explain existence.
(footer): Add local variable for loaddefs.
* semantic/db.el (semanticdb-file-table-object): Add new filter,
only checking for regular files too.
* semantic/wisent/python.el
(semantic-format-tag-abbreviate): New override. Cuts back on size
of code tags.
* srecode/compile.el (srecode-compile-templates): Fix warning
punctuation. Remove status messages to clean up testing output
* ede/base.el (ede-project-placeholder-cache-file): Update doc to
mention 'nil' value.
(ede-save-cache): Disable cache save if file is nil.
* ede.el (ede-initialize-state-current-buffer): Flush deleted
projects.
(global-ede-mode): Always append our find-file-hook to the end.
(ede-flush-deleted-projects): New command.
* ede/cpp-root.el (ede-preprocessor-map): Protect against init
problems.
* ede/proj.el (ede-proj-target): Added a new "custom" option for
custom symbols representing a compiler or linker instead of
restricting things to only the predefined compilers and linkers.
* semantic.el (semantic-mode-map): To avoid showing showing
Development menu twice, only disable menu item if menu-bar is
actually enabled, otherwise the popup 'global menu' might display
a disabled Development menu.
* semantic/complete.el
(semantic-displayor-show-request): Fix which slot in obj is set to
the max tags.
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.