221 lines
4.1 KiB
Plaintext
221 lines
4.1 KiB
Plaintext
;; test.srt --- SRecode templates for testing
|
|
|
|
;; Copyright (C) 2008-2024 Free Software Foundation, Inc.
|
|
|
|
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
|
|
|
;; 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 <https://www.gnu.org/licenses/>.
|
|
|
|
set mode "srecode-template-mode"
|
|
set escape_start "$"
|
|
set escape_end "$"
|
|
set application "tests"
|
|
|
|
set UTESTVAR1 ".SRT VAR 1"
|
|
;;
|
|
;; These are for testing features of template files.
|
|
;;
|
|
context test
|
|
|
|
template test :user
|
|
----
|
|
$! This is a comment in the template. $
|
|
;; $AUTHOR$
|
|
;; $AUTHOR:upcase$
|
|
----
|
|
|
|
template subs :blank
|
|
----
|
|
;; Before Loop
|
|
$#LOOP$
|
|
;; - loop stuff
|
|
$/LOOP$
|
|
;; After Loop
|
|
----
|
|
|
|
;; Before insertion
|
|
;; After insertion
|
|
|
|
template firstlast
|
|
sectiondictionary "A"
|
|
set MOOSE "FIRST"
|
|
sectiondictionary "A"
|
|
set MOOSE "MIDDLE"
|
|
sectiondictionary "A"
|
|
set MOOSE "LAST"
|
|
----
|
|
$#A$
|
|
;; << -- $MOOSE$
|
|
$#FIRST$;; I'm First$/FIRST$
|
|
$#NOTFIRST$;; I'm Not First$/NOTFIRST$
|
|
$#LAST$;; I'm Last$/LAST$
|
|
$#NOTLAST$;; I'm Not Last$/NOTLAST$
|
|
;; -- >>
|
|
$/A$
|
|
----
|
|
|
|
|
|
template wrapsomething :region
|
|
----
|
|
;; Put this line in front:
|
|
$REGIONTEXT$
|
|
;; Put this line at the end:
|
|
----
|
|
|
|
template gapsomething :blank
|
|
----
|
|
### ALL ALONE ON A LINE ###
|
|
----
|
|
|
|
template inlinetext
|
|
"Insert text that has no newlines"
|
|
----
|
|
*In the middle*
|
|
----
|
|
|
|
template includable :blank
|
|
----
|
|
;; An includable $COMMENT$ we could use.
|
|
;; $INPUTNAME$$^$
|
|
;; Text after a point inserter.
|
|
----
|
|
|
|
template wrapinclude-basic
|
|
----
|
|
$>WI1:includable$
|
|
----
|
|
|
|
template wrapinclude-around
|
|
sectiondictionary "WI1"
|
|
set INPUTNAME "[VAR]"
|
|
----
|
|
$<WI1:includable$Intermediate Comments$/WI1$
|
|
----
|
|
|
|
template complex-subdict
|
|
sectiondictionary "A"
|
|
set MYVAR1 "cow"
|
|
set MYVAR2 "dog"
|
|
set CPLX "I have a " macro "MYVAR1" " and a " macro "MYVAR2" "."
|
|
----
|
|
;; $#A$$CPLX$$/A$
|
|
----
|
|
|
|
template wrap-new-template
|
|
sectiondictionary "NEWTMP"
|
|
set DOC "A nice doc string goes here."
|
|
----
|
|
$<NEWTMP:declaration:function$Random text in the new template
|
|
$/NEWTMP$
|
|
----
|
|
|
|
template column-data
|
|
sectiondictionary "A"
|
|
set MOOSE "FIRST"
|
|
sectiondictionary "A"
|
|
set MOOSE "VERY VERY LONG STRING THAT WILL BE CROPPED."
|
|
sectiondictionary "A"
|
|
set MOOSE "MIDDLE"
|
|
sectiondictionary "A"
|
|
set MOOSE "S"
|
|
sectiondictionary "A"
|
|
set MOOSE "LAST"
|
|
----
|
|
Table of Values:
|
|
Left Justified | Right Justified$#A$
|
|
$|MOOSE:20:right$ | $|MOOSE:20:left$$/A$
|
|
----
|
|
|
|
template custom-arg-handler :utest
|
|
sectiondictionary "A"
|
|
set MOOSE "why"
|
|
----
|
|
OUTSIDE SECTION: $UTESTVAR1$
|
|
INSIDE SECTION: $#A$$UTESTVAR1$$/A$
|
|
----
|
|
|
|
template custom-arg-w-arg :utestwitharg
|
|
----
|
|
Value of xformed UTWA: $UTESTARGXFORM$
|
|
----
|
|
|
|
template custom-arg-w-subdict :utestwitharg
|
|
sectiondictionary "UTLOOP"
|
|
set NAME "item1"
|
|
sectiondictionary "UTLOOP"
|
|
set NAME "item2"
|
|
sectiondictionary "UTLOOP"
|
|
set NAME "item3"
|
|
----
|
|
All items here: $FOO_item1$ $FOO_item2$ $FOO_item3$
|
|
----
|
|
|
|
template nested-dictionary-syntax-flat
|
|
section "TOP"
|
|
show SUB
|
|
set NAME "item1"
|
|
end
|
|
----
|
|
$#TOP$$#SUB$sub $/SUB$$NAME$$/TOP$
|
|
----
|
|
|
|
template nested-dictionary-syntax-nesting
|
|
section "TOP"
|
|
show SHOW1
|
|
set NAME "item1"
|
|
section "SUB"
|
|
show SHOW11
|
|
set NAME "item11"
|
|
end
|
|
show SHOW2
|
|
set NAME "item2"
|
|
section "SUB"
|
|
show SHOW21
|
|
set NAME "item21"
|
|
end
|
|
show SHOW3
|
|
set NAME "item3"
|
|
section "SUB"
|
|
show SHOW11
|
|
set NAME "item31"
|
|
section "SUB"
|
|
show SHOW311
|
|
set NAME "item311"
|
|
end
|
|
section "SUB"
|
|
show SHOW321
|
|
set NAME "item321"
|
|
end
|
|
end
|
|
end
|
|
----
|
|
$#TOP$$#SUB$$NAME$$#SUB$-$NAME$$/SUB$ $/SUB$$/TOP$
|
|
----
|
|
|
|
template nested-dictionary-syntax-mixed
|
|
section "TOP"
|
|
show SUB
|
|
set NAME "item1"
|
|
end
|
|
sectiondictionary "SECTION"
|
|
show SUB
|
|
set NAME "item2"
|
|
----
|
|
$#TOP$$NAME$$/TOP$ $#SECTION$$NAME$$/SECTION$
|
|
----
|
|
|
|
;; end
|