summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* | * lisp/emacs-lisp/subr-x.el (with-memoization): New macroStefan Monnier2021-10-012-13/+17
| | | | | | | | | | | | | | | | Extracted from `cl-generic.el`. * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher) (cl--generic-build-combined-method, cl-generic-generalizers): Use it. (cl--generic-with-memoization): Delete.
* | Refactor out ert-test--erts-testLars Ingebrigtsen2021-10-011-77/+82
| | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-test--erts-test): Refactor out the bulk of the function for easier reuse.
* | Restore the flet indentation fixesakater2021-10-011-10/+72
| | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): New function. (lisp-indent-function): Use it to fix cl-flet indentation.
* | Allow skipping erts testsLars Ingebrigtsen2021-10-011-56/+67
| | | | | | | | | | | | * doc/misc/ert.texi (erts files): Document it. * lisp/emacs-lisp/ert.el (ert-test-erts-file): Allow skipping tests.
* | Add new functionality to write buffer-based testsLars Ingebrigtsen2021-10-011-0/+104
|/ | | | | | | | | | | | | * doc/misc/ert.texi (erts files): New node. * lisp/files.el (auto-mode-alist): Map .erts to erts-mode. * lisp/emacs-lisp/ert.el (ert-test-erts-file): New function. * lisp/emacs-lisp/ert.el (ert--erts-specifications) (ert--erts-unquote): Helper functions. * lisp/progmodes/erts-mode.el: New mode and file.
* Make checkdoc's docstring substitution consistent with other docsNikolay Kudryavtsev2021-09-301-3/+3
| | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): In error text, say "mapvar" instead of "keymap", and "command" instead of "function", to be consistent with the ELisp manual. (Bug#50903)
* Revert "Indent bodies of local function definitions properly in elisp-mode"Mattias Engdegård2021-09-301-35/+10
| | | | This reverts commit 38037e04cb05cb1f2b604f0b1602d36b0bcf6985.
* Revert "Fix regressions in cl-flet indentation"Mattias Engdegård2021-09-301-43/+10
| | | | This reverts commit c42af5aee74f310bdcd63aac96b1c02ec07a1c50.
* Fix regressions in cl-flet indentationakater2021-09-301-10/+43
| | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Rename (from -p-less form) and fix indentation regression introduced by 38037e04cb05cb1f2b604f0b1602d36b0bcf6985 (bug#9622). Also add cl-macrolet cl-flet* cl-symbol-macrolet.
* Revert "Obsolete local set difference functions in favor of seq-difference"Lars Ingebrigtsen2021-09-291-1/+0
| | | | | | | | This reverts commit 20f7fa691b7c2859b96550d9ccb326bf394e160d. gnus-set-difference is orders of magnitude faster than seq-difference (on these sets), and using seq-difference makes nnimap too slow.
* Tweak the whitespace before "This is a generic function"Lars Ingebrigtsen2021-09-291-1/+4
| | | | | | * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Make the number of blank lines before this section consistent (whether there's an indented section before it or not).
* Add shortdoc for text propertiesStefan Kangas2021-09-281-0/+43
| | | | | | * lisp/emacs-lisp/shortdoc.el (text-properties): New shortdoc. e for your changes. Lines starting
* Mention describe-symbol in cl-defstruct docstringStefan Kangas2021-09-281-1/+1
| | | | | * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Mention 'describe-symbol' in docstring.
* Mention cl-describe-type in cl-defstruct docstringStefan Kangas2021-09-281-0/+3
| | | | | * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Mention 'cl-describe-type' in docstring.
* * lisp/emacs-lisp/map.el: Restore compatibility with Emacs-26Stefan Monnier2021-09-281-5/+5
| | | | Don't use the new `eql` syntax.
* Improve docstrings of ert-resource-{directory,file}Stefan Kangas2021-09-281-7/+8
| | | | | * lisp/emacs-lisp/ert-x.el (ert-resource-directory) (ert-resource-file): Improve docstrings.
* Signal error on newline in internal--format-docstring-lineStefan Kangas2021-09-281-3/+5
| | | | | | | | | | * lisp/subr.el (internal--format-docstring-line): Signal error when trying to fill a line containing a newline. * lisp/cedet/semantic/decorate/mode.el (define-semantic-decoration-style): * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Don't pass newlines to 'internal--format-docstring-line'.
* ; * lisp/emacs-lisp/comp.el (batch-native-compile): Don't use non-ASCII.Eli Zaretskii2021-09-281-1/+1
|
* Make the build of source tarball produce *.eln filesEli Zaretskii2021-09-281-9/+16
| | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (batch-native-compile): Accept an optional argument; if non-nil, place the .eln file as appropriate for building a source tarball. * doc/lispref/compile.texi (Native-Compilation Functions): Document the new optional argument of 'batch-native-compile'. * lisp/Makefile.in (.PHONY, $(THEFILE)n) [HAVE_NATIVE_COMP]: New targets. * src/Makefile.in (%.eln) [HAVE_NATIVE_COMP]: New recipe. (all) [HAVE_NATIVE_COMP]: Add ../native-lisp to prerequisites. (elnlisp) [HAVE_NATIVE_COMP]: New list of *.eln files. (../native-lisp) [HAVE_NATIVE_COMP]: New recipe. * src/verbose.mk.in (AM_V_ELN): New macro.
* ; * lisp/emacs-lisp/comp.el (batch-native-compile): Doc fix.Eli Zaretskii2021-09-281-4/+5
|
* checkdoc: Allow Lisp symbols to start a messageStefan Kangas2021-09-281-7/+30
| | | | | | | | | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-message-text-engine): Allow Lisp symbols to start a message. (checkdoc--error-bad-format-p): New helper function. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-test-error-format-is-good) (checkdoc-test-error-format-is-bad): New helper functions. (checkdoc-tests-error-message-bad-format-p) (checkdoc-tests-error-message-bad-format-p/defined-symbols) (checkdoc-tests-error-message-bad-format-p/not-capitalized): New tests.
* Fix automatic filling of docstring in cl-defstructStefan Kangas2021-09-271-4/+4
| | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix bug where a paragraph was filled as if it were a single line, which led to garbled output in the docstring. (Bug#50839) * test/lisp/subr-tests.el (subr-test-internal--format-docstring-line): New test.
* checkdoc: Don't add "Commentary" header to test filesStefan Kangas2021-09-261-2/+7
| | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Don't add "Commentary:" header if it looks like a test file.
* Add fast-path to ert--explain-string-equalStefan Kangas2021-09-261-3/+5
| | | | | | * lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add fast-path to avoid doing extra work. Problem reported by Mattias Engdegård <mattiase@acm.org>.
* Rename "Homepage" field to "Website" in package descriptionStefan Kangas2021-09-261-12/+12
| | | | | | | | | | | * lisp/emacs-lisp/package.el (describe-package-1): Rename "Homepage" field to "Website". * test/lisp/emacs-lisp/package-tests.el (package-test-describe-package) (package-test-describe-installed-multi-file-package) (package-test-describe-non-installed-package) (package-test-describe-non-installed-multi-file-package): Update tests.
* Prefer https for other domains than gnu.org in package URLStefan Kangas2021-09-261-6/+11
| | | | | * lisp/emacs-lisp/package.el (describe-package-1): Prefer https for some other common domains in the package URL.
* Add test for lm-websiteStefan Kangas2021-09-261-3/+3
| | | | | | * lisp/emacs-lisp/lisp-mnt.el (lm-website): Use rx. * test/lisp/emacs-lisp/lisp-mnt-tests.el (lm--tests-lm-website): New test.
* Warn about overly long docstring in lambdaStefan Kangas2021-09-261-14/+8
| | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-length-warn): Warn about overly long docstring in lambda. (Bug#44858) (byte-compile--wide-docstring-p): Improve comment. * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-wide-docstring-defun.el"): Update to test for the above new warning.
* Fill some auto-generated docstring linesStefan Kangas2021-09-263-12/+16
| | | | | | | | | * lisp/cedet/mode-local.el (define-mode-local-override): * lisp/cedet/semantic/decorate/mode.el (define-semantic-decoration-style): * lisp/cedet/semantic/idle.el (define-semantic-idle-service): * lisp/emacs-lisp/derived.el (derived-mode-make-docstring): * lisp/emacs-lisp/eieio.el (defclass): Fill auto-generated docstring lines.
* Avoid false positives in bytecomp docstring width warningStefan Kangas2021-09-261-2/+10
| | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Ignore more function argument lists. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests-byte-compile--wide-docstring-p): New test.
* ; Adjust overly long docstrings to fit 80 charactersStefan Kangas2021-09-262-3/+3
|
* ert: Add basic explainer for string-equalStefan Kangas2021-09-261-0/+8
| | | | | * lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add basic explainer for 'string-equal' based on 'ert--explain-equal'.
* checkdoc: Library footer must match package.el requirementStefan Kangas2021-09-261-4/+3
| | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Don't accept footer format unless it matches the requirement in package.el.
* Expand the ` doc string slightlyLars Ingebrigtsen2021-09-261-1/+4
| | | | | * lisp/emacs-lisp/backquote.el (backquote): Note that ` is used for other things in some macros (bug#25462).
* ; Bump seq version to 2.23Stefan Kangas2021-09-251-1/+1
|
* Revert part of previous doc fixStefan Kangas2021-09-251-4/+4
| | | | | * lisp/emacs-lisp/derived.el (define-derived-mode): Revert part of previous doc fix. This change made the text confusing. (Bug#17567)
* Fix byte-compiler crash for legal dynamic-binding codeMattias Engdegård2021-09-251-5/+12
| | | | | | | | | | This should really be taken care of by a syntax normalisation step in the frontend, but there is no such step for non-lexbind code yet. * lisp/emacs-lisp/byte-opt.el (byte-optimize-letX): Tolerate bindingsa without initialising expressions. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test cases.
* Constant-propagate variables bound outside loopsMattias Engdegård2021-09-251-18/+34
| | | | | | | | | | | | | | Previously, variables bound outside `while` loops were not substituted inside even in the absense of mutation. Add the necessary mutation checking inside loops to allow propagation of values and aliased variables. * lisp/emacs-lisp/byte-opt.el (byte-optimize--inhibit-outside-loop-constprop): New variable. (byte-optimize-form-code-walker): First traverse each loop without substitution to discover mutation, then without restrictions. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-loop): New. (bytecomp-tests--test-cases): Add test cases.
* Use ambient lexical-binding value in ert-deftest body (bug#50738)Mattias Engdegård2021-09-251-1/+5
| | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-deftest): Evaluate the body of `ert-deftest` with the `lexical-binding` value of the source file (or more precisely the value in force when the definition is evaluated), which is what everyone expected, instead of always using dynamic binding which is what they got until now. * test/lisp/emacs-lisp/ert-tests.el (ert-test-deftest-lexical-binding-t): New test.
* Renege on anonymous &rest (bug#50268, bug#50720)Mattias Engdegård2021-09-251-0/+2
| | | | | | | | | | | | | | | | Allowing &rest without a variable name following turned out not to be very useful, and it never worked properly. Disallow it. * lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): * src/eval.c (funcall_lambda): Signal error for &rest without variable name. * doc/lispref/functions.texi (Argument List): Adjust manual. * etc/NEWS (file): Announce. * test/src/eval-tests.el (eval-tests--bugs-24912-and-24913): Extend test, also checking with and without lexical binding. (eval-tests-accept-empty-optional-rest): Reduce to... (eval-tests-accept-empty-optional): ...this, again checking with and without lexical binding.
* Clarify define-derived-mode docstringStefan Kangas2021-09-251-11/+11
| | | | | | | | | | * lisp/emacs-lisp/derived.el (define-derived-mode): Doc fixes; correctly mention that the mode name is used in the mode line, clarify argument types, and how the mode hook is named. (Bug17567) (derived-mode-hook-name, derived-mode-map-name) (derived-mode-syntax-table-name, derived-mode-abbrev-table-name): Clarify that argument is a symbol.
* Minor clarification of define-minor-mode :keymap argumentStefan Kangas2021-09-251-2/+2
| | | | | | * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Minor doc fix; clarify by saying that ":keymap" should be an "unquoted variable name". (Bug#25505)
* Indent bodies of local function definitions properly in elisp-modeakater2021-09-251-10/+35
| | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Check for local defforms (`cl-flet' and `cl-labels'). (lisp--local-defform-body): New auxiliary function (bug#9622).
* Fix alignment on font size change in tabulated-list-modeStefan Kangas2021-09-251-1/+2
| | | | | | * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col): Fix bug where the columns didn't align correctly when using 'text-scale-mode' to decrease the font size. (Bug#48639)
* Doc fix; cl-random is only pseudo-randomStefan Kangas2021-09-251-1/+1
| | | | | * lisp/emacs-lisp/cl-extra.el (cl-random): Doc fix; say it's only pseudo-random.
* checkdoc: Don't ask to disambiguate mode namesStefan Kangas2021-09-241-1/+4
| | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Don't ask to disambiguate mode names. (Bug#4110)
* Fix recently introduced bug in checkdocStefan Kangas2021-09-241-2/+3
| | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Fix recently introduced bug where some abbreviations weren't recognized. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests-in-abbrevation-p/basic-case): Extend test.
* checkdoc: Improve wide line warning to decrease false positivesStefan Kangas2021-09-241-6/+14
| | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Respect 'byte-compile-docstring-max-column' if it is set. Allow the first line to be three characters longer than the others to account for indentation and the opening string character.
* Use command substitution instead of raw keys in more placesStefan Kangas2021-09-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | * admin/authors.el (authors): * lisp/abbrev.el (abbrev-suggest-show-report): * lisp/calc/calc.el (calc-display-trail, calc): * lisp/completion.el (completion-locate-db-error): * lisp/dired-x.el (dired-extra-startup): * lisp/emacs-lisp/package.el (package-install-selected-packages): * lisp/emulation/viper.el (viper-mode): * lisp/facemenu.el (list-colors-display): * lisp/mail/emacsbug.el (report-emacs-bug-hook): * lisp/mail/sendmail.el (mail): * lisp/menu-bar.el (menu-bar-mode): * lisp/org/org.el (org-revert-all-org-buffers): * lisp/progmodes/antlr-mode.el (antlr-help-rules-intro) (antlr-insert-makefile-rules): * lisp/progmodes/gdb-mi.el (gdb--check-interpreter): * lisp/progmodes/xscheme.el (xscheme-process-sentinel): * lisp/ps-print.el (ps-font-info-database): * lisp/recentf.el (recentf-edit-list, recentf-open-files): * lisp/vc/ediff-util.el (ediff-suspend): * lisp/vc/pcvs.el (cvs-mode): * lisp/vc/vc-bzr.el (vc-bzr-dir-extra-headers): Use command substitution.
* Prefer seq-random-elt to nth+randomStefan Kangas2021-09-241-0/+1
| | | | | | | | | | | | | | | | | * lisp/emacs-lisp/seq.el (seq-random-elt): Autoload. * lisp/avoid.el (mouse-avoidance-random-shape): * lisp/epa-ks.el (epa-ks--query-url): * lisp/erc/erc-networks.el (erc-server-select): * lisp/gnus/gnus-fun.el (gnus--random-face-with-type) (gnus-fun-ppm-change-string): * lisp/net/soap-inspect.el (soap-sample-value-for-xs-simple-type): * lisp/obsolete/landmark.el (landmark-random-move): * lisp/play/mpuz.el (mpuz-build-random-perm): * lisp/play/zone.el (zone-pgm-stress): * lisp/vc/add-log.el (add-change-log-entry): * test/lisp/net/tramp-tests.el (tramp-test44-asynchronous-requests): Prefer seq-random-elt to nth+random.