Ergus, I think you're veering a little bit from the issue here, but the goal is not 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ão On Mon, May 30, 2022 at 11:51 PM Ergus wrote: > 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 > >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 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. > -- João Távora