aboutsummaryrefslogtreecommitdiffstats
path: root/library/ace/snippets
diff options
context:
space:
mode:
authorhubzilla <git@macgirvin.com>2016-06-10 20:03:08 +1000
committerGitHub <noreply@github.com>2016-06-10 20:03:08 +1000
commitbeb55235c68feadabe3b647ebe14ae2cab94a2f8 (patch)
tree8a6d552f8658dd64e361e462b78734138624955b /library/ace/snippets
parentcf415a4312f3a926c3b080fb49042752441f23b4 (diff)
parent7a242f829fac2b434726c2bbdca5dbf658404c76 (diff)
downloadvolse-hubzilla-beb55235c68feadabe3b647ebe14ae2cab94a2f8.tar.gz
volse-hubzilla-beb55235c68feadabe3b647ebe14ae2cab94a2f8.tar.bz2
volse-hubzilla-beb55235c68feadabe3b647ebe14ae2cab94a2f8.zip
Merge pull request #410 from anaqreon/wiki
Wiki module: first iteration
Diffstat (limited to 'library/ace/snippets')
-rw-r--r--library/ace/snippets/abap.js1
-rw-r--r--library/ace/snippets/abc.js1
-rw-r--r--library/ace/snippets/actionscript.js1
-rw-r--r--library/ace/snippets/ada.js1
-rw-r--r--library/ace/snippets/apache_conf.js1
-rw-r--r--library/ace/snippets/applescript.js1
-rw-r--r--library/ace/snippets/asciidoc.js1
-rw-r--r--library/ace/snippets/assembly_x86.js1
-rw-r--r--library/ace/snippets/autohotkey.js1
-rw-r--r--library/ace/snippets/batchfile.js1
-rw-r--r--library/ace/snippets/c9search.js1
-rw-r--r--library/ace/snippets/c_cpp.js1
-rw-r--r--library/ace/snippets/cirru.js1
-rw-r--r--library/ace/snippets/clojure.js1
-rw-r--r--library/ace/snippets/cobol.js1
-rw-r--r--library/ace/snippets/coffee.js1
-rw-r--r--library/ace/snippets/coldfusion.js1
-rw-r--r--library/ace/snippets/csharp.js1
-rw-r--r--library/ace/snippets/css.js1
-rw-r--r--library/ace/snippets/curly.js1
-rw-r--r--library/ace/snippets/d.js1
-rw-r--r--library/ace/snippets/dart.js1
-rw-r--r--library/ace/snippets/diff.js1
-rw-r--r--library/ace/snippets/django.js1
-rw-r--r--library/ace/snippets/dockerfile.js1
-rw-r--r--library/ace/snippets/dot.js1
-rw-r--r--library/ace/snippets/eiffel.js1
-rw-r--r--library/ace/snippets/ejs.js1
-rw-r--r--library/ace/snippets/elixir.js1
-rw-r--r--library/ace/snippets/elm.js1
-rw-r--r--library/ace/snippets/erlang.js1
-rw-r--r--library/ace/snippets/forth.js1
-rw-r--r--library/ace/snippets/fortran.js1
-rw-r--r--library/ace/snippets/ftl.js1
-rw-r--r--library/ace/snippets/gcode.js1
-rw-r--r--library/ace/snippets/gherkin.js1
-rw-r--r--library/ace/snippets/gitignore.js1
-rw-r--r--library/ace/snippets/glsl.js1
-rw-r--r--library/ace/snippets/gobstones.js1
-rw-r--r--library/ace/snippets/golang.js1
-rw-r--r--library/ace/snippets/groovy.js1
-rw-r--r--library/ace/snippets/haml.js1
-rw-r--r--library/ace/snippets/handlebars.js1
-rw-r--r--library/ace/snippets/haskell.js1
-rw-r--r--library/ace/snippets/haxe.js1
-rw-r--r--library/ace/snippets/html.js1
-rw-r--r--library/ace/snippets/html_elixir.js1
-rw-r--r--library/ace/snippets/html_ruby.js1
-rw-r--r--library/ace/snippets/ini.js1
-rw-r--r--library/ace/snippets/io.js1
-rw-r--r--library/ace/snippets/jack.js1
-rw-r--r--library/ace/snippets/jade.js1
-rw-r--r--library/ace/snippets/java.js1
-rw-r--r--library/ace/snippets/javascript.js1
-rw-r--r--library/ace/snippets/json.js1
-rw-r--r--library/ace/snippets/jsoniq.js1
-rw-r--r--library/ace/snippets/jsp.js1
-rw-r--r--library/ace/snippets/jsx.js1
-rw-r--r--library/ace/snippets/julia.js1
-rw-r--r--library/ace/snippets/latex.js1
-rw-r--r--library/ace/snippets/lean.js1
-rw-r--r--library/ace/snippets/less.js1
-rw-r--r--library/ace/snippets/liquid.js1
-rw-r--r--library/ace/snippets/lisp.js1
-rw-r--r--library/ace/snippets/live_script.js1
-rw-r--r--library/ace/snippets/livescript.js1
-rw-r--r--library/ace/snippets/logiql.js1
-rw-r--r--library/ace/snippets/lsl.js1
-rw-r--r--library/ace/snippets/lua.js1
-rw-r--r--library/ace/snippets/luapage.js1
-rw-r--r--library/ace/snippets/lucene.js1
-rw-r--r--library/ace/snippets/makefile.js1
-rw-r--r--library/ace/snippets/markdown.js1
-rw-r--r--library/ace/snippets/mask.js1
-rw-r--r--library/ace/snippets/matlab.js1
-rw-r--r--library/ace/snippets/maze.js1
-rw-r--r--library/ace/snippets/mel.js1
-rw-r--r--library/ace/snippets/mips_assembler.js1
-rw-r--r--library/ace/snippets/mipsassembler.js1
-rw-r--r--library/ace/snippets/mushcode.js1
-rw-r--r--library/ace/snippets/mysql.js1
-rw-r--r--library/ace/snippets/nix.js1
-rw-r--r--library/ace/snippets/nsis.js1
-rw-r--r--library/ace/snippets/objectivec.js1
-rw-r--r--library/ace/snippets/ocaml.js1
-rw-r--r--library/ace/snippets/pascal.js1
-rw-r--r--library/ace/snippets/perl.js1
-rw-r--r--library/ace/snippets/pgsql.js1
-rw-r--r--library/ace/snippets/php.js1
-rw-r--r--library/ace/snippets/plain_text.js1
-rw-r--r--library/ace/snippets/powershell.js1
-rw-r--r--library/ace/snippets/praat.js1
-rw-r--r--library/ace/snippets/prolog.js1
-rw-r--r--library/ace/snippets/properties.js1
-rw-r--r--library/ace/snippets/protobuf.js1
-rw-r--r--library/ace/snippets/python.js1
-rw-r--r--library/ace/snippets/r.js1
-rw-r--r--library/ace/snippets/razor.js1
-rw-r--r--library/ace/snippets/rdoc.js1
-rw-r--r--library/ace/snippets/rhtml.js1
-rw-r--r--library/ace/snippets/rst.js1
-rw-r--r--library/ace/snippets/ruby.js1
-rw-r--r--library/ace/snippets/rust.js1
-rw-r--r--library/ace/snippets/sass.js1
-rw-r--r--library/ace/snippets/scad.js1
-rw-r--r--library/ace/snippets/scala.js1
-rw-r--r--library/ace/snippets/scheme.js1
-rw-r--r--library/ace/snippets/scss.js1
-rw-r--r--library/ace/snippets/sh.js1
-rw-r--r--library/ace/snippets/sjs.js1
-rw-r--r--library/ace/snippets/smarty.js1
-rw-r--r--library/ace/snippets/snippets.js1
-rw-r--r--library/ace/snippets/soy_template.js1
-rw-r--r--library/ace/snippets/space.js1
-rw-r--r--library/ace/snippets/sql.js1
-rw-r--r--library/ace/snippets/sqlserver.js1
-rw-r--r--library/ace/snippets/stylus.js1
-rw-r--r--library/ace/snippets/svg.js1
-rw-r--r--library/ace/snippets/swift.js1
-rw-r--r--library/ace/snippets/swig.js1
-rw-r--r--library/ace/snippets/tcl.js1
-rw-r--r--library/ace/snippets/tex.js1
-rw-r--r--library/ace/snippets/text.js1
-rw-r--r--library/ace/snippets/textile.js1
-rw-r--r--library/ace/snippets/toml.js1
-rw-r--r--library/ace/snippets/twig.js1
-rw-r--r--library/ace/snippets/typescript.js1
-rw-r--r--library/ace/snippets/vala.js1
-rw-r--r--library/ace/snippets/vbscript.js1
-rw-r--r--library/ace/snippets/velocity.js1
-rw-r--r--library/ace/snippets/verilog.js1
-rw-r--r--library/ace/snippets/vhdl.js1
-rw-r--r--library/ace/snippets/wollok.js1
-rw-r--r--library/ace/snippets/xml.js1
-rw-r--r--library/ace/snippets/xquery.js1
-rw-r--r--library/ace/snippets/yaml.js1
136 files changed, 136 insertions, 0 deletions
diff --git a/library/ace/snippets/abap.js b/library/ace/snippets/abap.js
new file mode 100644
index 000000000..5e1c4c2de
--- /dev/null
+++ b/library/ace/snippets/abap.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/abap",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="abap"}) \ No newline at end of file
diff --git a/library/ace/snippets/abc.js b/library/ace/snippets/abc.js
new file mode 100644
index 000000000..ed591a5f4
--- /dev/null
+++ b/library/ace/snippets/abc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/abc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='\nsnippet 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\nsnippet zupfnoter.note\n %%%%hn.note {"pos": [${1:pos_x},${2:pos_y}], "text": "${3:text}", "style": "${4:style}"}\n\nsnippet zupfnoter.annotation\n %%%%hn.annotation {"id": "${1:id}", "pos": [${2:pos}], "text": "${3:text}"}\n\nsnippet zupfnoter.lyrics\n %%%%hn.lyrics {"pos": [${1:x_pos},${2:y_pos}]}\n\nsnippet zupfnoter.legend\n %%%%hn.legend {"pos": [${1:x_pos},${2:y_pos}]}\n\n\n\nsnippet zupfnoter.target\n "^:${1:target}"\n\nsnippet zupfnoter.goto\n "^@${1:target}@${2:distance}"\n\nsnippet zupfnoter.annotationref\n "^#${1:target}"\n\nsnippet zupfnoter.annotation\n "^!${1:text}@${2:x_offset},${3:y_offset}"\n\n\n',t.scope="abc"}) \ No newline at end of file
diff --git a/library/ace/snippets/actionscript.js b/library/ace/snippets/actionscript.js
new file mode 100644
index 000000000..50ca770c2
--- /dev/null
+++ b/library/ace/snippets/actionscript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/actionscript",["require","exports","module"],function(e,t,n){"use strict";t.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 }\nsnippet class\n ${1:public|internal} class ${2:name} ${3:extends } {\n public function $2 ( ) {\n ("start");\n }\n }\nsnippet 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 }\nsnippet switch\n switch(${1}){\n case ${2}:\n ${3}\n break;\n default:\n }\nsnippet case\n case ${1}:\n ${2}\n break;\nsnippet package\n package ${1:package}{\n ${2}\n }\nsnippet wh\n while ${1:cond}{\n ${2}\n }\nsnippet do\n do {\n ${2}\n } while (${1:cond})\nsnippet while\n while ${1:cond}{\n ${2}\n }\nsnippet for enumerate names\n for (${1:var} in ${2:object}){\n ${3}\n }\nsnippet for enumerate values\n for each (${1:var} in ${2:object}){\n ${3}\n }\nsnippet get_set\n function get ${1:name} {\n return ${2}\n }\n function set $1 (newValue) {\n ${3}\n }\nsnippet interface\n interface name {\n function method(${1}):${2:returntype};\n }\nsnippet try\n try {\n ${1}\n } catch (error:ErrorType) {\n ${2}\n } finally {\n ${3}\n }\n# For Loop (same as c.snippet)\nsnippet for for (..) {..}\n for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n ${4:/* code */}\n }\n# Custom For Loop\nsnippet forr\n for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\n ${5:/* code */}\n }\n# If Condition\nsnippet if\n if (${1:/* condition */}) {\n ${2:/* code */}\n }\nsnippet el\n else {\n ${1}\n }\n# Ternary conditional\nsnippet t\n ${1:/* condition */} ? ${2:a} : ${3:b}\nsnippet fun\n function ${1:function_name}(${2})${3}\n {\n ${4:/* code */}\n }\n# FlxSprite (usefull when using the flixel library)\nsnippet 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',t.scope="actionscript"}) \ No newline at end of file
diff --git a/library/ace/snippets/ada.js b/library/ace/snippets/ada.js
new file mode 100644
index 000000000..65a1adc4c
--- /dev/null
+++ b/library/ace/snippets/ada.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ada",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ada"}) \ No newline at end of file
diff --git a/library/ace/snippets/apache_conf.js b/library/ace/snippets/apache_conf.js
new file mode 100644
index 000000000..a4364ecdf
--- /dev/null
+++ b/library/ace/snippets/apache_conf.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/apache_conf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="apache_conf"}) \ No newline at end of file
diff --git a/library/ace/snippets/applescript.js b/library/ace/snippets/applescript.js
new file mode 100644
index 000000000..d3a7cd598
--- /dev/null
+++ b/library/ace/snippets/applescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/applescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="applescript"}) \ No newline at end of file
diff --git a/library/ace/snippets/asciidoc.js b/library/ace/snippets/asciidoc.js
new file mode 100644
index 000000000..ec76c4f39
--- /dev/null
+++ b/library/ace/snippets/asciidoc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/asciidoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="asciidoc"}) \ No newline at end of file
diff --git a/library/ace/snippets/assembly_x86.js b/library/ace/snippets/assembly_x86.js
new file mode 100644
index 000000000..7c6e63224
--- /dev/null
+++ b/library/ace/snippets/assembly_x86.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/assembly_x86",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="assembly_x86"}) \ No newline at end of file
diff --git a/library/ace/snippets/autohotkey.js b/library/ace/snippets/autohotkey.js
new file mode 100644
index 000000000..0507ad922
--- /dev/null
+++ b/library/ace/snippets/autohotkey.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/autohotkey",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="autohotkey"}) \ No newline at end of file
diff --git a/library/ace/snippets/batchfile.js b/library/ace/snippets/batchfile.js
new file mode 100644
index 000000000..bffe14eb4
--- /dev/null
+++ b/library/ace/snippets/batchfile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/batchfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="batchfile"}) \ No newline at end of file
diff --git a/library/ace/snippets/c9search.js b/library/ace/snippets/c9search.js
new file mode 100644
index 000000000..0f455c179
--- /dev/null
+++ b/library/ace/snippets/c9search.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/c9search",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="c9search"}) \ No newline at end of file
diff --git a/library/ace/snippets/c_cpp.js b/library/ace/snippets/c_cpp.js
new file mode 100644
index 000000000..9fc5a5824
--- /dev/null
+++ b/library/ace/snippets/c_cpp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/c_cpp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="## STL Collections\n# std::array\nsnippet array\n std::array<${1:T}, ${2:N}> ${3};${4}\n# std::vector\nsnippet vector\n std::vector<${1:T}> ${2};${3}\n# std::deque\nsnippet deque\n std::deque<${1:T}> ${2};${3}\n# std::forward_list\nsnippet flist\n std::forward_list<${1:T}> ${2};${3}\n# std::list\nsnippet list\n std::list<${1:T}> ${2};${3}\n# std::set\nsnippet set\n std::set<${1:T}> ${2};${3}\n# std::map\nsnippet map\n std::map<${1:Key}, ${2:T}> ${3};${4}\n# std::multiset\nsnippet mset\n std::multiset<${1:T}> ${2};${3}\n# std::multimap\nsnippet mmap\n std::multimap<${1:Key}, ${2:T}> ${3};${4}\n# std::unordered_set\nsnippet uset\n std::unordered_set<${1:T}> ${2};${3}\n# std::unordered_map\nsnippet umap\n std::unordered_map<${1:Key}, ${2:T}> ${3};${4}\n# std::unordered_multiset\nsnippet umset\n std::unordered_multiset<${1:T}> ${2};${3}\n# std::unordered_multimap\nsnippet ummap\n std::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\n# std::stack\nsnippet stack\n std::stack<${1:T}> ${2};${3}\n# std::queue\nsnippet queue\n std::queue<${1:T}> ${2};${3}\n# std::priority_queue\nsnippet pqueue\n std::priority_queue<${1:T}> ${2};${3}\n##\n## Access Modifiers\n# private\nsnippet pri\n private\n# protected\nsnippet pro\n protected\n# public\nsnippet pub\n public\n# friend\nsnippet fr\n friend\n# mutable\nsnippet mu\n mutable\n## \n## Class\n# class\nsnippet 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\nsnippet mfun\n ${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\n ${5:/* code */}\n }\n# namespace\nsnippet ns\n namespace ${1:`Filename('', 'my')`} {\n ${2}\n } /* namespace $1 */\n##\n## Input/Output\n# std::cout\nsnippet cout\n std::cout << ${1} << std::endl;${2}\n# std::cin\nsnippet cin\n std::cin >> ${1};${2}\n##\n## Iteration\n# for i \nsnippet fori\n for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n ${4:/* code */}\n }${5}\n\n# foreach\nsnippet fore\n for (${1:auto} ${2:i} : ${3:container}) {\n ${4:/* code */}\n }${5}\n# iterator\nsnippet 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\nsnippet 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)\nsnippet ld\n [${1}](${2}){${3:/* code */}}${4}\n# lambda (multi-line)\nsnippet lld\n [${1}](${2}){\n ${3:/* code */}\n }${4}\n",t.scope="c_cpp"}) \ No newline at end of file
diff --git a/library/ace/snippets/cirru.js b/library/ace/snippets/cirru.js
new file mode 100644
index 000000000..8ecce1b5e
--- /dev/null
+++ b/library/ace/snippets/cirru.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/cirru",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cirru"}) \ No newline at end of file
diff --git a/library/ace/snippets/clojure.js b/library/ace/snippets/clojure.js
new file mode 100644
index 000000000..3aebfa568
--- /dev/null
+++ b/library/ace/snippets/clojure.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/clojure",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet comm\n (comment\n ${1}\n )\nsnippet condp\n (condp ${1:pred} ${2:expr}\n ${3})\nsnippet def\n (def ${1})\nsnippet defm\n (defmethod ${1:multifn} "${2:doc-string}" ${3:dispatch-val} [${4:args}]\n ${5})\nsnippet defmm\n (defmulti ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defma\n (defmacro ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defn\n (defn ${1:name} "${2:doc-string}" [${3:arg-list}]\n ${4})\nsnippet defp\n (defprotocol ${1:name}\n ${2})\nsnippet defr\n (defrecord ${1:name} [${2:fields}]\n ${3:protocol}\n ${4})\nsnippet deft\n (deftest ${1:name}\n (is (= ${2:assertion})))\n ${3})\nsnippet is\n (is (= ${1} ${2}))\nsnippet defty\n (deftype ${1:Name} [${2:fields}]\n ${3:Protocol}\n ${4})\nsnippet doseq\n (doseq [${1:elem} ${2:coll}]\n ${3})\nsnippet fn\n (fn [${1:arg-list}] ${2})\nsnippet if\n (if ${1:test-expr}\n ${2:then-expr}\n ${3:else-expr})\nsnippet if-let \n (if-let [${1:result} ${2:test-expr}]\n (${3:then-expr} $1)\n (${4:else-expr}))\nsnippet imp\n (:import [${1:package}])\n & {:keys [${1:keys}] :or {${2:defaults}}}\nsnippet let\n (let [${1:name} ${2:expr}]\n ${3})\nsnippet letfn\n (letfn [(${1:name) [${2:args}]\n ${3})])\nsnippet map\n (map ${1:func} ${2:coll})\nsnippet mapl\n (map #(${1:lambda}) ${2:coll})\nsnippet met\n (${1:name} [${2:this} ${3:args}]\n ${4})\nsnippet ns\n (ns ${1:name}\n ${2})\nsnippet dotimes\n (dotimes [_ 10]\n (time\n (dotimes [_ ${1:times}]\n ${2})))\nsnippet pmethod\n (${1:name} [${2:this} ${3:args}])\nsnippet refer\n (:refer-clojure :exclude [${1}])\nsnippet require\n (:require [${1:namespace} :as [${2}]])\nsnippet use\n (:use [${1:namespace} :only [${2}]])\nsnippet print\n (println ${1})\nsnippet reduce\n (reduce ${1:(fn [p n] ${3})} ${2})\nsnippet when\n (when ${1:test} ${2:body})\nsnippet when-let\n (when-let [${1:result} ${2:test}]\n ${3:body})\n',t.scope="clojure"}) \ No newline at end of file
diff --git a/library/ace/snippets/cobol.js b/library/ace/snippets/cobol.js
new file mode 100644
index 000000000..f95742734
--- /dev/null
+++ b/library/ace/snippets/cobol.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/cobol",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cobol"}) \ No newline at end of file
diff --git a/library/ace/snippets/coffee.js b/library/ace/snippets/coffee.js
new file mode 100644
index 000000000..ac1b7304d
--- /dev/null
+++ b/library/ace/snippets/coffee.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/coffee",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# Closure loop\nsnippet forindo\n for ${1:name} in ${2:array}\n do ($1) ->\n ${3:// body}\n# Array comprehension\nsnippet fora\n for ${1:name} in ${2:array}\n ${3:// body...}\n# Object comprehension\nsnippet foro\n for ${1:key}, ${2:value} of ${3:object}\n ${4:// body...}\n# Range comprehension (inclusive)\nsnippet forr\n for ${1:name} in [${2:start}..${3:finish}]\n ${4:// body...}\nsnippet forrb\n for ${1:name} in [${2:start}..${3:finish}] by ${4:step}\n ${5:// body...}\n# Range comprehension (exclusive)\nsnippet forrex\n for ${1:name} in [${2:start}...${3:finish}]\n ${4:// body...}\nsnippet forrexb\n for ${1:name} in [${2:start}...${3:finish}] by ${4:step}\n ${5:// body...}\n# Function\nsnippet fun\n (${1:args}) ->\n ${2:// body...}\n# Function (bound)\nsnippet bfun\n (${1:args}) =>\n ${2:// body...}\n# Class\nsnippet cla class ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n ${2}\nsnippet cla class .. constructor: ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n constructor: (${2:args}) ->\n ${3}\n\n ${4}\nsnippet cla class .. extends ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n ${3}\nsnippet 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\nsnippet if\n if ${1:condition}\n ${2:// body...}\n# If __ Else\nsnippet ife\n if ${1:condition}\n ${2:// body...}\n else\n ${3:// body...}\n# Else if\nsnippet elif\n else if ${1:condition}\n ${2:// body...}\n# Ternary If\nsnippet ifte\n if ${1:condition} then ${2:value} else ${3:other}\n# Unless\nsnippet unl\n ${1:action} unless ${2:condition}\n# Switch\nsnippet swi\n switch ${1:object}\n when ${2:value}\n ${3:// body...}\n\n# Log\nsnippet log\n console.log ${1}\n# Try __ Catch\nsnippet try\n try\n ${1}\n catch ${2:error}\n ${3}\n# Require\nsnippet req\n ${2:$1} = require '${1:sys}'${3}\n# Export\nsnippet exp\n ${1:root} = exports ? this\n",t.scope="coffee"}) \ No newline at end of file
diff --git a/library/ace/snippets/coldfusion.js b/library/ace/snippets/coldfusion.js
new file mode 100644
index 000000000..5342f2f96
--- /dev/null
+++ b/library/ace/snippets/coldfusion.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/coldfusion",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="coldfusion"}) \ No newline at end of file
diff --git a/library/ace/snippets/csharp.js b/library/ace/snippets/csharp.js
new file mode 100644
index 000000000..9805077ae
--- /dev/null
+++ b/library/ace/snippets/csharp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/csharp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="csharp"}) \ No newline at end of file
diff --git a/library/ace/snippets/css.js b/library/ace/snippets/css.js
new file mode 100644
index 000000000..9659ba49b
--- /dev/null
+++ b/library/ace/snippets/css.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/css",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet .\n ${1} {\n ${2}\n }\nsnippet !\n !important\nsnippet bdi:m+\n -moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:m\n -moz-border-image: ${1};\nsnippet bdrz:m\n -moz-border-radius: ${1};\nsnippet bxsh:m+\n -moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:m\n -moz-box-shadow: ${1};\nsnippet bdi:w+\n -webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:w\n -webkit-border-image: ${1};\nsnippet bdrz:w\n -webkit-border-radius: ${1};\nsnippet bxsh:w+\n -webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh:w\n -webkit-box-shadow: ${1};\nsnippet @f\n @font-face {\n font-family: ${1};\n src: url(${2});\n }\nsnippet @i\n @import url(${1});\nsnippet @m\n @media ${1:print} {\n ${2}\n }\nsnippet bg+\n background: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\nsnippet bga\n background-attachment: ${1};\nsnippet bga:f\n background-attachment: fixed;\nsnippet bga:s\n background-attachment: scroll;\nsnippet bgbk\n background-break: ${1};\nsnippet bgbk:bb\n background-break: bounding-box;\nsnippet bgbk:c\n background-break: continuous;\nsnippet bgbk:eb\n background-break: each-box;\nsnippet bgcp\n background-clip: ${1};\nsnippet bgcp:bb\n background-clip: border-box;\nsnippet bgcp:cb\n background-clip: content-box;\nsnippet bgcp:nc\n background-clip: no-clip;\nsnippet bgcp:pb\n background-clip: padding-box;\nsnippet bgc\n background-color: #${1:FFF};\nsnippet bgc:t\n background-color: transparent;\nsnippet bgi\n background-image: url(${1});\nsnippet bgi:n\n background-image: none;\nsnippet bgo\n background-origin: ${1};\nsnippet bgo:bb\n background-origin: border-box;\nsnippet bgo:cb\n background-origin: content-box;\nsnippet bgo:pb\n background-origin: padding-box;\nsnippet bgpx\n background-position-x: ${1};\nsnippet bgpy\n background-position-y: ${1};\nsnippet bgp\n background-position: ${1:0} ${2:0};\nsnippet bgr\n background-repeat: ${1};\nsnippet bgr:n\n background-repeat: no-repeat;\nsnippet bgr:x\n background-repeat: repeat-x;\nsnippet bgr:y\n background-repeat: repeat-y;\nsnippet bgr:r\n background-repeat: repeat;\nsnippet bgz\n background-size: ${1};\nsnippet bgz:a\n background-size: auto;\nsnippet bgz:ct\n background-size: contain;\nsnippet bgz:cv\n background-size: cover;\nsnippet bg\n background: ${1};\nsnippet bg:ie\n filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\nsnippet bg:n\n background: none;\nsnippet bd+\n border: ${1:1px} ${2:solid} #${3:000};\nsnippet bdb+\n border-bottom: ${1:1px} ${2:solid} #${3:000};\nsnippet bdbc\n border-bottom-color: #${1:000};\nsnippet bdbi\n border-bottom-image: url(${1});\nsnippet bdbi:n\n border-bottom-image: none;\nsnippet bdbli\n border-bottom-left-image: url(${1});\nsnippet bdbli:c\n border-bottom-left-image: continue;\nsnippet bdbli:n\n border-bottom-left-image: none;\nsnippet bdblrz\n border-bottom-left-radius: ${1};\nsnippet bdbri\n border-bottom-right-image: url(${1});\nsnippet bdbri:c\n border-bottom-right-image: continue;\nsnippet bdbri:n\n border-bottom-right-image: none;\nsnippet bdbrrz\n border-bottom-right-radius: ${1};\nsnippet bdbs\n border-bottom-style: ${1};\nsnippet bdbs:n\n border-bottom-style: none;\nsnippet bdbw\n border-bottom-width: ${1};\nsnippet bdb\n border-bottom: ${1};\nsnippet bdb:n\n border-bottom: none;\nsnippet bdbk\n border-break: ${1};\nsnippet bdbk:c\n border-break: close;\nsnippet bdcl\n border-collapse: ${1};\nsnippet bdcl:c\n border-collapse: collapse;\nsnippet bdcl:s\n border-collapse: separate;\nsnippet bdc\n border-color: #${1:000};\nsnippet bdci\n border-corner-image: url(${1});\nsnippet bdci:c\n border-corner-image: continue;\nsnippet bdci:n\n border-corner-image: none;\nsnippet bdf\n border-fit: ${1};\nsnippet bdf:c\n border-fit: clip;\nsnippet bdf:of\n border-fit: overwrite;\nsnippet bdf:ow\n border-fit: overwrite;\nsnippet bdf:r\n border-fit: repeat;\nsnippet bdf:sc\n border-fit: scale;\nsnippet bdf:sp\n border-fit: space;\nsnippet bdf:st\n border-fit: stretch;\nsnippet bdi\n border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\nsnippet bdi:n\n border-image: none;\nsnippet bdl+\n border-left: ${1:1px} ${2:solid} #${3:000};\nsnippet bdlc\n border-left-color: #${1:000};\nsnippet bdli\n border-left-image: url(${1});\nsnippet bdli:n\n border-left-image: none;\nsnippet bdls\n border-left-style: ${1};\nsnippet bdls:n\n border-left-style: none;\nsnippet bdlw\n border-left-width: ${1};\nsnippet bdl\n border-left: ${1};\nsnippet bdl:n\n border-left: none;\nsnippet bdlt\n border-length: ${1};\nsnippet bdlt:a\n border-length: auto;\nsnippet bdrz\n border-radius: ${1};\nsnippet bdr+\n border-right: ${1:1px} ${2:solid} #${3:000};\nsnippet bdrc\n border-right-color: #${1:000};\nsnippet bdri\n border-right-image: url(${1});\nsnippet bdri:n\n border-right-image: none;\nsnippet bdrs\n border-right-style: ${1};\nsnippet bdrs:n\n border-right-style: none;\nsnippet bdrw\n border-right-width: ${1};\nsnippet bdr\n border-right: ${1};\nsnippet bdr:n\n border-right: none;\nsnippet bdsp\n border-spacing: ${1};\nsnippet bds\n border-style: ${1};\nsnippet bds:ds\n border-style: dashed;\nsnippet bds:dtds\n border-style: dot-dash;\nsnippet bds:dtdtds\n border-style: dot-dot-dash;\nsnippet bds:dt\n border-style: dotted;\nsnippet bds:db\n border-style: double;\nsnippet bds:g\n border-style: groove;\nsnippet bds:h\n border-style: hidden;\nsnippet bds:i\n border-style: inset;\nsnippet bds:n\n border-style: none;\nsnippet bds:o\n border-style: outset;\nsnippet bds:r\n border-style: ridge;\nsnippet bds:s\n border-style: solid;\nsnippet bds:w\n border-style: wave;\nsnippet bdt+\n border-top: ${1:1px} ${2:solid} #${3:000};\nsnippet bdtc\n border-top-color: #${1:000};\nsnippet bdti\n border-top-image: url(${1});\nsnippet bdti:n\n border-top-image: none;\nsnippet bdtli\n border-top-left-image: url(${1});\nsnippet bdtli:c\n border-corner-image: continue;\nsnippet bdtli:n\n border-corner-image: none;\nsnippet bdtlrz\n border-top-left-radius: ${1};\nsnippet bdtri\n border-top-right-image: url(${1});\nsnippet bdtri:c\n border-top-right-image: continue;\nsnippet bdtri:n\n border-top-right-image: none;\nsnippet bdtrrz\n border-top-right-radius: ${1};\nsnippet bdts\n border-top-style: ${1};\nsnippet bdts:n\n border-top-style: none;\nsnippet bdtw\n border-top-width: ${1};\nsnippet bdt\n border-top: ${1};\nsnippet bdt:n\n border-top: none;\nsnippet bdw\n border-width: ${1};\nsnippet bd\n border: ${1};\nsnippet bd:n\n border: none;\nsnippet b\n bottom: ${1};\nsnippet b:a\n bottom: auto;\nsnippet bxsh+\n box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet bxsh\n box-shadow: ${1};\nsnippet bxsh:n\n box-shadow: none;\nsnippet bxz\n box-sizing: ${1};\nsnippet bxz:bb\n box-sizing: border-box;\nsnippet bxz:cb\n box-sizing: content-box;\nsnippet cps\n caption-side: ${1};\nsnippet cps:b\n caption-side: bottom;\nsnippet cps:t\n caption-side: top;\nsnippet cl\n clear: ${1};\nsnippet cl:b\n clear: both;\nsnippet cl:l\n clear: left;\nsnippet cl:n\n clear: none;\nsnippet cl:r\n clear: right;\nsnippet cp\n clip: ${1};\nsnippet cp:a\n clip: auto;\nsnippet cp:r\n clip: rect(${1:0} ${2:0} ${3:0} ${4:0});\nsnippet c\n color: #${1:000};\nsnippet ct\n content: ${1};\nsnippet ct:a\n content: attr(${1});\nsnippet ct:cq\n content: close-quote;\nsnippet ct:c\n content: counter(${1});\nsnippet ct:cs\n content: counters(${1});\nsnippet ct:ncq\n content: no-close-quote;\nsnippet ct:noq\n content: no-open-quote;\nsnippet ct:n\n content: normal;\nsnippet ct:oq\n content: open-quote;\nsnippet coi\n counter-increment: ${1};\nsnippet cor\n counter-reset: ${1};\nsnippet cur\n cursor: ${1};\nsnippet cur:a\n cursor: auto;\nsnippet cur:c\n cursor: crosshair;\nsnippet cur:d\n cursor: default;\nsnippet cur:ha\n cursor: hand;\nsnippet cur:he\n cursor: help;\nsnippet cur:m\n cursor: move;\nsnippet cur:p\n cursor: pointer;\nsnippet cur:t\n cursor: text;\nsnippet d\n display: ${1};\nsnippet d:mib\n display: -moz-inline-box;\nsnippet d:mis\n display: -moz-inline-stack;\nsnippet d:b\n display: block;\nsnippet d:cp\n display: compact;\nsnippet d:ib\n display: inline-block;\nsnippet d:itb\n display: inline-table;\nsnippet d:i\n display: inline;\nsnippet d:li\n display: list-item;\nsnippet d:n\n display: none;\nsnippet d:ri\n display: run-in;\nsnippet d:tbcp\n display: table-caption;\nsnippet d:tbc\n display: table-cell;\nsnippet d:tbclg\n display: table-column-group;\nsnippet d:tbcl\n display: table-column;\nsnippet d:tbfg\n display: table-footer-group;\nsnippet d:tbhg\n display: table-header-group;\nsnippet d:tbrg\n display: table-row-group;\nsnippet d:tbr\n display: table-row;\nsnippet d:tb\n display: table;\nsnippet ec\n empty-cells: ${1};\nsnippet ec:h\n empty-cells: hide;\nsnippet ec:s\n empty-cells: show;\nsnippet exp\n expression()\nsnippet fl\n float: ${1};\nsnippet fl:l\n float: left;\nsnippet fl:n\n float: none;\nsnippet fl:r\n float: right;\nsnippet f+\n font: ${1:1em} ${2:Arial},${3:sans-serif};\nsnippet fef\n font-effect: ${1};\nsnippet fef:eb\n font-effect: emboss;\nsnippet fef:eg\n font-effect: engrave;\nsnippet fef:n\n font-effect: none;\nsnippet fef:o\n font-effect: outline;\nsnippet femp\n font-emphasize-position: ${1};\nsnippet femp:a\n font-emphasize-position: after;\nsnippet femp:b\n font-emphasize-position: before;\nsnippet fems\n font-emphasize-style: ${1};\nsnippet fems:ac\n font-emphasize-style: accent;\nsnippet fems:c\n font-emphasize-style: circle;\nsnippet fems:ds\n font-emphasize-style: disc;\nsnippet fems:dt\n font-emphasize-style: dot;\nsnippet fems:n\n font-emphasize-style: none;\nsnippet fem\n font-emphasize: ${1};\nsnippet ff\n font-family: ${1};\nsnippet ff:c\n font-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\nsnippet ff:f\n font-family: ${1:Capitals,Impact},fantasy;\nsnippet ff:m\n font-family: ${1:Monaco,'Courier New'},monospace;\nsnippet ff:ss\n font-family: ${1:Helvetica,Arial},sans-serif;\nsnippet ff:s\n font-family: ${1:Georgia,'Times New Roman'},serif;\nsnippet fza\n font-size-adjust: ${1};\nsnippet fza:n\n font-size-adjust: none;\nsnippet fz\n font-size: ${1};\nsnippet fsm\n font-smooth: ${1};\nsnippet fsm:aw\n font-smooth: always;\nsnippet fsm:a\n font-smooth: auto;\nsnippet fsm:n\n font-smooth: never;\nsnippet fst\n font-stretch: ${1};\nsnippet fst:c\n font-stretch: condensed;\nsnippet fst:e\n font-stretch: expanded;\nsnippet fst:ec\n font-stretch: extra-condensed;\nsnippet fst:ee\n font-stretch: extra-expanded;\nsnippet fst:n\n font-stretch: normal;\nsnippet fst:sc\n font-stretch: semi-condensed;\nsnippet fst:se\n font-stretch: semi-expanded;\nsnippet fst:uc\n font-stretch: ultra-condensed;\nsnippet fst:ue\n font-stretch: ultra-expanded;\nsnippet fs\n font-style: ${1};\nsnippet fs:i\n font-style: italic;\nsnippet fs:n\n font-style: normal;\nsnippet fs:o\n font-style: oblique;\nsnippet fv\n font-variant: ${1};\nsnippet fv:n\n font-variant: normal;\nsnippet fv:sc\n font-variant: small-caps;\nsnippet fw\n font-weight: ${1};\nsnippet fw:b\n font-weight: bold;\nsnippet fw:br\n font-weight: bolder;\nsnippet fw:lr\n font-weight: lighter;\nsnippet fw:n\n font-weight: normal;\nsnippet f\n font: ${1};\nsnippet h\n height: ${1};\nsnippet h:a\n height: auto;\nsnippet l\n left: ${1};\nsnippet l:a\n left: auto;\nsnippet lts\n letter-spacing: ${1};\nsnippet lh\n line-height: ${1};\nsnippet lisi\n list-style-image: url(${1});\nsnippet lisi:n\n list-style-image: none;\nsnippet lisp\n list-style-position: ${1};\nsnippet lisp:i\n list-style-position: inside;\nsnippet lisp:o\n list-style-position: outside;\nsnippet list\n list-style-type: ${1};\nsnippet list:c\n list-style-type: circle;\nsnippet list:dclz\n list-style-type: decimal-leading-zero;\nsnippet list:dc\n list-style-type: decimal;\nsnippet list:d\n list-style-type: disc;\nsnippet list:lr\n list-style-type: lower-roman;\nsnippet list:n\n list-style-type: none;\nsnippet list:s\n list-style-type: square;\nsnippet list:ur\n list-style-type: upper-roman;\nsnippet lis\n list-style: ${1};\nsnippet lis:n\n list-style: none;\nsnippet mb\n margin-bottom: ${1};\nsnippet mb:a\n margin-bottom: auto;\nsnippet ml\n margin-left: ${1};\nsnippet ml:a\n margin-left: auto;\nsnippet mr\n margin-right: ${1};\nsnippet mr:a\n margin-right: auto;\nsnippet mt\n margin-top: ${1};\nsnippet mt:a\n margin-top: auto;\nsnippet m\n margin: ${1};\nsnippet m:4\n margin: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet m:3\n margin: ${1:0} ${2:0} ${3:0};\nsnippet m:2\n margin: ${1:0} ${2:0};\nsnippet m:0\n margin: 0;\nsnippet m:a\n margin: auto;\nsnippet mah\n max-height: ${1};\nsnippet mah:n\n max-height: none;\nsnippet maw\n max-width: ${1};\nsnippet maw:n\n max-width: none;\nsnippet mih\n min-height: ${1};\nsnippet miw\n min-width: ${1};\nsnippet op\n opacity: ${1};\nsnippet op:ie\n filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\nsnippet op:ms\n -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\nsnippet orp\n orphans: ${1};\nsnippet o+\n outline: ${1:1px} ${2:solid} #${3:000};\nsnippet oc\n outline-color: ${1:#000};\nsnippet oc:i\n outline-color: invert;\nsnippet oo\n outline-offset: ${1};\nsnippet os\n outline-style: ${1};\nsnippet ow\n outline-width: ${1};\nsnippet o\n outline: ${1};\nsnippet o:n\n outline: none;\nsnippet ovs\n overflow-style: ${1};\nsnippet ovs:a\n overflow-style: auto;\nsnippet ovs:mq\n overflow-style: marquee;\nsnippet ovs:mv\n overflow-style: move;\nsnippet ovs:p\n overflow-style: panner;\nsnippet ovs:s\n overflow-style: scrollbar;\nsnippet ovx\n overflow-x: ${1};\nsnippet ovx:a\n overflow-x: auto;\nsnippet ovx:h\n overflow-x: hidden;\nsnippet ovx:s\n overflow-x: scroll;\nsnippet ovx:v\n overflow-x: visible;\nsnippet ovy\n overflow-y: ${1};\nsnippet ovy:a\n overflow-y: auto;\nsnippet ovy:h\n overflow-y: hidden;\nsnippet ovy:s\n overflow-y: scroll;\nsnippet ovy:v\n overflow-y: visible;\nsnippet ov\n overflow: ${1};\nsnippet ov:a\n overflow: auto;\nsnippet ov:h\n overflow: hidden;\nsnippet ov:s\n overflow: scroll;\nsnippet ov:v\n overflow: visible;\nsnippet pb\n padding-bottom: ${1};\nsnippet pl\n padding-left: ${1};\nsnippet pr\n padding-right: ${1};\nsnippet pt\n padding-top: ${1};\nsnippet p\n padding: ${1};\nsnippet p:4\n padding: ${1:0} ${2:0} ${3:0} ${4:0};\nsnippet p:3\n padding: ${1:0} ${2:0} ${3:0};\nsnippet p:2\n padding: ${1:0} ${2:0};\nsnippet p:0\n padding: 0;\nsnippet pgba\n page-break-after: ${1};\nsnippet pgba:aw\n page-break-after: always;\nsnippet pgba:a\n page-break-after: auto;\nsnippet pgba:l\n page-break-after: left;\nsnippet pgba:r\n page-break-after: right;\nsnippet pgbb\n page-break-before: ${1};\nsnippet pgbb:aw\n page-break-before: always;\nsnippet pgbb:a\n page-break-before: auto;\nsnippet pgbb:l\n page-break-before: left;\nsnippet pgbb:r\n page-break-before: right;\nsnippet pgbi\n page-break-inside: ${1};\nsnippet pgbi:a\n page-break-inside: auto;\nsnippet pgbi:av\n page-break-inside: avoid;\nsnippet pos\n position: ${1};\nsnippet pos:a\n position: absolute;\nsnippet pos:f\n position: fixed;\nsnippet pos:r\n position: relative;\nsnippet pos:s\n position: static;\nsnippet q\n quotes: ${1};\nsnippet q:en\n quotes: '\\201C' '\\201D' '\\2018' '\\2019';\nsnippet q:n\n quotes: none;\nsnippet q:ru\n quotes: '\\00AB' '\\00BB' '\\201E' '\\201C';\nsnippet rz\n resize: ${1};\nsnippet rz:b\n resize: both;\nsnippet rz:h\n resize: horizontal;\nsnippet rz:n\n resize: none;\nsnippet rz:v\n resize: vertical;\nsnippet r\n right: ${1};\nsnippet r:a\n right: auto;\nsnippet tbl\n table-layout: ${1};\nsnippet tbl:a\n table-layout: auto;\nsnippet tbl:f\n table-layout: fixed;\nsnippet tal\n text-align-last: ${1};\nsnippet tal:a\n text-align-last: auto;\nsnippet tal:c\n text-align-last: center;\nsnippet tal:l\n text-align-last: left;\nsnippet tal:r\n text-align-last: right;\nsnippet ta\n text-align: ${1};\nsnippet ta:c\n text-align: center;\nsnippet ta:l\n text-align: left;\nsnippet ta:r\n text-align: right;\nsnippet td\n text-decoration: ${1};\nsnippet td:l\n text-decoration: line-through;\nsnippet td:n\n text-decoration: none;\nsnippet td:o\n text-decoration: overline;\nsnippet td:u\n text-decoration: underline;\nsnippet te\n text-emphasis: ${1};\nsnippet te:ac\n text-emphasis: accent;\nsnippet te:a\n text-emphasis: after;\nsnippet te:b\n text-emphasis: before;\nsnippet te:c\n text-emphasis: circle;\nsnippet te:ds\n text-emphasis: disc;\nsnippet te:dt\n text-emphasis: dot;\nsnippet te:n\n text-emphasis: none;\nsnippet th\n text-height: ${1};\nsnippet th:a\n text-height: auto;\nsnippet th:f\n text-height: font-size;\nsnippet th:m\n text-height: max-size;\nsnippet th:t\n text-height: text-size;\nsnippet ti\n text-indent: ${1};\nsnippet ti:-\n text-indent: -9999px;\nsnippet tj\n text-justify: ${1};\nsnippet tj:a\n text-justify: auto;\nsnippet tj:d\n text-justify: distribute;\nsnippet tj:ic\n text-justify: inter-cluster;\nsnippet tj:ii\n text-justify: inter-ideograph;\nsnippet tj:iw\n text-justify: inter-word;\nsnippet tj:k\n text-justify: kashida;\nsnippet tj:t\n text-justify: tibetan;\nsnippet to+\n text-outline: ${1:0} ${2:0} #${3:000};\nsnippet to\n text-outline: ${1};\nsnippet to:n\n text-outline: none;\nsnippet tr\n text-replace: ${1};\nsnippet tr:n\n text-replace: none;\nsnippet tsh+\n text-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\nsnippet tsh\n text-shadow: ${1};\nsnippet tsh:n\n text-shadow: none;\nsnippet tt\n text-transform: ${1};\nsnippet tt:c\n text-transform: capitalize;\nsnippet tt:l\n text-transform: lowercase;\nsnippet tt:n\n text-transform: none;\nsnippet tt:u\n text-transform: uppercase;\nsnippet tw\n text-wrap: ${1};\nsnippet tw:no\n text-wrap: none;\nsnippet tw:n\n text-wrap: normal;\nsnippet tw:s\n text-wrap: suppress;\nsnippet tw:u\n text-wrap: unrestricted;\nsnippet t\n top: ${1};\nsnippet t:a\n top: auto;\nsnippet va\n vertical-align: ${1};\nsnippet va:bl\n vertical-align: baseline;\nsnippet va:b\n vertical-align: bottom;\nsnippet va:m\n vertical-align: middle;\nsnippet va:sub\n vertical-align: sub;\nsnippet va:sup\n vertical-align: super;\nsnippet va:tb\n vertical-align: text-bottom;\nsnippet va:tt\n vertical-align: text-top;\nsnippet va:t\n vertical-align: top;\nsnippet v\n visibility: ${1};\nsnippet v:c\n visibility: collapse;\nsnippet v:h\n visibility: hidden;\nsnippet v:v\n visibility: visible;\nsnippet whsc\n white-space-collapse: ${1};\nsnippet whsc:ba\n white-space-collapse: break-all;\nsnippet whsc:bs\n white-space-collapse: break-strict;\nsnippet whsc:k\n white-space-collapse: keep-all;\nsnippet whsc:l\n white-space-collapse: loose;\nsnippet whsc:n\n white-space-collapse: normal;\nsnippet whs\n white-space: ${1};\nsnippet whs:n\n white-space: normal;\nsnippet whs:nw\n white-space: nowrap;\nsnippet whs:pl\n white-space: pre-line;\nsnippet whs:pw\n white-space: pre-wrap;\nsnippet whs:p\n white-space: pre;\nsnippet wid\n widows: ${1};\nsnippet w\n width: ${1};\nsnippet w:a\n width: auto;\nsnippet wob\n word-break: ${1};\nsnippet wob:ba\n word-break: break-all;\nsnippet wob:bs\n word-break: break-strict;\nsnippet wob:k\n word-break: keep-all;\nsnippet wob:l\n word-break: loose;\nsnippet wob:n\n word-break: normal;\nsnippet wos\n word-spacing: ${1};\nsnippet wow\n word-wrap: ${1};\nsnippet wow:no\n word-wrap: none;\nsnippet wow:n\n word-wrap: normal;\nsnippet wow:s\n word-wrap: suppress;\nsnippet wow:u\n word-wrap: unrestricted;\nsnippet z\n z-index: ${1};\nsnippet z:a\n z-index: auto;\nsnippet zoo\n zoom: 1;\n",t.scope="css"}) \ No newline at end of file
diff --git a/library/ace/snippets/curly.js b/library/ace/snippets/curly.js
new file mode 100644
index 000000000..6bb5604e0
--- /dev/null
+++ b/library/ace/snippets/curly.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/curly",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="curly"}) \ No newline at end of file
diff --git a/library/ace/snippets/d.js b/library/ace/snippets/d.js
new file mode 100644
index 000000000..1057608da
--- /dev/null
+++ b/library/ace/snippets/d.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/d",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="d"}) \ No newline at end of file
diff --git a/library/ace/snippets/dart.js b/library/ace/snippets/dart.js
new file mode 100644
index 000000000..63c63c9fc
--- /dev/null
+++ b/library/ace/snippets/dart.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dart",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lib\n library ${1};\n ${2}\nsnippet im\n import '${1}';\n ${2}\nsnippet pa\n part '${1}';\n ${2}\nsnippet pao\n part of ${1};\n ${2}\nsnippet main\n void main() {\n ${1:/* code */}\n }\nsnippet st\n static ${1}\nsnippet fi\n final ${1}\nsnippet re\n return ${1}\nsnippet br\n break;\nsnippet th\n throw ${1}\nsnippet cl\n class ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet imp\n implements ${1}\nsnippet ext\n extends ${1}\nsnippet if\n if (${1:true}) {\n ${2}\n }\nsnippet ife\n if (${1:true}) {\n ${2}\n } else {\n ${3}\n }\nsnippet el\n else\nsnippet sw\n switch (${1}) {\n ${2}\n }\nsnippet cs\n case ${1}:\n ${2}\nsnippet de\n default:\n ${1}\nsnippet for\n for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n ${4:$1[$2]}\n }\nsnippet fore\n for (final ${2:item} in ${1:itemList}) {\n ${3:/* code */}\n }\nsnippet wh\n while (${1:/* condition */}) {\n ${2:/* code */}\n }\nsnippet dowh\n do {\n ${2:/* code */}\n } while (${1:/* condition */});\nsnippet as\n assert(${1:/* condition */});\nsnippet try\n try {\n ${2}\n } catch (${1:Exception e}) {\n }\nsnippet tryf\n try {\n ${2}\n } catch (${1:Exception e}) {\n } finally {\n }\n",t.scope="dart"}) \ No newline at end of file
diff --git a/library/ace/snippets/diff.js b/library/ace/snippets/diff.js
new file mode 100644
index 000000000..493c0e9a3
--- /dev/null
+++ b/library/ace/snippets/diff.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/diff",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\nsnippet 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',t.scope="diff"}) \ No newline at end of file
diff --git a/library/ace/snippets/django.js b/library/ace/snippets/django.js
new file mode 100644
index 000000000..d0f67a6c6
--- /dev/null
+++ b/library/ace/snippets/django.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/django",["require","exports","module"],function(e,t,n){"use strict";t.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\nsnippet auto\n ${1:FIELDNAME} = models.AutoField(${2})\nsnippet bool\n ${1:FIELDNAME} = models.BooleanField(${2:default=True})\nsnippet char\n ${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\nsnippet comma\n ${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\nsnippet date\n ${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet datetime\n ${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet decimal\n ${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\nsnippet email\n ${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\nsnippet file\n ${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\nsnippet 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, })\nsnippet float\n ${1:FIELDNAME} = models.FloatField(${2})\nsnippet image\n ${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\nsnippet int\n ${1:FIELDNAME} = models.IntegerField(${2})\nsnippet ip\n ${1:FIELDNAME} = models.IPAddressField(${2})\nsnippet nullbool\n ${1:FIELDNAME} = models.NullBooleanField(${2})\nsnippet posint\n ${1:FIELDNAME} = models.PositiveIntegerField(${2})\nsnippet possmallint\n ${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\nsnippet slug\n ${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\nsnippet smallint\n ${1:FIELDNAME} = models.SmallIntegerField(${2})\nsnippet text\n ${1:FIELDNAME} = models.TextField(${2:blank=True})\nsnippet time\n ${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\nsnippet url\n ${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\nsnippet xml\n ${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\n# Relational Fields\nsnippet fk\n ${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\nsnippet m2m\n ${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\nsnippet 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\nsnippet form\n class ${1:FormName}(forms.Form):\n \"\"\"${2:docstring}\"\"\"\n ${3}\n\nsnippet 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\nsnippet modeladmin\n class ${1:ModelName}Admin(admin.ModelAdmin):\n ${2}\n \n admin.site.register($1, $1Admin)\n \nsnippet tabularinline\n class ${1:ModelName}Inline(admin.TabularInline):\n model = $1\n\nsnippet stackedinline\n class ${1:ModelName}Inline(admin.StackedInline):\n model = $1\n\nsnippet r2r\n return render_to_response('${1:template.html}', {\n ${2}\n }${3:, context_instance=RequestContext(request)}\n )\n",t.scope="django"}) \ No newline at end of file
diff --git a/library/ace/snippets/dockerfile.js b/library/ace/snippets/dockerfile.js
new file mode 100644
index 000000000..0c2742020
--- /dev/null
+++ b/library/ace/snippets/dockerfile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dockerfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dockerfile"}) \ No newline at end of file
diff --git a/library/ace/snippets/dot.js b/library/ace/snippets/dot.js
new file mode 100644
index 000000000..d4a9e9b7a
--- /dev/null
+++ b/library/ace/snippets/dot.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/dot",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dot"}) \ No newline at end of file
diff --git a/library/ace/snippets/eiffel.js b/library/ace/snippets/eiffel.js
new file mode 100644
index 000000000..21fb8886e
--- /dev/null
+++ b/library/ace/snippets/eiffel.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/eiffel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="eiffel"}) \ No newline at end of file
diff --git a/library/ace/snippets/ejs.js b/library/ace/snippets/ejs.js
new file mode 100644
index 000000000..2e8cbcac6
--- /dev/null
+++ b/library/ace/snippets/ejs.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ejs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ejs"}) \ No newline at end of file
diff --git a/library/ace/snippets/elixir.js b/library/ace/snippets/elixir.js
new file mode 100644
index 000000000..455f2f4a4
--- /dev/null
+++ b/library/ace/snippets/elixir.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/elixir",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/elm.js b/library/ace/snippets/elm.js
new file mode 100644
index 000000000..b483953ca
--- /dev/null
+++ b/library/ace/snippets/elm.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/elm",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="elm"}) \ No newline at end of file
diff --git a/library/ace/snippets/erlang.js b/library/ace/snippets/erlang.js
new file mode 100644
index 000000000..ca27ff85e
--- /dev/null
+++ b/library/ace/snippets/erlang.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/erlang",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# module and export all\nsnippet mod\n -module(${1:`Filename('', 'my')`}).\n \n -compile([export_all]).\n \n start() ->\n ${2}\n \n stop() ->\n ok.\n# define directive\nsnippet def\n -define(${1:macro}, ${2:body}).${3}\n# export directive\nsnippet exp\n -export([${1:function}/${2:arity}]).\n# include directive\nsnippet inc\n -include(\"${1:file}\").${2}\n# behavior directive\nsnippet beh\n -behaviour(${1:behaviour}).${2}\n# if expression\nsnippet if\n if\n ${1:guard} ->\n ${2:body}\n end\n# case expression\nsnippet case\n case ${1:expression} of\n ${2:pattern} ->\n ${3:body};\n end\n# anonymous function\nsnippet fun\n fun (${1:Parameters}) -> ${2:body} end${3}\n# try...catch\nsnippet try\n try\n ${1}\n catch\n ${2:_:_} -> ${3:got_some_exception}\n end\n# record directive\nsnippet rec\n -record(${1:record}, {\n ${2:field}=${3:value}}).${4}\n# todo comment\nsnippet 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\nsnippet %d\n %% @doc ${1}\n# end of doc comment\nsnippet %e\n %% @end\n# specification comment\nsnippet %s\n %% @spec ${1}\n# private function marker\nsnippet %p\n %% @private\n# OTP application\nsnippet 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\nsnippet 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\nsnippet 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",t.scope="erlang"}) \ No newline at end of file
diff --git a/library/ace/snippets/forth.js b/library/ace/snippets/forth.js
new file mode 100644
index 000000000..3aa9db09d
--- /dev/null
+++ b/library/ace/snippets/forth.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/forth",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="forth"}) \ No newline at end of file
diff --git a/library/ace/snippets/fortran.js b/library/ace/snippets/fortran.js
new file mode 100644
index 000000000..b58d2ec79
--- /dev/null
+++ b/library/ace/snippets/fortran.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/fortran",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="fortran"}) \ No newline at end of file
diff --git a/library/ace/snippets/ftl.js b/library/ace/snippets/ftl.js
new file mode 100644
index 000000000..3e57d1723
--- /dev/null
+++ b/library/ace/snippets/ftl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ftl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ftl"}) \ No newline at end of file
diff --git a/library/ace/snippets/gcode.js b/library/ace/snippets/gcode.js
new file mode 100644
index 000000000..b0108dfe1
--- /dev/null
+++ b/library/ace/snippets/gcode.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gcode"}) \ No newline at end of file
diff --git a/library/ace/snippets/gherkin.js b/library/ace/snippets/gherkin.js
new file mode 100644
index 000000000..44a88695f
--- /dev/null
+++ b/library/ace/snippets/gherkin.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gherkin",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gherkin"}) \ No newline at end of file
diff --git a/library/ace/snippets/gitignore.js b/library/ace/snippets/gitignore.js
new file mode 100644
index 000000000..87713df04
--- /dev/null
+++ b/library/ace/snippets/gitignore.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gitignore",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gitignore"}) \ No newline at end of file
diff --git a/library/ace/snippets/glsl.js b/library/ace/snippets/glsl.js
new file mode 100644
index 000000000..042ed75b7
--- /dev/null
+++ b/library/ace/snippets/glsl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/glsl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="glsl"}) \ No newline at end of file
diff --git a/library/ace/snippets/gobstones.js b/library/ace/snippets/gobstones.js
new file mode 100644
index 000000000..95eed9063
--- /dev/null
+++ b/library/ace/snippets/gobstones.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/gobstones",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# Procedure\nsnippet proc\n procedure ${1?:name}(${2:argument}) {\n ${3:// body...}\n }\n\n# Function\nsnippet fun\n function ${1?:name}(${2:argument}) {\n return ${3:// body...}\n }\n\n# Repeat\nsnippet rep\n repeat ${1?:times} {\n ${2:// body...}\n }\n\n# For\nsnippet for\n foreach ${1?:e} in ${2?:list} {\n ${3:// body...} \n }\n\n# If\nsnippet if\n if (${1?:condition}) {\n ${3:// body...} \n }\n\n# While\n while (${1?:condition}) {\n ${2:// body...} \n }\n",t.scope="gobstones"}) \ No newline at end of file
diff --git a/library/ace/snippets/golang.js b/library/ace/snippets/golang.js
new file mode 100644
index 000000000..f1f0309c0
--- /dev/null
+++ b/library/ace/snippets/golang.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/golang",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="golang"}) \ No newline at end of file
diff --git a/library/ace/snippets/groovy.js b/library/ace/snippets/groovy.js
new file mode 100644
index 000000000..a293cc489
--- /dev/null
+++ b/library/ace/snippets/groovy.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/groovy",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="groovy"}) \ No newline at end of file
diff --git a/library/ace/snippets/haml.js b/library/ace/snippets/haml.js
new file mode 100644
index 000000000..95d637aad
--- /dev/null
+++ b/library/ace/snippets/haml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet t\n %table\n %tr\n %th\n ${1:headers}\n %tr\n %td\n ${2:headers}\nsnippet ul\n %ul\n %li\n ${1:item}\n %li\nsnippet =rp\n = render :partial => '${1:partial}'\nsnippet =rpl\n = render :partial => '${1:partial}', :locals => {}\nsnippet =rpc\n = render :partial => '${1:partial}', :collection => @$1\n\n",t.scope="haml"}) \ No newline at end of file
diff --git a/library/ace/snippets/handlebars.js b/library/ace/snippets/handlebars.js
new file mode 100644
index 000000000..70dc88efa
--- /dev/null
+++ b/library/ace/snippets/handlebars.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/handlebars",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="handlebars"}) \ No newline at end of file
diff --git a/library/ace/snippets/haskell.js b/library/ace/snippets/haskell.js
new file mode 100644
index 000000000..69c2ef80b
--- /dev/null
+++ b/library/ace/snippets/haskell.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haskell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lang\n {-# LANGUAGE ${1:OverloadedStrings} #-}\nsnippet 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 --\nsnippet import\n import ${1:Data.Text}\nsnippet import2\n import ${1:Data.Text} (${2:head})\nsnippet importq\n import qualified ${1:Data.Text} as ${2:T}\nsnippet inst\n instance ${1:Monoid} ${2:Type} where\n ${3}\nsnippet type\n type ${1:Type} = ${2:Type}\nsnippet data\n data ${1:Type} = ${2:$1} ${3:Int}\nsnippet newtype\n newtype ${1:Type} = ${2:$1} ${3:Int}\nsnippet class\n class ${1:Class} a where\n ${2}\nsnippet module\n module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n ) where\n `expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n print \\\"hello world\\\"\" : \"\"`\n\nsnippet const\n ${1:name} :: ${2:a}\n $1 = ${3:undefined}\nsnippet fn\n ${1:fn} :: ${2:a} -> ${3:a}\n $1 ${4} = ${5:undefined}\nsnippet fn2\n ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n $1 ${5} = ${6:undefined}\nsnippet ap\n ${1:map} ${2:fn} ${3:list}\nsnippet do\n do\n \nsnippet \u03bb\n \\${1:x} -> ${2}\nsnippet \\\n \\${1:x} -> ${2}\nsnippet <-\n ${1:a} <- ${2:m a}\nsnippet \u2190\n ${1:a} <- ${2:m a}\nsnippet ->\n ${1:m a} -> ${2:a}\nsnippet \u2192\n ${1:m a} -> ${2:a}\nsnippet tup\n (${1:a}, ${2:b})\nsnippet tup2\n (${1:a}, ${2:b}, ${3:c})\nsnippet tup3\n (${1:a}, ${2:b}, ${3:c}, ${4:d})\nsnippet rec\n ${1:Record} { ${2:recFieldA} = ${3:undefined}\n , ${4:recFieldB} = ${5:undefined}\n }\nsnippet case\n case ${1:something} of\n ${2} -> ${3}\nsnippet let\n let ${1} = ${2}\n in ${3}\nsnippet where\n where\n ${1:fn} = ${2:undefined}\n",t.scope="haskell"}) \ No newline at end of file
diff --git a/library/ace/snippets/haxe.js b/library/ace/snippets/haxe.js
new file mode 100644
index 000000000..d24a9828e
--- /dev/null
+++ b/library/ace/snippets/haxe.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/haxe",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="haxe"}) \ No newline at end of file
diff --git a/library/ace/snippets/html.js b/library/ace/snippets/html.js
new file mode 100644
index 000000000..a220d3df1
--- /dev/null
+++ b/library/ace/snippets/html.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/html",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Some useful Unicode entities\n# Non-Breaking Space\nsnippet nbs\n &nbsp;\n# \u2190\nsnippet left\n &#x2190;\n# \u2192\nsnippet right\n &#x2192;\n# \u2191\nsnippet up\n &#x2191;\n# \u2193\nsnippet down\n &#x2193;\n# \u21a9\nsnippet return\n &#x21A9;\n# \u21e4\nsnippet backtab\n &#x21E4;\n# \u21e5\nsnippet tab\n &#x21E5;\n# \u21e7\nsnippet shift\n &#x21E7;\n# \u2303\nsnippet ctrl\n &#x2303;\n# \u2305\nsnippet enter\n &#x2305;\n# \u2318\nsnippet cmd\n &#x2318;\n# \u2325\nsnippet option\n &#x2325;\n# \u2326\nsnippet delete\n &#x2326;\n# \u232b\nsnippet backspace\n &#x232B;\n# \u238b\nsnippet esc\n &#x238B;\n# Generic Doctype\nsnippet doctype HTML 4.01 Strict\n <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n "http://www.w3.org/TR/html4/strict.dtd">\nsnippet 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">\nsnippet doctype HTML 5\n <!DOCTYPE HTML>\nsnippet 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">\nsnippet 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">\nsnippet 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">\nsnippet 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\nsnippet 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\nsnippet 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\nsnippet doct5\n <!DOCTYPE HTML>\n# XHTML Doctype 1.0 Frameset\nsnippet 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\nsnippet 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\nsnippet 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\nsnippet docx\n <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\n "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n# Attributes\nsnippet attr\n ${1:attribute}="${2:property}"\nsnippet attr+\n ${1:attribute}="${2:property}" attr+${3}\nsnippet .\n class="${1}"${2}\nsnippet #\n id="${1}"${2}\nsnippet alt\n alt="${1}"${2}\nsnippet charset\n charset="${1:utf-8}"${2}\nsnippet data\n data-${1}="${2:$1}"${3}\nsnippet for\n for="${1}"${2}\nsnippet height\n height="${1}"${2}\nsnippet href\n href="${1:#}"${2}\nsnippet lang\n lang="${1:en}"${2}\nsnippet media\n media="${1}"${2}\nsnippet name\n name="${1}"${2}\nsnippet rel\n rel="${1}"${2}\nsnippet scope\n scope="${1:row}"${2}\nsnippet src\n src="${1}"${2}\nsnippet title=\n title="${1}"${2}\nsnippet type\n type="${1}"${2}\nsnippet value\n value="${1}"${2}\nsnippet width\n width="${1}"${2}\n# Elements\nsnippet a\n <a href="${1:#}">${2:$1}</a>\nsnippet a.\n <a class="${1}" href="${2:#}">${3:$1}</a>\nsnippet a#\n <a id="${1}" href="${2:#}">${3:$1}</a>\nsnippet a:ext\n <a href="http://${1:example.com}">${2:$1}</a>\nsnippet a:mail\n <a href="mailto:${1:joe@example.com}?subject=${2:feedback}">${3:email me}</a>\nsnippet abbr\n <abbr title="${1}">${2}</abbr>\nsnippet address\n <address>\n ${1}\n </address>\nsnippet area\n <area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\nsnippet area+\n <area shape="${1:rect}" coords="${2}" href="${3}" alt="${4}" />\n area+${5}\nsnippet area:c\n <area shape="circle" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:d\n <area shape="default" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:p\n <area shape="poly" coords="${1}" href="${2}" alt="${3}" />\nsnippet area:r\n <area shape="rect" coords="${1}" href="${2}" alt="${3}" />\nsnippet article\n <article>\n ${1}\n </article>\nsnippet article.\n <article class="${1}">\n ${2}\n </article>\nsnippet article#\n <article id="${1}">\n ${2}\n </article>\nsnippet aside\n <aside>\n ${1}\n </aside>\nsnippet aside.\n <aside class="${1}">\n ${2}\n </aside>\nsnippet aside#\n <aside id="${1}">\n ${2}\n </aside>\nsnippet audio\n <audio src="${1}>${2}</audio>\nsnippet b\n <b>${1}</b>\nsnippet base\n <base href="${1}" target="${2}" />\nsnippet bdi\n <bdi>${1}</bdo>\nsnippet bdo\n <bdo dir="${1}">${2}</bdo>\nsnippet bdo:l\n <bdo dir="ltr">${1}</bdo>\nsnippet bdo:r\n <bdo dir="rtl">${1}</bdo>\nsnippet blockquote\n <blockquote>\n ${1}\n </blockquote>\nsnippet body\n <body>\n ${1}\n </body>\nsnippet br\n <br />${1}\nsnippet button\n <button type="${1:submit}">${2}</button>\nsnippet button.\n <button class="${1:button}" type="${2:submit}">${3}</button>\nsnippet button#\n <button id="${1}" type="${2:submit}">${3}</button>\nsnippet button:s\n <button type="submit">${1}</button>\nsnippet button:r\n <button type="reset">${1}</button>\nsnippet canvas\n <canvas>\n ${1}\n </canvas>\nsnippet caption\n <caption>${1}</caption>\nsnippet cite\n <cite>${1}</cite>\nsnippet code\n <code>${1}</code>\nsnippet col\n <col />${1}\nsnippet col+\n <col />\n col+${1}\nsnippet colgroup\n <colgroup>\n ${1}\n </colgroup>\nsnippet colgroup+\n <colgroup>\n <col />\n col+${1}\n </colgroup>\nsnippet command\n <command type="command" label="${1}" icon="${2}" />\nsnippet command:c\n <command type="checkbox" label="${1}" icon="${2}" />\nsnippet command:r\n <command type="radio" radiogroup="${1}" label="${2}" icon="${3}" />\nsnippet datagrid\n <datagrid>\n ${1}\n </datagrid>\nsnippet datalist\n <datalist>\n ${1}\n </datalist>\nsnippet datatemplate\n <datatemplate>\n ${1}\n </datatemplate>\nsnippet dd\n <dd>${1}</dd>\nsnippet dd.\n <dd class="${1}">${2}</dd>\nsnippet dd#\n <dd id="${1}">${2}</dd>\nsnippet del\n <del>${1}</del>\nsnippet details\n <details>${1}</details>\nsnippet dfn\n <dfn>${1}</dfn>\nsnippet dialog\n <dialog>\n ${1}\n </dialog>\nsnippet div\n <div>\n ${1}\n </div>\nsnippet div.\n <div class="${1}">\n ${2}\n </div>\nsnippet div#\n <div id="${1}">\n ${2}\n </div>\nsnippet dl\n <dl>\n ${1}\n </dl>\nsnippet dl.\n <dl class="${1}">\n ${2}\n </dl>\nsnippet dl#\n <dl id="${1}">\n ${2}\n </dl>\nsnippet dl+\n <dl>\n <dt>${1}</dt>\n <dd>${2}</dd>\n dt+${3}\n </dl>\nsnippet dt\n <dt>${1}</dt>\nsnippet dt.\n <dt class="${1}">${2}</dt>\nsnippet dt#\n <dt id="${1}">${2}</dt>\nsnippet dt+\n <dt>${1}</dt>\n <dd>${2}</dd>\n dt+${3}\nsnippet em\n <em>${1}</em>\nsnippet embed\n <embed src=${1} type="${2} />\nsnippet fieldset\n <fieldset>\n ${1}\n </fieldset>\nsnippet fieldset.\n <fieldset class="${1}">\n ${2}\n </fieldset>\nsnippet fieldset#\n <fieldset id="${1}">\n ${2}\n </fieldset>\nsnippet fieldset+\n <fieldset>\n <legend><span>${1}</span></legend>\n ${2}\n </fieldset>\n fieldset+${3}\nsnippet figcaption\n <figcaption>${1}</figcaption>\nsnippet figure\n <figure>${1}</figure>\nsnippet footer\n <footer>\n ${1}\n </footer>\nsnippet footer.\n <footer class="${1}">\n ${2}\n </footer>\nsnippet footer#\n <footer id="${1}">\n ${2}\n </footer>\nsnippet form\n <form action="${1}" method="${2:get}" accept-charset="utf-8">\n ${3}\n </form>\nsnippet form.\n <form class="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n ${4}\n </form>\nsnippet form#\n <form id="${1}" action="${2}" method="${3:get}" accept-charset="utf-8">\n ${4}\n </form>\nsnippet h1\n <h1>${1}</h1>\nsnippet h1.\n <h1 class="${1}">${2}</h1>\nsnippet h1#\n <h1 id="${1}">${2}</h1>\nsnippet h2\n <h2>${1}</h2>\nsnippet h2.\n <h2 class="${1}">${2}</h2>\nsnippet h2#\n <h2 id="${1}">${2}</h2>\nsnippet h3\n <h3>${1}</h3>\nsnippet h3.\n <h3 class="${1}">${2}</h3>\nsnippet h3#\n <h3 id="${1}">${2}</h3>\nsnippet h4\n <h4>${1}</h4>\nsnippet h4.\n <h4 class="${1}">${2}</h4>\nsnippet h4#\n <h4 id="${1}">${2}</h4>\nsnippet h5\n <h5>${1}</h5>\nsnippet h5.\n <h5 class="${1}">${2}</h5>\nsnippet h5#\n <h5 id="${1}">${2}</h5>\nsnippet h6\n <h6>${1}</h6>\nsnippet h6.\n <h6 class="${1}">${2}</h6>\nsnippet h6#\n <h6 id="${1}">${2}</h6>\nsnippet 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>\nsnippet header\n <header>\n ${1}\n </header>\nsnippet header.\n <header class="${1}">\n ${2}\n </header>\nsnippet header#\n <header id="${1}">\n ${2}\n </header>\nsnippet hgroup\n <hgroup>\n ${1}\n </hgroup>\nsnippet hgroup.\n <hgroup class="${1}>\n ${2}\n </hgroup>\nsnippet hr\n <hr />${1}\nsnippet html\n <html>\n ${1}\n </html>\nsnippet xhtml\n <html xmlns="http://www.w3.org/1999/xhtml">\n ${1}\n </html>\nsnippet 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>\nsnippet i\n <i>${1}</i>\nsnippet iframe\n <iframe src="${1}" frameborder="0"></iframe>${2}\nsnippet iframe.\n <iframe class="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet iframe#\n <iframe id="${1}" src="${2}" frameborder="0"></iframe>${3}\nsnippet img\n <img src="${1}" alt="${2}" />${3}\nsnippet img.\n <img class="${1}" src="${2}" alt="${3}" />${4}\nsnippet img#\n <img id="${1}" src="${2}" alt="${3}" />${4}\nsnippet input\n <input type="${1:text/submit/hidden/button/image}" name="${2}" id="${3:$2}" value="${4}" />${5}\nsnippet input.\n <input class="${1}" type="${2:text/submit/hidden/button/image}" name="${3}" id="${4:$3}" value="${5}" />${6}\nsnippet input:text\n <input type="text" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:submit\n <input type="submit" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:hidden\n <input type="hidden" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:button\n <input type="button" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:image\n <input type="image" name="${1}" id="${2:$1}" src="${3}" alt="${4}" />${5}\nsnippet input:checkbox\n <input type="checkbox" name="${1}" id="${2:$1}" />${3}\nsnippet input:radio\n <input type="radio" name="${1}" id="${2:$1}" />${3}\nsnippet input:color\n <input type="color" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:date\n <input type="date" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime\n <input type="datetime" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:datetime-local\n <input type="datetime-local" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:email\n <input type="email" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:file\n <input type="file" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:month\n <input type="month" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:number\n <input type="number" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:password\n <input type="password" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:range\n <input type="range" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:reset\n <input type="reset" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:search\n <input type="search" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:time\n <input type="time" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:url\n <input type="url" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet input:week\n <input type="week" name="${1}" id="${2:$1}" value="${3}" />${4}\nsnippet ins\n <ins>${1}</ins>\nsnippet kbd\n <kbd>${1}</kbd>\nsnippet keygen\n <keygen>${1}</keygen>\nsnippet label\n <label for="${2:$1}">${1}</label>\nsnippet 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}\nsnippet 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>\nsnippet legend\n <legend>${1}</legend>\nsnippet legend+\n <legend><span>${1}</span></legend>\nsnippet li\n <li>${1}</li>\nsnippet li.\n <li class="${1}">${2}</li>\nsnippet li+\n <li>${1}</li>\n li+${2}\nsnippet lia\n <li><a href="${2:#}">${1}</a></li>\nsnippet lia+\n <li><a href="${2:#}">${1}</a></li>\n lia+${3}\nsnippet link\n <link rel="${1}" href="${2}" title="${3}" type="${4}" />${5}\nsnippet link:atom\n <link rel="alternate" href="${1:atom.xml}" title="Atom" type="application/atom+xml" />${2}\nsnippet link:css\n <link rel="stylesheet" href="${2:style.css}" type="text/css" media="${3:all}" />${4}\nsnippet link:favicon\n <link rel="shortcut icon" href="${1:favicon.ico}" type="image/x-icon" />${2}\nsnippet link:rss\n <link rel="alternate" href="${1:rss.xml}" title="RSS" type="application/atom+xml" />${2}\nsnippet link:touch\n <link rel="apple-touch-icon" href="${1:favicon.png}" />${2}\nsnippet map\n <map name="${1}">\n ${2}\n </map>\nsnippet map.\n <map class="${1}" name="${2}">\n ${3}\n </map>\nsnippet map#\n <map name="${1}" id="${2:$1}>\n ${3}\n </map>\nsnippet map+\n <map name="${1}">\n <area shape="${2}" coords="${3}" href="${4}" alt="${5}" />${6}\n </map>${7}\nsnippet mark\n <mark>${1}</mark>\nsnippet menu\n <menu>\n ${1}\n </menu>\nsnippet menu:c\n <menu type="context">\n ${1}\n </menu>\nsnippet menu:t\n <menu type="toolbar">\n ${1}\n </menu>\nsnippet meta\n <meta http-equiv="${1}" content="${2}" />${3}\nsnippet meta:compat\n <meta http-equiv="X-UA-Compatible" content="IE=${1:7,8,edge}" />${3}\nsnippet meta:refresh\n <meta http-equiv="refresh" content="text/html;charset=UTF-8" />${3}\nsnippet meta:utf\n <meta http-equiv="content-type" content="text/html;charset=UTF-8" />${3}\nsnippet meter\n <meter>${1}</meter>\nsnippet nav\n <nav>\n ${1}\n </nav>\nsnippet nav.\n <nav class="${1}">\n ${2}\n </nav>\nsnippet nav#\n <nav id="${1}">\n ${2}\n </nav>\nsnippet noscript\n <noscript>\n ${1}\n </noscript>\nsnippet object\n <object data="${1}" type="${2}">\n ${3}\n </object>${4}\n# Embed QT Movie\nsnippet 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}\nsnippet ol\n <ol>\n ${1}\n </ol>\nsnippet ol.\n <ol class="${1}>\n ${2}\n </ol>\nsnippet ol#\n <ol id="${1}>\n ${2}\n </ol>\nsnippet ol+\n <ol>\n <li>${1}</li>\n li+${2}\n </ol>\nsnippet opt\n <option value="${1}">${2:$1}</option>\nsnippet opt+\n <option value="${1}">${2:$1}</option>\n opt+${3}\nsnippet optt\n <option>${1}</option>\nsnippet optgroup\n <optgroup>\n <option value="${1}">${2:$1}</option>\n opt+${3}\n </optgroup>\nsnippet output\n <output>${1}</output>\nsnippet p\n <p>${1}</p>\nsnippet param\n <param name="${1}" value="${2}" />${3}\nsnippet pre\n <pre>\n ${1}\n </pre>\nsnippet progress\n <progress>${1}</progress>\nsnippet q\n <q>${1}</q>\nsnippet rp\n <rp>${1}</rp>\nsnippet rt\n <rt>${1}</rt>\nsnippet ruby\n <ruby>\n <rp><rt>${1}</rt></rp>\n </ruby>\nsnippet s\n <s>${1}</s>\nsnippet samp\n <samp>\n ${1}\n </samp>\nsnippet script\n <script type="text/javascript" charset="utf-8">\n ${1}\n <\/script>\nsnippet scriptsrc\n <script src="${1}.js" type="text/javascript" charset="utf-8"><\/script>\nsnippet section\n <section>\n ${1}\n </section>\nsnippet section.\n <section class="${1}">\n ${2}\n </section>\nsnippet section#\n <section id="${1}">\n ${2}\n </section>\nsnippet select\n <select name="${1}" id="${2:$1}">\n ${3}\n </select>\nsnippet select.\n <select name="${1}" id="${2:$1}" class="${3}>\n ${4}\n </select>\nsnippet select+\n <select name="${1}" id="${2:$1}">\n <option value="${3}">${4:$3}</option>\n opt+${5}\n </select>\nsnippet small\n <small>${1}</small>\nsnippet source\n <source src="${1}" type="${2}" media="${3}" />\nsnippet span\n <span>${1}</span>\nsnippet strong\n <strong>${1}</strong>\nsnippet style\n <style type="text/css" media="${1:all}">\n ${2}\n </style>\nsnippet sub\n <sub>${1}</sub>\nsnippet summary\n <summary>\n ${1}\n </summary>\nsnippet sup\n <sup>${1}</sup>\nsnippet table\n <table border="${1:0}">\n ${2}\n </table>\nsnippet table.\n <table class="${1}" border="${2:0}">\n ${3}\n </table>\nsnippet table#\n <table id="${1}" border="${2:0}">\n ${3}\n </table>\nsnippet tbody\n <tbody>\n ${1}\n </tbody>\nsnippet td\n <td>${1}</td>\nsnippet td.\n <td class="${1}">${2}</td>\nsnippet td#\n <td id="${1}">${2}</td>\nsnippet td+\n <td>${1}</td>\n td+${2}\nsnippet textarea\n <textarea name="${1}" id=${2:$1} rows="${3:8}" cols="${4:40}">${5}</textarea>${6}\nsnippet tfoot\n <tfoot>\n ${1}\n </tfoot>\nsnippet th\n <th>${1}</th>\nsnippet th.\n <th class="${1}">${2}</th>\nsnippet th#\n <th id="${1}">${2}</th>\nsnippet th+\n <th>${1}</th>\n th+${2}\nsnippet thead\n <thead>\n ${1}\n </thead>\nsnippet time\n <time datetime="${1}" pubdate="${2:$1}>${3:$1}</time>\nsnippet title\n <title>${1:`substitute(Filename(\'\', \'Page Title\'), \'^.\', \'\\u&\', \'\')`}</title>\nsnippet tr\n <tr>\n ${1}\n </tr>\nsnippet tr+\n <tr>\n <td>${1}</td>\n td+${2}\n </tr>\nsnippet track\n <track src="${1}" srclang="${2}" label="${3}" default="${4:default}>${5}</track>${6}\nsnippet ul\n <ul>\n ${1}\n </ul>\nsnippet ul.\n <ul class="${1}">\n ${2}\n </ul>\nsnippet ul#\n <ul id="${1}">\n ${2}\n </ul>\nsnippet ul+\n <ul>\n <li>${1}</li>\n li+${2}\n </ul>\nsnippet var\n <var>${1}</var>\nsnippet video\n <video src="${1} height="${2}" width="${3}" preload="${5:none}" autoplay="${6:autoplay}>${7}</video>${8}\nsnippet wbr\n <wbr />${1}\n',t.scope="html"}) \ No newline at end of file
diff --git a/library/ace/snippets/html_elixir.js b/library/ace/snippets/html_elixir.js
new file mode 100644
index 000000000..90ebfc734
--- /dev/null
+++ b/library/ace/snippets/html_elixir.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/html_elixir",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="html_elixir"}) \ No newline at end of file
diff --git a/library/ace/snippets/html_ruby.js b/library/ace/snippets/html_ruby.js
new file mode 100644
index 000000000..4ed2cd912
--- /dev/null
+++ b/library/ace/snippets/html_ruby.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/html_ruby",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="html_ruby"}) \ No newline at end of file
diff --git a/library/ace/snippets/ini.js b/library/ace/snippets/ini.js
new file mode 100644
index 000000000..f520b9bed
--- /dev/null
+++ b/library/ace/snippets/ini.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ini",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ini"}) \ No newline at end of file
diff --git a/library/ace/snippets/io.js b/library/ace/snippets/io.js
new file mode 100644
index 000000000..20bff1adf
--- /dev/null
+++ b/library/ace/snippets/io.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/io",["require","exports","module"],function(e,t,n){"use strict";t.snippets=[{content:"assertEquals(${1:expected}, ${2:expr})",name:"assertEquals",scope:"io",tabTrigger:"ae"},{content:"${1:${2:newValue} := ${3:Object} }clone do(\n $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 ${2:body}\n)$0",keyEquivalent:"@(",name:"Indented Bracketed Line",scope:"io",tabTrigger:"("},{content:"\n $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 $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 $0\n)",name:"Object clone do",scope:"io",tabTrigger:"ocdo"},{content:"test${1:SomeFeature} := method(\n $0\n)",name:"testMethod",scope:"io",tabTrigger:"ts"},{content:"${1:Something}Test := ${2:UnitTest} clone do(\n $0\n)",name:"UnitTest",scope:"io",tabTrigger:"ut"}],t.scope="io"}) \ No newline at end of file
diff --git a/library/ace/snippets/jack.js b/library/ace/snippets/jack.js
new file mode 100644
index 000000000..99b0ebd5b
--- /dev/null
+++ b/library/ace/snippets/jack.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jack",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jack"}) \ No newline at end of file
diff --git a/library/ace/snippets/jade.js b/library/ace/snippets/jade.js
new file mode 100644
index 000000000..bbd1087fb
--- /dev/null
+++ b/library/ace/snippets/jade.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jade",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jade"}) \ No newline at end of file
diff --git a/library/ace/snippets/java.js b/library/ace/snippets/java.js
new file mode 100644
index 000000000..3a026ea8e
--- /dev/null
+++ b/library/ace/snippets/java.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/java",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='## Access Modifiers\nsnippet po\n protected\nsnippet pu\n public\nsnippet pr\n private\n##\n## Annotations\nsnippet before\n @Before\n static void ${1:intercept}(${2:args}) { ${3} }\nsnippet mm\n @ManyToMany\n ${1}\nsnippet mo\n @ManyToOne\n ${1}\nsnippet om\n @OneToMany${1:(cascade=CascadeType.ALL)}\n ${2}\nsnippet oo\n @OneToOne\n ${1}\n##\n## Basic Java packages and import\nsnippet im\n import\nsnippet j.b\n java.beans.\nsnippet j.i\n java.io.\nsnippet j.m\n java.math.\nsnippet j.n\n java.net.\nsnippet j.u\n java.util.\n##\n## Class\nsnippet cl\n class ${1:`Filename("", "untitled")`} ${2}\nsnippet in\n interface ${1:`Filename("", "untitled")`} ${2:extends Parent}${3}\nsnippet tc\n public class ${1:`Filename()`} extends ${2:TestCase}\n##\n## Class Enhancements\nsnippet ext\n extends \nsnippet imp\n implements\n##\n## Comments\nsnippet /*\n /*\n * ${1}\n */\n##\n## Constants\nsnippet co\n static public final ${1:String} ${2:var} = ${3};${4}\nsnippet cos\n static public final String ${1:var} = "${2}";${3}\n##\n## Control Statements\nsnippet case\n case ${1}:\n ${2}\nsnippet def\n default:\n ${2}\nsnippet el\n else\nsnippet elif\n else if (${1}) ${2}\nsnippet if\n if (${1}) ${2}\nsnippet sw\n switch (${1}) {\n ${2}\n }\n##\n## Create a Method\nsnippet m\n ${1:void} ${2:method}(${3}) ${4:throws }${5}\n##\n## Create a Variable\nsnippet v\n ${1:String} ${2:var}${3: = null}${4};${5}\n##\n## Enhancements to Methods, variables, classes, etc.\nsnippet ab\n abstract\nsnippet fi\n final\nsnippet st\n static\nsnippet sy\n synchronized\n##\n## Error Methods\nsnippet err\n System.err.print("${1:Message}");\nsnippet errf\n System.err.printf("${1:Message}", ${2:exception});\nsnippet errln\n System.err.println("${1:Message}");\n##\n## Exception Handling\nsnippet as\n assert ${1:test} : "${2:Failure message}";${3}\nsnippet ca\n catch(${1:Exception} ${2:e}) ${3}\nsnippet thr\n throw\nsnippet ths\n throws\nsnippet try\n try {\n ${3}\n } catch(${1:Exception} ${2:e}) {\n }\nsnippet tryf\n try {\n ${3}\n } catch(${1:Exception} ${2:e}) {\n } finally {\n }\n##\n## Find Methods\nsnippet findall\n List<${1:listName}> ${2:items} = ${1}.findAll();${3}\nsnippet findbyid\n ${1:var} ${2:item} = ${1}.findById(${3});${4}\n##\n## Javadocs\nsnippet /**\n /**\n * ${1}\n */\nsnippet @au\n @author `system("grep \\`id -un\\` /etc/passwd | cut -d \\":\\" -f5 | cut -d \\",\\" -f1")`\nsnippet @br\n @brief ${1:Description}\nsnippet @fi\n @file ${1:`Filename()`}.java\nsnippet @pa\n @param ${1:param}\nsnippet @re\n @return ${1:param}\n##\n## Logger Methods\nsnippet debug\n Logger.debug(${1:param});${2}\nsnippet error\n Logger.error(${1:param});${2}\nsnippet info\n Logger.info(${1:param});${2}\nsnippet warn\n Logger.warn(${1:param});${2}\n##\n## Loops\nsnippet enfor\n for (${1} : ${2}) ${3}\nsnippet for\n for (${1}; ${2}; ${3}) ${4}\nsnippet wh\n while (${1}) ${2}\n##\n## Main method\nsnippet main\n public static void main (String[] args) {\n ${1:/* code */}\n }\n##\n## Print Methods\nsnippet print\n System.out.print("${1:Message}");\nsnippet printf\n System.out.printf("${1:Message}", ${2:args});\nsnippet println\n System.out.println(${1});\n##\n## Render Methods\nsnippet ren\n render(${1:param});${2}\nsnippet rena\n renderArgs.put("${1}", ${2});${3}\nsnippet renb\n renderBinary(${1:param});${2}\nsnippet renj\n renderJSON(${1:param});${2}\nsnippet renx\n renderXml(${1:param});${2}\n##\n## Setter and Getter Methods\nsnippet set\n ${1:public} void set${3:}(${2:String} ${4:}){\n this.$4 = $4;\n }\nsnippet get\n ${1:public} ${2:String} get${3:}(){\n return this.${4:};\n }\n##\n## Terminate Methods or Loops\nsnippet re\n return\nsnippet br\n break;\n##\n## Test Methods\nsnippet t\n public void test${1:Name}() throws Exception {\n ${2}\n }\nsnippet test\n @Test\n public void test${1:Name}() throws Exception {\n ${2}\n }\n##\n## Utils\nsnippet Sc\n Scanner\n##\n## Miscellaneous\nsnippet action\n public static void ${1:index}(${2:args}) { ${3} }\nsnippet rnf\n notFound(${1:param});${2}\nsnippet rnfin\n notFoundIfNull(${1:param});${2}\nsnippet rr\n redirect(${1:param});${2}\nsnippet ru\n unauthorized(${1:param});${2}\nsnippet unless\n (unless=${1:param});${2}\n',t.scope="java"}) \ No newline at end of file
diff --git a/library/ace/snippets/javascript.js b/library/ace/snippets/javascript.js
new file mode 100644
index 000000000..09f0fe0ef
--- /dev/null
+++ b/library/ace/snippets/javascript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/javascript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Prototype\nsnippet proto\n ${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n ${4:// body...}\n };\n# Function\nsnippet fun\n function ${1?:function_name}(${2:argument}) {\n ${3:// body...}\n }\n# Anonymous Function\nregex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\nsnippet f\n function${M1?: ${1:functionName}}($2) {\n ${0:$TM_SELECTED_TEXT}\n }${M2?;}${M3?,}${M4?)}\n# Immediate function\ntrigger \\(?f\\(\nendTrigger \\)?\nsnippet f(\n (function(${1}) {\n ${0:${TM_SELECTED_TEXT:/* code */}}\n }(${1}));\n# if\nsnippet if\n if (${1:true}) {\n ${0}\n }\n# if ... else\nsnippet ife\n if (${1:true}) {\n ${2}\n } else {\n ${0}\n }\n# tertiary conditional\nsnippet ter\n ${1:/* condition */} ? ${2:a} : ${3:b}\n# switch\nsnippet switch\n switch (${1:expression}) {\n case \'${3:case}\':\n ${4:// code}\n break;\n ${5}\n default:\n ${2:// code}\n }\n# case\nsnippet case\n case \'${1:case}\':\n ${2:// code}\n break;\n ${3}\n\n# while (...) {...}\nsnippet wh\n while (${1:/* condition */}) {\n ${0:/* code */}\n }\n# try\nsnippet try\n try {\n ${0:/* code */}\n } catch (e) {}\n# do...while\nsnippet do\n do {\n ${2:/* code */}\n } while (${1:/* condition */});\n# Object Method\nsnippet :f\nregex /([,{[])|^\\s*/:f/\n ${1:method_name}: function(${2:attribute}) {\n ${0}\n }${3:,}\n# setTimeout function\nsnippet setTimeout\nregex /\\b/st|timeout|setTimeo?u?t?/\n setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n# Get Elements\nsnippet gett\n getElementsBy${1:TagName}(\'${2}\')${3}\n# Get Element\nsnippet get\n getElementBy${1:Id}(\'${2}\')${3}\n# console.log (Firebug)\nsnippet cl\n console.log(${1});\n# return\nsnippet ret\n return ${1:result}\n# for (property in object ) { ... }\nsnippet fori\n for (var ${1:prop} in ${2:Things}) {\n ${0:$2[$1]}\n }\n# hasOwnProperty\nsnippet has\n hasOwnProperty(${1})\n# docstring\nsnippet /**\n /**\n * ${1:description}\n *\n */\nsnippet @par\nregex /^\\s*\\*\\s*/@(para?m?)?/\n @param {${1:type}} ${2:name} ${3:description}\nsnippet @ret\n @return {${1:type}} ${2:description}\n# JSON.parse\nsnippet jsonp\n JSON.parse(${1:jstr});\n# JSON.stringify\nsnippet jsons\n JSON.stringify(${1:object});\n# self-defining function\nsnippet 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\nsnippet 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\nsnippet class\nregex /^\\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# \nsnippet for-\n for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n ${0:${2:Things}[${1:i}];}\n }\n# for (...) {...}\nsnippet for\n for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n ${3:$2[$1]}$0\n }\n# for (...) {...} (Improved Native For-Loop)\nsnippet forr\n for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n ${3:$2[$1]}$0\n }\n\n\n#modules\nsnippet def\n define(function(require, exports, module) {\n "use strict";\n var ${1/.*\\///} = require("${1}");\n \n $TM_SELECTED_TEXT\n });\nsnippet req\nguard ^\\s*\n var ${1/.*\\///} = require("${1}");\n $0\nsnippet requ\nguard ^\\s*\n var ${1/.*\\/(.)/\\u$1/} = require("${1}").${1/.*\\/(.)/\\u$1/};\n $0\n',t.scope="javascript"}) \ No newline at end of file
diff --git a/library/ace/snippets/json.js b/library/ace/snippets/json.js
new file mode 100644
index 000000000..5e0e0ea2e
--- /dev/null
+++ b/library/ace/snippets/json.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/json",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="json"}) \ No newline at end of file
diff --git a/library/ace/snippets/jsoniq.js b/library/ace/snippets/jsoniq.js
new file mode 100644
index 000000000..7ca20f9d4
--- /dev/null
+++ b/library/ace/snippets/jsoniq.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsoniq",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n for $${1:item} in ${2:expr}\nsnippet return\n return ${1:expr}\nsnippet import\n import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n switch(${1:"foo"})\n case ${2:"foo"}\n return ${3:true}\n default return ${4:false}\nsnippet try\n try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet 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}\nsnippet 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}\nsnippet let\n let $${1:varname} := ${2:expr}\nsnippet group\n group by $${1:varname} := ${2:expr}\nsnippet order\n order by ${1:expr} ${2:descending}\nsnippet stable\n stable order by ${1:expr}\nsnippet count\n count $${1:varname}\nsnippet ordered\n ordered { ${1:expr} }\nsnippet unordered\n unordered { ${1:expr} }\nsnippet treat \n treat as ${1:expr}\nsnippet castable\n castable as ${1:atomicType}\nsnippet cast\n cast as ${1:atomicType}\nsnippet typeswitch\n typeswitch(${1:expr})\n case ${2:type} return ${3:expr}\n default return ${4:expr}\nsnippet var\n declare variable $${1:varname} := ${2:expr};\nsnippet fn\n declare function ${1:ns}:${2:name}(){\n ${3:expr}\n };\nsnippet module\n module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="jsoniq"}) \ No newline at end of file
diff --git a/library/ace/snippets/jsp.js b/library/ace/snippets/jsp.js
new file mode 100644
index 000000000..fcbace719
--- /dev/null
+++ b/library/ace/snippets/jsp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet @page\n <%@page contentType="text/html" pageEncoding="UTF-8"%>\nsnippet 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" %>\nsnippet jstl:c\n <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>\nsnippet jstl:fn\n <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>\nsnippet cpath\n ${pageContext.request.contextPath}\nsnippet cout\n <c:out value="${1}" default="${2}" />\nsnippet cset\n <c:set var="${1}" value="${2}" />\nsnippet cremove\n <c:remove var="${1}" scope="${2:page}" />\nsnippet ccatch\n <c:catch var="${1}" />\nsnippet cif\n <c:if test="${${1}}">\n ${2}\n </c:if>\nsnippet cchoose\n <c:choose>\n ${1}\n </c:choose>\nsnippet cwhen\n <c:when test="${${1}}">\n ${2}\n </c:when>\nsnippet cother\n <c:otherwise>\n ${1}\n </c:otherwise>\nsnippet cfore\n <c:forEach items="${${1}}" var="${2}" varStatus="${3}">\n ${4:<c:out value="$2" />}\n </c:forEach>\nsnippet 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>\nsnippet cparam\n <c:param name="${1}" value="${2}" />\nsnippet cparam+\n <c:param name="${1}" value="${2}" />\n cparam+${3}\nsnippet cimport\n <c:import url="${1}" />\nsnippet cimport+\n <c:import url="${1}">\n <c:param name="${2}" value="${3}" />\n cparam+${4}\n </c:import>\nsnippet curl\n <c:url value="${1}" var="${2}" />\n <a href="${$2}">${3}</a>\nsnippet 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>\nsnippet credirect\n <c:redirect url="${1}" />\nsnippet contains\n ${fn:contains(${1:string}, ${2:substr})}\nsnippet contains:i\n ${fn:containsIgnoreCase(${1:string}, ${2:substr})}\nsnippet endswith\n ${fn:endsWith(${1:string}, ${2:suffix})}\nsnippet escape\n ${fn:escapeXml(${1:string})}\nsnippet indexof\n ${fn:indexOf(${1:string}, ${2:substr})}\nsnippet join\n ${fn:join(${1:collection}, ${2:delims})}\nsnippet length\n ${fn:length(${1:collection_or_string})}\nsnippet replace\n ${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\nsnippet split\n ${fn:split(${1:string}, ${2:delims})}\nsnippet startswith\n ${fn:startsWith(${1:string}, ${2:prefix})}\nsnippet substr\n ${fn:substring(${1:string}, ${2:begin}, ${3:end})}\nsnippet substr:a\n ${fn:substringAfter(${1:string}, ${2:substr})}\nsnippet substr:b\n ${fn:substringBefore(${1:string}, ${2:substr})}\nsnippet lc\n ${fn:toLowerCase(${1:string})}\nsnippet uc\n ${fn:toUpperCase(${1:string})}\nsnippet trim\n ${fn:trim(${1:string})}\n',t.scope="jsp"}) \ No newline at end of file
diff --git a/library/ace/snippets/jsx.js b/library/ace/snippets/jsx.js
new file mode 100644
index 000000000..9ae1382f4
--- /dev/null
+++ b/library/ace/snippets/jsx.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/jsx",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jsx"}) \ No newline at end of file
diff --git a/library/ace/snippets/julia.js b/library/ace/snippets/julia.js
new file mode 100644
index 000000000..131783f29
--- /dev/null
+++ b/library/ace/snippets/julia.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/julia",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="julia"}) \ No newline at end of file
diff --git a/library/ace/snippets/latex.js b/library/ace/snippets/latex.js
new file mode 100644
index 000000000..43f3fdbf7
--- /dev/null
+++ b/library/ace/snippets/latex.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/latex",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="latex"}) \ No newline at end of file
diff --git a/library/ace/snippets/lean.js b/library/ace/snippets/lean.js
new file mode 100644
index 000000000..3f264d3aa
--- /dev/null
+++ b/library/ace/snippets/lean.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lean",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lean"}) \ No newline at end of file
diff --git a/library/ace/snippets/less.js b/library/ace/snippets/less.js
new file mode 100644
index 000000000..4e2cafcd3
--- /dev/null
+++ b/library/ace/snippets/less.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/less",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="less"}) \ No newline at end of file
diff --git a/library/ace/snippets/liquid.js b/library/ace/snippets/liquid.js
new file mode 100644
index 000000000..a57996395
--- /dev/null
+++ b/library/ace/snippets/liquid.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/liquid",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="liquid"}) \ No newline at end of file
diff --git a/library/ace/snippets/lisp.js b/library/ace/snippets/lisp.js
new file mode 100644
index 000000000..7c3fd308e
--- /dev/null
+++ b/library/ace/snippets/lisp.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lisp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lisp"}) \ No newline at end of file
diff --git a/library/ace/snippets/live_script.js b/library/ace/snippets/live_script.js
new file mode 100644
index 000000000..9bf62192b
--- /dev/null
+++ b/library/ace/snippets/live_script.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/live_script",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/livescript.js b/library/ace/snippets/livescript.js
new file mode 100644
index 000000000..7ca405642
--- /dev/null
+++ b/library/ace/snippets/livescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/livescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="livescript"}) \ No newline at end of file
diff --git a/library/ace/snippets/logiql.js b/library/ace/snippets/logiql.js
new file mode 100644
index 000000000..c4f097549
--- /dev/null
+++ b/library/ace/snippets/logiql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/logiql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="logiql"}) \ No newline at end of file
diff --git a/library/ace/snippets/lsl.js b/library/ace/snippets/lsl.js
new file mode 100644
index 000000000..afd16b324
--- /dev/null
+++ b/library/ace/snippets/lsl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lsl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet @\n @${1:label};\nsnippet CAMERA_ACTIVE\n CAMERA_ACTIVE, ${1:integer isActive}, $0\nsnippet CAMERA_BEHINDNESS_ANGLE\n CAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\nsnippet CAMERA_BEHINDNESS_LAG\n CAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\nsnippet CAMERA_DISTANCE\n CAMERA_DISTANCE, ${1:float meters}, $0\nsnippet CAMERA_FOCUS\n CAMERA_FOCUS, ${1:vector position}, $0\nsnippet CAMERA_FOCUS_LAG\n CAMERA_FOCUS_LAG, ${1:float seconds}, $0\nsnippet CAMERA_FOCUS_LOCKED\n CAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\nsnippet CAMERA_FOCUS_OFFSET\n CAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\nsnippet CAMERA_FOCUS_THRESHOLD\n CAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\nsnippet CAMERA_PITCH\n CAMERA_PITCH, ${1:float degrees}, $0\nsnippet CAMERA_POSITION\n CAMERA_POSITION, ${1:vector position}, $0\nsnippet CAMERA_POSITION_LAG\n CAMERA_POSITION_LAG, ${1:float seconds}, $0\nsnippet CAMERA_POSITION_LOCKED\n CAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\nsnippet CAMERA_POSITION_THRESHOLD\n CAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\nsnippet CHARACTER_AVOIDANCE_MODE\n CHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\nsnippet CHARACTER_DESIRED_SPEED\n CHARACTER_DESIRED_SPEED, ${1:float speed}, $0\nsnippet CHARACTER_DESIRED_TURN_SPEED\n CHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\nsnippet CHARACTER_LENGTH\n CHARACTER_LENGTH, ${1:float length}, $0\nsnippet CHARACTER_MAX_TURN_RADIUS\n CHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\nsnippet CHARACTER_ORIENTATION\n CHARACTER_ORIENTATION, ${1:integer orientation}, $0\nsnippet CHARACTER_RADIUS\n CHARACTER_RADIUS, ${1:float radius}, $0\nsnippet CHARACTER_STAY_WITHIN_PARCEL\n CHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\nsnippet CHARACTER_TYPE\n CHARACTER_TYPE, ${1:integer type}, $0\nsnippet HTTP_BODY_MAXLENGTH\n HTTP_BODY_MAXLENGTH, ${1:integer length}, $0\nsnippet HTTP_CUSTOM_HEADER\n HTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\nsnippet HTTP_METHOD\n HTTP_METHOD, ${1:string method}, $0\nsnippet HTTP_MIMETYPE\n HTTP_MIMETYPE, ${1:string mimeType}, $0\nsnippet HTTP_PRAGMA_NO_CACHE\n HTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\nsnippet HTTP_VERBOSE_THROTTLE\n HTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\nsnippet HTTP_VERIFY_CERT\n HTTP_VERIFY_CERT, ${1:integer verify}, $0\nsnippet RC_DATA_FLAGS\n RC_DATA_FLAGS, ${1:integer flags}, $0\nsnippet RC_DETECT_PHANTOM\n RC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\nsnippet RC_MAX_HITS\n RC_MAX_HITS, ${1:integer maxHits}, $0\nsnippet RC_REJECT_TYPES\n RC_REJECT_TYPES, ${1:integer filterMask}, $0\nsnippet at_rot_target\n at_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\n {\n $0\n }\nsnippet at_target\n at_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\n {\n $0\n }\nsnippet attach\n attach(${1:key id})\n {\n $0\n }\nsnippet changed\n changed(${1:integer change})\n {\n $0\n }\nsnippet collision\n collision(${1:integer index})\n {\n $0\n }\nsnippet collision_end\n collision_end(${1:integer index})\n {\n $0\n }\nsnippet collision_start\n collision_start(${1:integer index})\n {\n $0\n }\nsnippet control\n control(${1:key id}, ${2:integer level}, ${3:integer edge})\n {\n $0\n }\nsnippet dataserver\n dataserver(${1:key query_id}, ${2:string data})\n {\n $0\n }\nsnippet do\n do\n {\n $0\n }\n while (${1:condition});\nsnippet else\n else\n {\n $0\n }\nsnippet email\n email(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\n {\n $0\n }\nsnippet experience_permissions\n experience_permissions(${1:key agent_id})\n {\n $0\n }\nsnippet experience_permissions_denied\n experience_permissions_denied(${1:key agent_id}, ${2:integer reason})\n {\n $0\n }\nsnippet for\n for (${1:start}; ${3:condition}; ${3:step})\n {\n $0\n }\nsnippet http_request\n http_request(${1:key request_id}, ${2:string method}, ${3:string body})\n {\n $0\n }\nsnippet http_response\n http_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\n {\n $0\n }\nsnippet if\n if (${1:condition})\n {\n $0\n }\nsnippet jump\n jump ${1:label};\nsnippet land_collision\n land_collision(${1:vector pos})\n {\n $0\n }\nsnippet land_collision_end\n land_collision_end(${1:vector pos})\n {\n $0\n }\nsnippet land_collision_start\n land_collision_start(${1:vector pos})\n {\n $0\n }\nsnippet link_message\n link_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\n {\n $0\n }\nsnippet listen\n listen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\n {\n $0\n }\nsnippet llAbs\n llAbs(${1:integer val})\nsnippet llAcos\n llAcos(${1:float val})\nsnippet llAddToLandBanList\n llAddToLandBanList(${1:key agent}, ${2:float hours});\n $0\nsnippet llAddToLandPassList\n llAddToLandPassList(${1:key agent}, ${2:float hours});\n $0\nsnippet llAdjustSoundVolume\n llAdjustSoundVolume(${1:float volume});\n $0\nsnippet llAgentInExperience\n llAgentInExperience(${1:key agent})\nsnippet llAllowInventoryDrop\n llAllowInventoryDrop(${1:integer add});\n $0\nsnippet llAngleBetween\n llAngleBetween(${1:rotation a}, ${2:rotation b})\nsnippet llApplyImpulse\n llApplyImpulse(${1:vector force}, ${2:integer local});\n $0\nsnippet llApplyRotationalImpulse\n llApplyRotationalImpulse(${1:vector force}, ${2:integer local});\n $0\nsnippet llAsin\n llAsin(${1:float val})\nsnippet llAtan2\n llAtan2(${1:float y}, ${2:float x})\nsnippet llAttachToAvatar\n llAttachToAvatar(${1:integer attach_point});\n $0\nsnippet llAttachToAvatarTemp\n llAttachToAvatarTemp(${1:integer attach_point});\n $0\nsnippet llAvatarOnLinkSitTarget\n llAvatarOnLinkSitTarget(${1:integer link})\nsnippet llAvatarOnSitTarget\n llAvatarOnSitTarget()\nsnippet llAxes2Rot\n llAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\nsnippet llAxisAngle2Rot\n llAxisAngle2Rot(${1:vector axis}, ${2:float angle})\nsnippet llBase64ToInteger\n llBase64ToInteger(${1:string str})\nsnippet llBase64ToString\n llBase64ToString(${1:string str})\nsnippet llBreakAllLinks\n llBreakAllLinks();\n $0\nsnippet llBreakLink\n llBreakLink(${1:integer link});\n $0\nsnippet llCastRay\n llCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\n $0\nsnippet llCeil\n llCeil(${1:float val})\nsnippet llClearCameraParams\n llClearCameraParams();\n $0\nsnippet llClearLinkMedia\n llClearLinkMedia(${1:integer link}, ${2:integer face});\n $0\nsnippet llClearPrimMedia\n llClearPrimMedia(${1:integer face});\n $0\nsnippet llCloseRemoteDataChannel\n llCloseRemoteDataChannel(${1:key channel});\n $0\nsnippet llCollisionFilter\n llCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\n $0\nsnippet llCollisionSound\n llCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\n $0\nsnippet llCos\n llCos(${1:float theta})\nsnippet llCreateCharacter\n llCreateCharacter(${1:list options});\n $0\nsnippet llCreateKeyValue\n llCreateKeyValue(${1:string k})\nsnippet llCreateLink\n llCreateLink(${1:key target}, ${2:integer parent});\n $0\nsnippet llCSV2List\n llCSV2List(${1:string src})\nsnippet llDataSizeKeyValue\n llDataSizeKeyValue()\nsnippet llDeleteCharacter\n llDeleteCharacter();\n $0\nsnippet llDeleteKeyValue\n llDeleteKeyValue(${1:string k})\nsnippet llDeleteSubList\n llDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\nsnippet llDeleteSubString\n llDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\nsnippet llDetachFromAvatar\n llDetachFromAvatar();\n $0\nsnippet llDetectedGrab\n llDetectedGrab(${1:integer number})\nsnippet llDetectedGroup\n llDetectedGroup(${1:integer number})\nsnippet llDetectedKey\n llDetectedKey(${1:integer number})\nsnippet llDetectedLinkNumber\n llDetectedLinkNumber(${1:integer number})\nsnippet llDetectedName\n llDetectedName(${1:integer number})\nsnippet llDetectedOwner\n llDetectedOwner(${1:integer number})\nsnippet llDetectedPos\n llDetectedPosl(${1:integer number})\nsnippet llDetectedRot\n llDetectedRot(${1:integer number})\nsnippet llDetectedTouchBinormal\n llDetectedTouchBinormal(${1:integer number})\nsnippet llDetectedTouchFace\n llDetectedTouchFace(${1:integer number})\nsnippet llDetectedTouchNormal\n llDetectedTouchNormal(${1:integer number})\nsnippet llDetectedTouchPos\n llDetectedTouchPos(${1:integer number})\nsnippet llDetectedTouchST\n llDetectedTouchST(${1:integer number})\nsnippet llDetectedTouchUV\n llDetectedTouchUV(${1:integer number})\nsnippet llDetectedType\n llDetectedType(${1:integer number})\nsnippet llDetectedVel\n llDetectedVel(${1:integer number})\nsnippet llDialog\n llDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\n $0\nsnippet llDie\n llDie();\n $0\nsnippet llDumpList2String\n llDumpList2String(${1:list src}, ${2:string separator})\nsnippet llEdgeOfWorld\n llEdgeOfWorld(${1:vector pos}, ${2:vector dir})\nsnippet llEjectFromLand\n llEjectFromLand(${1:key agent});\n $0\nsnippet llEmail\n llEmail(${1:string address}, ${2:string subject}, ${3:string message});\n $0\nsnippet llEscapeURL\n llEscapeURL(${1:string url})\nsnippet llEuler2Rot\n llEuler2Rot(${1:vector v})\nsnippet llExecCharacterCmd\n llExecCharacterCmd(${1:integer command}, ${2:list options});\n $0\nsnippet llEvade\n llEvade(${1:key target}, ${2:list options});\n $0\nsnippet llFabs\n llFabs(${1:float val})\nsnippet llFleeFrom\n llFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\n $0\nsnippet llFloor\n llFloor(${1:float val})\nsnippet llForceMouselook\n llForceMouselook(${1:integer mouselook});\n $0\nsnippet llFrand\n llFrand(${1:float mag})\nsnippet llGenerateKey\n llGenerateKey()\nsnippet llGetAccel\n llGetAccel()\nsnippet llGetAgentInfo\n llGetAgentInfo(${1:key id})\nsnippet llGetAgentLanguage\n llGetAgentLanguage(${1:key agent})\nsnippet llGetAgentList\n llGetAgentList(${1:integer scope}, ${2:list options})\nsnippet llGetAgentSize\n llGetAgentSize(${1:key agent})\nsnippet llGetAlpha\n llGetAlpha(${1:integer face})\nsnippet llGetAndResetTime\n llGetAndResetTime()\nsnippet llGetAnimation\n llGetAnimation(${1:key id})\nsnippet llGetAnimationList\n llGetAnimationList(${1:key agent})\nsnippet llGetAnimationOverride\n llGetAnimationOverride(${1:string anim_state})\nsnippet llGetAttached\n llGetAttached()\nsnippet llGetAttachedList\n llGetAttachedList(${1:key id})\nsnippet llGetBoundingBox\n llGetBoundingBox(${1:key object})\nsnippet llGetCameraPos\n llGetCameraPos()\nsnippet llGetCameraRot\n llGetCameraRot()\nsnippet llGetCenterOfMass\n llGetCenterOfMass()\nsnippet llGetClosestNavPoint\n llGetClosestNavPoint(${1:vector point}, ${2:list options})\nsnippet llGetColor\n llGetColor(${1:integer face})\nsnippet llGetCreator\n llGetCreator()\nsnippet llGetDate\n llGetDate()\nsnippet llGetDisplayName\n llGetDisplayName(${1:key id})\nsnippet llGetEnergy\n llGetEnergy()\nsnippet llGetEnv\n llGetEnv(${1:string name})\nsnippet llGetExperienceDetails\n llGetExperienceDetails(${1:key experience_id})\nsnippet llGetExperienceErrorMessage\n llGetExperienceErrorMessage(${1:integer error})\nsnippet llGetForce\n llGetForce()\nsnippet llGetFreeMemory\n llGetFreeMemory()\nsnippet llGetFreeURLs\n llGetFreeURLs()\nsnippet llGetGeometricCenter\n llGetGeometricCenter()\nsnippet llGetGMTclock\n llGetGMTclock()\nsnippet llGetHTTPHeader\n llGetHTTPHeader(${1:key request_id}, ${2:string header})\nsnippet llGetInventoryCreator\n llGetInventoryCreator(${1:string item})\nsnippet llGetInventoryKey\n llGetInventoryKey(${1:string name})\nsnippet llGetInventoryName\n llGetInventoryName(${1:integer type}, ${2:integer number})\nsnippet llGetInventoryNumber\n llGetInventoryNumber(${1:integer type})\nsnippet llGetInventoryPermMask\n llGetInventoryPermMask(${1:string item}, ${2:integer mask})\nsnippet llGetInventoryType\n llGetInventoryType(${1:string name})\nsnippet llGetKey\n llGetKey()\nsnippet llGetLandOwnerAt\n llGetLandOwnerAt(${1:vector pos})\nsnippet llGetLinkKey\n llGetLinkKey(${1:integer link})\nsnippet llGetLinkMedia\n llGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\nsnippet llGetLinkName\n llGetLinkName(${1:integer link})\nsnippet llGetLinkNumber\n llGetLinkNumber()\nsnippet llGetLinkNumberOfSides\n llGetLinkNumberOfSides(${1:integer link})\nsnippet llGetLinkPrimitiveParams\n llGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\nsnippet llGetListEntryType\n llGetListEntryType(${1:list src}, ${2:integer index})\nsnippet llGetListLength\n llGetListLength(${1:list src})\nsnippet llGetLocalPos\n llGetLocalPos()\nsnippet llGetLocalRot\n llGetLocalRot()\nsnippet llGetMass\n llGetMass()\nsnippet llGetMassMKS\n llGetMassMKS()\nsnippet llGetMaxScaleFactor\n llGetMaxScaleFactor()\nsnippet llGetMemoryLimit\n llGetMemoryLimit()\nsnippet llGetMinScaleFactor\n llGetMinScaleFactor()\nsnippet llGetNextEmail\n llGetNextEmail(${1:string address}, ${2:string subject});\n $0\nsnippet llGetNotecardLine\n llGetNotecardLine(${1:string name}, ${2:integer line})\nsnippet llGetNumberOfNotecardLines\n llGetNumberOfNotecardLines(${1:string name})\nsnippet llGetNumberOfPrims\n llGetNumberOfPrims()\nsnippet llGetNumberOfSides\n llGetNumberOfSides()\nsnippet llGetObjectDesc\n llGetObjectDesc()\nsnippet llGetObjectDetails\n llGetObjectDetails(${1:key id}, ${2:list params})\nsnippet llGetObjectMass\n llGetObjectMass(${1:key id})\nsnippet llGetObjectName\n llGetObjectName()\nsnippet llGetObjectPermMask\n llGetObjectPermMask(${1:integer mask})\nsnippet llGetObjectPrimCount\n llGetObjectPrimCount(${1:key prim})\nsnippet llGetOmega\n llGetOmega()\nsnippet llGetOwner\n llGetOwner()\nsnippet llGetOwnerKey\n llGetOwnerKey(${1:key id})\nsnippet llGetParcelDetails\n llGetParcelDetails(${1:vector pos}, ${2:list params})\nsnippet llGetParcelFlags\n llGetParcelFlags(${1:vector pos})\nsnippet llGetParcelMaxPrims\n llGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\nsnippet llGetParcelMusicURL\n llGetParcelMusicURL()\nsnippet llGetParcelPrimCount\n llGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\nsnippet llGetParcelPrimOwners\n llGetParcelPrimOwners(${1:vector pos})\nsnippet llGetPermissions\n llGetPermissions()\nsnippet llGetPermissionsKey\n llGetPermissionsKey()\nsnippet llGetPhysicsMaterial\n llGetPhysicsMaterial()\nsnippet llGetPos\n llGetPos()\nsnippet llGetPrimitiveParams\n llGetPrimitiveParams(${1:list params})\nsnippet llGetPrimMediaParams\n llGetPrimMediaParams(${1:integer face}, ${2:list params})\nsnippet llGetRegionAgentCount\n llGetRegionAgentCount()\nsnippet llGetRegionCorner\n llGetRegionCorner()\nsnippet llGetRegionFlags\n llGetRegionFlags()\nsnippet llGetRegionFPS\n llGetRegionFPS()\nsnippet llGetRegionName\n llGetRegionName()\nsnippet llGetRegionTimeDilation\n llGetRegionTimeDilation()\nsnippet llGetRootPosition\n llGetRootPosition()\nsnippet llGetRootRotation\n llGetRootRotation()\nsnippet llGetRot\n llGetRot()\nsnippet llGetScale\n llGetScale()\nsnippet llGetScriptName\n llGetScriptName()\nsnippet llGetScriptState\n llGetScriptState(${1:string script})\nsnippet llGetSimStats\n llGetSimStats(${1:integer stat_type})\nsnippet llGetSimulatorHostname\n llGetSimulatorHostname()\nsnippet llGetSPMaxMemory\n llGetSPMaxMemory()\nsnippet llGetStartParameter\n llGetStartParameter()\nsnippet llGetStaticPath\n llGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\nsnippet llGetStatus\n llGetStatus(${1:integer status})\nsnippet llGetSubString\n llGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\nsnippet llGetSunDirection\n llGetSunDirection()\nsnippet llGetTexture\n llGetTexture(${1:integer face})\nsnippet llGetTextureOffset\n llGetTextureOffset(${1:integer face})\nsnippet llGetTextureRot\n llGetTextureRot(${1:integer face})\nsnippet llGetTextureScale\n llGetTextureScale(${1:integer face})\nsnippet llGetTime\n llGetTime()\nsnippet llGetTimeOfDay\n llGetTimeOfDay()\nsnippet llGetTimestamp\n llGetTimestamp()\nsnippet llGetTorque\n llGetTorque()\nsnippet llGetUnixTime\n llGetUnixTime()\nsnippet llGetUsedMemory\n llGetUsedMemory()\nsnippet llGetUsername\n llGetUsername(${1:key id})\nsnippet llGetVel\n llGetVel()\nsnippet llGetWallclock\n llGetWallclock()\nsnippet llGiveInventory\n llGiveInventory(${1:key destination}, ${2:string inventory});\n $0\nsnippet llGiveInventoryList\n llGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\n $0\nsnippet llGiveMoney\n llGiveMoney(${1:key destination}, ${2:integer amount})\nsnippet llGround\n llGround(${1:vector offset})\nsnippet llGroundContour\n llGroundContour(${1:vector offset})\nsnippet llGroundNormal\n llGroundNormal(${1:vector offset})\nsnippet llGroundRepel\n llGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\n $0\nsnippet llGroundSlope\n llGroundSlope(${1:vector offset})\nsnippet llHTTPRequest\n llHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\nsnippet llHTTPResponse\n llHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\n $0\nsnippet llInsertString\n llInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\nsnippet llInstantMessage\n llInstantMessage(${1:key user}, ${2:string message});\n $0\nsnippet llIntegerToBase64\n llIntegerToBase64(${1:integer number})\nsnippet llJson2List\n llJson2List(${1:string json})\nsnippet llJsonGetValue\n llJsonGetValue(${1:string json}, ${2:list specifiers})\nsnippet llJsonSetValue\n llJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\nsnippet llJsonValueType\n llJsonValueType(${1:string json}, ${2:list specifiers})\nsnippet llKey2Name\n llKey2Name(${1:key id})\nsnippet llKeyCountKeyValue\n llKeyCountKeyValue()\nsnippet llKeysKeyValue\n llKeysKeyValue(${1:integer first}, ${2:integer count})\nsnippet llLinkParticleSystem\n llLinkParticleSystem(${1:integer link}, ${2:list rules});\n $0\nsnippet llLinkSitTarget\n llLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\n $0\nsnippet llList2CSV\n llList2CSV(${1:list src})\nsnippet llList2Float\n llList2Float(${1:list src}, ${2:integer index})\nsnippet llList2Integer\n llList2Integer(${1:list src}, ${2:integer index})\nsnippet llList2Json\n llList2Json(${1:string type}, ${2:list values})\nsnippet llList2Key\n llList2Key(${1:list src}, ${2:integer index})\nsnippet llList2List\n llList2List(${1:list src}, ${2:integer start}, ${3:integer end})\nsnippet llList2ListStrided\n llList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\nsnippet llList2Rot\n llList2Rot(${1:list src}, ${2:integer index})\nsnippet llList2String\n llList2String(${1:list src}, ${2:integer index})\nsnippet llList2Vector\n llList2Vector(${1:list src}, ${2:integer index})\nsnippet llListen\n llListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\nsnippet llListenControl\n llListenControl(${1:integer handle}, ${2:integer active});\n $0\nsnippet llListenRemove\n llListenRemove(${1:integer handle});\n $0\nsnippet llListFindList\n llListFindList(${1:list src}, ${2:list test})\nsnippet llListInsertList\n llListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\nsnippet llListRandomize\n llListRandomize(${1:list src}, ${2:integer stride})\nsnippet llListReplaceList\n llListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\nsnippet llListSort\n llListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\nsnippet llListStatistics\n llListStatistics(${1:integer operation}, ${2:list src})\nsnippet llLoadURL\n llLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\n $0\nsnippet llLog\n llLog(${1:float val})\nsnippet llLog10\n llLog10(${1:float val})\nsnippet llLookAt\n llLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\n $0\nsnippet llLoopSound\n llLoopSound(${1:string sound}, ${2:float volume});\n $0\nsnippet llLoopSoundMaster\n llLoopSoundMaster(${1:string sound}, ${2:float volume});\n $0\nsnippet llLoopSoundSlave\n llLoopSoundSlave(${1:string sound}, ${2:float volume});\n $0\nsnippet llManageEstateAccess\n llManageEstateAccess(${1:integer action}, ${2:key agent})\nsnippet llMapDestination\n llMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\n $0\nsnippet llMD5String\n llMD5String(${1:string src}, ${2:integer nonce})\nsnippet llMessageLinked\n llMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\n $0\nsnippet llMinEventDelay\n llMinEventDelay(${1:float delay});\n $0\nsnippet llModifyLand\n llModifyLand(${1:integer action}, ${2:integer brush});\n $0\nsnippet llModPow\n llModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\nsnippet llMoveToTarget\n llMoveToTarget(${1:vector target}, ${2:float tau});\n $0\nsnippet llNavigateTo\n llNavigateTo(${1:vector pos}, ${2:list options});\n $0\nsnippet llOffsetTexture\n llOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\n $0\nsnippet llOpenRemoteDataChannel\n llOpenRemoteDataChannel();\n $0\nsnippet llOverMyLand\n llOverMyLand(${1:key id})\nsnippet llOwnerSay\n llOwnerSay(${1:string msg});\n $0\nsnippet llParcelMediaCommandList\n llParcelMediaCommandList(${1:list commandList});\n $0\nsnippet llParcelMediaQuery\n llParcelMediaQuery(${1:list query})\nsnippet llParseString2List\n llParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\nsnippet llParseStringKeepNulls\n llParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\nsnippet llParticleSystem\n llParticleSystem(${1:list rules});\n $0\nsnippet llPassCollisions\n llPassCollisions(${1:integer pass});\n $0\nsnippet llPassTouches\n llPassTouches(${1:integer pass});\n $0\nsnippet llPatrolPoints\n llPatrolPoints(${1:list patrolPoints}, ${2:list options});\n $0\nsnippet llPlaySound\n llPlaySound(${1:string sound}, ${2:float volume});\n $0\nsnippet llPlaySoundSlave\n llPlaySoundSlave(${1:string sound}, ${2:float volume});\n $0\nsnippet llPow\n llPow(${1:float base}, ${2:float exponent})\nsnippet llPreloadSound\n llPreloadSound(${1:string sound});\n $0\nsnippet llPursue\n llPursue(${1:key target}, ${2:list options});\n $0\nsnippet llPushObject\n llPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\n $0\nsnippet llReadKeyValue\n llReadKeyValue(${1:string k})\nsnippet llRegionSay\n llRegionSay(${1:integer channel}, ${2:string msg});\n $0\nsnippet llRegionSayTo\n llRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\n $0\nsnippet llReleaseControls\n llReleaseControls();\n $0\nsnippet llReleaseURL\n llReleaseURL(${1:string url});\n $0\nsnippet llRemoteDataReply\n llRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\n $0\nsnippet llRemoteLoadScriptPin\n llRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\n $0\nsnippet llRemoveFromLandBanList\n llRemoveFromLandBanList(${1:key agent});\n $0\nsnippet llRemoveFromLandPassList\n llRemoveFromLandPassList(${1:key agent});\n $0\nsnippet llRemoveInventory\n llRemoveInventory(${1:string item});\n $0\nsnippet llRemoveVehicleFlags\n llRemoveVehicleFlags(${1:integer flags});\n $0\nsnippet llRequestAgentData\n llRequestAgentData(${1:key id}, ${2:integer data})\nsnippet llRequestDisplayName\n llRequestDisplayName(${1:key id})\nsnippet llRequestExperiencePermissions\n llRequestExperiencePermissions(${1:key agent}, ${2:string name})\nsnippet llRequestInventoryData\n llRequestInventoryData(${1:string name})\nsnippet llRequestPermissions\n llRequestPermissions(${1:key agent}, ${2:integer permissions})\nsnippet llRequestSecureURL\n llRequestSecureURL()\nsnippet llRequestSimulatorData\n llRequestSimulatorData(${1:string region}, ${2:integer data})\nsnippet llRequestURL\n llRequestURL()\nsnippet llRequestUsername\n llRequestUsername(${1:key id})\nsnippet llResetAnimationOverride\n llResetAnimationOverride(${1:string anim_state});\n $0\nsnippet llResetLandBanList\n llResetLandBanList();\n $0\nsnippet llResetLandPassList\n llResetLandPassList();\n $0\nsnippet llResetOtherScript\n llResetOtherScript(${1:string name});\n $0\nsnippet llResetScript\n llResetScript();\n $0\nsnippet llResetTime\n llResetTime();\n $0\nsnippet llReturnObjectsByID\n llReturnObjectsByID(${1:list objects})\nsnippet llReturnObjectsByOwner\n llReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\nsnippet llRezAtRoot\n llRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\n $0\nsnippet llRezObject\n llRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\n $0\nsnippet llRot2Angle\n llRot2Angle(${1:rotation rot})\nsnippet llRot2Axis\n llRot2Axis(${1:rotation rot})\nsnippet llRot2Euler\n llRot2Euler(${1:rotation quat})\nsnippet llRot2Fwd\n llRot2Fwd(${1:rotation q})\nsnippet llRot2Left\n llRot2Left(${1:rotation q})\nsnippet llRot2Up\n llRot2Up(${1:rotation q})\nsnippet llRotateTexture\n llRotateTexture(${1:float angle}, ${2:integer face});\n $0\nsnippet llRotBetween\n llRotBetween(${1:vector start}, ${2:vector end})\nsnippet llRotLookAt\n llRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\n $0\nsnippet llRotTarget\n llRotTarget(${1:rotation rot}, ${2:float error})\nsnippet llRotTargetRemove\n llRotTargetRemove(${1:integer handle});\n $0\nsnippet llRound\n llRound(${1:float val})\nsnippet llSameGroup\n llSameGroup(${1:key group})\nsnippet llSay\n llSay(${1:integer channel}, ${2:string msg});\n $0\nsnippet llScaleByFactor\n llScaleByFactor(${1:float scaling_factor})\nsnippet llScaleTexture\n llScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\n $0\nsnippet llScriptDanger\n llScriptDanger(${1:vector pos})\nsnippet llScriptProfiler\n llScriptProfiler(${1:integer flags});\n $0\nsnippet llSendRemoteData\n llSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\nsnippet llSensor\n llSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\n $0\nsnippet llSensorRepeat\n llSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\n $0\nsnippet llSetAlpha\n llSetAlpha(${1:float alpha}, ${2:integer face});\n $0\nsnippet llSetAngularVelocity\n llSetAngularVelocity(${1:vector force}, ${2:integer local});\n $0\nsnippet llSetAnimationOverride\n llSetAnimationOverride(${1:string anim_state}, ${2:string anim})\nsnippet llSetBuoyancy\n llSetBuoyancy(${1:float buoyancy});\n $0\nsnippet llSetCameraAtOffset\n llSetCameraAtOffset(${1:vector offset});\n $0\nsnippet llSetCameraEyeOffset\n llSetCameraEyeOffset(${1:vector offset});\n $0\nsnippet llSetCameraParams\n llSetCameraParams(${1:list rules});\n $0\nsnippet llSetClickAction\n llSetClickAction(${1:integer action});\n $0\nsnippet llSetColor\n llSetColor(${1:vector color}, ${2:integer face});\n $0\nsnippet llSetContentType\n llSetContentType(${1:key request_id}, ${2:integer content_type});\n $0\nsnippet llSetDamage\n llSetDamage(${1:float damage});\n $0\nsnippet llSetForce\n llSetForce(${1:vector force}, ${2:integer local});\n $0\nsnippet llSetForceAndTorque\n llSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\n $0\nsnippet llSetHoverHeight\n llSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\n $0\nsnippet llSetKeyframedMotion\n llSetKeyframedMotion(${1:list keyframes}, ${2:list options});\n $0\nsnippet llSetLinkAlpha\n llSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\n $0\nsnippet llSetLinkCamera\n llSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\n $0\nsnippet llSetLinkColor\n llSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\n $0\nsnippet llSetLinkMedia\n llSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\n $0\nsnippet llSetLinkPrimitiveParams\n llSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\n $0\nsnippet llSetLinkPrimitiveParamsFast\n llSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\n $0\nsnippet llSetLinkTexture\n llSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\n $0\nsnippet 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\nsnippet llSetLocalRot\n llSetLocalRot(${1:rotation rot});\n $0\nsnippet llSetMemoryLimit\n llSetMemoryLimit(${1:integer limit})\nsnippet llSetObjectDesc\n llSetObjectDesc(${1:string description});\n $0\nsnippet llSetObjectName\n llSetObjectName(${1:string name});\n $0\nsnippet llSetParcelMusicURL\n llSetParcelMusicURL(${1:string url});\n $0\nsnippet 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\nsnippet llSetPhysicsMaterial\n llSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\n $0\nsnippet llSetPos\n llSetPos(${1:vector pos});\n $0\nsnippet llSetPrimitiveParams\n llSetPrimitiveParams(${1:list rules});\n $0\nsnippet llSetPrimMediaParams\n llSetPrimMediaParams(${1:integer face}, ${2:list params});\n $0\nsnippet llSetRegionPos\n llSetRegionPos(${1:vector position})\nsnippet llSetRemoteScriptAccessPin\n llSetRemoteScriptAccessPin(${1:integer pin});\n $0\nsnippet llSetRot\n llSetRot(${1:rotation rot});\n $0\nsnippet llSetScale\n llSetScale(${1:vector size});\n $0\nsnippet llSetScriptState\n llSetScriptState(${1:string name}, ${2:integer run});\n $0\nsnippet llSetSitText\n llSetSitText(${1:string text});\n $0\nsnippet llSetSoundQueueing\n llSetSoundQueueing(${1:integer queue});\n $0\nsnippet llSetSoundRadius\n llSetSoundRadius(${1:float radius});\n $0\nsnippet llSetStatus\n llSetStatus(${1:integer status}, ${2:integer value});\n $0\nsnippet llSetText\n llSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\n $0\nsnippet llSetTexture\n llSetTexture(${1:string texture}, ${2:integer face});\n $0\nsnippet 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\nsnippet llSetTimerEvent\n llSetTimerEvent(${1:float sec});\n $0\nsnippet llSetTorque\n llSetTorque(${1:vector torque}, ${2:integer local});\n $0\nsnippet llSetTouchText\n llSetTouchText(${1:string text});\n $0\nsnippet llSetVehicleFlags\n llSetVehicleFlags(${1:integer flags});\n $0\nsnippet llSetVehicleFloatParam\n llSetVehicleFloatParam(${1:integer param}, ${2:float value});\n $0\nsnippet llSetVehicleRotationParam\n llSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\n $0\nsnippet llSetVehicleType\n llSetVehicleType(${1:integer type});\n $0\nsnippet llSetVehicleVectorParam\n llSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\n $0\nsnippet llSetVelocity\n llSetVelocity(${1:vector force}, ${2:integer local});\n $0\nsnippet llSHA1String\n llSHA1String(${1:string src})\nsnippet llShout\n llShout(${1:integer channel}, ${2:string msg});\n $0\nsnippet llSin\n llSin(${1:float theta})\nsnippet llSitTarget\n llSitTarget(${1:vector offset}, ${2:rotation rot});\n $0\nsnippet llSleep\n llSleep(${1:float sec});\n $0\nsnippet llSqrt\n llSqrt(${1:float val})\nsnippet llStartAnimation\n llStartAnimation(${1:string anim});\n $0\nsnippet llStopAnimation\n llStopAnimation(${1:string anim});\n $0\nsnippet llStopHover\n llStopHover();\n $0\nsnippet llStopLookAt\n llStopLookAt();\n $0\nsnippet llStopMoveToTarget\n llStopMoveToTarget();\n $0\nsnippet llStopSound\n llStopSound();\n $0\nsnippet llStringLength\n llStringLength(${1:string str})\nsnippet llStringToBase64\n llStringToBase64(${1:string str})\nsnippet llStringTrim\n llStringTrim(${1:string src}, ${2:integer type})\nsnippet llSubStringIndex\n llSubStringIndex(${1:string source}, ${2:string pattern})\nsnippet llTakeControls\n llTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\n $0\nsnippet llTan\n llTan(${1:float theta})\nsnippet llTarget\n llTarget(${1:vector position}, ${2:float range})\nsnippet llTargetOmega\n llTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\n $0\nsnippet llTargetRemove\n llTargetRemove(${1:integer handle});\n $0\nsnippet llTeleportAgent\n llTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\n $0\nsnippet llTeleportAgentGlobalCoords\n llTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\n $0\nsnippet llTeleportAgentHome\n llTeleportAgentHome(${1:key agent});\n $0\nsnippet llTextBox\n llTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\n $0\nsnippet llToLower\n llToLower(${1:string src})\nsnippet llToUpper\n llToUpper(${1:string src})\nsnippet llTransferLindenDollars\n llTransferLindenDollars(${1:key destination}, ${2:integer amount})\nsnippet llTriggerSound\n llTriggerSound(${1:string sound}, ${2:float volume});\n $0\nsnippet llTriggerSoundLimited\n llTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\n $0\nsnippet llUnescapeURL\n llUnescapeURL(${1:string url})\nsnippet llUnSit\n llUnSit(${1:key id});\n $0\nsnippet llUpdateCharacter\n llUpdateCharacter(${1:list options})\nsnippet llUpdateKeyValue\n llUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\nsnippet llVecDist\n llVecDist(${1:vector vec_a}, ${2:vector vec_b})\nsnippet llVecMag\n llVecMag(${1:vector vec})\nsnippet llVecNorm\n llVecNorm(${1:vector vec})\nsnippet llVolumeDetect\n llVolumeDetect(${1:integer detect});\n $0\nsnippet llWanderWithin\n llWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\n $0\nsnippet llWater\n llWater(${1:vector offset});\n $0\nsnippet llWhisper\n llWhisper(${1:integer channel}, ${2:string msg});\n $0\nsnippet llWind\n llWind(${1:vector offset});\n $0\nsnippet llXorBase64\n llXorBase64(${1:string str1}, ${2:string str2})\nsnippet money\n money(${1:key id}, ${2:integer amount})\n {\n $0\n }\nsnippet object_rez\n object_rez(${1:key id})\n {\n $0\n }\nsnippet on_rez\n on_rez(${1:integer start_param})\n {\n $0\n }\nsnippet path_update\n path_update(${1:integer type}, ${2:list reserved})\n {\n $0\n }\nsnippet 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 }\nsnippet run_time_permissions\n run_time_permissions(${1:integer perm})\n {\n $0\n }\nsnippet sensor\n sensor(${1:integer index})\n {\n $0\n }\nsnippet state\n state ${1:name}\nsnippet touch\n touch(${1:integer index})\n {\n $0\n }\nsnippet touch_end\n touch_end(${1:integer index})\n {\n $0\n }\nsnippet touch_start\n touch_start(${1:integer index})\n {\n $0\n }\nsnippet transaction_result\n transaction_result(${1:key id}, ${2:integer success}, ${3:string data})\n {\n $0\n }\nsnippet while\n while (${1:condition})\n {\n $0\n }\n",t.scope="lsl"}) \ No newline at end of file
diff --git a/library/ace/snippets/lua.js b/library/ace/snippets/lua.js
new file mode 100644
index 000000000..091d96a48
--- /dev/null
+++ b/library/ace/snippets/lua.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lua",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet #!\n #!/usr/bin/env lua\n $1\nsnippet local\n local ${1:x} = ${2:1}\nsnippet fun\n function ${1:fname}(${2:...})\n ${3:-- body}\n end\nsnippet for\n for ${1:i}=${2:1},${3:10} do\n ${4:print(i)}\n end\nsnippet forp\n for ${1:i},${2:v} in pairs(${3:table_name}) do\n ${4:-- body}\n end\nsnippet fori\n for ${1:i},${2:v} in ipairs(${3:table_name}) do\n ${4:-- body}\n end\n",t.scope="lua"}) \ No newline at end of file
diff --git a/library/ace/snippets/luapage.js b/library/ace/snippets/luapage.js
new file mode 100644
index 000000000..b78dcf942
--- /dev/null
+++ b/library/ace/snippets/luapage.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/luapage",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="luapage"}) \ No newline at end of file
diff --git a/library/ace/snippets/lucene.js b/library/ace/snippets/lucene.js
new file mode 100644
index 000000000..232999adb
--- /dev/null
+++ b/library/ace/snippets/lucene.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/lucene",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lucene"}) \ No newline at end of file
diff --git a/library/ace/snippets/makefile.js b/library/ace/snippets/makefile.js
new file mode 100644
index 000000000..c9870856c
--- /dev/null
+++ b/library/ace/snippets/makefile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/makefile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet ifeq\n ifeq (${1:cond0},${2:cond1})\n ${3:code}\n endif\n",t.scope="makefile"}) \ No newline at end of file
diff --git a/library/ace/snippets/markdown.js b/library/ace/snippets/markdown.js
new file mode 100644
index 000000000..0a4a8f8bd
--- /dev/null
+++ b/library/ace/snippets/markdown.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/markdown",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Markdown\n\n# Includes octopress (http://octopress.org/) snippets\n\nsnippet [\n [${1:text}](http://${2:address} "${3:title}")\nsnippet [*\n [${1:link}](${2:`@*`} "${3:title}")${4}\n\nsnippet [:\n [${1:id}]: http://${2:url} "${3:title}"\nsnippet [:*\n [${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ![\n ![${1:alttext}](${2:/images/image.jpg} "${3:title}")\nsnippet ![*\n ![${1:alt}](${2:`@*`} "${3:title}")${4}\n\nsnippet ![:\n ![${1:id}]: ${2:url} "${3:title}"\nsnippet ![:*\n ![${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ===\nregex /^/=+/=*//\n ${PREV_LINE/./=/g}\n \n ${0}\nsnippet ---\nregex /^/-+/-*//\n ${PREV_LINE/./-/g}\n \n ${0}\nsnippet blockquote\n {% blockquote %}\n ${1:quote}\n {% endblockquote %}\n\nsnippet blockquote-author\n {% blockquote ${1:author}, ${2:title} %}\n ${3:quote}\n {% endblockquote %}\n\nsnippet blockquote-link\n {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n ${4:quote}\n {% endblockquote %}\n\nsnippet bt-codeblock-short\n ```\n ${1:code_snippet}\n ```\n\nsnippet bt-codeblock-full\n ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n ${5:code_snippet}\n ```\n\nsnippet codeblock-short\n {% codeblock %}\n ${1:code_snippet}\n {% endcodeblock %}\n\nsnippet codeblock-full\n {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n ${5:code_snippet}\n {% endcodeblock %}\n\nsnippet gist-full\n {% gist ${1:gist_id} ${2:filename} %}\n\nsnippet gist-short\n {% gist ${1:gist_id} %}\n\nsnippet img\n {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\nsnippet 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\nsnippet pullquote\n {% pullquote %}\n ${1:text} {" ${2:quote} "} ${3:text}\n {% endpullquote %}\n',t.scope="markdown"}) \ No newline at end of file
diff --git a/library/ace/snippets/mask.js b/library/ace/snippets/mask.js
new file mode 100644
index 000000000..d615148f8
--- /dev/null
+++ b/library/ace/snippets/mask.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mask",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mask"}) \ No newline at end of file
diff --git a/library/ace/snippets/matlab.js b/library/ace/snippets/matlab.js
new file mode 100644
index 000000000..e2ee0a767
--- /dev/null
+++ b/library/ace/snippets/matlab.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/matlab",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="matlab"}) \ No newline at end of file
diff --git a/library/ace/snippets/maze.js b/library/ace/snippets/maze.js
new file mode 100644
index 000000000..c8b62044b
--- /dev/null
+++ b/library/ace/snippets/maze.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/maze",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet >\ndescription assignment\nscope maze\n -> ${1}= ${2}\n\nsnippet >\ndescription if\nscope maze\n -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n",t.scope="maze"}) \ No newline at end of file
diff --git a/library/ace/snippets/mel.js b/library/ace/snippets/mel.js
new file mode 100644
index 000000000..1e1c4743b
--- /dev/null
+++ b/library/ace/snippets/mel.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mel"}) \ No newline at end of file
diff --git a/library/ace/snippets/mips_assembler.js b/library/ace/snippets/mips_assembler.js
new file mode 100644
index 000000000..6af8f0291
--- /dev/null
+++ b/library/ace/snippets/mips_assembler.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mips_assembler",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mips_assembler"}) \ No newline at end of file
diff --git a/library/ace/snippets/mipsassembler.js b/library/ace/snippets/mipsassembler.js
new file mode 100644
index 000000000..015d7f8dc
--- /dev/null
+++ b/library/ace/snippets/mipsassembler.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mipsassembler",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/mushcode.js b/library/ace/snippets/mushcode.js
new file mode 100644
index 000000000..25b7e76a1
--- /dev/null
+++ b/library/ace/snippets/mushcode.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mushcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mushcode"}) \ No newline at end of file
diff --git a/library/ace/snippets/mysql.js b/library/ace/snippets/mysql.js
new file mode 100644
index 000000000..71b06d9cb
--- /dev/null
+++ b/library/ace/snippets/mysql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/mysql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mysql"}) \ No newline at end of file
diff --git a/library/ace/snippets/nix.js b/library/ace/snippets/nix.js
new file mode 100644
index 000000000..c44b96735
--- /dev/null
+++ b/library/ace/snippets/nix.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/nix",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="nix"}) \ No newline at end of file
diff --git a/library/ace/snippets/nsis.js b/library/ace/snippets/nsis.js
new file mode 100644
index 000000000..1b0bf3968
--- /dev/null
+++ b/library/ace/snippets/nsis.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/nsis",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/objectivec.js b/library/ace/snippets/objectivec.js
new file mode 100644
index 000000000..aa49339f0
--- /dev/null
+++ b/library/ace/snippets/objectivec.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/objectivec",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="objectivec"}) \ No newline at end of file
diff --git a/library/ace/snippets/ocaml.js b/library/ace/snippets/ocaml.js
new file mode 100644
index 000000000..c9a46aa90
--- /dev/null
+++ b/library/ace/snippets/ocaml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ocaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ocaml"}) \ No newline at end of file
diff --git a/library/ace/snippets/pascal.js b/library/ace/snippets/pascal.js
new file mode 100644
index 000000000..176f7d95e
--- /dev/null
+++ b/library/ace/snippets/pascal.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/pascal",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pascal"}) \ No newline at end of file
diff --git a/library/ace/snippets/perl.js b/library/ace/snippets/perl.js
new file mode 100644
index 000000000..0668b47c1
--- /dev/null
+++ b/library/ace/snippets/perl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/perl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# #!/usr/bin/perl\nsnippet #!\n #!/usr/bin/env perl\n\n# Hash Pointer\nsnippet .\n =>\n# Function\nsnippet sub\n sub ${1:function_name} {\n ${2:#body ...}\n }\n# Conditional\nsnippet if\n if (${1}) {\n ${2:# body...}\n }\n# Conditional if..else\nsnippet ife\n if (${1}) {\n ${2:# body...}\n }\n else {\n ${3:# else...}\n }\n# Conditional if..elsif..else\nsnippet 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\nsnippet xif\n ${1:expression} if ${2:condition};${3}\n# Unless conditional\nsnippet unless\n unless (${1}) {\n ${2:# body...}\n }\n# Unless conditional One-line\nsnippet xunless\n ${1:expression} unless ${2:condition};${3}\n# Try/Except\nsnippet eval\n local $@;\n eval {\n ${1:# do something risky...}\n };\n if (my $e = $@) {\n ${2:# handle failure...}\n }\n# While Loop\nsnippet wh\n while (${1}) {\n ${2:# body...}\n }\n# While Loop One-line\nsnippet xwh\n ${1:expression} while ${2:condition};${3}\n# C-style For Loop\nsnippet cfor\n for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n ${4:# body...}\n }\n# For loop one-line\nsnippet xfor\n ${1:expression} for @${2:array};${3}\n# Foreach Loop\nsnippet for\n foreach my $${1:x} (@${2:array}) {\n ${3:# body...}\n }\n# Foreach Loop One-line\nsnippet fore\n ${1:expression} foreach @${2:array};${3}\n# Package\nsnippet package\n package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\n ${2}\n\n 1;\n\n __END__\n# Package syntax perl >= 5.14\nsnippet packagev514\n package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\n ${3}\n\n 1;\n\n __END__\n#moose\nsnippet moose\n use Moose;\n use namespace::autoclean;\n ${1:#}BEGIN {extends '${2:ParentClass}'};\n\n ${3}\n# parent\nsnippet parent\n use parent qw(${1:Parent Class});\n# Read File\nsnippet slurp\n my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n ${3}\n# strict warnings\nsnippet strwar\n use strict;\n use warnings;\n# older versioning with perlcritic bypass\nsnippet vers\n ## no critic\n our $VERSION = '${1:version}';\n eval $VERSION;\n ## use critic\n# new 'switch' like feature\nsnippet switch\n use feature 'switch';\n\n# Anonymous subroutine\nsnippet asub\n sub {\n ${1:# body }\n }\n\n\n\n# Begin block\nsnippet begin\n BEGIN {\n ${1:# begin body}\n }\n\n# call package function with some parameter\nsnippet pkgmv\n __PACKAGE__->${1:package_method}(${2:var})\n\n# call package function without a parameter\nsnippet pkgm\n __PACKAGE__->${1:package_method}()\n\n# call package \"get_\" function without a parameter\nsnippet pkget\n __PACKAGE__->get_${1:package_method}()\n\n# call package function with a parameter\nsnippet pkgetv\n __PACKAGE__->get_${1:package_method}(${2:var})\n\n# complex regex\nsnippet qrx\n qr/\n ${1:regex}\n /xms\n\n#simpler regex\nsnippet qr/\n qr/${1:regex}/x\n\n#given\nsnippet given\n given ($${1:var}) {\n ${2:# cases}\n ${3:# default}\n }\n\n# switch-like case\nsnippet when\n when (${1:case}) {\n ${2:# body}\n }\n\n# hash slice\nsnippet hslice\n @{ ${1:hash} }{ ${2:array} }\n\n\n# map\nsnippet map\n map { ${2: body } } ${1: @array } ;\n\n\n\n# Pod stub\nsnippet 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\nsnippet psub\n =head2 ${1:MethodName}\n\n ${2:Summary....}\n\n# Heading for inline subroutine pod\nsnippet psubi\n =head2 ${1:MethodName}\n\n ${2:Summary...}\n\n\n =cut\n# inline documented subroutine\nsnippet 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\nsnippet 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\nsnippet 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\nsnippet override\n override ${1:attribute} => sub {\n ${2:# my $self = shift;};\n ${3:# my ($self, $args) = @_;};\n };\n\n\n# use test classes\nsnippet tuse\n use Test::More;\n use Test::Deep; # (); # uncomment to stop prototype errors\n use Test::Exception;\n\n# local test lib\nsnippet tlib\n use lib qw{ ./t/lib };\n\n#test methods\nsnippet tmeths\n $ENV{TEST_METHOD} = '${1:regex}';\n\n# runtestclass\nsnippet trunner\n use ${1:test_class};\n $1->runtests();\n\n# Test::Class-style test\nsnippet 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\nsnippet 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\nsnippet 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\nsnippet debug_trace\n use Carp; # 'verbose';\n # cloak \"die\"\n # warn \"warning\"\n $SIG{'__DIE__'} = sub {\n require Carp; Carp::confess\n };\n\n",t.scope="perl"}) \ No newline at end of file
diff --git a/library/ace/snippets/pgsql.js b/library/ace/snippets/pgsql.js
new file mode 100644
index 000000000..260ff292d
--- /dev/null
+++ b/library/ace/snippets/pgsql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/pgsql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pgsql"}) \ No newline at end of file
diff --git a/library/ace/snippets/php.js b/library/ace/snippets/php.js
new file mode 100644
index 000000000..5350bb6e8
--- /dev/null
+++ b/library/ace/snippets/php.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/php",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet <?\n <?php\n\n ${1}\nsnippet ec\n echo ${1};\nsnippet <?e\n <?php echo ${1} ?>\n# this one is for php5.4\nsnippet <?=\n <?=${1}?>\nsnippet ns\n namespace ${1:Foo\\Bar\\Baz};\n ${2}\nsnippet use\n use ${1:Foo\\Bar\\Baz};\n ${2}\nsnippet c\n ${1:abstract }class ${2:$FILENAME}\n {\n ${3}\n }\nsnippet i\n interface ${1:$FILENAME}\n {\n ${2}\n }\nsnippet t.\n $this->${1}\nsnippet f\n function ${1:foo}(${2:array }${3:$bar})\n {\n ${4}\n }\n# method\nsnippet m\n ${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\n {\n ${7}\n }\n# setter method\nsnippet 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\nsnippet 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\nsnippet $s\n ${1:$foo}->set${2:Bar}(${3});\n#getter\nsnippet $g\n ${1:$foo}->get${2:Bar}();\n\n# Tertiary conditional\nsnippet =?:\n $${1:foo} = ${2:true} ? ${3:a} : ${4};\nsnippet ?:\n ${1:true} ? ${2:a} : ${3}\n\nsnippet C\n $_COOKIE['${1:variable}']${2}\nsnippet E\n $_ENV['${1:variable}']${2}\nsnippet F\n $_FILES['${1:variable}']${2}\nsnippet G\n $_GET['${1:variable}']${2}\nsnippet P\n $_POST['${1:variable}']${2}\nsnippet R\n $_REQUEST['${1:variable}']${2}\nsnippet S\n $_SERVER['${1:variable}']${2}\nsnippet SS\n $_SESSION['${1:variable}']${2}\n \n# the following are old ones\nsnippet inc\n include '${1:file}';${2}\nsnippet inc1\n include_once '${1:file}';${2}\nsnippet req\n require '${1:file}';${2}\nsnippet req1\n require_once '${1:file}';${2}\n# Start Docblock\nsnippet /*\n /**\n * ${1}\n */\n# Class - post doc\nsnippet 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\nsnippet doc_vp\n /**\n * ${1:undocumented class variable}\n *\n * @var ${2:string}\n */${3}\n# Class Variable\nsnippet doc_v\n /**\n * ${3:undocumented class variable}\n *\n * @var ${4:string}\n */\n ${1:var} $${2};${5}\n# Class\nsnippet 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\nsnippet doc_dp\n /**\n * ${1:undocumented constant}\n */${2}\n# Constant Definition\nsnippet doc_d\n /**\n * ${3:undocumented constant}\n */\n define(${1}, ${2});${4}\n# Function - post doc\nsnippet doc_fp\n /**\n * ${1:undocumented function}\n *\n * @return ${2:void}\n * @author ${3:`g:snips_author`}\n */${4}\n# Function signature\nsnippet 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\nsnippet 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\nsnippet 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\nsnippet 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 ...\nsnippet 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(...)\nsnippet def\n define('${1}'${2});${3}\n# defined(...)\nsnippet def?\n ${1}defined('${2}')${3}\nsnippet wh\n while (${1:/* condition */}) {\n ${2:// code...}\n }\n# do ... while\nsnippet do\n do {\n ${2:// code... }\n } while (${1:/* condition */});\nsnippet if\n if (${1:/* condition */}) {\n ${2:// code...}\n }\nsnippet ifil\n <?php if (${1:/* condition */}): ?>\n ${2:<!-- code... -->}\n <?php endif; ?>\nsnippet ife\n if (${1:/* condition */}) {\n ${2:// code...}\n } else {\n ${3:// code...}\n }\n ${4}\nsnippet ifeil\n <?php if (${1:/* condition */}): ?>\n ${2:<!-- html... -->}\n <?php else: ?>\n ${3:<!-- html... -->}\n <?php endif; ?>\n ${4}\nsnippet else\n else {\n ${1:// code...}\n }\nsnippet elseif\n elseif (${1:/* condition */}) {\n ${2:// code...}\n }\nsnippet switch\n switch ($${1:variable}) {\n case '${2:value}':\n ${3:// code...}\n break;\n ${5}\n default:\n ${4:// code...}\n break;\n }\nsnippet case\n case '${1:value}':\n ${2:// code...}\n break;${3}\nsnippet for\n for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\n ${4: // code...}\n }\nsnippet foreach\n foreach ($${1:variable} as $${2:value}) {\n ${3:// code...}\n }\nsnippet foreachil\n <?php foreach ($${1:variable} as $${2:value}): ?>\n ${3:<!-- html... -->}\n <?php endforeach; ?>\nsnippet foreachk\n foreach ($${1:variable} as $${2:key} => $${3:value}) {\n ${4:// code...}\n }\nsnippet foreachkil\n <?php foreach ($${1:variable} as $${2:key} => $${3:value}): ?>\n ${4:<!-- html... -->}\n <?php endforeach; ?>\n# $... = array (...)\nsnippet array\n $${1:arrayName} = array('${2}' => ${3});${4}\nsnippet try\n try {\n ${2}\n } catch (${1:Exception} $e) {\n }\n# lambda with closure\nsnippet lambda\n ${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\n ${4}\n };\n# pre_dump();\nsnippet pd\n echo '<pre>'; var_dump(${1}); echo '</pre>';\n# pre_dump(); die();\nsnippet pdd\n echo '<pre>'; var_dump(${1}); echo '</pre>'; die(${2:});\nsnippet vd\n var_dump(${1});\nsnippet vdd\n var_dump(${1}); die(${2:});\nsnippet http_redirect\n header (\"HTTP/1.1 301 Moved Permanently\"); \n header (\"Location: \".URL); \n exit();\n# Getters & Setters\nsnippet 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\nsnippet 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 }\nsnippet rett\n return true;\nsnippet retf\n return false;\n",t.scope="php"}) \ No newline at end of file
diff --git a/library/ace/snippets/plain_text.js b/library/ace/snippets/plain_text.js
new file mode 100644
index 000000000..25ec4afae
--- /dev/null
+++ b/library/ace/snippets/plain_text.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/plain_text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="plain_text"}) \ No newline at end of file
diff --git a/library/ace/snippets/powershell.js b/library/ace/snippets/powershell.js
new file mode 100644
index 000000000..1672035d7
--- /dev/null
+++ b/library/ace/snippets/powershell.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/powershell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="powershell"}) \ No newline at end of file
diff --git a/library/ace/snippets/praat.js b/library/ace/snippets/praat.js
new file mode 100644
index 000000000..8f290e034
--- /dev/null
+++ b/library/ace/snippets/praat.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/praat",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="praat"}) \ No newline at end of file
diff --git a/library/ace/snippets/prolog.js b/library/ace/snippets/prolog.js
new file mode 100644
index 000000000..7f0071104
--- /dev/null
+++ b/library/ace/snippets/prolog.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/prolog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="prolog"}) \ No newline at end of file
diff --git a/library/ace/snippets/properties.js b/library/ace/snippets/properties.js
new file mode 100644
index 000000000..6c0b236a7
--- /dev/null
+++ b/library/ace/snippets/properties.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/properties",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="properties"}) \ No newline at end of file
diff --git a/library/ace/snippets/protobuf.js b/library/ace/snippets/protobuf.js
new file mode 100644
index 000000000..20b10fbb2
--- /dev/null
+++ b/library/ace/snippets/protobuf.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/protobuf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="",t.scope="protobuf"}) \ No newline at end of file
diff --git a/library/ace/snippets/python.js b/library/ace/snippets/python.js
new file mode 100644
index 000000000..ee023b2b4
--- /dev/null
+++ b/library/ace/snippets/python.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/python",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet #!\n #!/usr/bin/env python\nsnippet imp\n import ${1:module}\nsnippet from\n from ${1:package} import ${2:module}\n# Module Docstring\nsnippet docs\n \'\'\'\n File: ${1:FILENAME:file_name}\n Author: ${2:author}\n Description: ${3}\n \'\'\'\nsnippet wh\n while ${1:condition}:\n ${2:# TODO: write code...}\n# dowh - does the same as do...while in other languages\nsnippet dowh\n while True:\n ${1:# TODO: write code...}\n if ${2:condition}:\n break\nsnippet with\n with ${1:expr} as ${2:var}:\n ${3:# TODO: write code...}\n# New Class\nsnippet 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\nsnippet def\n def ${1:fname}(${2:`indent(\'.\') ? \'self\' : \'\'`}):\n """${3:docstring for $1}"""\n ${4:# TODO: write code...}\nsnippet deff\n def ${1:fname}(${2:`indent(\'.\') ? \'self\' : \'\'`}):\n ${3:# TODO: write code...}\n# New Method\nsnippet defs\n def ${1:mname}(self, ${2:arg}):\n ${3:# TODO: write code...}\n# New Property\nsnippet 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\nsnippet if\n if ${1:condition}:\n ${2:# TODO: write code...}\nsnippet el\n else:\n ${1:# TODO: write code...}\nsnippet ei\n elif ${1:condition}:\n ${2:# TODO: write code...}\n# For\nsnippet for\n for ${1:item} in ${2:items}:\n ${3:# TODO: write code...}\n# Encodes\nsnippet cutf8\n # -*- coding: utf-8 -*-\nsnippet clatin1\n # -*- coding: latin-1 -*-\nsnippet cascii\n # -*- coding: ascii -*-\n# Lambda\nsnippet ld\n ${1:var} = lambda ${2:vars} : ${3:action}\nsnippet .\n self.\nsnippet try Try/Except\n try:\n ${1:# TODO: write code...}\n except ${2:Exception}, ${3:e}:\n ${4:raise $3}\nsnippet 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...}\nsnippet 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...}\nsnippet 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__\':\nsnippet ifmain\n if __name__ == \'__main__\':\n ${1:main()}\n# __magic__\nsnippet _\n __${1:init}__${2}\n# python debugger (pdb)\nsnippet pdb\n import pdb; pdb.set_trace()\n# ipython debugger (ipdb)\nsnippet ipdb\n import ipdb; ipdb.set_trace()\n# ipython debugger (pdbbb)\nsnippet pdbbb\n import pdbpp; pdbpp.set_trace()\nsnippet pprint\n import pprint; pprint.pprint(${1})${2}\nsnippet "\n """\n ${1:doc}\n """\n# test function/method\nsnippet test\n def test_${1:description}(${2:self}):\n ${3:# TODO: write code...}\n# test case\nsnippet testcase\n class ${1:ExampleCase}(unittest.TestCase):\n \n def test_${2:description}(self):\n ${3:# TODO: write code...}\nsnippet fut\n from __future__ import ${1}\n#getopt\nsnippet 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',t.scope="python"}) \ No newline at end of file
diff --git a/library/ace/snippets/r.js b/library/ace/snippets/r.js
new file mode 100644
index 000000000..7f075e1e0
--- /dev/null
+++ b/library/ace/snippets/r.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/r",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet #!\n #!/usr/bin/env Rscript\n\n# includes\nsnippet lib\n library(${1:package})\nsnippet req\n require(${1:package})\nsnippet source\n source(\'${1:file}\')\n\n# conditionals\nsnippet if\n if (${1:condition}) {\n ${2:code}\n }\nsnippet el\n else {\n ${1:code}\n }\nsnippet ei\n else if (${1:condition}) {\n ${2:code}\n }\n\n# functions\nsnippet fun\n ${1:name} = function (${2:variables}) {\n ${3:code}\n }\nsnippet ret\n return(${1:code})\n\n# dataframes, lists, etc\nsnippet df\n ${1:name}[${2:rows}, ${3:cols}]\nsnippet c\n c(${1:items})\nsnippet li\n list(${1:items})\nsnippet mat\n matrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\n\n# apply functions\nsnippet apply\n apply(${1:array}, ${2:margin}, ${3:function})\nsnippet lapply\n lapply(${1:list}, ${2:function})\nsnippet sapply\n sapply(${1:list}, ${2:function})\nsnippet vapply\n vapply(${1:list}, ${2:function}, ${3:type})\nsnippet mapply\n mapply(${1:function}, ${2:...})\nsnippet tapply\n tapply(${1:vector}, ${2:index}, ${3:function})\nsnippet rapply\n rapply(${1:list}, ${2:function})\n\n# plyr functions\nsnippet dd\n ddply(${1:frame}, ${2:variables}, ${3:function})\nsnippet dl\n dlply(${1:frame}, ${2:variables}, ${3:function})\nsnippet da\n daply(${1:frame}, ${2:variables}, ${3:function})\nsnippet d_\n d_ply(${1:frame}, ${2:variables}, ${3:function})\n\nsnippet ad\n adply(${1:array}, ${2:margin}, ${3:function})\nsnippet al\n alply(${1:array}, ${2:margin}, ${3:function})\nsnippet aa\n aaply(${1:array}, ${2:margin}, ${3:function})\nsnippet a_\n a_ply(${1:array}, ${2:margin}, ${3:function})\n\nsnippet ld\n ldply(${1:list}, ${2:function})\nsnippet ll\n llply(${1:list}, ${2:function})\nsnippet la\n laply(${1:list}, ${2:function})\nsnippet l_\n l_ply(${1:list}, ${2:function})\n\nsnippet md\n mdply(${1:matrix}, ${2:function})\nsnippet ml\n mlply(${1:matrix}, ${2:function})\nsnippet ma\n maply(${1:matrix}, ${2:function})\nsnippet m_\n m_ply(${1:matrix}, ${2:function})\n\n# plot functions\nsnippet pl\n plot(${1:x}, ${2:y})\nsnippet ggp\n ggplot(${1:data}, aes(${2:aesthetics}))\nsnippet 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\nsnippet fis\n fisher.test(${1:x}, ${2:y})\nsnippet chi\n chisq.test(${1:x}, ${2:y})\nsnippet tt\n t.test(${1:x}, ${2:y})\nsnippet wil\n wilcox.test(${1:x}, ${2:y})\nsnippet cor\n cor.test(${1:x}, ${2:y})\nsnippet fte\n var.test(${1:x}, ${2:y})\nsnippet kvt \n kv.test(${1:x}, ${2:y})\n',t.scope="r"}) \ No newline at end of file
diff --git a/library/ace/snippets/razor.js b/library/ace/snippets/razor.js
new file mode 100644
index 000000000..d4f087286
--- /dev/null
+++ b/library/ace/snippets/razor.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/razor",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet if\n(${1} == ${2}) {\n ${3}\n}",t.scope="razor"}) \ No newline at end of file
diff --git a/library/ace/snippets/rdoc.js b/library/ace/snippets/rdoc.js
new file mode 100644
index 000000000..c7c3b1e06
--- /dev/null
+++ b/library/ace/snippets/rdoc.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rdoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rdoc"}) \ No newline at end of file
diff --git a/library/ace/snippets/rhtml.js b/library/ace/snippets/rhtml.js
new file mode 100644
index 000000000..f2b53b5a3
--- /dev/null
+++ b/library/ace/snippets/rhtml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rhtml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rhtml"}) \ No newline at end of file
diff --git a/library/ace/snippets/rst.js b/library/ace/snippets/rst.js
new file mode 100644
index 000000000..6d774e861
--- /dev/null
+++ b/library/ace/snippets/rst.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rst",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/ruby.js b/library/ace/snippets/ruby.js
new file mode 100644
index 000000000..0c3068010
--- /dev/null
+++ b/library/ace/snippets/ruby.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/ruby",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='########################################\n# Ruby snippets - for Rails, see below #\n########################################\n\n# encoding for Ruby 1.9\nsnippet enc\n # encoding: utf-8\n\n# #!/usr/bin/env ruby\nsnippet #!\n #!/usr/bin/env ruby\n # encoding: utf-8\n\n# New Block\nsnippet =b\n =begin rdoc\n ${1}\n =end\nsnippet y\n :yields: ${1:arguments}\nsnippet rb\n #!/usr/bin/env ruby -wKU\nsnippet beg\n begin\n ${3}\n rescue ${1:Exception} => ${2:e}\n end\n\nsnippet req require\n require "${1}"${2}\nsnippet #\n # =>\nsnippet end\n __END__\nsnippet case\n case ${1:object}\n when ${2:condition}\n ${3}\n end\nsnippet when\n when ${1:condition}\n ${2}\nsnippet def\n def ${1:method_name}\n ${2}\n end\nsnippet deft\n def test_${1:case_name}\n ${2}\n end\nsnippet if\n if ${1:condition}\n ${2}\n end\nsnippet ife\n if ${1:condition}\n ${2}\n else\n ${3}\n end\nsnippet elsif\n elsif ${1:condition}\n ${2}\nsnippet unless\n unless ${1:condition}\n ${2}\n end\nsnippet while\n while ${1:condition}\n ${2}\n end\nsnippet for\n for ${1:e} in ${2:c}\n ${3}\n end\nsnippet until\n until ${1:condition}\n ${2}\n end\nsnippet cla class .. end\n class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n ${2}\n end\nsnippet cla class .. initialize .. end\n class ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n def initialize(${2:args})\n ${3}\n end\n end\nsnippet 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\nsnippet 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\nsnippet cla class BlankSlate .. initialize .. end\n class ${1:BlankSlate}\n instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n end\nsnippet cla class << self .. end\n class << ${1:self}\n ${2}\n end\n# class .. < DelegateClass .. initialize .. end\nsnippet 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\nsnippet mod module .. end\n module ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n ${2}\n end\nsnippet mod module .. module_function .. end\n module ${1:`substitute(Filename(), \'\\(_\\|^\\)\\(.\\)\', \'\\u\\2\', \'g\')`}\n module_function\n\n ${2}\n end\nsnippet 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\nsnippet r\n attr_reader :${1:attr_names}\n# attr_writer\nsnippet w\n attr_writer :${1:attr_names}\n# attr_accessor\nsnippet rw\n attr_accessor :${1:attr_names}\nsnippet atp\n attr_protected :${1:attr_names}\nsnippet ata\n attr_accessible :${1:attr_names}\n# include Enumerable\nsnippet Enum\n include Enumerable\n\n def each(&block)\n ${1}\n end\n# include Comparable\nsnippet Comp\n include Comparable\n\n def <=>(other)\n ${1}\n end\n# extend Forwardable\nsnippet Forw-\n extend Forwardable\n# def self\nsnippet defs\n def self.${1:class_method_name}\n ${2}\n end\n# def method_missing\nsnippet defmm\n def method_missing(meth, *args, &blk)\n ${1}\n end\nsnippet defd\n def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\nsnippet defds\n def_delegators :${1:@del_obj}, :${2:del_methods}\nsnippet am\n alias_method :${1:new_name}, :${2:old_name}\nsnippet app\n if __FILE__ == $PROGRAM_NAME\n ${1}\n end\n# usage_if()\nsnippet usai\n if ARGV.${1}\n abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}\n end\n# usage_unless()\nsnippet usau\n unless ARGV.${1}\n abort "Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}"${3}\n end\nsnippet array\n Array.new(${1:10}) { |${2:i}| ${3} }\nsnippet hash\n Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\nsnippet file File.foreach() { |line| .. }\n File.foreach(${1:"path/to/file"}) { |${2:line}| ${3} }\nsnippet file File.read()\n File.read(${1:"path/to/file"})${2}\nsnippet Dir Dir.global() { |file| .. }\n Dir.glob(${1:"dir/glob/*"}) { |${2:file}| ${3} }\nsnippet Dir Dir[".."]\n Dir[${1:"glob/**/*.rb"}]${2}\nsnippet dir\n Filename.dirname(__FILE__)\nsnippet deli\n delete_if { |${1:e}| ${2} }\nsnippet fil\n fill(${1:range}) { |${2:i}| ${3} }\n# flatten_once()\nsnippet flao\n inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\nsnippet zip\n zip(${1:enums}) { |${2:row}| ${3} }\n# downto(0) { |n| .. }\nsnippet dow\n downto(${1:0}) { |${2:n}| ${3} }\nsnippet ste\n step(${1:2}) { |${2:n}| ${3} }\nsnippet tim\n times { |${1:n}| ${2} }\nsnippet upt\n upto(${1:1.0/0.0}) { |${2:n}| ${3} }\nsnippet loo\n loop { ${1} }\nsnippet ea\n each { |${1:e}| ${2} }\nsnippet ead\n each do |${1:e}|\n ${2}\n end\nsnippet eab\n each_byte { |${1:byte}| ${2} }\nsnippet eac- each_char { |chr| .. }\n each_char { |${1:chr}| ${2} }\nsnippet eac- each_cons(..) { |group| .. }\n each_cons(${1:2}) { |${2:group}| ${3} }\nsnippet eai\n each_index { |${1:i}| ${2} }\nsnippet eaid\n each_index do |${1:i}|\n ${2}\n end\nsnippet eak\n each_key { |${1:key}| ${2} }\nsnippet eakd\n each_key do |${1:key}|\n ${2}\n end\nsnippet eal\n each_line { |${1:line}| ${2} }\nsnippet eald\n each_line do |${1:line}|\n ${2}\n end\nsnippet eap\n each_pair { |${1:name}, ${2:val}| ${3} }\nsnippet eapd\n each_pair do |${1:name}, ${2:val}|\n ${3}\n end\nsnippet eas-\n each_slice(${1:2}) { |${2:group}| ${3} }\nsnippet easd-\n each_slice(${1:2}) do |${2:group}|\n ${3}\n end\nsnippet eav\n each_value { |${1:val}| ${2} }\nsnippet eavd\n each_value do |${1:val}|\n ${2}\n end\nsnippet eawi\n each_with_index { |${1:e}, ${2:i}| ${3} }\nsnippet eawid\n each_with_index do |${1:e},${2:i}|\n ${3}\n end\nsnippet reve\n reverse_each { |${1:e}| ${2} }\nsnippet reved\n reverse_each do |${1:e}|\n ${2}\n end\nsnippet inj\n inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\nsnippet injd\n inject(${1:init}) do |${2:mem}, ${3:var}|\n ${4}\n end\nsnippet map\n map { |${1:e}| ${2} }\nsnippet mapd\n map do |${1:e}|\n ${2}\n end\nsnippet mapwi-\n enum_with_index.map { |${1:e}, ${2:i}| ${3} }\nsnippet sor\n sort { |a, b| ${1} }\nsnippet sorb\n sort_by { |${1:e}| ${2} }\nsnippet ran\n sort_by { rand }\nsnippet all\n all? { |${1:e}| ${2} }\nsnippet any\n any? { |${1:e}| ${2} }\nsnippet cl\n classify { |${1:e}| ${2} }\nsnippet col\n collect { |${1:e}| ${2} }\nsnippet cold\n collect do |${1:e}|\n ${2}\n end\nsnippet det\n detect { |${1:e}| ${2} }\nsnippet detd\n detect do |${1:e}|\n ${2}\n end\nsnippet fet\n fetch(${1:name}) { |${2:key}| ${3} }\nsnippet fin\n find { |${1:e}| ${2} }\nsnippet find\n find do |${1:e}|\n ${2}\n end\nsnippet fina\n find_all { |${1:e}| ${2} }\nsnippet finad\n find_all do |${1:e}|\n ${2}\n end\nsnippet gre\n grep(${1:/pattern/}) { |${2:match}| ${3} }\nsnippet sub\n ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\nsnippet sca\n scan(${1:/pattern/}) { |${2:match}| ${3} }\nsnippet scad\n scan(${1:/pattern/}) do |${2:match}|\n ${3}\n end\nsnippet max\n max { |a, b| ${1} }\nsnippet min\n min { |a, b| ${1} }\nsnippet par\n partition { |${1:e}| ${2} }\nsnippet pard\n partition do |${1:e}|\n ${2}\n end\nsnippet rej\n reject { |${1:e}| ${2} }\nsnippet rejd\n reject do |${1:e}|\n ${2}\n end\nsnippet sel\n select { |${1:e}| ${2} }\nsnippet seld\n select do |${1:e}|\n ${2}\n end\nsnippet lam\n lambda { |${1:args}| ${2} }\nsnippet doo\n do\n ${1}\n end\nsnippet dov\n do |${1:variable}|\n ${2}\n end\nsnippet :\n :${1:key} => ${2:"value"}${3}\nsnippet ope\n open(${1:"path/or/url/or/pipe"}, "${2:w}") { |${3:io}| ${4} }\n# path_from_here()\nsnippet fpath\n File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n# unix_filter {}\nsnippet unif\n ARGF.each_line${1} do |${2:line}|\n ${3}\n end\n# option_parse {}\nsnippet optp\n require "optparse"\n\n options = {${1:default => "args"}}\n\n ARGV.options do |opts|\n opts.banner = "Usage: #{File.basename($PROGRAM_NAME)}\nsnippet opt\n opts.on( "-${1:o}", "--${2:long-option-name}", ${3:String},\n "${4:Option description.}") do |${5:opt}|\n ${6}\n end\nsnippet 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\nsnippet ts\n require "test/unit"\n\n require "tc_${1:test_case_file}"\n require "tc_${2:test_case_file}"${3}\nsnippet as\n assert ${1:test}, "${2:Failure message.}"${3}\nsnippet ase\n assert_equal ${1:expected}, ${2:actual}${3}\nsnippet asne\n assert_not_equal ${1:unexpected}, ${2:actual}${3}\nsnippet asid\n assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\nsnippet asio\n assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\nsnippet asko\n assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\nsnippet asn\n assert_nil ${1:instance}${2}\nsnippet asnn\n assert_not_nil ${1:instance}${2}\nsnippet asm\n assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\nsnippet asnm\n assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\nsnippet aso\n assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\nsnippet asr\n assert_raise ${1:Exception} { ${2} }\nsnippet asrd\n assert_raise ${1:Exception} do\n ${2}\n end\nsnippet asnr\n assert_nothing_raised ${1:Exception} { ${2} }\nsnippet asnrd\n assert_nothing_raised ${1:Exception} do\n ${2}\n end\nsnippet asrt\n assert_respond_to ${1:object}, :${2:method}${3}\nsnippet ass assert_same(..)\n assert_same ${1:expected}, ${2:actual}${3}\nsnippet ass assert_send(..)\n assert_send [${1:object}, :${2:message}, ${3:args}]${4}\nsnippet asns\n assert_not_same ${1:unexpected}, ${2:actual}${3}\nsnippet ast\n assert_throws :${1:expected} { ${2} }\nsnippet astd\n assert_throws :${1:expected} do\n ${2}\n end\nsnippet asnt\n assert_nothing_thrown { ${1} }\nsnippet asntd\n assert_nothing_thrown do\n ${1}\n end\nsnippet fl\n flunk "${1:Failure message.}"${2}\n# Benchmark.bmbm do .. end\nsnippet bm-\n TESTS = ${1:10_000}\n Benchmark.bmbm do |results|\n ${2}\n end\nsnippet rep\n results.report("${1:name}:") { TESTS.times { ${2} }}\n# Marshal.dump(.., file)\nsnippet Md\n File.open(${1:"path/to/file.dump"}, "wb") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n# Mashal.load(obj)\nsnippet Ml\n File.open(${1:"path/to/file.dump"}, "rb") { |${2:file}| Marshal.load($2) }${3}\n# deep_copy(..)\nsnippet deec\n Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\nsnippet Pn-\n PStore.new(${1:"file_name.pstore"})${2}\nsnippet tra\n transaction(${1:true}) { ${2} }\n# xmlread(..)\nsnippet xml-\n REXML::Document.new(File.read(${1:"path/to/file"}))${2}\n# xpath(..) { .. }\nsnippet xpa\n elements.each(${1:"//Xpath"}) do |${2:node}|\n ${3}\n end\n# class_from_name()\nsnippet clafn\n split("::").inject(Object) { |par, const| par.const_get(const) }\n# singleton_class()\nsnippet sinc\n class << self; self end\nsnippet nam\n namespace :${1:`Filename()`} do\n ${2}\n end\nsnippet tas\n desc "${1:Task description}"\n task :${2:task_name => [:dependent, :tasks]} do\n ${3}\n end\n# block\nsnippet b\n { |${1:var}| ${2} }\nsnippet 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\nsnippet debug\n require \'ruby-debug\'; debugger; true;\nsnippet pry\n require \'pry\'; binding.pry\n\n#############################################\n# Rails snippets - for pure Ruby, see above #\n#############################################\nsnippet art\n assert_redirected_to ${1::action => "${2:index}"}\nsnippet artnp\n assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\nsnippet artnpp\n assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\nsnippet artp\n assert_redirected_to ${1:model}_path(${2:@$1})\nsnippet artpp\n assert_redirected_to ${1:model}s_path\nsnippet asd\n assert_difference "${1:Model}.${2:count}", $1 do\n ${3}\n end\nsnippet asnd\n assert_no_difference "${1:Model}.${2:count}" do\n ${3}\n end\nsnippet asre\n assert_response :${1:success}, @response.body${2}\nsnippet asrj\n assert_rjs :${1:replace}, "${2:dom id}"\nsnippet ass assert_select(..)\n assert_select \'${1:path}\', :${2:text} => \'${3:inner_html\' ${4:do}\nsnippet bf\n before_filter :${1:method}\nsnippet bt\n belongs_to :${1:association}\nsnippet crw\n cattr_accessor :${1:attr_names}\nsnippet 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}\nsnippet 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}\nsnippet defedit\n def edit\n @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n end\nsnippet 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}\nsnippet 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}\nsnippet 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}\nsnippet 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}\nsnippet flash\n flash[:${1:notice}] = "${2}"\nsnippet habtm\n has_and_belongs_to_many :${1:object}, :join_table => "${2:table_name}", :foreign_key => "${3}_id"${4}\nsnippet hm\n has_many :${1:object}\nsnippet hmd\n has_many :${1:other}s, :class_name => "${2:$1}", :foreign_key => "${3:$1}_id", :dependent => :destroy${4}\nsnippet hmt\n has_many :${1:object}, :through => :${2:object}\nsnippet ho\n has_one :${1:object}\nsnippet i18\n I18n.t(\'${1:type.key}\')${2}\nsnippet ist\n <%= image_submit_tag("${1:agree.png}", :id => "${2:id}"${3} %>\nsnippet log\n Rails.logger.${1:debug} ${2}\nsnippet log2\n RAILS_DEFAULT_LOGGER.${1:debug} ${2}\nsnippet logd\n logger.debug { "${1:message}" }${2}\nsnippet loge\n logger.error { "${1:message}" }${2}\nsnippet logf\n logger.fatal { "${1:message}" }${2}\nsnippet logi\n logger.info { "${1:message}" }${2}\nsnippet logw\n logger.warn { "${1:message}" }${2}\nsnippet mapc\n ${1:map}.${2:connect} \'${3:controller/:action/:id}\'\nsnippet mapca\n ${1:map}.catch_all "*${2:anything}", :controller => "${3:default}", :action => "${4:error}"${5}\nsnippet mapr\n ${1:map}.resource :${2:resource}\nsnippet maprs\n ${1:map}.resources :${2:resource}\nsnippet mapwo\n ${1:map}.with_options :${2:controller} => \'${3:thing}\' do |$3|\n ${4}\n end\nsnippet mbs\n before_save :${1:method}\nsnippet mcht\n change_table :${1:table_name} do |t|\n ${2}\n end\nsnippet mp\n map(&:${1:id})\nsnippet mrw\n mattr_accessor :${1:attr_names}\nsnippet oa\n order("${1:field}")\nsnippet od\n order("${1:field} DESC")\nsnippet pa\n params[:${1:id}]${2}\nsnippet ra\n render :action => "${1:action}"\nsnippet ral\n render :action => "${1:action}", :layout => "${2:layoutname}"\nsnippet rest\n respond_to do |wants|\n wants.${1:html} { ${2} }\n end\nsnippet rf\n render :file => "${1:filepath}"\nsnippet rfu\n render :file => "${1:filepath}", :use_full_path => ${2:false}\nsnippet ri\n render :inline => "${1:<%= \'hello\' %>}"\nsnippet ril\n render :inline => "${1:<%= \'hello\' %>}", :locals => { ${2::name} => "${3:value}"${4} }\nsnippet rit\n render :inline => "${1:<%= \'hello\' %>}", :type => ${2::rxml}\nsnippet rjson\n render :json => ${1:text to render}\nsnippet rl\n render :layout => "${1:layoutname}"\nsnippet rn\n render :nothing => ${1:true}\nsnippet rns\n render :nothing => ${1:true}, :status => ${2:401}\nsnippet rp\n render :partial => "${1:item}"\nsnippet rpc\n render :partial => "${1:item}", :collection => ${2:@$1s}\nsnippet rpl\n render :partial => "${1:item}", :locals => { :${2:$1} => ${3:@$1}\nsnippet rpo\n render :partial => "${1:item}", :object => ${2:@$1}\nsnippet rps\n render :partial => "${1:item}", :status => ${2:500}\nsnippet rt\n render :text => "${1:text to render}"\nsnippet rtl\n render :text => "${1:text to render}", :layout => "${2:layoutname}"\nsnippet rtlt\n render :text => "${1:text to render}", :layout => ${2:true}\nsnippet rts\n render :text => "${1:text to render}", :status => ${2:401}\nsnippet ru\n render :update do |${1:page}|\n $1.${2}\n end\nsnippet rxml\n render :xml => ${1:text to render}\nsnippet sc\n scope :${1:name}, :where(:@${2:field} => ${3:value})\nsnippet sl\n scope :${1:name}, lambda do |${2:value}|\n where("${3:field = ?}", ${4:bind var})\n end\nsnippet sha1\n Digest::SHA1.hexdigest(${1:string})\nsnippet 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\nsnippet tcb\n t.boolean :${1:title}\n ${2}\nsnippet tcbi\n t.binary :${1:title}, :limit => ${2:2}.megabytes\n ${3}\nsnippet tcd\n t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n ${4}\nsnippet tcda\n t.date :${1:title}\n ${2}\nsnippet tcdt\n t.datetime :${1:title}\n ${2}\nsnippet tcf\n t.float :${1:title}\n ${2}\nsnippet tch\n t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n ${5}\nsnippet tci\n t.integer :${1:title}\n ${2}\nsnippet tcl\n t.integer :lock_version, :null => false, :default => 0\n ${1}\nsnippet tcr\n t.references :${1:taggable}, :polymorphic => { :default => \'${2:Photo}\' }\n ${3}\nsnippet tcs\n t.string :${1:title}\n ${2}\nsnippet tct\n t.text :${1:title}\n ${2}\nsnippet tcti\n t.time :${1:title}\n ${2}\nsnippet tcts\n t.timestamp :${1:title}\n ${2}\nsnippet tctss\n t.timestamps\n ${1}\nsnippet va\n validates_associated :${1:attribute}\nsnippet vao\n validates_acceptance_of :${1:terms}\nsnippet vc\n validates_confirmation_of :${1:attribute}\nsnippet ve\n validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\nsnippet vf\n validates_format_of :${1:attribute}, :with => /${2:regex}/\nsnippet vi\n validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\nsnippet vl\n validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\nsnippet vn\n validates_numericality_of :${1:attribute}\nsnippet vpo\n validates_presence_of :${1:attribute}\nsnippet vu\n validates_uniqueness_of :${1:attribute}\nsnippet wants\n wants.${1:js|xml|html} { ${2} }\nsnippet wc\n where(${1:"conditions"}${2:, bind_var})\nsnippet wh\n where(${1:field} => ${2:value})\nsnippet xdelete\n xhr :delete, :${1:destroy}, :id => ${2:1}${3}\nsnippet xget\n xhr :get, :${1:show}, :id => ${2:1}${3}\nsnippet xpost\n xhr :post, :${1:create}, :${2:object} => { ${3} }\nsnippet xput\n xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\nsnippet test\n test "should ${1:do something}" do\n ${2}\n end\n#migrations\nsnippet mac\n add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\nsnippet mrc\n remove_column :${1:table_name}, :${2:column_name}\nsnippet mrnc\n rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\nsnippet mcc\n change_column :${1:table}, :${2:column}, :${3:type}\nsnippet mccc\n t.column :${1:title}, :${2:string}\nsnippet mct\n create_table :${1:table_name} do |t|\n t.column :${2:name}, :${3:type}\n end\nsnippet 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\nsnippet trc\n t.remove :${1:column}\nsnippet tre\n t.rename :${1:old_column_name}, :${2:new_column_name}\n ${3}\nsnippet tref\n t.references :${1:model}\n\n#rspec\nsnippet it\n it "${1:spec_name}" do\n ${2}\n end\nsnippet itp\n it "${1:spec_name}"\n ${2}\nsnippet desc\n describe ${1:class_name} do\n ${2}\n end\nsnippet cont\n context "${1:message}" do\n ${2}\n end\nsnippet bef\n before :${1:each} do\n ${2}\n end\nsnippet aft\n after :${1:each} do\n ${2}\n end\n',t.scope="ruby"}) \ No newline at end of file
diff --git a/library/ace/snippets/rust.js b/library/ace/snippets/rust.js
new file mode 100644
index 000000000..d30d87eb8
--- /dev/null
+++ b/library/ace/snippets/rust.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/rust",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rust"}) \ No newline at end of file
diff --git a/library/ace/snippets/sass.js b/library/ace/snippets/sass.js
new file mode 100644
index 000000000..ccfde2c94
--- /dev/null
+++ b/library/ace/snippets/sass.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sass",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sass"}) \ No newline at end of file
diff --git a/library/ace/snippets/scad.js b/library/ace/snippets/scad.js
new file mode 100644
index 000000000..9a4fcb005
--- /dev/null
+++ b/library/ace/snippets/scad.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scad",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scad"}) \ No newline at end of file
diff --git a/library/ace/snippets/scala.js b/library/ace/snippets/scala.js
new file mode 100644
index 000000000..dbbc7f481
--- /dev/null
+++ b/library/ace/snippets/scala.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scala",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scala"}) \ No newline at end of file
diff --git a/library/ace/snippets/scheme.js b/library/ace/snippets/scheme.js
new file mode 100644
index 000000000..d8770f2d4
--- /dev/null
+++ b/library/ace/snippets/scheme.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scheme",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scheme"}) \ No newline at end of file
diff --git a/library/ace/snippets/scss.js b/library/ace/snippets/scss.js
new file mode 100644
index 000000000..0526c69cc
--- /dev/null
+++ b/library/ace/snippets/scss.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/scss",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scss"}) \ No newline at end of file
diff --git a/library/ace/snippets/sh.js b/library/ace/snippets/sh.js
new file mode 100644
index 000000000..387107685
--- /dev/null
+++ b/library/ace/snippets/sh.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sh",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\nsnippet #!\n #!/usr/bin/env bash\n \nsnippet if\n if [[ ${1:condition} ]]; then\n ${2:#statements}\n fi\nsnippet elif\n elif [[ ${1:condition} ]]; then\n ${2:#statements}\nsnippet for\n for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n ${3:#statements}\n done\nsnippet fori\n for ${1:needle} in ${2:haystack} ; do\n ${3:#statements}\n done\nsnippet wh\n while [[ ${1:condition} ]]; do\n ${2:#statements}\n done\nsnippet until\n until [[ ${1:condition} ]]; do\n ${2:#statements}\n done\nsnippet case\n case ${1:word} in\n ${2:pattern})\n ${3};;\n esac\nsnippet 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.\nsnippet sdir\n SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"\n# getopt\nsnippet 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',t.scope="sh"}) \ No newline at end of file
diff --git a/library/ace/snippets/sjs.js b/library/ace/snippets/sjs.js
new file mode 100644
index 000000000..8023e0dbf
--- /dev/null
+++ b/library/ace/snippets/sjs.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sjs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sjs"}) \ No newline at end of file
diff --git a/library/ace/snippets/smarty.js b/library/ace/snippets/smarty.js
new file mode 100644
index 000000000..5dc13d731
--- /dev/null
+++ b/library/ace/snippets/smarty.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/smarty",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="smarty"}) \ No newline at end of file
diff --git a/library/ace/snippets/snippets.js b/library/ace/snippets/snippets.js
new file mode 100644
index 000000000..8f2d037da
--- /dev/null
+++ b/library/ace/snippets/snippets.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/snippets",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# snippets for making snippets :)\nsnippet snip\n snippet ${1:trigger}\n ${2}\nsnippet msnip\n snippet ${1:trigger} ${2:description}\n ${3}\nsnippet v\n {VISUAL}\n",t.scope="snippets"}) \ No newline at end of file
diff --git a/library/ace/snippets/soy_template.js b/library/ace/snippets/soy_template.js
new file mode 100644
index 000000000..710cee62d
--- /dev/null
+++ b/library/ace/snippets/soy_template.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/soy_template",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="soy_template"}) \ No newline at end of file
diff --git a/library/ace/snippets/space.js b/library/ace/snippets/space.js
new file mode 100644
index 000000000..8bc916be4
--- /dev/null
+++ b/library/ace/snippets/space.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/space",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="space"}) \ No newline at end of file
diff --git a/library/ace/snippets/sql.js b/library/ace/snippets/sql.js
new file mode 100644
index 000000000..1bacce06d
--- /dev/null
+++ b/library/ace/snippets/sql.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet tbl\n create table ${1:table} (\n ${2:columns}\n );\nsnippet col\n ${1:name} ${2:type} ${3:default ''} ${4:not null}\nsnippet ccol\n ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\nsnippet ncol\n ${1:name} number ${3:default 0} ${4:not null}\nsnippet dcol\n ${1:name} date ${3:default sysdate} ${4:not null}\nsnippet ind\n create index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n create unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n comment on table ${1:table} is '${2:comment}';\nsnippet colcom\n comment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n alter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n select * from ${1:table}\n",t.scope="sql"}) \ No newline at end of file
diff --git a/library/ace/snippets/sqlserver.js b/library/ace/snippets/sqlserver.js
new file mode 100644
index 000000000..57eb98625
--- /dev/null
+++ b/library/ace/snippets/sqlserver.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/sqlserver",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# ISNULL\nsnippet isnull\n ISNULL(${1:check_expression}, ${2:replacement_value})\n# FORMAT\nsnippet format\n FORMAT(${1:value}, ${2:format})\n# CAST\nsnippet cast\n CAST(${1:expression} AS ${2:data_type})\n# CONVERT\nsnippet convert\n CONVERT(${1:data_type}, ${2:expression})\n# DATEPART\nsnippet datepart\n DATEPART(${1:datepart}, ${2:date})\n# DATEDIFF\nsnippet datediff\n DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n# DATEADD\nsnippet dateadd\n DATEADD(${1:datepart}, ${2:number}, ${3:date})\n# DATEFROMPARTS \nsnippet datefromparts\n DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n# OBJECT_DEFINITION\nsnippet objectdef\n SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n# STUFF XML\nsnippet 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\nsnippet 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\nsnippet 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",t.scope="sqlserver"}) \ No newline at end of file
diff --git a/library/ace/snippets/stylus.js b/library/ace/snippets/stylus.js
new file mode 100644
index 000000000..1da9d776a
--- /dev/null
+++ b/library/ace/snippets/stylus.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/stylus",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="stylus"}) \ No newline at end of file
diff --git a/library/ace/snippets/svg.js b/library/ace/snippets/svg.js
new file mode 100644
index 000000000..26d9b1a48
--- /dev/null
+++ b/library/ace/snippets/svg.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/svg",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="svg"}) \ No newline at end of file
diff --git a/library/ace/snippets/swift.js b/library/ace/snippets/swift.js
new file mode 100644
index 000000000..307d39f7c
--- /dev/null
+++ b/library/ace/snippets/swift.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/swift",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="swift"}) \ No newline at end of file
diff --git a/library/ace/snippets/swig.js b/library/ace/snippets/swig.js
new file mode 100644
index 000000000..59d56facf
--- /dev/null
+++ b/library/ace/snippets/swig.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/swig",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="swig"}) \ No newline at end of file
diff --git a/library/ace/snippets/tcl.js b/library/ace/snippets/tcl.js
new file mode 100644
index 000000000..69ccc2594
--- /dev/null
+++ b/library/ace/snippets/tcl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/tcl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# #!/usr/bin/env tclsh\nsnippet #!\n #!/usr/bin/env tclsh\n \n# Process\nsnippet pro\n proc ${1:function_name} {${2:args}} {\n ${3:#body ...}\n }\n#xif\nsnippet xif\n ${1:expr}? ${2:true} : ${3:false}\n# Conditional\nsnippet if\n if {${1}} {\n ${2:# body...}\n }\n# Conditional if..else\nsnippet ife\n if {${1}} {\n ${2:# body...}\n } else {\n ${3:# else...}\n }\n# Conditional if..elsif..else\nsnippet ifee\n if {${1}} {\n ${2:# body...}\n } elseif {${3}} {\n ${4:# elsif...}\n } else {\n ${5:# else...}\n }\n# If catch then\nsnippet ifc\n if { [catch {${1:#do something...}} ${2:err}] } {\n ${3:# handle failure...}\n }\n# Catch\nsnippet catch\n catch {${1}} ${2:err} ${3:options}\n# While Loop\nsnippet wh\n while {${1}} {\n ${2:# body...}\n }\n# For Loop\nsnippet for\n for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n ${4:# body...}\n }\n# Foreach Loop\nsnippet fore\n foreach ${1:x} {${2:#list}} {\n ${3:# body...}\n }\n# after ms script...\nsnippet af\n after ${1:ms} ${2:#do something}\n# after cancel id\nsnippet afc\n after cancel ${1:id or script}\n# after idle\nsnippet afi\n after idle ${1:script}\n# after info id\nsnippet afin\n after info ${1:id}\n# Expr\nsnippet exp\n expr {${1:#expression here}}\n# Switch\nsnippet sw\n switch ${1:var} {\n ${3:pattern 1} {\n ${4:#do something}\n }\n default {\n ${2:#do something}\n }\n }\n# Case\nsnippet ca\n ${1:pattern} {\n ${2:#do something}\n }${3}\n# Namespace eval\nsnippet ns\n namespace eval ${1:path} {${2:#script...}}\n# Namespace current\nsnippet nsc\n namespace current\n",t.scope="tcl"}) \ No newline at end of file
diff --git a/library/ace/snippets/tex.js b/library/ace/snippets/tex.js
new file mode 100644
index 000000000..99d058ea7
--- /dev/null
+++ b/library/ace/snippets/tex.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/tex",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="#PREAMBLE\n#newcommand\nsnippet nc\n \\newcommand{\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\n#usepackage\nsnippet up\n \\usepackage[${1:[options}]{${2:package}}\n#newunicodechar\nsnippet nuc\n \\newunicodechar{${1}}{${2:\\ensuremath}${3:tex-substitute}}}\n#DeclareMathOperator\nsnippet dmo\n \\DeclareMathOperator{${1}}{${2}}\n\n#DOCUMENT\n# \\begin{}...\\end{}\nsnippet begin\n \\begin{${1:env}}\n ${2}\n \\end{$1}\n# Tabular\nsnippet tab\n \\begin{${1:tabular}}{${2:c}}\n ${3}\n \\end{$1}\nsnippet thm\n \\begin[${1:author}]{${2:thm}}\n ${3}\n \\end{$1}\nsnippet center\n \\begin{center}\n ${1}\n \\end{center}\n# Align(ed)\nsnippet ali\n \\begin{align${1:ed}}\n ${2}\n \\end{align$1}\n# Gather(ed)\nsnippet gat\n \\begin{gather${1:ed}}\n ${2}\n \\end{gather$1}\n# Equation\nsnippet eq\n \\begin{equation}\n ${1}\n \\end{equation}\n# Equation\nsnippet eq*\n \\begin{equation*}\n ${1}\n \\end{equation*}\n# Unnumbered Equation\nsnippet \\\n \\[\n ${1}\n \\]\n# Enumerate\nsnippet enum\n \\begin{enumerate}\n \\item ${1}\n \\end{enumerate}\n# Itemize\nsnippet itemize\n \\begin{itemize}\n \\item ${1}\n \\end{itemize}\n# Description\nsnippet desc\n \\begin{description}\n \\item[${1}] ${2}\n \\end{description}\n# Matrix\nsnippet mat\n \\begin{${1:p/b/v/V/B/small}matrix}\n ${2}\n \\end{$1matrix}\n# Cases\nsnippet cas\n \\begin{cases}\n ${1:equation}, &\\text{ if }${2:case}\\\\\n ${3}\n \\end{cases}\n# Split\nsnippet spl\n \\begin{split}\n ${1}\n \\end{split}\n# Part\nsnippet part\n \\part{${1:part name}} % (fold)\n \\label{prt:${2:$1}}\n ${3}\n % part $2 (end)\n# Chapter\nsnippet cha\n \\chapter{${1:chapter name}}\n \\label{cha:${2:$1}}\n ${3}\n# Section\nsnippet sec\n \\section{${1:section name}}\n \\label{sec:${2:$1}}\n ${3}\n# Sub Section\nsnippet sub\n \\subsection{${1:subsection name}}\n \\label{sub:${2:$1}}\n ${3}\n# Sub Sub Section\nsnippet subs\n \\subsubsection{${1:subsubsection name}}\n \\label{ssub:${2:$1}}\n ${3}\n# Paragraph\nsnippet par\n \\paragraph{${1:paragraph name}}\n \\label{par:${2:$1}}\n ${3}\n# Sub Paragraph\nsnippet subp\n \\subparagraph{${1:subparagraph name}}\n \\label{subp:${2:$1}}\n ${3}\n#References\nsnippet itd\n \\item[${1:description}] ${2:item}\nsnippet figure\n ${1:Figure}~\\ref{${2:fig:}}${3}\nsnippet table\n ${1:Table}~\\ref{${2:tab:}}${3}\nsnippet listing\n ${1:Listing}~\\ref{${2:list}}${3}\nsnippet section\n ${1:Section}~\\ref{${2:sec:}}${3}\nsnippet page\n ${1:page}~\\pageref{${2}}${3}\nsnippet index\n \\index{${1:index}}${2}\n#Citations\nsnippet cite\n \\cite[${1}]{${2}}${3}\nsnippet fcite\n \\footcite[${1}]{${2}}${3}\n#Formating text: italic, bold, underline, small capital, emphase ..\nsnippet it\n \\textit{${1:text}}\nsnippet bf\n \\textbf{${1:text}}\nsnippet under\n \\underline{${1:text}}\nsnippet emp\n \\emph{${1:text}}\nsnippet sc\n \\textsc{${1:text}}\n#Choosing font\nsnippet sf\n \\textsf{${1:text}}\nsnippet rm\n \\textrm{${1:text}}\nsnippet tt\n \\texttt{${1:text}}\n#misc\nsnippet ft\n \\footnote{${1:text}}\nsnippet 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}\nsnippet 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\nsnippet stackrel\n \\stackrel{${1:above}}{${2:below}} ${3}\nsnippet frac\n \\frac{${1:num}}{${2:denom}}\nsnippet sum\n \\sum^{${1:n}}_{${2:i=1}}{${3}}",t.scope="tex"}) \ No newline at end of file
diff --git a/library/ace/snippets/text.js b/library/ace/snippets/text.js
new file mode 100644
index 000000000..233803dae
--- /dev/null
+++ b/library/ace/snippets/text.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="text"}) \ No newline at end of file
diff --git a/library/ace/snippets/textile.js b/library/ace/snippets/textile.js
new file mode 100644
index 000000000..cf4d5d566
--- /dev/null
+++ b/library/ace/snippets/textile.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/textile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Jekyll post header\nsnippet header\n ---\n title: ${1:title}\n layout: post\n date: ${2:date} ${3:hour:minute:second} -05:00\n ---\n\n# Image\nsnippet img\n !${1:url}(${2:title}):${3:link}!\n\n# Table\nsnippet |\n |${1}|${2}\n\n# Link\nsnippet link\n "${1:link text}":${2:url}\n\n# Acronym\nsnippet (\n (${1:Expand acronym})${2}\n\n# Footnote\nsnippet fn\n [${1:ref number}] ${3}\n\n fn$1. ${2:footnote}\n \n',t.scope="textile"}) \ No newline at end of file
diff --git a/library/ace/snippets/toml.js b/library/ace/snippets/toml.js
new file mode 100644
index 000000000..8c3dbefdf
--- /dev/null
+++ b/library/ace/snippets/toml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/toml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="toml"}) \ No newline at end of file
diff --git a/library/ace/snippets/twig.js b/library/ace/snippets/twig.js
new file mode 100644
index 000000000..9c2104682
--- /dev/null
+++ b/library/ace/snippets/twig.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/twig",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="twig"}) \ No newline at end of file
diff --git a/library/ace/snippets/typescript.js b/library/ace/snippets/typescript.js
new file mode 100644
index 000000000..5e6425ecb
--- /dev/null
+++ b/library/ace/snippets/typescript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/typescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="typescript"}) \ No newline at end of file
diff --git a/library/ace/snippets/vala.js b/library/ace/snippets/vala.js
new file mode 100644
index 000000000..89927bcfb
--- /dev/null
+++ b/library/ace/snippets/vala.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vala",["require","exports","module"],function(e,t,n){"use strict";t.snippets=[{content:"case ${1:condition}:\n $0\n break;\n",name:"case",scope:"vala",tabTrigger:"case"},{content:"/**\n * ${6}\n */\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\n\n /**\n * ${7}\n */\n public ${2}(${4}) {\n ${5}\n }\n\n $0\n}",name:"class",scope:"vala",tabTrigger:"class"},{content:"(${1}) => {\n ${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 $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 $0\n}\n",name:"else if (elseif)",scope:"vala",tabTrigger:"elseif"},{content:"else {\n $0\n}",name:"else",scope:"vala",tabTrigger:"else"},{content:"enum {$1:EnumName} {\n $0\n}",name:"enum",scope:"vala",tabTrigger:"enum"},{content:"public errordomain ${1:Error} {\n $0\n}",name:"error domain",scope:"vala",tabTrigger:"errordomain"},{content:"for ($1;$2;$3) {\n $0\n}",name:"for",scope:"vala",tabTrigger:"for"},{content:"foreach ($1 in $2) {\n $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 $0\n}",name:"if",scope:"vala",tabTrigger:"if"},{content:"interface ${1:InterfaceName}{$2: : SuperInterface} {\n $0\n}",name:"interface",scope:"vala",tabTrigger:"interface"},{content:"public static int main(string [] argv) {\n ${0}\n return 0;\n}",name:"Main function",scope:"vala",tabTrigger:"main"},{content:"namespace $1 {\n $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 set {\n $0\n }\n get {\n\n }\n}",name:"property (prop)",scope:"vala",tabTrigger:"prop"},{content:"${1:public} ${2:Type} ${3:Name} {\n get {\n $0\n }\n}",name:"read-only property (roprop)",scope:"vala",tabTrigger:"roprop"},{content:'@"${1:\\$var}"',name:"String template (@)",scope:"vala",tabTrigger:"@"},{content:"struct ${1:StructName} {\n $0\n}",name:"struct",scope:"vala",tabTrigger:"struct"},{content:"switch ($1) {\n $0\n}",name:"switch",scope:"vala",tabTrigger:"switch"},{content:"try {\n $2\n} catch (${1:Error} e) {\n $0\n}",name:"try/catch",scope:"vala",tabTrigger:"try"},{content:'"""$0""";',name:'Verbatim string (""")',scope:"vala",tabTrigger:"verbatim"},{content:"while ($1) {\n $0\n}",name:"while",scope:"vala",tabTrigger:"while"}],t.scope=""}) \ No newline at end of file
diff --git a/library/ace/snippets/vbscript.js b/library/ace/snippets/vbscript.js
new file mode 100644
index 000000000..1cf30b942
--- /dev/null
+++ b/library/ace/snippets/vbscript.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vbscript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vbscript"}) \ No newline at end of file
diff --git a/library/ace/snippets/velocity.js b/library/ace/snippets/velocity.js
new file mode 100644
index 000000000..9ab7789cb
--- /dev/null
+++ b/library/ace/snippets/velocity.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/velocity",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# macro\nsnippet #macro\n #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n ${3:## macro code}\n #end\n# foreach\nsnippet #foreach\n #foreach ( ${1:\\$item} in ${2:\\$collection} )\n ${3:## foreach code}\n #end\n# if\nsnippet #if\n #if ( ${1:true} )\n ${0}\n #end\n# if ... else\nsnippet #ife\n #if ( ${1:true} )\n ${2}\n #else\n ${0}\n #end\n#import\nsnippet #import\n #import ( "${1:path/to/velocity/format}" )\n# set\nsnippet #set\n #set ( $${1:var} = ${0} )\n',t.scope="velocity",t.includeScopes=["html","javascript","css"]}) \ No newline at end of file
diff --git a/library/ace/snippets/verilog.js b/library/ace/snippets/verilog.js
new file mode 100644
index 000000000..2c6f906cf
--- /dev/null
+++ b/library/ace/snippets/verilog.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/verilog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="verilog"}) \ No newline at end of file
diff --git a/library/ace/snippets/vhdl.js b/library/ace/snippets/vhdl.js
new file mode 100644
index 000000000..c8d6fb904
--- /dev/null
+++ b/library/ace/snippets/vhdl.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/vhdl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vhdl"}) \ No newline at end of file
diff --git a/library/ace/snippets/wollok.js b/library/ace/snippets/wollok.js
new file mode 100644
index 000000000..521fc7865
--- /dev/null
+++ b/library/ace/snippets/wollok.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/wollok",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='##\n## Basic Java packages and import\nsnippet im\n import\nsnippet w.l\n wollok.lang\nsnippet w.i\n wollok.lib\n\n## Class and object\nsnippet cl\n class ${1:`Filename("", "untitled")`} ${2}\nsnippet obj\n object ${1:`Filename("", "untitled")`} ${2:inherits Parent}${3}\nsnippet te\n test ${1:`Filename("", "untitled")`}\n\n##\n## Enhancements\nsnippet inh\n inherits\n\n##\n## Comments\nsnippet /*\n /*\n * ${1}\n */\n\n##\n## Control Statements\nsnippet el\n else\nsnippet if\n if (${1}) ${2}\n\n##\n## Create a Method\nsnippet m\n method ${1:method}(${2}) ${5}\n\n## \n## Tests\nsnippet as\n assert.equals(${1:expected}, ${2:actual})\n\n##\n## Exceptions\nsnippet ca\n catch ${1:e} : (${2:Exception} ) ${3}\nsnippet thr\n throw\nsnippet try\n try {\n ${3}\n } catch ${1:e} : ${2:Exception} {\n }\n\n##\n## Javadocs\nsnippet /**\n /**\n * ${1}\n */\n\n##\n## Print Methods\nsnippet print\n console.println("${1:Message}")\n\n##\n## Setter and Getter Methods\nsnippet set\n method set${1:}(${2:}) {\n $1 = $2\n }\nsnippet get\n method get${1:}() {\n return ${1:};\n }\n\n##\n## Terminate Methods or Loops\nsnippet re\n return',t.scope="wollok"}) \ No newline at end of file
diff --git a/library/ace/snippets/xml.js b/library/ace/snippets/xml.js
new file mode 100644
index 000000000..e1c1b3941
--- /dev/null
+++ b/library/ace/snippets/xml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/xml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="xml"}) \ No newline at end of file
diff --git a/library/ace/snippets/xquery.js b/library/ace/snippets/xquery.js
new file mode 100644
index 000000000..ea0f7edec
--- /dev/null
+++ b/library/ace/snippets/xquery.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/xquery",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n for $${1:item} in ${2:expr}\nsnippet return\n return ${1:expr}\nsnippet import\n import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n switch(${1:"foo"})\n case ${2:"foo"}\n return ${3:true}\n default return ${4:false}\nsnippet try\n try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet 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}\nsnippet 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}\nsnippet let\n let $${1:varname} := ${2:expr}\nsnippet group\n group by $${1:varname} := ${2:expr}\nsnippet order\n order by ${1:expr} ${2:descending}\nsnippet stable\n stable order by ${1:expr}\nsnippet count\n count $${1:varname}\nsnippet ordered\n ordered { ${1:expr} }\nsnippet unordered\n unordered { ${1:expr} }\nsnippet treat \n treat as ${1:expr}\nsnippet castable\n castable as ${1:atomicType}\nsnippet cast\n cast as ${1:atomicType}\nsnippet typeswitch\n typeswitch(${1:expr})\n case ${2:type} return ${3:expr}\n default return ${4:expr}\nsnippet var\n declare variable $${1:varname} := ${2:expr};\nsnippet fn\n declare function ${1:ns}:${2:name}(){\n ${3:expr}\n };\nsnippet module\n module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="xquery"}) \ No newline at end of file
diff --git a/library/ace/snippets/yaml.js b/library/ace/snippets/yaml.js
new file mode 100644
index 000000000..80b5d3b36
--- /dev/null
+++ b/library/ace/snippets/yaml.js
@@ -0,0 +1 @@
+ace.define("ace/snippets/yaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="yaml"}) \ No newline at end of file