Dmitry Gutov [Sun, 10 May 2015 23:07:27 +0000 (02:07 +0300)]
Add xref-find-regexp
* lisp/progmodes/xref.el (xref-find-function): Describe the
`matches' action.
(xref-find-regexp): New command, using it.
(xref-collect-references): Rename to xref-collect-matches.
(xref--collect-reference): Rename to xref--collect-match.
(xref-collect-matches, xref--collect-match): Accept new argument,
KIND. Update accordingly.
(xref--regexp-to-extended): New function.
* lisp/progmodes/elisp-mode.el (elisp-xref-find): Support the
`matches' action.
(elisp--xref-find-matches): Accept new argument. Resolve a FIXME.
* lisp/progmodes/etags.el (etags-xref-find):
Support the `matches' action.
(etags--xref-find-matches): New function.
* lisp/textmodes/sgml-mode.el: Basic HTML5 support.
(html-tag-alist): Add HTML5 tags.
(html-tag-help): Add new tags descriptions.
(html-navigational-links): Template for nav links.
(html-html5-template): Template for a HTML5 page.
Dmitry Gutov [Sun, 10 May 2015 17:43:54 +0000 (20:43 +0300)]
semantic/symref/grep: Don't use word boundaries
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-perform-search): Instead of wrapping input in
word boundaries, check that the characters before and after are
not word constituents.
Dmitry Gutov [Sat, 9 May 2015 21:36:46 +0000 (00:36 +0300)]
Remove tag-symbol-match-p from etags-xref-find-definitions-tag-order
* lisp/progmodes/etags.el (etags-xref-find-definitions-tag-order):
Remove tag-symbol-match-p from the default value
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00292.html).
Glenn Morris [Sat, 9 May 2015 00:45:22 +0000 (20:45 -0400)]
Add command-line option-parsing to gitlog-to-emacslog.
* build-aux/gitlog-to-emacslog: Add command-line options.
By default, refuse to remove an existing output file.
* Makefile.in (CHANGELOG): Update default.
(ChangeLog): Do not test for existing file.
(change-history-nocommit): Ensure temp file does not exist.
Stefan Monnier [Fri, 8 May 2015 17:28:57 +0000 (13:28 -0400)]
CEDET (srecode-pop, srecode-peek): Don't use `subclass'
* lisp/cedet/srecode/insert.el (srecode-pop, srecode-peek): Don't use
`subclass' since they're never called with a class.
(srecode-insert-method, srecode-insert-subtemplate): Avoid obsolete
srecode-dictionary-child-p.
Artur Malabarba [Thu, 7 May 2015 15:11:50 +0000 (16:11 +0100)]
* lisp/emacs-lisp/package.el: New "external" package status
An external package is any installed package that's not built-in
and not from `package-user-dir', which usually means it's from an
entry in `package-directory-list'. They are treated much like
built-in packages, in that they cannot be through the Package Menu
deleted and are not considered for upgrades.
(package-desc-status): Identify if a package is installed outside
`package-user-dir'.
(package-menu--print-info-simple)
(package-menu--status-predicate): Add support for it.
Glenn Morris [Thu, 7 May 2015 01:58:58 +0000 (21:58 -0400)]
Avoid unnecessary bumping of Makefile.in's timestamp.
* Makefile.in (gen_origin): Move to gitlog-to-emacslog.
(emacslog): New variable.
(ChangeLog): Use $emacslog. Don't pass $gen_origin.
(unchanged-history-files): Use $emacslog rather than Makefile.in.
(change-history-nocommit): Store hash in $emacslog.
* build-aux/gitlog-to-emacslog (gen_origin): Move default here.
* admin/update_autogen (changelog_files): Update for the above.
Glenn Morris [Thu, 7 May 2015 01:40:28 +0000 (21:40 -0400)]
* Makefile.in: Don't always insist on removing existing "ChangeLog".
(CHANGELOG): New variable.
(no-ChangeLog): Remove.
(ChangeLog): Replace "no-ChangeLog"; pass output file to script.
(change-history-nocommit): Use a temp file rather than insisting
on deletion of any existing "ChangeLog".
Dmitry Gutov [Wed, 6 May 2015 20:15:45 +0000 (23:15 +0300)]
Only cancel timer when it is non-nil
* lisp/cedet/pulse.el (pulse-momentary-unhighlight): Only cancel
timer when it is non-nil
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00223.html).
Stefan Monnier [Wed, 6 May 2015 14:50:48 +0000 (10:50 -0400)]
* lisp/emacs-lisp/testcover.el: Don't use edebug--read (bug#20487)
* lisp/emacs-lisp/testcover.el: Use lexical-binding.
(testcover--read): Rename from testcover-read. Change calling convention.
Use edebug-read-and-maybe-wrap-form now that edebug-read is gone.
(testcover-start): Use add-function. Move edebug-all-defs binding to
testcover--read.
(testcover-this-defun): Tighten scope of edebug-all-defs binding.
(testcover-mark): Remove unused var `item'.
* src/lread.c (syms_of_lread): Default load-read-function to `read'.
Oleh Krehel [Wed, 6 May 2015 13:21:23 +0000 (15:21 +0200)]
lisp/subr.el (delete-dups): Use a hash table
* lisp/subr.el (delete-dups): When there are more than 100 candidates,
use a hash table. This can result in ~500 times speed-up for typical
collections of size 5000, like that of `load-library'.
Dmitry Gutov [Wed, 6 May 2015 12:21:32 +0000 (15:21 +0300)]
Clean up pulse.el a little
* lisp/cedet/pulse.el (pulse): Remove.
(pulse-momentary-timer): Save instead of the stop time.
(pulse-momentary-highlight-overlay): Call
pulse-momentary-unhighlight first thing. Treat
pulse-momentary-overlay as a single value, not a list. Save the
created timer. Only pass the stop time to the timer.
(pulse-tick): Update accordingly.
(pulse-momentary-unhighlight): Treat pulse-momentary-overlay as a
single value. Cancel the timer.
Dmitry Gutov [Wed, 6 May 2015 02:54:52 +0000 (05:54 +0300)]
Pulse using a timer
* lisp/cedet/pulse.el (pulse-momentary-stop-time): New variable.
(pulse-momentary-highlight-overlay): Set up the timer instead of
calling `pulse'
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/).
(pulse-tick): New function.
(pulse-momentary-unhighlight): Cut off the stop time.
(pulse-delay): Update the docstring WRT to not using sit-for.
Dmitry Gutov [Wed, 6 May 2015 01:35:46 +0000 (04:35 +0300)]
Don't require match
* lisp/progmodes/xref.el (xref--read-identifier): Don't require
match. That doesn't work for every command, and some identifier
completion tables are bound to be imperfect anyway.
(semantic-grammar--template-expand): New function.
(semantic-grammar-header, semantic-grammar-footer): Use it.
(semantic-grammar--lex-block-specs): Remove unused var `block-spec'.
(semantic-grammar-file-regexp): Refine regexp.
(semantic-grammar-eldoc-get-macro-docstring):
Use elisp-get-fnsym-args-string when available.
(semantic-idle-summary-current-symbol-info): Use new elisp-* names
instead of the old eldoc-* names.
* lisp/emacs-lisp/eldoc.el (eldoc-docstring-format-sym-doc): Move back
from elisp-mode.el. Tweak calling convention.
* lisp/progmodes/elisp-mode.el (package-user-dir): Declare.
(elisp-get-fnsym-args-string): Add `prefix' argument. Rename from
elisp--get-fnsym-args-string.
(elisp--highlight-function-argument): Add `prefix' arg.
(elisp-get-var-docstring): Rename from elisp--get-var-docstring.
(elisp--docstring-format-sym-doc): Move back to eldoc.el.
Nicolas Petton [Tue, 5 May 2015 19:45:36 +0000 (21:45 +0200)]
Add support for &rest in `seq-let'
* lisp/emacs-lisp/seq.el (seq--make-bindings): Add support for `&rest'
in the argument list.
* test/automated/seq-tests.el: Add a test for parsing and binding
`&rest' in `seq-let'.
Dmitry Gutov [Tue, 5 May 2015 12:28:41 +0000 (15:28 +0300)]
Work around "Attempt to modify read-only object"
* lisp/progmodes/elisp-mode.el (elisp--xref-format): Extract from
elisp--xref-find-definitions, to work around "Attempt to modify
read-only object" error.
Dmitry Gutov [Tue, 5 May 2015 12:11:14 +0000 (15:11 +0300)]
Only skip some variables that have function counterparts
* lisp/progmodes/elisp-mode.el (elisp--xref-identifier-location):
Only skip minor-mode-named variable if it's defined in a Lisp
file, and it's in minor-mode-list (bug#20506).
* test/automated/elisp-mode-tests.el
(elisp-xref-finds-both-function-and-variable)
(elisp-xref-finds-only-function-for-minor-mode): New tests.
Dmitry Gutov [Tue, 5 May 2015 02:05:02 +0000 (05:05 +0300)]
Buttonize the whole line, including the number at the beginning
* lisp/progmodes/xref.el (xref--location-at-point): Revert the
previous change.
(xref--insert-xrefs): Buttonize the whole line, including the
number at the beginning.
Dmitry Gutov [Mon, 4 May 2015 23:44:20 +0000 (02:44 +0300)]
Insert, highlight and align line numbers in xref output
* lisp/progmodes/etags.el (xref-location-line): Specialize for
xref-etags-location.
* lisp/progmodes/xref.el (xref-location-line): New generic method.
(xref-file-location): Add reader for the line slot.
(xref--location-at-point): Skip to the `xref-location' property.
(xref--collect-reference): Drop the line number from description.
(xref--insert-xrefs): Insert, highlight and align line numbers.
Dmitry Gutov [Mon, 4 May 2015 20:16:12 +0000 (23:16 +0300)]
Don't pulse the indentation, or the newline
* lisp/cedet/pulse.el (pulse-lighten-highlight)
(pulse-reset-face): Fall back to the inherited background
attribute in FACE.
(pulse-momentary-highlight-region): Add autoload cookie.
* lisp/progmodes/xref.el (xref--maybe-pulse): Don't highlight the
indentation, or the newline, if the line's non-empty
(http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00118.html).
* lisp/progmodes/xref.el (xref-pulse-on-jump): New option.
(xref--maybe-pulse): New function.
(xref-pop-marker-stack, xref--pop-to-location)
(xref--display-position): Use it.
(xref--location-at-point): Use back-to-indentation.
* lisp/org/org-list.el (org-list-struct): Remove unused var `ind'.
(org-list-get-next-item, org-list-get-prev-item)
(org-list-get-children): Mark unused arg `struct'.
(org-list-use-alpha-bul-p): Remove unused var `bul'.
(org-toggle-checkbox): Mark unused var.
(org-update-checkbox-count): Remove unused var `box-num'.
(org-adapt-indentation): Declare.
(org-list-parse-list): Declare var instead of adding a dummy duplicate.
(org-list-send-list): Remove unused var `txt'.
(org-list-to-latex, org-list-to-texinfo): Mark unused arg `params'.
(org-list-to-subtree): Add prefix to dyn-bind var, and declare them.
* lisp/org/org-macs.el: Use `declare'.
(org-with-limited-levels): Declare dyn-bound vars.
Eli Zaretskii [Mon, 4 May 2015 14:46:30 +0000 (17:46 +0300)]
Fix minor issues with CEDET on MS-Windows
* lisp/cedet/semantic/symref/idutils.el
(semantic-symref-parse-tool-output-one-line): Fix the search
regexp to match MS-Windows file names with drive letters.
(Bug#19468)
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-grep-use-template): Remove "--color=always" from
Grep switches on MS-Windows.
(semantic-symref-grep-shell): Use shell-file-name as the default
value, so this works not only on Posix platforms.
(semantic-symref-perform-search): Use shell-quote-argument instead
of literal '..' for portable quoting of Grep command-line
argument. Use shell-command-switch instead of a literal "-c".
* lisp/cedet/semantic/bovine/gcc.el
(semantic-gcc-get-include-paths): Use file-name-absolute-p to test
for an absolute file name in a portable way.
(package-import-keyring, package-refresh-contents)
(package-compute-transaction, package--save-selected-packages)
(package-install-from-archive, package-delete)
(package-menu--perform-transaction): Use `inhibit-message'
instead.
(package--compile): Set `warning-minimum-level' to :error.