emacs-devel
[Top][All Lists]
Advanced

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

Re: What to do about unmaintained ELPA packages


From: Ergus
Subject: Re: What to do about unmaintained ELPA packages
Date: Tue, 31 May 2022 00:51:33 +0200

On Mon, May 30, 2022 at 03:46:11PM +0100, Jo�o T�vora wrote:
On Mon, May 30, 2022 at 7:58 AM Philip Kaludercic <philipk@posteo.net>
wrote:

Dmitry Gutov <dgutov@yandex.ru> writes:

Considering the number of issues that have been gathering in the above
mentioned issue tracker, I find it increasingly difficult to say it is
"stable".  It is far from being "bitrotten", but there is plenty of
space between the two.


Yes, I agree with this characterization.  Yasnippet's "display engine",
though
highly tested (automatically and manually) is complex.  I recall some bugs
when interacting with other packages that make heavy use of indenting tricks
and overlays.  While these are the minority (as far as I know), Org is one
such package and it's pretty prominent.

On the other hand, last time browsed the issue tracker, there were very
many
specialized feature requests that wouldn't (IMO) make sense in the Yasnippet
engine.  Integrating them would be hard and awkward and it would turn it
into
something else entirely. So, in that sense, Yasnippet is stable.

One interesting area of Yasnippet development is in its 'snippet-engine'
branch, in a file called simply snippet.e'.  It is the product of an
exchange of
ideas between me and Stefan Monnier some years ago.  It's a bare-bones
version
of Yasnippet's snippet expansion and navigation engine, more efficient and
Lisp-friendly.  The goal was to replace Yasnippet's engine in the master
branch
with it.

Alas, motivation fizzled and work stalled.  But it was pretty spiffy and
almost
done.  As I recall, snippet definitions were simply Elisp forms, written in
a
nice DSL which was not particularly obtrusive.  snippet.el is more or less
yasnippet.el done right.

snippet.el could be useful in light of a relatively recent development:
LSP.

If I've ever actually used Yasnippet recently, it's been through LSP/eglot,
completely transparently.  When used though LSP, a lot of Yasnippet's
legacy,
bug-prone, wish-I-was-Textmate, dont-really-know-elisp code isn't being
exercised at all.

I've personally abandoned the idea of maintaining personal or shared
language-specific snippet collections via many little text files.  I would
guess
others have, too.  LSP servers simply maintain that collection for you, as
they do so many other things, and that's agreeable to me.

It's true that LSP still uses the Textmate snippet description language, and
snippet.el accepts Lisp forms (as it should).  But translating from the
former
to the latter isn't very hard (in fact someone over at the repo did it some
years
ago).

To summarize, I don't have any particularly strong opinion on what should
be done
with Yasnippet. In fact, I don't even know what problem Philip is trying to
solve!
Is it just the general idea of abandonment of the fact that people's issue
reports
go unanswered?  If the latter, then I think archiving the repo would make
sense.  No
more issue reports would come in and one could advertise the Emacs bug
tracker.
Would that improve things?

I do think that it's important to preserve the documentation though, as
many people
seem to refer to it still. Or maybe transfer it to a more GNU ELPAish
location/format.

Who knows if the description above motivates someone to pick up
'snippet.el',
finalize it, and make a new GNU ELPA package?  Or maybe it motivates someone
to pick up the maintenance of the existing Yasnippet.

So let me and Noam know if you wish me to do something admin with the
repository.
While Noam is the official maintainer, I think I still retain those rights.

Jo�o


Hi Joao:

So far depending too much on lsp has some issues I am not sure they are
all already solved in order to make yasnippet substitute its backends:

1) LSP+Tramp works pretty bad; specially with relatively big/medium
projects it becaumes extremely slow and gives the error message of
reentrant calls... also it depends on having LSP on the remote host.

2) It is difficult to use LSP for quick tests.. suppose it wants to test
a simple program... usually I open /tmp/main.c and start writing... with
LSP Eglot it needs to know how to compile it to give completions like
inserting main(int argc...). flymake depends on a Makefile, LSP of a
database...

3) Bear is also problematic as it now adds a lost of extra dependencies,
so projects with autotools has a problem to create the build
database...

4) When build is out of source (something that is becoming more common
in autotools and cmake also prefers) the build and database creation and
update requires constant extra effort, something most of the IDE do for
the user.

5) Do you have documented how to make eglot integration with yasnippet?
Because I can't make it work.

If you have ways to go around these issues I will be very grated if you
share them, so I could try eglot+yasnippet for daily use.

Thanks in advance Ergus.


reply via email to

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