wiki:EmacsSnippetSupport

Version 1 (modified by desai, 14 years ago) (diff)

--

Using Bcfg2 with Emacs + YASnippet mode

This page describes using emacs with YASnippet mode with a set of snippets that allow quick composition of bundles. More snippets are under development.

  1. Download YASnippet from http://code.google.com/p/yasnippet/
  2. Install it into your emacs load path (typically ~/.emacs.d/site-lisp)
  3. Add YASnippet initialization to your .emacs (remember to re-byte-compile it if needed)
    (require 'yasnippet-bundle)
    (yas/define-snippets 'sgml-mode
    '(
      ("<Bundle" "<Bundle name='${1:bundlename}' version='2.0'>
       $0
    </Bundle>" nil)
      ("<Group" "<Group name='${1:groupname}>
       $0
    </Group>" nil)
      ("<Config" "<ConfigFile name='${1:filename}'/>
    $0" nil)
      ("<Service" "<Service name='${1:svcname}'/>
    $0" nil)
      ("<Package" "<Package name='${1:packagename}'/>
    $0" nil)
      ("<Action" "<Action name='${1:name}'/>
    $0" nil)
      ("<Directory" "<Directory name='${1:name}'/>
    $0" nil)
      ("<SymLink" "<SymLink name='${1:name}'/>
    $0" nil)
      ("<Permissions" "<Permissions name='${1:name}'/>
    $0" nil)
    )
    )
    
  4. One quick M-x eval-current-buffer, and this code is enabled

Each of these snippets activates on the opening element, ie <Bundle. After this string is entered, but before entering a space, press <TAB>, and the snippet will be expanded. The template will be inserted into the text with a set of input prompts, which default to overwrite mode and can be tabbed through.

The code above only works for bundles, but will be expanded to support base and other xml files as well.