summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames An2014-08-13 23:23:54 -0400
committerJames An2014-08-13 23:23:54 -0400
commite6a4b154da134702fddf3fcb78f94aee1b0f2cde (patch)
tree457f686b884f00508c4daa10863ff960a0ffcbb3
parent55a474e64ad58a87d90f5e863a20eeb44da4fec5 (diff)
downloadaur-e6a4b154da134702fddf3fcb78f94aee1b0f2cde.tar.gz
Updated geany-snippets package to workaround dead upstream URL.
-rw-r--r--.SRCINFO13
-rw-r--r--ChangeLog6
-rw-r--r--PKGBUILD25
-rw-r--r--htmlphp.conf259
-rw-r--r--latex.conf9
-rw-r--r--python.conf40
-rw-r--r--tcl.conf29
7 files changed, 371 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 11d56635f0a..6fbd9d35eb1 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,24 @@
pkgbase = geany-snippets
pkgdesc = Snippets for Geany
pkgver = 1
- pkgrel = 5
+ pkgrel = 6
url = http://www.geany.org/Download/Extras#snippets
install = geany-snippets.install
+ changelog = ChangeLog
arch = any
license = GPL
depends = geany
- source = http://lara.craft.net.br/snippets.conf
+ source = ChangeLog
+ source = tcl.conf::http://advamacs.com/pub/snippets.conf
+ source = python.conf::http://download.geany.org/contrib/python_snippets.conf
+ source = htmlphp.conf::https://dl.dropboxusercontent.com/u/668529/conf/snippets.conf
+ source = latex.conf::http://download.geany.org/contrib/latex_snippets.conf
source = geany-snippets.install
+ md5sums = 7f3b01c191a525394508a1ecd33387e1
+ md5sums = 2703567c4b47e3c27404033034829ae7
+ md5sums = 0fd08ca51cbf862f3fb74c87ea455077
md5sums = e6c32d7cb454deffe86cb32f62840f34
+ md5sums = 2dce08133c30e6beca4b5a398dbb0676
md5sums = 2011316bb069109d9fc3dbcfb784a73f
pkgname = geany-snippets
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000000..0f3fd49dd8d
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,6 @@
+2014-08-13 James An <james@jamesan.ca>
+
+ * 1-6 :
+ new maintainer.
+ added ChangeLog.
+ replaced concatenation of source files with individual source files.
diff --git a/PKGBUILD b/PKGBUILD
index 23c8d96f7e0..0dad6270f65 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,23 +3,32 @@
pkgname=geany-snippets
pkgver=1
-pkgrel=5
+pkgrel=6
pkgdesc="Snippets for Geany"
arch=('any')
url="http://www.geany.org/Download/Extras#snippets"
license=('GPL')
depends=('geany')
-source=(http://lara.craft.net.br/snippets.conf
+source=(ChangeLog
+ 'tcl.conf::http://advamacs.com/pub/snippets.conf'
+ 'python.conf::http://download.geany.org/contrib/python_snippets.conf'
+ 'htmlphp.conf::https://dl.dropboxusercontent.com/u/668529/conf/snippets.conf'
+ 'latex.conf::http://download.geany.org/contrib/latex_snippets.conf'
$pkgname.install)
-
install=$pkgname.install
-
-md5sums=('e6c32d7cb454deffe86cb32f62840f34'
+changelog=ChangeLog
+md5sums=('7f3b01c191a525394508a1ecd33387e1'
+ '2703567c4b47e3c27404033034829ae7'
+ '0fd08ca51cbf862f3fb74c87ea455077'
+ 'e6c32d7cb454deffe86cb32f62840f34'
+ '2dce08133c30e6beca4b5a398dbb0676'
'2011316bb069109d9fc3dbcfb784a73f')
+prepare() {
+ cat {tcl,python,htmlphp,latex}.conf > snippets.conf
+}
+
package() {
- cd "$srcdir"
-
- install -Dm644 snippets.conf "$pkgdir"/usr/share/geany/snippets.conf.new
+ install -Dm644 snippets.conf "$pkgdir"/usr/share/geany/snippets.conf.new
}
diff --git a/htmlphp.conf b/htmlphp.conf
new file mode 100644
index 00000000000..12c06101b6d
--- /dev/null
+++ b/htmlphp.conf
@@ -0,0 +1,259 @@
+# Geany's snippets configuration file
+# use \n or %newline% for a new line (it will be replaced by the used EOL char(s) - LF, CR/LF, CR)
+# use \t ot %ws% for an indentation step, if using only spaces for indentation only spaces will be used
+# use \s to force whitespace at beginning or end of a value ('key= value' won't work, use 'key=\svalue')
+# use %cursor% to define where the cursor should be placed after completion
+# use %key% for all keys defined in the [Special] section
+# you can define a section for each supported filetype to overwrite default settings, the section
+# name must match exactly the internal filetype name, run 'geany --ft-names' for a full list
+
+# filetype names:
+# C, C++, D, Java, Pascal, ASM, Fortran, CAML, Haskell, VHDL, Perl, PHP, Javascript, Python, Ruby,
+# Tcl, Lua, Ferite, Sh, Make, O-Matrix, XML, Docbook, HTML, CSS, SQL, LaTeX, Diff, Conf, None
+
+# Default is used for all filetypes and keys can be overwritten by [filetype] sections
+[Default]
+if=if (%cursor%)%brace_open%\n%brace_close%
+else=else%brace_open%%cursor%\n%brace_close%
+for=for (i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
+while=while (%cursor%)%brace_open%\n%brace_close%
+do=do%brace_open%%cursor%\n%brace_close% while ()
+switch=switch (%cursor%)%brace_open%case : break;\n%ws%default: \n%brace_close%
+try=try%block_cursor%catch ()%block%
+
+[Special]
+brace_open=\n{\n\t
+brace_close=}\n
+block=\n{\n\t\n}\n
+block_cursor=\n{\n\t%cursor%\n}\n
+wordchars=._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+
+[C++]
+for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
+
+[Java]
+for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
+
+[Javascript]
+jready=$(document).ready(function(){\n\t%cursor%\n});
+jfunc=$(function() {\n\t%cursor%\n});
+log=console.log('%cursor%');
+
+[PHP]
+# Little php snippets written by Atanas Beloborodov <nasko@cod3r.org>
+# Some php5 object`s usefull snippets
+class=class %cursor% \n{\n\tpublic function __construct()\n\t{\t\n\n\t}\n\n\tpublic function __destruct()\n\t{\t\n\n\t}\n}
+interface=interface %cursor% %block%
+static=public static function %cursor%() %block%
+public=public function %cursor%()%block%
+protected=protected function %cursor%()%block%
+private=private function %cursor%()%block%
+#Control structures :
+for=for ($i = 0; $i < %cursor%; $i++ %block%
+while=while (%cursor%) %block%
+if=if (%cursor%) %block%
+switch=switch (%cursor%) {\n\tcase '';\n\n\tbreak;\n\n\tdefault :\n\n\tbreak;\n}\n
+else=if (%cursor%) %block%else %block%
+elseif=if (%cursor%) {\n\t\n}\nelseif () {\n\t\n}\nelse {\n\t\n}\n
+do=do %block%while (%cursor%);
+foreach=foreach (%cursor%) %block%
+# Include methods
+# Note : require and include is not functions ! Not required braces ()
+req=require "%cursor%";
+reqo=require_once "%cursor%";
+inc=include "%cursor%";
+inco=include_once "%cursor%";
+# Others :
+function=function %cursor%() %block%
+def=define ('%cursor%','');
+throw=throw new Exception ('%cursor%');e%
+
+[Python]
+utf8=#-*- coding: utf-8 -*-
+for=for i in xrange(%cursor%):\n\t
+doc=""" %cursor% """\n
+elif=elif %cursor%:\n\t
+else=else:\n\t%cursor%
+if=if %cursor%:\n\t
+from=from %cursor% import %cursor%\n
+main=if __name__ == '__main__':\n\t%cursor%
+class=class %cursor%(object):\n\t""" %cursor% """\n\t\n\tdef __init__ (self):\n\t\t""" Class initialiser """\n\t\tpass
+def=def %cursor%(self):\n\t""" Function doc\n\n\t@param PARAM: DESCRIPTION\n\t@return RETURN: DESCRIPTION\n\t"""\n\t
+get=def get%cursor%(self): return self._var\n
+set=def set%cursor%(self): self._var = var\n
+.=self.%cursor%
+try=try:\n\t%cursor%\nexcept Exception, e:\n\t
+py=#!/usr/bin/env python\n#-*- coding:utf-8 -*-\n\n%cursor%
+while=while %cursor%:\n\t
+with=with %cursor%:\n\t
+head="""\n\t%cursor%PROJECT - MODULE\n\n\tDESCRIPTION\n\n\t@copyright: {year} by {developer} <{mail}>\n\t@license: GNU GPL, see COPYING for details.\n"""\n
+p=print "%cursor%"
+pr=print %cursor%
+# Django models
+# by Tomasz Karbownicki <tomasz@karbownicki.com>
+mclass=class %cursor%(models.Model):\n\t'''%cursor%'''\n\n\tdef __unicode__(self):\n\t\treturn self.XXXXX\n\n\tdef get_absolute_url(self):\n\t\treturn "/XXXXX/%s/" % self.slug\n\n\tclass Meta:\n\t\tverbose_name = "%cursor%"\n\t\tverbose_name_plural = "%cursor%"
+mchar=%cursor% = models.CharField(max_length=50, verbose_name=u'%cursor%')
+mint=%cursor% = models.IntegerField(verbose_name=u'%cursor%')
+mtext=%cursor% = models.TextField(verbose_name=u'%cursor%')
+mkey=%cursor% = models.ForeignKey(%cursor%, verbose_name=u'%cursor%')
+mimage=%cursor% = models.ImageField(upload_to='', verbose_name=u'%cursor%')
+mbool=%cursor% = models.BooleanField(verbose_name=u'%cursor%')
+mdate=%cursor% = models.DateField(verbose_name=u'%cursor%', help_text='Format daty: 2009-04-28')
+memail=%cursor% = models.EmailField(verbose_name=u'%cursor%')
+murl=%cursor% = models.URLField(verbose_name=u'%cursor%')
+mslug=%cursor% = models.SlugField(verbose_name=u'%cursor%', unique=True)
+
+[Ferite]
+iferr=iferr%block_cursor%fix%block%
+monitor=monitor%block_cursor%handle%block%
+
+[HTML]
+# by Tomasz Karbownicki <tomasz@karbownicki.com>
+# top
+html5=<!DOCTYPE html>\n<html lang="en">\n<head>\n\t<meta charset="utf-8" />\n\t<title>%cursor%</title>\n</head>\n<body>\n\t%cursor%\n</body>\n</html>
+html=<html lang="%cursor%">\n\t%cursor%\n</html>
+head=<head>\n\t%cursor%\n</head>
+js=<script type="text/javascript">\n\t%cursor%\n</script>
+js2=<script src="%cursor%" type="text/javascript"></script>
+css=<style type="text/css">\n\t%cursor%\n</style>
+css2=<link href="%cursor%" rel="stylesheet" type="text/css" />
+rss=<link rel="alternate" type="application/rss+xml" title="%cursor%" href="%cursor%" />
+title=<title>%cursor%</title>
+utf=<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ie7=<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
+refresh=<meta http-equiv="refresh" content="2;url=%cursor%" />
+body=<body>\n\t%cursor%\n</body>
+# table
+table=<table>\n\t<thead>\n\t\t<tr>\n\t\t\t<th>%cursor%</th>\n\t\t</tr>\n\t</thead>\n\t<tbody>\n\t\t<tr>\n\t\t\t<td>%cursor%</td>\n\t\t</tr>\n\t</tbody>\n</table>
+td=<td>%cursor%</td>
+tr=<tr>%cursor%</tr>
+th=<th>%cursor%</th>
+caption=<caption>%cursor%</caption>
+# form
+form=<form action="%cursor%" method="post">\n\n\t<input type="submit" value="%cursor%" />\n</form>
+formp=<form action="%cursor%" method="post">\n\n\t<p>{{ form.as_p }}</p>\n<p><input type="submit" value="%cursor%" /></p>\n</form>
+label=<label for="%cursor%"></label>
+input=<input type="text" name="%cursor%" value="%cursor%" id="%cursor%" />
+pass=<input type="password" name="%cursor%" id="%cursor%" />
+textarea=<textarea name="%cursor%" cols="50" rows="10" id="%cursor%" ></textarea>
+select=<select name="%cursor%" id="%cursor%">\n\t<option value="%cursor%"></option>\n</select>
+radio=<input type="radio" name="%cursor%" value="%cursor%" />
+checkbox=<input type="checkbox" name="%cursor%" value="%cursor%" />
+button=<button type="%cursor%">%cursor%</button>
+fieldset=<fieldset>\n\t<legend>%cursor%</legend>\n</fieldset>
+# list
+ul=<ul class="%cursor%">\n\t<li>%cursor%</li>\n</ul>
+ol=<ol class="%cursor%">\n\t<li>%cursor%</li>\n</ol>
+li=<li>%cursor%</li>
+dl=<dl class="%cursor%">\n\t<dt>%cursor%</dt>\n\t<dd>%cursor%</dd>\n</dl>
+dt=<dt>%cursor%</dt>
+dd=<dd>%cursor%</dd>
+# inline
+a=<a href="%cursor%">%cursor%</a>
+i=<i>%cursor%</i>
+span=<span>%cursor%</span>
+em=<em>%cursor%</em>
+small=<small>%cursor%</small>
+big=<big>%cursor%</big>
+cite=<cite>%cursor%</cite>
+strong=<strong>%cursor%</strong>
+img=<img src="%cursor%" alt="%cursor%" title="%cursor%" />
+thumb=<a href="%cursor%"><img src="%cursor%" alt="%cursor%" title="%cursor%" /></a>
+# block
+div=<div class="%cursor%">%cursor%</div>
+h1=<h1>%cursor%</h1>
+h2=<h2>%cursor%</h2>
+h3=<h3>%cursor%</h3>
+h4=<h4>%cursor%</h4>
+h5=<h5>%cursor%</h5>
+h6=<h6>%cursor%</h6>
+p=<p>%cursor%</p>
+pre=<pre>\n%cursor%\n</pre>
+code=<code>%cursor%</code>
+prec=<pre><code>%cursor%</code></pre>
+quote=<blockquote>\n\t<p>\n\t\t%cursor%\n\t</p>\n</blockquote>
+# other
+cl=class="%cursor%"
+id=id="%cursor%"
+cmt=<!--\n\t%cursor%\n-->
+cmt2=<!-- %cursor% -->
+br=<br/>
+hr=<hr/>
+1s=&nbsp;
+3s=&nbsp;&nbsp;&nbsp;
+7s=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+dummyimage=<img src="http://dummyimage.com/%cursor%x%cursor%/000/fff.png" alt="" title="" />
+dummyimage2=<img src="http://lorempixel.com/%cursor%/%cursor%/" alt="" title="" />
+widget=<div class="widget">\n\t<div class="widget-header">\n\t\t<i class="icon-"></i>\n\t\t<h3>%cursor%</h3>\n\t</div>\n\t<div class="widget-content">\n\t</div>\n</div>
+# Django templates
+if={% if %cursor% %}\n\t\n{% endif %}
+for={% for sth in %cursor% %}\n\t%cursor%\n{% endfor %}
+dv={{ %cursor% }}
+db={% %cursor% %}
+dbl={% block %cursor% %}\n\t%cursor%\n{% endblock %}
+trans={% trans "%cursor%" %}
+# jQuery
+jquery=<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
+jqueryui=<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
+jready=$(document).ready(function(){\n\t%cursor%\n});
+jfunc=$(function(){\n\t%cursor%\n});
+log=console.log('%cursor%');
+
+[CSS]
+# by Tomasz Karbownicki <tomasz@karbownicki.com>
+bc=background-color: %cursor%;
+bp=background-position: %cursor%;
+bct=background-color: transparent;
+ba=background: url(%cursor%) %cursor%;
+ma=margin: %cursor%;
+pa=padding: %cursor%;
+bo=border: %cursor%;
+co=color: %cursor%;
+cu=cursor: %cursor%;
+he=height: %cursor%;
+wi=width: %cursor%;
+di=display: %cursor%;
+fs=font-size: %cursor%;
+ff=font-family: %cursor%;
+fw=font-weight: %cursor%;
+ta=text-align: %cursor%;
+ts=text-shadow: %cursor%;
+td=text-decoration: %cursor%;
+fl=float: %cursor%;
+lh=line-height: %cursor%;
+im=!important
+po=position: %cursor%;
+ov=overflow: %cursor%;
+op=opacity: 0.5;
+ra=-moz-border-radius: %cursor%px; -webkit-border-radius: %cursor%px; border-radius: %cursor%px;
+sh=border-shadow: %cursor%px %cursor%px #%cursor% %cursor%px;
+cmt=/* ######### %cursor% ######### */
+hide=text-indent: 9999em; line-height: 9999em; overflow: hidden;
+
+[Javascript]
+jready=$(document).ready(function(){\n\t%cursor%\n});
+jfunc=$(function(){\n\t%cursor%\n});
+log=console.log('%cursor%');
+
+[LaTeX]
+# by Frank Lanitz
+frame=\\begin{frame}\n%ws%\\frametitle{%cursor%}\n%ws%%cursor%\n\\end{frame}
+block=\\begin{block}{%cursor%}\n%ws%%cursor%\n\\end{block}
+itemize=\\begin{itemize}\n%ws%\\item %cursor%\n\\end{itemize}
+enumerate=\\begin{enumerate}\n%ws%\\item %cursor%\n\\end{enumerate}
+description=\\begin{description}\n%ws%\\item %cursor%\n\\end{description}
+
+[Tcl]
+# by Witek Mozga
+proc=proc %cursor% { } {\n\t\n} ; # end proc
+namespace=namespace eval %cursor% {\n\t\n}; # end namespace
+expr=expr { %cursor% }
+oo=oo::class create %cursor% {\n\t\n}; # end class
+for=for {set i 0} {$i < %cursor%} {incr i} {\n\t\n} ; # end for
+while=while { $%cursor% } {\n\t\n} ; # end while
+foreach=foreach x $%cursor% {\n\t\n} ; # end foreach
+if=if { $%cursor% } {\n\t\n} ; # end if
+else=else {\n\t\n} ; # end else
+elseif=elseif { $%cursor% } {\n\t\n} ; # end elseif
+switch=switch %cursor% {\n\t\n\tdefault { }\n} ; # end switch
+set=set %cursor% { }
diff --git a/latex.conf b/latex.conf
new file mode 100644
index 00000000000..81ac51c4f31
--- /dev/null
+++ b/latex.conf
@@ -0,0 +1,9 @@
+# Extension for LaTeX to Geany's snippet configuration file.
+# Distributed under terms of GPLv2 or newer (as Geany is).
+
+[LaTeX]
+frame=\\begin{frame}\n%ws%\\frametitle{%cursor%}\n%ws%%cursor%\n\\end{frame}
+block=\\begin{block}{%cursor%}\n%ws%%cursor%\n\\end{block}
+itemize=\\begin{itemize}\n%ws%\\item %cursor%\n\\end{itemize}
+enumerate=\\begin{enumerate}\n%ws%\\item %cursor%\n\\end{enumerate}
+description=\\begin{description}\n%ws%\\item %cursor%\n\\end{description}
diff --git a/python.conf b/python.conf
new file mode 100644
index 00000000000..fbf3621afe3
--- /dev/null
+++ b/python.conf
@@ -0,0 +1,40 @@
+# Geany's snippets configuration file
+# use \n or %newline% for a new line (it will be replaced by the used EOL char(s) - LF, CR/LF, CR)
+# use \t ot %ws% for an indentation step, if using only spaces for indentation only spaces will be used
+# use \s to force whitespace at beginning or end of a value ('key= value' won't work, use 'key=\svalue')
+# use %cursor% to define where the cursor should be placed after completion
+# use %key% for all keys defined in the [Special] section
+# you can define a section for each supported filetype to overwrite default settings, the section
+# name must match exactly the internal filetype name, run 'geany --ft-names' for a full list
+#
+# Additionally, you can use most of the template wildcards like {developer} or {date} in the snippets.
+# See the documentation for details.
+
+# filetype names:
+# ASM, C, C++, C#, CAML, D, Fortran, FreeBasic, Haskell, Haxe, Java, Pascal, VHDL, Ferite, Javascript,
+# Lua, Make, O-Matrix, Perl, PHP, Python, Ruby, Sh, Tcl, CSS, Docbook, HTML, XML, Conf, Diff, LaTeX,
+# reStructuredText, SQL, None
+
+
+[Special]
+wordchars=._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+
+
+[Python]
+for=for i in xrange(%cursor%):\n\t
+doc=""" %cursor% """\n
+elif=elif %cursor%:\n\t
+else=else:\n\t%cursor%
+if=if %cursor%:\n\t
+from=from %cursor% import \n
+main=if __name__ == '__main__':\n\t%cursor%
+class=class %cursor%(object):\n\t""" Class doc """\n\t\n\tdef __init__ (self):\n\t\t""" Class initialiser """\n\t\tpass
+def=def %cursor%(self):\n\t""" Function doc\n\n\t@param PARAM: DESCRIPTION\n\t@return RETURN: DESCRIPTION\n\t"""\n\t
+get=def get%cursor%(self): return self._var\n
+set=def set%cursor%(self): self._var = var\n
+.=self.%cursor%
+try=try:\n\t%cursor%\nexcept Exception, e:\n\t
+py=#!/usr/bin/env python\n#-*- coding:utf-8 -*-\n\n%cursor%
+while=while %cursor%:\n\t
+with=with %cursor%:\n\t
+head="""\n\t%cursor%PROJECT - MODULE\n\n\tDESCRIPTION\n\n\t@copyright: {year} by {developer} <{mail}>\n\t@license: GNU GPL, see COPYING for details.\n"""\n
diff --git a/tcl.conf b/tcl.conf
new file mode 100644
index 00000000000..9897865254f
--- /dev/null
+++ b/tcl.conf
@@ -0,0 +1,29 @@
+# Geany's snippets configuration file
+#
+# use \n or %newline% for a new line (it will be replaced by the used EOL char(s) - LF, CR/LF, CR).
+# use \t or %ws% for an indentation step, it will be replaced according to the current document's indent mode.
+# use \s to force whitespace at beginning or end of a value ('key= value' won't work, use 'key=\svalue').
+# use %key% for all keys defined in the [Special] section.
+# use %cursor% to define where the cursor should be placed after completion. You can define multiple
+# %cursor% wildcards and use the "Move cursor in snippet" to jump to the next defined cursor
+# position in the completed snippet.
+# You can define a section for each supported filetype to overwrite default settings, the section
+# name must match exactly the internal filetype name, run 'geany --ft-names' for a full list.
+#
+# Additionally, you can use most of the template wildcards like {developer} or {date} in the snippets.
+# See the documentation for details.
+
+
+[Tcl]
+proc=proc %cursor% { } {\n\t\n} ; # end proc
+namespace=namespace eval %cursor% {\n\t\n}; # end namespace
+expr=expr { %cursor% }
+oo=oo::class create %cursor% {\n\t\n}; # end class
+for=for {set i 0} {$i < %cursor%} {incr i} {\n\t\n} ; # end for
+while=while { $%cursor% } {\n\t\n} ; # end while
+foreach=foreach x $%cursor% {\n\t\n} ; # end foreach
+if=if { $%cursor% } {\n\t\n} ; # end if
+else=else {\n\t\n} ; # end else
+elseif=elseif { $%cursor% } {\n\t\n} ; # end elseif
+switch=switch %cursor% {\n\t\n\tdefault { }\n} ; # end switch
+set=set %cursor% { } \ No newline at end of file