* doc/misc/tramp.texi (External methods): Mention, how external
methods are used for multi-hops.
(Ad-hoc multi-hops): Change requirement of method.
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.8.2-pre".
* etc/NEWS: External Tramp methods can be used in multi-hops.
Presentational fixes and improvements.
* lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): Check for
`tramp-method-out-of-band-p' explicitly. Don't flush directory
properties.
(tramp-method-out-of-band-p): There shouldn't be a multi-hop.
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): Don't
flush directory properties.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-barf-if-file-missing)
(with-parsed-tramp-file-name): Adapt debug spec.
(tramp-skeleton-copy-directory): Flush directory properties.
(tramp-add-hops): Check for `tramp-login-args' property.
* doc/emacs/files.texi: (Time Stamps): Expand the examples and add
node-end summaries. Thanks to Ruth for her help with the clarity of
the documentation.
Set eglot--docver to -1 in LSP documents not yet 'didOpen'ed,
then add a check for this in the jsonrpc-connection-ready-p
predicate.
We do this because the call to eglot-flymake-backend may come in
so fast that textDocument/diagnostic actually makes it into the
jsonrpc queue before the didOpen. Much like, say, completions
before didChange, some servers don't like that, understandibly.
So use the existing "deferred" mechanism checks to make sure, as
usual, that requests targetting a specific LSP document come
after the didOpen/didChange informing the server of the actual
state of the buffer.
I _could_ have used nil instead of -1, and it would probably be
cleaner. But -1 is safer, we never know if a version comparison
won't slip outside the didOpen period. Might change my mind
about this.
* lisp/progmodes/eglot.el (eglot--docver): Init to -1.
(eglot--managed-mode): Set eglot--docver to -1 when unmanaging.
(jsonrpc-connection-ready-p): Check eglot--docver non-negative.
(eglot--signal-textDocument/didClose): Set eglot--docver to -1.
* doc/lispref/positions.texi (Point): Define "buffer point".
* doc/lispref/windows.texi (Window Point): Say that buffer point
can change in unpredictable ways when windows get selected
(Bug#79927).
When a repeat hint string exists, the hint is formatted using
`read-multiple-choice' formatting. But `rmc--add-key-description' only
works on characters, not symbols like 'right or 'left.
* lisp/repeat.el (repeat-echo-message-string): check for chars
If the pushed diagnostics are outdated and we have pulled diagnostics,
we want to report them. And if the pushed diagnostics are up to date,
we want to report them along with any pulled ones. The do-nothing
update happens only if the pulled response indicated so explicitly or if
there are no pulled diagnostics and the pushed ones are out-of-date.
* lisp/progmodes/eglot.el (eglot--flymake-report): Tweak.
Foot supports all features required for this (OSC-52, DECSET1000,
DECSET1003).
* lisp/term/xterm.el (xterm--auto-xt-mouse-allowed-names):
Add foot. (Bug#80083)
Copyright-paperwork-exempt: yes
Up until recently, there were no reliable way to detect if a terminal
supported OSC-52 or not.
A number or terminal emulators decided to remedy this by including '52'
in their primary DA response. In short, the presence of 52 in the DA
response means the terminal supports *writing* to the clipboard.
Reading the clipboard is _usually_ supported, but not guaranteed.
It should be noted that Emacs uses both the 'c' and 'p' parameters in
OSC-52, to copy to either PRIMARY, or CLIPBOARD, while the specification
only requires the terminal to implement 'c'. If a terminal doesn't
support 'p', the OSC-52 request will be silently ignored.
* lisp/term/xterm.el (xterm--init, xterm--primary-da-handler):
Query primary device attributes for OSC-52 support. (Bug#80083)
Copyright-paperwork-exempt: yes
* lisp/term/xterm.el (xterm--report-background-handler)
(xterm--report-foreground-handler): Record tty background and
foreground color in terminal parameters.
(xterm--version-handler): Also query foreground color.
(xterm--init): Also query foreground color; move background and
foreground color handling here.
(xterm--set-background-mode): Rename from
xterm-maybe-set-dark-background-mode; now always set background
mode to dark or light.
(xterm-maybe-update-default-face): Update default face
background and foreground colors to terminal reported values if
they have not yet been customized.
Bug#68486
* lisp/image/image-dired.el (image-dired-display-image): Refill
'image-dired-display-image-buffer' with image contents instead
of killing it.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules):
Fix issue with incomplete try/catch statements when try_definition
is parsed, but catch_declaration is not yet parsed (shows in tree
as ERROR). (Bug#80029)
* src/window.c (Fwindow_cursor_info): New function.
(syms_of_window): Defsubr it.
* doc/lispref/windows.texi (Window Point): Document it.
* etc/NEWS: Announce new function. (Bug#80023)
* lisp/progmodes/python.el (python-shell-eval-file-setup-code):
For Python 3, use built-in open instead of codecs.open to address the
deprecation of codecs.open in Python 3.14. (Bug#79723)
In 'python-shell-completion-get-completions', since output from the
inferior Python is expected to be in JSON format, commands being echoed
back or warning messages being output caused parsing errors. We
improved this by re-parsing only the last line when a parsing error
occurs, preventing echo-back or warning messages from affecting parsing.
* lisp/progmodes/python.el
(python-shell-completion-get-completions): Improved to re-parse
only the last line when a JSON parse error occurs. (Bug#79723)
* lisp/frame.el (clone-frame): Set the frame parameter
'cloned-from'.
(undelete-frame): Set the frame parameter 'undeleted'.
* src/frame.c (syms_of_frame): <Qcloned_from> <Qundeleted>: New
DEFSYM.
(syms_of_frame): Add 'Qcloned_from' and 'Qundeleted' to
'frame_internal_parameters'.
* doc/lispref/frames.texi: Document these frame parameters.
* etc/NEWS: Announce the new frame parameters.
* lisp/window.el (display-buffer): Add docs for several missing actions:
- display-buffer-in-atom-window
- display-buffer-in-direction
- display-buffer-in-side-window
- display-buffer-reuse-mode-window
- display-buffer-use-some-frame
Re-arrange the actions into a less-arbitrary sequence.
Re-word some descriptions to use a more consistent phrasing.
Re-wrap some lines (based on the longest pre-existing line), to reduce
the line count.
Un-link the `pop-up-frames' symbol in the alist entry listing.
(display-buffer--action-function-custom-type): Add missing actions,
and re-order as above.
(display-buffer-reuse-mode-window): Tweak the docstring for better
consistency with other display actions.
* lisp/tab-bar.el (tab-bar--reusable-frames): Implement support for the
`reusable-frames' value 0, for better consistency with other buffer
display actions. (bug#80092)