1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 08:43:40 -07:00
Commit graph

12882 commits

Author SHA1 Message Date
Liu Hui
9656fe0358 Add option `dired-filename-display-length'
* lisp/dired.el (dired-filename-display-length): New option.
(dired-insert-set-properties): Set invisible property for long
filenames.
(dired--get-ellipsis-length, dired--get-filename-display-length)
(dired-filename-update-invisibility-spec): New functions.
(dired-mode): Add filename invisibility spec.
(dired-make-directory-clickable)
(dired-kill-when-opening-new-dired-buffer)
(dired-hide-details-preserved-columns): Add missing :group.
* lisp/wdired.el (wdired-change-to-wdired-mode)
(wdired-change-to-dired-mode): Update filename invisibility spec.
* etc/NEWS: Announce the change.  (Bug#67161)
2023-11-25 12:50:35 +02:00
F. Jason Park
2ed9c9f1b3 Optionally allow substitution patterns in erc-prompt
* etc/ERC-NEWS: Add entry for `erc-prompt-format'.
* lisp/erc/erc-compat.el (erc-compat--defer-format-spec-in-buffer):
New macro to wrap `format-spec' specification values in functions that
run in the current buffer and fall back to the empty string.
* lisp/erc/erc.el (erc-prompt): Add predefined Custom choice for
function type in `erc-prompt-format'.
(erc--prompt-format-face-example): New "pre-propertized" value for
option `erc-prompt-format'.
(erc-prompt-format): New companion option for `erc-prompt' choice
`erc-prompt-format'.  New function of the same name to perform format
substitutions and serve as a Custom choice value for `erc-prompt'.
Based on work and ideas originally proposed by Stefan Kangas.
(erc--away-indicator, erc-away-status-indicator,
erc--format-away-indicator): New formatting function and helper
variables for displaying short away status.
(erc--user-modes-indicator): New variable.
(erc--format-user-modes): New function.
(erc--format-channel-status-prefix): New function.
(erc--format-modes): New function.
* test/lisp/erc/erc-scenarios-prompt-format.el: New file.  (Bug#51082)

Co-authored-by: Stefan Kangas <stefankangas@gmail.com>
2023-11-24 13:38:52 -08:00
F. Jason Park
5bc84a0c9e Cache UI string for channel modes in ERC
* etc/ERC-NEWS: Add entry for more expansive "%m" in header line.
* lisp/erc/erc-common.el (erc--channel-mode-types): New slot
`shortargs' for caching truncated mode args.
* lisp/erc/erc.el (erc--mode-line-chanmodes-arg-len): New internal
variable for adjusting the truncation length of channel-mode arguments
as they appear in the header line.
(erc--mode-line-mode-string): New variable for caching the relevant
"modestring", if any, in ERC buffers.
(erc--process-channel-modes): Don't associate args with group 4/D,
which are all nullary modes.  This fixes a bug in which arguments were
associated with the wrong letters.  Also, set cached mode string for
channel.
(erc--user-modes): Simplify slightly by removing likely useless
variant for overloaded arg AS-TYPE.  This function is new in ERC 5.6.
(erc--channel-modes):  New function.  A higher-level getter for
current channel mode representation to complement `erc--user-modes'.
(erc--parse-user-modes): Set `erc--mode-line-mode-string in server
buffers.
(erc--handle-channel-mode): Change model to associate modes of type A
with a running plus/minus tally of state changes since joining the
channel.
(erc-update-mode-line-buffer): Use cached verbose representation of
channel or user modes instead of calling `erc-format-channel-modes'.
* test/lisp/erc/erc-tests.el (erc--update-channel-modes): Update to
reflect new running tally associations for type A modes.
(erc--channel-modes): New test.
(erc--user-modes): Update to reflect parameter simplification.
(Bug#67220)
2023-11-24 13:38:52 -08:00
Po Lu
9db8c349f0 Merge from savannah/emacs-29
d72a4ed65c Fix 'with-sqlite-transaction' when BODY fails
a7b3c92373 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch...
fd76a80864 ; Mention that -x and --script ignore file-locals
e0469ddb9d ; * doc/emacs/search.texi (Special Isearch): More accurat...
e521669fb3 Fix wording in ELisp Intro manual
da946ca692 Add missing python-ts-mode keyword (bug#67015)
0128495afd Fix string-pixel-width with global setting of display-lin...

# Conflicts:
#	etc/NEWS
2023-11-24 08:38:03 +08:00
Juri Linkov
29d42d9158 Support dired-movement-style in dired-next-dirline and dired-prev-dirline
* lisp/dired.el (dired-movement-style): Mention dired-next-dirline
and dired-prev-dirline in the docstring (bug#67303).
(dired-next-line): Refactor most code to dired--move-to-next-line.
(dired--move-to-next-line): New function with code from dired-next-line.
(dired--trivial-next-dirline): Rename from dired-next-dirline.
(dired-next-dirline): New function body that uses dired-movement-style,
dired--move-to-next-line and dired--trivial-next-dirline.
(dired-prev-dirline): Mention dired-movement-style in the docstring.
2023-11-23 20:12:40 +02:00
Stefan Monnier
e6556db420 (derived-mode-p): Take MODES as a single argument
Looking at uses of `derived-mode-p` and `provide-mode-derived-p`,
I can't find a single use case where it wouldn't be preferable for
it to take a single argument instead of `&rest`: all the calls are
either passing a single argument anyway, or passing a fixed list of modes.
The use of `&rest` just makes the code less efficient and sometimes
more clunky (because of the need for `apply`).
So let's change that (while preserving backward compatibility, of course).

* doc/lispref/modes.texi (Derived Modes): Adjust accordingly.

* lisp/subr.el (provided-mode-derived-p, derived-mode-p): Take the
`modes` as a single argument.
2023-11-23 11:59:38 -05:00
Po Lu
47e86445de Insert NEWS entry for native compilation changes
* etc/NEWS (Installation Changes in 30.1): Mention that native
compilation has been enabled by default.
2023-11-22 11:07:13 +08:00
Eli Zaretskii
d72a4ed65c Fix 'with-sqlite-transaction' when BODY fails
* lisp/sqlite.el (with-sqlite-transaction): Don't commit changes
if BODY errors out.  Roll back the transaction if committing
fails.  (Bug#67142)

* etc/NEWS:
* doc/lispref/text.texi (Database): Document the error handling in
'with-sqlite-transaction'.
2023-11-21 15:36:22 +02:00
Manuel Giraud
65600b97bd Add Gnus mode line logo in SVG format
Bug#67174

* etc/images/gnus/gnus-pointer.svg: New Gnus mode line logo in SVG format.
* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Use it.
2023-11-20 10:00:08 -08:00
Eli Zaretskii
5024ee1ad1 ; * etc/TODO: Fix punctuation. 2023-11-20 14:45:30 +02:00
Andrea Corallo
498daa8886 * etc/TODO (Native compiler improvements): Add 'Diagnostic' section. 2023-11-20 10:38:54 +01:00
Andrea Corallo
c598a808be * etc/TODO (Native compiler improvements): Move old entry here. 2023-11-20 10:29:28 +01:00
Andrea Corallo
94b3c7b9d2 * etc/TODO (Native compiler improvements): Add section. 2023-11-20 10:29:28 +01:00
Eli Zaretskii
3a3202e4a6 ; * etc/NEWS: Fix last change. 2023-11-19 11:08:53 +02:00
Kévin Le Gouguec
53bd2d57f3 Recognize shebang lines that pass '-S/--split-string' to 'env'
* etc/NEWS: announce the change.

* lisp/files.el (auto-mode-interpreter-regexp): Add optional '-S'
switch to the ignored group capturing the env invocation.
Allow multiple spaces between #!, interpreter and first argument:
empirically, Linux's 'execve' accepts that.  (Bug#66902)

* test/lisp/files-tests.el (files-tests--check-shebang): New helper to
generate a temporary file with a given interpreter line, and assert
that the mode picked by 'set-auto-mode' is derived from an expected
mode.  Write the 'should' form so that failure reports include useful
context; for example:

    (ert-test-failed
     ((should
       (equal (list shebang actual-mode) (list shebang expected-mode)))
      :form
      (equal ("#!/usr/bin/env -S make -f" fundamental-mode)
	     ("#!/usr/bin/env -S make -f" makefile-mode))
      :value nil :explanation
      (list-elt 1 (different-atoms fundamental-mode makefile-mode))))

* test/lisp/files-tests.el (files-tests-auto-mode-interpreter): New
test; exercise some aspects of 'interpreter-mode-alist'.
2023-11-19 11:05:26 +02:00
F. Jason Park
cca7956c82 Favor ISUPPORT params for MODE processing in ERC
* etc/ERC-NEWS: Mention shift toward CHANMODES ISUPPORT parameter for
dictating MODE parsing behavior.
* lisp/erc/erc-backend.el (erc--init-channel-modes, erc--update-modes,
erc-set-modes, erc-update-modes): Forward declarations, the last two
being removals.
(erc-server-MODE, erc-server-221): Use `erc--update-modes' instead of
`erc-update-modes'.
(erc-server-324): Use `erc--init-channel-modes' instead of
`erc-set-modes'.
* lisp/erc/erc-common.el (erc--channel-mode-types): New struct for
stashing processed \"CHANMODES\" data for the current server.
* lisp/erc/erc.el (erc-channel-modes): Fix doc string.
(erc-set-initial-user-mode): Display a local notice when requesting
redundant user MODE operations.
(erc-set-modes, erc-parse-modes, erc-update-modes): Deprecate for
reasons explained in associated ERC-NEWS entry.
(erc--update-membership-prefix): New function, a helper for specifying
arguments to the rather unruly `erc-update-current-channel-member'.
(erc--channel-modes): New variable to record channel-mode state in a
hash table.
(erc--channel-mode-types): New variable and getter to stash
and retrieve server-local instance of the struct of the same name.
(erc--process-channel-modes): New function to parse channel-mode
changes, dispatch handlers for unary modes, and update the local
variables `erc-channel-modes' and `erc--channel-modes'.
(erc--user-modes): New local variable for remembering user modes per
server.  New function of the same name, a "getter" for the variable.
(erc--parse-user-modes): New function to parse user modes only.
(erc--update-user-modes): New function to update and sort
`erc--user-modes'.
(erc--update-channel-modes): New function to replace much of
`erc-update-modes', currently a thin wrapper around
`erc--process-channel-modes' to ensure it updates status prefixes.
(erc--update-modes): New function to call appropriate mode-updating
function for the current buffer.
(erc--init-channel-modes): New function to update channel mode letters
without status prefixes.
(erc--handle-channel-mode): New generic function, a placeholder for an
eventual API to handle specific "unary" mode letters, meaning those
that specify a single parameter for setting or unsetting.
(erc-update-channel-limit): Update doc string and answer question
posed by ancient comment.
(erc-message-english-user-mode-redundant-add,
erc-message-english-user-mode-redundant-drop): New English catalog
messages.
* test/lisp/erc/erc-scenarios-base-chan-modes.el: New file.
* test/lisp/erc/erc-tests.el (erc-parse-modes,
erc--update-channel-modes, erc--update-user-modes, erc--user-modes,
erc--parse-user-modes): New tests.
* test/lisp/erc/resources/base/modes/chan-changed.eld: New test data
file.  (Bug#67220)
2023-11-18 12:34:56 -08:00
Eli Zaretskii
9b0cb2185d ; * etc/NEWS: Fix last change (bug#67225). 2023-11-18 12:11:56 +02:00
Rudi Schlatte
41b837b413 Add key translations 'C-x 8 a e' and 'C-x 8 A E'.
* lisp/international/iso-transl.el (iso-transl-char-map): Add
new entries for ae and AE.  (Bug#67225)
2023-11-18 12:08:34 +02:00
Po Lu
6aa70c236f Document Battery Optimization challenges on Android
* etc/PROBLEMS (Runtime problems specific to Android): Mention
battery optimization, the way it impacts background execution,
and how it might be disabled.
2023-11-18 17:42:19 +08:00
Eli Zaretskii
7b7a37ec7b ; * etc/NEWS: Add entry about new input methods. (Bug#66470) 2023-11-18 11:35:15 +02:00
Juri Linkov
ed24972849 ; * etc/NEWS: Add new section. 2023-11-16 19:37:21 +02:00
Stefan Monnier
cfb117fee1 * etc/NEWS: Mention incompatible change in pp (bug#67180) 2023-11-16 11:19:56 -05:00
Stefan Monnier
4194f9bd87 Merge branch 'derived-mode-add-parents' 2023-11-16 09:57:38 -05:00
Eshel Yaron
e82d807a28 Add Completion Preview mode
This adds a new minor mode, 'completion-preview-mode', that displays
in-buffer completion suggestions with an inline "preview" overlay.
(Bug#66948)

* lisp/completion-preview.el: New file.
* doc/emacs/programs.texi (Symbol Completion): Document it.
* etc/NEWS: Announce it.
2023-11-15 19:15:49 +02:00
Sean Whitton
6a6c2058f1 ; * etc/NEWS: Use setopt not setq for project-switch-commands. 2023-11-13 21:58:46 +00:00
Juri Linkov
4dc26a1e6e ; * etc/NEWS: Rearrange wrongly categorized entries.
Move Project, Minibuffer and Completions, JS Mode
from "New Modes and Packages" to "Changes in Specialized Modes and Packages".
2023-11-13 09:18:49 +02:00
Juri Linkov
b3d57d4397 * lisp/vc/vc-hooks.el (vc-display-status): New value 'no-backend' (bug#66464).
* lisp/vc/vc-hooks.el (vc-default-mode-line-string): Use it.
* lisp/vc/vc-git.el (vc-git-mode-line-string): Use it.
* lisp/vc/vc-hg.el (vc-hg-mode-line-string): Use it.
2023-11-13 09:09:15 +02:00
F. Jason Park
ece62f5c1c ; Prepare for ERC 5.6 release
* doc/misc/erc.texi: Minor tweak in SASL section.
* etc/ERC-NEWS: Revise various sections under 5.6.
* lisp/erc/erc-button.el (erc-button-alist): Remove comment.
(erc-nick-popup-alist): Remove comment.
* lisp/erc/erc-fill.el (erc-fill-wrap-margin-width): Remove comment.
(erc-fill-wrap-margin-side): Remove comment.
(erc-fill-line-spacing): Remove comment.
(erc-fill-wrap-use-pixels): Remove comment.
(erc-fill-wrap-visual-keys): Remove comment.
(erc-fill-wrap-force-screen-line-movement): Remove comment.
(erc-fill-wrap-merge): Remove comment.
* lisp/erc/erc-goodies.el (erc-scrolltobottom-all): Remove comment.
(erc-keep-place-indicator-style): Remove comment.
(erc-keep-place-indicator-buffer-type): Remove comment.
(erc-keep-place-indicator-follow): Remove comment.
* lisp/erc/erc-networks.el (erc-server-alist): Remove comment.
* lisp/erc/erc-nicks.el (erc-nicks): Remove comment.
* lisp/erc/erc-speedbar.el
(erc-speedbar-nicknames-window-width): Remove comment.
(erc-speedbar-hide-mode-topic): Remove comment.
(erc-speedbar-my-nick-face): Remove comment.
* lisp/erc/erc-stamp.el (erc-timestamp-format-right): Remove comment.
(erc-echo-timestamp-zone): Remove comment.
(erc-timestamp-use-align-to): Remove comment.
* lisp/erc/erc-status-sidebar.el
(erc-status-sidebar-highlight-active-buffer): Remove comment.
(erc-status-sidebar-style): Remove comment.
(erc-status-sidebar-click-display-action): Remove comment.
* lisp/erc/erc.el: Bump required Compat version to 29.1.4.3 in
Package-Requires header.
(erc-notice-face): Remove comment.
(erc-action-face): Remove comment.
(erc-interactive-display): Remove comment.
(erc-auto-reconnect-display-timeout): Remove comment.
(erc-reconnect-display-server-buffers): Remove comment.
(erc-modules): Remove comment.
* test/lisp/erc/resources/base/display-message/multibuf.eld: Remove
reference to specific ERC version in QUIT command reason.
* test/lisp/erc/resources/base/assoc/reconplay/foonet.eld: Timeout.
2023-11-12 20:37:49 -08:00
F. Jason Park
1d2aa130ca Revive erc-command-indicator as new module
* doc/misc/erc.texi: Add entry for `command-indicator' to Modules
chapter.
* etc/ERC-NEWS: Mention new module `command-indicator'.
* lisp/erc/erc-goodies.el (erc-noncommands-list): Replace the
nonexistent `erc-cmd-SMV' with function `erc-cmd-SAY'.
(erc-noncommands-mode, erc-noncommands-enable,
erc-noncommands-disable): Deprecate this module because it's a no-op.
(erc-command-indicator-face, erc-command-indicator): Migrate from main
library.
(erc-command-indicator-mode, erc-command-indicator-enable,
erc-command-indicator-disable): New module to take the spiritual place
of `noncommands'.
(erc-command-indicator): Move function here from main library, along
with option namesake mentioned above.
(erc-command-indicator-toggle-hidden): New command to toggle echoed
command-line visibility.
(erc--command-indicator-permit-insertion): New function.
(erc--command-indicator-display): New function, a slightly revised
version of the old `erc-display-command' from the main library.  Its
only call site was removed back in d1036d288d "backport: erc
bugfixes".  However, references were left behind to associated assets,
like `erc-command-indicator', etc.  The function was later commented
out in 0c599ee2e2 "* lisp/erc/erc.el: Use `run-hook-with-args` for
`erc-pre-send-functions`", and then removed by a63ed6f78a "Remove
duplicate ERC prompt on reconnect".
* lisp/erc/erc-match.el (erc-match-toggle-hidden-fools): Use new
non-module-specific name for `erc-match--toggle-hidden'.
(erc-match--toggle-hidden): Move to main library for shared use by
other modules.
* lisp/erc/erc.el (erc-hide-prompt): Leave note explaining updated
role.
(erc-command-indicator): Move option and function of same name to
erc-goodies.
(erc-command-indicator-face): Move to erc-goodies.
(erc-modules): Remove module `noncommands' from standard value and
Custom set.  Add `command-indicator' to set.
(erc--toggle-hidden): "New" function, a rebranded version of the
utility `erc-match--toggle-hidden' from erc-match.
(erc--send-input-lines): Accommodate modules wanting alternate
insertion functions.
(erc-load-irc-script-lines): Account for `erc-command-indicator' no
longer being defined in this library.
* test/lisp/erc/erc-scenarios-base-send-message.el
(erc-scenarios-base-send-message--command-indicator): New test.
* test/lisp/erc/erc-tests.el (erc-tests--modules): Remove
deprecated module `noncommands' from manifest.  (Bug#67031)
2023-11-12 20:37:49 -08:00
Stefan Monnier
cf00f1526d Subject: (derived-mode-add-parents): Add documentation and one more test
* doc/lispref/modes.texi (Derived Modes): Document new derived-modes API.
* test/lisp/subr-tests.el (subt-tests--merge-ordered-lists): New test.
2023-11-12 17:08:46 -05:00
Jim Porter
e5ba52ad72 Hook 'bug-reference-mode' up to 'thing-at-point'
* lisp/progmodes/bug-reference.el (bug-reference--url-at-point): New
function.
(bug-reference-mode, bug-reference-prog-mode): Factor initialization
code out to...
(bug-reference--init): ... here.

* test/lisp/progmodes/bug-reference-tests.el (test-thing-at-point):
New test.

* etc/NEWS: Announce this change (bug#66752).
2023-11-11 21:40:12 -08:00
Eli Zaretskii
c9d7740574 Merge from origin/emacs-29
ce0ebb91f2 Improve documentation of read syntax and printed represen...
81f84b00a5 ; * doc/lispref/modes.texi (Other Font Lock Variables): A...
434592b074 ; * lisp/dired.el (dired-use-ls-dired): Doc fix (bug#67053).
fe000236cf Improve documentation of signaling errors in batch mode
103ca678ac Fix treesit-simple-indent-presets docstring (bug#67007)
b7871cefe7 Prevent an infinite loop in todo-mode (bug#66994)
fa8cc4c9ee Fix cmake-ts-mode indentation (Bug#66845)
5bdc61bc0e Update to Org 9.6.11
18e2de1bec ; * lisp/bindings.el (right-word, left-word): Doc fix.
4f0fc3bfda ; Document core input events problems with XInput2
2023-11-11 05:31:52 -05: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
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
Kyle Meyer
5bdc61bc0e Update to Org 9.6.11 2023-11-05 21:46:42 -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
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
Po Lu
4f0fc3bfda ; Document core input events problems with XInput2
* etc/PROBLEMS: Document problems with XInput2 and core input
events.  (Bug#66765)
2023-11-04 13:03:27 +02:00
Eli Zaretskii
12d1f33ceb ; Fix recent changes in documentation
* lisp/man.el (Man-header-file-path, man): Doc fix.

* etc/NEWS: Fix wording.
2023-11-03 09:41:11 +02:00
Dmitry Gutov
9cbf0bb3ee Remove 'M-.' binding from js-mode and js-ts-mode
* lisp/progmodes/js.el (js-mode-map, js-ts-mode-map): Remove.
The global binding must be a lot more useful for most users
(https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg01295.html).
2023-11-03 01:40:36 +02:00
Michael Albinus
f5b2d23fff Adapt doc for man.el
* etc/NEWS: Rephrase 'Man-support-remote-systems' entry.
Fix typos.

* lisp/man.el (Man-header-file-path, man): Adapt docstrings.
2023-11-02 12:14:13 +01:00
Eli Zaretskii
cb92eb404d ; Improve documentation of recent changes
* etc/NEWS:
* lisp/simple.el (completion-auto-wrap, completion-auto-select)
(first-completion, last-completion, previous-completion)
(next-completion, previous-line-completion)
(next-line-completion): Doc fixes.  (Bug#59486)
2023-11-02 09:56:55 +02:00
Juri Linkov
8eb9b82ce5 New commands previous-line-completion and next-line-completion (bug#59486)
* lisp/simple.el (completion-list-mode-map): Bind [up] to
'previous-line-completion', and [down] to 'next-line-completion'.
(completion-auto-wrap): Mention `next-line-completion' and
`previous-line-completion' in the docstring.
(previous-line-completion, next-line-completion): New commands.
2023-11-01 19:45:05 +02:00
Michael Albinus
861ac933dd Run `man' also on remote systems
This implements bug#66758

* doc/emacs/programs.texi (Man Page):
Describe Man-support-remote-systems.

* etc/NEWS: Mention user option 'Man-support-remote-systems'.
Fix typos.

* lisp/dired.el (Man-support-remote-systems): Declare.
(dired-do-man): Use it.  Use also `file-local-name'.

* lisp/man.el (Man-support-remote-systems): New defcustom.
(Man-xref-normal-file): Handle remote files.
(Man-default-directory, Man-shell-file-name)
(Man-header-file-path): New defuns.
(Man-init-defvars): Use octal numbers.
(Man-support-local-filenames): Handle remote files.
(Man-completion-table): Use `Man-default-directory' and `process-file'.
(man): Adapt docstring.
(Man-start-calling): Use `Man-default-directory'.
(Man-getpage-in-background): Use `Man-default-directory',
`Man-shell-file-name', `start-file-process' and `process-file'.  Adapt
buffer name.
(Man-update-manpage): Use `Man-shell-file-name' and `process-file'.
(Man-view-header-file): Use `Man-header-file-path'.
2023-11-01 16:54:31 +01:00
Eli Zaretskii
cb86120272 ; Fix documentation of last change
* etc/NEWS:
* doc/emacs/misc.texi (emacsclient Options): Fix wording.
(Bug#65902)
2023-10-29 14:19:39 +02:00
Spencer Baugh
683efb8de5 Add 'server-eval-args-left' to server.el
Passing arbitrary arguments to functions through
"emacsclient --eval" sometimes requires complicated escaping
to avoid them being parsed as Lisp (as seen in
emacsclient-mail.desktop before this change).

The new variable 'server-eval-args-left' allows access to the
arguments before they are parsed as Lisp.  By removing
arguments from the variable before they're parsed, a snippet
of Lisp can consume arguments, as in emacsclient-mail.desktop.

org-protocol might be able to use this as well, which might allow it
to drop its current advice on server-visit-files.

* etc/emacsclient-mail.desktop: Use 'server-eval-args-left'.
* lisp/server.el (server-eval-args-left): New variable.
(server-process-filter, server-execute): Make '-eval' arguments
available through 'server-eval-args-left'.
* lisp/startup.el (argv): Mention 'server-eval-args-left' in
docstring.
* etc/NEWS: Announce 'server-eval-args-left'.
* doc/emacs/misc.texi (emacsclient Options): Document
'server-eval-args-left'.  (Bug#65902)
2023-10-29 14:10:23 +02:00
Eli Zaretskii
f80889b724 ; Fix last change (bug#66614). 2023-10-29 13:40:27 +02:00
Spencer Baugh
5c8fc0b059 Add 'case-symbols-as-words' to configure symbol case behavior
In some programming languages and styles, a symbol (or every
symbol in a sequence of symbols) might be capitalized, but the
individual words making up the symbol should never be capitalized.

For example, in OCaml, type names Look_like_this and variable names
look_like_this, but it is basically never correct for something to
Look_Like_This.  And one might have "aa_bb cc_dd ee_ff" or "Aa_bb
Cc_dd Ee_ff", but never "Aa_Bb Cc_Dd Ee_Ff".

To support this, the new variable 'case-symbols-as-words' causes
symbol constituents to be treated as part of words only for case
operations.

* src/casefiddle.c (case_ch_is_word): New function.
(case_character_impl, case_character): Use 'case_ch_is_word'.
(syms_of_casefiddle): Define 'case-symbols-as-words'.
* src/search.c (Freplace_match): Use 'case-symbols-as-words'
when calculating case pattern.
* test/src/casefiddle-tests.el (casefiddle-tests--check-syms)
(casefiddle-case-symbols-as-words): Test 'case-symbols-as-words'.
* etc/NEWS: Announce 'case-symbols-as-words'.
* doc/lispref/strings.texi (Case Conversion): Document
'case-symbols-as-words'.
(Bug#66614)
2023-10-29 13:32:43 +02:00
Mauro Aranda
c79ea103ef Add easy customization for dir-locals files (Bug#66702)
* lisp/cus-edit.el (custom--editable-field-p): New utility function.
(custom-dirlocals-widget, custom-dirlocals-file-widget)
(custom-dirlocals-commands, custom-dirlocals-tool-bar-map): New
variables.
(custom-dirlocals-map, custom-dirlocals-field-map): New keymaps.
(Custom-dirlocals-menu): New menu.
(custom-dirlocals-key, custom-dynamic-cons, custom-dirlocals): New
widgets.
(custom-dirlocals-maybe-update-cons, custom-dirlocals-symbol-action)
(custom-dirlocals-change-file, custom-dirlocals--set-widget-vars)
(custom-dirlocals-get-options, custom-dirlocals-validate): New
functions.
(custom-dirlocals-with-buffer): New macro.
(Custom-dirlocals-revert-buffer, Custom-dirlocals-save)
(customize-dirlocals): New commands.

* doc/emacs/custom.texi (Directory Variables): Document
customize-dirlocals.

* etc/NEWS: Announce.
2023-10-28 20:02:13 +03:00
Eli Zaretskii
e81e625ab8 Merge from origin/emacs-29
aa253c533d ; Fix broken links to gmane.org
cc3e436c82 Change news.gmane.org to news.gmane.io
297fe945c5 Fix minor defcustom issues in Gnus (Bug#66715)
3beb5f5e24 ; * doc/misc/gnus.texi: Fix unmatched quote in gnus doc. ...
85d08d5788 Minor connection-local variables fixes
79d8328ca4 Make Dired honor `insert-directory-program´ with globs
43127294e1 Fix typo in url-privacy-level :type
380f8574ef * lisp/vc/log-view.el (log-view-mode-menu): Quote derived...
2023-10-28 05:06:21 -04:00