From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: What to do about unmaintained ELPA packages Date: Tue, 31 May 2022 00:04:43 +0100 Message-ID: References: <87k0a42fc9.fsf@posteo.net> <8a6d74f7-b78f-3dad-1bd5-f41354f4391f@yandex.ru> <871qwb5wxv.fsf@posteo.net> <20220530225133.nw55m4mi6bco5c2x@Ergus> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000002c67b305e042aac0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20317"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Philip Kaludercic , Stefan Monnier , Dmitry Gutov , emacs-devel , Noam Postavsky To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 31 01:04:16 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nvoQp-000525-Pu for ged-emacs-devel@m.gmane-mx.org; Tue, 31 May 2022 01:04:16 +0200 Original-Received: from localhost ([::1]:50358 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nvoQo-0006D8-Dc for ged-emacs-devel@m.gmane-mx.org; Mon, 30 May 2022 19:04:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nvoQA-0005YL-Qd for emacs-devel@gnu.org; Mon, 30 May 2022 19:03:34 -0400 Original-Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:46924) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nvoQ8-0003OT-Ce for emacs-devel@gnu.org; Mon, 30 May 2022 19:03:34 -0400 Original-Received: by mail-oi1-x235.google.com with SMTP id m82so1585688oif.13 for ; Mon, 30 May 2022 16:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=P6I906wMcTGe39R4BdIXd8RT2/jM7rVaG0ohYeoh6Pw=; b=ZayBt8/dW/GCJSdQsDcE5dqdzXQD9XK3QpiLrwog5QcIP1aODEyMPO3DmCS9llPewx 3He1SFTYEYgftKQS1JsVzrELMifpx3k9aR23jGlY4hD7vQUDFuV7SM3QHTN0xCzgVKjx xSRF0cq9u0bquV5VRTom2fZ3x3uI53VF6uRiWhddyvr91VdPckoTQOTEXOvD3ANw3STL mw05CqyG8v/CfPHHZhCHR0nJJ+xCScvRTnnqNsCa+qgXB8cHO+etf5BjACUvROIFrfc7 VAk6YnHQJMcuR+sR6XMPay3zUD4hnD3VdWjMUmFIKv3K+f1zF6ceX67/n++bRkJVHS77 Sjgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=P6I906wMcTGe39R4BdIXd8RT2/jM7rVaG0ohYeoh6Pw=; b=BuPHlIkO+fEsYztTPe+Bk6A7R7/NoHjOFOU/ZiXabM6sILycIXIaY7Nc8pSpuWrT6h Z7qfYxz4GqeFdELfST/m0FQc+lGNCzGo9Ri6ukCifjD0gTIjggPcnXNNQNRbVn0PfjUN PEMYXO6MMeyx0JGdkji72NaC3B9vjhgsKD/x8NV2nWUTnKHbWBAzdMKSAgvaCh9621Pd 79DU0pIVhZA4wjN/7wzm+B5Pb4bVRcQ2Q+zMiBAAMDFybLEw3xdQOwzEXYq4vFQmHxzX 495udqy9kp4BK2F2l3qWwzBAcImEl/EewmJueEHWT9xTp1pwdIUGr7OKRZ/4wW5iwiyy 8n8w== X-Gm-Message-State: AOAM533Hr2RINWNDKxB5MPqDr5iCGhszKxoMGovCNWpBrOsGuivWvBgJ BKZAuM5mdB8aP1nScy6lZasT6s33sQgVuDK2Kbk= X-Google-Smtp-Source: ABdhPJwEft0dHXhTLMOib6+2GiEZc/VYORw5QxbBcEX558BmfaYr86ZKNZS0LXycB8xviRiOhf8jWksJIZpusOrDTVY= X-Received: by 2002:a05:6808:1583:b0:32b:709e:c6b9 with SMTP id t3-20020a056808158300b0032b709ec6b9mr10659865oiw.209.1653951811052; Mon, 30 May 2022 16:03:31 -0700 (PDT) In-Reply-To: <20220530225133.nw55m4mi6bco5c2x@Ergus> Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=joaotavora@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:290390 Archived-At: --0000000000002c67b305e042aac0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ergus, I think you're veering a little bit from the issue here, but the goal is no= t to throw anything away: I was just expounding my vision of a new snippet system with less code, less bugs, and less friction that is driven by LSP servers as more reliable owners and maintainers of snippet collections. For 2. I open one-shot ~/tmp/test.cpp files and type M-x eglot and get decent results all the time. Also bear works nicely for me. But mostly the C++ projects I've been doing lately use Cmake which creates a compile-commands.json file anyway. For number 5, just have yasnippet installed, simple as that: Eglo should pick it up by default. Any other problems, please start a conversation in Eglot's "discussions" panel, or, if you have complete information on how to recreate a given situation problem, create an issue. Anyway, it sounds like you are describing LSP/Eglot shortcomings. Sure, there are a lot of them, but trying to stop it is like trying to stop the tide, at least I feel it is. And it's been working fine for me (actually I've only very recently actually started using it, after having created maintained Eglot for it for 4+ years). Jo=C3=A3o On Mon, May 30, 2022 at 11:51 PM Ergus wrote: > On Mon, May 30, 2022 at 03:46:11PM +0100, Jo=EF=BF=BDo T=EF=BF=BDvora wro= te: > >On Mon, May 30, 2022 at 7:58 AM Philip Kaludercic > >wrote: > > > >> Dmitry Gutov 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 bu= gs > >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 o= ne > >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 a= nd > >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 le= ss > >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 wou= ld > >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 shoul= d > >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 iss= ue > >reports > >go unanswered? If the latter, then I think archiving the repo would mak= e > >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=EF=BF=BDo > > > 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. > --=20 Jo=C3=A3o T=C3=A1vora --0000000000002c67b305e042aac0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Ergus,

