summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/CodeEditor/modules/ace/snippets
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/CodeEditor/modules/ace/snippets')
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/abap.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/abc.js38
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/actionscript.js164
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ada.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/apache_conf.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/applescript.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/asciidoc.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/assembly_x86.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/autohotkey.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/batchfile.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/bro.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/c9search.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/c_cpp.js138
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/cirru.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/clojure.js97
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/cobol.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/coffee.js102
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/coldfusion.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/csharp.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/css.js974
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/curly.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/d.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/dart.js90
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/diff.js18
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/django.js115
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/dockerfile.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/dot.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/drools.js26
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/eiffel.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ejs.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/elixir.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/elm.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/erlang.js167
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/forth.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/fortran.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ftl.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/gcode.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/gherkin.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/gitignore.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/glsl.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/gobstones.js41
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/golang.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/graphqlschema.js39
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/groovy.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/haml.js27
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/handlebars.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell.js89
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell_cabal.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/haxe.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/hjson.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/html.js862
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/html_elixir.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/html_ruby.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ini.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/io.js69
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/jack.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/jade.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/java.js247
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/javascript.js202
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/json.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/jsoniq.js68
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/jsp.js106
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/jsx.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/julia.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/kotlin.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/latex.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/less.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/liquid.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/lisp.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/livescript.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/logiql.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/lsl.js1239
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/lua.js28
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/luapage.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/lucene.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/makefile.js11
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/markdown.js95
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/mask.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/matlab.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/maze.js16
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/mel.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/mushcode.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/mysql.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/nix.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/nsis.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/objectivec.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ocaml.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/pascal.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/perl.js354
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/pgsql.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/php.js384
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/pig.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/plain_text.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/powershell.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/praat.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/prolog.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/properties.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/protobuf.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/python.js165
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/r.js128
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/razor.js10
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/rdoc.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/rhtml.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/rst.js29
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/ruby.js935
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/rust.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sass.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/scad.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/scala.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/scheme.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/scss.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sh.js90
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sjs.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/smarty.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/snippets.js16
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/soy_template.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/space.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sparql.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sql.js33
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/sqlserver.js76
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/stylus.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/svg.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/swift.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/tcl.js99
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/tex.js197
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/text.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/textile.js37
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/toml.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/tsx.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/turtle.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/twig.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/typescript.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/vala.js193
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/vbscript.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/velocity.js36
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/verilog.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/vhdl.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/wollok.js91
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/xml.js7
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/xquery.js68
-rw-r--r--www/wiki/extensions/CodeEditor/modules/ace/snippets/yaml.js7
141 files changed, 8688 insertions, 0 deletions
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/abap.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/abap.js
new file mode 100644
index 00000000..0ef29119
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/abap.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/abap",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "abap";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/abc.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/abc.js
new file mode 100644
index 00000000..17030761
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/abc.js
@@ -0,0 +1,38 @@
+ace.define("ace/snippets/abc",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "\n\
+snippet zupfnoter.print\n\
+ %%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}], \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\n\
+\n\
+snippet zupfnoter.note\n\
+ %%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\n\
+\n\
+snippet zupfnoter.annotation\n\
+ %%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\n\
+\n\
+snippet zupfnoter.lyrics\n\
+ %%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\n\
+\n\
+snippet zupfnoter.legend\n\
+ %%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\n\
+\n\
+\n\
+\n\
+snippet zupfnoter.target\n\
+ \"^:${1:target}\"\n\
+\n\
+snippet zupfnoter.goto\n\
+ \"^@${1:target}@${2:distance}\"\n\
+\n\
+snippet zupfnoter.annotationref\n\
+ \"^#${1:target}\"\n\
+\n\
+snippet zupfnoter.annotation\n\
+ \"^!${1:text}@${2:x_offset},${3:y_offset}\"\n\
+\n\
+\n\
+";
+exports.scope = "abc";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/actionscript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/actionscript.js
new file mode 100644
index 00000000..bc899d16
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/actionscript.js
@@ -0,0 +1,164 @@
+ace.define("ace/snippets/actionscript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet main\n\
+ package {\n\
+ import flash.display.*;\n\
+ import flash.Events.*;\n\
+ \n\
+ public class Main extends Sprite {\n\
+ public function Main ( ) {\n\
+ trace(\"start\");\n\
+ stage.scaleMode = StageScaleMode.NO_SCALE;\n\
+ stage.addEventListener(Event.RESIZE, resizeListener);\n\
+ }\n\
+ \n\
+ private function resizeListener (e:Event):void {\n\
+ trace(\"The application window changed size!\");\n\
+ trace(\"New width: \" + stage.stageWidth);\n\
+ trace(\"New height: \" + stage.stageHeight);\n\
+ }\n\
+ \n\
+ }\n\
+ \n\
+ }\n\
+snippet class\n\
+ ${1:public|internal} class ${2:name} ${3:extends } {\n\
+ public function $2 ( ) {\n\
+ (\"start\");\n\
+ }\n\
+ }\n\
+snippet all\n\
+ package name {\n\
+\n\
+ ${1:public|internal|final} class ${2:name} ${3:extends } {\n\
+ private|public| static const FOO = \"abc\";\n\
+ private|public| static var BAR = \"abc\";\n\
+\n\
+ // class initializer - no JIT !! one time setup\n\
+ if Cababilities.os == \"Linux|MacOS\" {\n\
+ FOO = \"other\";\n\
+ }\n\
+\n\
+ // constructor:\n\
+ public function $2 ( ){\n\
+ super2();\n\
+ trace(\"start\");\n\
+ }\n\
+ public function name (a, b...){\n\
+ super.name(..);\n\
+ lable:break\n\
+ }\n\
+ }\n\
+ }\n\
+\n\
+ function A(){\n\
+ // A can only be accessed within this file\n\
+ }\n\
+snippet switch\n\
+ switch(${1}){\n\
+ case ${2}:\n\
+ ${3}\n\
+ break;\n\
+ default:\n\
+ }\n\
+snippet case\n\
+ case ${1}:\n\
+ ${2}\n\
+ break;\n\
+snippet package\n\
+ package ${1:package}{\n\
+ ${2}\n\
+ }\n\
+snippet wh\n\
+ while ${1:cond}{\n\
+ ${2}\n\
+ }\n\
+snippet do\n\
+ do {\n\
+ ${2}\n\
+ } while (${1:cond})\n\
+snippet while\n\
+ while ${1:cond}{\n\
+ ${2}\n\
+ }\n\
+snippet for enumerate names\n\
+ for (${1:var} in ${2:object}){\n\
+ ${3}\n\
+ }\n\
+snippet for enumerate values\n\
+ for each (${1:var} in ${2:object}){\n\
+ ${3}\n\
+ }\n\
+snippet get_set\n\
+ function get ${1:name} {\n\
+ return ${2}\n\
+ }\n\
+ function set $1 (newValue) {\n\
+ ${3}\n\
+ }\n\
+snippet interface\n\
+ interface name {\n\
+ function method(${1}):${2:returntype};\n\
+ }\n\
+snippet try\n\
+ try {\n\
+ ${1}\n\
+ } catch (error:ErrorType) {\n\
+ ${2}\n\
+ } finally {\n\
+ ${3}\n\
+ }\n\
+# For Loop (same as c.snippet)\n\
+snippet for for (..) {..}\n\
+ for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n\
+ ${4:/* code */}\n\
+ }\n\
+# Custom For Loop\n\
+snippet forr\n\
+ for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\n\
+ ${5:/* code */}\n\
+ }\n\
+# If Condition\n\
+snippet if\n\
+ if (${1:/* condition */}) {\n\
+ ${2:/* code */}\n\
+ }\n\
+snippet el\n\
+ else {\n\
+ ${1}\n\
+ }\n\
+# Ternary conditional\n\
+snippet t\n\
+ ${1:/* condition */} ? ${2:a} : ${3:b}\n\
+snippet fun\n\
+ function ${1:function_name}(${2})${3}\n\
+ {\n\
+ ${4:/* code */}\n\
+ }\n\
+# FlxSprite (usefull when using the flixel library)\n\
+snippet FlxSprite\n\
+ package\n\
+ {\n\
+ import org.flixel.*\n\
+\n\
+ public class ${1:ClassName} extends ${2:FlxSprite}\n\
+ {\n\
+ public function $1(${3: X:Number, Y:Number}):void\n\
+ {\n\
+ super(X,Y);\n\
+ ${4: //code...}\n\
+ }\n\
+\n\
+ override public function update():void\n\
+ {\n\
+ super.update();\n\
+ ${5: //code...}\n\
+ }\n\
+ }\n\
+ }\n\
+\n\
+";
+exports.scope = "actionscript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ada.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ada.js
new file mode 100644
index 00000000..656608aa
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ada.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/ada",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "ada";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/apache_conf.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/apache_conf.js
new file mode 100644
index 00000000..0f38e54c
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/apache_conf.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/apache_conf",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "apache_conf";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/applescript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/applescript.js
new file mode 100644
index 00000000..6b59011a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/applescript.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/applescript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "applescript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/asciidoc.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/asciidoc.js
new file mode 100644
index 00000000..ef22c020
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/asciidoc.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/asciidoc",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "asciidoc";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/assembly_x86.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/assembly_x86.js
new file mode 100644
index 00000000..b3c3cd3d
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/assembly_x86.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/assembly_x86",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "assembly_x86";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/autohotkey.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/autohotkey.js
new file mode 100644
index 00000000..61c8ad4e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/autohotkey.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/autohotkey",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "autohotkey";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/batchfile.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/batchfile.js
new file mode 100644
index 00000000..619f57da
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/batchfile.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/batchfile",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "batchfile";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/bro.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/bro.js
new file mode 100644
index 00000000..2f2e2e12
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/bro.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/bro",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/c9search.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/c9search.js
new file mode 100644
index 00000000..78ea3dab
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/c9search.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/c9search",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "c9search";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/c_cpp.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/c_cpp.js
new file mode 100644
index 00000000..a232b56f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/c_cpp.js
@@ -0,0 +1,138 @@
+ace.define("ace/snippets/c_cpp",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "## STL Collections\n\
+# std::array\n\
+snippet array\n\
+ std::array<${1:T}, ${2:N}> ${3};${4}\n\
+# std::vector\n\
+snippet vector\n\
+ std::vector<${1:T}> ${2};${3}\n\
+# std::deque\n\
+snippet deque\n\
+ std::deque<${1:T}> ${2};${3}\n\
+# std::forward_list\n\
+snippet flist\n\
+ std::forward_list<${1:T}> ${2};${3}\n\
+# std::list\n\
+snippet list\n\
+ std::list<${1:T}> ${2};${3}\n\
+# std::set\n\
+snippet set\n\
+ std::set<${1:T}> ${2};${3}\n\
+# std::map\n\
+snippet map\n\
+ std::map<${1:Key}, ${2:T}> ${3};${4}\n\
+# std::multiset\n\
+snippet mset\n\
+ std::multiset<${1:T}> ${2};${3}\n\
+# std::multimap\n\
+snippet mmap\n\
+ std::multimap<${1:Key}, ${2:T}> ${3};${4}\n\
+# std::unordered_set\n\
+snippet uset\n\
+ std::unordered_set<${1:T}> ${2};${3}\n\
+# std::unordered_map\n\
+snippet umap\n\
+ std::unordered_map<${1:Key}, ${2:T}> ${3};${4}\n\
+# std::unordered_multiset\n\
+snippet umset\n\
+ std::unordered_multiset<${1:T}> ${2};${3}\n\
+# std::unordered_multimap\n\
+snippet ummap\n\
+ std::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\n\
+# std::stack\n\
+snippet stack\n\
+ std::stack<${1:T}> ${2};${3}\n\
+# std::queue\n\
+snippet queue\n\
+ std::queue<${1:T}> ${2};${3}\n\
+# std::priority_queue\n\
+snippet pqueue\n\
+ std::priority_queue<${1:T}> ${2};${3}\n\
+##\n\
+## Access Modifiers\n\
+# private\n\
+snippet pri\n\
+ private\n\
+# protected\n\
+snippet pro\n\
+ protected\n\
+# public\n\
+snippet pub\n\
+ public\n\
+# friend\n\
+snippet fr\n\
+ friend\n\
+# mutable\n\
+snippet mu\n\
+ mutable\n\
+## \n\
+## Class\n\
+# class\n\
+snippet cl\n\
+ class ${1:`Filename('$1', 'name')`} \n\
+ {\n\
+ public:\n\
+ $1(${2});\n\
+ ~$1();\n\
+\n\
+ private:\n\
+ ${3:/* data */}\n\
+ };\n\
+# member function implementation\n\
+snippet mfun\n\
+ ${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\n\
+ ${5:/* code */}\n\
+ }\n\
+# namespace\n\
+snippet ns\n\
+ namespace ${1:`Filename('', 'my')`} {\n\
+ ${2}\n\
+ } /* namespace $1 */\n\
+##\n\
+## Input/Output\n\
+# std::cout\n\
+snippet cout\n\
+ std::cout << ${1} << std::endl;${2}\n\
+# std::cin\n\
+snippet cin\n\
+ std::cin >> ${1};${2}\n\
+##\n\
+## Iteration\n\
+# for i \n\
+snippet fori\n\
+ for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n\
+ ${4:/* code */}\n\
+ }${5}\n\
+\n\
+# foreach\n\
+snippet fore\n\
+ for (${1:auto} ${2:i} : ${3:container}) {\n\
+ ${4:/* code */}\n\
+ }${5}\n\
+# iterator\n\
+snippet iter\n\
+ for (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\n\
+ ${6}\n\
+ }${7}\n\
+\n\
+# auto iterator\n\
+snippet itera\n\
+ for (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\n\
+ ${2:std::cout << *$1 << std::endl;}\n\
+ }${3}\n\
+##\n\
+## Lambdas\n\
+# lamda (one line)\n\
+snippet ld\n\
+ [${1}](${2}){${3:/* code */}}${4}\n\
+# lambda (multi-line)\n\
+snippet lld\n\
+ [${1}](${2}){\n\
+ ${3:/* code */}\n\
+ }${4}\n\
+";
+exports.scope = "c_cpp";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/cirru.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/cirru.js
new file mode 100644
index 00000000..02ef1f30
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/cirru.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/cirru",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "cirru";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/clojure.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/clojure.js
new file mode 100644
index 00000000..49f23cac
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/clojure.js
@@ -0,0 +1,97 @@
+ace.define("ace/snippets/clojure",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet comm\n\
+ (comment\n\
+ ${1}\n\
+ )\n\
+snippet condp\n\
+ (condp ${1:pred} ${2:expr}\n\
+ ${3})\n\
+snippet def\n\
+ (def ${1})\n\
+snippet defm\n\
+ (defmethod ${1:multifn} \"${2:doc-string}\" ${3:dispatch-val} [${4:args}]\n\
+ ${5})\n\
+snippet defmm\n\
+ (defmulti ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\n\
+snippet defma\n\
+ (defmacro ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\n\
+snippet defn\n\
+ (defn ${1:name} \"${2:doc-string}\" [${3:arg-list}]\n\
+ ${4})\n\
+snippet defp\n\
+ (defprotocol ${1:name}\n\
+ ${2})\n\
+snippet defr\n\
+ (defrecord ${1:name} [${2:fields}]\n\
+ ${3:protocol}\n\
+ ${4})\n\
+snippet deft\n\
+ (deftest ${1:name}\n\
+ (is (= ${2:assertion})))\n\
+ ${3})\n\
+snippet is\n\
+ (is (= ${1} ${2}))\n\
+snippet defty\n\
+ (deftype ${1:Name} [${2:fields}]\n\
+ ${3:Protocol}\n\
+ ${4})\n\
+snippet doseq\n\
+ (doseq [${1:elem} ${2:coll}]\n\
+ ${3})\n\
+snippet fn\n\
+ (fn [${1:arg-list}] ${2})\n\
+snippet if\n\
+ (if ${1:test-expr}\n\
+ ${2:then-expr}\n\
+ ${3:else-expr})\n\
+snippet if-let \n\
+ (if-let [${1:result} ${2:test-expr}]\n\
+ (${3:then-expr} $1)\n\
+ (${4:else-expr}))\n\
+snippet imp\n\
+ (:import [${1:package}])\n\
+ & {:keys [${1:keys}] :or {${2:defaults}}}\n\
+snippet let\n\
+ (let [${1:name} ${2:expr}]\n\
+ ${3})\n\
+snippet letfn\n\
+ (letfn [(${1:name) [${2:args}]\n\
+ ${3})])\n\
+snippet map\n\
+ (map ${1:func} ${2:coll})\n\
+snippet mapl\n\
+ (map #(${1:lambda}) ${2:coll})\n\
+snippet met\n\
+ (${1:name} [${2:this} ${3:args}]\n\
+ ${4})\n\
+snippet ns\n\
+ (ns ${1:name}\n\
+ ${2})\n\
+snippet dotimes\n\
+ (dotimes [_ 10]\n\
+ (time\n\
+ (dotimes [_ ${1:times}]\n\
+ ${2})))\n\
+snippet pmethod\n\
+ (${1:name} [${2:this} ${3:args}])\n\
+snippet refer\n\
+ (:refer-clojure :exclude [${1}])\n\
+snippet require\n\
+ (:require [${1:namespace} :as [${2}]])\n\
+snippet use\n\
+ (:use [${1:namespace} :only [${2}]])\n\
+snippet print\n\
+ (println ${1})\n\
+snippet reduce\n\
+ (reduce ${1:(fn [p n] ${3})} ${2})\n\
+snippet when\n\
+ (when ${1:test} ${2:body})\n\
+snippet when-let\n\
+ (when-let [${1:result} ${2:test}]\n\
+ ${3:body})\n\
+";
+exports.scope = "clojure";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/cobol.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/cobol.js
new file mode 100644
index 00000000..760727ce
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/cobol.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/cobol",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "cobol";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/coffee.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/coffee.js
new file mode 100644
index 00000000..eb1a76d7
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/coffee.js
@@ -0,0 +1,102 @@
+ace.define("ace/snippets/coffee",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Closure loop\n\
+snippet forindo\n\
+ for ${1:name} in ${2:array}\n\
+ do ($1) ->\n\
+ ${3:// body}\n\
+# Array comprehension\n\
+snippet fora\n\
+ for ${1:name} in ${2:array}\n\
+ ${3:// body...}\n\
+# Object comprehension\n\
+snippet foro\n\
+ for ${1:key}, ${2:value} of ${3:object}\n\
+ ${4:// body...}\n\
+# Range comprehension (inclusive)\n\
+snippet forr\n\
+ for ${1:name} in [${2:start}..${3:finish}]\n\
+ ${4:// body...}\n\
+snippet forrb\n\
+ for ${1:name} in [${2:start}..${3:finish}] by ${4:step}\n\
+ ${5:// body...}\n\
+# Range comprehension (exclusive)\n\
+snippet forrex\n\
+ for ${1:name} in [${2:start}...${3:finish}]\n\
+ ${4:// body...}\n\
+snippet forrexb\n\
+ for ${1:name} in [${2:start}...${3:finish}] by ${4:step}\n\
+ ${5:// body...}\n\
+# Function\n\
+snippet fun\n\
+ (${1:args}) ->\n\
+ ${2:// body...}\n\
+# Function (bound)\n\
+snippet bfun\n\
+ (${1:args}) =>\n\
+ ${2:// body...}\n\
+# Class\n\
+snippet cla class ..\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ ${2}\n\
+snippet cla class .. constructor: ..\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ constructor: (${2:args}) ->\n\
+ ${3}\n\
+\n\
+ ${4}\n\
+snippet cla class .. extends ..\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n\
+ ${3}\n\
+snippet cla class .. extends .. constructor: ..\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n\
+ constructor: (${3:args}) ->\n\
+ ${4}\n\
+\n\
+ ${5}\n\
+# If\n\
+snippet if\n\
+ if ${1:condition}\n\
+ ${2:// body...}\n\
+# If __ Else\n\
+snippet ife\n\
+ if ${1:condition}\n\
+ ${2:// body...}\n\
+ else\n\
+ ${3:// body...}\n\
+# Else if\n\
+snippet elif\n\
+ else if ${1:condition}\n\
+ ${2:// body...}\n\
+# Ternary If\n\
+snippet ifte\n\
+ if ${1:condition} then ${2:value} else ${3:other}\n\
+# Unless\n\
+snippet unl\n\
+ ${1:action} unless ${2:condition}\n\
+# Switch\n\
+snippet swi\n\
+ switch ${1:object}\n\
+ when ${2:value}\n\
+ ${3:// body...}\n\
+\n\
+# Log\n\
+snippet log\n\
+ console.log ${1}\n\
+# Try __ Catch\n\
+snippet try\n\
+ try\n\
+ ${1}\n\
+ catch ${2:error}\n\
+ ${3}\n\
+# Require\n\
+snippet req\n\
+ ${2:$1} = require '${1:sys}'${3}\n\
+# Export\n\
+snippet exp\n\
+ ${1:root} = exports ? this\n\
+";
+exports.scope = "coffee";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/coldfusion.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/coldfusion.js
new file mode 100644
index 00000000..1a91f967
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/coldfusion.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/coldfusion",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "coldfusion";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/csharp.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/csharp.js
new file mode 100644
index 00000000..96b9174a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/csharp.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/csharp",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "csharp";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/css.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/css.js
new file mode 100644
index 00000000..db5a8c0a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/css.js
@@ -0,0 +1,974 @@
+ace.define("ace/snippets/css",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet .\n\
+ ${1} {\n\
+ ${2}\n\
+ }\n\
+snippet !\n\
+ !important\n\
+snippet bdi:m+\n\
+ -moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\
+snippet bdi:m\n\
+ -moz-border-image: ${1};\n\
+snippet bdrz:m\n\
+ -moz-border-radius: ${1};\n\
+snippet bxsh:m+\n\
+ -moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\
+snippet bxsh:m\n\
+ -moz-box-shadow: ${1};\n\
+snippet bdi:w+\n\
+ -webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\
+snippet bdi:w\n\
+ -webkit-border-image: ${1};\n\
+snippet bdrz:w\n\
+ -webkit-border-radius: ${1};\n\
+snippet bxsh:w+\n\
+ -webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\
+snippet bxsh:w\n\
+ -webkit-box-shadow: ${1};\n\
+snippet @f\n\
+ @font-face {\n\
+ font-family: ${1};\n\
+ src: url(${2});\n\
+ }\n\
+snippet @i\n\
+ @import url(${1});\n\
+snippet @m\n\
+ @media ${1:print} {\n\
+ ${2}\n\
+ }\n\
+snippet bg+\n\
+ background: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\n\
+snippet bga\n\
+ background-attachment: ${1};\n\
+snippet bga:f\n\
+ background-attachment: fixed;\n\
+snippet bga:s\n\
+ background-attachment: scroll;\n\
+snippet bgbk\n\
+ background-break: ${1};\n\
+snippet bgbk:bb\n\
+ background-break: bounding-box;\n\
+snippet bgbk:c\n\
+ background-break: continuous;\n\
+snippet bgbk:eb\n\
+ background-break: each-box;\n\
+snippet bgcp\n\
+ background-clip: ${1};\n\
+snippet bgcp:bb\n\
+ background-clip: border-box;\n\
+snippet bgcp:cb\n\
+ background-clip: content-box;\n\
+snippet bgcp:nc\n\
+ background-clip: no-clip;\n\
+snippet bgcp:pb\n\
+ background-clip: padding-box;\n\
+snippet bgc\n\
+ background-color: #${1:FFF};\n\
+snippet bgc:t\n\
+ background-color: transparent;\n\
+snippet bgi\n\
+ background-image: url(${1});\n\
+snippet bgi:n\n\
+ background-image: none;\n\
+snippet bgo\n\
+ background-origin: ${1};\n\
+snippet bgo:bb\n\
+ background-origin: border-box;\n\
+snippet bgo:cb\n\
+ background-origin: content-box;\n\
+snippet bgo:pb\n\
+ background-origin: padding-box;\n\
+snippet bgpx\n\
+ background-position-x: ${1};\n\
+snippet bgpy\n\
+ background-position-y: ${1};\n\
+snippet bgp\n\
+ background-position: ${1:0} ${2:0};\n\
+snippet bgr\n\
+ background-repeat: ${1};\n\
+snippet bgr:n\n\
+ background-repeat: no-repeat;\n\
+snippet bgr:x\n\
+ background-repeat: repeat-x;\n\
+snippet bgr:y\n\
+ background-repeat: repeat-y;\n\
+snippet bgr:r\n\
+ background-repeat: repeat;\n\
+snippet bgz\n\
+ background-size: ${1};\n\
+snippet bgz:a\n\
+ background-size: auto;\n\
+snippet bgz:ct\n\
+ background-size: contain;\n\
+snippet bgz:cv\n\
+ background-size: cover;\n\
+snippet bg\n\
+ background: ${1};\n\
+snippet bg:ie\n\
+ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\n\
+snippet bg:n\n\
+ background: none;\n\
+snippet bd+\n\
+ border: ${1:1px} ${2:solid} #${3:000};\n\
+snippet bdb+\n\
+ border-bottom: ${1:1px} ${2:solid} #${3:000};\n\
+snippet bdbc\n\
+ border-bottom-color: #${1:000};\n\
+snippet bdbi\n\
+ border-bottom-image: url(${1});\n\
+snippet bdbi:n\n\
+ border-bottom-image: none;\n\
+snippet bdbli\n\
+ border-bottom-left-image: url(${1});\n\
+snippet bdbli:c\n\
+ border-bottom-left-image: continue;\n\
+snippet bdbli:n\n\
+ border-bottom-left-image: none;\n\
+snippet bdblrz\n\
+ border-bottom-left-radius: ${1};\n\
+snippet bdbri\n\
+ border-bottom-right-image: url(${1});\n\
+snippet bdbri:c\n\
+ border-bottom-right-image: continue;\n\
+snippet bdbri:n\n\
+ border-bottom-right-image: none;\n\
+snippet bdbrrz\n\
+ border-bottom-right-radius: ${1};\n\
+snippet bdbs\n\
+ border-bottom-style: ${1};\n\
+snippet bdbs:n\n\
+ border-bottom-style: none;\n\
+snippet bdbw\n\
+ border-bottom-width: ${1};\n\
+snippet bdb\n\
+ border-bottom: ${1};\n\
+snippet bdb:n\n\
+ border-bottom: none;\n\
+snippet bdbk\n\
+ border-break: ${1};\n\
+snippet bdbk:c\n\
+ border-break: close;\n\
+snippet bdcl\n\
+ border-collapse: ${1};\n\
+snippet bdcl:c\n\
+ border-collapse: collapse;\n\
+snippet bdcl:s\n\
+ border-collapse: separate;\n\
+snippet bdc\n\
+ border-color: #${1:000};\n\
+snippet bdci\n\
+ border-corner-image: url(${1});\n\
+snippet bdci:c\n\
+ border-corner-image: continue;\n\
+snippet bdci:n\n\
+ border-corner-image: none;\n\
+snippet bdf\n\
+ border-fit: ${1};\n\
+snippet bdf:c\n\
+ border-fit: clip;\n\
+snippet bdf:of\n\
+ border-fit: overwrite;\n\
+snippet bdf:ow\n\
+ border-fit: overwrite;\n\
+snippet bdf:r\n\
+ border-fit: repeat;\n\
+snippet bdf:sc\n\
+ border-fit: scale;\n\
+snippet bdf:sp\n\
+ border-fit: space;\n\
+snippet bdf:st\n\
+ border-fit: stretch;\n\
+snippet bdi\n\
+ border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\
+snippet bdi:n\n\
+ border-image: none;\n\
+snippet bdl+\n\
+ border-left: ${1:1px} ${2:solid} #${3:000};\n\
+snippet bdlc\n\
+ border-left-color: #${1:000};\n\
+snippet bdli\n\
+ border-left-image: url(${1});\n\
+snippet bdli:n\n\
+ border-left-image: none;\n\
+snippet bdls\n\
+ border-left-style: ${1};\n\
+snippet bdls:n\n\
+ border-left-style: none;\n\
+snippet bdlw\n\
+ border-left-width: ${1};\n\
+snippet bdl\n\
+ border-left: ${1};\n\
+snippet bdl:n\n\
+ border-left: none;\n\
+snippet bdlt\n\
+ border-length: ${1};\n\
+snippet bdlt:a\n\
+ border-length: auto;\n\
+snippet bdrz\n\
+ border-radius: ${1};\n\
+snippet bdr+\n\
+ border-right: ${1:1px} ${2:solid} #${3:000};\n\
+snippet bdrc\n\
+ border-right-color: #${1:000};\n\
+snippet bdri\n\
+ border-right-image: url(${1});\n\
+snippet bdri:n\n\
+ border-right-image: none;\n\
+snippet bdrs\n\
+ border-right-style: ${1};\n\
+snippet bdrs:n\n\
+ border-right-style: none;\n\
+snippet bdrw\n\
+ border-right-width: ${1};\n\
+snippet bdr\n\
+ border-right: ${1};\n\
+snippet bdr:n\n\
+ border-right: none;\n\
+snippet bdsp\n\
+ border-spacing: ${1};\n\
+snippet bds\n\
+ border-style: ${1};\n\
+snippet bds:ds\n\
+ border-style: dashed;\n\
+snippet bds:dtds\n\
+ border-style: dot-dash;\n\
+snippet bds:dtdtds\n\
+ border-style: dot-dot-dash;\n\
+snippet bds:dt\n\
+ border-style: dotted;\n\
+snippet bds:db\n\
+ border-style: double;\n\
+snippet bds:g\n\
+ border-style: groove;\n\
+snippet bds:h\n\
+ border-style: hidden;\n\
+snippet bds:i\n\
+ border-style: inset;\n\
+snippet bds:n\n\
+ border-style: none;\n\
+snippet bds:o\n\
+ border-style: outset;\n\
+snippet bds:r\n\
+ border-style: ridge;\n\
+snippet bds:s\n\
+ border-style: solid;\n\
+snippet bds:w\n\
+ border-style: wave;\n\
+snippet bdt+\n\
+ border-top: ${1:1px} ${2:solid} #${3:000};\n\
+snippet bdtc\n\
+ border-top-color: #${1:000};\n\
+snippet bdti\n\
+ border-top-image: url(${1});\n\
+snippet bdti:n\n\
+ border-top-image: none;\n\
+snippet bdtli\n\
+ border-top-left-image: url(${1});\n\
+snippet bdtli:c\n\
+ border-corner-image: continue;\n\
+snippet bdtli:n\n\
+ border-corner-image: none;\n\
+snippet bdtlrz\n\
+ border-top-left-radius: ${1};\n\
+snippet bdtri\n\
+ border-top-right-image: url(${1});\n\
+snippet bdtri:c\n\
+ border-top-right-image: continue;\n\
+snippet bdtri:n\n\
+ border-top-right-image: none;\n\
+snippet bdtrrz\n\
+ border-top-right-radius: ${1};\n\
+snippet bdts\n\
+ border-top-style: ${1};\n\
+snippet bdts:n\n\
+ border-top-style: none;\n\
+snippet bdtw\n\
+ border-top-width: ${1};\n\
+snippet bdt\n\
+ border-top: ${1};\n\
+snippet bdt:n\n\
+ border-top: none;\n\
+snippet bdw\n\
+ border-width: ${1};\n\
+snippet bd\n\
+ border: ${1};\n\
+snippet bd:n\n\
+ border: none;\n\
+snippet b\n\
+ bottom: ${1};\n\
+snippet b:a\n\
+ bottom: auto;\n\
+snippet bxsh+\n\
+ box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\
+snippet bxsh\n\
+ box-shadow: ${1};\n\
+snippet bxsh:n\n\
+ box-shadow: none;\n\
+snippet bxz\n\
+ box-sizing: ${1};\n\
+snippet bxz:bb\n\
+ box-sizing: border-box;\n\
+snippet bxz:cb\n\
+ box-sizing: content-box;\n\
+snippet cps\n\
+ caption-side: ${1};\n\
+snippet cps:b\n\
+ caption-side: bottom;\n\
+snippet cps:t\n\
+ caption-side: top;\n\
+snippet cl\n\
+ clear: ${1};\n\
+snippet cl:b\n\
+ clear: both;\n\
+snippet cl:l\n\
+ clear: left;\n\
+snippet cl:n\n\
+ clear: none;\n\
+snippet cl:r\n\
+ clear: right;\n\
+snippet cp\n\
+ clip: ${1};\n\
+snippet cp:a\n\
+ clip: auto;\n\
+snippet cp:r\n\
+ clip: rect(${1:0} ${2:0} ${3:0} ${4:0});\n\
+snippet c\n\
+ color: #${1:000};\n\
+snippet ct\n\
+ content: ${1};\n\
+snippet ct:a\n\
+ content: attr(${1});\n\
+snippet ct:cq\n\
+ content: close-quote;\n\
+snippet ct:c\n\
+ content: counter(${1});\n\
+snippet ct:cs\n\
+ content: counters(${1});\n\
+snippet ct:ncq\n\
+ content: no-close-quote;\n\
+snippet ct:noq\n\
+ content: no-open-quote;\n\
+snippet ct:n\n\
+ content: normal;\n\
+snippet ct:oq\n\
+ content: open-quote;\n\
+snippet coi\n\
+ counter-increment: ${1};\n\
+snippet cor\n\
+ counter-reset: ${1};\n\
+snippet cur\n\
+ cursor: ${1};\n\
+snippet cur:a\n\
+ cursor: auto;\n\
+snippet cur:c\n\
+ cursor: crosshair;\n\
+snippet cur:d\n\
+ cursor: default;\n\
+snippet cur:ha\n\
+ cursor: hand;\n\
+snippet cur:he\n\
+ cursor: help;\n\
+snippet cur:m\n\
+ cursor: move;\n\
+snippet cur:p\n\
+ cursor: pointer;\n\
+snippet cur:t\n\
+ cursor: text;\n\
+snippet d\n\
+ display: ${1};\n\
+snippet d:mib\n\
+ display: -moz-inline-box;\n\
+snippet d:mis\n\
+ display: -moz-inline-stack;\n\
+snippet d:b\n\
+ display: block;\n\
+snippet d:cp\n\
+ display: compact;\n\
+snippet d:ib\n\
+ display: inline-block;\n\
+snippet d:itb\n\
+ display: inline-table;\n\
+snippet d:i\n\
+ display: inline;\n\
+snippet d:li\n\
+ display: list-item;\n\
+snippet d:n\n\
+ display: none;\n\
+snippet d:ri\n\
+ display: run-in;\n\
+snippet d:tbcp\n\
+ display: table-caption;\n\
+snippet d:tbc\n\
+ display: table-cell;\n\
+snippet d:tbclg\n\
+ display: table-column-group;\n\
+snippet d:tbcl\n\
+ display: table-column;\n\
+snippet d:tbfg\n\
+ display: table-footer-group;\n\
+snippet d:tbhg\n\
+ display: table-header-group;\n\
+snippet d:tbrg\n\
+ display: table-row-group;\n\
+snippet d:tbr\n\
+ display: table-row;\n\
+snippet d:tb\n\
+ display: table;\n\
+snippet ec\n\
+ empty-cells: ${1};\n\
+snippet ec:h\n\
+ empty-cells: hide;\n\
+snippet ec:s\n\
+ empty-cells: show;\n\
+snippet exp\n\
+ expression()\n\
+snippet fl\n\
+ float: ${1};\n\
+snippet fl:l\n\
+ float: left;\n\
+snippet fl:n\n\
+ float: none;\n\
+snippet fl:r\n\
+ float: right;\n\
+snippet f+\n\
+ font: ${1:1em} ${2:Arial},${3:sans-serif};\n\
+snippet fef\n\
+ font-effect: ${1};\n\
+snippet fef:eb\n\
+ font-effect: emboss;\n\
+snippet fef:eg\n\
+ font-effect: engrave;\n\
+snippet fef:n\n\
+ font-effect: none;\n\
+snippet fef:o\n\
+ font-effect: outline;\n\
+snippet femp\n\
+ font-emphasize-position: ${1};\n\
+snippet femp:a\n\
+ font-emphasize-position: after;\n\
+snippet femp:b\n\
+ font-emphasize-position: before;\n\
+snippet fems\n\
+ font-emphasize-style: ${1};\n\
+snippet fems:ac\n\
+ font-emphasize-style: accent;\n\
+snippet fems:c\n\
+ font-emphasize-style: circle;\n\
+snippet fems:ds\n\
+ font-emphasize-style: disc;\n\
+snippet fems:dt\n\
+ font-emphasize-style: dot;\n\
+snippet fems:n\n\
+ font-emphasize-style: none;\n\
+snippet fem\n\
+ font-emphasize: ${1};\n\
+snippet ff\n\
+ font-family: ${1};\n\
+snippet ff:c\n\
+ font-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\n\
+snippet ff:f\n\
+ font-family: ${1:Capitals,Impact},fantasy;\n\
+snippet ff:m\n\
+ font-family: ${1:Monaco,'Courier New'},monospace;\n\
+snippet ff:ss\n\
+ font-family: ${1:Helvetica,Arial},sans-serif;\n\
+snippet ff:s\n\
+ font-family: ${1:Georgia,'Times New Roman'},serif;\n\
+snippet fza\n\
+ font-size-adjust: ${1};\n\
+snippet fza:n\n\
+ font-size-adjust: none;\n\
+snippet fz\n\
+ font-size: ${1};\n\
+snippet fsm\n\
+ font-smooth: ${1};\n\
+snippet fsm:aw\n\
+ font-smooth: always;\n\
+snippet fsm:a\n\
+ font-smooth: auto;\n\
+snippet fsm:n\n\
+ font-smooth: never;\n\
+snippet fst\n\
+ font-stretch: ${1};\n\
+snippet fst:c\n\
+ font-stretch: condensed;\n\
+snippet fst:e\n\
+ font-stretch: expanded;\n\
+snippet fst:ec\n\
+ font-stretch: extra-condensed;\n\
+snippet fst:ee\n\
+ font-stretch: extra-expanded;\n\
+snippet fst:n\n\
+ font-stretch: normal;\n\
+snippet fst:sc\n\
+ font-stretch: semi-condensed;\n\
+snippet fst:se\n\
+ font-stretch: semi-expanded;\n\
+snippet fst:uc\n\
+ font-stretch: ultra-condensed;\n\
+snippet fst:ue\n\
+ font-stretch: ultra-expanded;\n\
+snippet fs\n\
+ font-style: ${1};\n\
+snippet fs:i\n\
+ font-style: italic;\n\
+snippet fs:n\n\
+ font-style: normal;\n\
+snippet fs:o\n\
+ font-style: oblique;\n\
+snippet fv\n\
+ font-variant: ${1};\n\
+snippet fv:n\n\
+ font-variant: normal;\n\
+snippet fv:sc\n\
+ font-variant: small-caps;\n\
+snippet fw\n\
+ font-weight: ${1};\n\
+snippet fw:b\n\
+ font-weight: bold;\n\
+snippet fw:br\n\
+ font-weight: bolder;\n\
+snippet fw:lr\n\
+ font-weight: lighter;\n\
+snippet fw:n\n\
+ font-weight: normal;\n\
+snippet f\n\
+ font: ${1};\n\
+snippet h\n\
+ height: ${1};\n\
+snippet h:a\n\
+ height: auto;\n\
+snippet l\n\
+ left: ${1};\n\
+snippet l:a\n\
+ left: auto;\n\
+snippet lts\n\
+ letter-spacing: ${1};\n\
+snippet lh\n\
+ line-height: ${1};\n\
+snippet lisi\n\
+ list-style-image: url(${1});\n\
+snippet lisi:n\n\
+ list-style-image: none;\n\
+snippet lisp\n\
+ list-style-position: ${1};\n\
+snippet lisp:i\n\
+ list-style-position: inside;\n\
+snippet lisp:o\n\
+ list-style-position: outside;\n\
+snippet list\n\
+ list-style-type: ${1};\n\
+snippet list:c\n\
+ list-style-type: circle;\n\
+snippet list:dclz\n\
+ list-style-type: decimal-leading-zero;\n\
+snippet list:dc\n\
+ list-style-type: decimal;\n\
+snippet list:d\n\
+ list-style-type: disc;\n\
+snippet list:lr\n\
+ list-style-type: lower-roman;\n\
+snippet list:n\n\
+ list-style-type: none;\n\
+snippet list:s\n\
+ list-style-type: square;\n\
+snippet list:ur\n\
+ list-style-type: upper-roman;\n\
+snippet lis\n\
+ list-style: ${1};\n\
+snippet lis:n\n\
+ list-style: none;\n\
+snippet mb\n\
+ margin-bottom: ${1};\n\
+snippet mb:a\n\
+ margin-bottom: auto;\n\
+snippet ml\n\
+ margin-left: ${1};\n\
+snippet ml:a\n\
+ margin-left: auto;\n\
+snippet mr\n\
+ margin-right: ${1};\n\
+snippet mr:a\n\
+ margin-right: auto;\n\
+snippet mt\n\
+ margin-top: ${1};\n\
+snippet mt:a\n\
+ margin-top: auto;\n\
+snippet m\n\
+ margin: ${1};\n\
+snippet m:4\n\
+ margin: ${1:0} ${2:0} ${3:0} ${4:0};\n\
+snippet m:3\n\
+ margin: ${1:0} ${2:0} ${3:0};\n\
+snippet m:2\n\
+ margin: ${1:0} ${2:0};\n\
+snippet m:0\n\
+ margin: 0;\n\
+snippet m:a\n\
+ margin: auto;\n\
+snippet mah\n\
+ max-height: ${1};\n\
+snippet mah:n\n\
+ max-height: none;\n\
+snippet maw\n\
+ max-width: ${1};\n\
+snippet maw:n\n\
+ max-width: none;\n\
+snippet mih\n\
+ min-height: ${1};\n\
+snippet miw\n\
+ min-width: ${1};\n\
+snippet op\n\
+ opacity: ${1};\n\
+snippet op:ie\n\
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\n\
+snippet op:ms\n\
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\n\
+snippet orp\n\
+ orphans: ${1};\n\
+snippet o+\n\
+ outline: ${1:1px} ${2:solid} #${3:000};\n\
+snippet oc\n\
+ outline-color: ${1:#000};\n\
+snippet oc:i\n\
+ outline-color: invert;\n\
+snippet oo\n\
+ outline-offset: ${1};\n\
+snippet os\n\
+ outline-style: ${1};\n\
+snippet ow\n\
+ outline-width: ${1};\n\
+snippet o\n\
+ outline: ${1};\n\
+snippet o:n\n\
+ outline: none;\n\
+snippet ovs\n\
+ overflow-style: ${1};\n\
+snippet ovs:a\n\
+ overflow-style: auto;\n\
+snippet ovs:mq\n\
+ overflow-style: marquee;\n\
+snippet ovs:mv\n\
+ overflow-style: move;\n\
+snippet ovs:p\n\
+ overflow-style: panner;\n\
+snippet ovs:s\n\
+ overflow-style: scrollbar;\n\
+snippet ovx\n\
+ overflow-x: ${1};\n\
+snippet ovx:a\n\
+ overflow-x: auto;\n\
+snippet ovx:h\n\
+ overflow-x: hidden;\n\
+snippet ovx:s\n\
+ overflow-x: scroll;\n\
+snippet ovx:v\n\
+ overflow-x: visible;\n\
+snippet ovy\n\
+ overflow-y: ${1};\n\
+snippet ovy:a\n\
+ overflow-y: auto;\n\
+snippet ovy:h\n\
+ overflow-y: hidden;\n\
+snippet ovy:s\n\
+ overflow-y: scroll;\n\
+snippet ovy:v\n\
+ overflow-y: visible;\n\
+snippet ov\n\
+ overflow: ${1};\n\
+snippet ov:a\n\
+ overflow: auto;\n\
+snippet ov:h\n\
+ overflow: hidden;\n\
+snippet ov:s\n\
+ overflow: scroll;\n\
+snippet ov:v\n\
+ overflow: visible;\n\
+snippet pb\n\
+ padding-bottom: ${1};\n\
+snippet pl\n\
+ padding-left: ${1};\n\
+snippet pr\n\
+ padding-right: ${1};\n\
+snippet pt\n\
+ padding-top: ${1};\n\
+snippet p\n\
+ padding: ${1};\n\
+snippet p:4\n\
+ padding: ${1:0} ${2:0} ${3:0} ${4:0};\n\
+snippet p:3\n\
+ padding: ${1:0} ${2:0} ${3:0};\n\
+snippet p:2\n\
+ padding: ${1:0} ${2:0};\n\
+snippet p:0\n\
+ padding: 0;\n\
+snippet pgba\n\
+ page-break-after: ${1};\n\
+snippet pgba:aw\n\
+ page-break-after: always;\n\
+snippet pgba:a\n\
+ page-break-after: auto;\n\
+snippet pgba:l\n\
+ page-break-after: left;\n\
+snippet pgba:r\n\
+ page-break-after: right;\n\
+snippet pgbb\n\
+ page-break-before: ${1};\n\
+snippet pgbb:aw\n\
+ page-break-before: always;\n\
+snippet pgbb:a\n\
+ page-break-before: auto;\n\
+snippet pgbb:l\n\
+ page-break-before: left;\n\
+snippet pgbb:r\n\
+ page-break-before: right;\n\
+snippet pgbi\n\
+ page-break-inside: ${1};\n\
+snippet pgbi:a\n\
+ page-break-inside: auto;\n\
+snippet pgbi:av\n\
+ page-break-inside: avoid;\n\
+snippet pos\n\
+ position: ${1};\n\
+snippet pos:a\n\
+ position: absolute;\n\
+snippet pos:f\n\
+ position: fixed;\n\
+snippet pos:r\n\
+ position: relative;\n\
+snippet pos:s\n\
+ position: static;\n\
+snippet q\n\
+ quotes: ${1};\n\
+snippet q:en\n\
+ quotes: '\\201C' '\\201D' '\\2018' '\\2019';\n\
+snippet q:n\n\
+ quotes: none;\n\
+snippet q:ru\n\
+ quotes: '\\00AB' '\\00BB' '\\201E' '\\201C';\n\
+snippet rz\n\
+ resize: ${1};\n\
+snippet rz:b\n\
+ resize: both;\n\
+snippet rz:h\n\
+ resize: horizontal;\n\
+snippet rz:n\n\
+ resize: none;\n\
+snippet rz:v\n\
+ resize: vertical;\n\
+snippet r\n\
+ right: ${1};\n\
+snippet r:a\n\
+ right: auto;\n\
+snippet tbl\n\
+ table-layout: ${1};\n\
+snippet tbl:a\n\
+ table-layout: auto;\n\
+snippet tbl:f\n\
+ table-layout: fixed;\n\
+snippet tal\n\
+ text-align-last: ${1};\n\
+snippet tal:a\n\
+ text-align-last: auto;\n\
+snippet tal:c\n\
+ text-align-last: center;\n\
+snippet tal:l\n\
+ text-align-last: left;\n\
+snippet tal:r\n\
+ text-align-last: right;\n\
+snippet ta\n\
+ text-align: ${1};\n\
+snippet ta:c\n\
+ text-align: center;\n\
+snippet ta:l\n\
+ text-align: left;\n\
+snippet ta:r\n\
+ text-align: right;\n\
+snippet td\n\
+ text-decoration: ${1};\n\
+snippet td:l\n\
+ text-decoration: line-through;\n\
+snippet td:n\n\
+ text-decoration: none;\n\
+snippet td:o\n\
+ text-decoration: overline;\n\
+snippet td:u\n\
+ text-decoration: underline;\n\
+snippet te\n\
+ text-emphasis: ${1};\n\
+snippet te:ac\n\
+ text-emphasis: accent;\n\
+snippet te:a\n\
+ text-emphasis: after;\n\
+snippet te:b\n\
+ text-emphasis: before;\n\
+snippet te:c\n\
+ text-emphasis: circle;\n\
+snippet te:ds\n\
+ text-emphasis: disc;\n\
+snippet te:dt\n\
+ text-emphasis: dot;\n\
+snippet te:n\n\
+ text-emphasis: none;\n\
+snippet th\n\
+ text-height: ${1};\n\
+snippet th:a\n\
+ text-height: auto;\n\
+snippet th:f\n\
+ text-height: font-size;\n\
+snippet th:m\n\
+ text-height: max-size;\n\
+snippet th:t\n\
+ text-height: text-size;\n\
+snippet ti\n\
+ text-indent: ${1};\n\
+snippet ti:-\n\
+ text-indent: -9999px;\n\
+snippet tj\n\
+ text-justify: ${1};\n\
+snippet tj:a\n\
+ text-justify: auto;\n\
+snippet tj:d\n\
+ text-justify: distribute;\n\
+snippet tj:ic\n\
+ text-justify: inter-cluster;\n\
+snippet tj:ii\n\
+ text-justify: inter-ideograph;\n\
+snippet tj:iw\n\
+ text-justify: inter-word;\n\
+snippet tj:k\n\
+ text-justify: kashida;\n\
+snippet tj:t\n\
+ text-justify: tibetan;\n\
+snippet to+\n\
+ text-outline: ${1:0} ${2:0} #${3:000};\n\
+snippet to\n\
+ text-outline: ${1};\n\
+snippet to:n\n\
+ text-outline: none;\n\
+snippet tr\n\
+ text-replace: ${1};\n\
+snippet tr:n\n\
+ text-replace: none;\n\
+snippet tsh+\n\
+ text-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\
+snippet tsh\n\
+ text-shadow: ${1};\n\
+snippet tsh:n\n\
+ text-shadow: none;\n\
+snippet tt\n\
+ text-transform: ${1};\n\
+snippet tt:c\n\
+ text-transform: capitalize;\n\
+snippet tt:l\n\
+ text-transform: lowercase;\n\
+snippet tt:n\n\
+ text-transform: none;\n\
+snippet tt:u\n\
+ text-transform: uppercase;\n\
+snippet tw\n\
+ text-wrap: ${1};\n\
+snippet tw:no\n\
+ text-wrap: none;\n\
+snippet tw:n\n\
+ text-wrap: normal;\n\
+snippet tw:s\n\
+ text-wrap: suppress;\n\
+snippet tw:u\n\
+ text-wrap: unrestricted;\n\
+snippet t\n\
+ top: ${1};\n\
+snippet t:a\n\
+ top: auto;\n\
+snippet va\n\
+ vertical-align: ${1};\n\
+snippet va:bl\n\
+ vertical-align: baseline;\n\
+snippet va:b\n\
+ vertical-align: bottom;\n\
+snippet va:m\n\
+ vertical-align: middle;\n\
+snippet va:sub\n\
+ vertical-align: sub;\n\
+snippet va:sup\n\
+ vertical-align: super;\n\
+snippet va:tb\n\
+ vertical-align: text-bottom;\n\
+snippet va:tt\n\
+ vertical-align: text-top;\n\
+snippet va:t\n\
+ vertical-align: top;\n\
+snippet v\n\
+ visibility: ${1};\n\
+snippet v:c\n\
+ visibility: collapse;\n\
+snippet v:h\n\
+ visibility: hidden;\n\
+snippet v:v\n\
+ visibility: visible;\n\
+snippet whsc\n\
+ white-space-collapse: ${1};\n\
+snippet whsc:ba\n\
+ white-space-collapse: break-all;\n\
+snippet whsc:bs\n\
+ white-space-collapse: break-strict;\n\
+snippet whsc:k\n\
+ white-space-collapse: keep-all;\n\
+snippet whsc:l\n\
+ white-space-collapse: loose;\n\
+snippet whsc:n\n\
+ white-space-collapse: normal;\n\
+snippet whs\n\
+ white-space: ${1};\n\
+snippet whs:n\n\
+ white-space: normal;\n\
+snippet whs:nw\n\
+ white-space: nowrap;\n\
+snippet whs:pl\n\
+ white-space: pre-line;\n\
+snippet whs:pw\n\
+ white-space: pre-wrap;\n\
+snippet whs:p\n\
+ white-space: pre;\n\
+snippet wid\n\
+ widows: ${1};\n\
+snippet w\n\
+ width: ${1};\n\
+snippet w:a\n\
+ width: auto;\n\
+snippet wob\n\
+ word-break: ${1};\n\
+snippet wob:ba\n\
+ word-break: break-all;\n\
+snippet wob:bs\n\
+ word-break: break-strict;\n\
+snippet wob:k\n\
+ word-break: keep-all;\n\
+snippet wob:l\n\
+ word-break: loose;\n\
+snippet wob:n\n\
+ word-break: normal;\n\
+snippet wos\n\
+ word-spacing: ${1};\n\
+snippet wow\n\
+ word-wrap: ${1};\n\
+snippet wow:no\n\
+ word-wrap: none;\n\
+snippet wow:n\n\
+ word-wrap: normal;\n\
+snippet wow:s\n\
+ word-wrap: suppress;\n\
+snippet wow:u\n\
+ word-wrap: unrestricted;\n\
+snippet z\n\
+ z-index: ${1};\n\
+snippet z:a\n\
+ z-index: auto;\n\
+snippet zoo\n\
+ zoom: 1;\n\
+";
+exports.scope = "css";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/curly.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/curly.js
new file mode 100644
index 00000000..1b2b6873
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/curly.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/curly",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "curly";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/d.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/d.js
new file mode 100644
index 00000000..729741cc
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/d.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/d",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "d";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/dart.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dart.js
new file mode 100644
index 00000000..e96cc5d2
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dart.js
@@ -0,0 +1,90 @@
+ace.define("ace/snippets/dart",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet lib\n\
+ library ${1};\n\
+ ${2}\n\
+snippet im\n\
+ import '${1}';\n\
+ ${2}\n\
+snippet pa\n\
+ part '${1}';\n\
+ ${2}\n\
+snippet pao\n\
+ part of ${1};\n\
+ ${2}\n\
+snippet main\n\
+ void main() {\n\
+ ${1:/* code */}\n\
+ }\n\
+snippet st\n\
+ static ${1}\n\
+snippet fi\n\
+ final ${1}\n\
+snippet re\n\
+ return ${1}\n\
+snippet br\n\
+ break;\n\
+snippet th\n\
+ throw ${1}\n\
+snippet cl\n\
+ class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\
+snippet imp\n\
+ implements ${1}\n\
+snippet ext\n\
+ extends ${1}\n\
+snippet if\n\
+ if (${1:true}) {\n\
+ ${2}\n\
+ }\n\
+snippet ife\n\
+ if (${1:true}) {\n\
+ ${2}\n\
+ } else {\n\
+ ${3}\n\
+ }\n\
+snippet el\n\
+ else\n\
+snippet sw\n\
+ switch (${1}) {\n\
+ ${2}\n\
+ }\n\
+snippet cs\n\
+ case ${1}:\n\
+ ${2}\n\
+snippet de\n\
+ default:\n\
+ ${1}\n\
+snippet for\n\
+ for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n\
+ ${4:$1[$2]}\n\
+ }\n\
+snippet fore\n\
+ for (final ${2:item} in ${1:itemList}) {\n\
+ ${3:/* code */}\n\
+ }\n\
+snippet wh\n\
+ while (${1:/* condition */}) {\n\
+ ${2:/* code */}\n\
+ }\n\
+snippet dowh\n\
+ do {\n\
+ ${2:/* code */}\n\
+ } while (${1:/* condition */});\n\
+snippet as\n\
+ assert(${1:/* condition */});\n\
+snippet try\n\
+ try {\n\
+ ${2}\n\
+ } catch (${1:Exception e}) {\n\
+ }\n\
+snippet tryf\n\
+ try {\n\
+ ${2}\n\
+ } catch (${1:Exception e}) {\n\
+ } finally {\n\
+ }\n\
+";
+exports.scope = "dart";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/diff.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/diff.js
new file mode 100644
index 00000000..8fe075ec
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/diff.js
@@ -0,0 +1,18 @@
+ace.define("ace/snippets/diff",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\n\
+snippet header DEP-3 style header\n\
+ Description: ${1}\n\
+ Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n\
+ Bug: ${4:url in upstream bugtracker}\n\
+ Forwarded: ${5:no|not-needed|url}\n\
+ Author: ${6:`g:snips_author`}\n\
+ Reviewed-by: ${7:name and email}\n\
+ Last-Update: ${8:`strftime(\"%Y-%m-%d\")`}\n\
+ Applied-Upstream: ${9:upstream version|url|commit}\n\
+\n\
+";
+exports.scope = "diff";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/django.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/django.js
new file mode 100644
index 00000000..c1dacbed
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/django.js
@@ -0,0 +1,115 @@
+ace.define("ace/snippets/django",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Model Fields\n\
+\n\
+# Note: Optional arguments are using defaults that match what Django will use\n\
+# as a default, e.g. with max_length fields. Doing this as a form of self\n\
+# documentation and to make it easy to know whether you should override the\n\
+# default or not.\n\
+\n\
+# Note: Optional arguments that are booleans will use the opposite since you\n\
+# can either not specify them, or override them, e.g. auto_now_add=False.\n\
+\n\
+snippet auto\n\
+ ${1:FIELDNAME} = models.AutoField(${2})\n\
+snippet bool\n\
+ ${1:FIELDNAME} = models.BooleanField(${2:default=True})\n\
+snippet char\n\
+ ${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\n\
+snippet comma\n\
+ ${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\n\
+snippet date\n\
+ ${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\
+snippet datetime\n\
+ ${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\
+snippet decimal\n\
+ ${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\n\
+snippet email\n\
+ ${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\n\
+snippet file\n\
+ ${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\n\
+snippet filepath\n\
+ ${1:FIELDNAME} = models.FilePathField(path=${2:\"/abs/path/to/dir\"}${3:, max_length=100}${4:, match=\"*.ext\"}${5:, recursive=True}${6:, blank=True, })\n\
+snippet float\n\
+ ${1:FIELDNAME} = models.FloatField(${2})\n\
+snippet image\n\
+ ${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\n\
+snippet int\n\
+ ${1:FIELDNAME} = models.IntegerField(${2})\n\
+snippet ip\n\
+ ${1:FIELDNAME} = models.IPAddressField(${2})\n\
+snippet nullbool\n\
+ ${1:FIELDNAME} = models.NullBooleanField(${2})\n\
+snippet posint\n\
+ ${1:FIELDNAME} = models.PositiveIntegerField(${2})\n\
+snippet possmallint\n\
+ ${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\n\
+snippet slug\n\
+ ${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\n\
+snippet smallint\n\
+ ${1:FIELDNAME} = models.SmallIntegerField(${2})\n\
+snippet text\n\
+ ${1:FIELDNAME} = models.TextField(${2:blank=True})\n\
+snippet time\n\
+ ${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\
+snippet url\n\
+ ${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\n\
+snippet xml\n\
+ ${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\n\
+# Relational Fields\n\
+snippet fk\n\
+ ${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\n\
+snippet m2m\n\
+ ${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\n\
+snippet o2o\n\
+ ${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\n\
+\n\
+# Code Skeletons\n\
+\n\
+snippet form\n\
+ class ${1:FormName}(forms.Form):\n\
+ \"\"\"${2:docstring}\"\"\"\n\
+ ${3}\n\
+\n\
+snippet model\n\
+ class ${1:ModelName}(models.Model):\n\
+ \"\"\"${2:docstring}\"\"\"\n\
+ ${3}\n\
+ \n\
+ class Meta:\n\
+ ${4}\n\
+ \n\
+ def __unicode__(self):\n\
+ ${5}\n\
+ \n\
+ def save(self, force_insert=False, force_update=False):\n\
+ ${6}\n\
+ \n\
+ @models.permalink\n\
+ def get_absolute_url(self):\n\
+ return ('${7:view_or_url_name}' ${8})\n\
+\n\
+snippet modeladmin\n\
+ class ${1:ModelName}Admin(admin.ModelAdmin):\n\
+ ${2}\n\
+ \n\
+ admin.site.register($1, $1Admin)\n\
+ \n\
+snippet tabularinline\n\
+ class ${1:ModelName}Inline(admin.TabularInline):\n\
+ model = $1\n\
+\n\
+snippet stackedinline\n\
+ class ${1:ModelName}Inline(admin.StackedInline):\n\
+ model = $1\n\
+\n\
+snippet r2r\n\
+ return render_to_response('${1:template.html}', {\n\
+ ${2}\n\
+ }${3:, context_instance=RequestContext(request)}\n\
+ )\n\
+";
+exports.scope = "django";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/dockerfile.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dockerfile.js
new file mode 100644
index 00000000..981cee8a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dockerfile.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/dockerfile",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "dockerfile";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/dot.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dot.js
new file mode 100644
index 00000000..3a09fc77
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/dot.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/dot",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "dot";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/drools.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/drools.js
new file mode 100644
index 00000000..a8dd859a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/drools.js
@@ -0,0 +1,26 @@
+ace.define("ace/snippets/drools",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "\n\
+snippet rule\n\
+ rule \"${1?:rule_name}\"\n\
+ when\n\
+ ${2:// when...} \n\
+ then\n\
+ ${3:// then...}\n\
+ end\n\
+\n\
+snippet query\n\
+ query ${1?:query_name}\n\
+ ${2:// find} \n\
+ end\n\
+ \n\
+snippet declare\n\
+ declare ${1?:type_name}\n\
+ ${2:// attributes} \n\
+ end\n\
+\n\
+";
+exports.scope = "drools";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/eiffel.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/eiffel.js
new file mode 100644
index 00000000..25672785
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/eiffel.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/eiffel",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "eiffel";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ejs.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ejs.js
new file mode 100644
index 00000000..fd38fa09
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ejs.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/ejs",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "ejs";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/elixir.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/elixir.js
new file mode 100644
index 00000000..d9326275
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/elixir.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/elixir",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/elm.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/elm.js
new file mode 100644
index 00000000..a9d06b59
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/elm.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/elm",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "elm";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/erlang.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/erlang.js
new file mode 100644
index 00000000..d04ee117
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/erlang.js
@@ -0,0 +1,167 @@
+ace.define("ace/snippets/erlang",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# module and export all\n\
+snippet mod\n\
+ -module(${1:`Filename('', 'my')`}).\n\
+ \n\
+ -compile([export_all]).\n\
+ \n\
+ start() ->\n\
+ ${2}\n\
+ \n\
+ stop() ->\n\
+ ok.\n\
+# define directive\n\
+snippet def\n\
+ -define(${1:macro}, ${2:body}).${3}\n\
+# export directive\n\
+snippet exp\n\
+ -export([${1:function}/${2:arity}]).\n\
+# include directive\n\
+snippet inc\n\
+ -include(\"${1:file}\").${2}\n\
+# behavior directive\n\
+snippet beh\n\
+ -behaviour(${1:behaviour}).${2}\n\
+# if expression\n\
+snippet if\n\
+ if\n\
+ ${1:guard} ->\n\
+ ${2:body}\n\
+ end\n\
+# case expression\n\
+snippet case\n\
+ case ${1:expression} of\n\
+ ${2:pattern} ->\n\
+ ${3:body};\n\
+ end\n\
+# anonymous function\n\
+snippet fun\n\
+ fun (${1:Parameters}) -> ${2:body} end${3}\n\
+# try...catch\n\
+snippet try\n\
+ try\n\
+ ${1}\n\
+ catch\n\
+ ${2:_:_} -> ${3:got_some_exception}\n\
+ end\n\
+# record directive\n\
+snippet rec\n\
+ -record(${1:record}, {\n\
+ ${2:field}=${3:value}}).${4}\n\
+# todo comment\n\
+snippet todo\n\
+ %% TODO: ${1}\n\
+## Snippets below (starting with '%') are in EDoc format.\n\
+## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n\
+# doc comment\n\
+snippet %d\n\
+ %% @doc ${1}\n\
+# end of doc comment\n\
+snippet %e\n\
+ %% @end\n\
+# specification comment\n\
+snippet %s\n\
+ %% @spec ${1}\n\
+# private function marker\n\
+snippet %p\n\
+ %% @private\n\
+# OTP application\n\
+snippet application\n\
+ -module(${1:`Filename('', 'my')`}).\n\
+\n\
+ -behaviour(application).\n\
+\n\
+ -export([start/2, stop/1]).\n\
+\n\
+ start(_Type, _StartArgs) ->\n\
+ case ${2:root_supervisor}:start_link() of\n\
+ {ok, Pid} ->\n\
+ {ok, Pid};\n\
+ Other ->\n\
+ {error, Other}\n\
+ end.\n\
+\n\
+ stop(_State) ->\n\
+ ok. \n\
+# OTP supervisor\n\
+snippet supervisor\n\
+ -module(${1:`Filename('', 'my')`}).\n\
+\n\
+ -behaviour(supervisor).\n\
+\n\
+ %% API\n\
+ -export([start_link/0]).\n\
+\n\
+ %% Supervisor callbacks\n\
+ -export([init/1]).\n\
+\n\
+ -define(SERVER, ?MODULE).\n\
+\n\
+ start_link() ->\n\
+ supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\
+\n\
+ init([]) ->\n\
+ Server = {${2:my_server}, {$2, start_link, []},\n\
+ permanent, 2000, worker, [$2]},\n\
+ Children = [Server],\n\
+ RestartStrategy = {one_for_one, 0, 1},\n\
+ {ok, {RestartStrategy, Children}}.\n\
+# OTP gen_server\n\
+snippet gen_server\n\
+ -module(${1:`Filename('', 'my')`}).\n\
+\n\
+ -behaviour(gen_server).\n\
+\n\
+ %% API\n\
+ -export([\n\
+ start_link/0\n\
+ ]).\n\
+\n\
+ %% gen_server callbacks\n\
+ -export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n\
+ terminate/2, code_change/3]).\n\
+\n\
+ -define(SERVER, ?MODULE).\n\
+\n\
+ -record(state, {}).\n\
+\n\
+ %%%===================================================================\n\
+ %%% API\n\
+ %%%===================================================================\n\
+\n\
+ start_link() ->\n\
+ gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\
+\n\
+ %%%===================================================================\n\
+ %%% gen_server callbacks\n\
+ %%%===================================================================\n\
+\n\
+ init([]) ->\n\
+ {ok, #state{}}.\n\
+\n\
+ handle_call(_Request, _From, State) ->\n\
+ Reply = ok,\n\
+ {reply, Reply, State}.\n\
+\n\
+ handle_cast(_Msg, State) ->\n\
+ {noreply, State}.\n\
+\n\
+ handle_info(_Info, State) ->\n\
+ {noreply, State}.\n\
+\n\
+ terminate(_Reason, _State) ->\n\
+ ok.\n\
+\n\
+ code_change(_OldVsn, State, _Extra) ->\n\
+ {ok, State}.\n\
+\n\
+ %%%===================================================================\n\
+ %%% Internal functions\n\
+ %%%===================================================================\n\
+\n\
+";
+exports.scope = "erlang";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/forth.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/forth.js
new file mode 100644
index 00000000..afb1f8a4
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/forth.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/forth",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "forth";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/fortran.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/fortran.js
new file mode 100644
index 00000000..b4605929
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/fortran.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/fortran",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "fortran";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ftl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ftl.js
new file mode 100644
index 00000000..3b53ad41
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ftl.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/ftl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "ftl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/gcode.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gcode.js
new file mode 100644
index 00000000..0ed4a102
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gcode.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/gcode",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "gcode";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/gherkin.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gherkin.js
new file mode 100644
index 00000000..20446471
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gherkin.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/gherkin",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "gherkin";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/gitignore.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gitignore.js
new file mode 100644
index 00000000..6da54aa5
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gitignore.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/gitignore",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "gitignore";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/glsl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/glsl.js
new file mode 100644
index 00000000..bb8e40d8
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/glsl.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/glsl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "glsl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/gobstones.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gobstones.js
new file mode 100644
index 00000000..4e36e531
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/gobstones.js
@@ -0,0 +1,41 @@
+ace.define("ace/snippets/gobstones",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Procedure\n\
+snippet proc\n\
+ procedure ${1?:name}(${2:argument}) {\n\
+ ${3:// body...}\n\
+ }\n\
+\n\
+# Function\n\
+snippet fun\n\
+ function ${1?:name}(${2:argument}) {\n\
+ return ${3:// body...}\n\
+ }\n\
+\n\
+# Repeat\n\
+snippet rep\n\
+ repeat ${1?:times} {\n\
+ ${2:// body...}\n\
+ }\n\
+\n\
+# For\n\
+snippet for\n\
+ foreach ${1?:e} in ${2?:list} {\n\
+ ${3:// body...} \n\
+ }\n\
+\n\
+# If\n\
+snippet if\n\
+ if (${1?:condition}) {\n\
+ ${3:// body...} \n\
+ }\n\
+\n\
+# While\n\
+ while (${1?:condition}) {\n\
+ ${2:// body...} \n\
+ }\n\
+";
+exports.scope = "gobstones";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/golang.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/golang.js
new file mode 100644
index 00000000..0a2411d5
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/golang.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/golang",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "golang";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/graphqlschema.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/graphqlschema.js
new file mode 100644
index 00000000..6b1e49f9
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/graphqlschema.js
@@ -0,0 +1,39 @@
+ace.define("ace/snippets/graphqlschema",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Type Snippet\n\
+trigger type\n\
+snippet type\n\
+ type ${1:type_name} {\n\
+ ${2:type_siblings}\n\
+ }\n\
+\n\
+# Input Snippet\n\
+trigger input\n\
+snippet input\n\
+ input ${1:input_name} {\n\
+ ${2:input_siblings}\n\
+ }\n\
+\n\
+# Interface Snippet\n\
+trigger interface\n\
+snippet interface\n\
+ interface ${1:interface_name} {\n\
+ ${2:interface_siblings}\n\
+ }\n\
+\n\
+# Interface Snippet\n\
+trigger union\n\
+snippet union\n\
+ union ${1:union_name} = ${2:type} | ${3: type}\n\
+\n\
+# Enum Snippet\n\
+trigger enum\n\
+snippet enum\n\
+ enum ${1:enum_name} {\n\
+ ${2:enum_siblings}\n\
+ }\n\
+";
+exports.scope = "graphqlschema";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/groovy.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/groovy.js
new file mode 100644
index 00000000..ddeab2c8
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/groovy.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/groovy",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "groovy";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/haml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haml.js
new file mode 100644
index 00000000..2d1c68aa
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haml.js
@@ -0,0 +1,27 @@
+ace.define("ace/snippets/haml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet t\n\
+ %table\n\
+ %tr\n\
+ %th\n\
+ ${1:headers}\n\
+ %tr\n\
+ %td\n\
+ ${2:headers}\n\
+snippet ul\n\
+ %ul\n\
+ %li\n\
+ ${1:item}\n\
+ %li\n\
+snippet =rp\n\
+ = render :partial => '${1:partial}'\n\
+snippet =rpl\n\
+ = render :partial => '${1:partial}', :locals => {}\n\
+snippet =rpc\n\
+ = render :partial => '${1:partial}', :collection => @$1\n\
+\n\
+";
+exports.scope = "haml";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/handlebars.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/handlebars.js
new file mode 100644
index 00000000..1764b754
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/handlebars.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/handlebars",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "handlebars";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell.js
new file mode 100644
index 00000000..2bd8b5af
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell.js
@@ -0,0 +1,89 @@
+ace.define("ace/snippets/haskell",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet lang\n\
+ {-# LANGUAGE ${1:OverloadedStrings} #-}\n\
+snippet info\n\
+ -- |\n\
+ -- Module : ${1:Module.Namespace}\n\
+ -- Copyright : ${2:Author} ${3:2011-2012}\n\
+ -- License : ${4:BSD3}\n\
+ --\n\
+ -- Maintainer : ${5:email@something.com}\n\
+ -- Stability : ${6:experimental}\n\
+ -- Portability : ${7:unknown}\n\
+ --\n\
+ -- ${8:Description}\n\
+ --\n\
+snippet import\n\
+ import ${1:Data.Text}\n\
+snippet import2\n\
+ import ${1:Data.Text} (${2:head})\n\
+snippet importq\n\
+ import qualified ${1:Data.Text} as ${2:T}\n\
+snippet inst\n\
+ instance ${1:Monoid} ${2:Type} where\n\
+ ${3}\n\
+snippet type\n\
+ type ${1:Type} = ${2:Type}\n\
+snippet data\n\
+ data ${1:Type} = ${2:$1} ${3:Int}\n\
+snippet newtype\n\
+ newtype ${1:Type} = ${2:$1} ${3:Int}\n\
+snippet class\n\
+ class ${1:Class} a where\n\
+ ${2}\n\
+snippet module\n\
+ module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n\
+ ) where\n\
+ `expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n print \\\"hello world\\\"\" : \"\"`\n\
+\n\
+snippet const\n\
+ ${1:name} :: ${2:a}\n\
+ $1 = ${3:undefined}\n\
+snippet fn\n\
+ ${1:fn} :: ${2:a} -> ${3:a}\n\
+ $1 ${4} = ${5:undefined}\n\
+snippet fn2\n\
+ ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n\
+ $1 ${5} = ${6:undefined}\n\
+snippet ap\n\
+ ${1:map} ${2:fn} ${3:list}\n\
+snippet do\n\
+ do\n\
+ \n\
+snippet λ\n\
+ \\${1:x} -> ${2}\n\
+snippet \\\n\
+ \\${1:x} -> ${2}\n\
+snippet <-\n\
+ ${1:a} <- ${2:m a}\n\
+snippet ←\n\
+ ${1:a} <- ${2:m a}\n\
+snippet ->\n\
+ ${1:m a} -> ${2:a}\n\
+snippet →\n\
+ ${1:m a} -> ${2:a}\n\
+snippet tup\n\
+ (${1:a}, ${2:b})\n\
+snippet tup2\n\
+ (${1:a}, ${2:b}, ${3:c})\n\
+snippet tup3\n\
+ (${1:a}, ${2:b}, ${3:c}, ${4:d})\n\
+snippet rec\n\
+ ${1:Record} { ${2:recFieldA} = ${3:undefined}\n\
+ , ${4:recFieldB} = ${5:undefined}\n\
+ }\n\
+snippet case\n\
+ case ${1:something} of\n\
+ ${2} -> ${3}\n\
+snippet let\n\
+ let ${1} = ${2}\n\
+ in ${3}\n\
+snippet where\n\
+ where\n\
+ ${1:fn} = ${2:undefined}\n\
+";
+exports.scope = "haskell";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell_cabal.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell_cabal.js
new file mode 100644
index 00000000..56d6e875
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haskell_cabal.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/haskell_cabal",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "haskell_cabal";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/haxe.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haxe.js
new file mode 100644
index 00000000..37695471
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/haxe.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/haxe",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "haxe";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/hjson.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/hjson.js
new file mode 100644
index 00000000..b31e5563
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/hjson.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/hjson",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/html.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html.js
new file mode 100644
index 00000000..b94132fa
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html.js
@@ -0,0 +1,862 @@
+ace.define("ace/snippets/html",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Some useful Unicode entities\n\
+# Non-Breaking Space\n\
+snippet nbs\n\
+ &nbsp;\n\
+# ←\n\
+snippet left\n\
+ &#x2190;\n\
+# →\n\
+snippet right\n\
+ &#x2192;\n\
+# ↑\n\
+snippet up\n\
+ &#x2191;\n\
+# ↓\n\
+snippet down\n\
+ &#x2193;\n\
+# ↩\n\
+snippet return\n\
+ &#x21A9;\n\
+# ⇤\n\
+snippet backtab\n\
+ &#x21E4;\n\
+# ⇥\n\
+snippet tab\n\
+ &#x21E5;\n\
+# ⇧\n\
+snippet shift\n\
+ &#x21E7;\n\
+# ⌃\n\
+snippet ctrl\n\
+ &#x2303;\n\
+# ⌅\n\
+snippet enter\n\
+ &#x2305;\n\
+# ⌘\n\
+snippet cmd\n\
+ &#x2318;\n\
+# ⌥\n\
+snippet option\n\
+ &#x2325;\n\
+# ⌦\n\
+snippet delete\n\
+ &#x2326;\n\
+# ⌫\n\
+snippet backspace\n\
+ &#x232B;\n\
+# ⎋\n\
+snippet esc\n\
+ &#x238B;\n\
+# Generic Doctype\n\
+snippet doctype HTML 4.01 Strict\n\
+ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n\
+ \"http://www.w3.org/TR/html4/strict.dtd\">\n\
+snippet doctype HTML 4.01 Transitional\n\
+ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\
+ \"http://www.w3.org/TR/html4/loose.dtd\">\n\
+snippet doctype HTML 5\n\
+ <!DOCTYPE HTML>\n\
+snippet doctype XHTML 1.0 Frameset\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
+snippet doctype XHTML 1.0 Strict\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
+snippet doctype XHTML 1.0 Transitional\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\
+snippet doctype XHTML 1.1\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\
+ \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n\
+# HTML Doctype 4.01 Strict\n\
+snippet docts\n\
+ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\n\
+ \"http://www.w3.org/TR/html4/strict.dtd\">\n\
+# HTML Doctype 4.01 Transitional\n\
+snippet doct\n\
+ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n\
+ \"http://www.w3.org/TR/html4/loose.dtd\">\n\
+# HTML Doctype 5\n\
+snippet doct5\n\
+ <!DOCTYPE html>\n\
+# XHTML Doctype 1.0 Frameset\n\
+snippet docxf\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n\
+# XHTML Doctype 1.0 Strict\n\
+snippet docxs\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\
+# XHTML Doctype 1.0 Transitional\n\
+snippet docxt\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\
+ \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\
+# XHTML Doctype 1.1\n\
+snippet docx\n\
+ <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n\
+ \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n\
+# html5shiv\n\
+snippet html5shiv\n\
+ <!--[if lte IE 8]>\n\
+ <script src=\"https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js\"></script>\n\
+ <![endif]-->\n\
+snippet html5printshiv\n\
+ <!--[if lte IE 8]>\n\
+ <script src=\"https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js\"></script>\n\
+ <![endif]-->\n\
+# Attributes\n\
+snippet attr\n\
+ ${1:attribute}=\"${2:property}\"\n\
+snippet attr+\n\
+ ${1:attribute}=\"${2:property}\" attr+${3}\n\
+snippet .\n\
+ class=\"${1}\"${2}\n\
+snippet #\n\
+ id=\"${1}\"${2}\n\
+snippet alt\n\
+ alt=\"${1}\"${2}\n\
+snippet charset\n\
+ charset=\"${1:utf-8}\"${2}\n\
+snippet data\n\
+ data-${1}=\"${2:$1}\"${3}\n\
+snippet for\n\
+ for=\"${1}\"${2}\n\
+snippet height\n\
+ height=\"${1}\"${2}\n\
+snippet href\n\
+ href=\"${1:#}\"${2}\n\
+snippet lang\n\
+ lang=\"${1:en}\"${2}\n\
+snippet media\n\
+ media=\"${1}\"${2}\n\
+snippet name\n\
+ name=\"${1}\"${2}\n\
+snippet rel\n\
+ rel=\"${1}\"${2}\n\
+snippet scope\n\
+ scope=\"${1:row}\"${2}\n\
+snippet src\n\
+ src=\"${1}\"${2}\n\
+snippet title=\n\
+ title=\"${1}\"${2}\n\
+snippet type\n\
+ type=\"${1}\"${2}\n\
+snippet value\n\
+ value=\"${1}\"${2}\n\
+snippet width\n\
+ width=\"${1}\"${2}\n\
+# Elements\n\
+snippet a\n\
+ <a href=\"${1:#}\">${2:$1}</a>\n\
+snippet a.\n\
+ <a class=\"${1}\" href=\"${2:#}\">${3:$1}</a>\n\
+snippet a#\n\
+ <a id=\"${1}\" href=\"${2:#}\">${3:$1}</a>\n\
+snippet a:ext\n\
+ <a href=\"http://${1:example.com}\">${2:$1}</a>\n\
+snippet a:mail\n\
+ <a href=\"mailto:${1:joe@example.com}?subject=${2:feedback}\">${3:email me}</a>\n\
+snippet abbr\n\
+ <abbr title=\"${1}\">${2}</abbr>\n\
+snippet address\n\
+ <address>\n\
+ ${1}\n\
+ </address>\n\
+snippet area\n\
+ <area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\n\
+snippet area+\n\
+ <area shape=\"${1:rect}\" coords=\"${2}\" href=\"${3}\" alt=\"${4}\" />\n\
+ area+${5}\n\
+snippet area:c\n\
+ <area shape=\"circle\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\n\
+snippet area:d\n\
+ <area shape=\"default\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\n\
+snippet area:p\n\
+ <area shape=\"poly\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\n\
+snippet area:r\n\
+ <area shape=\"rect\" coords=\"${1}\" href=\"${2}\" alt=\"${3}\" />\n\
+snippet article\n\
+ <article>\n\
+ ${1}\n\
+ </article>\n\
+snippet article.\n\
+ <article class=\"${1}\">\n\
+ ${2}\n\
+ </article>\n\
+snippet article#\n\
+ <article id=\"${1}\">\n\
+ ${2}\n\
+ </article>\n\
+snippet aside\n\
+ <aside>\n\
+ ${1}\n\
+ </aside>\n\
+snippet aside.\n\
+ <aside class=\"${1}\">\n\
+ ${2}\n\
+ </aside>\n\
+snippet aside#\n\
+ <aside id=\"${1}\">\n\
+ ${2}\n\
+ </aside>\n\
+snippet audio\n\
+ <audio src=\"${1}>${2}</audio>\n\
+snippet b\n\
+ <b>${1}</b>\n\
+snippet base\n\
+ <base href=\"${1}\" target=\"${2}\" />\n\
+snippet bdi\n\
+ <bdi>${1}</bdo>\n\
+snippet bdo\n\
+ <bdo dir=\"${1}\">${2}</bdo>\n\
+snippet bdo:l\n\
+ <bdo dir=\"ltr\">${1}</bdo>\n\
+snippet bdo:r\n\
+ <bdo dir=\"rtl\">${1}</bdo>\n\
+snippet blockquote\n\
+ <blockquote>\n\
+ ${1}\n\
+ </blockquote>\n\
+snippet body\n\
+ <body>\n\
+ ${1}\n\
+ </body>\n\
+snippet br\n\
+ <br />${1}\n\
+snippet button\n\
+ <button type=\"${1:submit}\">${2}</button>\n\
+snippet button.\n\
+ <button class=\"${1:button}\" type=\"${2:submit}\">${3}</button>\n\
+snippet button#\n\
+ <button id=\"${1}\" type=\"${2:submit}\">${3}</button>\n\
+snippet button:s\n\
+ <button type=\"submit\">${1}</button>\n\
+snippet button:r\n\
+ <button type=\"reset\">${1}</button>\n\
+snippet canvas\n\
+ <canvas>\n\
+ ${1}\n\
+ </canvas>\n\
+snippet caption\n\
+ <caption>${1}</caption>\n\
+snippet cite\n\
+ <cite>${1}</cite>\n\
+snippet code\n\
+ <code>${1}</code>\n\
+snippet col\n\
+ <col />${1}\n\
+snippet col+\n\
+ <col />\n\
+ col+${1}\n\
+snippet colgroup\n\
+ <colgroup>\n\
+ ${1}\n\
+ </colgroup>\n\
+snippet colgroup+\n\
+ <colgroup>\n\
+ <col />\n\
+ col+${1}\n\
+ </colgroup>\n\
+snippet command\n\
+ <command type=\"command\" label=\"${1}\" icon=\"${2}\" />\n\
+snippet command:c\n\
+ <command type=\"checkbox\" label=\"${1}\" icon=\"${2}\" />\n\
+snippet command:r\n\
+ <command type=\"radio\" radiogroup=\"${1}\" label=\"${2}\" icon=\"${3}\" />\n\
+snippet datagrid\n\
+ <datagrid>\n\
+ ${1}\n\
+ </datagrid>\n\
+snippet datalist\n\
+ <datalist>\n\
+ ${1}\n\
+ </datalist>\n\
+snippet datatemplate\n\
+ <datatemplate>\n\
+ ${1}\n\
+ </datatemplate>\n\
+snippet dd\n\
+ <dd>${1}</dd>\n\
+snippet dd.\n\
+ <dd class=\"${1}\">${2}</dd>\n\
+snippet dd#\n\
+ <dd id=\"${1}\">${2}</dd>\n\
+snippet del\n\
+ <del>${1}</del>\n\
+snippet details\n\
+ <details>${1}</details>\n\
+snippet dfn\n\
+ <dfn>${1}</dfn>\n\
+snippet dialog\n\
+ <dialog>\n\
+ ${1}\n\
+ </dialog>\n\
+snippet div\n\
+ <div>\n\
+ ${1}\n\
+ </div>\n\
+snippet div.\n\
+ <div class=\"${1}\">\n\
+ ${2}\n\
+ </div>\n\
+snippet div#\n\
+ <div id=\"${1}\">\n\
+ ${2}\n\
+ </div>\n\
+snippet dl\n\
+ <dl>\n\
+ ${1}\n\
+ </dl>\n\
+snippet dl.\n\
+ <dl class=\"${1}\">\n\
+ ${2}\n\
+ </dl>\n\
+snippet dl#\n\
+ <dl id=\"${1}\">\n\
+ ${2}\n\
+ </dl>\n\
+snippet dl+\n\
+ <dl>\n\
+ <dt>${1}</dt>\n\
+ <dd>${2}</dd>\n\
+ dt+${3}\n\
+ </dl>\n\
+snippet dt\n\
+ <dt>${1}</dt>\n\
+snippet dt.\n\
+ <dt class=\"${1}\">${2}</dt>\n\
+snippet dt#\n\
+ <dt id=\"${1}\">${2}</dt>\n\
+snippet dt+\n\
+ <dt>${1}</dt>\n\
+ <dd>${2}</dd>\n\
+ dt+${3}\n\
+snippet em\n\
+ <em>${1}</em>\n\
+snippet embed\n\
+ <embed src=${1} type=\"${2} />\n\
+snippet fieldset\n\
+ <fieldset>\n\
+ ${1}\n\
+ </fieldset>\n\
+snippet fieldset.\n\
+ <fieldset class=\"${1}\">\n\
+ ${2}\n\
+ </fieldset>\n\
+snippet fieldset#\n\
+ <fieldset id=\"${1}\">\n\
+ ${2}\n\
+ </fieldset>\n\
+snippet fieldset+\n\
+ <fieldset>\n\
+ <legend><span>${1}</span></legend>\n\
+ ${2}\n\
+ </fieldset>\n\
+ fieldset+${3}\n\
+snippet figcaption\n\
+ <figcaption>${1}</figcaption>\n\
+snippet figure\n\
+ <figure>${1}</figure>\n\
+snippet footer\n\
+ <footer>\n\
+ ${1}\n\
+ </footer>\n\
+snippet footer.\n\
+ <footer class=\"${1}\">\n\
+ ${2}\n\
+ </footer>\n\
+snippet footer#\n\
+ <footer id=\"${1}\">\n\
+ ${2}\n\
+ </footer>\n\
+snippet form\n\
+ <form action=\"${1}\" method=\"${2:get}\" accept-charset=\"utf-8\">\n\
+ ${3}\n\
+ </form>\n\
+snippet form.\n\
+ <form class=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\n\
+ ${4}\n\
+ </form>\n\
+snippet form#\n\
+ <form id=\"${1}\" action=\"${2}\" method=\"${3:get}\" accept-charset=\"utf-8\">\n\
+ ${4}\n\
+ </form>\n\
+snippet h1\n\
+ <h1>${1}</h1>\n\
+snippet h1.\n\
+ <h1 class=\"${1}\">${2}</h1>\n\
+snippet h1#\n\
+ <h1 id=\"${1}\">${2}</h1>\n\
+snippet h2\n\
+ <h2>${1}</h2>\n\
+snippet h2.\n\
+ <h2 class=\"${1}\">${2}</h2>\n\
+snippet h2#\n\
+ <h2 id=\"${1}\">${2}</h2>\n\
+snippet h3\n\
+ <h3>${1}</h3>\n\
+snippet h3.\n\
+ <h3 class=\"${1}\">${2}</h3>\n\
+snippet h3#\n\
+ <h3 id=\"${1}\">${2}</h3>\n\
+snippet h4\n\
+ <h4>${1}</h4>\n\
+snippet h4.\n\
+ <h4 class=\"${1}\">${2}</h4>\n\
+snippet h4#\n\
+ <h4 id=\"${1}\">${2}</h4>\n\
+snippet h5\n\
+ <h5>${1}</h5>\n\
+snippet h5.\n\
+ <h5 class=\"${1}\">${2}</h5>\n\
+snippet h5#\n\
+ <h5 id=\"${1}\">${2}</h5>\n\
+snippet h6\n\
+ <h6>${1}</h6>\n\
+snippet h6.\n\
+ <h6 class=\"${1}\">${2}</h6>\n\
+snippet h6#\n\
+ <h6 id=\"${1}\">${2}</h6>\n\
+snippet head\n\
+ <head>\n\
+ <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\
+\n\
+ <title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}</title>\n\
+ ${2}\n\
+ </head>\n\
+snippet header\n\
+ <header>\n\
+ ${1}\n\
+ </header>\n\
+snippet header.\n\
+ <header class=\"${1}\">\n\
+ ${2}\n\
+ </header>\n\
+snippet header#\n\
+ <header id=\"${1}\">\n\
+ ${2}\n\
+ </header>\n\
+snippet hgroup\n\
+ <hgroup>\n\
+ ${1}\n\
+ </hgroup>\n\
+snippet hgroup.\n\
+ <hgroup class=\"${1}>\n\
+ ${2}\n\
+ </hgroup>\n\
+snippet hr\n\
+ <hr />${1}\n\
+snippet html\n\
+ <html>\n\
+ ${1}\n\
+ </html>\n\
+snippet xhtml\n\
+ <html xmlns=\"http://www.w3.org/1999/xhtml\">\n\
+ ${1}\n\
+ </html>\n\
+snippet html5\n\
+ <!DOCTYPE html>\n\
+ <html>\n\
+ <head>\n\
+ <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n\
+ <title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}</title>\n\
+ ${2:meta}\n\
+ </head>\n\
+ <body>\n\
+ ${3:body}\n\
+ </body>\n\
+ </html>\n\
+snippet xhtml5\n\
+ <!DOCTYPE html>\n\
+ <html xmlns=\"http://www.w3.org/1999/xhtml\">\n\
+ <head>\n\
+ <meta http-equiv=\"content-type\" content=\"application/xhtml+xml; charset=utf-8\" />\n\
+ <title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}</title>\n\
+ ${2:meta}\n\
+ </head>\n\
+ <body>\n\
+ ${3:body}\n\
+ </body>\n\
+ </html>\n\
+snippet i\n\
+ <i>${1}</i>\n\
+snippet iframe\n\
+ <iframe src=\"${1}\" frameborder=\"0\"></iframe>${2}\n\
+snippet iframe.\n\
+ <iframe class=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\n\
+snippet iframe#\n\
+ <iframe id=\"${1}\" src=\"${2}\" frameborder=\"0\"></iframe>${3}\n\
+snippet img\n\
+ <img src=\"${1}\" alt=\"${2}\" />${3}\n\
+snippet img.\n\
+ <img class=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\n\
+snippet img#\n\
+ <img id=\"${1}\" src=\"${2}\" alt=\"${3}\" />${4}\n\
+snippet input\n\
+ <input type=\"${1:text/submit/hidden/button/image}\" name=\"${2}\" id=\"${3:$2}\" value=\"${4}\" />${5}\n\
+snippet input.\n\
+ <input class=\"${1}\" type=\"${2:text/submit/hidden/button/image}\" name=\"${3}\" id=\"${4:$3}\" value=\"${5}\" />${6}\n\
+snippet input:text\n\
+ <input type=\"text\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:submit\n\
+ <input type=\"submit\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:hidden\n\
+ <input type=\"hidden\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:button\n\
+ <input type=\"button\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:image\n\
+ <input type=\"image\" name=\"${1}\" id=\"${2:$1}\" src=\"${3}\" alt=\"${4}\" />${5}\n\
+snippet input:checkbox\n\
+ <input type=\"checkbox\" name=\"${1}\" id=\"${2:$1}\" />${3}\n\
+snippet input:radio\n\
+ <input type=\"radio\" name=\"${1}\" id=\"${2:$1}\" />${3}\n\
+snippet input:color\n\
+ <input type=\"color\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:date\n\
+ <input type=\"date\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:datetime\n\
+ <input type=\"datetime\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:datetime-local\n\
+ <input type=\"datetime-local\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:email\n\
+ <input type=\"email\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:file\n\
+ <input type=\"file\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:month\n\
+ <input type=\"month\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:number\n\
+ <input type=\"number\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:password\n\
+ <input type=\"password\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:range\n\
+ <input type=\"range\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:reset\n\
+ <input type=\"reset\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:search\n\
+ <input type=\"search\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:time\n\
+ <input type=\"time\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:url\n\
+ <input type=\"url\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet input:week\n\
+ <input type=\"week\" name=\"${1}\" id=\"${2:$1}\" value=\"${3}\" />${4}\n\
+snippet ins\n\
+ <ins>${1}</ins>\n\
+snippet kbd\n\
+ <kbd>${1}</kbd>\n\
+snippet keygen\n\
+ <keygen>${1}</keygen>\n\
+snippet label\n\
+ <label for=\"${2:$1}\">${1}</label>\n\
+snippet label:i\n\
+ <label for=\"${2:$1}\">${1}</label>\n\
+ <input type=\"${3:text/submit/hidden/button}\" name=\"${4:$2}\" id=\"${5:$2}\" value=\"${6}\" />${7}\n\
+snippet label:s\n\
+ <label for=\"${2:$1}\">${1}</label>\n\
+ <select name=\"${3:$2}\" id=\"${4:$2}\">\n\
+ <option value=\"${5}\">${6:$5}</option>\n\
+ </select>\n\
+snippet legend\n\
+ <legend>${1}</legend>\n\
+snippet legend+\n\
+ <legend><span>${1}</span></legend>\n\
+snippet li\n\
+ <li>${1}</li>\n\
+snippet li.\n\
+ <li class=\"${1}\">${2}</li>\n\
+snippet li+\n\
+ <li>${1}</li>\n\
+ li+${2}\n\
+snippet lia\n\
+ <li><a href=\"${2:#}\">${1}</a></li>\n\
+snippet lia+\n\
+ <li><a href=\"${2:#}\">${1}</a></li>\n\
+ lia+${3}\n\
+snippet link\n\
+ <link rel=\"${1}\" href=\"${2}\" title=\"${3}\" type=\"${4}\" />${5}\n\
+snippet link:atom\n\
+ <link rel=\"alternate\" href=\"${1:atom.xml}\" title=\"Atom\" type=\"application/atom+xml\" />${2}\n\
+snippet link:css\n\
+ <link rel=\"stylesheet\" href=\"${2:style.css}\" type=\"text/css\" media=\"${3:all}\" />${4}\n\
+snippet link:favicon\n\
+ <link rel=\"shortcut icon\" href=\"${1:favicon.ico}\" type=\"image/x-icon\" />${2}\n\
+snippet link:rss\n\
+ <link rel=\"alternate\" href=\"${1:rss.xml}\" title=\"RSS\" type=\"application/atom+xml\" />${2}\n\
+snippet link:touch\n\
+ <link rel=\"apple-touch-icon\" href=\"${1:favicon.png}\" />${2}\n\
+snippet map\n\
+ <map name=\"${1}\">\n\
+ ${2}\n\
+ </map>\n\
+snippet map.\n\
+ <map class=\"${1}\" name=\"${2}\">\n\
+ ${3}\n\
+ </map>\n\
+snippet map#\n\
+ <map name=\"${1}\" id=\"${2:$1}>\n\
+ ${3}\n\
+ </map>\n\
+snippet map+\n\
+ <map name=\"${1}\">\n\
+ <area shape=\"${2}\" coords=\"${3}\" href=\"${4}\" alt=\"${5}\" />${6}\n\
+ </map>${7}\n\
+snippet mark\n\
+ <mark>${1}</mark>\n\
+snippet menu\n\
+ <menu>\n\
+ ${1}\n\
+ </menu>\n\
+snippet menu:c\n\
+ <menu type=\"context\">\n\
+ ${1}\n\
+ </menu>\n\
+snippet menu:t\n\
+ <menu type=\"toolbar\">\n\
+ ${1}\n\
+ </menu>\n\
+snippet meta\n\
+ <meta http-equiv=\"${1}\" content=\"${2}\" />${3}\n\
+snippet meta:compat\n\
+ <meta http-equiv=\"X-UA-Compatible\" content=\"IE=${1:7,8,edge}\" />${3}\n\
+snippet meta:refresh\n\
+ <meta http-equiv=\"refresh\" content=\"text/html;charset=UTF-8\" />${3}\n\
+snippet meta:utf\n\
+ <meta http-equiv=\"content-type\" content=\"text/html;charset=UTF-8\" />${3}\n\
+snippet meter\n\
+ <meter>${1}</meter>\n\
+snippet nav\n\
+ <nav>\n\
+ ${1}\n\
+ </nav>\n\
+snippet nav.\n\
+ <nav class=\"${1}\">\n\
+ ${2}\n\
+ </nav>\n\
+snippet nav#\n\
+ <nav id=\"${1}\">\n\
+ ${2}\n\
+ </nav>\n\
+snippet noscript\n\
+ <noscript>\n\
+ ${1}\n\
+ </noscript>\n\
+snippet object\n\
+ <object data=\"${1}\" type=\"${2}\">\n\
+ ${3}\n\
+ </object>${4}\n\
+# Embed QT Movie\n\
+snippet movie\n\
+ <object width=\"$2\" height=\"$3\" classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\"\n\
+ codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\">\n\
+ <param name=\"src\" value=\"$1\" />\n\
+ <param name=\"controller\" value=\"$4\" />\n\
+ <param name=\"autoplay\" value=\"$5\" />\n\
+ <embed src=\"${1:movie.mov}\"\n\
+ width=\"${2:320}\" height=\"${3:240}\"\n\
+ controller=\"${4:true}\" autoplay=\"${5:true}\"\n\
+ scale=\"tofit\" cache=\"true\"\n\
+ pluginspage=\"http://www.apple.com/quicktime/download/\" />\n\
+ </object>${6}\n\
+snippet ol\n\
+ <ol>\n\
+ ${1}\n\
+ </ol>\n\
+snippet ol.\n\
+ <ol class=\"${1}>\n\
+ ${2}\n\
+ </ol>\n\
+snippet ol#\n\
+ <ol id=\"${1}>\n\
+ ${2}\n\
+ </ol>\n\
+snippet ol+\n\
+ <ol>\n\
+ <li>${1}</li>\n\
+ li+${2}\n\
+ </ol>\n\
+snippet opt\n\
+ <option value=\"${1}\">${2:$1}</option>\n\
+snippet opt+\n\
+ <option value=\"${1}\">${2:$1}</option>\n\
+ opt+${3}\n\
+snippet optt\n\
+ <option>${1}</option>\n\
+snippet optgroup\n\
+ <optgroup>\n\
+ <option value=\"${1}\">${2:$1}</option>\n\
+ opt+${3}\n\
+ </optgroup>\n\
+snippet output\n\
+ <output>${1}</output>\n\
+snippet p\n\
+ <p>${1}</p>\n\
+snippet param\n\
+ <param name=\"${1}\" value=\"${2}\" />${3}\n\
+snippet pre\n\
+ <pre>\n\
+ ${1}\n\
+ </pre>\n\
+snippet progress\n\
+ <progress>${1}</progress>\n\
+snippet q\n\
+ <q>${1}</q>\n\
+snippet rp\n\
+ <rp>${1}</rp>\n\
+snippet rt\n\
+ <rt>${1}</rt>\n\
+snippet ruby\n\
+ <ruby>\n\
+ <rp><rt>${1}</rt></rp>\n\
+ </ruby>\n\
+snippet s\n\
+ <s>${1}</s>\n\
+snippet samp\n\
+ <samp>\n\
+ ${1}\n\
+ </samp>\n\
+snippet script\n\
+ <script type=\"text/javascript\" charset=\"utf-8\">\n\
+ ${1}\n\
+ </script>\n\
+snippet scriptsrc\n\
+ <script src=\"${1}.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\
+snippet newscript\n\
+ <script type=\"application/javascript\" charset=\"utf-8\">\n\
+ ${1}\n\
+ </script>\n\
+snippet newscriptsrc\n\
+ <script src=\"${1}.js\" type=\"application/javascript\" charset=\"utf-8\"></script>\n\
+snippet section\n\
+ <section>\n\
+ ${1}\n\
+ </section>\n\
+snippet section.\n\
+ <section class=\"${1}\">\n\
+ ${2}\n\
+ </section>\n\
+snippet section#\n\
+ <section id=\"${1}\">\n\
+ ${2}\n\
+ </section>\n\
+snippet select\n\
+ <select name=\"${1}\" id=\"${2:$1}\">\n\
+ ${3}\n\
+ </select>\n\
+snippet select.\n\
+ <select name=\"${1}\" id=\"${2:$1}\" class=\"${3}>\n\
+ ${4}\n\
+ </select>\n\
+snippet select+\n\
+ <select name=\"${1}\" id=\"${2:$1}\">\n\
+ <option value=\"${3}\">${4:$3}</option>\n\
+ opt+${5}\n\
+ </select>\n\
+snippet small\n\
+ <small>${1}</small>\n\
+snippet source\n\
+ <source src=\"${1}\" type=\"${2}\" media=\"${3}\" />\n\
+snippet span\n\
+ <span>${1}</span>\n\
+snippet strong\n\
+ <strong>${1}</strong>\n\
+snippet style\n\
+ <style type=\"text/css\" media=\"${1:all}\">\n\
+ ${2}\n\
+ </style>\n\
+snippet sub\n\
+ <sub>${1}</sub>\n\
+snippet summary\n\
+ <summary>\n\
+ ${1}\n\
+ </summary>\n\
+snippet sup\n\
+ <sup>${1}</sup>\n\
+snippet table\n\
+ <table border=\"${1:0}\">\n\
+ ${2}\n\
+ </table>\n\
+snippet table.\n\
+ <table class=\"${1}\" border=\"${2:0}\">\n\
+ ${3}\n\
+ </table>\n\
+snippet table#\n\
+ <table id=\"${1}\" border=\"${2:0}\">\n\
+ ${3}\n\
+ </table>\n\
+snippet tbody\n\
+ <tbody>\n\
+ ${1}\n\
+ </tbody>\n\
+snippet td\n\
+ <td>${1}</td>\n\
+snippet td.\n\
+ <td class=\"${1}\">${2}</td>\n\
+snippet td#\n\
+ <td id=\"${1}\">${2}</td>\n\
+snippet td+\n\
+ <td>${1}</td>\n\
+ td+${2}\n\
+snippet textarea\n\
+ <textarea name=\"${1}\" id=${2:$1} rows=\"${3:8}\" cols=\"${4:40}\">${5}</textarea>${6}\n\
+snippet tfoot\n\
+ <tfoot>\n\
+ ${1}\n\
+ </tfoot>\n\
+snippet th\n\
+ <th>${1}</th>\n\
+snippet th.\n\
+ <th class=\"${1}\">${2}</th>\n\
+snippet th#\n\
+ <th id=\"${1}\">${2}</th>\n\
+snippet th+\n\
+ <th>${1}</th>\n\
+ th+${2}\n\
+snippet thead\n\
+ <thead>\n\
+ ${1}\n\
+ </thead>\n\
+snippet time\n\
+ <time datetime=\"${1}\" pubdate=\"${2:$1}>${3:$1}</time>\n\
+snippet title\n\
+ <title>${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}</title>\n\
+snippet tr\n\
+ <tr>\n\
+ ${1}\n\
+ </tr>\n\
+snippet tr+\n\
+ <tr>\n\
+ <td>${1}</td>\n\
+ td+${2}\n\
+ </tr>\n\
+snippet track\n\
+ <track src=\"${1}\" srclang=\"${2}\" label=\"${3}\" default=\"${4:default}>${5}</track>${6}\n\
+snippet ul\n\
+ <ul>\n\
+ ${1}\n\
+ </ul>\n\
+snippet ul.\n\
+ <ul class=\"${1}\">\n\
+ ${2}\n\
+ </ul>\n\
+snippet ul#\n\
+ <ul id=\"${1}\">\n\
+ ${2}\n\
+ </ul>\n\
+snippet ul+\n\
+ <ul>\n\
+ <li>${1}</li>\n\
+ li+${2}\n\
+ </ul>\n\
+snippet var\n\
+ <var>${1}</var>\n\
+snippet video\n\
+ <video src=\"${1} height=\"${2}\" width=\"${3}\" preload=\"${5:none}\" autoplay=\"${6:autoplay}>${7}</video>${8}\n\
+snippet wbr\n\
+ <wbr />${1}\n\
+";
+exports.scope = "html";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_elixir.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_elixir.js
new file mode 100644
index 00000000..66d9eb38
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_elixir.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/html_elixir",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "html_elixir";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_ruby.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_ruby.js
new file mode 100644
index 00000000..83676f79
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/html_ruby.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/html_ruby",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "html_ruby";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ini.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ini.js
new file mode 100644
index 00000000..ad9bf52f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ini.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/ini",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "ini";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/io.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/io.js
new file mode 100644
index 00000000..431002b4
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/io.js
@@ -0,0 +1,69 @@
+ace.define("ace/snippets/io",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippets = [
+ {
+ "content": "assertEquals(${1:expected}, ${2:expr})",
+ "name": "assertEquals",
+ "scope": "io",
+ "tabTrigger": "ae"
+ },
+ {
+ "content": "${1:${2:newValue} := ${3:Object} }clone do(\n\t$0\n)",
+ "name": "clone do",
+ "scope": "io",
+ "tabTrigger": "cdo"
+ },
+ {
+ "content": "docSlot(\"${1:slotName}\", \"${2:documentation}\")",
+ "name": "docSlot",
+ "scope": "io",
+ "tabTrigger": "ds"
+ },
+ {
+ "content": "(${1:header,}\n\t${2:body}\n)$0",
+ "keyEquivalent": "@(",
+ "name": "Indented Bracketed Line",
+ "scope": "io",
+ "tabTrigger": "("
+ },
+ {
+ "content": "\n\t$0\n",
+ "keyEquivalent": "\r",
+ "name": "Special: Return Inside Empty Parenthesis",
+ "scope": "io meta.empty-parenthesis.io, io meta.comma-parenthesis.io"
+ },
+ {
+ "content": "${1:methodName} := method(${2:args,}\n\t$0\n)",
+ "name": "method",
+ "scope": "io",
+ "tabTrigger": "m"
+ },
+ {
+ "content": "newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0",
+ "name": "newSlot",
+ "scope": "io",
+ "tabTrigger": "ns"
+ },
+ {
+ "content": "${1:name} := Object clone do(\n\t$0\n)",
+ "name": "Object clone do",
+ "scope": "io",
+ "tabTrigger": "ocdo"
+ },
+ {
+ "content": "test${1:SomeFeature} := method(\n\t$0\n)",
+ "name": "testMethod",
+ "scope": "io",
+ "tabTrigger": "ts"
+ },
+ {
+ "content": "${1:Something}Test := ${2:UnitTest} clone do(\n\t$0\n)",
+ "name": "UnitTest",
+ "scope": "io",
+ "tabTrigger": "ut"
+ }
+];
+exports.scope = "io";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/jack.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jack.js
new file mode 100644
index 00000000..eca7f293
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jack.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/jack",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "jack";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/jade.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jade.js
new file mode 100644
index 00000000..f516d0c0
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jade.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/jade",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "jade";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/java.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/java.js
new file mode 100644
index 00000000..1bc92aca
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/java.js
@@ -0,0 +1,247 @@
+ace.define("ace/snippets/java",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "## Access Modifiers\n\
+snippet po\n\
+ protected\n\
+snippet pu\n\
+ public\n\
+snippet pr\n\
+ private\n\
+##\n\
+## Annotations\n\
+snippet before\n\
+ @Before\n\
+ static void ${1:intercept}(${2:args}) { ${3} }\n\
+snippet mm\n\
+ @ManyToMany\n\
+ ${1}\n\
+snippet mo\n\
+ @ManyToOne\n\
+ ${1}\n\
+snippet om\n\
+ @OneToMany${1:(cascade=CascadeType.ALL)}\n\
+ ${2}\n\
+snippet oo\n\
+ @OneToOne\n\
+ ${1}\n\
+##\n\
+## Basic Java packages and import\n\
+snippet im\n\
+ import\n\
+snippet j.b\n\
+ java.beans.\n\
+snippet j.i\n\
+ java.io.\n\
+snippet j.m\n\
+ java.math.\n\
+snippet j.n\n\
+ java.net.\n\
+snippet j.u\n\
+ java.util.\n\
+##\n\
+## Class\n\
+snippet cl\n\
+ class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\
+snippet in\n\
+ interface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\n\
+snippet tc\n\
+ public class ${1:`Filename()`} extends ${2:TestCase}\n\
+##\n\
+## Class Enhancements\n\
+snippet ext\n\
+ extends \n\
+snippet imp\n\
+ implements\n\
+##\n\
+## Comments\n\
+snippet /*\n\
+ /*\n\
+ * ${1}\n\
+ */\n\
+##\n\
+## Constants\n\
+snippet co\n\
+ static public final ${1:String} ${2:var} = ${3};${4}\n\
+snippet cos\n\
+ static public final String ${1:var} = \"${2}\";${3}\n\
+##\n\
+## Control Statements\n\
+snippet case\n\
+ case ${1}:\n\
+ ${2}\n\
+snippet def\n\
+ default:\n\
+ ${2}\n\
+snippet el\n\
+ else\n\
+snippet elif\n\
+ else if (${1}) ${2}\n\
+snippet if\n\
+ if (${1}) ${2}\n\
+snippet sw\n\
+ switch (${1}) {\n\
+ ${2}\n\
+ }\n\
+##\n\
+## Create a Method\n\
+snippet m\n\
+ ${1:void} ${2:method}(${3}) ${4:throws }${5}\n\
+##\n\
+## Create a Variable\n\
+snippet v\n\
+ ${1:String} ${2:var}${3: = null}${4};${5}\n\
+##\n\
+## Enhancements to Methods, variables, classes, etc.\n\
+snippet ab\n\
+ abstract\n\
+snippet fi\n\
+ final\n\
+snippet st\n\
+ static\n\
+snippet sy\n\
+ synchronized\n\
+##\n\
+## Error Methods\n\
+snippet err\n\
+ System.err.print(\"${1:Message}\");\n\
+snippet errf\n\
+ System.err.printf(\"${1:Message}\", ${2:exception});\n\
+snippet errln\n\
+ System.err.println(\"${1:Message}\");\n\
+##\n\
+## Exception Handling\n\
+snippet as\n\
+ assert ${1:test} : \"${2:Failure message}\";${3}\n\
+snippet ca\n\
+ catch(${1:Exception} ${2:e}) ${3}\n\
+snippet thr\n\
+ throw\n\
+snippet ths\n\
+ throws\n\
+snippet try\n\
+ try {\n\
+ ${3}\n\
+ } catch(${1:Exception} ${2:e}) {\n\
+ }\n\
+snippet tryf\n\
+ try {\n\
+ ${3}\n\
+ } catch(${1:Exception} ${2:e}) {\n\
+ } finally {\n\
+ }\n\
+##\n\
+## Find Methods\n\
+snippet findall\n\
+ List<${1:listName}> ${2:items} = ${1}.findAll();${3}\n\
+snippet findbyid\n\
+ ${1:var} ${2:item} = ${1}.findById(${3});${4}\n\
+##\n\
+## Javadocs\n\
+snippet /**\n\
+ /**\n\
+ * ${1}\n\
+ */\n\
+snippet @au\n\
+ @author `system(\"grep \\`id -un\\` /etc/passwd | cut -d \\\":\\\" -f5 | cut -d \\\",\\\" -f1\")`\n\
+snippet @br\n\
+ @brief ${1:Description}\n\
+snippet @fi\n\
+ @file ${1:`Filename()`}.java\n\
+snippet @pa\n\
+ @param ${1:param}\n\
+snippet @re\n\
+ @return ${1:param}\n\
+##\n\
+## Logger Methods\n\
+snippet debug\n\
+ Logger.debug(${1:param});${2}\n\
+snippet error\n\
+ Logger.error(${1:param});${2}\n\
+snippet info\n\
+ Logger.info(${1:param});${2}\n\
+snippet warn\n\
+ Logger.warn(${1:param});${2}\n\
+##\n\
+## Loops\n\
+snippet enfor\n\
+ for (${1} : ${2}) ${3}\n\
+snippet for\n\
+ for (${1}; ${2}; ${3}) ${4}\n\
+snippet wh\n\
+ while (${1}) ${2}\n\
+##\n\
+## Main method\n\
+snippet main\n\
+ public static void main (String[] args) {\n\
+ ${1:/* code */}\n\
+ }\n\
+##\n\
+## Print Methods\n\
+snippet print\n\
+ System.out.print(\"${1:Message}\");\n\
+snippet printf\n\
+ System.out.printf(\"${1:Message}\", ${2:args});\n\
+snippet println\n\
+ System.out.println(${1});\n\
+##\n\
+## Render Methods\n\
+snippet ren\n\
+ render(${1:param});${2}\n\
+snippet rena\n\
+ renderArgs.put(\"${1}\", ${2});${3}\n\
+snippet renb\n\
+ renderBinary(${1:param});${2}\n\
+snippet renj\n\
+ renderJSON(${1:param});${2}\n\
+snippet renx\n\
+ renderXml(${1:param});${2}\n\
+##\n\
+## Setter and Getter Methods\n\
+snippet set\n\
+ ${1:public} void set${3:}(${2:String} ${4:}){\n\
+ this.$4 = $4;\n\
+ }\n\
+snippet get\n\
+ ${1:public} ${2:String} get${3:}(){\n\
+ return this.${4:};\n\
+ }\n\
+##\n\
+## Terminate Methods or Loops\n\
+snippet re\n\
+ return\n\
+snippet br\n\
+ break;\n\
+##\n\
+## Test Methods\n\
+snippet t\n\
+ public void test${1:Name}() throws Exception {\n\
+ ${2}\n\
+ }\n\
+snippet test\n\
+ @Test\n\
+ public void test${1:Name}() throws Exception {\n\
+ ${2}\n\
+ }\n\
+##\n\
+## Utils\n\
+snippet Sc\n\
+ Scanner\n\
+##\n\
+## Miscellaneous\n\
+snippet action\n\
+ public static void ${1:index}(${2:args}) { ${3} }\n\
+snippet rnf\n\
+ notFound(${1:param});${2}\n\
+snippet rnfin\n\
+ notFoundIfNull(${1:param});${2}\n\
+snippet rr\n\
+ redirect(${1:param});${2}\n\
+snippet ru\n\
+ unauthorized(${1:param});${2}\n\
+snippet unless\n\
+ (unless=${1:param});${2}\n\
+";
+exports.scope = "java";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/javascript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/javascript.js
new file mode 100644
index 00000000..f3f998ad
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/javascript.js
@@ -0,0 +1,202 @@
+ace.define("ace/snippets/javascript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Prototype\n\
+snippet proto\n\
+ ${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n\
+ ${4:// body...}\n\
+ };\n\
+# Function\n\
+snippet fun\n\
+ function ${1?:function_name}(${2:argument}) {\n\
+ ${3:// body...}\n\
+ }\n\
+# Anonymous Function\n\
+regex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\n\
+snippet f\n\
+ function${M1?: ${1:functionName}}($2) {\n\
+ ${0:$TM_SELECTED_TEXT}\n\
+ }${M2?;}${M3?,}${M4?)}\n\
+# Immediate function\n\
+trigger \\(?f\\(\n\
+endTrigger \\)?\n\
+snippet f(\n\
+ (function(${1}) {\n\
+ ${0:${TM_SELECTED_TEXT:/* code */}}\n\
+ }(${1}));\n\
+# if\n\
+snippet if\n\
+ if (${1:true}) {\n\
+ ${0}\n\
+ }\n\
+# if ... else\n\
+snippet ife\n\
+ if (${1:true}) {\n\
+ ${2}\n\
+ } else {\n\
+ ${0}\n\
+ }\n\
+# tertiary conditional\n\
+snippet ter\n\
+ ${1:/* condition */} ? ${2:a} : ${3:b}\n\
+# switch\n\
+snippet switch\n\
+ switch (${1:expression}) {\n\
+ case '${3:case}':\n\
+ ${4:// code}\n\
+ break;\n\
+ ${5}\n\
+ default:\n\
+ ${2:// code}\n\
+ }\n\
+# case\n\
+snippet case\n\
+ case '${1:case}':\n\
+ ${2:// code}\n\
+ break;\n\
+ ${3}\n\
+\n\
+# while (...) {...}\n\
+snippet wh\n\
+ while (${1:/* condition */}) {\n\
+ ${0:/* code */}\n\
+ }\n\
+# try\n\
+snippet try\n\
+ try {\n\
+ ${0:/* code */}\n\
+ } catch (e) {}\n\
+# do...while\n\
+snippet do\n\
+ do {\n\
+ ${2:/* code */}\n\
+ } while (${1:/* condition */});\n\
+# Object Method\n\
+snippet :f\n\
+regex /([,{[])|^\\s*/:f/\n\
+ ${1:method_name}: function(${2:attribute}) {\n\
+ ${0}\n\
+ }${3:,}\n\
+# setTimeout function\n\
+snippet setTimeout\n\
+regex /\\b/st|timeout|setTimeo?u?t?/\n\
+ setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n\
+# Get Elements\n\
+snippet gett\n\
+ getElementsBy${1:TagName}('${2}')${3}\n\
+# Get Element\n\
+snippet get\n\
+ getElementBy${1:Id}('${2}')${3}\n\
+# console.log (Firebug)\n\
+snippet cl\n\
+ console.log(${1});\n\
+# return\n\
+snippet ret\n\
+ return ${1:result}\n\
+# for (property in object ) { ... }\n\
+snippet fori\n\
+ for (var ${1:prop} in ${2:Things}) {\n\
+ ${0:$2[$1]}\n\
+ }\n\
+# hasOwnProperty\n\
+snippet has\n\
+ hasOwnProperty(${1})\n\
+# docstring\n\
+snippet /**\n\
+ /**\n\
+ * ${1:description}\n\
+ *\n\
+ */\n\
+snippet @par\n\
+regex /^\\s*\\*\\s*/@(para?m?)?/\n\
+ @param {${1:type}} ${2:name} ${3:description}\n\
+snippet @ret\n\
+ @return {${1:type}} ${2:description}\n\
+# JSON.parse\n\
+snippet jsonp\n\
+ JSON.parse(${1:jstr});\n\
+# JSON.stringify\n\
+snippet jsons\n\
+ JSON.stringify(${1:object});\n\
+# self-defining function\n\
+snippet sdf\n\
+ var ${1:function_name} = function(${2:argument}) {\n\
+ ${3:// initial code ...}\n\
+\n\
+ $1 = function($2) {\n\
+ ${4:// main code}\n\
+ };\n\
+ }\n\
+# singleton\n\
+snippet sing\n\
+ function ${1:Singleton} (${2:argument}) {\n\
+ // the cached instance\n\
+ var instance;\n\
+\n\
+ // rewrite the constructor\n\
+ $1 = function $1($2) {\n\
+ return instance;\n\
+ };\n\
+ \n\
+ // carry over the prototype properties\n\
+ $1.prototype = this;\n\
+\n\
+ // the instance\n\
+ instance = new $1();\n\
+\n\
+ // reset the constructor pointer\n\
+ instance.constructor = $1;\n\
+\n\
+ ${3:// code ...}\n\
+\n\
+ return instance;\n\
+ }\n\
+# class\n\
+snippet class\n\
+regex /^\\s*/clas{0,2}/\n\
+ var ${1:class} = function(${20}) {\n\
+ $40$0\n\
+ };\n\
+ \n\
+ (function() {\n\
+ ${60:this.prop = \"\"}\n\
+ }).call(${1:class}.prototype);\n\
+ \n\
+ exports.${1:class} = ${1:class};\n\
+# \n\
+snippet for-\n\
+ for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n\
+ ${0:${2:Things}[${1:i}];}\n\
+ }\n\
+# for (...) {...}\n\
+snippet for\n\
+ for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n\
+ ${3:$2[$1]}$0\n\
+ }\n\
+# for (...) {...} (Improved Native For-Loop)\n\
+snippet forr\n\
+ for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n\
+ ${3:$2[$1]}$0\n\
+ }\n\
+\n\
+\n\
+#modules\n\
+snippet def\n\
+ define(function(require, exports, module) {\n\
+ \"use strict\";\n\
+ var ${1/.*\\///} = require(\"${1}\");\n\
+ \n\
+ $TM_SELECTED_TEXT\n\
+ });\n\
+snippet req\n\
+guard ^\\s*\n\
+ var ${1/.*\\///} = require(\"${1}\");\n\
+ $0\n\
+snippet requ\n\
+guard ^\\s*\n\
+ var ${1/.*\\/(.)/\\u$1/} = require(\"${1}\").${1/.*\\/(.)/\\u$1/};\n\
+ $0\n\
+";
+exports.scope = "javascript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/json.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/json.js
new file mode 100644
index 00000000..cc02e651
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/json.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/json",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "json";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsoniq.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsoniq.js
new file mode 100644
index 00000000..9c5eaf61
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsoniq.js
@@ -0,0 +1,68 @@
+ace.define("ace/snippets/jsoniq",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet for\n\
+ for $${1:item} in ${2:expr}\n\
+snippet return\n\
+ return ${1:expr}\n\
+snippet import\n\
+ import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\
+snippet some\n\
+ some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
+snippet every\n\
+ every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
+snippet if\n\
+ if(${1:true}) then ${2:expr} else ${3:true}\n\
+snippet switch\n\
+ switch(${1:\"foo\"})\n\
+ case ${2:\"foo\"}\n\
+ return ${3:true}\n\
+ default return ${4:false}\n\
+snippet try\n\
+ try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\
+snippet tumbling\n\
+ for tumbling window $${1:varname} in ${2:expr}\n\
+ start at $${3:start} when ${4:expr}\n\
+ end at $${5:end} when ${6:expr}\n\
+ return ${7:expr}\n\
+snippet sliding\n\
+ for sliding window $${1:varname} in ${2:expr}\n\
+ start at $${3:start} when ${4:expr}\n\
+ end at $${5:end} when ${6:expr}\n\
+ return ${7:expr}\n\
+snippet let\n\
+ let $${1:varname} := ${2:expr}\n\
+snippet group\n\
+ group by $${1:varname} := ${2:expr}\n\
+snippet order\n\
+ order by ${1:expr} ${2:descending}\n\
+snippet stable\n\
+ stable order by ${1:expr}\n\
+snippet count\n\
+ count $${1:varname}\n\
+snippet ordered\n\
+ ordered { ${1:expr} }\n\
+snippet unordered\n\
+ unordered { ${1:expr} }\n\
+snippet treat \n\
+ treat as ${1:expr}\n\
+snippet castable\n\
+ castable as ${1:atomicType}\n\
+snippet cast\n\
+ cast as ${1:atomicType}\n\
+snippet typeswitch\n\
+ typeswitch(${1:expr})\n\
+ case ${2:type} return ${3:expr}\n\
+ default return ${4:expr}\n\
+snippet var\n\
+ declare variable $${1:varname} := ${2:expr};\n\
+snippet fn\n\
+ declare function ${1:ns}:${2:name}(){\n\
+ ${3:expr}\n\
+ };\n\
+snippet module\n\
+ module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\
+";
+exports.scope = "jsoniq";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsp.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsp.js
new file mode 100644
index 00000000..6428e5be
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsp.js
@@ -0,0 +1,106 @@
+ace.define("ace/snippets/jsp",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet @page\n\
+ <%@page contentType=\"text/html\" pageEncoding=\"UTF-8\"%>\n\
+snippet jstl\n\
+ <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\
+ <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\
+snippet jstl:c\n\
+ <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\
+snippet jstl:fn\n\
+ <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\
+snippet cpath\n\
+ ${pageContext.request.contextPath}\n\
+snippet cout\n\
+ <c:out value=\"${1}\" default=\"${2}\" />\n\
+snippet cset\n\
+ <c:set var=\"${1}\" value=\"${2}\" />\n\
+snippet cremove\n\
+ <c:remove var=\"${1}\" scope=\"${2:page}\" />\n\
+snippet ccatch\n\
+ <c:catch var=\"${1}\" />\n\
+snippet cif\n\
+ <c:if test=\"${${1}}\">\n\
+ ${2}\n\
+ </c:if>\n\
+snippet cchoose\n\
+ <c:choose>\n\
+ ${1}\n\
+ </c:choose>\n\
+snippet cwhen\n\
+ <c:when test=\"${${1}}\">\n\
+ ${2}\n\
+ </c:when>\n\
+snippet cother\n\
+ <c:otherwise>\n\
+ ${1}\n\
+ </c:otherwise>\n\
+snippet cfore\n\
+ <c:forEach items=\"${${1}}\" var=\"${2}\" varStatus=\"${3}\">\n\
+ ${4:<c:out value=\"$2\" />}\n\
+ </c:forEach>\n\
+snippet cfort\n\
+ <c:set var=\"${1}\">${2:item1,item2,item3}</c:set>\n\
+ <c:forTokens var=\"${3}\" items=\"${$1}\" delims=\"${4:,}\">\n\
+ ${5:<c:out value=\"$3\" />}\n\
+ </c:forTokens>\n\
+snippet cparam\n\
+ <c:param name=\"${1}\" value=\"${2}\" />\n\
+snippet cparam+\n\
+ <c:param name=\"${1}\" value=\"${2}\" />\n\
+ cparam+${3}\n\
+snippet cimport\n\
+ <c:import url=\"${1}\" />\n\
+snippet cimport+\n\
+ <c:import url=\"${1}\">\n\
+ <c:param name=\"${2}\" value=\"${3}\" />\n\
+ cparam+${4}\n\
+ </c:import>\n\
+snippet curl\n\
+ <c:url value=\"${1}\" var=\"${2}\" />\n\
+ <a href=\"${$2}\">${3}</a>\n\
+snippet curl+\n\
+ <c:url value=\"${1}\" var=\"${2}\">\n\
+ <c:param name=\"${4}\" value=\"${5}\" />\n\
+ cparam+${6}\n\
+ </c:url>\n\
+ <a href=\"${$2}\">${3}</a>\n\
+snippet credirect\n\
+ <c:redirect url=\"${1}\" />\n\
+snippet contains\n\
+ ${fn:contains(${1:string}, ${2:substr})}\n\
+snippet contains:i\n\
+ ${fn:containsIgnoreCase(${1:string}, ${2:substr})}\n\
+snippet endswith\n\
+ ${fn:endsWith(${1:string}, ${2:suffix})}\n\
+snippet escape\n\
+ ${fn:escapeXml(${1:string})}\n\
+snippet indexof\n\
+ ${fn:indexOf(${1:string}, ${2:substr})}\n\
+snippet join\n\
+ ${fn:join(${1:collection}, ${2:delims})}\n\
+snippet length\n\
+ ${fn:length(${1:collection_or_string})}\n\
+snippet replace\n\
+ ${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\n\
+snippet split\n\
+ ${fn:split(${1:string}, ${2:delims})}\n\
+snippet startswith\n\
+ ${fn:startsWith(${1:string}, ${2:prefix})}\n\
+snippet substr\n\
+ ${fn:substring(${1:string}, ${2:begin}, ${3:end})}\n\
+snippet substr:a\n\
+ ${fn:substringAfter(${1:string}, ${2:substr})}\n\
+snippet substr:b\n\
+ ${fn:substringBefore(${1:string}, ${2:substr})}\n\
+snippet lc\n\
+ ${fn:toLowerCase(${1:string})}\n\
+snippet uc\n\
+ ${fn:toUpperCase(${1:string})}\n\
+snippet trim\n\
+ ${fn:trim(${1:string})}\n\
+";
+exports.scope = "jsp";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsx.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsx.js
new file mode 100644
index 00000000..9f39a943
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/jsx.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/jsx",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "jsx";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/julia.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/julia.js
new file mode 100644
index 00000000..e81370f7
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/julia.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/julia",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "julia";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/kotlin.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/kotlin.js
new file mode 100644
index 00000000..d78bd463
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/kotlin.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/kotlin",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/latex.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/latex.js
new file mode 100644
index 00000000..e6fe7612
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/latex.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/latex",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "latex";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/less.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/less.js
new file mode 100644
index 00000000..148aa0cd
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/less.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/less",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "less";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/liquid.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/liquid.js
new file mode 100644
index 00000000..c7f708dc
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/liquid.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/liquid",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "liquid";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/lisp.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lisp.js
new file mode 100644
index 00000000..410b807f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lisp.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/lisp",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "lisp";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/livescript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/livescript.js
new file mode 100644
index 00000000..37ea1c14
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/livescript.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/livescript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "livescript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/logiql.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/logiql.js
new file mode 100644
index 00000000..77943f3a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/logiql.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/logiql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "logiql";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/lsl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lsl.js
new file mode 100644
index 00000000..717a5cf3
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lsl.js
@@ -0,0 +1,1239 @@
+ace.define("ace/snippets/lsl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet @\n\
+ @${1:label};\n\
+snippet CAMERA_ACTIVE\n\
+ CAMERA_ACTIVE, ${1:integer isActive}, $0\n\
+snippet CAMERA_BEHINDNESS_ANGLE\n\
+ CAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\n\
+snippet CAMERA_BEHINDNESS_LAG\n\
+ CAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\n\
+snippet CAMERA_DISTANCE\n\
+ CAMERA_DISTANCE, ${1:float meters}, $0\n\
+snippet CAMERA_FOCUS\n\
+ CAMERA_FOCUS, ${1:vector position}, $0\n\
+snippet CAMERA_FOCUS_LAG\n\
+ CAMERA_FOCUS_LAG, ${1:float seconds}, $0\n\
+snippet CAMERA_FOCUS_LOCKED\n\
+ CAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\n\
+snippet CAMERA_FOCUS_OFFSET\n\
+ CAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\n\
+snippet CAMERA_FOCUS_THRESHOLD\n\
+ CAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\n\
+snippet CAMERA_PITCH\n\
+ CAMERA_PITCH, ${1:float degrees}, $0\n\
+snippet CAMERA_POSITION\n\
+ CAMERA_POSITION, ${1:vector position}, $0\n\
+snippet CAMERA_POSITION_LAG\n\
+ CAMERA_POSITION_LAG, ${1:float seconds}, $0\n\
+snippet CAMERA_POSITION_LOCKED\n\
+ CAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\n\
+snippet CAMERA_POSITION_THRESHOLD\n\
+ CAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\n\
+snippet CHARACTER_AVOIDANCE_MODE\n\
+ CHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\n\
+snippet CHARACTER_DESIRED_SPEED\n\
+ CHARACTER_DESIRED_SPEED, ${1:float speed}, $0\n\
+snippet CHARACTER_DESIRED_TURN_SPEED\n\
+ CHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\n\
+snippet CHARACTER_LENGTH\n\
+ CHARACTER_LENGTH, ${1:float length}, $0\n\
+snippet CHARACTER_MAX_TURN_RADIUS\n\
+ CHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\n\
+snippet CHARACTER_ORIENTATION\n\
+ CHARACTER_ORIENTATION, ${1:integer orientation}, $0\n\
+snippet CHARACTER_RADIUS\n\
+ CHARACTER_RADIUS, ${1:float radius}, $0\n\
+snippet CHARACTER_STAY_WITHIN_PARCEL\n\
+ CHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\n\
+snippet CHARACTER_TYPE\n\
+ CHARACTER_TYPE, ${1:integer type}, $0\n\
+snippet HTTP_BODY_MAXLENGTH\n\
+ HTTP_BODY_MAXLENGTH, ${1:integer length}, $0\n\
+snippet HTTP_CUSTOM_HEADER\n\
+ HTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\n\
+snippet HTTP_METHOD\n\
+ HTTP_METHOD, ${1:string method}, $0\n\
+snippet HTTP_MIMETYPE\n\
+ HTTP_MIMETYPE, ${1:string mimeType}, $0\n\
+snippet HTTP_PRAGMA_NO_CACHE\n\
+ HTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\n\
+snippet HTTP_VERBOSE_THROTTLE\n\
+ HTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\n\
+snippet HTTP_VERIFY_CERT\n\
+ HTTP_VERIFY_CERT, ${1:integer verify}, $0\n\
+snippet RC_DATA_FLAGS\n\
+ RC_DATA_FLAGS, ${1:integer flags}, $0\n\
+snippet RC_DETECT_PHANTOM\n\
+ RC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\n\
+snippet RC_MAX_HITS\n\
+ RC_MAX_HITS, ${1:integer maxHits}, $0\n\
+snippet RC_REJECT_TYPES\n\
+ RC_REJECT_TYPES, ${1:integer filterMask}, $0\n\
+snippet at_rot_target\n\
+ at_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet at_target\n\
+ at_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet attach\n\
+ attach(${1:key id})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet changed\n\
+ changed(${1:integer change})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet collision\n\
+ collision(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet collision_end\n\
+ collision_end(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet collision_start\n\
+ collision_start(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet control\n\
+ control(${1:key id}, ${2:integer level}, ${3:integer edge})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet dataserver\n\
+ dataserver(${1:key query_id}, ${2:string data})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet do\n\
+ do\n\
+ {\n\
+ $0\n\
+ }\n\
+ while (${1:condition});\n\
+snippet else\n\
+ else\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet email\n\
+ email(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet experience_permissions\n\
+ experience_permissions(${1:key agent_id})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet experience_permissions_denied\n\
+ experience_permissions_denied(${1:key agent_id}, ${2:integer reason})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet for\n\
+ for (${1:start}; ${3:condition}; ${3:step})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet http_request\n\
+ http_request(${1:key request_id}, ${2:string method}, ${3:string body})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet http_response\n\
+ http_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet if\n\
+ if (${1:condition})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet jump\n\
+ jump ${1:label};\n\
+snippet land_collision\n\
+ land_collision(${1:vector pos})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet land_collision_end\n\
+ land_collision_end(${1:vector pos})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet land_collision_start\n\
+ land_collision_start(${1:vector pos})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet link_message\n\
+ link_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet listen\n\
+ listen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet llAbs\n\
+ llAbs(${1:integer val})\n\
+snippet llAcos\n\
+ llAcos(${1:float val})\n\
+snippet llAddToLandBanList\n\
+ llAddToLandBanList(${1:key agent}, ${2:float hours});\n\
+ $0\n\
+snippet llAddToLandPassList\n\
+ llAddToLandPassList(${1:key agent}, ${2:float hours});\n\
+ $0\n\
+snippet llAdjustSoundVolume\n\
+ llAdjustSoundVolume(${1:float volume});\n\
+ $0\n\
+snippet llAgentInExperience\n\
+ llAgentInExperience(${1:key agent})\n\
+snippet llAllowInventoryDrop\n\
+ llAllowInventoryDrop(${1:integer add});\n\
+ $0\n\
+snippet llAngleBetween\n\
+ llAngleBetween(${1:rotation a}, ${2:rotation b})\n\
+snippet llApplyImpulse\n\
+ llApplyImpulse(${1:vector force}, ${2:integer local});\n\
+ $0\n\
+snippet llApplyRotationalImpulse\n\
+ llApplyRotationalImpulse(${1:vector force}, ${2:integer local});\n\
+ $0\n\
+snippet llAsin\n\
+ llAsin(${1:float val})\n\
+snippet llAtan2\n\
+ llAtan2(${1:float y}, ${2:float x})\n\
+snippet llAttachToAvatar\n\
+ llAttachToAvatar(${1:integer attach_point});\n\
+ $0\n\
+snippet llAttachToAvatarTemp\n\
+ llAttachToAvatarTemp(${1:integer attach_point});\n\
+ $0\n\
+snippet llAvatarOnLinkSitTarget\n\
+ llAvatarOnLinkSitTarget(${1:integer link})\n\
+snippet llAvatarOnSitTarget\n\
+ llAvatarOnSitTarget()\n\
+snippet llAxes2Rot\n\
+ llAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\n\
+snippet llAxisAngle2Rot\n\
+ llAxisAngle2Rot(${1:vector axis}, ${2:float angle})\n\
+snippet llBase64ToInteger\n\
+ llBase64ToInteger(${1:string str})\n\
+snippet llBase64ToString\n\
+ llBase64ToString(${1:string str})\n\
+snippet llBreakAllLinks\n\
+ llBreakAllLinks();\n\
+ $0\n\
+snippet llBreakLink\n\
+ llBreakLink(${1:integer link});\n\
+ $0\n\
+snippet llCastRay\n\
+ llCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\n\
+ $0\n\
+snippet llCeil\n\
+ llCeil(${1:float val})\n\
+snippet llClearCameraParams\n\
+ llClearCameraParams();\n\
+ $0\n\
+snippet llClearLinkMedia\n\
+ llClearLinkMedia(${1:integer link}, ${2:integer face});\n\
+ $0\n\
+snippet llClearPrimMedia\n\
+ llClearPrimMedia(${1:integer face});\n\
+ $0\n\
+snippet llCloseRemoteDataChannel\n\
+ llCloseRemoteDataChannel(${1:key channel});\n\
+ $0\n\
+snippet llCollisionFilter\n\
+ llCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\n\
+ $0\n\
+snippet llCollisionSound\n\
+ llCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\n\
+ $0\n\
+snippet llCos\n\
+ llCos(${1:float theta})\n\
+snippet llCreateCharacter\n\
+ llCreateCharacter(${1:list options});\n\
+ $0\n\
+snippet llCreateKeyValue\n\
+ llCreateKeyValue(${1:string k})\n\
+snippet llCreateLink\n\
+ llCreateLink(${1:key target}, ${2:integer parent});\n\
+ $0\n\
+snippet llCSV2List\n\
+ llCSV2List(${1:string src})\n\
+snippet llDataSizeKeyValue\n\
+ llDataSizeKeyValue()\n\
+snippet llDeleteCharacter\n\
+ llDeleteCharacter();\n\
+ $0\n\
+snippet llDeleteKeyValue\n\
+ llDeleteKeyValue(${1:string k})\n\
+snippet llDeleteSubList\n\
+ llDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\n\
+snippet llDeleteSubString\n\
+ llDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\
+snippet llDetachFromAvatar\n\
+ llDetachFromAvatar();\n\
+ $0\n\
+snippet llDetectedGrab\n\
+ llDetectedGrab(${1:integer number})\n\
+snippet llDetectedGroup\n\
+ llDetectedGroup(${1:integer number})\n\
+snippet llDetectedKey\n\
+ llDetectedKey(${1:integer number})\n\
+snippet llDetectedLinkNumber\n\
+ llDetectedLinkNumber(${1:integer number})\n\
+snippet llDetectedName\n\
+ llDetectedName(${1:integer number})\n\
+snippet llDetectedOwner\n\
+ llDetectedOwner(${1:integer number})\n\
+snippet llDetectedPos\n\
+ llDetectedPosl(${1:integer number})\n\
+snippet llDetectedRot\n\
+ llDetectedRot(${1:integer number})\n\
+snippet llDetectedTouchBinormal\n\
+ llDetectedTouchBinormal(${1:integer number})\n\
+snippet llDetectedTouchFace\n\
+ llDetectedTouchFace(${1:integer number})\n\
+snippet llDetectedTouchNormal\n\
+ llDetectedTouchNormal(${1:integer number})\n\
+snippet llDetectedTouchPos\n\
+ llDetectedTouchPos(${1:integer number})\n\
+snippet llDetectedTouchST\n\
+ llDetectedTouchST(${1:integer number})\n\
+snippet llDetectedTouchUV\n\
+ llDetectedTouchUV(${1:integer number})\n\
+snippet llDetectedType\n\
+ llDetectedType(${1:integer number})\n\
+snippet llDetectedVel\n\
+ llDetectedVel(${1:integer number})\n\
+snippet llDialog\n\
+ llDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\n\
+ $0\n\
+snippet llDie\n\
+ llDie();\n\
+ $0\n\
+snippet llDumpList2String\n\
+ llDumpList2String(${1:list src}, ${2:string separator})\n\
+snippet llEdgeOfWorld\n\
+ llEdgeOfWorld(${1:vector pos}, ${2:vector dir})\n\
+snippet llEjectFromLand\n\
+ llEjectFromLand(${1:key agent});\n\
+ $0\n\
+snippet llEmail\n\
+ llEmail(${1:string address}, ${2:string subject}, ${3:string message});\n\
+ $0\n\
+snippet llEscapeURL\n\
+ llEscapeURL(${1:string url})\n\
+snippet llEuler2Rot\n\
+ llEuler2Rot(${1:vector v})\n\
+snippet llExecCharacterCmd\n\
+ llExecCharacterCmd(${1:integer command}, ${2:list options});\n\
+ $0\n\
+snippet llEvade\n\
+ llEvade(${1:key target}, ${2:list options});\n\
+ $0\n\
+snippet llFabs\n\
+ llFabs(${1:float val})\n\
+snippet llFleeFrom\n\
+ llFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\n\
+ $0\n\
+snippet llFloor\n\
+ llFloor(${1:float val})\n\
+snippet llForceMouselook\n\
+ llForceMouselook(${1:integer mouselook});\n\
+ $0\n\
+snippet llFrand\n\
+ llFrand(${1:float mag})\n\
+snippet llGenerateKey\n\
+ llGenerateKey()\n\
+snippet llGetAccel\n\
+ llGetAccel()\n\
+snippet llGetAgentInfo\n\
+ llGetAgentInfo(${1:key id})\n\
+snippet llGetAgentLanguage\n\
+ llGetAgentLanguage(${1:key agent})\n\
+snippet llGetAgentList\n\
+ llGetAgentList(${1:integer scope}, ${2:list options})\n\
+snippet llGetAgentSize\n\
+ llGetAgentSize(${1:key agent})\n\
+snippet llGetAlpha\n\
+ llGetAlpha(${1:integer face})\n\
+snippet llGetAndResetTime\n\
+ llGetAndResetTime()\n\
+snippet llGetAnimation\n\
+ llGetAnimation(${1:key id})\n\
+snippet llGetAnimationList\n\
+ llGetAnimationList(${1:key agent})\n\
+snippet llGetAnimationOverride\n\
+ llGetAnimationOverride(${1:string anim_state})\n\
+snippet llGetAttached\n\
+ llGetAttached()\n\
+snippet llGetAttachedList\n\
+ llGetAttachedList(${1:key id})\n\
+snippet llGetBoundingBox\n\
+ llGetBoundingBox(${1:key object})\n\
+snippet llGetCameraPos\n\
+ llGetCameraPos()\n\
+snippet llGetCameraRot\n\
+ llGetCameraRot()\n\
+snippet llGetCenterOfMass\n\
+ llGetCenterOfMass()\n\
+snippet llGetClosestNavPoint\n\
+ llGetClosestNavPoint(${1:vector point}, ${2:list options})\n\
+snippet llGetColor\n\
+ llGetColor(${1:integer face})\n\
+snippet llGetCreator\n\
+ llGetCreator()\n\
+snippet llGetDate\n\
+ llGetDate()\n\
+snippet llGetDisplayName\n\
+ llGetDisplayName(${1:key id})\n\
+snippet llGetEnergy\n\
+ llGetEnergy()\n\
+snippet llGetEnv\n\
+ llGetEnv(${1:string name})\n\
+snippet llGetExperienceDetails\n\
+ llGetExperienceDetails(${1:key experience_id})\n\
+snippet llGetExperienceErrorMessage\n\
+ llGetExperienceErrorMessage(${1:integer error})\n\
+snippet llGetForce\n\
+ llGetForce()\n\
+snippet llGetFreeMemory\n\
+ llGetFreeMemory()\n\
+snippet llGetFreeURLs\n\
+ llGetFreeURLs()\n\
+snippet llGetGeometricCenter\n\
+ llGetGeometricCenter()\n\
+snippet llGetGMTclock\n\
+ llGetGMTclock()\n\
+snippet llGetHTTPHeader\n\
+ llGetHTTPHeader(${1:key request_id}, ${2:string header})\n\
+snippet llGetInventoryCreator\n\
+ llGetInventoryCreator(${1:string item})\n\
+snippet llGetInventoryKey\n\
+ llGetInventoryKey(${1:string name})\n\
+snippet llGetInventoryName\n\
+ llGetInventoryName(${1:integer type}, ${2:integer number})\n\
+snippet llGetInventoryNumber\n\
+ llGetInventoryNumber(${1:integer type})\n\
+snippet llGetInventoryPermMask\n\
+ llGetInventoryPermMask(${1:string item}, ${2:integer mask})\n\
+snippet llGetInventoryType\n\
+ llGetInventoryType(${1:string name})\n\
+snippet llGetKey\n\
+ llGetKey()\n\
+snippet llGetLandOwnerAt\n\
+ llGetLandOwnerAt(${1:vector pos})\n\
+snippet llGetLinkKey\n\
+ llGetLinkKey(${1:integer link})\n\
+snippet llGetLinkMedia\n\
+ llGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\n\
+snippet llGetLinkName\n\
+ llGetLinkName(${1:integer link})\n\
+snippet llGetLinkNumber\n\
+ llGetLinkNumber()\n\
+snippet llGetLinkNumberOfSides\n\
+ llGetLinkNumberOfSides(${1:integer link})\n\
+snippet llGetLinkPrimitiveParams\n\
+ llGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\n\
+snippet llGetListEntryType\n\
+ llGetListEntryType(${1:list src}, ${2:integer index})\n\
+snippet llGetListLength\n\
+ llGetListLength(${1:list src})\n\
+snippet llGetLocalPos\n\
+ llGetLocalPos()\n\
+snippet llGetLocalRot\n\
+ llGetLocalRot()\n\
+snippet llGetMass\n\
+ llGetMass()\n\
+snippet llGetMassMKS\n\
+ llGetMassMKS()\n\
+snippet llGetMaxScaleFactor\n\
+ llGetMaxScaleFactor()\n\
+snippet llGetMemoryLimit\n\
+ llGetMemoryLimit()\n\
+snippet llGetMinScaleFactor\n\
+ llGetMinScaleFactor()\n\
+snippet llGetNextEmail\n\
+ llGetNextEmail(${1:string address}, ${2:string subject});\n\
+ $0\n\
+snippet llGetNotecardLine\n\
+ llGetNotecardLine(${1:string name}, ${2:integer line})\n\
+snippet llGetNumberOfNotecardLines\n\
+ llGetNumberOfNotecardLines(${1:string name})\n\
+snippet llGetNumberOfPrims\n\
+ llGetNumberOfPrims()\n\
+snippet llGetNumberOfSides\n\
+ llGetNumberOfSides()\n\
+snippet llGetObjectDesc\n\
+ llGetObjectDesc()\n\
+snippet llGetObjectDetails\n\
+ llGetObjectDetails(${1:key id}, ${2:list params})\n\
+snippet llGetObjectMass\n\
+ llGetObjectMass(${1:key id})\n\
+snippet llGetObjectName\n\
+ llGetObjectName()\n\
+snippet llGetObjectPermMask\n\
+ llGetObjectPermMask(${1:integer mask})\n\
+snippet llGetObjectPrimCount\n\
+ llGetObjectPrimCount(${1:key prim})\n\
+snippet llGetOmega\n\
+ llGetOmega()\n\
+snippet llGetOwner\n\
+ llGetOwner()\n\
+snippet llGetOwnerKey\n\
+ llGetOwnerKey(${1:key id})\n\
+snippet llGetParcelDetails\n\
+ llGetParcelDetails(${1:vector pos}, ${2:list params})\n\
+snippet llGetParcelFlags\n\
+ llGetParcelFlags(${1:vector pos})\n\
+snippet llGetParcelMaxPrims\n\
+ llGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\n\
+snippet llGetParcelMusicURL\n\
+ llGetParcelMusicURL()\n\
+snippet llGetParcelPrimCount\n\
+ llGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\n\
+snippet llGetParcelPrimOwners\n\
+ llGetParcelPrimOwners(${1:vector pos})\n\
+snippet llGetPermissions\n\
+ llGetPermissions()\n\
+snippet llGetPermissionsKey\n\
+ llGetPermissionsKey()\n\
+snippet llGetPhysicsMaterial\n\
+ llGetPhysicsMaterial()\n\
+snippet llGetPos\n\
+ llGetPos()\n\
+snippet llGetPrimitiveParams\n\
+ llGetPrimitiveParams(${1:list params})\n\
+snippet llGetPrimMediaParams\n\
+ llGetPrimMediaParams(${1:integer face}, ${2:list params})\n\
+snippet llGetRegionAgentCount\n\
+ llGetRegionAgentCount()\n\
+snippet llGetRegionCorner\n\
+ llGetRegionCorner()\n\
+snippet llGetRegionFlags\n\
+ llGetRegionFlags()\n\
+snippet llGetRegionFPS\n\
+ llGetRegionFPS()\n\
+snippet llGetRegionName\n\
+ llGetRegionName()\n\
+snippet llGetRegionTimeDilation\n\
+ llGetRegionTimeDilation()\n\
+snippet llGetRootPosition\n\
+ llGetRootPosition()\n\
+snippet llGetRootRotation\n\
+ llGetRootRotation()\n\
+snippet llGetRot\n\
+ llGetRot()\n\
+snippet llGetScale\n\
+ llGetScale()\n\
+snippet llGetScriptName\n\
+ llGetScriptName()\n\
+snippet llGetScriptState\n\
+ llGetScriptState(${1:string script})\n\
+snippet llGetSimStats\n\
+ llGetSimStats(${1:integer stat_type})\n\
+snippet llGetSimulatorHostname\n\
+ llGetSimulatorHostname()\n\
+snippet llGetSPMaxMemory\n\
+ llGetSPMaxMemory()\n\
+snippet llGetStartParameter\n\
+ llGetStartParameter()\n\
+snippet llGetStaticPath\n\
+ llGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\n\
+snippet llGetStatus\n\
+ llGetStatus(${1:integer status})\n\
+snippet llGetSubString\n\
+ llGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\
+snippet llGetSunDirection\n\
+ llGetSunDirection()\n\
+snippet llGetTexture\n\
+ llGetTexture(${1:integer face})\n\
+snippet llGetTextureOffset\n\
+ llGetTextureOffset(${1:integer face})\n\
+snippet llGetTextureRot\n\
+ llGetTextureRot(${1:integer face})\n\
+snippet llGetTextureScale\n\
+ llGetTextureScale(${1:integer face})\n\
+snippet llGetTime\n\
+ llGetTime()\n\
+snippet llGetTimeOfDay\n\
+ llGetTimeOfDay()\n\
+snippet llGetTimestamp\n\
+ llGetTimestamp()\n\
+snippet llGetTorque\n\
+ llGetTorque()\n\
+snippet llGetUnixTime\n\
+ llGetUnixTime()\n\
+snippet llGetUsedMemory\n\
+ llGetUsedMemory()\n\
+snippet llGetUsername\n\
+ llGetUsername(${1:key id})\n\
+snippet llGetVel\n\
+ llGetVel()\n\
+snippet llGetWallclock\n\
+ llGetWallclock()\n\
+snippet llGiveInventory\n\
+ llGiveInventory(${1:key destination}, ${2:string inventory});\n\
+ $0\n\
+snippet llGiveInventoryList\n\
+ llGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\n\
+ $0\n\
+snippet llGiveMoney\n\
+ llGiveMoney(${1:key destination}, ${2:integer amount})\n\
+snippet llGround\n\
+ llGround(${1:vector offset})\n\
+snippet llGroundContour\n\
+ llGroundContour(${1:vector offset})\n\
+snippet llGroundNormal\n\
+ llGroundNormal(${1:vector offset})\n\
+snippet llGroundRepel\n\
+ llGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\n\
+ $0\n\
+snippet llGroundSlope\n\
+ llGroundSlope(${1:vector offset})\n\
+snippet llHTTPRequest\n\
+ llHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\n\
+snippet llHTTPResponse\n\
+ llHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\n\
+ $0\n\
+snippet llInsertString\n\
+ llInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\n\
+snippet llInstantMessage\n\
+ llInstantMessage(${1:key user}, ${2:string message});\n\
+ $0\n\
+snippet llIntegerToBase64\n\
+ llIntegerToBase64(${1:integer number})\n\
+snippet llJson2List\n\
+ llJson2List(${1:string json})\n\
+snippet llJsonGetValue\n\
+ llJsonGetValue(${1:string json}, ${2:list specifiers})\n\
+snippet llJsonSetValue\n\
+ llJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\n\
+snippet llJsonValueType\n\
+ llJsonValueType(${1:string json}, ${2:list specifiers})\n\
+snippet llKey2Name\n\
+ llKey2Name(${1:key id})\n\
+snippet llKeyCountKeyValue\n\
+ llKeyCountKeyValue()\n\
+snippet llKeysKeyValue\n\
+ llKeysKeyValue(${1:integer first}, ${2:integer count})\n\
+snippet llLinkParticleSystem\n\
+ llLinkParticleSystem(${1:integer link}, ${2:list rules});\n\
+ $0\n\
+snippet llLinkSitTarget\n\
+ llLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\n\
+ $0\n\
+snippet llList2CSV\n\
+ llList2CSV(${1:list src})\n\
+snippet llList2Float\n\
+ llList2Float(${1:list src}, ${2:integer index})\n\
+snippet llList2Integer\n\
+ llList2Integer(${1:list src}, ${2:integer index})\n\
+snippet llList2Json\n\
+ llList2Json(${1:string type}, ${2:list values})\n\
+snippet llList2Key\n\
+ llList2Key(${1:list src}, ${2:integer index})\n\
+snippet llList2List\n\
+ llList2List(${1:list src}, ${2:integer start}, ${3:integer end})\n\
+snippet llList2ListStrided\n\
+ llList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\n\
+snippet llList2Rot\n\
+ llList2Rot(${1:list src}, ${2:integer index})\n\
+snippet llList2String\n\
+ llList2String(${1:list src}, ${2:integer index})\n\
+snippet llList2Vector\n\
+ llList2Vector(${1:list src}, ${2:integer index})\n\
+snippet llListen\n\
+ llListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\n\
+snippet llListenControl\n\
+ llListenControl(${1:integer handle}, ${2:integer active});\n\
+ $0\n\
+snippet llListenRemove\n\
+ llListenRemove(${1:integer handle});\n\
+ $0\n\
+snippet llListFindList\n\
+ llListFindList(${1:list src}, ${2:list test})\n\
+snippet llListInsertList\n\
+ llListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\n\
+snippet llListRandomize\n\
+ llListRandomize(${1:list src}, ${2:integer stride})\n\
+snippet llListReplaceList\n\
+ llListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\n\
+snippet llListSort\n\
+ llListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\n\
+snippet llListStatistics\n\
+ llListStatistics(${1:integer operation}, ${2:list src})\n\
+snippet llLoadURL\n\
+ llLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\n\
+ $0\n\
+snippet llLog\n\
+ llLog(${1:float val})\n\
+snippet llLog10\n\
+ llLog10(${1:float val})\n\
+snippet llLookAt\n\
+ llLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\n\
+ $0\n\
+snippet llLoopSound\n\
+ llLoopSound(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llLoopSoundMaster\n\
+ llLoopSoundMaster(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llLoopSoundSlave\n\
+ llLoopSoundSlave(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llManageEstateAccess\n\
+ llManageEstateAccess(${1:integer action}, ${2:key agent})\n\
+snippet llMapDestination\n\
+ llMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\n\
+ $0\n\
+snippet llMD5String\n\
+ llMD5String(${1:string src}, ${2:integer nonce})\n\
+snippet llMessageLinked\n\
+ llMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\n\
+ $0\n\
+snippet llMinEventDelay\n\
+ llMinEventDelay(${1:float delay});\n\
+ $0\n\
+snippet llModifyLand\n\
+ llModifyLand(${1:integer action}, ${2:integer brush});\n\
+ $0\n\
+snippet llModPow\n\
+ llModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\n\
+snippet llMoveToTarget\n\
+ llMoveToTarget(${1:vector target}, ${2:float tau});\n\
+ $0\n\
+snippet llNavigateTo\n\
+ llNavigateTo(${1:vector pos}, ${2:list options});\n\
+ $0\n\
+snippet llOffsetTexture\n\
+ llOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\
+ $0\n\
+snippet llOpenRemoteDataChannel\n\
+ llOpenRemoteDataChannel();\n\
+ $0\n\
+snippet llOverMyLand\n\
+ llOverMyLand(${1:key id})\n\
+snippet llOwnerSay\n\
+ llOwnerSay(${1:string msg});\n\
+ $0\n\
+snippet llParcelMediaCommandList\n\
+ llParcelMediaCommandList(${1:list commandList});\n\
+ $0\n\
+snippet llParcelMediaQuery\n\
+ llParcelMediaQuery(${1:list query})\n\
+snippet llParseString2List\n\
+ llParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\n\
+snippet llParseStringKeepNulls\n\
+ llParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\n\
+snippet llParticleSystem\n\
+ llParticleSystem(${1:list rules});\n\
+ $0\n\
+snippet llPassCollisions\n\
+ llPassCollisions(${1:integer pass});\n\
+ $0\n\
+snippet llPassTouches\n\
+ llPassTouches(${1:integer pass});\n\
+ $0\n\
+snippet llPatrolPoints\n\
+ llPatrolPoints(${1:list patrolPoints}, ${2:list options});\n\
+ $0\n\
+snippet llPlaySound\n\
+ llPlaySound(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llPlaySoundSlave\n\
+ llPlaySoundSlave(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llPow\n\
+ llPow(${1:float base}, ${2:float exponent})\n\
+snippet llPreloadSound\n\
+ llPreloadSound(${1:string sound});\n\
+ $0\n\
+snippet llPursue\n\
+ llPursue(${1:key target}, ${2:list options});\n\
+ $0\n\
+snippet llPushObject\n\
+ llPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\n\
+ $0\n\
+snippet llReadKeyValue\n\
+ llReadKeyValue(${1:string k})\n\
+snippet llRegionSay\n\
+ llRegionSay(${1:integer channel}, ${2:string msg});\n\
+ $0\n\
+snippet llRegionSayTo\n\
+ llRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\n\
+ $0\n\
+snippet llReleaseControls\n\
+ llReleaseControls();\n\
+ $0\n\
+snippet llReleaseURL\n\
+ llReleaseURL(${1:string url});\n\
+ $0\n\
+snippet llRemoteDataReply\n\
+ llRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\n\
+ $0\n\
+snippet llRemoteLoadScriptPin\n\
+ llRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\n\
+ $0\n\
+snippet llRemoveFromLandBanList\n\
+ llRemoveFromLandBanList(${1:key agent});\n\
+ $0\n\
+snippet llRemoveFromLandPassList\n\
+ llRemoveFromLandPassList(${1:key agent});\n\
+ $0\n\
+snippet llRemoveInventory\n\
+ llRemoveInventory(${1:string item});\n\
+ $0\n\
+snippet llRemoveVehicleFlags\n\
+ llRemoveVehicleFlags(${1:integer flags});\n\
+ $0\n\
+snippet llRequestAgentData\n\
+ llRequestAgentData(${1:key id}, ${2:integer data})\n\
+snippet llRequestDisplayName\n\
+ llRequestDisplayName(${1:key id})\n\
+snippet llRequestExperiencePermissions\n\
+ llRequestExperiencePermissions(${1:key agent}, ${2:string name})\n\
+snippet llRequestInventoryData\n\
+ llRequestInventoryData(${1:string name})\n\
+snippet llRequestPermissions\n\
+ llRequestPermissions(${1:key agent}, ${2:integer permissions})\n\
+snippet llRequestSecureURL\n\
+ llRequestSecureURL()\n\
+snippet llRequestSimulatorData\n\
+ llRequestSimulatorData(${1:string region}, ${2:integer data})\n\
+snippet llRequestURL\n\
+ llRequestURL()\n\
+snippet llRequestUsername\n\
+ llRequestUsername(${1:key id})\n\
+snippet llResetAnimationOverride\n\
+ llResetAnimationOverride(${1:string anim_state});\n\
+ $0\n\
+snippet llResetLandBanList\n\
+ llResetLandBanList();\n\
+ $0\n\
+snippet llResetLandPassList\n\
+ llResetLandPassList();\n\
+ $0\n\
+snippet llResetOtherScript\n\
+ llResetOtherScript(${1:string name});\n\
+ $0\n\
+snippet llResetScript\n\
+ llResetScript();\n\
+ $0\n\
+snippet llResetTime\n\
+ llResetTime();\n\
+ $0\n\
+snippet llReturnObjectsByID\n\
+ llReturnObjectsByID(${1:list objects})\n\
+snippet llReturnObjectsByOwner\n\
+ llReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\n\
+snippet llRezAtRoot\n\
+ llRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\n\
+ $0\n\
+snippet llRezObject\n\
+ llRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\n\
+ $0\n\
+snippet llRot2Angle\n\
+ llRot2Angle(${1:rotation rot})\n\
+snippet llRot2Axis\n\
+ llRot2Axis(${1:rotation rot})\n\
+snippet llRot2Euler\n\
+ llRot2Euler(${1:rotation quat})\n\
+snippet llRot2Fwd\n\
+ llRot2Fwd(${1:rotation q})\n\
+snippet llRot2Left\n\
+ llRot2Left(${1:rotation q})\n\
+snippet llRot2Up\n\
+ llRot2Up(${1:rotation q})\n\
+snippet llRotateTexture\n\
+ llRotateTexture(${1:float angle}, ${2:integer face});\n\
+ $0\n\
+snippet llRotBetween\n\
+ llRotBetween(${1:vector start}, ${2:vector end})\n\
+snippet llRotLookAt\n\
+ llRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\n\
+ $0\n\
+snippet llRotTarget\n\
+ llRotTarget(${1:rotation rot}, ${2:float error})\n\
+snippet llRotTargetRemove\n\
+ llRotTargetRemove(${1:integer handle});\n\
+ $0\n\
+snippet llRound\n\
+ llRound(${1:float val})\n\
+snippet llSameGroup\n\
+ llSameGroup(${1:key group})\n\
+snippet llSay\n\
+ llSay(${1:integer channel}, ${2:string msg});\n\
+ $0\n\
+snippet llScaleByFactor\n\
+ llScaleByFactor(${1:float scaling_factor})\n\
+snippet llScaleTexture\n\
+ llScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\
+ $0\n\
+snippet llScriptDanger\n\
+ llScriptDanger(${1:vector pos})\n\
+snippet llScriptProfiler\n\
+ llScriptProfiler(${1:integer flags});\n\
+ $0\n\
+snippet llSendRemoteData\n\
+ llSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\n\
+snippet llSensor\n\
+ llSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\n\
+ $0\n\
+snippet llSensorRepeat\n\
+ llSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\n\
+ $0\n\
+snippet llSetAlpha\n\
+ llSetAlpha(${1:float alpha}, ${2:integer face});\n\
+ $0\n\
+snippet llSetAngularVelocity\n\
+ llSetAngularVelocity(${1:vector force}, ${2:integer local});\n\
+ $0\n\
+snippet llSetAnimationOverride\n\
+ llSetAnimationOverride(${1:string anim_state}, ${2:string anim})\n\
+snippet llSetBuoyancy\n\
+ llSetBuoyancy(${1:float buoyancy});\n\
+ $0\n\
+snippet llSetCameraAtOffset\n\
+ llSetCameraAtOffset(${1:vector offset});\n\
+ $0\n\
+snippet llSetCameraEyeOffset\n\
+ llSetCameraEyeOffset(${1:vector offset});\n\
+ $0\n\
+snippet llSetCameraParams\n\
+ llSetCameraParams(${1:list rules});\n\
+ $0\n\
+snippet llSetClickAction\n\
+ llSetClickAction(${1:integer action});\n\
+ $0\n\
+snippet llSetColor\n\
+ llSetColor(${1:vector color}, ${2:integer face});\n\
+ $0\n\
+snippet llSetContentType\n\
+ llSetContentType(${1:key request_id}, ${2:integer content_type});\n\
+ $0\n\
+snippet llSetDamage\n\
+ llSetDamage(${1:float damage});\n\
+ $0\n\
+snippet llSetForce\n\
+ llSetForce(${1:vector force}, ${2:integer local});\n\
+ $0\n\
+snippet llSetForceAndTorque\n\
+ llSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\n\
+ $0\n\
+snippet llSetHoverHeight\n\
+ llSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\n\
+ $0\n\
+snippet llSetKeyframedMotion\n\
+ llSetKeyframedMotion(${1:list keyframes}, ${2:list options});\n\
+ $0\n\
+snippet llSetLinkAlpha\n\
+ llSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\n\
+ $0\n\
+snippet llSetLinkCamera\n\
+ llSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\n\
+ $0\n\
+snippet llSetLinkColor\n\
+ llSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\n\
+ $0\n\
+snippet llSetLinkMedia\n\
+ llSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\n\
+ $0\n\
+snippet llSetLinkPrimitiveParams\n\
+ llSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\n\
+ $0\n\
+snippet llSetLinkPrimitiveParamsFast\n\
+ llSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\n\
+ $0\n\
+snippet llSetLinkTexture\n\
+ llSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\n\
+ $0\n\
+snippet llSetLinkTextureAnim\n\
+ llSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\n\
+ $0\n\
+snippet llSetLocalRot\n\
+ llSetLocalRot(${1:rotation rot});\n\
+ $0\n\
+snippet llSetMemoryLimit\n\
+ llSetMemoryLimit(${1:integer limit})\n\
+snippet llSetObjectDesc\n\
+ llSetObjectDesc(${1:string description});\n\
+ $0\n\
+snippet llSetObjectName\n\
+ llSetObjectName(${1:string name});\n\
+ $0\n\
+snippet llSetParcelMusicURL\n\
+ llSetParcelMusicURL(${1:string url});\n\
+ $0\n\
+snippet llSetPayPrice\n\
+ llSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\n\
+ $0\n\
+snippet llSetPhysicsMaterial\n\
+ llSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\n\
+ $0\n\
+snippet llSetPos\n\
+ llSetPos(${1:vector pos});\n\
+ $0\n\
+snippet llSetPrimitiveParams\n\
+ llSetPrimitiveParams(${1:list rules});\n\
+ $0\n\
+snippet llSetPrimMediaParams\n\
+ llSetPrimMediaParams(${1:integer face}, ${2:list params});\n\
+ $0\n\
+snippet llSetRegionPos\n\
+ llSetRegionPos(${1:vector position})\n\
+snippet llSetRemoteScriptAccessPin\n\
+ llSetRemoteScriptAccessPin(${1:integer pin});\n\
+ $0\n\
+snippet llSetRot\n\
+ llSetRot(${1:rotation rot});\n\
+ $0\n\
+snippet llSetScale\n\
+ llSetScale(${1:vector size});\n\
+ $0\n\
+snippet llSetScriptState\n\
+ llSetScriptState(${1:string name}, ${2:integer run});\n\
+ $0\n\
+snippet llSetSitText\n\
+ llSetSitText(${1:string text});\n\
+ $0\n\
+snippet llSetSoundQueueing\n\
+ llSetSoundQueueing(${1:integer queue});\n\
+ $0\n\
+snippet llSetSoundRadius\n\
+ llSetSoundRadius(${1:float radius});\n\
+ $0\n\
+snippet llSetStatus\n\
+ llSetStatus(${1:integer status}, ${2:integer value});\n\
+ $0\n\
+snippet llSetText\n\
+ llSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\n\
+ $0\n\
+snippet llSetTexture\n\
+ llSetTexture(${1:string texture}, ${2:integer face});\n\
+ $0\n\
+snippet llSetTextureAnim\n\
+ llSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\n\
+ $0\n\
+snippet llSetTimerEvent\n\
+ llSetTimerEvent(${1:float sec});\n\
+ $0\n\
+snippet llSetTorque\n\
+ llSetTorque(${1:vector torque}, ${2:integer local});\n\
+ $0\n\
+snippet llSetTouchText\n\
+ llSetTouchText(${1:string text});\n\
+ $0\n\
+snippet llSetVehicleFlags\n\
+ llSetVehicleFlags(${1:integer flags});\n\
+ $0\n\
+snippet llSetVehicleFloatParam\n\
+ llSetVehicleFloatParam(${1:integer param}, ${2:float value});\n\
+ $0\n\
+snippet llSetVehicleRotationParam\n\
+ llSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\n\
+ $0\n\
+snippet llSetVehicleType\n\
+ llSetVehicleType(${1:integer type});\n\
+ $0\n\
+snippet llSetVehicleVectorParam\n\
+ llSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\n\
+ $0\n\
+snippet llSetVelocity\n\
+ llSetVelocity(${1:vector force}, ${2:integer local});\n\
+ $0\n\
+snippet llSHA1String\n\
+ llSHA1String(${1:string src})\n\
+snippet llShout\n\
+ llShout(${1:integer channel}, ${2:string msg});\n\
+ $0\n\
+snippet llSin\n\
+ llSin(${1:float theta})\n\
+snippet llSitTarget\n\
+ llSitTarget(${1:vector offset}, ${2:rotation rot});\n\
+ $0\n\
+snippet llSleep\n\
+ llSleep(${1:float sec});\n\
+ $0\n\
+snippet llSqrt\n\
+ llSqrt(${1:float val})\n\
+snippet llStartAnimation\n\
+ llStartAnimation(${1:string anim});\n\
+ $0\n\
+snippet llStopAnimation\n\
+ llStopAnimation(${1:string anim});\n\
+ $0\n\
+snippet llStopHover\n\
+ llStopHover();\n\
+ $0\n\
+snippet llStopLookAt\n\
+ llStopLookAt();\n\
+ $0\n\
+snippet llStopMoveToTarget\n\
+ llStopMoveToTarget();\n\
+ $0\n\
+snippet llStopSound\n\
+ llStopSound();\n\
+ $0\n\
+snippet llStringLength\n\
+ llStringLength(${1:string str})\n\
+snippet llStringToBase64\n\
+ llStringToBase64(${1:string str})\n\
+snippet llStringTrim\n\
+ llStringTrim(${1:string src}, ${2:integer type})\n\
+snippet llSubStringIndex\n\
+ llSubStringIndex(${1:string source}, ${2:string pattern})\n\
+snippet llTakeControls\n\
+ llTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\n\
+ $0\n\
+snippet llTan\n\
+ llTan(${1:float theta})\n\
+snippet llTarget\n\
+ llTarget(${1:vector position}, ${2:float range})\n\
+snippet llTargetOmega\n\
+ llTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\n\
+ $0\n\
+snippet llTargetRemove\n\
+ llTargetRemove(${1:integer handle});\n\
+ $0\n\
+snippet llTeleportAgent\n\
+ llTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\n\
+ $0\n\
+snippet llTeleportAgentGlobalCoords\n\
+ llTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\n\
+ $0\n\
+snippet llTeleportAgentHome\n\
+ llTeleportAgentHome(${1:key agent});\n\
+ $0\n\
+snippet llTextBox\n\
+ llTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\n\
+ $0\n\
+snippet llToLower\n\
+ llToLower(${1:string src})\n\
+snippet llToUpper\n\
+ llToUpper(${1:string src})\n\
+snippet llTransferLindenDollars\n\
+ llTransferLindenDollars(${1:key destination}, ${2:integer amount})\n\
+snippet llTriggerSound\n\
+ llTriggerSound(${1:string sound}, ${2:float volume});\n\
+ $0\n\
+snippet llTriggerSoundLimited\n\
+ llTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\n\
+ $0\n\
+snippet llUnescapeURL\n\
+ llUnescapeURL(${1:string url})\n\
+snippet llUnSit\n\
+ llUnSit(${1:key id});\n\
+ $0\n\
+snippet llUpdateCharacter\n\
+ llUpdateCharacter(${1:list options})\n\
+snippet llUpdateKeyValue\n\
+ llUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\n\
+snippet llVecDist\n\
+ llVecDist(${1:vector vec_a}, ${2:vector vec_b})\n\
+snippet llVecMag\n\
+ llVecMag(${1:vector vec})\n\
+snippet llVecNorm\n\
+ llVecNorm(${1:vector vec})\n\
+snippet llVolumeDetect\n\
+ llVolumeDetect(${1:integer detect});\n\
+ $0\n\
+snippet llWanderWithin\n\
+ llWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\n\
+ $0\n\
+snippet llWater\n\
+ llWater(${1:vector offset});\n\
+ $0\n\
+snippet llWhisper\n\
+ llWhisper(${1:integer channel}, ${2:string msg});\n\
+ $0\n\
+snippet llWind\n\
+ llWind(${1:vector offset});\n\
+ $0\n\
+snippet llXorBase64\n\
+ llXorBase64(${1:string str1}, ${2:string str2})\n\
+snippet money\n\
+ money(${1:key id}, ${2:integer amount})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet object_rez\n\
+ object_rez(${1:key id})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet on_rez\n\
+ on_rez(${1:integer start_param})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet path_update\n\
+ path_update(${1:integer type}, ${2:list reserved})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet remote_data\n\
+ remote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet run_time_permissions\n\
+ run_time_permissions(${1:integer perm})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet sensor\n\
+ sensor(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet state\n\
+ state ${1:name}\n\
+snippet touch\n\
+ touch(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet touch_end\n\
+ touch_end(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet touch_start\n\
+ touch_start(${1:integer index})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet transaction_result\n\
+ transaction_result(${1:key id}, ${2:integer success}, ${3:string data})\n\
+ {\n\
+ $0\n\
+ }\n\
+snippet while\n\
+ while (${1:condition})\n\
+ {\n\
+ $0\n\
+ }\n\
+";
+exports.scope = "lsl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/lua.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lua.js
new file mode 100644
index 00000000..c369b648
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lua.js
@@ -0,0 +1,28 @@
+ace.define("ace/snippets/lua",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet #!\n\
+ #!/usr/bin/env lua\n\
+ $1\n\
+snippet local\n\
+ local ${1:x} = ${2:1}\n\
+snippet fun\n\
+ function ${1:fname}(${2:...})\n\
+ ${3:-- body}\n\
+ end\n\
+snippet for\n\
+ for ${1:i}=${2:1},${3:10} do\n\
+ ${4:print(i)}\n\
+ end\n\
+snippet forp\n\
+ for ${1:i},${2:v} in pairs(${3:table_name}) do\n\
+ ${4:-- body}\n\
+ end\n\
+snippet fori\n\
+ for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\
+ ${4:-- body}\n\
+ end\n\
+";
+exports.scope = "lua";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/luapage.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/luapage.js
new file mode 100644
index 00000000..f1bcf091
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/luapage.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/luapage",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "luapage";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/lucene.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lucene.js
new file mode 100644
index 00000000..8795919e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/lucene.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/lucene",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "lucene";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/makefile.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/makefile.js
new file mode 100644
index 00000000..6c02e0d6
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/makefile.js
@@ -0,0 +1,11 @@
+ace.define("ace/snippets/makefile",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet ifeq\n\
+ ifeq (${1:cond0},${2:cond1})\n\
+ ${3:code}\n\
+ endif\n\
+";
+exports.scope = "makefile";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/markdown.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/markdown.js
new file mode 100644
index 00000000..d05f16b9
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/markdown.js
@@ -0,0 +1,95 @@
+ace.define("ace/snippets/markdown",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Markdown\n\
+\n\
+# Includes octopress (http://octopress.org/) snippets\n\
+\n\
+snippet [\n\
+ [${1:text}](http://${2:address} \"${3:title}\")\n\
+snippet [*\n\
+ [${1:link}](${2:`@*`} \"${3:title}\")${4}\n\
+\n\
+snippet [:\n\
+ [${1:id}]: http://${2:url} \"${3:title}\"\n\
+snippet [:*\n\
+ [${1:id}]: ${2:`@*`} \"${3:title}\"\n\
+\n\
+snippet ![\n\
+ ![${1:alttext}](${2:/images/image.jpg} \"${3:title}\")\n\
+snippet ![*\n\
+ ![${1:alt}](${2:`@*`} \"${3:title}\")${4}\n\
+\n\
+snippet ![:\n\
+ ![${1:id}]: ${2:url} \"${3:title}\"\n\
+snippet ![:*\n\
+ ![${1:id}]: ${2:`@*`} \"${3:title}\"\n\
+\n\
+snippet ===\n\
+regex /^/=+/=*//\n\
+ ${PREV_LINE/./=/g}\n\
+ \n\
+ ${0}\n\
+snippet ---\n\
+regex /^/-+/-*//\n\
+ ${PREV_LINE/./-/g}\n\
+ \n\
+ ${0}\n\
+snippet blockquote\n\
+ {% blockquote %}\n\
+ ${1:quote}\n\
+ {% endblockquote %}\n\
+\n\
+snippet blockquote-author\n\
+ {% blockquote ${1:author}, ${2:title} %}\n\
+ ${3:quote}\n\
+ {% endblockquote %}\n\
+\n\
+snippet blockquote-link\n\
+ {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n\
+ ${4:quote}\n\
+ {% endblockquote %}\n\
+\n\
+snippet bt-codeblock-short\n\
+ ```\n\
+ ${1:code_snippet}\n\
+ ```\n\
+\n\
+snippet bt-codeblock-full\n\
+ ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n\
+ ${5:code_snippet}\n\
+ ```\n\
+\n\
+snippet codeblock-short\n\
+ {% codeblock %}\n\
+ ${1:code_snippet}\n\
+ {% endcodeblock %}\n\
+\n\
+snippet codeblock-full\n\
+ {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n\
+ ${5:code_snippet}\n\
+ {% endcodeblock %}\n\
+\n\
+snippet gist-full\n\
+ {% gist ${1:gist_id} ${2:filename} %}\n\
+\n\
+snippet gist-short\n\
+ {% gist ${1:gist_id} %}\n\
+\n\
+snippet img\n\
+ {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\
+\n\
+snippet youtube\n\
+ {% youtube ${1:video_id} %}\n\
+\n\
+# The quote should appear only once in the text. It is inherently part of it.\n\
+# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\
+\n\
+snippet pullquote\n\
+ {% pullquote %}\n\
+ ${1:text} {\" ${2:quote} \"} ${3:text}\n\
+ {% endpullquote %}\n\
+";
+exports.scope = "markdown";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/mask.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mask.js
new file mode 100644
index 00000000..2811ad2a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mask.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/mask",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "mask";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/matlab.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/matlab.js
new file mode 100644
index 00000000..ce298c3f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/matlab.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/matlab",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "matlab";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/maze.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/maze.js
new file mode 100644
index 00000000..c12d5668
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/maze.js
@@ -0,0 +1,16 @@
+ace.define("ace/snippets/maze",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet >\n\
+description assignment\n\
+scope maze\n\
+ -> ${1}= ${2}\n\
+\n\
+snippet >\n\
+description if\n\
+scope maze\n\
+ -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n\
+";
+exports.scope = "maze";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/mel.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mel.js
new file mode 100644
index 00000000..537cc25b
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mel.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/mel",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "mel";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/mushcode.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mushcode.js
new file mode 100644
index 00000000..1f0fe24e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mushcode.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/mushcode",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "mushcode";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/mysql.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mysql.js
new file mode 100644
index 00000000..bfb3a42c
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/mysql.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/mysql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "mysql";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/nix.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/nix.js
new file mode 100644
index 00000000..4fb6e704
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/nix.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/nix",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "nix";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/nsis.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/nsis.js
new file mode 100644
index 00000000..81b5726d
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/nsis.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/nsis",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/objectivec.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/objectivec.js
new file mode 100644
index 00000000..f93e6ae9
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/objectivec.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/objectivec",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "objectivec";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ocaml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ocaml.js
new file mode 100644
index 00000000..06e0940d
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ocaml.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/ocaml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "ocaml";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/pascal.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pascal.js
new file mode 100644
index 00000000..70aa2ee7
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pascal.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/pascal",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "pascal";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/perl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/perl.js
new file mode 100644
index 00000000..9f818432
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/perl.js
@@ -0,0 +1,354 @@
+ace.define("ace/snippets/perl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# #!/usr/bin/perl\n\
+snippet #!\n\
+ #!/usr/bin/env perl\n\
+\n\
+# Hash Pointer\n\
+snippet .\n\
+ =>\n\
+# Function\n\
+snippet sub\n\
+ sub ${1:function_name} {\n\
+ ${2:#body ...}\n\
+ }\n\
+# Conditional\n\
+snippet if\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# Conditional if..else\n\
+snippet ife\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+ else {\n\
+ ${3:# else...}\n\
+ }\n\
+# Conditional if..elsif..else\n\
+snippet ifee\n\
+ if (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+ elsif (${3}) {\n\
+ ${4:# elsif...}\n\
+ }\n\
+ else {\n\
+ ${5:# else...}\n\
+ }\n\
+# Conditional One-line\n\
+snippet xif\n\
+ ${1:expression} if ${2:condition};${3}\n\
+# Unless conditional\n\
+snippet unless\n\
+ unless (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# Unless conditional One-line\n\
+snippet xunless\n\
+ ${1:expression} unless ${2:condition};${3}\n\
+# Try/Except\n\
+snippet eval\n\
+ local $@;\n\
+ eval {\n\
+ ${1:# do something risky...}\n\
+ };\n\
+ if (my $e = $@) {\n\
+ ${2:# handle failure...}\n\
+ }\n\
+# While Loop\n\
+snippet wh\n\
+ while (${1}) {\n\
+ ${2:# body...}\n\
+ }\n\
+# While Loop One-line\n\
+snippet xwh\n\
+ ${1:expression} while ${2:condition};${3}\n\
+# C-style For Loop\n\
+snippet cfor\n\
+ for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\
+ ${4:# body...}\n\
+ }\n\
+# For loop one-line\n\
+snippet xfor\n\
+ ${1:expression} for @${2:array};${3}\n\
+# Foreach Loop\n\
+snippet for\n\
+ foreach my $${1:x} (@${2:array}) {\n\
+ ${3:# body...}\n\
+ }\n\
+# Foreach Loop One-line\n\
+snippet fore\n\
+ ${1:expression} foreach @${2:array};${3}\n\
+# Package\n\
+snippet package\n\
+ package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\
+\n\
+ ${2}\n\
+\n\
+ 1;\n\
+\n\
+ __END__\n\
+# Package syntax perl >= 5.14\n\
+snippet packagev514\n\
+ package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\
+\n\
+ ${3}\n\
+\n\
+ 1;\n\
+\n\
+ __END__\n\
+#moose\n\
+snippet moose\n\
+ use Moose;\n\
+ use namespace::autoclean;\n\
+ ${1:#}BEGIN {extends '${2:ParentClass}'};\n\
+\n\
+ ${3}\n\
+# parent\n\
+snippet parent\n\
+ use parent qw(${1:Parent Class});\n\
+# Read File\n\
+snippet slurp\n\
+ my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n\
+ ${3}\n\
+# strict warnings\n\
+snippet strwar\n\
+ use strict;\n\
+ use warnings;\n\
+# older versioning with perlcritic bypass\n\
+snippet vers\n\
+ ## no critic\n\
+ our $VERSION = '${1:version}';\n\
+ eval $VERSION;\n\
+ ## use critic\n\
+# new 'switch' like feature\n\
+snippet switch\n\
+ use feature 'switch';\n\
+\n\
+# Anonymous subroutine\n\
+snippet asub\n\
+ sub {\n\
+ ${1:# body }\n\
+ }\n\
+\n\
+\n\
+\n\
+# Begin block\n\
+snippet begin\n\
+ BEGIN {\n\
+ ${1:# begin body}\n\
+ }\n\
+\n\
+# call package function with some parameter\n\
+snippet pkgmv\n\
+ __PACKAGE__->${1:package_method}(${2:var})\n\
+\n\
+# call package function without a parameter\n\
+snippet pkgm\n\
+ __PACKAGE__->${1:package_method}()\n\
+\n\
+# call package \"get_\" function without a parameter\n\
+snippet pkget\n\
+ __PACKAGE__->get_${1:package_method}()\n\
+\n\
+# call package function with a parameter\n\
+snippet pkgetv\n\
+ __PACKAGE__->get_${1:package_method}(${2:var})\n\
+\n\
+# complex regex\n\
+snippet qrx\n\
+ qr/\n\
+ ${1:regex}\n\
+ /xms\n\
+\n\
+#simpler regex\n\
+snippet qr/\n\
+ qr/${1:regex}/x\n\
+\n\
+#given\n\
+snippet given\n\
+ given ($${1:var}) {\n\
+ ${2:# cases}\n\
+ ${3:# default}\n\
+ }\n\
+\n\
+# switch-like case\n\
+snippet when\n\
+ when (${1:case}) {\n\
+ ${2:# body}\n\
+ }\n\
+\n\
+# hash slice\n\
+snippet hslice\n\
+ @{ ${1:hash} }{ ${2:array} }\n\
+\n\
+\n\
+# map\n\
+snippet map\n\
+ map { ${2: body } } ${1: @array } ;\n\
+\n\
+\n\
+\n\
+# Pod stub\n\
+snippet ppod\n\
+ =head1 NAME\n\
+\n\
+ ${1:ClassName} - ${2:ShortDesc}\n\
+\n\
+ =head1 SYNOPSIS\n\
+\n\
+ use $1;\n\
+\n\
+ ${3:# synopsis...}\n\
+\n\
+ =head1 DESCRIPTION\n\
+\n\
+ ${4:# longer description...}\n\
+\n\
+\n\
+ =head1 INTERFACE\n\
+\n\
+\n\
+ =head1 DEPENDENCIES\n\
+\n\
+\n\
+ =head1 SEE ALSO\n\
+\n\
+\n\
+# Heading for a subroutine stub\n\
+snippet psub\n\
+ =head2 ${1:MethodName}\n\
+\n\
+ ${2:Summary....}\n\
+\n\
+# Heading for inline subroutine pod\n\
+snippet psubi\n\
+ =head2 ${1:MethodName}\n\
+\n\
+ ${2:Summary...}\n\
+\n\
+\n\
+ =cut\n\
+# inline documented subroutine\n\
+snippet subpod\n\
+ =head2 $1\n\
+\n\
+ Summary of $1\n\
+\n\
+ =cut\n\
+\n\
+ sub ${1:subroutine_name} {\n\
+ ${2:# body...}\n\
+ }\n\
+# Subroutine signature\n\
+snippet parg\n\
+ =over 2\n\
+\n\
+ =item\n\
+ Arguments\n\
+\n\
+\n\
+ =over 3\n\
+\n\
+ =item\n\
+ C<${1:DataStructure}>\n\
+\n\
+ ${2:Sample}\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+ =item\n\
+ Return\n\
+\n\
+ =over 3\n\
+\n\
+\n\
+ =item\n\
+ C<${3:...return data}>\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+ =back\n\
+\n\
+\n\
+\n\
+# Moose has\n\
+snippet has\n\
+ has ${1:attribute} => (\n\
+ is => '${2:ro|rw}',\n\
+ isa => '${3:Str|Int|HashRef|ArrayRef|etc}',\n\
+ default => sub {\n\
+ ${4:defaultvalue}\n\
+ },\n\
+ ${5:# other attributes}\n\
+ );\n\
+\n\
+\n\
+# override\n\
+snippet override\n\
+ override ${1:attribute} => sub {\n\
+ ${2:# my $self = shift;};\n\
+ ${3:# my ($self, $args) = @_;};\n\
+ };\n\
+\n\
+\n\
+# use test classes\n\
+snippet tuse\n\
+ use Test::More;\n\
+ use Test::Deep; # (); # uncomment to stop prototype errors\n\
+ use Test::Exception;\n\
+\n\
+# local test lib\n\
+snippet tlib\n\
+ use lib qw{ ./t/lib };\n\
+\n\
+#test methods\n\
+snippet tmeths\n\
+ $ENV{TEST_METHOD} = '${1:regex}';\n\
+\n\
+# runtestclass\n\
+snippet trunner\n\
+ use ${1:test_class};\n\
+ $1->runtests();\n\
+\n\
+# Test::Class-style test\n\
+snippet tsub\n\
+ sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n\
+ my $self = shift;\n\
+ ${4:# body}\n\
+\n\
+ }\n\
+\n\
+# Test::Routine-style test\n\
+snippet trsub\n\
+ test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n\
+ my ($self) = @_;\n\
+ ${3:# test code}\n\
+ };\n\
+\n\
+#prep test method\n\
+snippet tprep\n\
+ sub prep${1:number}_${2:test_case} :Test(startup) {\n\
+ my $self = shift;\n\
+ ${4:# body}\n\
+ }\n\
+\n\
+# cause failures to print stack trace\n\
+snippet debug_trace\n\
+ use Carp; # 'verbose';\n\
+ # cloak \"die\"\n\
+ # warn \"warning\"\n\
+ $SIG{'__DIE__'} = sub {\n\
+ require Carp; Carp::confess\n\
+ };\n\
+\n\
+";
+exports.scope = "perl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/pgsql.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pgsql.js
new file mode 100644
index 00000000..5914fe1d
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pgsql.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/pgsql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "pgsql";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/php.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/php.js
new file mode 100644
index 00000000..a99ab6e0
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/php.js
@@ -0,0 +1,384 @@
+ace.define("ace/snippets/php",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet <?\n\
+ <?php\n\
+\n\
+ ${1}\n\
+snippet ec\n\
+ echo ${1};\n\
+snippet <?e\n\
+ <?php echo ${1} ?>\n\
+# this one is for php5.4\n\
+snippet <?=\n\
+ <?=${1}?>\n\
+snippet ns\n\
+ namespace ${1:Foo\\Bar\\Baz};\n\
+ ${2}\n\
+snippet use\n\
+ use ${1:Foo\\Bar\\Baz};\n\
+ ${2}\n\
+snippet c\n\
+ ${1:abstract }class ${2:$FILENAME}\n\
+ {\n\
+ ${3}\n\
+ }\n\
+snippet i\n\
+ interface ${1:$FILENAME}\n\
+ {\n\
+ ${2}\n\
+ }\n\
+snippet t.\n\
+ $this->${1}\n\
+snippet f\n\
+ function ${1:foo}(${2:array }${3:$bar})\n\
+ {\n\
+ ${4}\n\
+ }\n\
+# method\n\
+snippet m\n\
+ ${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\n\
+ {\n\
+ ${7}\n\
+ }\n\
+# setter method\n\
+snippet sm \n\
+ /**\n\
+ * Sets the value of ${1:foo}\n\
+ *\n\
+ * @param ${2:$1} $$1 ${3:description}\n\
+ *\n\
+ * @return ${4:$FILENAME}\n\
+ */\n\
+ ${5:public} function set${6:$2}(${7:$2 }$$1)\n\
+ {\n\
+ $this->${8:$1} = $$1;\n\
+ return $this;\n\
+ }${9}\n\
+# getter method\n\
+snippet gm\n\
+ /**\n\
+ * Gets the value of ${1:foo}\n\
+ *\n\
+ * @return ${2:$1}\n\
+ */\n\
+ ${3:public} function get${4:$2}()\n\
+ {\n\
+ return $this->${5:$1};\n\
+ }${6}\n\
+#setter\n\
+snippet $s\n\
+ ${1:$foo}->set${2:Bar}(${3});\n\
+#getter\n\
+snippet $g\n\
+ ${1:$foo}->get${2:Bar}();\n\
+\n\
+# Tertiary conditional\n\
+snippet =?:\n\
+ $${1:foo} = ${2:true} ? ${3:a} : ${4};\n\
+snippet ?:\n\
+ ${1:true} ? ${2:a} : ${3}\n\
+\n\
+snippet C\n\
+ $_COOKIE['${1:variable}']${2}\n\
+snippet E\n\
+ $_ENV['${1:variable}']${2}\n\
+snippet F\n\
+ $_FILES['${1:variable}']${2}\n\
+snippet G\n\
+ $_GET['${1:variable}']${2}\n\
+snippet P\n\
+ $_POST['${1:variable}']${2}\n\
+snippet R\n\
+ $_REQUEST['${1:variable}']${2}\n\
+snippet S\n\
+ $_SERVER['${1:variable}']${2}\n\
+snippet SS\n\
+ $_SESSION['${1:variable}']${2}\n\
+ \n\
+# the following are old ones\n\
+snippet inc\n\
+ include '${1:file}';${2}\n\
+snippet inc1\n\
+ include_once '${1:file}';${2}\n\
+snippet req\n\
+ require '${1:file}';${2}\n\
+snippet req1\n\
+ require_once '${1:file}';${2}\n\
+# Start Docblock\n\
+snippet /*\n\
+ /**\n\
+ * ${1}\n\
+ */\n\
+# Class - post doc\n\
+snippet doc_cp\n\
+ /**\n\
+ * ${1:undocumented class}\n\
+ *\n\
+ * @package ${2:default}\n\
+ * @subpackage ${3:default}\n\
+ * @author ${4:`g:snips_author`}\n\
+ */${5}\n\
+# Class Variable - post doc\n\
+snippet doc_vp\n\
+ /**\n\
+ * ${1:undocumented class variable}\n\
+ *\n\
+ * @var ${2:string}\n\
+ */${3}\n\
+# Class Variable\n\
+snippet doc_v\n\
+ /**\n\
+ * ${3:undocumented class variable}\n\
+ *\n\
+ * @var ${4:string}\n\
+ */\n\
+ ${1:var} $${2};${5}\n\
+# Class\n\
+snippet doc_c\n\
+ /**\n\
+ * ${3:undocumented class}\n\
+ *\n\
+ * @package ${4:default}\n\
+ * @subpackage ${5:default}\n\
+ * @author ${6:`g:snips_author`}\n\
+ */\n\
+ ${1:}class ${2:}\n\
+ {\n\
+ ${7}\n\
+ } // END $1class $2\n\
+# Constant Definition - post doc\n\
+snippet doc_dp\n\
+ /**\n\
+ * ${1:undocumented constant}\n\
+ */${2}\n\
+# Constant Definition\n\
+snippet doc_d\n\
+ /**\n\
+ * ${3:undocumented constant}\n\
+ */\n\
+ define(${1}, ${2});${4}\n\
+# Function - post doc\n\
+snippet doc_fp\n\
+ /**\n\
+ * ${1:undocumented function}\n\
+ *\n\
+ * @return ${2:void}\n\
+ * @author ${3:`g:snips_author`}\n\
+ */${4}\n\
+# Function signature\n\
+snippet doc_s\n\
+ /**\n\
+ * ${4:undocumented function}\n\
+ *\n\
+ * @return ${5:void}\n\
+ * @author ${6:`g:snips_author`}\n\
+ */\n\
+ ${1}function ${2}(${3});${7}\n\
+# Function\n\
+snippet doc_f\n\
+ /**\n\
+ * ${4:undocumented function}\n\
+ *\n\
+ * @return ${5:void}\n\
+ * @author ${6:`g:snips_author`}\n\
+ */\n\
+ ${1}function ${2}(${3})\n\
+ {${7}\n\
+ }\n\
+# Header\n\
+snippet doc_h\n\
+ /**\n\
+ * ${1}\n\
+ *\n\
+ * @author ${2:`g:snips_author`}\n\
+ * @version ${3:$Id$}\n\
+ * @copyright ${4:$2}, `strftime('%d %B, %Y')`\n\
+ * @package ${5:default}\n\
+ */\n\
+ \n\
+# Interface\n\
+snippet interface\n\
+ /**\n\
+ * ${2:undocumented class}\n\
+ *\n\
+ * @package ${3:default}\n\
+ * @author ${4:`g:snips_author`}\n\
+ */\n\
+ interface ${1:$FILENAME}\n\
+ {\n\
+ ${5}\n\
+ }\n\
+# class ...\n\
+snippet class\n\
+ /**\n\
+ * ${1}\n\
+ */\n\
+ class ${2:$FILENAME}\n\
+ {\n\
+ ${3}\n\
+ /**\n\
+ * ${4}\n\
+ */\n\
+ ${5:public} function ${6:__construct}(${7:argument})\n\
+ {\n\
+ ${8:// code...}\n\
+ }\n\
+ }\n\
+# define(...)\n\
+snippet def\n\
+ define('${1}'${2});${3}\n\
+# defined(...)\n\
+snippet def?\n\
+ ${1}defined('${2}')${3}\n\
+snippet wh\n\
+ while (${1:/* condition */}) {\n\
+ ${2:// code...}\n\
+ }\n\
+# do ... while\n\
+snippet do\n\
+ do {\n\
+ ${2:// code... }\n\
+ } while (${1:/* condition */});\n\
+snippet if\n\
+ if (${1:/* condition */}) {\n\
+ ${2:// code...}\n\
+ }\n\
+snippet ifil\n\
+ <?php if (${1:/* condition */}): ?>\n\
+ ${2:<!-- code... -->}\n\
+ <?php endif; ?>\n\
+snippet ife\n\
+ if (${1:/* condition */}) {\n\
+ ${2:// code...}\n\
+ } else {\n\
+ ${3:// code...}\n\
+ }\n\
+ ${4}\n\
+snippet ifeil\n\
+ <?php if (${1:/* condition */}): ?>\n\
+ ${2:<!-- html... -->}\n\
+ <?php else: ?>\n\
+ ${3:<!-- html... -->}\n\
+ <?php endif; ?>\n\
+ ${4}\n\
+snippet else\n\
+ else {\n\
+ ${1:// code...}\n\
+ }\n\
+snippet elseif\n\
+ elseif (${1:/* condition */}) {\n\
+ ${2:// code...}\n\
+ }\n\
+snippet switch\n\
+ switch ($${1:variable}) {\n\
+ case '${2:value}':\n\
+ ${3:// code...}\n\
+ break;\n\
+ ${5}\n\
+ default:\n\
+ ${4:// code...}\n\
+ break;\n\
+ }\n\
+snippet case\n\
+ case '${1:value}':\n\
+ ${2:// code...}\n\
+ break;${3}\n\
+snippet for\n\
+ for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\
+ ${4: // code...}\n\
+ }\n\
+snippet foreach\n\
+ foreach ($${1:variable} as $${2:value}) {\n\
+ ${3:// code...}\n\
+ }\n\
+snippet foreachil\n\
+ <?php foreach ($${1:variable} as $${2:value}): ?>\n\
+ ${3:<!-- html... -->}\n\
+ <?php endforeach; ?>\n\
+snippet foreachk\n\
+ foreach ($${1:variable} as $${2:key} => $${3:value}) {\n\
+ ${4:// code...}\n\
+ }\n\
+snippet foreachkil\n\
+ <?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\n\
+ ${4:<!-- html... -->}\n\
+ <?php endforeach; ?>\n\
+# $... = array (...)\n\
+snippet array\n\
+ $${1:arrayName} = array('${2}' => ${3});${4}\n\
+snippet try\n\
+ try {\n\
+ ${2}\n\
+ } catch (${1:Exception} $e) {\n\
+ }\n\
+# lambda with closure\n\
+snippet lambda\n\
+ ${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\n\
+ ${4}\n\
+ };\n\
+# pre_dump();\n\
+snippet pd\n\
+ echo '<pre>'; var_dump(${1}); echo '</pre>';\n\
+# pre_dump(); die();\n\
+snippet pdd\n\
+ echo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\n\
+snippet vd\n\
+ var_dump(${1});\n\
+snippet vdd\n\
+ var_dump(${1}); die(${2:});\n\
+snippet http_redirect\n\
+ header (\"HTTP/1.1 301 Moved Permanently\"); \n\
+ header (\"Location: \".URL); \n\
+ exit();\n\
+# Getters & Setters\n\
+snippet gs\n\
+ /**\n\
+ * Gets the value of ${1:foo}\n\
+ *\n\
+ * @return ${2:$1}\n\
+ */\n\
+ public function get${3:$2}()\n\
+ {\n\
+ return $this->${4:$1};\n\
+ }\n\
+\n\
+ /**\n\
+ * Sets the value of $1\n\
+ *\n\
+ * @param $2 $$1 ${5:description}\n\
+ *\n\
+ * @return ${6:$FILENAME}\n\
+ */\n\
+ public function set$3(${7:$2 }$$1)\n\
+ {\n\
+ $this->$4 = $$1;\n\
+ return $this;\n\
+ }${8}\n\
+# anotation, get, and set, useful for doctrine\n\
+snippet ags\n\
+ /**\n\
+ * ${1:description}\n\
+ * \n\
+ * @${7}\n\
+ */\n\
+ ${2:protected} $${3:foo};\n\
+\n\
+ public function get${4:$3}()\n\
+ {\n\
+ return $this->$3;\n\
+ }\n\
+\n\
+ public function set$4(${5:$4 }$${6:$3})\n\
+ {\n\
+ $this->$3 = $$6;\n\
+ return $this;\n\
+ }\n\
+snippet rett\n\
+ return true;\n\
+snippet retf\n\
+ return false;\n\
+";
+exports.scope = "php";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/pig.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pig.js
new file mode 100644
index 00000000..479a03bc
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/pig.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/pig",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "pig";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/plain_text.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/plain_text.js
new file mode 100644
index 00000000..24223a66
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/plain_text.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "plain_text";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/powershell.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/powershell.js
new file mode 100644
index 00000000..a8e7310a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/powershell.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/powershell",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "powershell";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/praat.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/praat.js
new file mode 100644
index 00000000..dcf68267
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/praat.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/praat",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "praat";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/prolog.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/prolog.js
new file mode 100644
index 00000000..2d63cb83
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/prolog.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/prolog",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "prolog";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/properties.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/properties.js
new file mode 100644
index 00000000..44c1ada7
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/properties.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/properties",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "properties";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/protobuf.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/protobuf.js
new file mode 100644
index 00000000..d00d57af
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/protobuf.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/protobuf",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "";
+exports.scope = "protobuf";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/python.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/python.js
new file mode 100644
index 00000000..182b3406
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/python.js
@@ -0,0 +1,165 @@
+ace.define("ace/snippets/python",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet #!\n\
+ #!/usr/bin/env python\n\
+snippet imp\n\
+ import ${1:module}\n\
+snippet from\n\
+ from ${1:package} import ${2:module}\n\
+# Module Docstring\n\
+snippet docs\n\
+ '''\n\
+ File: ${1:FILENAME:file_name}\n\
+ Author: ${2:author}\n\
+ Description: ${3}\n\
+ '''\n\
+snippet wh\n\
+ while ${1:condition}:\n\
+ ${2:# TODO: write code...}\n\
+# dowh - does the same as do...while in other languages\n\
+snippet dowh\n\
+ while True:\n\
+ ${1:# TODO: write code...}\n\
+ if ${2:condition}:\n\
+ break\n\
+snippet with\n\
+ with ${1:expr} as ${2:var}:\n\
+ ${3:# TODO: write code...}\n\
+# New Class\n\
+snippet cl\n\
+ class ${1:ClassName}(${2:object}):\n\
+ \"\"\"${3:docstring for $1}\"\"\"\n\
+ def __init__(self, ${4:arg}):\n\
+ ${5:super($1, self).__init__()}\n\
+ self.$4 = $4\n\
+ ${6}\n\
+# New Function\n\
+snippet def\n\
+ def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\
+ \"\"\"${3:docstring for $1}\"\"\"\n\
+ ${4:# TODO: write code...}\n\
+snippet deff\n\
+ def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\
+ ${3:# TODO: write code...}\n\
+# New Method\n\
+snippet defs\n\
+ def ${1:mname}(self, ${2:arg}):\n\
+ ${3:# TODO: write code...}\n\
+# New Property\n\
+snippet property\n\
+ def ${1:foo}():\n\
+ doc = \"${2:The $1 property.}\"\n\
+ def fget(self):\n\
+ ${3:return self._$1}\n\
+ def fset(self, value):\n\
+ ${4:self._$1 = value}\n\
+# Ifs\n\
+snippet if\n\
+ if ${1:condition}:\n\
+ ${2:# TODO: write code...}\n\
+snippet el\n\
+ else:\n\
+ ${1:# TODO: write code...}\n\
+snippet ei\n\
+ elif ${1:condition}:\n\
+ ${2:# TODO: write code...}\n\
+# For\n\
+snippet for\n\
+ for ${1:item} in ${2:items}:\n\
+ ${3:# TODO: write code...}\n\
+# Encodes\n\
+snippet cutf8\n\
+ # -*- coding: utf-8 -*-\n\
+snippet clatin1\n\
+ # -*- coding: latin-1 -*-\n\
+snippet cascii\n\
+ # -*- coding: ascii -*-\n\
+# Lambda\n\
+snippet ld\n\
+ ${1:var} = lambda ${2:vars} : ${3:action}\n\
+snippet .\n\
+ self.\n\
+snippet try Try/Except\n\
+ try:\n\
+ ${1:# TODO: write code...}\n\
+ except ${2:Exception}, ${3:e}:\n\
+ ${4:raise $3}\n\
+snippet try Try/Except/Else\n\
+ try:\n\
+ ${1:# TODO: write code...}\n\
+ except ${2:Exception}, ${3:e}:\n\
+ ${4:raise $3}\n\
+ else:\n\
+ ${5:# TODO: write code...}\n\
+snippet try Try/Except/Finally\n\
+ try:\n\
+ ${1:# TODO: write code...}\n\
+ except ${2:Exception}, ${3:e}:\n\
+ ${4:raise $3}\n\
+ finally:\n\
+ ${5:# TODO: write code...}\n\
+snippet try Try/Except/Else/Finally\n\
+ try:\n\
+ ${1:# TODO: write code...}\n\
+ except ${2:Exception}, ${3:e}:\n\
+ ${4:raise $3}\n\
+ else:\n\
+ ${5:# TODO: write code...}\n\
+ finally:\n\
+ ${6:# TODO: write code...}\n\
+# if __name__ == '__main__':\n\
+snippet ifmain\n\
+ if __name__ == '__main__':\n\
+ ${1:main()}\n\
+# __magic__\n\
+snippet _\n\
+ __${1:init}__${2}\n\
+# python debugger (pdb)\n\
+snippet pdb\n\
+ import pdb; pdb.set_trace()\n\
+# ipython debugger (ipdb)\n\
+snippet ipdb\n\
+ import ipdb; ipdb.set_trace()\n\
+# ipython debugger (pdbbb)\n\
+snippet pdbbb\n\
+ import pdbpp; pdbpp.set_trace()\n\
+snippet pprint\n\
+ import pprint; pprint.pprint(${1})${2}\n\
+snippet \"\n\
+ \"\"\"\n\
+ ${1:doc}\n\
+ \"\"\"\n\
+# test function/method\n\
+snippet test\n\
+ def test_${1:description}(${2:self}):\n\
+ ${3:# TODO: write code...}\n\
+# test case\n\
+snippet testcase\n\
+ class ${1:ExampleCase}(unittest.TestCase):\n\
+ \n\
+ def test_${2:description}(self):\n\
+ ${3:# TODO: write code...}\n\
+snippet fut\n\
+ from __future__ import ${1}\n\
+#getopt\n\
+snippet getopt\n\
+ try:\n\
+ # Short option syntax: \"hv:\"\n\
+ # Long option syntax: \"help\" or \"verbose=\"\n\
+ opts, args = getopt.getopt(sys.argv[1:], \"${1:short_options}\", [${2:long_options}])\n\
+ \n\
+ except getopt.GetoptError, err:\n\
+ # Print debug info\n\
+ print str(err)\n\
+ ${3:error_action}\n\
+\n\
+ for option, argument in opts:\n\
+ if option in (\"-h\", \"--help\"):\n\
+ ${4}\n\
+ elif option in (\"-v\", \"--verbose\"):\n\
+ verbose = argument\n\
+";
+exports.scope = "python";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/r.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/r.js
new file mode 100644
index 00000000..24c02a0c
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/r.js
@@ -0,0 +1,128 @@
+ace.define("ace/snippets/r",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet #!\n\
+ #!/usr/bin/env Rscript\n\
+\n\
+# includes\n\
+snippet lib\n\
+ library(${1:package})\n\
+snippet req\n\
+ require(${1:package})\n\
+snippet source\n\
+ source('${1:file}')\n\
+\n\
+# conditionals\n\
+snippet if\n\
+ if (${1:condition}) {\n\
+ ${2:code}\n\
+ }\n\
+snippet el\n\
+ else {\n\
+ ${1:code}\n\
+ }\n\
+snippet ei\n\
+ else if (${1:condition}) {\n\
+ ${2:code}\n\
+ }\n\
+\n\
+# functions\n\
+snippet fun\n\
+ ${1:name} = function (${2:variables}) {\n\
+ ${3:code}\n\
+ }\n\
+snippet ret\n\
+ return(${1:code})\n\
+\n\
+# dataframes, lists, etc\n\
+snippet df\n\
+ ${1:name}[${2:rows}, ${3:cols}]\n\
+snippet c\n\
+ c(${1:items})\n\
+snippet li\n\
+ list(${1:items})\n\
+snippet mat\n\
+ matrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\n\
+\n\
+# apply functions\n\
+snippet apply\n\
+ apply(${1:array}, ${2:margin}, ${3:function})\n\
+snippet lapply\n\
+ lapply(${1:list}, ${2:function})\n\
+snippet sapply\n\
+ sapply(${1:list}, ${2:function})\n\
+snippet vapply\n\
+ vapply(${1:list}, ${2:function}, ${3:type})\n\
+snippet mapply\n\
+ mapply(${1:function}, ${2:...})\n\
+snippet tapply\n\
+ tapply(${1:vector}, ${2:index}, ${3:function})\n\
+snippet rapply\n\
+ rapply(${1:list}, ${2:function})\n\
+\n\
+# plyr functions\n\
+snippet dd\n\
+ ddply(${1:frame}, ${2:variables}, ${3:function})\n\
+snippet dl\n\
+ dlply(${1:frame}, ${2:variables}, ${3:function})\n\
+snippet da\n\
+ daply(${1:frame}, ${2:variables}, ${3:function})\n\
+snippet d_\n\
+ d_ply(${1:frame}, ${2:variables}, ${3:function})\n\
+\n\
+snippet ad\n\
+ adply(${1:array}, ${2:margin}, ${3:function})\n\
+snippet al\n\
+ alply(${1:array}, ${2:margin}, ${3:function})\n\
+snippet aa\n\
+ aaply(${1:array}, ${2:margin}, ${3:function})\n\
+snippet a_\n\
+ a_ply(${1:array}, ${2:margin}, ${3:function})\n\
+\n\
+snippet ld\n\
+ ldply(${1:list}, ${2:function})\n\
+snippet ll\n\
+ llply(${1:list}, ${2:function})\n\
+snippet la\n\
+ laply(${1:list}, ${2:function})\n\
+snippet l_\n\
+ l_ply(${1:list}, ${2:function})\n\
+\n\
+snippet md\n\
+ mdply(${1:matrix}, ${2:function})\n\
+snippet ml\n\
+ mlply(${1:matrix}, ${2:function})\n\
+snippet ma\n\
+ maply(${1:matrix}, ${2:function})\n\
+snippet m_\n\
+ m_ply(${1:matrix}, ${2:function})\n\
+\n\
+# plot functions\n\
+snippet pl\n\
+ plot(${1:x}, ${2:y})\n\
+snippet ggp\n\
+ ggplot(${1:data}, aes(${2:aesthetics}))\n\
+snippet img\n\
+ ${1:(jpeg,bmp,png,tiff)}(filename=\"${2:filename}\", width=${3}, height=${4}, unit=\"${5}\")\n\
+ ${6:plot}\n\
+ dev.off()\n\
+\n\
+# statistical test functions\n\
+snippet fis\n\
+ fisher.test(${1:x}, ${2:y})\n\
+snippet chi\n\
+ chisq.test(${1:x}, ${2:y})\n\
+snippet tt\n\
+ t.test(${1:x}, ${2:y})\n\
+snippet wil\n\
+ wilcox.test(${1:x}, ${2:y})\n\
+snippet cor\n\
+ cor.test(${1:x}, ${2:y})\n\
+snippet fte\n\
+ var.test(${1:x}, ${2:y})\n\
+snippet kvt \n\
+ kv.test(${1:x}, ${2:y})\n\
+";
+exports.scope = "r";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/razor.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/razor.js
new file mode 100644
index 00000000..78fdf8c3
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/razor.js
@@ -0,0 +1,10 @@
+ace.define("ace/snippets/razor",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet if\n\
+(${1} == ${2}) {\n\
+ ${3}\n\
+}";
+exports.scope = "razor";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/rdoc.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rdoc.js
new file mode 100644
index 00000000..956de47a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rdoc.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/rdoc",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "rdoc";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/rhtml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rhtml.js
new file mode 100644
index 00000000..e62ce87f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rhtml.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/rhtml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "rhtml";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/rst.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rst.js
new file mode 100644
index 00000000..db6c960f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rst.js
@@ -0,0 +1,29 @@
+ace.define("ace/snippets/rst",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# rst\n\
+\n\
+snippet :\n\
+ :${1:field name}: ${2:field body}\n\
+snippet *\n\
+ *${1:Emphasis}*\n\
+snippet **\n\
+ **${1:Strong emphasis}**\n\
+snippet _\n\
+ \\`${1:hyperlink-name}\\`_\n\
+ .. _\\`$1\\`: ${2:link-block}\n\
+snippet =\n\
+ ${1:Title}\n\
+ =====${2:=}\n\
+ ${3}\n\
+snippet -\n\
+ ${1:Title}\n\
+ -----${2:-}\n\
+ ${3}\n\
+snippet cont:\n\
+ .. contents::\n\
+ \n\
+";
+exports.scope = "rst";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/ruby.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ruby.js
new file mode 100644
index 00000000..18bc409f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/ruby.js
@@ -0,0 +1,935 @@
+ace.define("ace/snippets/ruby",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "########################################\n\
+# Ruby snippets - for Rails, see below #\n\
+########################################\n\
+\n\
+# encoding for Ruby 1.9\n\
+snippet enc\n\
+ # encoding: utf-8\n\
+\n\
+# #!/usr/bin/env ruby\n\
+snippet #!\n\
+ #!/usr/bin/env ruby\n\
+ # encoding: utf-8\n\
+\n\
+# New Block\n\
+snippet =b\n\
+ =begin rdoc\n\
+ ${1}\n\
+ =end\n\
+snippet y\n\
+ :yields: ${1:arguments}\n\
+snippet rb\n\
+ #!/usr/bin/env ruby -wKU\n\
+snippet beg\n\
+ begin\n\
+ ${3}\n\
+ rescue ${1:Exception} => ${2:e}\n\
+ end\n\
+\n\
+snippet req require\n\
+ require \"${1}\"${2}\n\
+snippet #\n\
+ # =>\n\
+snippet end\n\
+ __END__\n\
+snippet case\n\
+ case ${1:object}\n\
+ when ${2:condition}\n\
+ ${3}\n\
+ end\n\
+snippet when\n\
+ when ${1:condition}\n\
+ ${2}\n\
+snippet def\n\
+ def ${1:method_name}\n\
+ ${2}\n\
+ end\n\
+snippet deft\n\
+ def test_${1:case_name}\n\
+ ${2}\n\
+ end\n\
+snippet if\n\
+ if ${1:condition}\n\
+ ${2}\n\
+ end\n\
+snippet ife\n\
+ if ${1:condition}\n\
+ ${2}\n\
+ else\n\
+ ${3}\n\
+ end\n\
+snippet elsif\n\
+ elsif ${1:condition}\n\
+ ${2}\n\
+snippet unless\n\
+ unless ${1:condition}\n\
+ ${2}\n\
+ end\n\
+snippet while\n\
+ while ${1:condition}\n\
+ ${2}\n\
+ end\n\
+snippet for\n\
+ for ${1:e} in ${2:c}\n\
+ ${3}\n\
+ end\n\
+snippet until\n\
+ until ${1:condition}\n\
+ ${2}\n\
+ end\n\
+snippet cla class .. end\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ ${2}\n\
+ end\n\
+snippet cla class .. initialize .. end\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ def initialize(${2:args})\n\
+ ${3}\n\
+ end\n\
+ end\n\
+snippet cla class .. < ParentClass .. initialize .. end\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < ${2:ParentClass}\n\
+ def initialize(${3:args})\n\
+ ${4}\n\
+ end\n\
+ end\n\
+snippet cla ClassName = Struct .. do .. end\n\
+ ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} = Struct.new(:${2:attr_names}) do\n\
+ def ${3:method_name}\n\
+ ${4}\n\
+ end\n\
+ end\n\
+snippet cla class BlankSlate .. initialize .. end\n\
+ class ${1:BlankSlate}\n\
+ instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n\
+ end\n\
+snippet cla class << self .. end\n\
+ class << ${1:self}\n\
+ ${2}\n\
+ end\n\
+# class .. < DelegateClass .. initialize .. end\n\
+snippet cla-\n\
+ class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < DelegateClass(${2:ParentClass})\n\
+ def initialize(${3:args})\n\
+ super(${4:del_obj})\n\
+\n\
+ ${5}\n\
+ end\n\
+ end\n\
+snippet mod module .. end\n\
+ module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ ${2}\n\
+ end\n\
+snippet mod module .. module_function .. end\n\
+ module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ module_function\n\
+\n\
+ ${2}\n\
+ end\n\
+snippet mod module .. ClassMethods .. end\n\
+ module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\
+ module ClassMethods\n\
+ ${2}\n\
+ end\n\
+\n\
+ module InstanceMethods\n\
+\n\
+ end\n\
+\n\
+ def self.included(receiver)\n\
+ receiver.extend ClassMethods\n\
+ receiver.send :include, InstanceMethods\n\
+ end\n\
+ end\n\
+# attr_reader\n\
+snippet r\n\
+ attr_reader :${1:attr_names}\n\
+# attr_writer\n\
+snippet w\n\
+ attr_writer :${1:attr_names}\n\
+# attr_accessor\n\
+snippet rw\n\
+ attr_accessor :${1:attr_names}\n\
+snippet atp\n\
+ attr_protected :${1:attr_names}\n\
+snippet ata\n\
+ attr_accessible :${1:attr_names}\n\
+# include Enumerable\n\
+snippet Enum\n\
+ include Enumerable\n\
+\n\
+ def each(&block)\n\
+ ${1}\n\
+ end\n\
+# include Comparable\n\
+snippet Comp\n\
+ include Comparable\n\
+\n\
+ def <=>(other)\n\
+ ${1}\n\
+ end\n\
+# extend Forwardable\n\
+snippet Forw-\n\
+ extend Forwardable\n\
+# def self\n\
+snippet defs\n\
+ def self.${1:class_method_name}\n\
+ ${2}\n\
+ end\n\
+# def method_missing\n\
+snippet defmm\n\
+ def method_missing(meth, *args, &blk)\n\
+ ${1}\n\
+ end\n\
+snippet defd\n\
+ def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\n\
+snippet defds\n\
+ def_delegators :${1:@del_obj}, :${2:del_methods}\n\
+snippet am\n\
+ alias_method :${1:new_name}, :${2:old_name}\n\
+snippet app\n\
+ if __FILE__ == $PROGRAM_NAME\n\
+ ${1}\n\
+ end\n\
+# usage_if()\n\
+snippet usai\n\
+ if ARGV.${1}\n\
+ abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\
+ end\n\
+# usage_unless()\n\
+snippet usau\n\
+ unless ARGV.${1}\n\
+ abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\
+ end\n\
+snippet array\n\
+ Array.new(${1:10}) { |${2:i}| ${3} }\n\
+snippet hash\n\
+ Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\n\
+snippet file File.foreach() { |line| .. }\n\
+ File.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\n\
+snippet file File.read()\n\
+ File.read(${1:\"path/to/file\"})${2}\n\
+snippet Dir Dir.global() { |file| .. }\n\
+ Dir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\n\
+snippet Dir Dir[\"..\"]\n\
+ Dir[${1:\"glob/**/*.rb\"}]${2}\n\
+snippet dir\n\
+ Filename.dirname(__FILE__)\n\
+snippet deli\n\
+ delete_if { |${1:e}| ${2} }\n\
+snippet fil\n\
+ fill(${1:range}) { |${2:i}| ${3} }\n\
+# flatten_once()\n\
+snippet flao\n\
+ inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\n\
+snippet zip\n\
+ zip(${1:enums}) { |${2:row}| ${3} }\n\
+# downto(0) { |n| .. }\n\
+snippet dow\n\
+ downto(${1:0}) { |${2:n}| ${3} }\n\
+snippet ste\n\
+ step(${1:2}) { |${2:n}| ${3} }\n\
+snippet tim\n\
+ times { |${1:n}| ${2} }\n\
+snippet upt\n\
+ upto(${1:1.0/0.0}) { |${2:n}| ${3} }\n\
+snippet loo\n\
+ loop { ${1} }\n\
+snippet ea\n\
+ each { |${1:e}| ${2} }\n\
+snippet ead\n\
+ each do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet eab\n\
+ each_byte { |${1:byte}| ${2} }\n\
+snippet eac- each_char { |chr| .. }\n\
+ each_char { |${1:chr}| ${2} }\n\
+snippet eac- each_cons(..) { |group| .. }\n\
+ each_cons(${1:2}) { |${2:group}| ${3} }\n\
+snippet eai\n\
+ each_index { |${1:i}| ${2} }\n\
+snippet eaid\n\
+ each_index do |${1:i}|\n\
+ ${2}\n\
+ end\n\
+snippet eak\n\
+ each_key { |${1:key}| ${2} }\n\
+snippet eakd\n\
+ each_key do |${1:key}|\n\
+ ${2}\n\
+ end\n\
+snippet eal\n\
+ each_line { |${1:line}| ${2} }\n\
+snippet eald\n\
+ each_line do |${1:line}|\n\
+ ${2}\n\
+ end\n\
+snippet eap\n\
+ each_pair { |${1:name}, ${2:val}| ${3} }\n\
+snippet eapd\n\
+ each_pair do |${1:name}, ${2:val}|\n\
+ ${3}\n\
+ end\n\
+snippet eas-\n\
+ each_slice(${1:2}) { |${2:group}| ${3} }\n\
+snippet easd-\n\
+ each_slice(${1:2}) do |${2:group}|\n\
+ ${3}\n\
+ end\n\
+snippet eav\n\
+ each_value { |${1:val}| ${2} }\n\
+snippet eavd\n\
+ each_value do |${1:val}|\n\
+ ${2}\n\
+ end\n\
+snippet eawi\n\
+ each_with_index { |${1:e}, ${2:i}| ${3} }\n\
+snippet eawid\n\
+ each_with_index do |${1:e},${2:i}|\n\
+ ${3}\n\
+ end\n\
+snippet reve\n\
+ reverse_each { |${1:e}| ${2} }\n\
+snippet reved\n\
+ reverse_each do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet inj\n\
+ inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\n\
+snippet injd\n\
+ inject(${1:init}) do |${2:mem}, ${3:var}|\n\
+ ${4}\n\
+ end\n\
+snippet map\n\
+ map { |${1:e}| ${2} }\n\
+snippet mapd\n\
+ map do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet mapwi-\n\
+ enum_with_index.map { |${1:e}, ${2:i}| ${3} }\n\
+snippet sor\n\
+ sort { |a, b| ${1} }\n\
+snippet sorb\n\
+ sort_by { |${1:e}| ${2} }\n\
+snippet ran\n\
+ sort_by { rand }\n\
+snippet all\n\
+ all? { |${1:e}| ${2} }\n\
+snippet any\n\
+ any? { |${1:e}| ${2} }\n\
+snippet cl\n\
+ classify { |${1:e}| ${2} }\n\
+snippet col\n\
+ collect { |${1:e}| ${2} }\n\
+snippet cold\n\
+ collect do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet det\n\
+ detect { |${1:e}| ${2} }\n\
+snippet detd\n\
+ detect do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet fet\n\
+ fetch(${1:name}) { |${2:key}| ${3} }\n\
+snippet fin\n\
+ find { |${1:e}| ${2} }\n\
+snippet find\n\
+ find do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet fina\n\
+ find_all { |${1:e}| ${2} }\n\
+snippet finad\n\
+ find_all do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet gre\n\
+ grep(${1:/pattern/}) { |${2:match}| ${3} }\n\
+snippet sub\n\
+ ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\n\
+snippet sca\n\
+ scan(${1:/pattern/}) { |${2:match}| ${3} }\n\
+snippet scad\n\
+ scan(${1:/pattern/}) do |${2:match}|\n\
+ ${3}\n\
+ end\n\
+snippet max\n\
+ max { |a, b| ${1} }\n\
+snippet min\n\
+ min { |a, b| ${1} }\n\
+snippet par\n\
+ partition { |${1:e}| ${2} }\n\
+snippet pard\n\
+ partition do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet rej\n\
+ reject { |${1:e}| ${2} }\n\
+snippet rejd\n\
+ reject do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet sel\n\
+ select { |${1:e}| ${2} }\n\
+snippet seld\n\
+ select do |${1:e}|\n\
+ ${2}\n\
+ end\n\
+snippet lam\n\
+ lambda { |${1:args}| ${2} }\n\
+snippet doo\n\
+ do\n\
+ ${1}\n\
+ end\n\
+snippet dov\n\
+ do |${1:variable}|\n\
+ ${2}\n\
+ end\n\
+snippet :\n\
+ :${1:key} => ${2:\"value\"}${3}\n\
+snippet ope\n\
+ open(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\n\
+# path_from_here()\n\
+snippet fpath\n\
+ File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n\
+# unix_filter {}\n\
+snippet unif\n\
+ ARGF.each_line${1} do |${2:line}|\n\
+ ${3}\n\
+ end\n\
+# option_parse {}\n\
+snippet optp\n\
+ require \"optparse\"\n\
+\n\
+ options = {${1:default => \"args\"}}\n\
+\n\
+ ARGV.options do |opts|\n\
+ opts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\n\
+snippet opt\n\
+ opts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\n\
+ \"${4:Option description.}\") do |${5:opt}|\n\
+ ${6}\n\
+ end\n\
+snippet tc\n\
+ require \"test/unit\"\n\
+\n\
+ require \"${1:library_file_name}\"\n\
+\n\
+ class Test${2:$1} < Test::Unit::TestCase\n\
+ def test_${3:case_name}\n\
+ ${4}\n\
+ end\n\
+ end\n\
+snippet ts\n\
+ require \"test/unit\"\n\
+\n\
+ require \"tc_${1:test_case_file}\"\n\
+ require \"tc_${2:test_case_file}\"${3}\n\
+snippet as\n\
+ assert ${1:test}, \"${2:Failure message.}\"${3}\n\
+snippet ase\n\
+ assert_equal ${1:expected}, ${2:actual}${3}\n\
+snippet asne\n\
+ assert_not_equal ${1:unexpected}, ${2:actual}${3}\n\
+snippet asid\n\
+ assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\n\
+snippet asio\n\
+ assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\n\
+snippet asko\n\
+ assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\n\
+snippet asn\n\
+ assert_nil ${1:instance}${2}\n\
+snippet asnn\n\
+ assert_not_nil ${1:instance}${2}\n\
+snippet asm\n\
+ assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\n\
+snippet asnm\n\
+ assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\n\
+snippet aso\n\
+ assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\n\
+snippet asr\n\
+ assert_raise ${1:Exception} { ${2} }\n\
+snippet asrd\n\
+ assert_raise ${1:Exception} do\n\
+ ${2}\n\
+ end\n\
+snippet asnr\n\
+ assert_nothing_raised ${1:Exception} { ${2} }\n\
+snippet asnrd\n\
+ assert_nothing_raised ${1:Exception} do\n\
+ ${2}\n\
+ end\n\
+snippet asrt\n\
+ assert_respond_to ${1:object}, :${2:method}${3}\n\
+snippet ass assert_same(..)\n\
+ assert_same ${1:expected}, ${2:actual}${3}\n\
+snippet ass assert_send(..)\n\
+ assert_send [${1:object}, :${2:message}, ${3:args}]${4}\n\
+snippet asns\n\
+ assert_not_same ${1:unexpected}, ${2:actual}${3}\n\
+snippet ast\n\
+ assert_throws :${1:expected} { ${2} }\n\
+snippet astd\n\
+ assert_throws :${1:expected} do\n\
+ ${2}\n\
+ end\n\
+snippet asnt\n\
+ assert_nothing_thrown { ${1} }\n\
+snippet asntd\n\
+ assert_nothing_thrown do\n\
+ ${1}\n\
+ end\n\
+snippet fl\n\
+ flunk \"${1:Failure message.}\"${2}\n\
+# Benchmark.bmbm do .. end\n\
+snippet bm-\n\
+ TESTS = ${1:10_000}\n\
+ Benchmark.bmbm do |results|\n\
+ ${2}\n\
+ end\n\
+snippet rep\n\
+ results.report(\"${1:name}:\") { TESTS.times { ${2} }}\n\
+# Marshal.dump(.., file)\n\
+snippet Md\n\
+ File.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n\
+# Mashal.load(obj)\n\
+snippet Ml\n\
+ File.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\n\
+# deep_copy(..)\n\
+snippet deec\n\
+ Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\n\
+snippet Pn-\n\
+ PStore.new(${1:\"file_name.pstore\"})${2}\n\
+snippet tra\n\
+ transaction(${1:true}) { ${2} }\n\
+# xmlread(..)\n\
+snippet xml-\n\
+ REXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\n\
+# xpath(..) { .. }\n\
+snippet xpa\n\
+ elements.each(${1:\"//Xpath\"}) do |${2:node}|\n\
+ ${3}\n\
+ end\n\
+# class_from_name()\n\
+snippet clafn\n\
+ split(\"::\").inject(Object) { |par, const| par.const_get(const) }\n\
+# singleton_class()\n\
+snippet sinc\n\
+ class << self; self end\n\
+snippet nam\n\
+ namespace :${1:`Filename()`} do\n\
+ ${2}\n\
+ end\n\
+snippet tas\n\
+ desc \"${1:Task description}\"\n\
+ task :${2:task_name => [:dependent, :tasks]} do\n\
+ ${3}\n\
+ end\n\
+# block\n\
+snippet b\n\
+ { |${1:var}| ${2} }\n\
+snippet begin\n\
+ begin\n\
+ raise 'A test exception.'\n\
+ rescue Exception => e\n\
+ puts e.message\n\
+ puts e.backtrace.inspect\n\
+ else\n\
+ # other exception\n\
+ ensure\n\
+ # always executed\n\
+ end\n\
+\n\
+#debugging\n\
+snippet debug\n\
+ require 'ruby-debug'; debugger; true;\n\
+snippet pry\n\
+ require 'pry'; binding.pry\n\
+\n\
+#############################################\n\
+# Rails snippets - for pure Ruby, see above #\n\
+#############################################\n\
+snippet art\n\
+ assert_redirected_to ${1::action => \"${2:index}\"}\n\
+snippet artnp\n\
+ assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\n\
+snippet artnpp\n\
+ assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\n\
+snippet artp\n\
+ assert_redirected_to ${1:model}_path(${2:@$1})\n\
+snippet artpp\n\
+ assert_redirected_to ${1:model}s_path\n\
+snippet asd\n\
+ assert_difference \"${1:Model}.${2:count}\", $1 do\n\
+ ${3}\n\
+ end\n\
+snippet asnd\n\
+ assert_no_difference \"${1:Model}.${2:count}\" do\n\
+ ${3}\n\
+ end\n\
+snippet asre\n\
+ assert_response :${1:success}, @response.body${2}\n\
+snippet asrj\n\
+ assert_rjs :${1:replace}, \"${2:dom id}\"\n\
+snippet ass assert_select(..)\n\
+ assert_select '${1:path}', :${2:text} => '${3:inner_html' ${4:do}\n\
+snippet bf\n\
+ before_filter :${1:method}\n\
+snippet bt\n\
+ belongs_to :${1:association}\n\
+snippet crw\n\
+ cattr_accessor :${1:attr_names}\n\
+snippet defcreate\n\
+ def create\n\
+ @${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\n\
+\n\
+ respond_to do |wants|\n\
+ if @$1.save\n\
+ flash[:notice] = '$2 was successfully created.'\n\
+ wants.html { redirect_to(@$1) }\n\
+ wants.xml { render :xml => @$1, :status => :created, :location => @$1 }\n\
+ else\n\
+ wants.html { render :action => \"new\" }\n\
+ wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\
+ end\n\
+ end\n\
+ end${3}\n\
+snippet defdestroy\n\
+ def destroy\n\
+ @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
+ @$1.destroy\n\
+\n\
+ respond_to do |wants|\n\
+ wants.html { redirect_to($1s_url) }\n\
+ wants.xml { head :ok }\n\
+ end\n\
+ end${3}\n\
+snippet defedit\n\
+ def edit\n\
+ @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
+ end\n\
+snippet defindex\n\
+ def index\n\
+ @${1:model_class_name} = ${2:ModelClassName}.all\n\
+\n\
+ respond_to do |wants|\n\
+ wants.html # index.html.erb\n\
+ wants.xml { render :xml => @$1s }\n\
+ end\n\
+ end${3}\n\
+snippet defnew\n\
+ def new\n\
+ @${1:model_class_name} = ${2:ModelClassName}.new\n\
+\n\
+ respond_to do |wants|\n\
+ wants.html # new.html.erb\n\
+ wants.xml { render :xml => @$1 }\n\
+ end\n\
+ end${3}\n\
+snippet defshow\n\
+ def show\n\
+ @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
+\n\
+ respond_to do |wants|\n\
+ wants.html # show.html.erb\n\
+ wants.xml { render :xml => @$1 }\n\
+ end\n\
+ end${3}\n\
+snippet defupdate\n\
+ def update\n\
+ @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\
+\n\
+ respond_to do |wants|\n\
+ if @$1.update_attributes(params[:$1])\n\
+ flash[:notice] = '$2 was successfully updated.'\n\
+ wants.html { redirect_to(@$1) }\n\
+ wants.xml { head :ok }\n\
+ else\n\
+ wants.html { render :action => \"edit\" }\n\
+ wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\
+ end\n\
+ end\n\
+ end${3}\n\
+snippet flash\n\
+ flash[:${1:notice}] = \"${2}\"\n\
+snippet habtm\n\
+ has_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\n\
+snippet hm\n\
+ has_many :${1:object}\n\
+snippet hmd\n\
+ has_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\n\
+snippet hmt\n\
+ has_many :${1:object}, :through => :${2:object}\n\
+snippet ho\n\
+ has_one :${1:object}\n\
+snippet i18\n\
+ I18n.t('${1:type.key}')${2}\n\
+snippet ist\n\
+ <%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\n\
+snippet log\n\
+ Rails.logger.${1:debug} ${2}\n\
+snippet log2\n\
+ RAILS_DEFAULT_LOGGER.${1:debug} ${2}\n\
+snippet logd\n\
+ logger.debug { \"${1:message}\" }${2}\n\
+snippet loge\n\
+ logger.error { \"${1:message}\" }${2}\n\
+snippet logf\n\
+ logger.fatal { \"${1:message}\" }${2}\n\
+snippet logi\n\
+ logger.info { \"${1:message}\" }${2}\n\
+snippet logw\n\
+ logger.warn { \"${1:message}\" }${2}\n\
+snippet mapc\n\
+ ${1:map}.${2:connect} '${3:controller/:action/:id}'\n\
+snippet mapca\n\
+ ${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\n\
+snippet mapr\n\
+ ${1:map}.resource :${2:resource}\n\
+snippet maprs\n\
+ ${1:map}.resources :${2:resource}\n\
+snippet mapwo\n\
+ ${1:map}.with_options :${2:controller} => '${3:thing}' do |$3|\n\
+ ${4}\n\
+ end\n\
+snippet mbs\n\
+ before_save :${1:method}\n\
+snippet mcht\n\
+ change_table :${1:table_name} do |t|\n\
+ ${2}\n\
+ end\n\
+snippet mp\n\
+ map(&:${1:id})\n\
+snippet mrw\n\
+ mattr_accessor :${1:attr_names}\n\
+snippet oa\n\
+ order(\"${1:field}\")\n\
+snippet od\n\
+ order(\"${1:field} DESC\")\n\
+snippet pa\n\
+ params[:${1:id}]${2}\n\
+snippet ra\n\
+ render :action => \"${1:action}\"\n\
+snippet ral\n\
+ render :action => \"${1:action}\", :layout => \"${2:layoutname}\"\n\
+snippet rest\n\
+ respond_to do |wants|\n\
+ wants.${1:html} { ${2} }\n\
+ end\n\
+snippet rf\n\
+ render :file => \"${1:filepath}\"\n\
+snippet rfu\n\
+ render :file => \"${1:filepath}\", :use_full_path => ${2:false}\n\
+snippet ri\n\
+ render :inline => \"${1:<%= 'hello' %>}\"\n\
+snippet ril\n\
+ render :inline => \"${1:<%= 'hello' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\n\
+snippet rit\n\
+ render :inline => \"${1:<%= 'hello' %>}\", :type => ${2::rxml}\n\
+snippet rjson\n\
+ render :json => ${1:text to render}\n\
+snippet rl\n\
+ render :layout => \"${1:layoutname}\"\n\
+snippet rn\n\
+ render :nothing => ${1:true}\n\
+snippet rns\n\
+ render :nothing => ${1:true}, :status => ${2:401}\n\
+snippet rp\n\
+ render :partial => \"${1:item}\"\n\
+snippet rpc\n\
+ render :partial => \"${1:item}\", :collection => ${2:@$1s}\n\
+snippet rpl\n\
+ render :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\n\
+snippet rpo\n\
+ render :partial => \"${1:item}\", :object => ${2:@$1}\n\
+snippet rps\n\
+ render :partial => \"${1:item}\", :status => ${2:500}\n\
+snippet rt\n\
+ render :text => \"${1:text to render}\"\n\
+snippet rtl\n\
+ render :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\n\
+snippet rtlt\n\
+ render :text => \"${1:text to render}\", :layout => ${2:true}\n\
+snippet rts\n\
+ render :text => \"${1:text to render}\", :status => ${2:401}\n\
+snippet ru\n\
+ render :update do |${1:page}|\n\
+ $1.${2}\n\
+ end\n\
+snippet rxml\n\
+ render :xml => ${1:text to render}\n\
+snippet sc\n\
+ scope :${1:name}, :where(:@${2:field} => ${3:value})\n\
+snippet sl\n\
+ scope :${1:name}, lambda do |${2:value}|\n\
+ where(\"${3:field = ?}\", ${4:bind var})\n\
+ end\n\
+snippet sha1\n\
+ Digest::SHA1.hexdigest(${1:string})\n\
+snippet sweeper\n\
+ class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\n\
+ observe $1\n\
+\n\
+ def after_save(${2:model_class_name})\n\
+ expire_cache($2)\n\
+ end\n\
+\n\
+ def after_destroy($2)\n\
+ expire_cache($2)\n\
+ end\n\
+\n\
+ def expire_cache($2)\n\
+ expire_page\n\
+ end\n\
+ end\n\
+snippet tcb\n\
+ t.boolean :${1:title}\n\
+ ${2}\n\
+snippet tcbi\n\
+ t.binary :${1:title}, :limit => ${2:2}.megabytes\n\
+ ${3}\n\
+snippet tcd\n\
+ t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n\
+ ${4}\n\
+snippet tcda\n\
+ t.date :${1:title}\n\
+ ${2}\n\
+snippet tcdt\n\
+ t.datetime :${1:title}\n\
+ ${2}\n\
+snippet tcf\n\
+ t.float :${1:title}\n\
+ ${2}\n\
+snippet tch\n\
+ t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n\
+ ${5}\n\
+snippet tci\n\
+ t.integer :${1:title}\n\
+ ${2}\n\
+snippet tcl\n\
+ t.integer :lock_version, :null => false, :default => 0\n\
+ ${1}\n\
+snippet tcr\n\
+ t.references :${1:taggable}, :polymorphic => { :default => '${2:Photo}' }\n\
+ ${3}\n\
+snippet tcs\n\
+ t.string :${1:title}\n\
+ ${2}\n\
+snippet tct\n\
+ t.text :${1:title}\n\
+ ${2}\n\
+snippet tcti\n\
+ t.time :${1:title}\n\
+ ${2}\n\
+snippet tcts\n\
+ t.timestamp :${1:title}\n\
+ ${2}\n\
+snippet tctss\n\
+ t.timestamps\n\
+ ${1}\n\
+snippet va\n\
+ validates_associated :${1:attribute}\n\
+snippet vao\n\
+ validates_acceptance_of :${1:terms}\n\
+snippet vc\n\
+ validates_confirmation_of :${1:attribute}\n\
+snippet ve\n\
+ validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\n\
+snippet vf\n\
+ validates_format_of :${1:attribute}, :with => /${2:regex}/\n\
+snippet vi\n\
+ validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\n\
+snippet vl\n\
+ validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\n\
+snippet vn\n\
+ validates_numericality_of :${1:attribute}\n\
+snippet vpo\n\
+ validates_presence_of :${1:attribute}\n\
+snippet vu\n\
+ validates_uniqueness_of :${1:attribute}\n\
+snippet wants\n\
+ wants.${1:js|xml|html} { ${2} }\n\
+snippet wc\n\
+ where(${1:\"conditions\"}${2:, bind_var})\n\
+snippet wh\n\
+ where(${1:field} => ${2:value})\n\
+snippet xdelete\n\
+ xhr :delete, :${1:destroy}, :id => ${2:1}${3}\n\
+snippet xget\n\
+ xhr :get, :${1:show}, :id => ${2:1}${3}\n\
+snippet xpost\n\
+ xhr :post, :${1:create}, :${2:object} => { ${3} }\n\
+snippet xput\n\
+ xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\n\
+snippet test\n\
+ test \"should ${1:do something}\" do\n\
+ ${2}\n\
+ end\n\
+#migrations\n\
+snippet mac\n\
+ add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\n\
+snippet mrc\n\
+ remove_column :${1:table_name}, :${2:column_name}\n\
+snippet mrnc\n\
+ rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\n\
+snippet mcc\n\
+ change_column :${1:table}, :${2:column}, :${3:type}\n\
+snippet mccc\n\
+ t.column :${1:title}, :${2:string}\n\
+snippet mct\n\
+ create_table :${1:table_name} do |t|\n\
+ t.column :${2:name}, :${3:type}\n\
+ end\n\
+snippet migration\n\
+ class ${1:class_name} < ActiveRecord::Migration\n\
+ def self.up\n\
+ ${2}\n\
+ end\n\
+\n\
+ def self.down\n\
+ end\n\
+ end\n\
+\n\
+snippet trc\n\
+ t.remove :${1:column}\n\
+snippet tre\n\
+ t.rename :${1:old_column_name}, :${2:new_column_name}\n\
+ ${3}\n\
+snippet tref\n\
+ t.references :${1:model}\n\
+\n\
+#rspec\n\
+snippet it\n\
+ it \"${1:spec_name}\" do\n\
+ ${2}\n\
+ end\n\
+snippet itp\n\
+ it \"${1:spec_name}\"\n\
+ ${2}\n\
+snippet desc\n\
+ describe ${1:class_name} do\n\
+ ${2}\n\
+ end\n\
+snippet cont\n\
+ context \"${1:message}\" do\n\
+ ${2}\n\
+ end\n\
+snippet bef\n\
+ before :${1:each} do\n\
+ ${2}\n\
+ end\n\
+snippet aft\n\
+ after :${1:each} do\n\
+ ${2}\n\
+ end\n\
+";
+exports.scope = "ruby";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/rust.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rust.js
new file mode 100644
index 00000000..0411c63e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/rust.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/rust",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "rust";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sass.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sass.js
new file mode 100644
index 00000000..b9adc9d8
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sass.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/sass",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "sass";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/scad.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scad.js
new file mode 100644
index 00000000..998a98ac
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scad.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/scad",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "scad";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/scala.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scala.js
new file mode 100644
index 00000000..4051d988
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scala.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/scala",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "scala";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/scheme.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scheme.js
new file mode 100644
index 00000000..202d0741
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scheme.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/scheme",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "scheme";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/scss.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scss.js
new file mode 100644
index 00000000..fbd98f74
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/scss.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/scss",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "scss";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sh.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sh.js
new file mode 100644
index 00000000..0f1f6d8e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sh.js
@@ -0,0 +1,90 @@
+ace.define("ace/snippets/sh",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\n\
+snippet #!\n\
+ #!/usr/bin/env bash\n\
+ \n\
+snippet if\n\
+ if [[ ${1:condition} ]]; then\n\
+ ${2:#statements}\n\
+ fi\n\
+snippet elif\n\
+ elif [[ ${1:condition} ]]; then\n\
+ ${2:#statements}\n\
+snippet for\n\
+ for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n\
+ ${3:#statements}\n\
+ done\n\
+snippet fori\n\
+ for ${1:needle} in ${2:haystack} ; do\n\
+ ${3:#statements}\n\
+ done\n\
+snippet wh\n\
+ while [[ ${1:condition} ]]; do\n\
+ ${2:#statements}\n\
+ done\n\
+snippet until\n\
+ until [[ ${1:condition} ]]; do\n\
+ ${2:#statements}\n\
+ done\n\
+snippet case\n\
+ case ${1:word} in\n\
+ ${2:pattern})\n\
+ ${3};;\n\
+ esac\n\
+snippet go \n\
+ while getopts '${1:o}' ${2:opts} \n\
+ do \n\
+ case $$2 in\n\
+ ${3:o0})\n\
+ ${4:#staments};;\n\
+ esac\n\
+ done\n\
+# Set SCRIPT_DIR variable to directory script is located.\n\
+snippet sdir\n\
+ SCRIPT_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\
+# getopt\n\
+snippet getopt\n\
+ __ScriptVersion=\"${1:version}\"\n\
+\n\
+ #=== FUNCTION ================================================================\n\
+ # NAME: usage\n\
+ # DESCRIPTION: Display usage information.\n\
+ #===============================================================================\n\
+ function usage ()\n\
+ {\n\
+ cat <<- EOT\n\
+\n\
+ Usage : $${0:0} [options] [--] \n\
+\n\
+ Options: \n\
+ -h|help Display this message\n\
+ -v|version Display script version\n\
+\n\
+ EOT\n\
+ } # ---------- end of function usage ----------\n\
+\n\
+ #-----------------------------------------------------------------------\n\
+ # Handle command line arguments\n\
+ #-----------------------------------------------------------------------\n\
+\n\
+ while getopts \":hv\" opt\n\
+ do\n\
+ case $opt in\n\
+\n\
+ h|help ) usage; exit 0 ;;\n\
+\n\
+ v|version ) echo \"$${0:0} -- Version $__ScriptVersion\"; exit 0 ;;\n\
+\n\
+ \\? ) echo -e \"\\n Option does not exist : $OPTARG\\n\"\n\
+ usage; exit 1 ;;\n\
+\n\
+ esac # --- end of case ---\n\
+ done\n\
+ shift $(($OPTIND-1))\n\
+\n\
+";
+exports.scope = "sh";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sjs.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sjs.js
new file mode 100644
index 00000000..cf39a34e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sjs.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/sjs",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "sjs";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/smarty.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/smarty.js
new file mode 100644
index 00000000..47319a25
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/smarty.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/smarty",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "smarty";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/snippets.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/snippets.js
new file mode 100644
index 00000000..b81605cc
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/snippets.js
@@ -0,0 +1,16 @@
+ace.define("ace/snippets/snippets",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# snippets for making snippets :)\n\
+snippet snip\n\
+ snippet ${1:trigger}\n\
+ ${2}\n\
+snippet msnip\n\
+ snippet ${1:trigger} ${2:description}\n\
+ ${3}\n\
+snippet v\n\
+ {VISUAL}\n\
+";
+exports.scope = "snippets";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/soy_template.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/soy_template.js
new file mode 100644
index 00000000..908f5fdf
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/soy_template.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/soy_template",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "soy_template";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/space.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/space.js
new file mode 100644
index 00000000..302b84e0
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/space.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/space",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "space";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sparql.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sparql.js
new file mode 100644
index 00000000..2c87bbfe
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sparql.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/sparql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sql.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sql.js
new file mode 100644
index 00000000..1822126b
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sql.js
@@ -0,0 +1,33 @@
+ace.define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet tbl\n\
+ create table ${1:table} (\n\
+ ${2:columns}\n\
+ );\n\
+snippet col\n\
+ ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\
+snippet ccol\n\
+ ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\
+snippet ncol\n\
+ ${1:name} number ${3:default 0} ${4:not null}\n\
+snippet dcol\n\
+ ${1:name} date ${3:default sysdate} ${4:not null}\n\
+snippet ind\n\
+ create index ${3:$1_$2} on ${1:table}(${2:column});\n\
+snippet uind\n\
+ create unique index ${1:name} on ${2:table}(${3:column});\n\
+snippet tblcom\n\
+ comment on table ${1:table} is '${2:comment}';\n\
+snippet colcom\n\
+ comment on column ${1:table}.${2:column} is '${3:comment}';\n\
+snippet addcol\n\
+ alter table ${1:table} add (${2:column} ${3:type});\n\
+snippet seq\n\
+ create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\
+snippet s*\n\
+ select * from ${1:table}\n\
+";
+exports.scope = "sql";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/sqlserver.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sqlserver.js
new file mode 100644
index 00000000..7dfa2d04
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/sqlserver.js
@@ -0,0 +1,76 @@
+ace.define("ace/snippets/sqlserver",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# ISNULL\n\
+snippet isnull\n\
+ ISNULL(${1:check_expression}, ${2:replacement_value})\n\
+# FORMAT\n\
+snippet format\n\
+ FORMAT(${1:value}, ${2:format})\n\
+# CAST\n\
+snippet cast\n\
+ CAST(${1:expression} AS ${2:data_type})\n\
+# CONVERT\n\
+snippet convert\n\
+ CONVERT(${1:data_type}, ${2:expression})\n\
+# DATEPART\n\
+snippet datepart\n\
+ DATEPART(${1:datepart}, ${2:date})\n\
+# DATEDIFF\n\
+snippet datediff\n\
+ DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n\
+# DATEADD\n\
+snippet dateadd\n\
+ DATEADD(${1:datepart}, ${2:number}, ${3:date})\n\
+# DATEFROMPARTS \n\
+snippet datefromparts\n\
+ DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n\
+# OBJECT_DEFINITION\n\
+snippet objectdef\n\
+ SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n\
+# STUFF XML\n\
+snippet stuffxml\n\
+ STUFF((SELECT ', ' + ${1:ColumnName}\n\
+ FROM ${2:TableName}\n\
+ WHERE ${3:WhereClause}\n\
+ FOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n\
+ ${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n\
+# Create Procedure\n\
+snippet createproc\n\
+ -- =============================================\n\
+ -- Author: ${1:Author}\n\
+ -- Create date: ${2:Date}\n\
+ -- Description: ${3:Description}\n\
+ -- =============================================\n\
+ CREATE PROCEDURE ${4:Procedure_Name}\n\
+ ${5:/*Add the parameters for the stored procedure here*/}\n\
+ AS\n\
+ BEGIN\n\
+ -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n\
+ SET NOCOUNT ON;\n\
+ \n\
+ ${6:/*Add the T-SQL statements to compute the return value here*/}\n\
+ \n\
+ END\n\
+ GO\n\
+# Create Scalar Function\n\
+snippet createfn\n\
+ -- =============================================\n\
+ -- Author: ${1:Author}\n\
+ -- Create date: ${2:Date}\n\
+ -- Description: ${3:Description}\n\
+ -- =============================================\n\
+ CREATE FUNCTION ${4:Scalar_Function_Name}\n\
+ -- Add the parameters for the function here\n\
+ RETURNS ${5:Function_Data_Type}\n\
+ AS\n\
+ BEGIN\n\
+ DECLARE @Result ${5:Function_Data_Type}\n\
+ \n\
+ ${6:/*Add the T-SQL statements to compute the return value here*/}\n\
+ \n\
+ END\n\
+ GO";
+exports.scope = "sqlserver";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/stylus.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/stylus.js
new file mode 100644
index 00000000..5f700bae
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/stylus.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/stylus",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "stylus";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/svg.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/svg.js
new file mode 100644
index 00000000..69a3408e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/svg.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/svg",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "svg";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/swift.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/swift.js
new file mode 100644
index 00000000..55226ba0
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/swift.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/swift",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "swift";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/tcl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tcl.js
new file mode 100644
index 00000000..4d116da8
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tcl.js
@@ -0,0 +1,99 @@
+ace.define("ace/snippets/tcl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# #!/usr/bin/env tclsh\n\
+snippet #!\n\
+ #!/usr/bin/env tclsh\n\
+ \n\
+# Process\n\
+snippet pro\n\
+ proc ${1:function_name} {${2:args}} {\n\
+ ${3:#body ...}\n\
+ }\n\
+#xif\n\
+snippet xif\n\
+ ${1:expr}? ${2:true} : ${3:false}\n\
+# Conditional\n\
+snippet if\n\
+ if {${1}} {\n\
+ ${2:# body...}\n\
+ }\n\
+# Conditional if..else\n\
+snippet ife\n\
+ if {${1}} {\n\
+ ${2:# body...}\n\
+ } else {\n\
+ ${3:# else...}\n\
+ }\n\
+# Conditional if..elsif..else\n\
+snippet ifee\n\
+ if {${1}} {\n\
+ ${2:# body...}\n\
+ } elseif {${3}} {\n\
+ ${4:# elsif...}\n\
+ } else {\n\
+ ${5:# else...}\n\
+ }\n\
+# If catch then\n\
+snippet ifc\n\
+ if { [catch {${1:#do something...}} ${2:err}] } {\n\
+ ${3:# handle failure...}\n\
+ }\n\
+# Catch\n\
+snippet catch\n\
+ catch {${1}} ${2:err} ${3:options}\n\
+# While Loop\n\
+snippet wh\n\
+ while {${1}} {\n\
+ ${2:# body...}\n\
+ }\n\
+# For Loop\n\
+snippet for\n\
+ for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n\
+ ${4:# body...}\n\
+ }\n\
+# Foreach Loop\n\
+snippet fore\n\
+ foreach ${1:x} {${2:#list}} {\n\
+ ${3:# body...}\n\
+ }\n\
+# after ms script...\n\
+snippet af\n\
+ after ${1:ms} ${2:#do something}\n\
+# after cancel id\n\
+snippet afc\n\
+ after cancel ${1:id or script}\n\
+# after idle\n\
+snippet afi\n\
+ after idle ${1:script}\n\
+# after info id\n\
+snippet afin\n\
+ after info ${1:id}\n\
+# Expr\n\
+snippet exp\n\
+ expr {${1:#expression here}}\n\
+# Switch\n\
+snippet sw\n\
+ switch ${1:var} {\n\
+ ${3:pattern 1} {\n\
+ ${4:#do something}\n\
+ }\n\
+ default {\n\
+ ${2:#do something}\n\
+ }\n\
+ }\n\
+# Case\n\
+snippet ca\n\
+ ${1:pattern} {\n\
+ ${2:#do something}\n\
+ }${3}\n\
+# Namespace eval\n\
+snippet ns\n\
+ namespace eval ${1:path} {${2:#script...}}\n\
+# Namespace current\n\
+snippet nsc\n\
+ namespace current\n\
+";
+exports.scope = "tcl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/tex.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tex.js
new file mode 100644
index 00000000..2bd3f103
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tex.js
@@ -0,0 +1,197 @@
+ace.define("ace/snippets/tex",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "#PREAMBLE\n\
+#newcommand\n\
+snippet nc\n\
+ \\newcommand{\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\n\
+#usepackage\n\
+snippet up\n\
+ \\usepackage[${1:[options}]{${2:package}}\n\
+#newunicodechar\n\
+snippet nuc\n\
+ \\newunicodechar{${1}}{${2:\\ensuremath}${3:tex-substitute}}}\n\
+#DeclareMathOperator\n\
+snippet dmo\n\
+ \\DeclareMathOperator{${1}}{${2}}\n\
+\n\
+#DOCUMENT\n\
+# \\begin{}...\\end{}\n\
+snippet begin\n\
+ \\begin{${1:env}}\n\
+ ${2}\n\
+ \\end{$1}\n\
+# Tabular\n\
+snippet tab\n\
+ \\begin{${1:tabular}}{${2:c}}\n\
+ ${3}\n\
+ \\end{$1}\n\
+snippet thm\n\
+ \\begin[${1:author}]{${2:thm}}\n\
+ ${3}\n\
+ \\end{$1}\n\
+snippet center\n\
+ \\begin{center}\n\
+ ${1}\n\
+ \\end{center}\n\
+# Align(ed)\n\
+snippet ali\n\
+ \\begin{align${1:ed}}\n\
+ ${2}\n\
+ \\end{align$1}\n\
+# Gather(ed)\n\
+snippet gat\n\
+ \\begin{gather${1:ed}}\n\
+ ${2}\n\
+ \\end{gather$1}\n\
+# Equation\n\
+snippet eq\n\
+ \\begin{equation}\n\
+ ${1}\n\
+ \\end{equation}\n\
+# Equation\n\
+snippet eq*\n\
+ \\begin{equation*}\n\
+ ${1}\n\
+ \\end{equation*}\n\
+# Unnumbered Equation\n\
+snippet \\\n\
+ \\[\n\
+ ${1}\n\
+ \\]\n\
+# Enumerate\n\
+snippet enum\n\
+ \\begin{enumerate}\n\
+ \\item ${1}\n\
+ \\end{enumerate}\n\
+# Itemize\n\
+snippet itemize\n\
+ \\begin{itemize}\n\
+ \\item ${1}\n\
+ \\end{itemize}\n\
+# Description\n\
+snippet desc\n\
+ \\begin{description}\n\
+ \\item[${1}] ${2}\n\
+ \\end{description}\n\
+# Matrix\n\
+snippet mat\n\
+ \\begin{${1:p/b/v/V/B/small}matrix}\n\
+ ${2}\n\
+ \\end{$1matrix}\n\
+# Cases\n\
+snippet cas\n\
+ \\begin{cases}\n\
+ ${1:equation}, &\\text{ if }${2:case}\\\\\n\
+ ${3}\n\
+ \\end{cases}\n\
+# Split\n\
+snippet spl\n\
+ \\begin{split}\n\
+ ${1}\n\
+ \\end{split}\n\
+# Part\n\
+snippet part\n\
+ \\part{${1:part name}} % (fold)\n\
+ \\label{prt:${2:$1}}\n\
+ ${3}\n\
+ % part $2 (end)\n\
+# Chapter\n\
+snippet cha\n\
+ \\chapter{${1:chapter name}}\n\
+ \\label{cha:${2:$1}}\n\
+ ${3}\n\
+# Section\n\
+snippet sec\n\
+ \\section{${1:section name}}\n\
+ \\label{sec:${2:$1}}\n\
+ ${3}\n\
+# Sub Section\n\
+snippet sub\n\
+ \\subsection{${1:subsection name}}\n\
+ \\label{sub:${2:$1}}\n\
+ ${3}\n\
+# Sub Sub Section\n\
+snippet subs\n\
+ \\subsubsection{${1:subsubsection name}}\n\
+ \\label{ssub:${2:$1}}\n\
+ ${3}\n\
+# Paragraph\n\
+snippet par\n\
+ \\paragraph{${1:paragraph name}}\n\
+ \\label{par:${2:$1}}\n\
+ ${3}\n\
+# Sub Paragraph\n\
+snippet subp\n\
+ \\subparagraph{${1:subparagraph name}}\n\
+ \\label{subp:${2:$1}}\n\
+ ${3}\n\
+#References\n\
+snippet itd\n\
+ \\item[${1:description}] ${2:item}\n\
+snippet figure\n\
+ ${1:Figure}~\\ref{${2:fig:}}${3}\n\
+snippet table\n\
+ ${1:Table}~\\ref{${2:tab:}}${3}\n\
+snippet listing\n\
+ ${1:Listing}~\\ref{${2:list}}${3}\n\
+snippet section\n\
+ ${1:Section}~\\ref{${2:sec:}}${3}\n\
+snippet page\n\
+ ${1:page}~\\pageref{${2}}${3}\n\
+snippet index\n\
+ \\index{${1:index}}${2}\n\
+#Citations\n\
+snippet cite\n\
+ \\cite[${1}]{${2}}${3}\n\
+snippet fcite\n\
+ \\footcite[${1}]{${2}}${3}\n\
+#Formating text: italic, bold, underline, small capital, emphase ..\n\
+snippet it\n\
+ \\textit{${1:text}}\n\
+snippet bf\n\
+ \\textbf{${1:text}}\n\
+snippet under\n\
+ \\underline{${1:text}}\n\
+snippet emp\n\
+ \\emph{${1:text}}\n\
+snippet sc\n\
+ \\textsc{${1:text}}\n\
+#Choosing font\n\
+snippet sf\n\
+ \\textsf{${1:text}}\n\
+snippet rm\n\
+ \\textrm{${1:text}}\n\
+snippet tt\n\
+ \\texttt{${1:text}}\n\
+#misc\n\
+snippet ft\n\
+ \\footnote{${1:text}}\n\
+snippet fig\n\
+ \\begin{figure}\n\
+ \\begin{center}\n\
+ \\includegraphics[scale=${1}]{Figures/${2}}\n\
+ \\end{center}\n\
+ \\caption{${3}}\n\
+ \\label{fig:${4}}\n\
+ \\end{figure}\n\
+snippet tikz\n\
+ \\begin{figure}\n\
+ \\begin{center}\n\
+ \\begin{tikzpicture}[scale=${1:1}]\n\
+ ${2}\n\
+ \\end{tikzpicture}\n\
+ \\end{center}\n\
+ \\caption{${3}}\n\
+ \\label{fig:${4}}\n\
+ \\end{figure}\n\
+#math\n\
+snippet stackrel\n\
+ \\stackrel{${1:above}}{${2:below}} ${3}\n\
+snippet frac\n\
+ \\frac{${1:num}}{${2:denom}}\n\
+snippet sum\n\
+ \\sum^{${1:n}}_{${2:i=1}}{${3}}";
+exports.scope = "tex";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/text.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/text.js
new file mode 100644
index 00000000..57b897bf
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/text.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/text",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "text";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/textile.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/textile.js
new file mode 100644
index 00000000..a6fd711e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/textile.js
@@ -0,0 +1,37 @@
+ace.define("ace/snippets/textile",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Jekyll post header\n\
+snippet header\n\
+ ---\n\
+ title: ${1:title}\n\
+ layout: post\n\
+ date: ${2:date} ${3:hour:minute:second} -05:00\n\
+ ---\n\
+\n\
+# Image\n\
+snippet img\n\
+ !${1:url}(${2:title}):${3:link}!\n\
+\n\
+# Table\n\
+snippet |\n\
+ |${1}|${2}\n\
+\n\
+# Link\n\
+snippet link\n\
+ \"${1:link text}\":${2:url}\n\
+\n\
+# Acronym\n\
+snippet (\n\
+ (${1:Expand acronym})${2}\n\
+\n\
+# Footnote\n\
+snippet fn\n\
+ [${1:ref number}] ${3}\n\
+\n\
+ fn$1. ${2:footnote}\n\
+ \n\
+";
+exports.scope = "textile";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/toml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/toml.js
new file mode 100644
index 00000000..0c1a857b
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/toml.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/toml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "toml";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/tsx.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tsx.js
new file mode 100644
index 00000000..7946297e
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/tsx.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/tsx",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "tsx";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/turtle.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/turtle.js
new file mode 100644
index 00000000..5e104b22
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/turtle.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/turtle",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/twig.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/twig.js
new file mode 100644
index 00000000..ccc6073c
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/twig.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/twig",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "twig";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/typescript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/typescript.js
new file mode 100644
index 00000000..5f6217d0
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/typescript.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/typescript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "typescript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/vala.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vala.js
new file mode 100644
index 00000000..3b493422
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vala.js
@@ -0,0 +1,193 @@
+ace.define("ace/snippets/vala",["require","exports","module"], function(require, exports, module) {
+"use strict";
+exports.snippets = [
+ {
+ "content": "case ${1:condition}:\n\t$0\n\tbreak;\n",
+ "name": "case",
+ "scope": "vala",
+ "tabTrigger": "case"
+ },
+ {
+ "content": "/**\n * ${6}\n */\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\n\n\t/**\n\t * ${7}\n\t */\n\tpublic ${2}(${4}) {\n\t\t${5}\n\t}\n\n\t$0\n}",
+ "name": "class",
+ "scope": "vala",
+ "tabTrigger": "class"
+ },
+ {
+ "content": "(${1}) => {\n\t${0}\n}\n",
+ "name": "closure",
+ "scope": "vala",
+ "tabTrigger": "=>"
+ },
+ {
+ "content": "/*\n * $0\n */",
+ "name": "Comment (multiline)",
+ "scope": "vala",
+ "tabTrigger": "/*"
+ },
+ {
+ "content": "Console.WriteLine($1);\n$0",
+ "name": "Console.WriteLine (writeline)",
+ "scope": "vala",
+ "tabTrigger": "writeline"
+ },
+ {
+ "content": "[DBus(name = \"$0\")]",
+ "name": "DBus annotation",
+ "scope": "vala",
+ "tabTrigger": "[DBus"
+ },
+ {
+ "content": "delegate ${1:void} ${2:DelegateName}($0);",
+ "name": "delegate",
+ "scope": "vala",
+ "tabTrigger": "delegate"
+ },
+ {
+ "content": "do {\n\t$0\n} while ($1);\n",
+ "name": "do while",
+ "scope": "vala",
+ "tabTrigger": "dowhile"
+ },
+ {
+ "content": "/**\n * $0\n */",
+ "name": "DocBlock",
+ "scope": "vala",
+ "tabTrigger": "/**"
+ },
+ {
+ "content": "else if ($1) {\n\t$0\n}\n",
+ "name": "else if (elseif)",
+ "scope": "vala",
+ "tabTrigger": "elseif"
+ },
+ {
+ "content": "else {\n\t$0\n}",
+ "name": "else",
+ "scope": "vala",
+ "tabTrigger": "else"
+ },
+ {
+ "content": "enum {$1:EnumName} {\n\t$0\n}",
+ "name": "enum",
+ "scope": "vala",
+ "tabTrigger": "enum"
+ },
+ {
+ "content": "public errordomain ${1:Error} {\n\t$0\n}",
+ "name": "error domain",
+ "scope": "vala",
+ "tabTrigger": "errordomain"
+ },
+ {
+ "content": "for ($1;$2;$3) {\n\t$0\n}",
+ "name": "for",
+ "scope": "vala",
+ "tabTrigger": "for"
+ },
+ {
+ "content": "foreach ($1 in $2) {\n\t$0\n}",
+ "name": "foreach",
+ "scope": "vala",
+ "tabTrigger": "foreach"
+ },
+ {
+ "content": "Gee.ArrayList<${1:G}>($0);",
+ "name": "Gee.ArrayList",
+ "scope": "vala",
+ "tabTrigger": "ArrayList"
+ },
+ {
+ "content": "Gee.HashMap<${1:K},${2:V}>($0);",
+ "name": "Gee.HashMap",
+ "scope": "vala",
+ "tabTrigger": "HashMap"
+ },
+ {
+ "content": "Gee.HashSet<${1:G}>($0);",
+ "name": "Gee.HashSet",
+ "scope": "vala",
+ "tabTrigger": "HashSet"
+ },
+ {
+ "content": "if ($1) {\n\t$0\n}",
+ "name": "if",
+ "scope": "vala",
+ "tabTrigger": "if"
+ },
+ {
+ "content": "interface ${1:InterfaceName}{$2: : SuperInterface} {\n\t$0\n}",
+ "name": "interface",
+ "scope": "vala",
+ "tabTrigger": "interface"
+ },
+ {
+ "content": "public static int main(string [] argv) {\n\t${0}\n\treturn 0;\n}",
+ "name": "Main function",
+ "scope": "vala",
+ "tabTrigger": "main"
+ },
+ {
+ "content": "namespace $1 {\n\t$0\n}\n",
+ "name": "namespace (ns)",
+ "scope": "vala",
+ "tabTrigger": "ns"
+ },
+ {
+ "content": "stdout.printf($0);",
+ "name": "printf",
+ "scope": "vala",
+ "tabTrigger": "printf"
+ },
+ {
+ "content": "${1:public} ${2:Type} ${3:Name} {\n\tset {\n\t\t$0\n\t}\n\tget {\n\n\t}\n}",
+ "name": "property (prop)",
+ "scope": "vala",
+ "tabTrigger": "prop"
+ },
+ {
+ "content": "${1:public} ${2:Type} ${3:Name} {\n\tget {\n\t\t$0\n\t}\n}",
+ "name": "read-only property (roprop)",
+ "scope": "vala",
+ "tabTrigger": "roprop"
+ },
+ {
+ "content": "@\"${1:\\$var}\"",
+ "name": "String template (@)",
+ "scope": "vala",
+ "tabTrigger": "@"
+ },
+ {
+ "content": "struct ${1:StructName} {\n\t$0\n}",
+ "name": "struct",
+ "scope": "vala",
+ "tabTrigger": "struct"
+ },
+ {
+ "content": "switch ($1) {\n\t$0\n}",
+ "name": "switch",
+ "scope": "vala",
+ "tabTrigger": "switch"
+ },
+ {
+ "content": "try {\n\t$2\n} catch (${1:Error} e) {\n\t$0\n}",
+ "name": "try/catch",
+ "scope": "vala",
+ "tabTrigger": "try"
+ },
+ {
+ "content": "\"\"\"$0\"\"\";",
+ "name": "Verbatim string (\"\"\")",
+ "scope": "vala",
+ "tabTrigger": "verbatim"
+ },
+ {
+ "content": "while ($1) {\n\t$0\n}",
+ "name": "while",
+ "scope": "vala",
+ "tabTrigger": "while"
+ }
+];
+exports.scope = "";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/vbscript.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vbscript.js
new file mode 100644
index 00000000..38ca68fb
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vbscript.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/vbscript",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "vbscript";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/velocity.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/velocity.js
new file mode 100644
index 00000000..e2b12a45
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/velocity.js
@@ -0,0 +1,36 @@
+ace.define("ace/snippets/velocity",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# macro\n\
+snippet #macro\n\
+ #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\
+ ${3:## macro code}\n\
+ #end\n\
+# foreach\n\
+snippet #foreach\n\
+ #foreach ( ${1:\\$item} in ${2:\\$collection} )\n\
+ ${3:## foreach code}\n\
+ #end\n\
+# if\n\
+snippet #if\n\
+ #if ( ${1:true} )\n\
+ ${0}\n\
+ #end\n\
+# if ... else\n\
+snippet #ife\n\
+ #if ( ${1:true} )\n\
+ ${2}\n\
+ #else\n\
+ ${0}\n\
+ #end\n\
+#import\n\
+snippet #import\n\
+ #import ( \"${1:path/to/velocity/format}\" )\n\
+# set\n\
+snippet #set\n\
+ #set ( $${1:var} = ${0} )\n\
+";
+exports.scope = "velocity";
+exports.includeScopes = ["html", "javascript", "css"];
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/verilog.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/verilog.js
new file mode 100644
index 00000000..8103ff6f
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/verilog.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/verilog",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "verilog";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/vhdl.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vhdl.js
new file mode 100644
index 00000000..10d8ca09
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/vhdl.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/vhdl",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "vhdl";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/wollok.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/wollok.js
new file mode 100644
index 00000000..31e62118
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/wollok.js
@@ -0,0 +1,91 @@
+ace.define("ace/snippets/wollok",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "##\n\
+## Basic Java packages and import\n\
+snippet im\n\
+ import\n\
+snippet w.l\n\
+ wollok.lang\n\
+snippet w.i\n\
+ wollok.lib\n\
+\n\
+## Class and object\n\
+snippet cl\n\
+ class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\
+snippet obj\n\
+ object ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\n\
+snippet te\n\
+ test ${1:`Filename(\"\", \"untitled\")`}\n\
+\n\
+##\n\
+## Enhancements\n\
+snippet inh\n\
+ inherits\n\
+\n\
+##\n\
+## Comments\n\
+snippet /*\n\
+ /*\n\
+ * ${1}\n\
+ */\n\
+\n\
+##\n\
+## Control Statements\n\
+snippet el\n\
+ else\n\
+snippet if\n\
+ if (${1}) ${2}\n\
+\n\
+##\n\
+## Create a Method\n\
+snippet m\n\
+ method ${1:method}(${2}) ${5}\n\
+\n\
+## \n\
+## Tests\n\
+snippet as\n\
+ assert.equals(${1:expected}, ${2:actual})\n\
+\n\
+##\n\
+## Exceptions\n\
+snippet ca\n\
+ catch ${1:e} : (${2:Exception} ) ${3}\n\
+snippet thr\n\
+ throw\n\
+snippet try\n\
+ try {\n\
+ ${3}\n\
+ } catch ${1:e} : ${2:Exception} {\n\
+ }\n\
+\n\
+##\n\
+## Javadocs\n\
+snippet /**\n\
+ /**\n\
+ * ${1}\n\
+ */\n\
+\n\
+##\n\
+## Print Methods\n\
+snippet print\n\
+ console.println(\"${1:Message}\")\n\
+\n\
+##\n\
+## Setter and Getter Methods\n\
+snippet set\n\
+ method set${1:}(${2:}) {\n\
+ $1 = $2\n\
+ }\n\
+snippet get\n\
+ method get${1:}() {\n\
+ return ${1:};\n\
+ }\n\
+\n\
+##\n\
+## Terminate Methods or Loops\n\
+snippet re\n\
+ return";
+exports.scope = "wollok";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/xml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/xml.js
new file mode 100644
index 00000000..ee4b688a
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/xml.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/xml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "xml";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/xquery.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/xquery.js
new file mode 100644
index 00000000..c880abcf
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/xquery.js
@@ -0,0 +1,68 @@
+ace.define("ace/snippets/xquery",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "snippet for\n\
+ for $${1:item} in ${2:expr}\n\
+snippet return\n\
+ return ${1:expr}\n\
+snippet import\n\
+ import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\
+snippet some\n\
+ some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
+snippet every\n\
+ every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\
+snippet if\n\
+ if(${1:true}) then ${2:expr} else ${3:true}\n\
+snippet switch\n\
+ switch(${1:\"foo\"})\n\
+ case ${2:\"foo\"}\n\
+ return ${3:true}\n\
+ default return ${4:false}\n\
+snippet try\n\
+ try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\
+snippet tumbling\n\
+ for tumbling window $${1:varname} in ${2:expr}\n\
+ start at $${3:start} when ${4:expr}\n\
+ end at $${5:end} when ${6:expr}\n\
+ return ${7:expr}\n\
+snippet sliding\n\
+ for sliding window $${1:varname} in ${2:expr}\n\
+ start at $${3:start} when ${4:expr}\n\
+ end at $${5:end} when ${6:expr}\n\
+ return ${7:expr}\n\
+snippet let\n\
+ let $${1:varname} := ${2:expr}\n\
+snippet group\n\
+ group by $${1:varname} := ${2:expr}\n\
+snippet order\n\
+ order by ${1:expr} ${2:descending}\n\
+snippet stable\n\
+ stable order by ${1:expr}\n\
+snippet count\n\
+ count $${1:varname}\n\
+snippet ordered\n\
+ ordered { ${1:expr} }\n\
+snippet unordered\n\
+ unordered { ${1:expr} }\n\
+snippet treat \n\
+ treat as ${1:expr}\n\
+snippet castable\n\
+ castable as ${1:atomicType}\n\
+snippet cast\n\
+ cast as ${1:atomicType}\n\
+snippet typeswitch\n\
+ typeswitch(${1:expr})\n\
+ case ${2:type} return ${3:expr}\n\
+ default return ${4:expr}\n\
+snippet var\n\
+ declare variable $${1:varname} := ${2:expr};\n\
+snippet fn\n\
+ declare function ${1:ns}:${2:name}(){\n\
+ ${3:expr}\n\
+ };\n\
+snippet module\n\
+ module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\
+";
+exports.scope = "xquery";
+
+});
diff --git a/www/wiki/extensions/CodeEditor/modules/ace/snippets/yaml.js b/www/wiki/extensions/CodeEditor/modules/ace/snippets/yaml.js
new file mode 100644
index 00000000..1adceabe
--- /dev/null
+++ b/www/wiki/extensions/CodeEditor/modules/ace/snippets/yaml.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/yaml",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "yaml";
+
+});