Search code examples
emacstemplate-enginecode-snippets

What is the best code template facility for Emacs?


Particularly, what is the best snippets package out there?

Features:

  • easy to define new snippets (plain text, custom input with defaults)
  • simple navigation between predefined positions in the snippet
  • multiple insertion of the same custom input
  • accepts currently selected text as a custom input
  • cross-platform (Windows, Linux)
  • dynamically evaluated expressions (embedded code) written in a concise programming language (Perl, Python, Ruby are preferred)
  • nicely coexists with others packages in Emacs

Example of code template, a simple for loop in C:

for (int i = 0; i < %N%; ++i) {
  _
}

It is a lot of typing for such common code. I want to invoke a code template or snippet which inserts that boilerplate code for me. Additionally it stops (on TAB or other keystroke) at %N% (my input replaces it) and final position of the cursor is _.


Solution

  • TextMate's snippets is the most closest match but it is not a cross-platform solution and not for Emacs.

    The second closest thing is YASnippet (screencast shows the main capabilities). But it interferes with hippie-expand package in my setup and the embedded language is EmacsLisp which I'm not comfortable with outside .emacs.

    EDIT: Posted my answer here to allow voting on YASnippet.