I think you're ve= ering a little bit from the issue here, but the goal is not
to th= row anything away: I was just expounding my vision of a new
s= nippet system with less code, less bugs, and less friction that is driven
by LSP servers as more reliable owners and maintainers of snippet =
collections.

For 2. = I open one-shot ~/tmp/test.cpp files and type M-x eglot and get decent
results all the time.=C2=A0 Also bear works nicely for me.=C2=A0 But = mostly the C++
projects I've been doing lately use Cmake whic= h creates a
compile-commands.json file anyway.

For number 5, just have yasnippet installed, simple as that= : Eglo should
pick it up by default.=C2=A0 Any other problems, pl= ease start a conversation in
Eglot's "discussions&q= uot; panel, or, if you have complete information on how to
recrea= te a given situation problem, create an issue.

Any= way, it sounds like you are describing LSP/Eglot shortcomings.=C2=A0 Sure, = there
are a lot of them, but trying to stop it is like trying to = stop the tide, at least
I feel it is.=C2=A0 And it's bee= n working fine for me (actually I've only very recently
actua= lly started using it, after having created maintained Eglot for it for 4+ <= br>
years).

Jo=C3=A3o
On Mon, M= ay 30, 2022 at 11:51 PM Ergus <spaci= bba@aol.com> wrote:
On Mon, May 30, 2022 at 03:46:11PM +0100, Jo=EF=BF=BDo T=EF=BF= =BDvora 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 a= bove
>> mentioned issue tracker, I find it increasingly difficult to say i= t is
>> "stable".=C2=A0 It is far from being "bitrotten&quo= t;, but there is plenty of
>> space between the two.
>
>
>Yes, I agree with this characterization.=C2=A0 Yasnippet's "di= splay engine",
>though
>highly tested (automatically and manually) is complex.=C2=A0 I recall s= ome bugs
>when interacting with other packages that make heavy use of indenting t= ricks
>and overlays.=C2=A0 While these are the minority (as far as I know), Or= g 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.=C2=A0 Integrating them would be hard and awkward and it would t= urn it
>into
>something else entirely. So, in that sense, Yasnippet is stable.
>
>One interesting area of Yasnippet development is in its 'snippet-en= gine'
>branch, in a file called simply snippet.e'.=C2=A0 It is the product= of an
>exchange of
>ideas between me and Stefan Monnier some years ago.=C2=A0 It's a ba= re-bones
>version
>of Yasnippet's snippet expansion and navigation engine, more effici= ent and
>Lisp-friendly.=C2=A0 The goal was to replace Yasnippet's engine in = the master
>branch
>with it.
>
>Alas, motivation fizzled and work stalled.=C2=A0 But it was pretty spif= fy and
>almost
>done.=C2=A0 As I recall, snippet definitions were simply Elisp forms, w= ritten in
>a
>nice DSL which was not particularly obtrusive.=C2=A0 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 throug= h LSP/eglot,
>completely transparently.=C2=A0 When used though LSP, a lot of Yasnippe= t's
>legacy,
>bug-prone, wish-I-was-Textmate, dont-really-know-elisp code isn't b= eing
>exercised at all.
>
>I've personally abandoned the idea of maintaining personal or share= d
>language-specific snippet collections via many little text files.=C2=A0= I would
>guess
>others have, too.=C2=A0 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 lang= uage, and
>snippet.el accepts Lisp forms (as it should).=C2=A0 But translating fro= m 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 t= rying to
>solve!
>Is it just the general idea of abandonment of the fact that people'= s issue
>reports
>go unanswered?=C2=A0 If the latter, then I think archiving the repo wou= ld make
>sense.=C2=A0 No
>more issue reports would come in and one could advertise the Emacs bug<= br> >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?=C2=A0 Or maybe it motivat= es 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 rig= hts.
>
>Jo=EF=BF=BDo


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.


--
Jo=C3=A3o T=C3=A1vora
--0000000000002c67b305e042aac0--