tramp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to autoload Tramp methods


From: Eshel Yaron
Subject: Re: How to autoload Tramp methods
Date: Wed, 09 Oct 2024 08:04:11 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Michael Albinus <michael.albinus@gmx.de> writes:

> Eshel Yaron <me@eshelyaron.com> writes:
>
>> OK, but since this function asserts that a method is known and throws an
>> error otherwise, it seems like it's the only place that an extension
>> could hook into to be loaded just in time.
>
> One possible collateral damage is, that your patch could call one of the
> existing tramp-enable-*-method, like tramp-enable-toolbox-method, even if
> it is not intended. Too much trouble.

In my second suggestion I didn't use tramp-enable-*-method, but a new
convention tramp-*-method-params, so there's no such risk.  Anyway,
these are just examples of possible ways to facilitate lazy loading.

>>>> Interesting, wouldn't autoloading the call to tramp-enable-method end up
>>>> loading Tramp to define tramp-enable-method during Emacs start up?
>>>
>>> Yes, it would load tramp.el. But this is needed anyway, if you want
>>> Emacs to detect "/foo:host:/path/to/file" as remote file name.
>>
>> Unfortunately loading Tramp at start up is not really viable.  I don't
>> think it's necessary either: tramp-autoload-file-name-handler is in
>> file-name-handler-alist after start up, so Emacs does recognize
>> "/foo:host:/..." as a remote file name, and loads Tramp when needed.
>
> Then use
>
> ;;;###autoload
> (with-eval-after-load 'tramp
>   (tramp-enable-method "foo"))
>
> instead. Everything untested, of course.

This is more or less what the extensions you referred to seem to do.
I'm looking for a more refined solution: a way to load an extension only
if and when the method it provides is actually used, not as soon as
Tramp is loaded.  I might indeed use this approach until I find
something better, though.


Best,

Eshel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]