all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: joaotavora@gmail.com (João Távora)
To: emacs-devel@gnu.org
Subject: Re: Including Yasnippet to Emacs
Date: Mon, 17 Mar 2014 20:23:58 +0000	[thread overview]
Message-ID: <jjb61nc7ew1.fsf@gmail.com> (raw)
In-Reply-To: jwv38ig4ofd.fsf-monnier+emacs@gnu.org

Stefan <monnier@iro.umontreal.ca> writes:

> snippet.el is not designed to be user-friendly, but to be easy to
> integrate in a major-mode instead (yasnippet rather sucks in this
> regard, you end up needing to distribute umpteen little files
> instead).

Actually, you can compile these umpteen little files into one file per
mode. See `yas-compile-directory'. Few use it AFAIK, but it's there and
it should work (at least the tests show it does).

And that's because yasnippet already has an elisp interface to defining
snippets, `yas-define-snippets'. There is definitely some suckage to it,
otherwise I wouldn't be writing snippet.el, but users or distribtors
aren't forced to deal with those million files.

> [ BTW, part of the intention behind snippet.el is to make Edebug work
>   with them.  Si in some cases they may turn out to be more
>   user-friendly, rather than less so.  ]

Indeed, I've answered many bugs from those who don't understand why
snippets don't work as intended, and I don't blame them.

> As for "not so powerful", I'm not sure what you mean: they should be
> pretty much as powerful as yasnippet's since yasnippet will be written
> on top of them.  And of course, they can run any Lisp code you like.

Danil, snippet.el is in its core just as powerful as yasnippet. Just a
few bits are missing like in-snippet expansions and snippet revival
after undo, but I plan to (re)implement them all.

>> And they are all not manage keybindings.
> This layer is not provided yet, indeed.  E.g. I want to link snippet.el with
> abbrevs, so the "table of snippets" will be an abbrev table.

And I intend to keep the familiar yasnippet keying mechanism in
yasnippet.el. In general yasnippet will keep most backward
compatibility.

> more docs we could provide.  For snippet.el, it's still in flux and
> there are indeed no docs yet, IIRC.

`define-snippet's docstring contains the gist of what that main entry
point will be. It's quite heavy at 60 lines, so maybe parts of it belong
to the manual, but it should give you an idea of what the defined
snippets can do. Did you read this docstring, Danil?




  reply	other threads:[~2014-03-17 20:23 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-17  4:10 Including Yasnippet to Emacs Danil Orlov
2014-03-17 14:45 ` Stefan
2014-03-17 14:53   ` joakim
2014-03-17 17:15   ` João Távora
2014-03-17 17:42   ` Danil Orlov
2014-03-17 19:36     ` Stefan
2014-03-17 20:23       ` João Távora [this message]
2014-03-17 21:12         ` Danil Orlov
2014-03-17 21:09       ` Danil Orlov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jjb61nc7ew1.fsf@gmail.com \
    --to=joaotavora@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.