Preferred syntaxes are:
* FLUYT_X
* FLUYT_CC
* XML_ALIKE

Intact templates smart tool integration

By intact templates I refer to templates, I refer to templates, that can be used, just like their result. Java templates, that can be compiled into classes. And keep java editors happy enough. Html pages, that can be shown in browsers, including working javaScript. Or can be edited with visual editor. At least some of them. Those templates allow you to do quite a bit javaScript testing without the need to have the application running. But that requires some specific techniques, by the templating mechanism.

Mimicry

Techniques, that allow template code to integrate distraction free into a host language are call mimicry. The term stems from biology and means an organism, that resembles some traits on another thing to gain som advantage. Like harmless animal looks dangerous animal, or dangerous fish looks like harmless stone. You name it. In XML_ALIKE the region markup looks like a tag, in FLUYT_CC markup can be coated in comments.

Sourcecode example
Look alikes
Even with vanilla FLUYT syntax you can resemble name elements in languages like Java:
public $type get$Name$() {
But other syntaxes have explicit features for this. FLUYT_X resembles tags in namespace t:
<t:products default="No Products found."> ... </t:products>
Comment coating
Some of the allow comment coating in order to hide Snippetory syntax in comment, and by this avoid distraction of the tools dealing with the surrounding language. The comment mark up is then considered part of the Snippetory markup and thus will be removed while binding the data.
// $getters{ public $type get$Name$() { return $name$; } // }$
Mock portions
When working with comment coating it might be helpful to define some place holder, that vanishes during binding phase: /*$type(*/int/*)*/
Backward Replace
But sometimes that value required is so specific, that not even comment coding will work in it's own. The backward attribute relocates the target to the last occurrence of a regular expression before the original target:
resultset.getInt(i); // $type(backward='Int')
Randomly Select-able Syntax (RSS)
The switch-able syntax allows to select the syntax that best fits your actual needs at any point of the template. Especially the FLUYT_CC Syntax works well with java script, while FLUYT_X Syntax is optimized for html. If you have both in the same file, you might like to switch unsing the syntax selector.

Enjoy!

Bernd Ebertz Head, Founder and chief technology evangelist of
jproggy.org