You can create new arguments for use in template files by writing new
Emacs Lisp functions. Doing so is easy. Here is an example for the
:user
argument:
(defun srecode-semantic-handle-:user (dict) "Add macros into the dictionary DICT based on the current :user." (srecode-dictionary-set-value dict "AUTHOR" (user-full-name)) (srecode-dictionary-set-value dict "LOGIN" (user-login-name)) ;; ... )
In this case, a function with the name prefix
srecode-semantic-handle-
that ends in :user
creates a
new argument :user
that can be used in a template.
Your argument handler must take one argument dict, which is the dictionary to fill in. Inside your function, you can do whatever you want, but adding dictionary values is the right thing.