Commit Graph

169584 Commits

Author SHA1 Message Date
Andrea Corallo
5d171d26c0 comp: Don't load.el comp when C-h f
* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers)
(comp-function-type-spec): Move here.
2023-11-09 12:34:26 +01:00
Andrea Corallo
c559f4e368 comp: Add comp-common.el
* lisp/emacs-lisp/comp-common.el: New file.
(comp-common): New group.
(native-comp-verbose, native-comp-never-optimize-functions)
(native-comp-async-env-modifier-form, comp-limple-calls)
(comp-limple-sets, comp-limple-assignments)
(comp-limple-branches, comp-limple-ops)
(comp-limple-lock-keywords, comp-log-buffer-name, comp-log)
(native-comp-limple-mode, comp-log-to-buffer)
(comp-ensure-native-compiler, comp-trampoline-filename)
(comp-eln-load-path-eff): Move here
* lisp/emacs-lisp/comp-run.el (comp-common): Require.
* lisp/emacs-lisp/comp.el (comp-common): Require.
* admin/MAINTAINERS: Add comp-common.el
* lisp/Makefile.in (COMPILE_FIRST): Likewise.
* src/Makefile.in (elnlisp): Likewise.
2023-11-09 12:34:26 +01:00
Andrea Corallo
b2416d2c02 Don't load comp when installing an existing trampoline
* lisp/emacs-lisp/nadvice.el (advice--add-function): Update.
	(comp-subr-trampoline-install): Update src file.
	* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Autoload.
	* lisp/emacs-lisp/comp-run.el (comp-log-buffer-name)
	(native--compile-async, comp-warn-primitives)
	(comp-trampoline-filename, comp-eln-load-path-eff)
	(comp-trampoline-search, comp-trampoline-compile): Move here.
	* lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Update
	src file.
