diff options
Diffstat (limited to 'etc/srecode/c.srt')
-rw-r--r-- | etc/srecode/c.srt | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/etc/srecode/c.srt b/etc/srecode/c.srt new file mode 100644 index 00000000000..14d51ed02e6 --- /dev/null +++ b/etc/srecode/c.srt @@ -0,0 +1,164 @@ +;;; c.srt --- SRecode templates for c-mode + +;; Copyright (C) 2007, 2008, 2009, 2010, 2012 Free Software Foundation, Inc. + +;; Author: Eric M. Ludlam <eric@siege-engine.com> + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +set mode "c-mode" + +set comment_start "/**" +set comment_end " */" +set comment_prefix " *" + +;; OVERRIDE THIS in your user or project template file to whatever +;; you use for your project. +set HEADEREXT ".h" + +context file + +template empty :time :user :file :c +---- +{{>:filecomment}} + +{{#NOTHEADER}} + +{{^}} +{{/NOTHEADER}} +{{#HEADER}} +{{>:header_guard}} +{{/HEADER}} +---- + +template header_guard :file :blank +---- +#ifndef {{FILENAME_SYMBOL}} +#define {{FILENAME_SYMBOL}} 1 + +{{^}} + +#endif // {{FILENAME_SYMBOL}} +---- + +context misc + +template arglist +"Insert an argument list for a function. +@todo - Support smart CR in a buffer for not too long lines." +---- +({{#ARGS}}{{TYPE}} {{NAME}}{{#NOTLAST}},{{/NOTLAST}}{{/ARGS}}) +---- + +context declaration + +prompt TYPE "Return Type: " + +template function :indent :blank +"Insert a function declaration." +---- +{{?TYPE}} {{?NAME}}{{>:misc:arglist}} +{{#INITIALIZERS}}{{>B:initializers}}{{/INITIALIZERS}} +{ +{{^}} +} +---- +bind "f" + +template function-prototype :indent :blank +"Insert a function declaration." +---- +{{?TYPE}} {{?NAME}}{{>:misc:arglist}}; +---- + + +prompt TYPE "Data Type: " + +template variable :indent :blank +"Insert a variable declaration." +---- +{{?TYPE}} {{?NAME}}{{#HAVEDEFAULT}} = {{DEFAULT}}{{/HAVEDEFAULT}}; +---- +bind "v" + +template variable-prototype :indent :blank +"Insert a variable declaration." +---- +{{?TYPE}} {{?NAME}}; +---- +bind "v" + + +template include :blank +"An include statement." +---- +#include "{{?NAME}}" +---- +bind "i" + +template system-include :blank +"An include statement." +---- +#include <{{?NAME}}> +---- +bind "i" + +template label :blank :indent +---- + {{?NAME}}: +---- + +context declaration + +template comment-function :indent :blank +"Used to put a nice comment in front of a function. +Override this with your own preference to avoid using doxygen" +---- +{{>A:declaration:doxygen-function}} +---- + +;;; DOXYGEN FEATURES +;; +;; +context declaration + +template doxygen-function :indent :blank +---- +/** + * @name {{NAME}} - {{DOC}}{{^}}{{#ARGS}} + * @param {{NAME}} - {{DOC}}{{/ARGS}} + * @return {{TYPE}} + */ +---- + +template doxygen-variable-same-line +---- +/**< {{DOC}}{{^}} */ +---- + +template doxygen-section-comment :blank :indent +"Insert a comment that separates sections of an Emacs Lisp file." +---- + +/** {{?TITLE}} + * + * {{^}} + */ + +---- + + +;; end |