1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-19 12:30:47 -07:00
Commit graph

150415 commits

Author SHA1 Message Date
Lars Ingebrigtsen
44dbc11ff7 Note that the Packaging sub-nodes are mostly for maintainers
* doc/lispref/package.texi (Packaging): Note that the information
is mostly for ELPA maintainers (bug#50825).
2021-09-27 06:12:53 +02:00
dickmao
cc3b11480c Get a package-test-signed to work again
The test signing key succumbed to either expiration or bitrot.
I hope I didn't just publish my secret key to the world.

* test/lisp/emacs-lisp/package-resources/key.pub: Refresh.
* test/lisp/emacs-lisp/package-resources/key.sec: Refresh.
2021-09-27 06:00:46 +02:00
Lars Ingebrigtsen
d31e56046b Move test-cl-flet-indentation to the right file 2021-09-27 05:57:04 +02:00
Lars Ingebrigtsen
07ecd81ddd Improve describe-char buffer extremely slightly
* lisp/descr-text.el (describe-char): Add a colon to further
signify that we're talking about the following line (bug#50795).
2021-09-27 04:21:00 +02:00
João Távora
58055b5fc3 Document shorthands in the Elisp manual section on Symbols
* doc/lispref/symbols.texi (Symbol Components): Mentione "Shorthands".
(Creating Symbols): Mention shorthands.  Correct references to Common
Lisp.
(Shorthands): New section.

* etc/NEWS (Shorthands): New entry.
2021-09-27 01:07:11 +01:00
João Távora
66f3087530 Add #_ reader macro to escape shorthand renaming
* src/lread.c (read1): Add skip_shorthand variable.  Add a '#_'
case.  If skip_shorthand call oblookup instead of
oblookup_considering_shorthand.

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-escape): New test.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el
(#_f-test4---): New fixture function.
2021-09-27 01:07:11 +01:00
João Távora
90cbf0cb8d Consider shorthands in Elisp's elisp-completion-at-point
Instead of referencing obarray directly, that function has to consider
a collection of completions which includes the shorthand versions of
some of the symbols.  That collection changes from buffer to buffer,
depending on the choice of elisp-shorthands.

To make this process efficient, and avoid needless recalculation of
the above collection, a new obarray-specific cache was invented.  The
Elisp variable obarray-cache is immediately nullified if something
touches the obarray.

* lisp/progmodes/elisp-mode.el : New helper.
(elisp-completion-at-point): Use new helpers.
(elisp--completion-local-symbols)
(elisp--fboundp-considering-shorthands)
(elisp--bboundp-considering-shorthands): New helpers

* src/lread.c (intern_driver): Nullify Qobarray_cache.
(syms_of_lread): Add Qobarray_cache.

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-completion-at-point): New test.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el
(f-test-complete-me): New fixture.
2021-09-27 01:07:11 +01:00
João Távora
68d73eb154 Rework Elisp shorthands to only allow only prefix substitution
This simplification in requirements makes for more complex C code but
that code is much less wasteful in Lisp strings than the previous
implementation.

* src/lread.c (read1): Rework.
(Fintern): Rework.
(Fintern_soft): Rework.
(Funintern): Rework.
(oblookup_considering_shorthand): Rewrite.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string): Use new format of
elisp-shorthands.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test)
(f-test2, f-test3): Use new form of elisp-shorthands.
2021-09-27 01:07:11 +01:00
João Távora
71857d4106 Move most of the shorthand implementation to C code
It passes the tests designed for the previous Elisp implementation.

Likely, this isn't the final form of the implementation.  For one, the
reader is much slower and allocates a Lisp string for every atom read,
regardless if its already interned or not.  This has the potential to
be catastrophic in terms of GC.

Also rename the main variable to elisp-shorthands, from the
repetitive shorthand-shorthands.

For some reason, I had to put 'hack-elisp-shorthands' and
'load-with-shorthands-and-code-conversion', the new source-file
loading functions, in lisp/international/mule.el.

Otherwise, lisp/loadup.el wouldn't see them, for some reason that I
didn't investigate.  This should probably be fixed.

