<template name="echo" description="echo a string" context="php" enabled="true">echo "${string}";
${cursor}</template>
+ <!-- phpdoc -->
+
+ <template description="<code></code>" name="<code>" context="phpdoc"
+ ><code>${cursor}</code></template>
+
+ <template description="<code>null</code>" name="<code>" context="phpdoc"
+ ><code>null</code></template>
+
+ <template description="<pre></pre>" name="<pre>" context="phpdoc"
+ ><pre>${cursor}</pre></template>
+
+ <template description="<b></b>" name="<b>" context="phpdoc"
+ ><b>${cursor}</b></template>
+
+ <template description="<i></i>" name="<i>" context="phpdoc"
+ ><i>${cursor}</i></template>
+
+ <template description="author name" name="@author" context="phpdoc"
+ >@author ${user}</template>
+
<template name="<html" description="html page with head,title,body" context="html" enabled="true">
- <html>
- <head>
- <title>${title}</title>
- </head>
- <body>
- ${cursor}
- </body>
- </html>
+<html>
+<head>
+<meta http-equiv="Content-Language" content="en" />
+<meta name="GENERATOR" content="PHPEclipse 1.0" />
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<title>${title}</title>
+</head>
+<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
+${cursor}
+</body>
+</html>
</template>
<template name="<title" description="title" context="html" enabled="true">
<title>${cursor}</title>
<template name="<p" description="paragraph" context="html" enabled="true">
<p>${cursor}</p>
</template>
- <template name="<pre" description="preformated text" context="html" enabled="true">
+ <template name="<h1" description="heading 1" context="html" enabled="true">
+ <h1>${cursor}</h1>
+ </template>
+ <template name="<h2" description="heading 2" context="html" enabled="true">
+ <h2>${cursor}</h2>
+ </template>
+ <template name="<h3" description="heading 3" context="html" enabled="true">
+ <h3>${cursor}</h3>
+ </template>
+ <template name="<h4" description="heading 4" context="html" enabled="true">
+ <h4>${cursor}</h4>
+ </template>
+ <template name="<h5" description="heading 5" context="html" enabled="true">
+ <h5>${cursor}</h5>
+ </template>
+ <template name="<h6" description="heading 6" context="html" enabled="true">
+ <h6>${cursor}</h6>
+ </template>
+ <template name="<address" description="address" context="html" enabled="true">
+ <address>${cursor}</address>
+ </template>
+ <template name="<pre" description="preformat" context="html" enabled="true">
<pre>${cursor}</pre>
</template>
- <template name="<blockquote" description="blockquoted text" context="html" enabled="true">
- <blockquote>${cursor}</blockquote>
+ <template name="<code" description="code block" context="html" enabled="true">
+ <code>${cursor}</code>
+ </template>
+ <template name="<blockquote" description="blockquote" context="html" enabled="true">
+ <blockquote>${cursor}<br/>
+ </blockquote>
+ </template>
+ <template name="<hr" description="horizontal line" context="html" enabled="true">
+ <hr width="100%" size="2">
+ ${cursor}
+ </template>
+ <template name="<ul" description="bulleted list" context="html" enabled="true">
+ <ul>
+ <li>${item1}<br/>
+ </li>
+ <li>${item2}<br/>
+ </li>
+ </ul>
+ </template>
+ <template name="<ol" description="numbered list" context="html" enabled="true">
+ <ol>
+ <li>${item1}<br/>
+ </li>
+ <li>${item2}<br/>
+ </li>
+ </ol>
+ </template>
+ <template name="<dl" description="term list" context="html" enabled="true">
+ <dl>
+ <dt>${item1}<br/>
+ </dt>
+ <dt>${item2}<br/>
+ </dt>
+ </dl>
+ </template>
+ <template name="<dl" description="definition list" context="html" enabled="true">
+ <dl>
+ <dd>${item1}<br/>
+ </dd>
+ <dd>${item2}<br/>
+ </dd>
+ </dl>
+ </template>
+ <template name="<form" description="form get" context="html" enabled="true">
+ <form action="${link}" method="${get}">
+ ${cursor}
+ </form>
+ </template>
+ <template name="<form" description="form post" context="html" enabled="true">
+ <form action="${link}" method="${post}" enctype="text/plain">
+ ${cursor}
+ </form>
+ </template>
+ <template name="<form" description="form upload file" context="html" enabled="true">
+ <form action="${link}" method="${post}" enctype="multipart/form-data">
+ <p>${text}</p>
+ <input type="file" name="${name}" size="50" maxlength="100000" accept="text/*"/><br/>
+ <input type="submit" value="${value}"/>
+ ${cursor}
+ </form>
+ </template>
+ <template name="<input" description="input type=text (form)" context="html" enabled="true">
+ <input type="text" name="${name}" value="${value}" size="40" maxlength="40"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=password (form)" context="html" enabled="true">
+ <input type="password" name="${name}" size="40" maxlength="40"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=radio (form)" context="html" enabled="true">
+ <input type="radio" name="${name}" value="${value}"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=checkbox (form)" context="html" enabled="true">
+ <input type="checkbox" name="${name}" value="${value}"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=button (form button)" context="html" enabled="true">
+ <input type="button" name="${name}" value="${value}"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=submit (form button)" context="html" enabled="true">
+ <input type="submit" name="${name}" value="${value}"/>
+ ${cursor}
+ </template>
+ <template name="<input" description="input type=reset (form button)" context="html" enabled="true">
+ <input type="reset" name="${name}" value="${value}"/>
+ ${cursor}
+ </template>
+ <template name="<textarea" description="textarea (form)" context="html" enabled="true">
+ <textarea name="${name}" rows="10" cols="50" wrap="off">
+ ${text}
+ </textarea>
+ ${cursor}
+ </template>
+ <template name="<select" description="select option (form)" context="html" enabled="true">
+ <select name="${name}" size="3">
+ <option value="${value1}">${option1}</option>
+ <option value="${value2}">${option2}</option>
+ <option value="${value3}">${option3}</option>
+ </select>
</template>
<template name="<xml" description="xml version=1.0" context="html" enabled="true">
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="${url}">
${cursor}
</template>
-
+ <template name="<script" description="JavaScript inline" context="html" enabled="true"><script language="JavaScript" type="text/javascript">
+ ${cursor}
+</script>
+ </template>
+ <template name="<script" description="JavaScript file" context="html" enabled="true"><script language="JavaScript" type="text/javascript" src="${jsfile}.js"></script>${cursor}
+ </template>
+ <template name="<style" description="style text/css" context="html" enabled="true"></style type="text/css">
+<!--
+ ${cursor}
+-->
+</style>
+ </template>
<template name="&quot" description="quot" context="html" enabled="true">&quot;</template>
<template name="&amp" description="ampersand" context="html" enabled="true">&amp;</template>
<template name="&lt" description="less than" context="html" enabled="true">&lt;</template>
<template name="&thorn" description="thorn" context="html" enabled="true">&thorn;</template>
<template name="&yuml" description="yuml" context="html" enabled="true">&yuml;</template>
-
-
+ <template name="#00FFFF" description="Aqua (Color Code)" context="html" enabled="true">#00FFFF</template>
<template name="#000000" description="Black (Color Code)" context="html" enabled="true">#000000</template>
<template name="#0000FF" description="Blue (Color Code)" context="html" enabled="true">#0000FF</template>
<template name="#A52A2A" description="Brown (Color Code)" context="html" enabled="true">#A52A2A</template>
<template name="#00FFFF" description="Cyan (Color Code)" context="html" enabled="true">#00FFFF</template>
+ <template name="#FF00FF" description="Fuchsia (Color Code)" context="html" enabled="true">#FF00FF</template>
<template name="#FFD700" description="Gold (Color Code)" context="html" enabled="true">#FFD700</template>
- <template name="#808080" description="Grey (Color Code)" context="html" enabled="true">#808080</template>
+ <template name="#808080" description="Gray (Color Code)" context="html" enabled="true">#808080</template>
<template name="#008000" description="Green (Color Code)" context="html" enabled="true">#008000</template>
+ <template name="#00FF00" description="Lime (Color Code)" context="html" enabled="true">#00FF00</template>
<template name="#FF00FF" description="Magenta (Color Code)" context="html" enabled="true">#FF00FF</template>
+ <template name="#800000" description="Maroon (Color Code)" context="html" enabled="true">#800000</template>
+ <template name="#000080" description="Navy (Color Code)" context="html" enabled="true">#000080</template>
+ <template name="#808000" description="Olive (Color Code)" context="html" enabled="true">#808000</template>
<template name="#FFA500" description="Orange (Color Code)" context="html" enabled="true">#FFA500</template>
<template name="#FFC0CB" description="Pink (Color Code)" context="html" enabled="true">#FFC0CB</template>
<template name="#800080" description="Purple (Color Code)" context="html" enabled="true">#800080</template>
<template name="#FF0000" description="Red (Color Code)" context="html" enabled="true">#FF0000</template>
<template name="#C0C0C0" description="Silver (Color Code)" context="html" enabled="true">#C0C0C0</template>
+ <template name="#008080" description="Teal (Color Code)" context="html" enabled="true">#008080</template>
<template name="#FFFFFF" description="White (Color Code)" context="html" enabled="true">#FFFFFF</template>
<template name="#FFFF00" description="Yellow (Color Code)" context="html" enabled="true">#FFFF00</template>
+ <template name="Aqua" description="Aqua (Color Code)" context="html" enabled="true">#00FFFF</template>
<template name="Black" description="Black (Color Code)" context="html" enabled="true">#000000</template>
<template name="Blue" description="Blue (Color Code)" context="html" enabled="true">#0000FF</template>
<template name="Brown" description="Brown (Color Code)" context="html" enabled="true">#A52A2A</template>
<template name="Cyan" description="Cyan (Color Code)" context="html" enabled="true">#00FFFF</template>
+ <template name="Fuchsia" description="Fuchsia (Color Code)" context="html" enabled="true">#FF00FF</template>
<template name="Gold" description="Gold (Color Code)" context="html" enabled="true">#FFD700</template>
- <template name="Grey" description="Grey (Color Code)" context="html" enabled="true">#808080</template>
+ <template name="Gray" description="Gray (Color Code)" context="html" enabled="true">#808080</template>
<template name="Green" description="Green (Color Code)" context="html" enabled="true">#008000</template>
+ <template name="Lime" description="Lime (Color Code)" context="html" enabled="true">#00FF00</template>
<template name="Magenta" description="Magenta (Color Code)" context="html" enabled="true">#FF00FF</template>
+ <template name="Maroon" description="Maroon (Color Code)" context="html" enabled="true">#800000</template>
+ <template name="Navy" description="Mavy (Color Code)" context="html" enabled="true">#000080</template>
+ <template name="Olive" description="Olive (Color Code)" context="html" enabled="true">#808000</template>
<template name="Orange" description="Orange (Color Code)" context="html" enabled="true">#FFA500</template>
<template name="Pink" description="Pink (Color Code)" context="html" enabled="true">#FFC0CB</template>
<template name="Purple" description="Purple (Color Code)" context="html" enabled="true">#800080</template>
<template name="Red" description="Red (Color Code)" context="html" enabled="true">#FF0000</template>
<template name="Silver" description="Silver (Color Code)" context="html" enabled="true">#C0C0C0</template>
+ <template name="Teal" description="Teal (Color Code)" context="html" enabled="true">#008080</template>
<template name="White" description="White (Color Code)" context="html" enabled="true">#FFFFFF</template>
- <template name="Yelow" description="Yellow (Color Code)" context="html" enabled="true">#FFFF00</template>
+ <template name="Yellow" description="Yellow (Color Code)" context="html" enabled="true">#FFFF00</template>
+ <template name="<br>" description="<br>" context="html" enabled="true"><br/>${cursor}</template>
+ <template name="<div>" description="div block with id" context="html" enabled="true"><div id="${id}">${cursor}</div></template>
+ <template name="<strong>" description="<strong>" context="html" enabled="true"><strong>${cursor}</strong></template>
+ <template name="@author" description="author name email" context="phpdoc" enabled="true">@author ${user} <${email}></template>
+ <template name="@access" description="access private" context="phpdoc" enabled="true">@access private</template>
+ <template name="@access" description="access protected" context="phpdoc" enabled="true">@access protected</template>
+ <template name="@access" description="access public" context="phpdoc" enabled="true">@access public</template>
+ <template name="@category" description="category" context="phpdoc" enabled="true">@category ${categoryname}</template>
+ <template name="@copyright" description="copyright" context="phpdoc" enabled="true">@copyright Copyright &copy; ${year}, ${user}</template>
+ <template name="@deprecated" description="deprecated version date" context="phpdoc" enabled="true">@deprecated ${version} - ${date}</template>
+ <template name="@example" description="example path description" context="phpdoc" enabled="true">@example ${path} ${description}</template>
+ <template name="@abstract" description="abstract" context="phpdoc" enabled="true">@abstract</template>
+ <template name="@final" description="final" context="phpdoc" enabled="true">@final</template>
+ <template name="@filesource" description="filesource" context="phpdoc" enabled="true">@filesource</template>
+ <template name="@global" description="global datatype globalvariable" context="phpdoc" enabled="true">@global ${datatype} ${globalvariable}</template>
+ <template name="@global" description="global datatype description" context="phpdoc" enabled="true">@global ${datatype} ${description}</template>
+ <template name="@ignore" description="ignore" context="phpdoc" enabled="true">@ignore</template>
+ <template name="@internal " description="internal comment" context="phpdoc" enabled="true">@internal ${comment}</template>
+ <template name="@license" description="license url name" context="phpdoc" enabled="true">@license ${url} ${nameoflicense}</template>
+ <template name="@link" description="link url description" context="phpdoc" enabled="true">@link ${url} ${description}</template>
+ <template name="@name" description="name globalvariable" context="phpdoc" enabled="true">@name ${globalvariable}</template>
+ <template name="@package" description="package packagename" context="phpdoc" enabled="true">@package ${packagename}</template>
+ <template name="@param" description="param datatype paramname description" context="phpdoc" enabled="true">@param ${datatype} ${paramname} ${description}</template>
+ <template name="@param" description="param datatype paramname" context="phpdoc" enabled="true">@param ${datatype} ${paramname}</template>
+ <template name="@return" description="return datatype description" context="phpdoc" enabled="true">@return ${datatype} ${description}</template>
+ <template name="@see" description="see element" context="phpdoc" enabled="true">@see ${element}</template><template name="@since" description="since version date" context="phpdoc" enabled="true">@since ${version} - ${date}</template>
+ <template name="@staticvar" description="staticvar datatype description" context="phpdoc" enabled="true">@staticvar ${datatype} ${description}</template>
+ <template name="@subpackage" description="subpackage subpackagename" context="phpdoc" enabled="true">@subpackage ${subpackagename}</template>
+ <template name="@todo" description="@todo information_string" context="phpdoc" enabled="true">@todo ${information_string}</template>
+ <template name="@tutorial" description="tutorial string description" context="phpdoc" enabled="true">@tutorial ${string} ${description}</template>
+ <template name="@uses" description="uses element description" context="phpdoc" enabled="true">@uses ${element} ${description}</template>
+ <template name="@var" description="var datatype description" context="phpdoc" enabled="true">@var ${datatype} ${description}</template>
+ <template name="@version" description="version versionstring" context="phpdoc" enabled="true">@version ${versionstring}</template>
+ <template name="{" description="{* *} (Smarty comment)" context="html" enabled="true">{* ${cursor} *}</template>
+ <template name="{assign" description="{assign var= value= } (Smarty)" context="html" enabled="true">{assign var="${name}" values="${value}"}</template>
+ <template name="{capture" description="{capture }{/capture} (Smarty)" context="html" enabled="true">{capture name=${name}}
+${cursor}
+{/capture}</template>
+<template name="{config_load" description="{config_load} (Smarty)" context="html" enabled="true">{config_load file="${file}"}</template>
+<template name="{config_load" description="{config_load} with section (Smarty)" context="html" enabled="true">{config_load file="${file}" section="${section}"}</template>
+<template name="{counter" description="{counter start= skip= print= } (Smarty)" context="html" enabled="true">{counter start=${start} skip=${skip} print=false}</template>
+<template name="{counter" description="{counter} (Smarty)" context="html" enabled="true">{counter}</template><template name="{cycle" description="{cycle values= } (Smarty)" context="html" enabled="true">{cycle values="${values}"}</template>
+<template name="{eval" description="{eval var=#conf#} (Smarty)" context="html" enabled="true">{eval var=#${conf}#}</template>
+<template name="{eval" description="{eval var=$var} (smarty)" context="html" enabled="true">{eval var=$$${var}}</template>
+<template name="{fetch" description="{fetch file=} (Smarty)" context="html" enabled="true">{fetch file="${file}"}</template>
+<template name="{foreach" description="{foreach}{/foreach} (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item}}
+${cursor}
+{/foreach}</template>
+<template name="{foreach" description="{foreach}{/foreach} with key (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item} key=${key}}
+${cursor}
+{/foreach}</template>
+<template name="{foreach" description="{foreach}{/foreach} with name (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item} name=${name}}
+${cursor}
+{/foreach}</template>
+<template name="{foreach" description="{foreach}{foreachelse}{/foreach} (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item}}
+${cursor}
+{foreachelse}
+${cursor}
+{/foreach}</template>
+<template name="{foreach" description="{foreach}{foreachelse}{/foreach} with key (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item} key=${key}}
+${cursor}
+{foreachelse}
+${cursor}
+{/foreach}</template>
+<template name="{foreach" description="{foreach}{foreachelse}{/foreach} with name (Smarty)" context="html" enabled="true">{foreach from=$$${from} item=${item} name=${name}}
+${cursor}
+{foreachelse}
+${cursor}
+{/foreach}</template>
+<template name="{if" description="{if}{/if} (Smarty)" context="html" enabled="true">{if $$${var}}${cursor}{/if}</template><template name="{if" description="{if}{elseif}{/if} (Smarty)" context="html" enabled="true">{if $$${var}}
+${cursor}
+{elseif $$${var2}}
+
+{/if}</template><template name="{if" description="{if}{elseif}{else}{/if} (Smarty)" context="html" enabled="true">{if $$${var}}
+${cursor}
+{elseif $$${var2}}
+
+{else}
+
+{/if}</template>
+<template name="{if" description="{if}{else}{/if} (Smarty)" context="html" enabled="true">{if $$${var}}
+${cursor}
+{else}
+
+{/if}</template><template name="{include" description="{include file=""} (Smarty)" context="html" enabled="true">{include file="${file}"}</template>
+<template name="{include_php" description="{include_php file=""} (Smarty)" context="html" enabled="true">{include_php file="${file}"}</template>
+<template name="{ldelim}" description="{ldelim} (Smarty)" context="html" enabled="true">{ldelim}</template>
+<template name="{literal" description="{literal}{/literal} (Smarty)" context="html" enabled="true">{literal}
+${cursor}
+{/literal}</template>
+<template name="{rdelim}" description="{rdelim} (Smarty)" context="html" enabled="true">{rdelim}</template>
+<template name="{section" description="{section }{/section} (Smarty)" context="html" enabled="true">{section name=${name} loop=$$${loop}}
+${cursor}
+{/section}</template><template name="{section" description="{section}{sectionelse}{/section} (Smarty)" context="html" enabled="true">{section name=${name} loop=$$${loop}}
+${cursor}
+{sectionelse}
+{/section}</template><template name="{smarty.cookies.var}" description="{$smarty.cookies.var} (Smarty)" context="html" enabled="true">{$$smarty.cookies.${var}}</template>
+<template name="{smarty.env.var}" description="{$smarty.env.var} (Smarty)" context="html" enabled="true">{$$smarty.env.${var}}</template>
+<template name="{smarty.get.var}" description="{$smarty.get.var} (Smarty)" context="html" enabled="true">{$$smarty.get.${var}}</template>
+<template name="{smarty.now|date_format}" description="{$smarty.now|date_format} (Smarty)" context="html" enabled="true">{$$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}</template>
+<template name="{smarty.now}" description="{$smarty.now} (Smarty)" context="html" enabled="true">{$$smarty.now}</template>
+<template name="{smarty.post.var}" description="{$smarty.post.var} (Smarty)" context="html" enabled="true">{$$smarty.post.${var}}</template>
+<template name="{smarty.request.var}" description="{$smarty.request.var} (Smarty)" context="html" enabled="true">{$$smarty.request.${var}}</template>
+<template name="{smarty.server.var}" description="{$smarty.server.var} (Smarty)" context="html" enabled="true">{$$smarty.server.${var}}</template>
+<template name="{strip" description="{strip}{/strip} (Smarty)" context="html" enabled="true">{strip}
+${cursor}
+{/strip}</template>
+<template name="{var|capitalize}" description="{$var|capitalize} (Smarty)" context="html" enabled="true">{$$${var}|capitalize}</template>
+<template name="{var|count_characters}" description="{$var|count_characters} (Smarty)" context="html" enabled="true">{$$${var}|count_characters}</template>
+<template name="{var|count_paragraphs}" description="{$var|count_paragraphs} (Smarty)" context="html" enabled="true">{$$${var}|count_paragraphs}</template>
+<template name="{var|count_sentences}" description="{$var|count_sentences} (Smarty)" context="html" enabled="true">{$$${var}|count_sentences}</template>
+<template name="{var|count_words}" description="{$var|count_words} (Smarty)" context="html" enabled="true">{$$${var}|count_words}</template>
+<template name="{var|date_format}" description="{$var|date_format} (Smarty)" context="html" enabled="true">{$$${var}|date_format:"%Y-%m-%d %H:%M:%S"}</template>
+<template name="{var|default}" description="{$var|default} (Smarty)" context="html" enabled="true">{$$${var}|default:"${text}"}</template>
+<template name="{var|escape:value}" description="{$var|escape:value} (Smarty)" context="html" enabled="true">{$$${var}|escape:"${value}"}</template>
+<template name="{var|escape}" description="{$var|escape} (Smarty)" context="html" enabled="true">{$$${var}|escape}</template>
+<template name="{var|indent:nr}" description="{$var|indent:nr} (Smarty)" context="html" enabled="true">{$$${var}|indent:${nr}}</template>
+<template name="{var|indent}" description="{$var|indent} (Smarty)" context="html" enabled="true">{$$${var}|indent}</template>
+<template name="{var|lower}" description="{$var|lower} (Smarty)" context="html" enabled="true">{$$${var}|lower}</template>
+<template name="{var|nl2br}" description="{$var|nl2br} (Smarty)" context="html" enabled="true">{$$${var}|nl2br}</template>
+<template name="{var|regex_replace}" description="{$var|regex_replace} (Smarty)" context="html" enabled="true">{$$${var}|regex_replace:"${regex}":"${replace}"}</template>
+<template name="{var|replace}" description="{$var|replace} (Smarty)" context="html" enabled="true">{$$${var}|replace:"${find}":"${replace}"}</template>
+<template name="{var|spacify}" description="{$var|spacify} (Smarty)" context="html" enabled="true">{$$${var}|spacify}</template>
+<template name="{var|string_format}" description="{$var|string_format} (Smarty)" context="html" enabled="true">{$$${var}|string_format:"%.2f"}</template>
+<template name="{var|strip_tags}" description="{$var|strip_tags} (Smarty)" context="html" enabled="true">{$$${var}|strip_tags}</template>
+<template name="{var|strip}" description="{$var|strip} (Smarty)" context="html" enabled="true">{$$${var}|strip}</template>
+<template name="{var|truncate}" description="{$var|truncate} (Smarty)" context="html" enabled="true">{$$${var}|truncate:${nr}}</template>
+<template name="{var|upper}" description="{$var|upper} (Smarty)" context="html" enabled="true">{$$${var}|upper}</template>
+<template name="{var|wordwrap}" description="{$var|wordwrap} (Smarty)" context="html" enabled="true">{$$${var}|wordwrap:${nr}:"${sign}"}</template>
</templates>
\ No newline at end of file