help-gnu-emacs
[Top][All Lists]
Advanced

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

no difference between interactive and "from Lisp" (was: Re: Making a fun


From: Emanuel Berg
Subject: no difference between interactive and "from Lisp" (was: Re: Making a function than can only be used interactively)
Date: Wed, 06 Jul 2022 01:30:27 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Stefan Monnier via Users list for the GNU Emacs text editor wrote:

>> Thought that (declare (interactive-only <foo>)) specifies
>> <foo> to work only interactively. Thus, what is the
>> "replacement" about?
>
> No, the function that's declared to be `interactive-only` is
> the function in which you place this `declare`. The <foo> is
> used in the warning's text to say something like "<blabla>
> is for interactive only; use <foo> instead".

I think in Emacs there should be no difference between
interactive and non-interactive functions. When it says in the
help or the byte-compiler says "do this instead" (or what it
says, exactly) that I think are the situations that should
be pruned.

OK, I found an example. So ... for example 

  This function [`beginning-of-buffer'] is for interactive use
  only; in Lisp code use `(goto-char (point-min))' instead.
  Probably introduced at or before Emacs version 22.1.

That's because `beginning-of-buffer' is in Elisp and
`goto-char' is in C, right?

Should be ways around it that are better, why not make
a C function that is called 'beginning-of-buffer' (i.e., the
same) that does (goto-char (point-min)) and only that, if one
wants the extra material in the current/existing
`beginning-of-buffer' that would be called something else and
that would be in Elisp. So the common case would be optimized
and that would be enforced with no difference for interactive
and non-interactive use.

And that should happen for many (all?) such cases and Elisp
should very seldom occur in the help since it should be pretty
obvious what the stuff does, and if anyone wants to use it, be
our guest in anyway s/he can think of using it.
It shouldn't matter.

OK, I'll stop :) You understood what I meant several
paragraphs ago ... *sigh*

Here is the Elisp that produces that message BTW:

  (declare (interactive-only "use `(goto-char (point-min))' instead."))

-- 
underground experts united
https://dataswamp.org/~incal




reply via email to

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