Commit graph

7174 commits

Author SHA1 Message Date
Stefan Kangas
3631355dcb New user option auto-save-visited-remote-files
* lisp/files.el (auto-save-visited-remote-files): New user option.
(auto-save-visited-mode): Use above new variable to decide whether
or not to save remote files.  (Bug#41333)
2022-07-05 14:51:21 +02:00
Stefan Kangas
ac7f76528f New user option auto-save-visited-mode-predicate
* lisp/files.el (auto-save-visited-mode-predicate): New defcustom.
(auto-save-visited-mode): Use above new variable as a predicate to
decide whether or not to save a buffer.
2022-07-05 14:05:43 +02:00
Daanturo
1ac383bcb6 Add file-parent-directory function
* doc/lispref/files.texi: Document the function.
* etc/NEWS: Add its entry.
* lisp/emacs-lisp/shortdoc.el: Add it to 'file-name' group.
* lisp/files.el: implementation (bug#56355).
2022-07-04 13:07:51 +02:00
Florian Rommel
bbca04fd9d Add support for fullscreen values fullheight and fullwidth on PGTK
* src/pgtkterm.c (window_state_event): Support values fullheight and
fullwidth for the fullscreen frame-parameter
* doc/lispref/frames.texi (Size Parameters): Document inability to
actively set hullheight/fullwidth for PGTK frames
* configure.ac: Bump GTK version for PGTK
* etc/NEWS: Change GTK version in PGTK announcement
2022-07-04 10:21:14 +08:00
Stefan Kangas
93cec6cf68 ; * etc/NEWS: Tag two items. 2022-07-03 14:37:33 +02:00
Stefan Kangas
831b5f3f14 Move dired-clean-up-buffers-too to dired.el
* lisp/dired-x.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): Move from here...
* lisp/dired.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): ...to
here.  (Bug#21981)
(dired-clean-up-after-deletion): Adjust documentation.
* etc/NEWS: Announce the change.
2022-07-03 14:37:33 +02:00
Lars Ingebrigtsen
b31680ef04 Add new function `seq-split'
* doc/lispref/sequences.texi (Sequence Functions): Document it.

* lisp/emacs-lisp/seq.el (seq-split): New function.

* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.
2022-07-03 12:55:00 +02:00
Stefan Kangas
e7da53a116 * lisp/dired.el (dired-do-eww): New command. 2022-07-03 11:44:04 +02:00
Eli Zaretskii
45badeceec Implement pseudo-value 'reset' of face attrributes
* doc/lispref/display.texi (Face Attributes):
* etc/NEWS: Document the new pseudo-value 'reset'.

* src/xfaces.c (realize_named_face, lookup_derived_face)
(gui_supports_face_attributes_p, lookup_named_face)
(Finternal_merge_in_global_face, merge_named_face, merge_faces):
Handle the 'reset' pseudo-value of a face's attribute.
(syms_of_xfaces): New symbol 'reset'.
(RESET_P): New macro.
(check_lface_attrs, Finternal_set_lisp_face_attribute): Allow
'reset' as a value of any attribute except ':inherit'.
(Bug#38771)
2022-07-03 12:30:24 +03:00
Lars Ingebrigtsen
6b2a9171b8 Fix some typos in NEWS 2022-07-02 19:45:27 +02:00
Manuel Giraud
a06fc4be13 Add more separators to longlines-mode
* lisp/obsolete/longlines.el (longlines-breakpoint-chars): New
custom to have multiple breakpoint chars.
(longlines-set-breakpoint): Add a target-column parameter and use
`longlines-breakpoint-chars'.
(longlines-find-break-backward, longlines-find-break-foreward):
Use `longlines-breakpoint-chars'.
(longlines-wrap-line): Do not insert space upon merging, just
remove the soft newline. Fix "space before tab" in indent.
(longlines-merge-lines-p): Use the new target-column parameter to
find out if the next line could be merged with the current one.
(longlines-encode-region): Do not replace a soft newline with a
space, just remove it.
* etc/NEWS: New user option 'longlines-breakpoint-chars'
2022-07-02 17:39:54 +02:00
Lars Ingebrigtsen
3ace37a387 Unobsolete longlines-mode (bug#18589) 2022-07-02 17:39:54 +02:00
Eli Zaretskii
1ee1d21c75 ; * etc/NEWS: Fix typo in recently-added entry. 2022-07-02 17:56:05 +03:00
Stefan Kangas
0bb6b2dd1e Move dired-info and dired-man from dired-x to dired
* lisp/dired-x.el (dired-bind-man, dired-bind-info): Change into
defvars and make obsolete.
(dired-extra-startup): Doc fix.
(dired-info, dired-man): Move from here...
* lisp/dired.el (dired-do-info, dired-do-man): ...to here and
rename.  (Bug#21981)

* lisp/dired.el (dired-mode-map): Bind 'I' and 'N' to 'dired-do-info'
and 'dired-do-man'.

* doc/misc/dired-x.texi (Miscellaneous Commands): Remove documentation
of 'dired-info' and 'dired-man'.
* doc/emacs/dired.texi (Dired Enter): Document 'dired-do-info' and
'dired-do-man'.
* etc/NEWS: Announce the above changes.
2022-07-02 16:43:29 +02:00
Gregory Heytings
e0488f89d1 Command for global adjustments to the default face
* lisp/face-remap.el (global-text-scale-adjust): New command.
(text-scale-adjust): Refer to the new related command.
(global-text-scale-adjust-resizes-frames): New user option.

* lisp/mwheel.el (mouse-wheel-scroll-amount): Add the new command
to the mouse wheel scrolling events.
(mouse-wheel-global-text-scale): New function.
(mouse-wheel-mode): Use the new function with mouse-wheel-mode.

* doc/emacs/display.texi (Text Scale): Document the new command and
the new user option.

* etc/NEWS: Mention the new command and its bindings, and the new
user option.
2022-07-02 15:40:45 +02:00
Lars Ingebrigtsen
05d240997a Add native-compile-prune-cache command
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
command (bug#48108).
2022-07-02 12:59:41 +02:00
Lele Gaifax
9dc0fdfdc1 Fix repeated "the"
* configure.ac (EMACS_CONFIG_FEATURES):
* etc/NEWS:
* lisp/dnd.el (dnd-begin-text-drag):
* src/pgtkfns.c (Fx_display_mm_height, Fx_display_mm_width):
(Fx_display_backing_store, Fx_display_visual_class):
* src/xterm.c: Fix repeated "the".  (Bug#56341)

Copyright-paperwork-exempt: yes
2022-07-02 10:04:32 +03:00
Po Lu
12e5171882 Document XDS stuff
* doc/emacs/frames.texi (Drag and Drop):
* doc/lispref/frames.texi (Drag and Drop): Add documentation
about XDS features.
* etc/NEWS: Tag entry.
2022-07-01 18:11:01 +08:00
Po Lu
ea5f5f81dd Support receiving XDS drops correctly
* etc/NEWS: Announce new feature.  It is not yet documented.
* lisp/x-dnd.el (x-dnd-known-types): Add XdndDirectSave0.
(x-dnd-direct-save-function): New defcustom.
(x-dnd-xdnd-to-action): Add `direct-save'.
(x-dnd-maybe-call-test-function): If XDS is present, use `direct-save'.
(x-dnd-find-type): New function.
(x-dnd-handle-xdnd): Handle XDS position and drop messages.
(x-dnd-handle-direct-save): Don't use local-file-uri if nil.
(x-dnd-save-direct): New function.
(x-dnd-handle-octet-stream-for-drop):
(x-dnd-handle-xds-drop): New functions.
2022-07-01 16:18:50 +08:00
Stefan Monnier
15b2138719 (syntax-wholeline-max): New var
Try and reduce the pain caused by font-lock and syntax-propertize's
wholeline-based operation in buffers made up of a few very long lines
(bug#45898).

* lisp/emacs-lisp/syntax.el (syntax-wholeline-max): New var.
(syntax--lbp): New function.
(syntax-propertize-wholelines): Use it.

* lisp/jit-lock.el (jit-lock--antiblink-post-command): Use `syntax--lbp`.

* lisp/font-lock.el (font-lock-extend-region-wholelines): Rewrite,
using `syntax-propertize-wholelines`.
2022-06-30 13:20:33 -04:00
Stefan Kangas
bf65073767 New hook save-place-after-find-file-hook
This is intended for use in Org mode, where we currently use advise.
* lisp/saveplace.el (save-place-after-find-file-hook): New hook.
(save-place-find-file-hook): Run new hook.
2022-06-30 14:07:15 +02:00
Lars Ingebrigtsen
80cf13a3d2 Make "eager macro-expansion" warning into an error
* doc/lispref/loading.texi (How Programs Do Loading): Update
documentation.

* lisp/emacs-lisp/macroexp.el:
(internal-macroexpand-for-load): We've been warning about eager
macro expansion for many years, so finally change that into an
error (bug#18154).
2022-06-30 13:18:15 +02:00
Lars Ingebrigtsen
a9ebd21304 Do NEWS tagging 2022-06-30 12:50:45 +02:00
Lars Ingebrigtsen
2f0ed2280e Add find-function-setup-keys bindings for find-library commands
* lisp/emacs-lisp/find-func.el (find-function-setup-keys): Add `L'
bindings for the find-library family of commands (bug#51240).
2022-06-30 12:49:40 +02:00
Lars Ingebrigtsen
7b9d755b81 Add new commands to elisp mode for eval/compilation
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Add new
keystrokes.
(elisp-eval-buffer, elisp-byte-compile-file)
(elisp-byte-compile-buffer): New commands.
2022-06-30 12:00:49 +02:00
Lars Ingebrigtsen
371c4f642a Add new commands to zoom emojis
* lisp/international/emoji.el (emoji-zoom-map)
(emoji-zoom-increase, emoji-zoom-decrease): New commands.

* lisp/international/mule-cmds.el (ctl-x-map): Bind them.
2022-06-30 10:47:44 +02:00
Po Lu
d07063f69f Implement starting X Direct Save (XDS) drops
* doc/lispref/frames.texi (Drag and Drop): Document new function
`dnd-direct-save'.
* etc/NEWS: Likewise.

* lisp/dnd.el (dnd-direct-save-remote-files): New defcustom.
(dnd-begin-file-drag): Implement defucstom.
(dnd-begin-drag-files): Add kill-emacs-hook after saving remote
file.
(dnd-direct-save): New function.
* lisp/x-dnd.el (x-dnd-known-types): Fix coding style.
(x-dnd-handle-drag-n-drop-event): Handle local value with
self-originating DND events.
(x-dnd-xds-current-file, x-dnd-xds-source-frame): New defvars.
(x-dnd-handle-direct-save, x-dnd-do-direct-save): New functions.

* src/xfns.c (Fx_begin_drag): Allow any atom to be used as a DND
action.
* src/xselect.c (symbol_to_x_atom): Make public.
* src/xterm.c (x_dnd_note_self_drop): Include selection local
value.
(x_ignore_errors_for_next_request): Don't assume x_error_message
is set.
* src/xterm.h: Update prototypes.
2022-06-29 20:14:41 +08:00
Eli Zaretskii
9151cc9386 ; Fix documentation of 'rename-visited-file'
* etc/NEWS: Move to proper place and mark as documented.

* doc/emacs/files.texi (Save Commands): Fix typo.
2022-06-28 15:37:55 +03:00
Zachary Kanfer
772b189143 Add new command `rename-visited-file'
* doc/emacs/files.texi (Save Commands): Document it.

* lisp/files.el (rename-visited-file): New command (bug#56229).
2022-06-28 14:15:47 +02:00
Lars Ingebrigtsen
513acdc9b4 Allow plist-get/plist-put/plist-member to take a comparison function
* doc/lispref/lists.texi (Plist Access): Document it.

* lisp/filesets.el (filesets-reset-fileset)
(filesets-ingroup-cache-get):
(filesets-ingroup-cache-put):
(filesets-build-menu-now): Don't use lax-plist functions.

* lisp/simple.el (lax-plist-put, lax-plist-get): Moved here from
fns.c and make obsolete.

* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Don't mark
plist functions as side-effect-free or pure.

* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Adjust type.

* lisp/emacs-lisp/shortdoc.el (list): Don't document deprecated
functions.

* src/xdisp.c (build_desired_tool_bar_string):
(display_mode_element):
(store_mode_line_string):
(display_string):
(produce_stretch_glyph):
(note_mode_line_or_margin_highlight):
(note_mouse_highlight):
* src/w32.c (serial_configure):
* src/sysdep.c (serial_configure):
* src/sound.c (parse_sound):
* src/process.c (Fset_process_buffer):
(Fset_process_sentinel):
(Fprocess_contact):
(Fmake_process):
(Fmake_pipe_process):
(Fset_network_process_option):
(Fserial_process_configure):
(Fmake_serial_process):
(set_network_socket_coding_system):
(finish_after_tls_connection):
(connect_network_socket):
(Fmake_network_process):
(server_accept_connection):
* src/lread.c (ADDPARAM):
(hash_table_from_plist):
* src/keyboard.c (make_lispy_position):
* src/indent.c (check_display_width):
* src/image.c (postprocess_image):
* src/gnutls.c (gnutls_verify_boot):
(Fgnutls_boot):
(gnutls_symmetric):
(Fgnutls_hash_mac):
(Fgnutls_hash_digest):
* src/dired.c (filter):
* src/data.c (add_to_function_history):
* src/coding.c (Fcoding_system_put): Adjust callers from
Fplist_put (etc) to plist_put.

* src/fns.c (plist_get):
(plist_put):
(plist_member): New functions (without optional third parameter)
to be used in C code.

* src/fns.c (Fplist_get, Fplist_put, Fplist_member): Take an
optional predicate parameter (bug#47425).

* src/lisp.h: Declare new plist_put, plist_get and plist_member
functions.

* test/lisp/json-tests.el (test-json-add-to-plist): Use plist-get.

* test/src/fns-tests.el (test-cycle-lax-plist-get):
(test-cycle-lax-plist-put):
(lax-plist-get/odd-number-of-elements):
(test-plist): Remove lax-plist tests, since semantics have changed
(they no longer error out on cycles).
2022-06-27 12:22:05 +02:00
Lars Ingebrigtsen
5b1bb1af03 Add NEWS entry about C-h v font locking 2022-06-27 10:11:06 +02:00
Allen Li
bc3b20b441 find-dired: Add find-dired-with-command
Add a command that runs and sets up the find-dired buffer with an
arbitrary find command.  Also rewrite the existing find-dired commands
using it.

The set of commands possible with find-dired is limited; the new
command allows users to run the full set of commands, but also leaves
the responsibility to the user to construct the command manually.

* lisp/find-dired.el (find-command-history): New var.
(find-dired-with-command): New command.
(find-dired): Rewritten with new command.
2022-06-27 09:46:27 +02:00
Jim Porter
7fc3f1b0d1 Make Eshell globs ending in "/" match directories only
* lisp/eshell/em-glob.el (eshell-glob-convert): Return whether to
match directories only.
(eshell-glob-entries): Add ONLY-DIRS argument.

* test/lisp/eshell/em-glob-tests.el
(em-glob-test/match-any-directory): New test.
(em-glob-test/match-recursive)
(em-glob-test/match-recursive-follow-symlinks): Add test cases for
when "**/" or "***/" are the last components in a glob.

* etc/NEWS: Announce this change (bug#56227).
2022-06-26 16:52:38 +02:00
Daniel Martín
b637d9c075 Fix typo in signal-process-functions
* doc/lispref/processes.texi (Signals to Processes): Update reference
to correct default variable in the ELisp manual.
* etc/NEWS: The same for the NEWS entry (bug#56234).
2022-06-26 16:47:20 +02:00
Stefan Kangas
3d3029353b New command recentf-open
* lisp/recentf.el (recentf-open): New command.  (Bug#56148)
(recentf): New alias.
(recentf, recentf-mode): Update documentation to focus more on the
list of recently opened files and ways of accessing it, instead of
focusing on the menu bar only.
(recentf-list, recentf-enabled-p): Minor doc fixes.

* doc/emacs/files.texi (File Conveniences): Update documentation.
2022-06-25 12:55:18 +02:00
Eli Zaretskii
376ecd5346 ; Fix last change regarding 'record-all-keys'
* src/keyboard.c (syms_of_keyboard):
* etc/NEWS: Minor fixes of documentation of 'record-all-keys'.
2022-06-25 12:33:45 +03:00
Manuel Giraud
f01024b94d Avoid recording passwords' chars
* lisp/cus-start.el (standard): New user custom `record-all-keys'.
* src/keyboard.c (syms_of_keyboard): Un-obsolete
`inhibit--record-char'.
* lisp/subr.el (read-passwd): Use `inhibit--record-char' to
inhibit passwords recording.
2022-06-25 12:27:27 +03:00
Lars Ingebrigtsen
cdbb02a597 Allow toggling completion modes for M-x' with M-X'
* doc/lispref/commands.texi (Interactive Call): Document it.
* lisp/minibuffer.el (minibuffer-local-must-match-map): Bind 'M-X'.

* lisp/simple.el (execute-extended-command-cycle): New command.
(read-extended-command): Use it to allow toggling (bug#47215).
(read-extended-command-1): Renamed from `read-extended-command'.
(execute-extended-command-for-buffer): Factored out most of the
code...
(command-completion--command-for-this-buffer-function): ... to
here.
(extended-command-versions): New variable.

This code is based on a patch by Felician Nemeth
<felician.nemeth@gmail.com>.
2022-06-24 20:18:21 +02:00
Timo Taipalus
6fbea946bf Add support for image flipping
* lisp/image.el (image-map): Keybindings for flipping functions.
(image-flip-horizontally): New function that toggles image flipping
property.
(image-flip-vertically): New function that toggles image flipping
property and rotates image 180 degrees.
* src/image.c (syms_of_image): Add property.
(image_set_transform): Modify image rotation code to also horizontally
flip the image when the property is set.
* etc/NEWS: Add description.
* doc/lispref/display.texi (Image Descriptors): Document :flip
(bug#47095).
2022-06-24 14:44:02 +02:00
Lars Ingebrigtsen
66669c5c20 Add NEWS entry about kill-buffer change 2022-06-24 11:57:13 +02:00
Lars Ingebrigtsen
bed9fd41ef Allow read-multiple-choice to do long-form answers
* doc/lispref/commands.texi (Reading One Event): Document it.

* lisp/emacs-lisp/rmc.el (read-multiple-choice): Allow using
long-form answers instead of single character ones.
(read-multiple-choice--long-answers): New function.
(read-multiple-choice--short-answers): Refactored out from the
main function.
2022-06-24 11:04:51 +02:00
Eli Zaretskii
289b457cac Merge branch 'abort-redisplay'
This allows abandoning the redisplay of a window
that takes too long to complete.  Bug#45898
* src/xdisp.c (update_redisplay_ticks): New function.
(init_iterator, set_iterator_to_next): Call
'update_redisplay_ticks'.
(syms_of_xdisp) <max_redisplay_ticks>: New variable.
<list_of_error>: Remove 'void-variable': it is no longer needed,
since 'calc_pixel_width_or_height' can no longer signal a
void-variable error, and it gets in the way of aborting
redisplay via 'redisplay_window_error'.
* src/keyboard.c (command_loop_1): Reinitialize the tick count
before executing each command in the loop.
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
* src/dispnew.c (make_current): Make sure enabled rows of the
current matrix have a valid hash, even if redisplay of a window
was aborted due to slowness.  This avoids assertion violations in
'scrolling_window' due to the wrong hash value.
* src/xdisp.c (display_working_on_window_p): New global variable.
(unwind_display_working_on_window): New function.
* src/keyboard.c (command_loop_1): Reset
'display_working_on_window_p' before and after executing commands.
* src/window.c (Frecenter, window_scroll, displayed_window_lines):
* src/indent.c (Fvertical_motion): Set
'display_working_on_window_p' before calling 'start_display'.
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
* src/regex-emacs.c (re_match_2_internal):
* src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char)
(bidi_paragraph_init, bidi_find_other_level_edge): Update the
redisplay tick count as appropriate, when moving the iterator by
one character position actually requires to examine many more
positions.
* src/xdisp.c (redisplay_window_error): Show messages about
aborted redisplay of a window as delayed-warnings.

* doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of
the chapter.  This issue is no longer frequent or important as it
was back in Emacs 20 days.
(Long Lines): Document 'max-redisplay-ticks'.
* doc/emacs/emacs.texi (Top): Update the detailed menu.

* etc/NEWS: Announce 'max-redisplay-ticks'.
2022-06-24 10:44:44 +03:00
Eli Zaretskii
6fcd8ca743 ; * etc/NEWS: Minor update of description of 'max-redisplay-ticks'. 2022-06-24 10:23:16 +03:00
Stefan Kangas
c753e4cb2a Use shortened filenames in recentf-mode
* lisp/recentf.el (recentf-filename-handlers): Set to
'abbreviate-file-name' to get shortened names by default.  (Bug#56123)
2022-06-23 12:48:29 +02:00
Stefan Kangas
5f904e50c3 Revert "Allow shortening filenames in recentf-mode menu"
This reverts commit 32906819ad.
2022-06-23 12:48:29 +02:00
Stefan Kangas
2bd49c8204 Revert "Use short file names by default in recentf menu"
This reverts commit ec9228eb81.
2022-06-23 12:48:29 +02:00
Stefan Kangas
ec9228eb81 Use short file names by default in recentf menu
* lisp/recentf.el (recentf-menu-filter): Set the default to
'recentf-show-abbreviated' to get short file names.  (Bug#56123)
2022-06-22 11:47:30 +02:00
Lars Ingebrigtsen
fa6d9c1e84 Mention the new Tetris user option 2022-06-22 05:25:48 +02:00
Lars Ingebrigtsen
73a384a986 Increase gc-cons-percentage in -batch Emacs
* doc/lispref/os.texi (Batch Mode): Document it.

* src/emacs.c (main): Use a gc-cons-percentage of 1.0 in
noninteractive Emacsen.
2022-06-21 15:04:38 +02:00
Stefan Kangas
32906819ad Allow shortening filenames in recentf-mode menu
* lisp/recentf.el (recentf-show-abbreviated): New function.
(recentf--filter-names): New helper function.
(recentf-show-basenames): Use above new helper function.
(recentf-menu-filter): Allow setting user option to new value
'recentf-show-abbreviated'.
2022-06-21 14:38:45 +02:00