Commit graph

4550 commits

Author SHA1 Message Date
Artur Malabarba
13634dec03 * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Implement docstrings
Adding a string after a constructor's argument list will use
that string as the constructor function docstring.  If this string
is absent but the struct itself was given a docstring, use that as
the constructor's docstring.

Fixes (bug#17284).
2015-04-13 20:51:14 +01:00
Stefan Monnier
84e0b7dad6 Deprecate intangible' and point-entered' properties
* lisp/emacs-lisp/cursor-sensor.el: New file.

* lisp/simple.el (pre-redisplay-functions): New hook.
(redisplay--pre-redisplay-functions): New function.
(pre-redisplay-function): Use it.
(minibuffer-avoid-prompt): Mark obsolete.
(redisplay--update-region-highlight): Adapt it to work as a function on
pre-redisplay-functions.

* lisp/cus-start.el (minibuffer-prompt-properties--setter): New fun.
(minibuffer-prompt-properties): Use it.  Use cursor-intangible rather
than point-entered to make the prompt intangible.

* lisp/forms.el: Move `provide' calls to the end.
(forms-mode): Don't use `run-hooks' on a local var.
(forms--make-format, forms--make-format-elt-using-text-properties):
Use cursor-intangible rather than `intangible'.
(forms-mode): Enable cursor-intangible-mode.

* lisp/isearch.el (isearch-mode): Use defvar-local.
(cursor-sensor-inhibit): Declare.
(isearch-mode): Set cursor-sensor-inhibit.
(isearch-done): Set it back.
(isearch-open-overlay-temporary, isearch-open-necessary-overlays)
(isearch-close-unnecessary-overlays): Don't bother with `intangible'
any more.

* lisp/ses.el (ses-localvars): Remove `mode-line-process'.
(ses-sym-rowcol, ses-cell-value, ses-col-width, ses-col-printer):
Add Edebug spec.
(ses-goto-print, ses-print-cell, ses-adjust-print-width)
(ses-goto-data, ses-setup, ses-copy-region): Don't let-bind
inhibit-point-motion-hooks any more.
(ses--cell-at-pos, ses--curcell): New functions, extracted from
ses-set-curcell.
(ses-set-curcell): Use them.
(ses-print-cell, ses-setup): Use cursor-intangible instead of
`intangible'.  Make sure cursor-intangible isn't sticky at BOB.
(ses-print-cell-new-width, ses-reprint-all, ses-recalculate-all):
Use ses--cell-at-pos.
(ses--mode-line-process, ses--cursor-sensor-highlight): New functions,
extracted from ses-command-hook.  Make them work with multiple windows
displaying the same buffer.
(ses-mode): Use them via mode-line-process and pre-redisplay-functions.
Enable cursor-intangible-mode.
(ses-command-hook): Remove cell highlight and mode-line update code.
(ses-forward-or-insert, ses-copy-region-helper, ses-sort-column):
Update for new name of text-property holding the cell name.
(ses-rename-cell): Don't mess with mode-line-process.

* lisp/erc/erc-stamp.el (erc-add-timestamp): Use the new
cursor-sensor-functions property instead of point-entered.
(erc-insert-timestamp-right, erc-format-timestamp):
Use cursor-intangible rather than `intangible'.
(erc-munge-invisibility-spec): Use add-to-invisibility-spec and
remove-from-invisibility-spec.  Enable cursor-intangible-mode and
cursor-sensor-mode if needed.
(erc-echo-timestamp): Adapt to calling convention of
cursor-sensor-functions.
(erc-insert-timestamp-right): Remove unused vars `current-window' and
`indent'.

* lisp/gnus/gnus-group.el (gnus-tmp-*): Declare.
(gnus-update-group-mark-positions): Remove unused `topic' var.
(gnus-group-insert-group-line): Remove unused var `header'.
(gnus-group--setup-tool-bar-update): New function.
(gnus-group-insert-group-line): Use it.
(gnus-group-update-eval-form): Declare local
dynamically-bound variables.
(gnus-group-unsubscribe-group): Use \` and \' to match string bounds.

* lisp/gnus/gnus-topic.el (gnus-topic-jump-to-topic)
(gnus-group-prepare-topics, gnus-topic-update-topic)
(gnus-topic-change-level, gnus-topic-catchup-articles)
(gnus-topic-remove-group, gnus-topic-delete, gnus-topic-indent):
Use inhibit-read-only.
(gnus-topic-prepare-topic): Use gnus-group--setup-tool-bar-update.
(gnus-topic-mode): Use define-minor-mode and derived-mode-p.

* lisp/textmodes/reftex-index.el (reftex-display-index):
Use cursor-intangible-mode if available.
(reftex-index-post-command-hook): Check cursor-intangible.

* lisp/textmodes/reftex-toc.el (reftex-toc):
Use cursor-intangible-mode if available.
(reftex-toc-recenter, reftex-toc-post-command-hook):
Check cursor-intangible.

* lisp/textmodes/sgml-mode.el: Use lexical-binding.
(sgml-tag): Use cursor-sensor-functions instead of point-entered.
(sgml-tags-invisible): Use with-silent-modifications and
inhibit-read-only.  Enable cursor-sensor-mode.
(sgml-cursor-sensor): Rename from sgml-point-entered and adjust to
calling convention of cursor-sensor-functions.

* lisp/textmodes/table.el (table-cell-map-hook, table-load-hook)
(table-point-entered-cell-hook, table-point-left-cell-hook):
Don't autoload.
(table-cell-entered-state): Remove var.
(table--put-cell-point-entered/left-property)
(table--remove-cell-properties):
Use cursor-sensor-functions rather than point-entered/left.
(table--point-entered/left-cell-function): Merge
table--point-entered-cell-function and table--point-left-cell-function
and adjust to calling convention of cursor-sensor-functions.
2015-04-13 15:51:15 -04:00
Stefan Monnier
4aca2fdfda * lisp/emacs-lisp/pcase.el (pcase-dolist): Autoload as well. 2015-04-13 14:46:58 -04:00
Artur Malabarba
e99d8cb25d * lisp/emacs-lisp/package.el: Improve transaction y-or-n prompt
(package-menu--prompt-transaction-p): Prompt for "Delete" first,
"Upgrade" last, and use capitalized instead of all-caps.
2015-04-12 16:16:06 +01:00
Artur Malabarba
5aa0dfe4b7 * lisp/emacs-lisp/package.el: Completely silence async operations
(package--make-autoloads-and-stuff): Silence autoloads.

(package--save-selected-packages): New function, silences
`customize-save-variable'.
(package--user-selected-p, package-install-from-buffer)
(package-delete, package-install): Use it.

(package-install-from-archive)
(package-menu--perform-transaction): Silence.

(package-menu-execute): Feedback when operation starts.
2015-04-12 16:16:06 +01:00
Artur Malabarba
dfdd7e1944 Use delay-mode-hooks when visiting the init-file
* lisp/emacs-lisp/package.el (package--ensure-init-file):
delay-mode-hooks

* lisp/cus-edit.el (custom-save-all): delay-mode-hooks
2015-04-12 16:16:06 +01:00
Johan Bockgård
2e47de365b Support debug declarations in pcase macros
* lisp/emacs-lisp/pcase.el (pcase-MACRO): New edebug spec.
(pcase-UPAT): Use it.  Remove "`".
(pcase--edebug-match-macro): New function.
(pcase-defmacro): Support debug declarations.

* lisp/emacs-lisp/cl-macs.el (cl-struct) <pcase-defmacro>:
* lisp/emacs-lisp/eieio.el (eieio) <pcase-defmacro>:
* lisp/emacs-lisp/pcase.el (\`): <pcase-defmacro>: Add debug declaration.
2015-04-12 16:26:52 +02:00
Johan Bockgård
66a53da5f0 pcase.el: Edebug support for `app' and vector patterns
* lisp/emacs-lisp/pcase.el (pcase-FUN): New edebug spec.
(pcase-UPAT): Use it. Support `app' patterns.
(pcase-QPAT): Support vector patterns.
2015-04-12 16:26:51 +02:00
Johan Bockgård
b62d7956be edebug.el: Disambiguate vector specifications
* lisp/emacs-lisp/edebug.el (edebug-match-list): Always treat
`(vector ...)' as a vector specification, not as a sublist.
2015-04-12 16:26:51 +02:00
Artur Malabarba
d0fcb21254 * lisp/emacs-lisp/package.el (list-packages): Avoid redundant generate 2015-04-12 13:47:58 +01:00
Artur Malabarba
d06eeb85e0 * lisp/emacs-lisp/package.el (list-packages): Call refresh in right buffer 2015-04-12 13:45:30 +01:00
Artur Malabarba
9a7ddde977 * lisp/emacs-lisp/bytecomp.el: Silence noninteractive compilations
(byte-compile--interactive): New var.
(byte-compile--message): New function.
(byte-compile-log-1, byte-force-recompile)
(byte-recompile-directory, byte-recompile-file)
(byte-compile-file, compile-defun)
(byte-compile-file-form-defmumble, byte-compile)
(byte-compile-file-form-defalias, display-call-tree): Use it.
2015-04-12 13:45:30 +01:00
Artur Malabarba
3ba6b3a9c1 Speed up byte-compilation and autoload generation by avoiding mode-hooks
This prevents emacs-lisp-mode-hook from being run everytime an
autoload file is generated, which can account for a fraction of
package installation time depending on the hooks the user has
configured.

* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Use delay-mode-hooks.

* lisp/emacs-lisp/autoload.el (autoload-find-file)
(autoload-find-generated-file): Use delay-mode-hooks.
2015-04-12 03:57:59 +01:00
Artur Malabarba
50ddc67739 * lisp/emacs-lisp/package.el: Improve `package-menu-refresh'
(package-menu-refresh): Respect async and do new package checking.
(list-packages): Use `package-menu-refresh' instead of repeating code.
2015-04-12 03:57:58 +01:00
Artur Malabarba
6f87b180dd * lisp/emacs-lisp/package.el: Improve package-menu-quick-help
(package--quick-help-keys): New variable.
(package--prettify-quick-help-key): New function.
(package-menu-quick-help): Use it.
2015-04-12 03:09:50 +01:00
Artur Malabarba
357edb4e89 * lisp/emacs-lisp/package.el: Fix initially wrong compat table
(package--build-compatibility-table): require finder
2015-04-12 02:33:29 +01:00
Artur Malabarba
ba273b6185 * lisp/emacs-lisp/package.el: Silence async operations
(package--silence): New variable.
(package--message): New function.

(package-import-keyring, package-refresh-contents)
(package-compute-transaction, package-install, package-delete)
(package-menu--perform-transaction, package-menu-execute): Use it.
2015-04-12 01:52:43 +01:00
Stefan Monnier
26f8a38497 cl-lib.el: Partial revert of "2015-04-05 Rationalize c[ad]+r"
* lisp/emacs-lisp/cl-lib.el: Partial revert of "2015-04-05 Rationalize
use of c[ad]+r", so as to keep the "cl-" prefix on all
cl-lib definitions.
2015-04-10 01:50:22 -04:00
Artur Malabarba
c1daad42c6 * lisp/emacs-lisp/package.el: Use mode-line-process for notification 2015-04-10 00:47:05 +01:00
Gustav Hållberg
0ae9ae36f0 (diff-hunk-file-names): Don't require a TAB after the file name
* lisp/vc/diff-mode.el (diff-hunk-file-names): Don't require a TAB
after the file name (bug#20276).
2015-04-08 21:46:28 -04:00
Stefan Monnier
215e5bf0cf (eieio-copy-parents-into-subclass): Fix inheritance of initargs
Fixes: debbugs:20270

* lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass):
Fix inheritance of initargs.
2015-04-08 17:23:50 -04:00
Artur Malabarba
a480a51f24 * lisp/emacs-lisp/package.el (package-menu-mode): Mode-line notification
while dowloading information.
2015-04-08 19:27:45 +01:00
Artur Malabarba
0465c9dd42 * lisp/emacs-lisp/package.el: More conservative `ensure-init-file'
(package--ensure-init-file): Check file contents before visiting.
(package-initialize): Call it.
(package-install-from-buffer, package-install): Don't call it.
2015-04-08 19:18:30 +01:00
Artur Malabarba
c91fd97dfb * emacs-lisp/package.el: Make the execute prompt less verbose.
(package-menu--list-to-prompt): New function.
(package-menu--prompt-transaction-p): Use "Upgrade" to make the
package-menu-execute prompt less verbose.
2015-04-06 17:09:43 +01:00
Artur Malabarba
67c152efc3 * emacs-lisp/package.el: Fix lack of "new" packages.
(package-menu--new-package-list)
(package-menu--old-archive-contents): No longer local.
2015-04-06 16:22:07 +01:00
Artur Malabarba
7471fc47b4 emacs-lisp/package.el (package-menu-execute): Add async support
Most install/delete logic is now in
`package-menu--perform-transaction', and this function is called
asynchronously if `package-menu-async' is non-nil.
2015-04-06 11:19:04 +01:00
Artur Malabarba
6701726b98 emacs-lisp/package.el (package-install): Add ASYNC and CALLBACK 2015-04-06 11:19:04 +01:00
Artur Malabarba
b6610d5547 emacs-lisp/package.el: Refactor pre-execute prompt 2015-04-06 11:19:04 +01:00
Artur Malabarba
7436b68132 emacs-lisp/package.el: Async support in download-transaction 2015-04-06 11:19:04 +01:00
Alan Mackenzie
2056db3fad Rationalize use of c[ad]+r, expunging cl-c[ad]\{3,4\}r.
Also expunge eudc-c[ad]+r.

* subr.el (internal--compiler-macro-cXXr): "New" function, copied
from cl--compiler-macro-cXXr.
(caar, cadr, cdar, cddr): Change from defsubsts to defuns with
the above compiler-macro.

* net/eudc.el (eudc-cadr, eudc-cdar, eudc-caar, eudc-cdaar): Remove.

* emacs-lisp/cl.el (Top level dolist doing defaliases): Remove
caaar, etc., from list of new alias functions.

* emacs-lisp/cl-lib.el (cl-caaar, etc): Rename to caaar, etc.
(gen-cXXr--rawname, gen-cXXr-all-cl-aliases): New function/macro
which generate obsolete cl- aliases for caaar, etc.  Invoke them.

* desktop.el:
* edmacro.el:
* emacs-lisp/cl-macs.el:
* frameset.el:
* ibuffer.el:
* mail/footnote.el:
* net/dbus.el:
* net/eudc-export.el:
* net/eudc.el:
* net/eudcb-ph.el:
* net/rcirc.el:
* net/secrets.el:
* play/5x5.el:
* play/decipher.el:
* play/hanoi.el:
* progmodes/hideif.el:
* ses.el: Replace cl-caaar, eudc-cadr, etc. with caaar and cadr, etc.
2015-04-05 12:49:14 +00:00
Artur Malabarba
fdc521952e emacs-lisp/package.el: Add package-initialize to user-init-file. 2015-04-05 11:06:20 +01:00
Artur Malabarba
b47fe819f7 emacs-lisp/package.el: Prevent outdated downloads-in-progress. 2015-04-05 10:59:18 +01:00
Artur Malabarba
b32bb3f2f6 (package--with-work-buffer-async): Protect macro arguments. 2015-04-04 20:44:59 +01:00
Artur Malabarba
f674de6f08 emacs-lisp/package.el: Don't overwrite downloads-in-progress. 2015-04-04 20:22:26 +01:00
Stefan Monnier
5e41a51e5c * lisp/emacs-lisp/lisp-mnt.el (lm-version): Don't burp in a non-file buffer. 2015-04-02 09:59:47 -04:00
Paul Eggert
bd55cd4d24 * emacs-lisp/package.el: Spelling fixes and use active voice. 2015-04-01 10:22:20 -07:00
Artur Malabarba
aa33f4a100 * emacs-lisp/package.el: Make package-menu asynchronous.
(package-menu-async): New variable.  Controls whether
`list-packages' is asynchronous.
(list-packages): Now asynchronous by default.
(package-menu--new-package-list): Always buffer-local.
(package-menu--post-refresh)
(package-menu--find-and-notify-upgrades)
(package-menu--populate-new-package-list): New functions.
2015-04-01 11:09:00 +01:00
Artur Malabarba
ba7a1a7a4e * emacs-lisp/package.el: Implement asynchronous refreshing.
(package--with-work-buffer-async)
(package--check-signature-content)
(package--update-downloads-in-progress): New functions.
(package--check-signature, package--download-one-archive)
(package--download-and-read-archives, package-refresh-contents):
Optional arguments for async usage.
(package--post-download-archives-hook): New variable. Hook run
after every refresh.
2015-04-01 11:08:03 +01:00
Stefan Monnier
bc9a6fcd29 Let jit-lock know the result of font-lock-extend-region-functions.
* lisp/jit-lock.el (jit-lock--run-functions): New function.
(jit-lock-fontify-now): Use it.  Handle fontification bounds more
precisely in case the backend functions fontify more than requested.
Don't round up to whole lines since that shouldn't be needed
any more.
* lisp/font-lock.el (font-lock-fontify-region-function): Adjust docstring.
(font-lock-inhibit-thing-lock): Make obsolete.
(font-lock-default-fontify-region): Return the bounds actually used.

* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
Fix compilation error.
2015-03-30 21:33:20 -04:00
Artur Malabarba
ce88920edb Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs 2015-03-31 00:56:56 +01:00
Artur Malabarba
a7270fb20f emacs-lisp/package.el: Reorganize package.el
Reorganize package.el and divide it with page-breaks and comments
2015-03-31 00:47:31 +01:00
Stefan Monnier
ef37e79aae * eieio-base.el (make-instance) <eieio-named>: New instance. 2015-03-30 17:51:50 -04:00
Paul Eggert
0479a1b62c Merge from origin/emacs-24
5e0314f * smie.el (smie*ward-sexp-command): Don't pretend the arg is optional
13cf575 Don't round up scroll bar width with GTK3 (Bug#20182).
921dd0d * doc/lispref/objects.texi (Equality Predicates): Fix typo in example.

Conflicts:
	doc/lispref/ChangeLog
	lisp/ChangeLog
	src/ChangeLog
2015-03-29 14:14:15 -07:00
Jan D
e6127d9474 * lisp/emacs-lisp/package.el (package-refresh-contents): Fix spelling error 2015-03-28 23:05:30 +01:00
Jan D
733a9f114c Fixes: debbugs:17879
* lisp/emacs-lisp/package.el (package-refresh-contents): Add a message at
the end so it does not appear to have hanged.
2015-03-28 12:15:18 +01:00
Stefan Monnier
8fd527eb00 * lisp/emacs-lisp/cl|eieio: Minor tweaks
* lisp/emacs-lisp/cl-macs.el (cl-dolist, cl-dotimes): Silence byte-compiler.

* lisp/emacs-lisp/eieio.el (defclass): Change internal name so as to make
sure only EIEIO files should have "eieio--" prefixes in their .elc.
2015-03-26 13:32:45 -04:00
Stefan Monnier
5e0314f6fa * smie.el (smie*ward-sexp-command): Don't pretend the arg is optional
Fixes: debbugs:20205

* lisp/emacs-lisp/smie.el (smie-backward-sexp-command)
(smie-forward-sexp-command): Don't pretend the arg is optional.
2015-03-26 09:36:24 -04:00
Stefan Monnier
2b828866c2 * etc/TODO: Remove obsolete entries. 2015-03-25 14:28:25 -04:00
Artur Malabarba
eeb515715d emacs-lisp/checkdoc.el: Don't complain about args starting with _. 2015-03-25 17:48:38 +00:00
Nicolas Petton
d46f31b4b2 * lisp/emacs-lisp/seq.el: Documentation improvements 2015-03-25 09:21:14 +01:00