Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
This commit is contained in:
commit
b4824faa62
10 changed files with 123 additions and 31 deletions
|
@ -2093,10 +2093,11 @@ Otherwise, Emacs uses @command{ssh}.
|
|||
@end enumerate
|
||||
|
||||
@cindex disabling remote files
|
||||
@cindex inhibit-remote-files
|
||||
@noindent
|
||||
You can entirely turn off the remote file name feature by setting the
|
||||
variable @code{tramp-mode} to @code{nil}. You can turn off the
|
||||
feature in individual cases by quoting the file name with @samp{/:}
|
||||
You can entirely turn off the remote file name feature by running
|
||||
@kbd{M-x inhibit-remote-files}. You can turn off the feature in
|
||||
individual cases by quoting the file name with @samp{/:}
|
||||
(@pxref{Quoted File Names}).
|
||||
|
||||
@cindex @code{ange-ftp}
|
||||
|
|
|
@ -3698,6 +3698,17 @@ between consecutive checks. For example:
|
|||
@end example
|
||||
@end defopt
|
||||
|
||||
@defmac without-remote-files body@dots{}
|
||||
The @code{without-remote-files} macro evaluates the @var{body} forms
|
||||
with deactivated file name handlers for remote files. Those file
|
||||
names would be handled literally.
|
||||
|
||||
The macro should be used only in forms where it is obvious, that
|
||||
remote files cannot appear or where it is intended not to handle
|
||||
remote file names. It also reduces checks with
|
||||
@code{file-name-handler-alist}, resulting in more performant code.
|
||||
@end defmac
|
||||
|
||||
@node Format Conversion
|
||||
@section File Format Conversion
|
||||
|
||||
|
|
|
@ -5851,16 +5851,6 @@ If you want to enable Ange FTP's syntax, add the following form:
|
|||
(tramp-change-syntax 'simplified)
|
||||
@end lisp
|
||||
|
||||
@item
|
||||
@vindex tramp-mode
|
||||
To disable both @value{tramp} (and Ange FTP), set @code{tramp-mode} to
|
||||
@code{nil} in @file{.emacs}. @strong{Note}, that we don't use
|
||||
@code{customize-set-variable}, in order to avoid loading @value{tramp}.
|
||||
|
||||
@lisp
|
||||
(setq tramp-mode nil)
|
||||
@end lisp
|
||||
|
||||
@item
|
||||
@vindex tramp-ignored-file-name-regexp
|
||||
To deactivate @value{tramp} for some look-alike remote file names, set
|
||||
|
@ -5877,6 +5867,29 @@ This is needed, if you mount for example a virtual file system on your
|
|||
local host's root directory as @file{/ssh:example.com:}.
|
||||
|
||||
@item
|
||||
@findex inhibit-remote-files
|
||||
To disable both @value{tramp} (and Ange FTP), type @kbd{M-x
|
||||
inhibit-remote-files @key{RET}}. You can also add this to your
|
||||
@file{.emacs}.
|
||||
|
||||
@lisp
|
||||
(inhibit-remote-files)
|
||||
@end lisp
|
||||
|
||||
@item
|
||||
@findex without-remote-files
|
||||
If you write code, which is intended to run only for local files, you
|
||||
can use the @code{without-remote-files} macro.
|
||||
|
||||
@lisp
|
||||
(without-remote-files @dots{})
|
||||
@end lisp
|
||||
|
||||
This improves performance, because many primitive file name operations
|
||||
don't check any longer for Tramp file name regexps then.
|
||||
|
||||
@item
|
||||
@findex tramp-unload-tramp
|
||||
To unload @value{tramp}, type @kbd{M-x tramp-unload-tramp @key{RET}}.
|
||||
Unloading @value{tramp} resets Ange FTP plugins also.
|
||||
@end itemize
|
||||
|
|
|
@ -29,10 +29,9 @@ problem, particularly on Mac OS. See github#1228 and github#1226.
|
|||
|
||||
** Fixed "onTypeFormatting" feature
|
||||
|
||||
This feature wasn't triggered for the 'newline' command because
|
||||
language servers often expect 10 (linefeed) to be the trigger
|
||||
character, but 'newline' emits 13 (carriage return). Also made this
|
||||
feature less chatty in the mode-line and messages buffer.
|
||||
For 'newline' commands, Eglot sometimes sent the wrong character code
|
||||
to the server. Also made this feature less chatty in the mode-line
|
||||
and messages buffer.
|
||||
|
||||
|
||||
* Changes in Eglot 1.15 (29/4/2023)
|
||||
|
|
27
etc/NEWS
27
etc/NEWS
|
@ -93,11 +93,12 @@ The 'tool-bar-position' frame parameter can be set to 'bottom' on all
|
|||
window systems other than Nextstep.
|
||||
|
||||
** cl-print
|
||||
*** You can expand the "..." truncation everywhere.
|
||||
The code that allowed "..." to be expanded in the *Backtrace* should
|
||||
now work anywhere the data is generated by `cl-print`.
|
||||
|
||||
*** hash-tables' contents can be expanded via the ellipsis
|
||||
*** You can expand the "..." truncation everywhere.
|
||||
The code that allowed "..." to be expanded in the "*Backtrace*" buffer
|
||||
should now work anywhere the data is generated by 'cl-print'.
|
||||
|
||||
*** hash-tables' contents can be expanded via the ellipsis.
|
||||
|
||||
** Modeline elements can now be right-aligned.
|
||||
Anything following the symbol 'mode-line-format-right-align' in
|
||||
|
@ -264,6 +265,8 @@ docstring, or a comment, or (re)indents the surrounding defun if
|
|||
point is not in a comment or a string. It is by default bound to
|
||||
'M-q' in 'prog-mode' and all its descendants.
|
||||
|
||||
** Which Function Mode
|
||||
|
||||
+++
|
||||
*** Which Function Mode can now display function names on the header line.
|
||||
The new user option 'which-func-display' allows choosing where the
|
||||
|
@ -300,6 +303,19 @@ sessions, respectively.
|
|||
It allows to kill only selected remote buffers, controlled by user
|
||||
option 'tramp-cleanup-some-buffers-hook'.
|
||||
|
||||
+++
|
||||
*** New command 'inhibit-remote-files'.
|
||||
This command disables the handling of file names with the special
|
||||
remote file name syntax. It should be applied only when remote files
|
||||
won't be used in this Emacs instance. It provides a slightly improved
|
||||
performance of file name handling in Emacs.
|
||||
|
||||
+++
|
||||
*** New macro 'without-remote-files'.
|
||||
This macro could wrap code which handles local files only. Due to the
|
||||
temporary deactivation of remote files, it results in a slightly
|
||||
improved performance of file name handling in Emacs.
|
||||
|
||||
** EWW
|
||||
|
||||
+++
|
||||
|
@ -602,7 +618,7 @@ behavior back for any other reason, you can do that using the
|
|||
'coding-system-put' function. For example, the following restores the
|
||||
previous behavior of showing 'U' in the mode line for 'koi8-u':
|
||||
|
||||
(coding-system-put 'koi8-u :mnemonic ?U)
|
||||
(coding-system-put 'koi8-u :mnemonic ?U)
|
||||
|
||||
+++
|
||||
** Infinities and NaNs no longer act as symbols on non-IEEE platforms.
|
||||
|
@ -611,6 +627,7 @@ tokens like 0.0e+NaN and 1.0e+INF are no longer read as symbols.
|
|||
Instead, the Lisp reader approximates an infinity with the nearest
|
||||
finite value, and a NaN with some other non-numeric object that
|
||||
provokes an error if used numerically.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 30.1
|
||||
|
||||
|
|
|
@ -2967,6 +2967,25 @@ whether HANDLER is to be called. Add operations defined in
|
|||
(put #'tramp-unload-file-name-handlers 'tramp-autoload t)
|
||||
(add-hook 'tramp-unload-hook #'tramp-unload-file-name-handlers)
|
||||
|
||||
;;;###autoload
|
||||
(progn (defun inhibit-remote-files ()
|
||||
"Deactivate remote file names."
|
||||
(interactive)
|
||||
(when (fboundp 'tramp-cleanup-all-connections)
|
||||
(funcall 'tramp-cleanup-all-connections))
|
||||
(tramp-unload-file-name-handlers)
|
||||
(setq tramp-mode nil)))
|
||||
|
||||
;;;###autoload
|
||||
(progn (defmacro without-remote-files (&rest body)
|
||||
"Deactivate remote file names temporarily.
|
||||
Run BODY."
|
||||
(declare (indent 0) (debug ((form body) body)))
|
||||
`(let ((file-name-handler-alist (copy-tree file-name-handler-alist))
|
||||
tramp-mode)
|
||||
(tramp-unload-file-name-handlers)
|
||||
,@body)))
|
||||
|
||||
;;; File name handler functions for completion mode:
|
||||
|
||||
;; This function takes action since Emacs 28.1, when
|
||||
|
|
|
@ -2447,18 +2447,16 @@ buffer."
|
|||
|
||||
(defun eglot--post-self-insert-hook ()
|
||||
"Set `eglot--last-inserted-char', maybe call on-type-formatting."
|
||||
(setq eglot--last-inserted-char last-input-event)
|
||||
(let ((ot-provider (eglot--server-capable :documentOnTypeFormattingProvider))
|
||||
;; transform carriage return into line-feed
|
||||
(adjusted-ie (if (= last-input-event 13) 10 last-input-event)))
|
||||
(setq eglot--last-inserted-char last-command-event)
|
||||
(let ((ot-provider (eglot--server-capable :documentOnTypeFormattingProvider)))
|
||||
(when (and ot-provider
|
||||
(ignore-errors ; github#906, some LS's send empty strings
|
||||
(or (eq adjusted-ie
|
||||
(or (eq eglot--last-inserted-char
|
||||
(seq-first (plist-get ot-provider :firstTriggerCharacter)))
|
||||
(cl-find adjusted-ie
|
||||
(cl-find eglot--last-inserted-char
|
||||
(plist-get ot-provider :moreTriggerCharacter)
|
||||
:key #'seq-first))))
|
||||
(eglot-format (point) nil adjusted-ie))))
|
||||
(eglot-format (point) nil eglot--last-inserted-char))))
|
||||
|
||||
(defvar eglot--workspace-symbols-cache (make-hash-table :test #'equal)
|
||||
"Cache of `workspace/Symbol' results used by `xref-find-definitions'.")
|
||||
|
|
|
@ -250,7 +250,8 @@ Prefer the enclosing string with fallback on sexp at point.
|
|||
(goto-char (nth 8 ppss))
|
||||
(cons (point) (progn (forward-sexp) (point))))
|
||||
;; At the beginning of the string
|
||||
(if (eq (char-syntax (char-after)) ?\")
|
||||
(if (let ((ca (char-after)))
|
||||
(and ca (eq (char-syntax ca) ?\")))
|
||||
(let ((bound (bounds-of-thing-at-point 'sexp)))
|
||||
(and bound
|
||||
(<= (car bound) (point)) (< (point) (cdr bound))
|
||||
|
@ -359,6 +360,10 @@ E.g.:
|
|||
(and (file-exists-p filename)
|
||||
filename)))
|
||||
|
||||
(put 'existing-filename 'bounds-of-thing-at-point
|
||||
(lambda ()
|
||||
(and (thing-at-point 'existing-filename)
|
||||
(bounds-of-thing-at-point 'filename))))
|
||||
(put 'existing-filename 'thing-at-point 'thing-at-point-file-at-point)
|
||||
|
||||
;; Faces
|
||||
|
|
|
@ -988,6 +988,20 @@ This tests also `file-executable-p', `file-writable-p' and `set-file-modes'."
|
|||
code tae tramp-archive-test-file-archive
|
||||
(concat tramp-archive-test-archive "foo"))))))))))
|
||||
|
||||
(ert-deftest tramp-archive-test49-without-remote-files ()
|
||||
"Check that Tramp can be suppressed."
|
||||
(skip-unless tramp-archive-enabled)
|
||||
|
||||
(should (file-exists-p tramp-archive-test-archive))
|
||||
(should-not (without-remote-files (file-exists-p tramp-archive-test-archive)))
|
||||
(should (file-exists-p tramp-archive-test-archive))
|
||||
|
||||
(inhibit-remote-files)
|
||||
(should-not (file-exists-p tramp-archive-test-archive))
|
||||
(tramp-register-file-name-handlers)
|
||||
(setq tramp-mode t)
|
||||
(should (file-exists-p tramp-archive-test-archive)))
|
||||
|
||||
(ert-deftest tramp-archive-test99-libarchive-tests ()
|
||||
"Run tests of libarchive test files."
|
||||
:tags '(:expensive-test :unstable)
|
||||
|
|
|
@ -8009,7 +8009,22 @@ process sentinels. They shall not disturb each other."
|
|||
(mapconcat #'shell-quote-argument load-path " -L ")
|
||||
(shell-quote-argument code)))))))
|
||||
|
||||
(ert-deftest tramp-test49-unload ()
|
||||
(ert-deftest tramp-test49-without-remote-files ()
|
||||
"Check that Tramp can be suppressed."
|
||||
(skip-unless (tramp--test-enabled))
|
||||
|
||||
(should (file-remote-p ert-remote-temporary-file-directory))
|
||||
(should-not
|
||||
(without-remote-files (file-remote-p ert-remote-temporary-file-directory)))
|
||||
(should (file-remote-p ert-remote-temporary-file-directory))
|
||||
|
||||
(inhibit-remote-files)
|
||||
(should-not (file-remote-p ert-remote-temporary-file-directory))
|
||||
(tramp-register-file-name-handlers)
|
||||
(setq tramp-mode t)
|
||||
(should (file-remote-p ert-remote-temporary-file-directory)))
|
||||
|
||||
(ert-deftest tramp-test50-unload ()
|
||||
"Check that Tramp and its subpackages unload completely.
|
||||
Since it unloads Tramp, it shall be the last test to run."
|
||||
:tags '(:expensive-test)
|
||||
|
|
Loading…
Add table
Reference in a new issue