1

I have a small snippet like this:

# -*- mode: snippet -*-
# name: options
# key: vop
# --
var options = {
    target:        '#$1',
    beforeSubmit:  showRequest,
    success:       showResponse
}$0

What I would like to do is to increment function name for each insertion. Like this:

var options1 = {
  target:        '#',
  beforeSubmit:  showRequest,
  success:       showResponse
}

var options2 = {
  target:        '#',
  beforeSubmit:  showRequest,
  success:       showResponse
}

etc... Is there a way to achieve this?

1

Yes, in yasnippet you can use elisp code, so it's easy:

# -*- mode: snippet -*-
# name: options
# key: vop
# --
var options`(if (boundp 'vop-count) (setq vop-count (1+ vop-count)) (setq vop-count 1) ) (vop-count)` = {
    target:        '#$1',
    beforeSubmit:  showRequest,
    success:       showResponse
}$0

If you wanna reset the counter, run (setq vop-count 0)

  • Thank you. But since I've less than 15 reputation I guess I can not choose it as accepted answer. – Erdem Nov 7 '16 at 13:15
  • @Erdem really? I didn't know that. It seems stupid since the this site should welcome newcomers. Anyway, glad to help :) – Jesse Nov 7 '16 at 14:09
  • @Erdem 15 reputation is the threshold for upvoting, you should still be able to accept the answer. emacs.stackexchange.com/help/someone-answers, emacs.stackexchange.com/help/privileges – npostavs Nov 7 '16 at 17:30
  • @npostavs after your post I recognized the accept answer button. But it looks faint so I couldn't recognize it until now. – Erdem Nov 7 '16 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.