* lisp/shorthand.el: Remove.

* test/lisp/shorthand-tests.el: Remove.

* src/lread.c:
(read1, Fintern, Fintern_soft, Funintern): Use
oblookup_considering_shorthand.
(oblookup_considering_shorthand): New helper.
(syms_of_lread): Declare elisp-shorthands.

* lisp/progmodes/elisp-mode.el (elisp-shorthands):
Put a safe-local-variable spec.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string)
(elisp-shorthand-byte-compile-a-file)
(elisp-shorthand-load-a-file): New tests.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file

* lisp/loadup.el (load-source-file-function): Set to
load-with-shorthands-and-code-conversion.

* lisp/international/mule.el (hack-elisp-shorthands): Move here.
(load-with-shorthands-and-code-conversion): And here.
2021-09-27 01:07:11 +01:00
João Távora
6237bad419 First Elisp version of lisp/shorthand.el, failing some tests
* lisp/shorthand.el: New file

* test/lisp/shorthand-tests.el: New file
2021-09-27 01:07:11 +01:00
Stefan Kangas
4a43b49885 Add 'doc-string' declaration to defcalcmodevar
* lisp/calc/calc.el (defcalcmodevar): Add 'doc-string' declaration.
2021-09-26 20:59:39 +02:00
Stefan Kangas
c00785cbab Move two incorrectly named test files
* test/lisp/emacs-lisp/tabulated-list-test.el: Move from here...
* test/lisp/emacs-lisp/tabulated-list-tests.el: ...to here.
* test/lisp/url/url-handlers-test.el: Move from here...
* test/lisp/url/url-handlers-tests.el: ...to here.
2021-09-26 20:45:07 +02:00
Stefan Kangas
77494628e2 checkdoc: Don't add "Commentary" header to test files
* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine):
Don't add "Commentary:" header if it looks like a test file.
2021-09-26 20:23:59 +02:00
Robert Pluim
950831c369 Add glyphless-char-display-control for Variation Selectors
* lisp/international/characters.el (update-glyphless-char-display):
(glyphless-char-display-control): Add control knob for U+FE00 through
U+FE0F, defaulting to 'thin-space'.
* doc/lispref/display.texi (Glyphless Chars): Document it.
2021-09-26 18:54:49 +02:00
Stefan Kangas
dd60f94747 Explicitly make the rest of erc-compat.el obsolete
* lisp/obsolete/erc-compat.el (erc-decode-coding-string)
(erc-encode-coding-string, erc-set-write-file-functions)
(erc-emacs-build-time, erc-replace-match-subexpression-in-string)
(erc-member-if, erc-delete-if, erc-remove-if-not, erc-subseq):
Explicitly declare obsolete.
(erc-define-minor-mode): Make into obsolete function alias for
'define-minor-mode'.
(erc-user-emacs-directory): Make into obsolete variable alias for
'user-emacs-directory'.
2021-09-26 18:16:14 +02:00
Stefan Kangas
8bb28e740d ; Minor stylistic checkdoc fixes in test/**/*.el 2021-09-26 17:53:23 +02:00
Stephen Gildea
4cc4344943 ; Clarify and simplify time-stamp comments
* lisp/time-stamp.el (time-stamp-end, time-stamp-string-preprocess,
time-stamp-formatz-from-parsed-options): Simplify doc.
* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern):
Refactor to set limit-number only once.
2021-09-26 08:23:29 -07:00
Eli Zaretskii
5b44e0511a ; Fix some recent fixes to doc strings
* lisp/whitespace.el (whitespace-empty-at-bob-regexp):
* lisp/vc/vc-dir.el (vc-dir-child-files-and-states):
* lisp/vc/vc-annotate.el
(vc-annotate-show-changeset-diff-revision-at-line):
* lisp/vc/ediff.el (ediff-merge-with-ancestor-command):
* lisp/gnus/nnvirtual.el (nnvirtual-update-xref-header)
(nnvirtual-map-article):
* lisp/emulation/viper-init.el (viper-ESC-keyseq-timeout):
* lisp/emulation/viper-cmd.el
(viper-set-parsing-style-toggling-macro):
* lisp/cedet/data-debug.el (data-debug-insert-hash-table-button):
"The first line of a doc string must be a complete sentence."
Also, fix some awkward wording in doc strings while at that.
2021-09-26 16:50:11 +03:00
Stefan Kangas
b8b1d8dee7 Add fast-path to ert--explain-string-equal
* 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>.
2021-09-26 15:30:40 +02:00
Michael Albinus
94af99b298 * test/infra/gitlab-ci.yml (variables): Set DOCKER_BUILDKIT. 2021-09-26 15:28:17 +02:00
Stefan Kangas
3bab1476f6 Rename "Homepage" field to "Website" in package description
* 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.
2021-09-26 14:55:19 +02:00
Stefan Kangas
8ea1765fea Prefer https for other domains than gnu.org in package URL
* lisp/emacs-lisp/package.el (describe-package-1): Prefer https for
some other common domains in the package URL.
2021-09-26 14:55:19 +02:00
Stefan Kangas
a0d5de4fb9 Add test for lm-website
* lisp/emacs-lisp/lisp-mnt.el (lm-website): Use rx.
* test/lisp/emacs-lisp/lisp-mnt-tests.el
(lm--tests-lm-website): New test.
2021-09-26 14:55:19 +02:00
Mattias Engdegård
6e1de14e51 Rx documentation touch-ups (bug#46910)
* doc/lispref/searching.texi (Rx Constructs, Rx Functions):
Add clarifications and improve naming of arguments.  Add examples
illustrating the differences between `rx` and `rx-to-string`.
2021-09-26 14:44:06 +02:00
Stefan Kangas
c51b1c02db Warn about overly long docstring in lambda
* 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.
2021-09-26 13:33:29 +02:00
Stefan Kangas
89bac05aaa Avoid warning about long docstring lines in defcustom
* lisp/custom.el (defcustom): Avoid warning about long docstring
lines.  This was caused by the value of the defcustom being treated as
docstring due to it being wrapped in a lambda.
2021-09-26 13:23:57 +02:00
Stefan Kangas
8c3ec4e3cc Fill some auto-generated docstring lines
* 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.
2021-09-26 13:23:57 +02:00
Stefan Kangas
f3a6fe2c7d Avoid false positives in bytecomp docstring width warning
* 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.
2021-09-26 13:23:57 +02:00
Stefan Kangas
44da8dd3e4 Improve filling of generated docstring lines
* lisp/subr.el (internal--fill-string-single-line): Improve filling to
use full width.  Fix bug where line was not wrapped correctly.
2021-09-26 13:23:57 +02:00
Stefan Kangas
c78e16962e ; Adjust overly long docstrings to fit 80 characters 2021-09-26 13:23:57 +02:00
Stefan Kangas
f4ea15907a ert: Add basic explainer for string-equal
* lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add basic
explainer for 'string-equal' based on 'ert--explain-equal'.
2021-09-26 13:21:53 +02:00
Stefan Kangas
ce6cee4ca3 Unbreak ert tests
* test/lisp/emacs-lisp/tabulated-list-test.el (tabulated-list-print)
(tabulated-list-sort): Update tests for recent change.
2021-09-26 13:21:53 +02:00
Michael Albinus
2cd2fc74e4 ; More instrumentation in autorevert-tests.el 2021-09-26 12:40:55 +02:00
Stefan Kangas
68994995db Doc fix: mode name in local variables needs no suffix
* doc/emacs/custom.texi (Specifying File Variables): Clarify that a
mode name does not need the "-mode" suffix.  (Bug#50801)
2021-09-26 11:37:29 +02:00
Stefan Kangas
90948eb9d7 checkdoc: Library footer must match package.el requirement
* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine):
Don't accept footer format unless it matches the requirement in
package.el.
2021-09-26 11:37:29 +02:00
Eli Zaretskii
cd0817a0f7 ; Improve documentation of 'with-environment-variables'
* lisp/env.el (with-environment-variables):
* doc/lispref/os.texi (System Environment): Improve the
documentation of 'with-environment-variables'.
2021-09-26 12:11:56 +03:00
Michael Albinus
27d8726ae2 Adapt Tramp's make-process for macOS.
* lisp/net/tramp-sh.el (tramp-check-remote-uname): New defun.
(tramp-sh-handle-file-ownership-preserved-p)
(tramp-sh-handle-make-process, tramp-find-executable)
(tramp-find-shell, tramp-get-remote-stat): Use it.  (Bug#50748)

* test/lisp/net/tramp-tests.el (tramp-check-remote-uname): Declare.
(tramp-test29-start-file-process, tramp-test30-make-process):
Instrument for macOS.
(tramp--test-hpux-p): Adapt function.
(tramp--test-macos-p): New defun.
2021-09-26 10:32:15 +02:00
Lars Ingebrigtsen
50798267f2 Expand the ` doc string slightly
* lisp/emacs-lisp/backquote.el (backquote): Note that ` is used
for other things in some macros (bug#25462).
2021-09-26 08:47:08 +02:00
Lars Ingebrigtsen
2a2c75d349 Fix rendering non-ASCII text with links
* lisp/gnus/mm-view.el (mm-text-html-renderer-alist): Add a new
form for links.
(mm-links-remove-leading-blank): Make obsolete.
(mm-inline-wash-with-file):
(mm-inline-render-with-file): Make obsolete -- they were awkwardly
defined and only used with links.
(mm-inline-render-with-links): New function.
2021-09-26 08:29:38 +02:00
Lars Ingebrigtsen
7cb2944043 Add new macro with-environment-variables
* doc/lispref/os.texi (System Environment): Document it.

* lisp/env.el (with-environment-variables): New macro.
2021-09-26 08:27:51 +02:00
Stefan Kangas
43ae8c828d Revert "; Fix capitalization of F1..F12 keys in docs"
This reverts commit fe5b20410f.

This change was not correct; these are Lisp symbols that should be in
lower-case.  Problem reported by Mattias Engdegård <mattiase@acm.org>.
2021-09-25 22:50:09 +02:00
Stefan Kangas
c92444b4ba ; Bump seq version to 2.23 2021-09-25 21:44:55 +02:00
Stefan Kangas
822625fde5 Revert part of previous doc fix
* lisp/emacs-lisp/derived.el (define-derived-mode): Revert part of
previous doc fix.  This change made the text confusing.  (Bug#17567)
2021-09-25 21:27:11 +02:00
Juri Linkov
a1a63bb794 * lisp/tab-bar.el (tab-bar-new-tab-to): Use ignore-window-parameters.
Suggested by Adam Porter <adam@alphapapa.net> in
https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01758.html
2021-09-25 22:24:48 +03:00
Adam Porter
fcca1db9fd * lisp/tab-line.el: Add modified-buffer face
(tab-line-tab-modified): New face.
(tab-line-tab-face-modified): New function.
(tab-line-tab-face-functions): Use new function.

* etc/NEWS: Update.
2021-09-25 22:18:11 +03:00
Stefan Kangas
fe5b20410f ; Fix capitalization of F1..F12 keys in docs
* doc/emacs/custom.texi (Function Keys):
* doc/misc/edt.texi (Unix):
* doc/misc/idlwave.texi (Custom Expression Examination):
* doc/misc/viper.texi (Improved Search, Vi Macros): Fix
capitalization of F1..F12 keys.
2021-09-25 20:51:13 +02:00
Mattias Engdegård
e6656df591 ; * lisp/wid-edit.el (natnum): rectify tag string 2021-09-25 20:27:28 +02:00
Mattias Engdegård
45c32d7f00 Fix byte-compiler crash for legal dynamic-binding code
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.
2021-09-25 20:25:02 +02:00
Mattias Engdegård
e93bdfb6da ; * doc/emacs/help.texi (Misc Help): @key{f1} -> @key{F1} 2021-09-25 20:25:02 +02:00
Mattias Engdegård
8d0ee5e7a9 Constant-propagate variables bound outside loops
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.
2021-09-25 20:25:02 +02:00