2023-11-09 12:34:26 +01:00
Andrea Corallo
93cc43a23c comp: don't require 'warnings' in comp-run
* lisp/emacs-lisp/comp-run.el (warnings): Don't require.
(warning-suppress-types): Wave warning.
* lisp/emacs-lisp/warnings.el (warning-suppress-types): Autoload it.
2023-11-09 12:34:26 +01:00
Andrea Corallo
4bb1863567 comp: make comp-run don't require cl-lib at runtime
* lisp/emacs-lisp/comp-run.el (cl-lib): Require it only at compile
time.
(native-compile-async-skip-p): Use 'seq-some'.
(native--compile-async): Don't use 'cl-substitute'.
2023-11-09 12:34:22 +01:00
Andrea Corallo
e6a955d242 comp: split code in comp-run.el
* lisp/emacs-lisp/comp-run.el : New file.
(comp-run)
(native-comp-jit-compilation-deny-list)
(native-comp-async-jobs-number)
(native-comp-async-report-warnings-errors)
(native-comp-always-compile)
(native-comp-async-cu-done-functions)
(native-comp-async-all-done-hook)
(native-comp-async-env-modifier-form)
(native-comp-async-query-on-exit, native-comp-verbose)
(comp-log-buffer-name, comp-async-buffer-name, comp-no-spawn)
(comp-async-compilations, native-comp-limple-mode)
(comp-ensure-native-compiler, native-compile-async-skip-p)
(comp-files-queue, comp-async-compilations, comp-async-runnings)
(comp-num-cpus, comp-effective-async-max-jobs)
(comp-last-scanned-async-output)
(comp-accept-and-process-async-output, comp-valid-source-re)
(comp-run-async-workers, native--compile-async)
(native-compile-async): Move these definitions here.
* lisp/Makefile.in (COMPILE_FIRST): Update.
* src/Makefile.in (elnlisp): Likewise.
* admin/MAINTAINERS: Likewise.
2023-11-09 11:06:06 +01:00
Eshel Yaron
5416896d60 Promptly disable 'completion-in-region-mode' (bug#67001)
Avoid keeping 'completion-in-region-mode' on when exiting
'completion--in-region-1' if the *Completions* buffer isn't shown.
Otherwise, the bindings from 'completion-in-region-mode-map' linger,
notable shadowing other bindings for TAB.

* lisp/minibuffer.el (completion--in-region-1): Disable
'completion-in-region-mode' if the *Completions* buffer isn't visible.
2023-11-09 09:40:54 +02:00
Juri Linkov
1cb738a482 * lisp/progmodes/elisp-mode.el (elisp--local-variables): Remove `debug'.
Remove symbol `debug' from the condition-case handler of `error'
that was added in commit f931cebce7
since it interferes on completing in an incomplete elisp form (bug#66979).
2023-11-09 09:35:23 +02:00
Po Lu
21f3670526 Guarantee files are auto-saved when Emacs is terminated by Android
* java/org/gnu/emacs/EmacsNative.java (shutDownEmacs):

* java/org/gnu/emacs/EmacsService.java (onDestroy): New
function.  When invoked, call shut_down_emacs and await its
completion.

* src/android.c (android_shut_down_emacs, shutDownEmacs): New
functions.
2023-11-09 10:12:24 +08:00
Alan Mackenzie
06e4ebc81a With `native-compile', compile lambdas in a defun or lambda too
This fixes bug#64646.  Also refactor two functions to reduce
code duplication.

* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol)
(comp-spill-lap-function/list): Add all functions found by the
byte compiler (including lambdas) to the native compiler's
context, thus making them be native compiled.  Refactor to use
comp-intern-func-in-ctxt.  Make comp-spill-lap-function/list
also compile closures.

* test/src/comp-resources/comp-test-funcs.el
(comp-tests-lambda-return-f2): New function

* test/src/comp-tests.el (comp-test-lambda-return2)
(comp-tests-free-fun-f2): New functions to test that internal
lambdas get native compiled.
2023-11-08 20:49:48 +00:00
Philip Kaludercic
bf9cbc2354 Simplify 'project-remember-projects-under'
* lisp/progmodes/project.el (project-remember-projects-under): Instead
of traversing the directories manually, re-use
`directory-files-recursively' to reduce complexity.  (Bug#66649)
2023-11-08 08:57:40 +01:00
Juri Linkov
01912a0679 * lisp/minibuffer.el (minibuffer-choose-completion-or-exit): New command.
(minibuffer-visible-completions-map): Bind it to "RET".
https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00246.html
2023-11-08 09:38:35 +02:00
Po Lu
089b7d4e62 Don't leave point amid text conversion edits if auto-fill transpires
* lisp/simple.el (analyze-text-conversion): Save point in
old-point after auto-fill completes, so that point-moved is not
set if point remains intact subsequent to the execution of both
hooks.
2023-11-08 11:03:57 +08:00
João Távora
3ab99e977d Eglot: Demote errors to warnings in eglot-ensure
Github-reference: https://github.com/joaotavora/eglot/discussions/1318

* doc/misc/eglot.texi (Quick Start): Reword.
(Starting Eglot): Reword.

* lisp/progmodes/eglot.el (eglot-ensure): Demote errors to warnings.
2023-11-07 09:09:44 -06:00
Eli Zaretskii
361f9fe415 ; * lisp/minibuffer.el (completion-lazy-hilit-fn): Fix last change. 2023-11-07 16:31:40 +02:00
Eli Zaretskii
14f0b6331d ; Minor documentation fixes
* etc/NEWS:
* lisp/minibuffer.el (completion-lazy-hilit)
(completion-lazy-hilit-fn, completion-lazy-hilit): Fix recently
added documentation.
2023-11-07 16:29:06 +02:00
Juri Linkov
a1abb6a85e * lisp/simple.el (next-line-completion): Improve (bug#59486).
Handle the case when lines with completion candidates are
interspersed with lines that contain group headings.
2023-11-06 19:43:06 +02:00
João Távora
dfffb91a70 Allow completion frontends to fontify candidates just-in-time
bug#48841, bug#47711

The variable may be bound by the frontend to a non-nil around
completion-producing calls like completion-all-completions.  See
completion-lazy-hilit docstring for more info.

* lisp/icomplete.el (icomplete-minibuffer-setup): Set completion-lazy-hilit.
(icomplete--render-vertical): Call completion-lazy-hilit.
(icomplete-completions): Call completion-lazy-hilit.

* lisp/minibuffer.el (completion-lazy-hilit): New variable.
(completion-lazy-hilit): New function.
(completion-lazy-hilit-fn): New variable.
(completion-pcm--regexp)
(completion--flex-score-last-md): New helper variables.
(completion--flex-score-1): New helper.
(completion-pcm--hilit-commonality): Use completion-lazy-hilit.
(completion--flex-adjust-metadata): Rework sorting code.

* etc/NEWS: Mention completion-lazy-hilit
2023-11-06 10:13:02 -06:00
Mattias Engdegård
94807b6896 ; * lisp/emacs-lisp/cl-macs.el: Axe useless gethash inline decl 2023-11-06 12:10:02 +01:00
Stefan Kangas
bf81706988 Silence warning when requiring ruby-ts-mode
* lisp/progmodes/ruby-ts-mode.el: Silence warning when requiring
file without a treesitter grammar.
2023-11-06 08:52:22 +01:00
Juri Linkov
b528495946 * lisp/vc/vc-git.el (vc-git-revision-table): Reverse the table (bug#64656). 2023-11-06 09:27:48 +02:00
Po Lu
de380adb64 Emulate secondary selections on Android
* doc/lispref/frames.texi (Other Selections): Revise
documentation to match.

* lisp/term/android-win.el (android-secondary-selection): New
variable.
(android-primary-selection, android-get-clipboard-1)
(android-get-primary, gui-backend-get-selection)
(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
(gui-backend-set-selection): Update doc strings and code as is
proper.
2023-11-06 10:14:09 +08:00
Jeremy Bryant
3dd9750d12 * lisp/emacs-lisp/cl-extra.el (cl-remprop): Update names to match docstring 2023-11-05 18:28:50 -05:00
Juri Linkov
f0c0ff6bf2 New option to use arrows in the minibuffer to select completions (bug#59486)
* lisp/minibuffer.el (minibuffer-visible-completions): New defcustom.
(minibuffer-visible-completions-bind): New function.
(minibuffer-visible-completions-map): New defvar-keymap.
(minibuffer-mode): Set buffer-local minibuffer-completion-auto-choose
to nil for minibuffer-visible-completions.
(completing-read-default, completion-in-region-mode):
Use minibuffer-visible-completions to compose keymap
with minibuffer-visible-completions-map.
(minibuffer-next-completion): Add new arg VERTICAL,
and use next-line-completion.
(minibuffer-next-line-completion)
(minibuffer-previous-line-completion): New commands.
2023-11-05 19:52:33 +02:00
Stefan Kangas
ad82bc9b29 Declare calc-eval-error in calc.el
* lisp/calc/calc.el (calc-eval-error): Declare.  (Bug#58801)
2023-11-05 17:36:21 +01:00
Stephen Gildea
b819b8d6e9 Further improve test coverage of time-stamp-pattern parsing
* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern): Use test
strings that are easier to mis-parse, for a more exacting test.

* (fz-make+zone, fz-make-zone): Declare pure.
2023-11-04 21:46:27 -07:00
Po Lu
c6c5bba06f Implement more Android text editing controls
* lisp/term/android-win.el (android-deactivate-mark-command):
New command.
(select-all, start-selecting-text, stop-selecting-text): Arrange
for commands manipulating the region to be executed when these
keys are registered.

* src/android.c (android_get_keysym_name): Return the keysym
name of each of the new keysyms introduced.

* src/androidterm.c (performContextMenuAction): Save special
keysyms into key events for the selectAll, startSelectingText
and stopSelectingText actions.
2023-11-05 10:42:01 +08:00
Dmitry Gutov
41e801fea1 Add project-any-command and project-prefix-or-any-command
* lisp/progmodes/project.el (project-any-command): New command.
(project-prefix-map): Bind it to 'o'.
(project-switch-commands): Add entry for it here too.
(project-prefix-or-any-command): New command (bug#63648).
(project-switch-commands): Update the custom type to mention
'project-prefix-or-any-command' as well.
* etc/NEWS: Document the change.
2023-11-05 02:41:53 +02:00
F. Jason Park
f99a0dae7c Align date stamps to whole days in ERC
* lisp/erc/erc-stamp.el (erc-stamp--current-time): Ditch overriding
precedence of the `erc--ts' property in `:around' method because the
variable `erc-stamp--current-time' fills that role well enough.
(erc-stamp--current-datestamp-left): Remove unused variable.
(erc-stamp--insert-date-stamp-as-phony-message): Assume
`erc-timestamp-last-inserted-left' has already been assigned the
updated rendered stamp for the current time.
(erc-stamp--lr-date-on-pre-modify): Use the variable
`erc-stamp--current-time' instead of the `erc-ts' property to convey
an overriding time value for `erc-add-timestamp'.  Set
`erc-timestamp-last-inserted-left' instead of fiddling with another
temporary variable to hack around these ill-fitting interfaces.  Use
day-aligned time value for the `erc-ts' property assigned to date
stamps.
(erc-stamp--date-mode): New internal minor mode.
(erc-insert-timestamp-left-and-right): Defer to `erc-stamp--date-mode'
for setting up date-stamp specific hooks.
(erc-stamp--time-as-day): New function to "round" a date stamp to
start of local day.
(erc-stamp--setup): Defer to `erc-stamp--date-mode' for date-stamp
specific teardown.  (Bug#60936)
* test/lisp/erc/erc-fill-tests.el
(erc-fill-tests--current-time-value): Change default value to nil.
(erc-stamp--current-time): New method for test cases.
(erc-fill-tests--insert-privmsg): Use realistic value for `unparsed'
slot.
(erc-fill-tests--wrap-populate): Bind
`erc-fill-tests--current-time-value' to 0.  Don't mock the function
`erc-stamp--current-time' because doing so inhibits normal polymorphic
dispatch, which test cases rely on for delivering correct timestamp
values in varied contexts.
; * test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update.
; * test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update.
; * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
2023-11-04 15:41:55 -07:00
F. Jason Park
4c85108576 Decouple disparate escape-hatch concerns in erc-stamp
* lisp/erc/erc-stamp.el (erc-stamp--allow-unmanaged): Improve doc
string.
(erc-stamp--permanent-cursor-sensor-functions): New variable to take
over the formerly provided `cursor-sensor-functions' aspect of the
flag `erc-stamp--allow-unmanaged'.
(erc-add-timestamp): Use
`erc-stamp--permanent-cursor-sensor-functions' instead of
`erc-stamp--allow-unmanaged' in guard condition.
(erc-munge-invisibility-spec): Use dedicated compatibility flag
`erc-stamp--permanent-cursor-sensor-functions' and forgo unnecessary
setup when it's non-nil.  (Bug#60936)
2023-11-04 15:41:14 -07:00
F. Jason Park
781f950eda Preserve user markers when inserting ERC date stamps
* lisp/erc/erc-stamp.el
(erc-stamp--insert-date-stamp-as-phony-message): Ensure existing
user markers aren't displaced by date-stamp insertion.
* lisp/erc/erc.el (erc--insert-line-function): New function-valued
variable for overriding `insert'.
(erc-insert-line): Call `erc--insert-line-function', when non-nil, to
insert line specially.
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--on-insert-modify): New assertion helper
function.
(erc-scenarios-stamp--date-mode/left-and-right): New test.
(Bug#60936)
2023-11-04 15:36:24 -07:00
F. Jason Park
f7c7f7ac20 Don't over-truncate erc-timestamp-format-left
* lisp/erc/erc-stamp.el (erc-timestamp-format-left): Fix typo in doc
string and mention that changing the value mid-session requires
cycling the minor mode.
(erc-echo-timestamp-format): Add Custom :tag for choices.
(erc-stamp--date-format-end): Revise doc string.
(erc-stamp--format-date-stamp): Fix bug involving erroneous truncation
parameter for `substring' when `erc-timestamp-format-left' doesn't end
in a newline.  Thanks to Emanuel Berg for catching this.
(erc-stamp-prepend-date-stamps-p) Revise doc string.
(erc-insert-timestamp-left-and-right): Add comment regarding
compatibility concession.  (Bug#60936)
2023-11-04 15:36:24 -07:00
F. Jason Park
fb578ddfb2 Really fix off-by-one in erc--get-inserted-msg-bounds
* lisp/erc/erc.el (erc--get-inserted-msg-bounds): Account for
`previous-single-property-change' returning a position adjacent to
that with an actual changed value.  The prior attempt at addressing
this was insufficient.
* test/lisp/erc/erc-tests.el (erc--get-inserted-msg-bounds): New test.
; * test/lisp/erc/resources/base/local-modules/second.eld: Timeout.
; * test/lisp/erc/resources/base/local-modules/third.eld: Timeout.
2023-11-04 15:36:24 -07:00
Eli Zaretskii
0b5e2ce761 ; Fix last change in the FAQ
* doc/misc/efaq.texi (Start Emacs maximized, Common requests): Fix
last change.
2023-11-04 17:29:24 +02:00
Stefan Kangas
0e59541fa2 Make FAQ on starting Emacs maximized portable
* doc/misc/efaq.texi (Start Emacs Maximized): Rename node from
"Fullscreen mode on MS-Windows".  Make advice portable to other
platforms, and remove MS-Windows specific hacks.
Ref: https://lists.gnu.org/r/emacs-devel/2023-10/msg00733.html

Co-authored-by: David Hedlund <public@beloved.name>
2023-11-04 14:56:36 +01:00
Eli Zaretskii
3a17780b87 ; Improve commentary in 'files-tests-save-buffer-read-only-file'. 2023-11-04 15:02:07 +02:00
Jens Schmidt
ac59e30273 Add tests for saving to write-protected files
* test/lisp/files-tests.el (files-tests--with-yes-or-no-p): Add macro.
(files-tests-save-buffer-read-only-file): Add test for writing to
write-protected files with `save-buffer'.  (Bug#66546)
2023-11-04 14:57:21 +02:00
Visuwesh
2ba3ce27eb ; Update eww-suggest-uris :version.
* lisp/net/eww.el (eww-suggest-uris): Bump it to 30.1 since it was
changed.  (Bug#66926)
2023-11-04 11:48:01 +01:00
Mattias Engdegård
5ab5dfd64c Fix bytecomp-tests--dest-mountpoint test failure
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--dest-mountpoint): Add lexical cookie.

Bug reported and fix suggested by Jens Schmidt
(https://lists.gnu.org/archive/html/emacs-devel/2023-10/msg00719.html)
2023-11-04 10:30:41 +01:00
Eli Zaretskii
7ad9891e94 ; Merge from origin/emacs-29
The following commit was skipped:

33fae4b02d Suggest alternative reason for ERT test duplication error
2023-11-04 05:21:39 -04:00
Eli Zaretskii
050086931a Merge from origin/emacs-29
196def4fa6 Fix description of 'Package-Requires' library header
c177843279 ; * doc/misc/tramp.texi (FUSE setup): Fix typo.
a64336cbb9 * lisp/emacs-lisp/cl-lib.el (cl--defalias): Improve&fix d...
da8b85b577 Add two docstrings in cl-lib.el
2023-11-04 05:21:39 -04:00
Eli Zaretskii
a201b334be ; Merge from origin/emacs-29
The following commits were skipped:

4193912745 Fix Tramp (don't merge)
c22eeba827 ; Fix typo
4f57af7fcc * doc/misc/tramp.texi (Traces and Profiles): Fix indentat...
ccaf801baa * doc/misc/tramp.texi (Traces and Profiles): Fix indentat...
2023-11-04 05:21:38 -04:00
Eli Zaretskii
5de5b7b418 Merge from origin/emacs-29
d5e5ea4e36 Fix guessing commands for zstandard archives in Dired
90db29aff8 Fix eglot.texi (JSONRPC objects in Elisp) example
5ef48ad6a3 ; Fix one author's name.
c4e9a6159a * doc/man/emacsclient.1: Fix --tramp option.
6dca3a8eab Improve `nsm-protocol-check--3des-cipher` docstring
2023-11-04 05:21:38 -04:00
Eli Zaretskii
d8fcb9b711 ; Merge from origin/emacs-29
The following commits were skipped:

04215e616f Recognize backslash in `dns-mode` quoted values
6629e861b3 Make `dns-mode` fontify quoted values correctly
2023-11-04 05:21:38 -04:00
Mattias Engdegård
33fae4b02d Suggest alternative reason for ERT test duplication error
* lisp/emacs-lisp/ert.el (ert-set-test): Amend error message;
maybe the redefinition was caused by a file loaded twice.
(Bug#66782)

Suggested by Xiyue Deng.

(cherry picked from commit 425d23fbea)
2023-11-04 10:50:10 +02:00
Manuel Giraud
c0601fb534 Don't need text properties when sending a mail
* lisp/mail/smtpmail.el (smtpmail-send-data): Don't get text
properties when sending mail data.  (Bug#66880)
2023-11-04 10:41:38 +02:00
Manuel Giraud
ce4a62eece Fix desktop-save on remote dired (bug#66697)
Do not gather "misc data" for dired buffer not meant to be
desktop saved.

lisp/dired.el (dired-desktop-save-p): New function to test if
`dired-directory' should be desktop saved.
(dired-desktop-buffer-misc-data): Use it.
2023-11-04 10:03:33 +02:00
Eli Zaretskii
196def4fa6 Fix description of 'Package-Requires' library header
* doc/lispref/tips.texi (Library Headers): Update the description
of the 'Package-Requires' header.  (Bug#66677)
2023-11-04 09:59:45 +02:00
Eli Zaretskii
5ee66620fd Remove unnecessary assertion added 2 days ago
* src/xdisp.c (get_glyph_face_and_encoding): Remove unnecessary
assertion.  It triggers, for no good reason, when running the
recipe of bug#66922 and typing C-p in the *Warnings* buffer after
the recipe finishes, because the glyph passed to this function is
a STRETCH_GLYPH, not a CHAR_GLYPH.
2023-11-04 09:33:33 +02:00
Stephen Gildea
08fed99ae8 MH-E testing: find locally-installed GNU Mailutils libraries
* test/lisp/mh-e/test-all-mh-variants.sh: LD_LIBRARY_PATH is sometimes
necessary.  This reverts part of commit f1fcd321ff of 24 Nov 2021.
2023-11-03 15:24:21 -07:00