summaryrefslogtreecommitdiffstats
path: root/doc/development/emacs_snippet.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/emacs_snippet.txt')
-rw-r--r--doc/development/emacs_snippet.txt60
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/development/emacs_snippet.txt b/doc/development/emacs_snippet.txt
new file mode 100644
index 000000000..2905a2b45
--- /dev/null
+++ b/doc/development/emacs_snippet.txt
@@ -0,0 +1,60 @@
+.. -*- mode: rst -*-
+
+.. _development-emacs_snippet:
+
+======================
+Emacs + YASnippet mode
+======================
+
+This page describes using emacs with YASnippet mode with a set of
+snippets that allow quick composition of bundles and base files.
+More snippets are under development.
+
+#. Download YASnippet from http://code.google.com/p/yasnippet/
+#. Install it into your emacs load path (typically ~/.emacs.d/site-lisp)
+#. Add YASnippet initialization to your .emacs (remember to re-byte-compile it if needed)
+
+ .. code-block:: cl
+
+ (require 'yasnippet-bundle)
+
+ ;;; Bcfg2 snippet
+
+ (yas/define-snippets 'sgml-mode
+ '(
+ ("<Bundle" "<Bundle name='${1:bundlename}' version='2.0'>
+ $0
+ </Bundle>" nil)
+ ("<Base" "<Base>
+ $0
+ </Base>" 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)
+ )
+ )
+
+#. 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 and base, but will be expanded
+to support other xml files as well.