summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* ; Further minor simplification of rx form in bytecomp.elStefan Kangas2021-11-221-2/+2
| | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Simplify even more. Thanks to Mattias Engdegård <mattiase@acm.org>.
* ; Fix typoStefan Kangas2021-11-221-1/+1
| | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Fix typo.
* ; Very minor simplification in bytecomp.elStefan Kangas2021-11-221-1/+1
| | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Very minor simplification of 'rx' form.
* Use substitute-command-keys for literal key sequencesStefan Kangas2021-11-222-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/abbrev.el (expand-region-abbrevs): * lisp/calc/calc-graph.el (calc-graph-show-dumb): * lisp/calc/calc-help.el (calc-help-for-help): * lisp/calc/calc-mode.el (calc-auto-why): * lisp/calc/calc.el (calc-do): * lisp/calculator.el (calculator-mode): * lisp/dired-aux.el (dired-create-files) (dired-do-create-files-regexp, dired-create-files-non-directory): * lisp/dired-x.el (dired-virtual): * lisp/dired.el (dired-mark-region, dired-unmark-all-files): * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode): * lisp/epa-ks.el (epa-ks--display-keys): * lisp/erc/erc.el (erc-toggle-debug-irc-protocol): * lisp/files.el (save-some-buffers): * lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap) (gnus-dired-print): * lisp/gnus/gnus-group.el (gnus-keep-same-level): * lisp/gnus/gnus-score.el (gnus-score-find-trace): * lisp/gnus/gnus.el (to-list): * lisp/gnus/message.el (message--send-mail-maybe-partially): * lisp/mail/supercite.el (sc-set-variable): * lisp/minibuffer.el (minibuffer-inactive-mode): * lisp/progmodes/etags.el (select-tags-table): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode) (idlwave-shell-char-mode-loop): * lisp/replace.el (query-replace-help): * lisp/simple.el (set-variable): * lisp/subr.el (read-char-from-minibuffer): * lisp/textmodes/ispell.el (ispell-help, ispell-message): * lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels): * lisp/textmodes/reftex-vars.el (reftex-toc-include-file-boundaries) (reftex-toc-include-labels, reftex-toc-include-index-entries) (reftex-toc-include-context, reftex-toc-follow-mode) (reftex-index-include-context, reftex-index-follow-mode) (reftex-enable-partial-scans) (reftex-auto-update-selection-buffers) (reftex-highlight-selection): * lisp/time.el (display-time-update): * lisp/vc/ediff-help.el (ediff-help-for-quick-help): * lisp/vc/ediff-init.el (ediff-keep-variants): * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map) (ediff-patch-file-internal): * lisp/windmove.el (windmove-delete-default-keybindings): Use 'substitute-command-keys' for literal key sequences. * lisp/userlock.el (userlock--fontify-key): Remove function. (ask-user-about-lock, ask-user-about-lock-help) (ask-user-about-supersession-threat) (ask-user-about-supersession-help): Use 'substitute-command-keys' for literal key sequences. * lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys' for command.
* Avoid false positives about wide docstrings for key sequencesStefan Kangas2021-11-221-1/+6
| | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Ignore literal key sequence substitutions. * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-substitutions.el: New file. * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-wide-docstring-ignore-substitutions.el"): New test.
* Add new function buffer-text-pixel-sizemartin rudalics2021-11-221-2/+1
| | | | | | | | | | | * doc/lispref/display.texi (Size of Displayed Text): Document it. * lisp/emacs-lisp/subr-x.el (string-pixel-width): Use buffer-text-pixel-size (bug#51995). * src/xdisp.c (window_text_pixel_size): Factor out from Fwindow_text_pixel_size. (Fbuffer_text_pixel_size): New function.
* Make UCS compose/decompose functions more understandableLars Ingebrigtsen2021-11-191-2/+7
| | | | | | | | | * lisp/international/ucs-normalize.el () (ucs-normalize-NFD-region, ucs-normalize-NFD-string) (ucs-normalize-NFC-region, ucs-normalize-NFC-string) (ucs-normalize-NFKD-region, ucs-normalize-NFKD-string) (ucs-normalize-NFKC-region, ucs-normalize-NFKC-string): Make the doc strings say what they actually do.
* Fixup for bug#51037Filipp Gunbin2021-11-181-15/+8
| | | | | | | * lisp/emacs-lisp/ert.el (ert-batch-backtrace-line-length): Fix docstring. (ert-run-tests-batch): Remove redundand let-binding. (ert-run-tests-interactively): Fix interactive spec.
* Signal an error for duplicated ERT tests (bug#51941)Mattias Engdegård2021-11-181-0/+7
| | | | | | | | | Make `ert-deftest` fail with an error (in batch mode only) if an existing test is redefined, because that is an easy mistake to make and which leads to a test being discarded silently. lisp/emacs-lisp/ert.el (ert-set-test, ert-deftest): Add check. etc/NEWS: Announce.
* Fix eldoc usage of newly introduced variableGreg Minshall2021-11-181-1/+2
| | | | | | * lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p): Make this function work in older Emacs versions again (bug#51939).
* Change the call signature to keymap-substituteLars Ingebrigtsen2021-11-172-2/+2
| | | | | | | * lisp/keymap.el (keymap-substitute): Make the keymap the first parameter for symmetry with the other functions. * lisp/emacs-lisp/shortdoc.el (keymaps): * lisp/emacs-lisp/bytecomp.el (lambda): Adjust.
* Make results details in ert-run-tests-batch configurableMichael Herstine2021-11-162-36/+75
| | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-batch-print-length) (ert-batch-print-level,.ert-batch-backtrace-line-length) (ert-batch-test, ert-run-tests-interactively): Added the three variables, bound them to these settings when formatting batch test results including backtraces. Removed the optional parameters output-buffer & message-fn from ert-run-tests-interactively. * test/lisp/emacs-lisp/ert-tests.el (ert-test-run-tests-interactively, ert-test-run-tests-batch): use cl-letf to capture output, new tests resp. * test/lisp/ert-x-tests.el (ert-test-run-tests-interactively-2): Changed to use cl-letf to capture output instead of using message-fn. * lisp/emacs-lisp/backtrace.el (backtrace--line-length-or-nil) (backtrace--print-func-and-args): Fixed a bug when setting backtrace-line-length to nil by adding a new function to check for that case & having backtrace--print-func-and-args use it. * doc/misc/ert.texi: document the new variables & their usage (bug#51037).
* Add new 'keymap-*' functionsLars Ingebrigtsen2021-11-163-66/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/keymap.el: New file with all the new keymap-* functions. * lisp/loadup.el ("keymap"): Load. * lisp/subr.el (kbd): Refactor out all the code to key-parse. (define-key-after, keyboard-translate, global-set-key) (local-set-key, global-unset-key, local-unset-key) (local-key-binding, global-key-binding) (substitute-key-definition): Note in doc strings that these are legacy functions. (define-keymap--define): Use keymap-set. * lisp/emacs-lisp/byte-opt.el: Remove the optimizations for defvar-keymap and define-keymap since the macros now only understand the kbd syntax. * lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap) (byte-compile-define-keymap--define): Warn about invalid key definitions in all keymap-* functions. * lisp/emacs-lisp/shortdoc.el (keymaps): Add shortdocs form keymap* functions. * src/keymap.c (possibly_translate_key_sequence): Adjust callers to key-valid-p and key-parse. (syms_of_keymap): Adjust defs.
* * lisp/emacs-lisp/checkdoc.el (checkdoc-dired): Autoload.Stefan Kangas2021-11-121-0/+1
|
* Merge from origin/emacs-28Stefan Kangas2021-11-121-0/+1
|\ | | | | | | | | | | a6905e90cc Fix problem with temp buffer killing in package-install-file 144ad77fda Fix Lisp Intro markup error 24b86cb4f7 Fix ACL errors with WebDAV volumes on MS-Windows
| * Fix problem with temp buffer killing in package-install-fileLars Ingebrigtsen2021-11-121-0/+1
| | | | | | | | | | * lisp/emacs-lisp/package.el (package-install-file): Allow killing the temporary buffer without querying (bug#51769).
* | Set `minibuffer-completion-*` variables locally in more placesMiha Rihtaršič2021-11-111-24/+23
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/calc/calc-store.el (calc-read-var-name): * lisp/emacs-lisp/crm.el (completing-read-multiple): * lisp/progmodes/cc-styles.el (c-read-offset): * lisp/window.el (read-buffer-to-switch): Set `minibuffer-completion-*` variables buffer-locally instead of using a global let-binding (bug#48925). Follow-up to commit 2021-05-01 "* lisp/minibuffer.el (completing-read-default): Fix bug#45474"
* | Note that loaddefs.el is copied to ldefs-boot.elLars Ingebrigtsen2021-11-111-0/+2
| | | | | | | | | | * lisp/emacs-lisp/autoload.el (autoload-rubric): Add a comment to the file noting what'll happen to it.
* | Improve 'ensure-empty-lines' docstringRobert Pluim2021-11-101-6/+6
| | | | | | | | | | * lisp/emacs-lisp/subr-x.el (ensure-empty-lines): Fix typo and improve wording.
* | Avoid another byte-compiler warning in package-quickstart.elStefan Kangas2021-11-101-0/+1
| | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-quickstart-refresh): Avoid byte-compiler warning "assignment to free variable" in package-quickstart.el.
* | Avoid spurious byte-compiler warnings in package-quickstart.elStefan Kangas2021-11-101-0/+1
| | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-quickstart-refresh): Disable the "`make-variable-buffer-local' not called at toplevel" byte-compiler warnings. Given that we wrap it all in a let-form, these are mostly false positives and not helpful.
* | Remove spurious %S from 'define-error' messagesTom Levy2021-11-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | ; The MESSAGE arg of 'define-error' does not support format specifiers ; (unlike the 'error' function). The signal data is automatically ; appended to the error message. * lisp/emacs/lisp/cl-generic.el (cl--generic-cyclic-definition): Remove spurious %S from error message. * lisp/emacs-lisp/gv.el (gv-invalid-place): Remove spurious %S from error message (and rephrase) (bug#51718). Copyright-paperwork-exempt: yes
* | Add new function 'file-name-split'Lars Ingebrigtsen2021-11-101-0/+3
| | | | | | | | | | | | | | * doc/lispref/files.texi (File Name Components): Document it. * lisp/files.el (file-name-split): New function (bug#50572). * lisp/emacs-lisp/shortdoc.el (file-name): Mention it.
* | ; * lisp/emacs-lisp/lisp-mode.el: Restore one check in flet handlingakater2021-11-091-6/+6
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Do check backward-up-list executing without errors (bug#9622).
* | * lisp/emacs-lisp/cl-generic.el: Add reference to inspirationStefan Monnier2021-11-081-0/+8
| |
* | lisp/emacs-lisp/lisp-mode.el: Fix parser state corruption.akater2021-11-081-6/+7
| | | | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Preserve the point. * test/lisp/progmodes/elisp-mode-resources/flet.erts: Add corresponding test example (bug#9622).
* | Make debugging ert--erts-specifications easierLars Ingebrigtsen2021-11-071-1/+1
| | | | | | | | | | * lisp/emacs-lisp/ert.el (ert--erts-specifications): Strip text properties from specs to make debugging easier.
* | ; Fix some recent typos/thinkos.Basil L. Contovounesios2021-11-071-2/+2
| |
* | Fix pp-emacs-lisp-code for `when' and relatedLars Ingebrigtsen2021-11-071-0/+3
| | | | | | | | | | * lisp/emacs-lisp/pp.el (pp--format-definition): Skip edebug specs we don't understand at all.
* | Ensure return value of ert-with-temp-directoryStefan Kangas2021-11-071-1/+3
| | | | | | | | | | | | | | * lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Ensure return value when :directory is t is the directory name. * test/lisp/emacs-lisp/ert-x-tests.el (ert-x-tests-with-temp-directory): Extend test for the above.
* | Add generated suffix to test temp file namesStefan Kangas2021-11-071-7/+22
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Add temp file name suffix based on file name of caller. Reflow docstring. (ert--with-temp-file-generate-suffix): New defun. * test/lisp/emacs-lisp/ert-x-tests.el (ert-x-tests--with-temp-file-generate-suffix): New test.
* | Fix byte compilation of package built-insdickmao2021-11-071-79/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package--activate-autoloads-and-load-path): (package--load-files-for-activation): Remove. (package--library-stem): New function, because file-name-sans-extension is insufficient. (package--reload-previously-loaded): New function. (package-activate-1): Reload directly. (package--files-load-history): (package--list-of-conflicts): (package--list-loaded-files): Remove (package-unpack): Adjust call. * test/lisp/emacs-lisp/package-tests.el (macro-builtin-func): Test. (macro-builtin-10-and-90): Test. (package-test-macro-compilation): Test. (package-test-macro-compilation-gz): Test (bug#49708).
* | New convenience macros ert-with-temp-(file|directory)Stefan Kangas2021-11-061-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert-x.el (ert-with-temp-file) (ert-with-temp-directory): New macros. * test/lisp/emacs-lisp/ert-x-tests.el (ert-x-tests-with-temp-directory) ert-x-tests-with-temp-directory/text-signals-error (ert-x-tests-with-temp-file) (ert-x-tests-with-temp-file/handle-error) (ert-x-tests-with-temp-file/prefix-and-suffix-kwarg) (ert-x-tests-with-temp-file/text-kwarg) (ert-x-tests-with-temp-file/unknown-kwargs-signals-error): New tests.
* | Remove messaging in pp-display-expression.Lars Ingebrigtsen2021-11-061-2/+1
| | | | | | | | | | | | * lisp/emacs-lisp/pp.el (pp-display-expression): Remove confusing message -- we don't usually say that we've popped up a new buffer when we do so.
* | Add "N.B." abbreviation to checkdocStefan Kangas2021-11-051-4/+2
| | | | | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Add abbreviation "N.B.".
* | Don't hardcode "Commentary" section in checkdocStefan Kangas2021-11-051-1/+5
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-commentary-header-string): New defvar. (checkdoc-file-comments-engine): Insert value of above new variable instead of hardcoding what is inserted for the "Commentary" section.
* | Allow 'pp' to limit the line widthsLars Ingebrigtsen2021-11-051-25/+65
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/pp.el (pp-max-width, pp-use-max-width): New user options (bug#11934). (pp-to-string): Use it. (pp--insert-lisp): Tweak whether to use standard-output or not. (pp--max-width): New function.
* | Try harder to keep lines short in pp-emacs-lisp-codeLars Ingebrigtsen2021-11-041-1/+11
| | | | | | | | * lisp/emacs-lisp/pp.el (pp--insert): Try harder to keep lines short.
* | Tweak multi-line expressions in pp--format-functionLars Ingebrigtsen2021-11-041-2/+8
| | | | | | | | | | * lisp/emacs-lisp/pp.el (pp--format-function): Fix up multi-line expressions.
* | Fix up some list folding in pp-emacs-lisp-codeLars Ingebrigtsen2021-11-041-7/+24
| | | | | | | | | | * lisp/emacs-lisp/pp.el (pp--insert-lisp, pp--format-list) (pp--insert): Touch up list folding.
* | Indent lambdas/closures betterLars Ingebrigtsen2021-11-041-1/+12
| | | | | | | | | | * lisp/emacs-lisp/pp.el (pp--format-function): Indent lambdas and closures better.
* | Make lambda/closure help buttons format as Emacs LispLars Ingebrigtsen2021-11-041-2/+7
| | | | | | | | | | | | | | | | * lisp/help.el (help--describe-command): Format lambda/closures as Emacs Lisp. * lisp/emacs-lisp/pp.el (pp-display-expression): Allow formatting as Emacs Lisp.
* | Add new basic Emacs Lisp code formatting functionLars Ingebrigtsen2021-11-041-0/+122
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/pp.el (pp-emacs-lisp-code): New interface function. (pp): Mention it. (pp--insert-lisp, pp--format-vector, pp--format-list) (pp--format-function, pp--format-definition, pp--insert-binding) (pp--insert, pp--indent-buffer): New helper functions.
* | Rename button-buttonize to buttonizeLars Ingebrigtsen2021-11-041-1/+1
| | | | | | | | | | | | | | | | * lisp/help.el (help--describe-command): * lisp/emacs-lisp/memory-report.el (memory-report--buffers): * lisp/button.el (button-buttonize): * doc/lispref/display.texi (Making Buttons): Rename button-buttonize to just buttonize and adjust callers.
* | Optimise (cond) => nil at source levelMattias Engdegård2021-11-021-1/+1
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-cond): Optimise clause-free `cond`, which can arise from earlier transformations. This enables further optimisations. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test cases.
* | Support inserting images in tabulated-list-mode columnsStefan Kangas2021-11-021-11/+26
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col): Support using an image descriptor to insert an image in a column. (tabulated-list-entries): * doc/lispref/modes.texi (Tabulated List Mode): Update documentation to reflect above change.
* | Make lambdas/closures/byte code in `C-h b' clickableLars Ingebrigtsen2021-11-021-0/+1
| | | | | | | | | | | | | | * lisp/help.el (help--describe-command): Add links for lambdas/closures/byte code (bug#24235). * lisp/emacs-lisp/pp.el (pp-display-expression): Autoload.
* | Read mailcaps again only when necessaryGregory Heytings2021-11-011-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/files.texi (File Attributes): Document it. * lisp/files.el (file-has-changed-p): New function. (file-has-changed-p--hash-table): Internal variable used by the new function (bug#51523). * lisp/emacs-lisp/shortdoc.el (file): Mention it. * lisp/net/mailcap.el (mailcap-parse-mailcaps): Read mailcaps again only when at least one of the mailcap files has changed. Fixes bug#51523.
* | eieio-core.el: Make slot-value work on defstructsStefan Monnier2021-10-312-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjust the values in EIEIO's index-tables so they are compatible with those of defstructs. * lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Don't add the `eieio--object-num-slots` offset. (eieio-defclass-internal): Add the `eieio--object-num-slots` offset here instead. (eieio-oref): Allow its use on `cl-structure-object`. * lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-from-index-table): Don't need to add the `eieio--object-num-slots` offset. * doc/misc/eieio.texi (Accessing Slots, Accessing Slots): Mention the use on structs. * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-test-defstruct-slot-value): New test.
* | Remove workaround for fixed Bug#6581 from ertStefan Kangas2021-10-311-35/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-equal-including-properties): Make into obsolete function alias for 'equal-including-properties'. * test/src/editfns-tests.el (format-properties): * test/lisp/emacs-lisp/ert-x-tests.el (ert-propertized-string) (ert-test-run-tests-interactively-2): Don't use above obsolete name. (ert--explain-equal-including-properties-rec): New function. (ert--explain-equal-including-properties): Use as an explainer for 'equal-including-properties' now that Bug#6581 is fixed. * test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-equal-string-properties): Expand test. (ert-test-equal-including-properties): Merge test into above expanded test.