Add Prism Syntax highlighter
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 26 Sep 2018 21:55:01 +0000 (23:55 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Thu, 29 Nov 2018 14:41:54 +0000 (15:41 +0100)
see #2752

158 files changed:
wcfsetup/install/files/js/3rdParty/prism/LICENSE [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/README.md [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/build.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components.json [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-abap.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-actionscript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-ada.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-apacheconf.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-apl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-applescript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-arduino.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-arff.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-asciidoc.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-asm6502.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-aspnet.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-autohotkey.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-autoit.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-bash.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-basic.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-batch.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-bison.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-brainfuck.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-bro.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-c.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-clike.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-clojure.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-coffeescript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-cpp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-crystal.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-csharp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-csp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-css-extras.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-css.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-d.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-dart.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-diff.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-django.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-docker.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-eiffel.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-elixir.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-elm.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-erb.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-erlang.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-flow.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-fortran.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-fsharp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-gedcom.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-gherkin.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-git.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-glsl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-gml.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-go.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-graphql.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-groovy.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-haml.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-handlebars.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-haskell.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-haxe.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-hpkp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-hsts.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-http.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-ichigojam.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-icon.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-inform7.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-ini.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-io.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-j.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-java.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-javascript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-jolie.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-json.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-jsx.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-julia.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-keyman.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-kotlin.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-latex.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-less.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-liquid.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-lisp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-livescript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-lolcode.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-lua.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-makefile.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-markdown.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-markup-templating.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-markup.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-matlab.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-mel.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-mizar.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-monkey.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-n4js.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-nasm.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-nginx.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-nim.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-nix.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-nsis.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-objectivec.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-ocaml.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-opencl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-oz.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-parigp.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-parser.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-pascal.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-perl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-php-extras.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-php.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-plsql.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-powershell.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-processing.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-prolog.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-properties.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-protobuf.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-pug.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-puppet.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-pure.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-python.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-q.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-qore.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-r.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-reason.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-renpy.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-rest.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-rip.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-roboconf.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-ruby.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-rust.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-sas.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-sass.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-scala.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-scheme.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-scss.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-smalltalk.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-smarty.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-soy.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-sql.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-stylus.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-swift.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-tap.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-tcl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-textile.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-tsx.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-tt2.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-twig.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-typescript.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-vbnet.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-velocity.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-verilog.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-vhdl.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-vim.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-visual-basic.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-wasm.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-wiki.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-xeora.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-xojo.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-xquery.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/components/prism-yaml.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/prism-meta.js [new file with mode: 0644]
wcfsetup/install/files/js/3rdParty/prism/prism.js [new file with mode: 0644]

diff --git a/wcfsetup/install/files/js/3rdParty/prism/LICENSE b/wcfsetup/install/files/js/3rdParty/prism/LICENSE
new file mode 100644 (file)
index 0000000..528949f
--- /dev/null
@@ -0,0 +1,21 @@
+MIT LICENSE
+
+Copyright (c) 2012 Lea Verou
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/wcfsetup/install/files/js/3rdParty/prism/README.md b/wcfsetup/install/files/js/3rdParty/prism/README.md
new file mode 100644 (file)
index 0000000..30ff9fa
--- /dev/null
@@ -0,0 +1,28 @@
+# [Prism](http://prismjs.com/)
+
+[![Build Status](https://travis-ci.org/PrismJS/prism.svg?branch=master)](https://travis-ci.org/PrismJS/prism)
+
+Prism is a lightweight, robust, elegant syntax highlighting library. It's a spin-off project from [Dabblet](http://dabblet.com/).
+
+You can learn more on http://prismjs.com/.
+
+Why another syntax highlighter?: http://lea.verou.me/2012/07/introducing-prism-an-awesome-new-syntax-highlighter/#more-1841
+
+## Contribute to Prism!
+
+Prism depends on community contributions to expand and cover a wider array of use cases. If you like it, considering giving back by sending a pull request. Here are a few tips:
+
+- Read the [documentation](http://prismjs.com/extending.html). Prism was designed to be extensible.
+- Do not edit `prism.js`, it’s just the version of Prism used by the Prism website and is built automatically. Limit your changes to the unminified files in the components/ folder. The minified files are also generated automatically.
+- The build system uses [gulp](https://github.com/gulpjs/gulp) to minify the files and build `prism.js`. Having gulp installed, you just need to run the command `gulp`.
+- Please follow the code conventions used in the files already. For example, I use [tabs for indentation and spaces for alignment](http://lea.verou.me/2012/01/why-tabs-are-clearly-superior/). Opening braces are on the same line, closing braces on their own line regardless of construct. There is a space before the opening brace. etc etc.
+- Please try to err towards more smaller PRs rather than few huge PRs. If a PR includes changes I want to merge and changes I don't, handling it becomes difficult.
+- My time is very limited these days, so it might take a long time to review longer PRs (short ones are usually merged very quickly), especially those modifying the Prism Core. This doesn't mean your PR is rejected.
+- If you contribute a new language definition, you will be responsible for handling bug reports about that language definition.
+- If you add a new language definition, theme or plugin, you need to add it to `components.js` as well, so that it becomes available to the download build page.
+
+Thank you so much for contributing!!
+
+## Translations
+
+* [![中文说明](http://awesomes.oss-cn-beijing.aliyuncs.com/readme.png)](http://www.awesomes.cn/repo/PrismJS/prism)
diff --git a/wcfsetup/install/files/js/3rdParty/prism/build.js b/wcfsetup/install/files/js/3rdParty/prism/build.js
new file mode 100644 (file)
index 0000000..df68734
--- /dev/null
@@ -0,0 +1,52 @@
+const fs = require('fs');
+const path = require('path');
+
+const meta = JSON.parse(fs.readFileSync('./components.json'));
+
+fs.readdirSync('components').forEach(function (component) {
+       component = path.basename(component, '.js').replace(/^prism-/, '');
+       const filename = `components/prism-${component}.js`;
+       const contents = fs.readFileSync(filename, { encoding: 'utf8' });
+       if (/^define/.test(contents)) {
+               console.log(`Skipping ${component}`);
+               return;
+       }
+       let requirements = meta.languages[component].require || [];
+       if (typeof requirements === 'string') requirements = [ requirements ];
+       let peerDependencies = meta.languages[component].peerDependencies || [];
+       if (typeof peerDependencies === 'string') peerDependencies = [ peerDependencies ];
+       requirements = requirements.concat(peerDependencies).map(item => `prism/components/prism-${item}`)
+
+       const header = `define(${JSON.stringify(['prism/prism'].concat(requirements))}, function () {\n`;
+       const footer = `\nreturn Prism; })`;
+       fs.writeFileSync(filename, `${header}${contents}${footer}`, 'utf8');
+});
+
+{
+const header = `define([],function(){return /*START*/`;
+const footer = `/*END*/;});`;
+const contents = Object.entries(meta.languages).reduce(function(acc, [key, value]) {
+       if (key === 'meta') return acc;
+       
+       acc[key] = {
+               title: value.title,
+               file: key,
+       };
+       if (typeof value.alias === 'string') {
+               acc[value.alias] = {
+                       title: value.title,
+                       file: key,
+               };
+       }
+       if (value.alias && value.alias.forEach != null) {
+               value.alias.forEach(function (alias) {
+                       acc[alias] = {
+                               title: (value.aliasTitles && value.aliasTitles[alias]) || value.title,
+                               file: key,
+                       };
+               });
+       }
+       return acc;
+}, {});
+fs.writeFileSync('./prism-meta.js', `${header}${JSON.stringify(contents)}${footer}`, 'utf8');
+}
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components.json b/wcfsetup/install/files/js/3rdParty/prism/components.json
new file mode 100644 (file)
index 0000000..bb6d07d
--- /dev/null
@@ -0,0 +1,887 @@
+{
+       "core": {
+               "meta": {
+                       "path": "components/prism-core.js",
+                       "option": "mandatory"
+               },
+               "core": "Core"
+       },
+       "themes": {
+               "meta": {
+                       "path": "themes/{id}.css",
+                       "link": "index.html?theme={id}",
+                       "exclusive": true
+               },
+               "prism": {
+                       "title": "Default",
+                       "option": "default"
+               },
+               "prism-dark": "Dark",
+               "prism-funky": "Funky",
+               "prism-okaidia": {
+                       "title": "Okaidia",
+                       "owner": "ocodia"
+               },
+               "prism-twilight": {
+                       "title": "Twilight",
+                       "owner": "remybach"
+               },
+               "prism-coy": {
+                       "title": "Coy",
+                       "owner": "tshedor"
+               },
+               "prism-solarizedlight": {
+                       "title": "Solarized Light",
+                       "owner": "hectormatos2011 "
+               },
+               "prism-tomorrow": {
+                       "title": "Tomorrow Night",
+                       "owner": "Rosey"
+               }
+       },
+       "languages": {
+               "meta": {
+                       "path": "components/prism-{id}",
+                       "noCSS": true,
+                       "examplesPath": "examples/prism-{id}",
+                       "addCheckAll": true
+               },
+               "markup": {
+                       "title": "Markup",
+                       "alias": ["html", "xml", "svg", "mathml"],
+                       "aliasTitles": {
+                               "html": "HTML",
+                               "xml": "XML",
+                               "svg": "SVG",
+                               "mathml": "MathML"
+                       },
+                       "option": "default"
+               },
+               "css": {
+                       "title": "CSS",
+                       "option": "default",
+                       "peerDependencies": "markup"
+               },
+               "clike": {
+                       "title": "C-like",
+                       "option": "default",
+                       "overrideExampleHeader": true
+               },
+               "javascript": {
+                       "title": "JavaScript",
+                       "require": "clike",
+                       "peerDependencies": "markup",
+                       "alias": "js",
+                       "option": "default"
+               },
+               "abap": {
+                       "title": "ABAP",
+                       "owner": "dellagustin"
+               },
+               "actionscript": {
+                       "title": "ActionScript",
+                       "require": "javascript",
+                       "peerDependencies": "markup",
+                       "owner": "Golmote"
+               },
+               "ada": {
+                       "title": "Ada",
+                       "owner": "Lucretia"
+               },
+               "apacheconf": {
+                       "title": "Apache Configuration",
+                       "owner": "GuiTeK"
+               },
+               "apl": {
+                       "title": "APL",
+                       "owner": "ngn"
+               },
+               "applescript": {
+                       "title": "AppleScript",
+                       "owner": "Golmote"
+               },
+               "arduino": {
+                       "title": "Arduino",
+                       "require": "cpp",
+                       "owner": "eisbehr-"
+               },
+               "arff": {
+                       "title": "ARFF",
+                       "owner": "Golmote"
+               },
+               "asciidoc": {
+                       "title": "AsciiDoc",
+                       "owner": "Golmote"
+               },
+               "asm6502": {
+                       "title": "6502 Assembly",
+                       "owner": "kzurawel"
+               },
+               "aspnet": {
+                       "title": "ASP.NET (C#)",
+                       "require": ["markup", "csharp"],
+                       "owner": "nauzilus"
+               },
+               "autohotkey": {
+                       "title": "AutoHotkey",
+                       "owner": "aviaryan"
+               },
+               "autoit": {
+                       "title": "AutoIt",
+                       "owner": "Golmote"
+               },
+               "bash": {
+                       "title": "Bash",
+                       "alias": "shell",
+                       "aliasTitles": {
+                               "shell": "Shell"
+                       },
+                       "owner": "zeitgeist87"
+               },
+               "basic": {
+                       "title": "BASIC",
+                       "owner": "Golmote"
+               },
+               "batch": {
+                       "title": "Batch",
+                       "alias": "shell",
+                       "owner": "Golmote"
+               },
+               "bison": {
+                       "title": "Bison",
+                       "require": "c",
+                       "owner": "Golmote"
+               },
+               "brainfuck": {
+                       "title": "Brainfuck",
+                       "owner": "Golmote"
+               },
+               "bro": {
+                       "title": "Bro",
+                       "owner": "wayward710"
+               },
+               "c": {
+                       "title": "C",
+                       "require": "clike",
+                       "owner": "zeitgeist87"
+               },
+               "csharp": {
+                       "title": "C#",
+                       "require": "clike",
+                       "alias": "dotnet",
+                       "owner": "mvalipour"
+               },
+               "cpp": {
+                       "title": "C++",
+                       "require": "c",
+                       "owner": "zeitgeist87"
+               },
+               "coffeescript": {
+                       "title": "CoffeeScript",
+                       "require": "javascript",
+                       "owner": "R-osey"
+               },
+               "clojure": {
+                       "title": "Clojure",
+                       "owner": "troglotit"
+               },
+               "crystal": {
+                       "title": "Crystal",
+                       "require": "ruby",
+                       "owner": "MakeNowJust"
+               },
+               "csp": {
+                       "title": "Content-Security-Policy",
+                       "owner": "ScottHelme"
+               },
+               "css-extras": {
+                       "title": "CSS Extras",
+                       "require": "css",
+                       "owner": "milesj"
+               },
+               "d": {
+                       "title": "D",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "dart": {
+                       "title": "Dart",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "diff": {
+                       "title": "Diff",
+                       "owner": "uranusjr"
+               },
+               "django": {
+                       "title": "Django/Jinja2",
+                       "require": "markup",
+                       "peerDependencies": [
+                               "css",
+                               "javascript"
+                       ],
+                       "alias": "jinja2",
+                       "owner": "romanvm"
+               },
+               "docker": {
+                       "title": "Docker",
+                       "alias": "dockerfile",
+                       "owner": "JustinBeckwith"
+               },
+               "eiffel": {
+                       "title": "Eiffel",
+                       "owner": "Conaclos"
+               },
+               "elixir": {
+                       "title": "Elixir",
+                       "owner": "Golmote"
+               },
+               "elm": {
+                       "title": "Elm",
+                       "owner": "zwilias"
+               },
+               "erb": {
+                       "title": "ERB",
+                       "require": ["ruby", "markup-templating"],
+                       "owner": "Golmote"
+               },
+               "erlang": {
+                       "title": "Erlang",
+                       "owner": "Golmote"
+               },
+               "fsharp": {
+                       "title": "F#",
+                       "require": "clike",
+                       "owner": "simonreynolds7"
+               },
+               "flow": {
+                       "title": "Flow",
+                       "require": "javascript",
+                       "owner": "Golmote"
+               },
+               "fortran": {
+                       "title": "Fortran",
+                       "owner": "Golmote"
+               },
+               "gedcom": {
+                       "title": "GEDCOM",
+                       "owner": "Golmote"
+               },
+               "gherkin": {
+                       "title": "Gherkin",
+                       "owner": "hason"
+               },
+               "git": {
+                       "title": "Git",
+                       "owner": "lgiraudel"
+               },
+               "glsl": {
+                       "title": "GLSL",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "gml": {
+                       "title": "GameMaker Language",
+                       "alias": "gamemakerlanguage",
+                       "require": "clike",
+                       "owner": "LiarOnce"
+               },
+               "go": {
+                       "title": "Go",
+                       "require": "clike",
+                       "owner": "arnehormann"
+               },
+               "graphql": {
+                       "title": "GraphQL",
+                       "owner": "Golmote"
+               },
+               "groovy": {
+                       "title": "Groovy",
+                       "require": "clike",
+                       "owner": "robfletcher"
+               },
+               "haml": {
+                       "title": "Haml",
+                       "require": "ruby",
+                       "peerDependencies": [
+                               "css",
+                               "coffeescript",
+                               "erb",
+                               "javascript",
+                               "less",
+                               "markdown",
+                               "ruby",
+                               "scss",
+                               "textile"
+                       ],
+                       "owner": "Golmote"
+               },
+               "handlebars": {
+                       "title": "Handlebars",
+                       "require": "markup-templating",
+                       "owner": "Golmote"
+               },
+               "haskell": {
+                       "title": "Haskell",
+                       "owner": "bholst"
+               },
+               "haxe": {
+                       "title": "Haxe",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "http": {
+                       "title": "HTTP",
+                       "peerDependencies": [
+                               "javascript",
+                               "markup"
+                       ],
+                       "owner": "danielgtaylor"
+               },
+               "hpkp": {
+                       "title": "HTTP Public-Key-Pins",
+                       "owner": "ScottHelme"
+               },
+               "hsts": {
+                       "title": "HTTP Strict-Transport-Security",
+                       "owner": "ScottHelme"
+               },
+               "ichigojam": {
+                       "title": "IchigoJam",
+                       "owner": "BlueCocoa"
+               },
+               "icon": {
+                       "title": "Icon",
+                       "owner": "Golmote"
+               },
+               "inform7": {
+                       "title": "Inform 7",
+                       "owner": "Golmote"
+               },
+               "ini": {
+                       "title": "Ini",
+                       "owner": "aviaryan"
+               },
+               "io": {
+                       "title": "Io",
+                       "owner": "AlesTsurko"
+               },
+               "j": {
+                       "title": "J",
+                       "owner": "Golmote"
+               },
+               "java": {
+                       "title": "Java",
+                       "require": "clike",
+                       "owner": "sherblot"
+               },
+               "jolie": {
+                       "title": "Jolie",
+                       "require": "clike",
+                       "owner": "thesave"
+               },
+               "json": {
+                       "title": "JSON",
+                       "alias": "jsonp",
+                       "aliasTitles": {
+                               "jsonp": "JSONP"
+                       },
+                       "owner": "CupOfTea696"
+               },
+               "julia": {
+                       "title": "Julia",
+                       "owner": "cdagnino"
+               },
+               "keyman": {
+                       "title": "Keyman",
+                       "owner": "mcdurdin"
+               },
+               "kotlin": {
+                       "title": "Kotlin",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "latex": {
+                       "title": "LaTeX",
+                       "owner": "japborst"
+               },
+               "less": {
+                       "title": "Less",
+                       "require": "css",
+                       "owner": "Golmote"
+               },
+               "liquid": {
+                       "title": "Liquid",
+                       "owner": "cinhtau"
+               },
+               "lisp": {
+                       "title": "Lisp",
+                       "alias": ["emacs", "elisp", "emacs-lisp"],
+                       "owner": "JuanCaicedo"
+               },
+               "livescript": {
+                       "title": "LiveScript",
+                       "owner": "Golmote"
+               },
+               "lolcode": {
+                       "title": "LOLCODE",
+                       "owner": "Golmote"
+               },
+               "lua": {
+                       "title": "Lua",
+                       "owner": "Golmote"
+               },
+               "makefile": {
+                       "title": "Makefile",
+                       "owner": "Golmote"
+               },
+               "markdown": {
+                       "title": "Markdown",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "markup-templating": {
+                       "title": "Markup templating",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "matlab": {
+                       "title": "MATLAB",
+                       "owner": "Golmote"
+               },
+               "mel": {
+                       "title": "MEL",
+                       "owner": "Golmote"
+               },
+               "mizar": {
+                       "title": "Mizar",
+                       "owner": "Golmote"
+               },
+               "monkey": {
+                       "title": "Monkey",
+                       "owner": "Golmote"
+               },
+               "n4js": {
+                       "title": "N4JS",
+                       "require": "javascript",
+                       "alias": "n4jsd",
+                       "owner": "bsmith-n4"
+               },
+               "nasm": {
+                       "title": "NASM",
+                       "owner": "rbmj"
+               },
+               "nginx": {
+                       "title": "nginx",
+                       "owner": "westonganger",
+                       "require": "clike"
+               },
+               "nim": {
+                       "title": "Nim",
+                       "owner": "Golmote"
+               },
+               "nix": {
+                       "title": "Nix",
+                       "owner": "Golmote"
+               },
+               "nsis": {
+                       "title": "NSIS",
+                       "owner": "idleberg"
+               },
+               "objectivec": {
+                       "title": "Objective-C",
+                       "require": "c",
+                       "owner": "uranusjr"
+               },
+               "ocaml": {
+                       "title": "OCaml",
+                       "owner": "Golmote"
+               },
+               "opencl": {
+                       "title": "OpenCL",
+                       "require": "cpp",
+                       "peerDependencies": [
+                               "c",
+                               "cpp"
+                       ],
+                       "overrideExampleHeader": true,
+                       "owner": "Milania1"
+               },
+               "oz": {
+                       "title": "Oz",
+                       "owner": "Golmote"
+               },
+               "parigp": {
+                       "title": "PARI/GP",
+                       "owner": "Golmote"
+               },
+               "parser": {
+                       "title": "Parser",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "pascal": {
+                       "title": "Pascal",
+                       "alias": "objectpascal",
+                       "aliasTitles": {
+                               "objectpascal": "Object Pascal"
+                       },
+                       "owner": "Golmote"
+               },
+               "perl": {
+                       "title": "Perl",
+                       "owner": "Golmote"
+               },
+               "php": {
+                       "title": "PHP",
+                       "require": ["clike", "markup-templating"],
+                       "owner": "milesj"
+               },
+               "php-extras": {
+                       "title": "PHP Extras",
+                       "require": "php",
+                       "owner": "milesj"
+               },
+               "plsql": {
+                       "title": "PL/SQL",
+                       "require": "sql",
+                       "owner": "Golmote"
+               },
+               "powershell": {
+                       "title": "PowerShell",
+                       "owner": "nauzilus"
+               },
+               "processing": {
+                       "title": "Processing",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "prolog": {
+                       "title": "Prolog",
+                       "owner": "Golmote"
+               },
+               "properties": {
+                       "title": ".properties",
+                       "owner": "Golmote"
+               },
+               "protobuf": {
+                       "title": "Protocol Buffers",
+                       "require": "clike",
+                       "owner": "just-boris"
+               },
+               "pug": {
+                       "title": "Pug",
+                       "require": "javascript",
+                       "peerDependencies": [
+                               "coffeescript",
+                               "ejs",
+                               "handlebars",
+                               "hogan",
+                               "less",
+                               "livescript",
+                               "markdown",
+                               "mustache",
+                               "plates",
+                               "scss",
+                               "stylus",
+                               "swig"
+                       ],
+                       "owner": "Golmote"
+               },
+               "puppet": {
+                       "title": "Puppet",
+                       "owner": "Golmote"
+               },
+               "pure": {
+                       "title": "Pure",
+                       "peerDependencies": [
+                               "c",
+                               "cpp",
+                               "fortran",
+                               "ats",
+                               "dsp"
+                       ],
+                       "owner": "Golmote"
+               },
+               "python": {
+                       "title": "Python",
+                       "owner": "multipetros"
+               },
+               "q": {
+                       "title": "Q (kdb+ database)",
+                       "owner": "Golmote"
+               },
+               "qore": {
+                       "title": "Qore",
+                       "require": "clike",
+                       "owner": "temnroegg"
+               },
+               "r": {
+                       "title": "R",
+                       "owner": "Golmote"
+               },
+               "jsx": {
+                       "title": "React JSX",
+                       "require": ["markup", "javascript"],
+                       "owner": "vkbansal"
+               },
+               "tsx": {
+                       "title": "React TSX",
+                       "require": ["jsx", "typescript"]
+               },
+               "renpy": {
+                       "title": "Ren'py",
+                       "owner": "HyuchiaDiego"
+               },
+               "reason": {
+                       "title": "Reason",
+                       "require": "clike",
+                       "owner": "Golmote"
+               },
+               "rest": {
+                       "title": "reST (reStructuredText)",
+                       "owner": "Golmote"
+               },
+               "rip": {
+                       "title": "Rip",
+                       "owner": "ravinggenius"
+               },
+               "roboconf": {
+                       "title": "Roboconf",
+                       "owner": "Golmote"
+               },
+               "ruby": {
+                       "title": "Ruby",
+                       "require": "clike",
+                       "owner": "samflores"
+               },
+               "rust": {
+                       "title": "Rust",
+                       "owner": "Golmote"
+               },
+               "sas": {
+                       "title": "SAS",
+                       "owner": "Golmote"
+               },
+               "sass": {
+                       "title": "Sass (Sass)",
+                       "require": "css",
+                       "owner": "Golmote"
+               },
+               "scss": {
+                       "title": "Sass (Scss)",
+                       "require": "css",
+                       "owner": "MoOx"
+               },
+               "scala": {
+                       "title": "Scala",
+                       "require": "java",
+                       "owner": "jozic"
+               },
+               "scheme": {
+                       "title": "Scheme",
+                       "owner": "bacchus123"
+               },
+               "smalltalk": {
+                       "title": "Smalltalk",
+                       "owner": "Golmote"
+               },
+               "smarty": {
+                       "title": "Smarty",
+                       "require": "markup-templating",
+                       "owner": "Golmote"
+               },
+               "sql": {
+                       "title": "SQL",
+                       "owner": "multipetros"
+               },
+               "soy": {
+                       "title": "Soy (Closure Template)",
+                       "require": "markup-templating",
+                       "owner": "Golmote"
+               },
+               "stylus": {
+                       "title": "Stylus",
+                       "owner": "vkbansal"
+               },
+               "swift": {
+                       "title": "Swift",
+                       "require": "clike",
+                       "owner": "chrischares"
+               },
+               "tap": {
+                       "title": "TAP",
+                       "owner": "isaacs",
+                       "require": "yaml"
+               },
+               "tcl": {
+                       "title": "Tcl",
+                       "owner": "PeterChaplin"
+               },
+               "textile": {
+                       "title": "Textile",
+                       "require": "markup",
+                       "peerDependencies": "css",
+                       "owner": "Golmote"
+               },
+               "tt2": {
+                       "title": "Template Toolkit 2",
+                       "require": ["clike", "markup-templating"],
+                       "owner": "gflohr"
+               },
+               "twig": {
+                       "title": "Twig",
+                       "require": "markup",
+                       "owner": "brandonkelly"
+               },
+               "typescript": {
+                       "title": "TypeScript",
+                       "require": "javascript",
+                       "alias": "ts",
+                       "owner": "vkbansal"
+               },
+               "vbnet": {
+                       "title": "VB.Net",
+                       "require": "basic",
+                       "owner": "Bigsby"
+               },
+               "velocity": {
+                       "title": "Velocity",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "verilog": {
+                       "title": "Verilog",
+                       "owner": "a-rey"
+               },
+               "vhdl": {
+                       "title": "VHDL",
+                       "owner": "a-rey"
+               },
+               "vim": {
+                       "title": "vim",
+                       "owner": "westonganger"
+               },
+               "visual-basic": {
+                       "title": "Visual Basic",
+                       "alias": "vb",
+                       "owner": "Golmote"
+               },
+               "wasm": {
+                       "title": "WebAssembly",
+                       "owner": "Golmote"
+               },
+               "wiki": {
+                       "title": "Wiki markup",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "xeora": {
+                       "title": "Xeora",
+                       "require": "markup",
+                       "alias": "xeoracube",
+                       "aliasTitles": {
+                               "xeoracube": "XeoraCube"
+                       },
+                       "owner": "freakmaxi"
+               },
+               "xojo": {
+                       "title": "Xojo (REALbasic)",
+                       "owner": "Golmote"
+               },
+               "xquery": {
+                       "title": "XQuery",
+                       "require": "markup",
+                       "owner": "Golmote"
+               },
+               "yaml": {
+                       "title": "YAML",
+                       "owner": "hason"
+               }
+       },
+       "plugins": {
+               "meta": {
+                       "path": "plugins/{id}/prism-{id}",
+                       "link": "plugins/{id}/"
+               },
+               "line-highlight": "Line Highlight",
+               "line-numbers": {
+                       "title": "Line Numbers",
+                       "owner": "kuba-kubula"
+               },
+               "show-invisibles": "Show Invisibles",
+               "autolinker": "Autolinker",
+               "wpd": "WebPlatform Docs",
+               "custom-class": {
+                       "title": "Custom Class",
+                       "owner": "dvkndn",
+                       "noCSS": true
+               },
+               "file-highlight": {
+                       "title": "File Highlight",
+                       "noCSS": true
+               },
+               "show-language": {
+                       "title": "Show Language",
+                       "owner": "nauzilus",
+                       "noCSS": true,
+                       "require": "toolbar"
+               },
+               "jsonp-highlight": {
+                       "title": "JSONP Highlight",
+                       "noCSS": true,
+                       "owner": "nauzilus"
+               },
+               "highlight-keywords": {
+                       "title": "Highlight Keywords",
+                       "owner": "vkbansal",
+                       "noCSS": true
+               },
+               "remove-initial-line-feed": {
+                       "title": "Remove initial line feed",
+                       "owner": "Golmote",
+                       "noCSS": true
+               },
+               "previewers": {
+                       "title": "Previewers",
+                       "owner": "Golmote"
+               },
+               "autoloader": {
+                       "title": "Autoloader",
+                       "owner": "Golmote",
+                       "noCSS": true
+               },
+               "keep-markup": {
+                       "title": "Keep Markup",
+                       "owner": "Golmote",
+                       "after": "normalize-whitespace",
+                       "noCSS": true
+               },
+               "command-line": {
+                       "title": "Command Line",
+                       "owner": "chriswells0"
+               },
+               "unescaped-markup": "Unescaped Markup",
+               "normalize-whitespace": {
+                       "title": "Normalize Whitespace",
+                       "owner": "zeitgeist87",
+                       "after": "unescaped-markup",
+                       "noCSS": true
+               },
+               "data-uri-highlight": {
+                       "title": "Data-URI Highlight",
+                       "owner": "Golmote",
+                       "noCSS": true
+               },
+               "toolbar": {
+                       "title": "Toolbar",
+                       "owner": "mAAdhaTTah"
+               },
+               "copy-to-clipboard": {
+                       "title": "Copy to Clipboard Button",
+                       "owner": "mAAdhaTTah",
+                       "require": "toolbar",
+                       "noCSS": true
+               }
+       }
+}
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-abap.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-abap.js
new file mode 100644 (file)
index 0000000..0397d05
--- /dev/null
@@ -0,0 +1,50 @@
+define(["prism/prism"], function () {
+Prism.languages.abap = {
+       'comment': /^\*.*/m,
+       'string' : /(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,
+       'string-template': {
+               pattern: /([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,
+               lookbehind: true,
+               alias: 'string'
+       },
+       /* End Of Line comments should not interfere with strings when the  
+       quote character occurs within them. We assume a string being highlighted
+       inside an EOL comment is more acceptable than the opposite.
+       */
+       'eol-comment': {
+               pattern: /(^|\s)".*/m,
+               lookbehind: true,
+               alias: 'comment'
+       },
+       'keyword' : {
+               pattern: /(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,
+               lookbehind: true
+       },
+       /* Numbers can be only integers. Decimal or Hex appear only as strings */
+       'number' : /\b\d+\b/,
+       /* Operators must always be surrounded by whitespace, they cannot be put 
+       adjacent to operands. 
+       */
+       'operator' : {
+               pattern: /(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,
+               lookbehind: true
+       },
+       'string-operator' : {
+               pattern: /(\s)&&?(?=\s)/,
+               lookbehind: true,
+               /* The official editor highlights */
+               alias: "keyword"
+       },
+       'token-operator' : [{
+               /* Special operators used to access structure components, class methods/attributes, etc. */
+               pattern: /(\w)(?:->?|=>|[~|{}])(?=\w)/,
+               lookbehind: true,
+               alias: "punctuation"
+       }, {
+           /* Special tokens used do delimit string templates */
+           pattern: /[|{}]/,
+               alias: "punctuation"
+       }],
+       'punctuation' : /[,.:()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-actionscript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-actionscript.js
new file mode 100644 (file)
index 0000000..1451060
--- /dev/null
@@ -0,0 +1,19 @@
+define(["prism/prism","prism/components/prism-javascript","prism/components/prism-markup"], function () {
+Prism.languages.actionscript = Prism.languages.extend('javascript',  {
+       'keyword': /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,
+       'operator': /\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/
+});
+Prism.languages.actionscript['class-name'].alias = 'function';
+
+if (Prism.languages.markup) {
+       Prism.languages.insertBefore('actionscript', 'string', {
+               'xml': {
+                       pattern: /(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.markup
+                       }
+               }
+       });
+}
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-ada.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-ada.js
new file mode 100644 (file)
index 0000000..809d59d
--- /dev/null
@@ -0,0 +1,21 @@
+define(["prism/prism"], function () {
+Prism.languages.ada = {
+       'comment': /--.*/,
+       'string': /"(?:""|[^"\r\f\n])*"/i,
+       'number': [
+               {
+                       pattern: /\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i
+               },
+               {
+                       pattern: /\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i
+               }
+       ],
+       'attr-name': /\b'\w+/i,
+       'keyword': /\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,
+       'boolean': /\b(?:true|false)\b/i,
+       'operator': /<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,
+       'punctuation': /\.\.?|[,;():]/,
+       'char': /'.'/,
+       'variable': /\b[a-z](?:[_a-z\d])*\b/i
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-apacheconf.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-apacheconf.js
new file mode 100644 (file)
index 0000000..20102e9
--- /dev/null
@@ -0,0 +1,50 @@
+define(["prism/prism"], function () {
+Prism.languages.apacheconf = {
+       'comment': /#.*/,
+       'directive-inline': {
+               pattern: /^(\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/mi,
+               lookbehind: true,
+               alias: 'property'
+       },
+       'directive-block': {
+               pattern: /<\/?\b(?:AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/i,
+               inside: {
+                       'directive-block': {
+                               pattern: /^<\/?\w+/,
+                               inside: {
+                                       'punctuation': /^<\/?/
+                               },
+                               alias: 'tag'
+                       },
+                       'directive-block-parameter': {
+                               pattern: /.*[^>]/,
+                               inside: {
+                                       'punctuation': /:/,
+                                       'string': {
+                                               pattern: /("|').*\1/,
+                                               inside: {
+                                                       'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/
+                                               }
+                                       }
+                               },
+                               alias: 'attr-value'
+                       },
+                       'punctuation': />/
+               },
+               alias: 'tag'
+       },
+       'directive-flags': {
+               pattern: /\[(?:\w,?)+\]/,
+               alias: 'keyword'
+       },
+       'string': {
+               pattern: /("|').*\1/,
+               inside: {
+                       'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/
+               }
+       },
+       'variable': /[$%]\{?(?:\w\.?[-+:]?)+\}?/,
+       'regex': /\^?.*\$|\^.*\$?/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-apl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-apl.js
new file mode 100644 (file)
index 0000000..3a6dfa4
--- /dev/null
@@ -0,0 +1,34 @@
+define(["prism/prism"], function () {
+Prism.languages.apl = {
+       'comment': /(?:⍝|#[! ]).*$/m,
+       'string': {
+               pattern: /'(?:[^'\r\n]|'')*'/,
+               greedy: true
+       },
+       'number': /¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞))?/i,
+       'statement': /:[A-Z][a-z][A-Za-z]*\b/,
+       'system-function': {
+               pattern: /⎕[A-Z]+/i,
+               alias: 'function'
+       },
+       'constant': /[⍬⌾#⎕⍞]/,
+       'function': /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,
+       'monadic-operator': {
+               pattern: /[\\\/⌿⍀¨⍨⌶&∥]/,
+               alias: 'operator'
+       },
+       'dyadic-operator': {
+               pattern: /[.⍣⍠⍤∘⌸@⌺]/,
+               alias: 'operator'
+       },
+       'assignment': {
+               pattern: /←/,
+               alias: 'keyword'
+       },
+       'punctuation': /[\[;\]()◇⋄]/,
+       'dfn': {
+               pattern: /[{}⍺⍵⍶⍹∇⍫:]/,
+               alias: 'builtin'
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-applescript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-applescript.js
new file mode 100644 (file)
index 0000000..7b8b1a4
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.applescript = {
+       'comment': [
+               // Allow one level of nesting
+               /\(\*(?:\(\*[\s\S]*?\*\)|[\s\S])*?\*\)/,
+               /--.+/,
+               /#.+/
+       ],
+       'string': /"(?:\\.|[^"\\\r\n])*"/,
+       'number': /(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?\b/i,
+       'operator': [
+               /[&=≠≤≥*+\-\/÷^]|[<>]=?/,
+               /\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/
+       ],
+       'keyword': /\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,
+       'class': {
+               pattern: /\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,
+               alias: 'builtin'
+       },
+       'punctuation': /[{}():,¬«»《》]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-arduino.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-arduino.js
new file mode 100644 (file)
index 0000000..f313108
--- /dev/null
@@ -0,0 +1,8 @@
+define(["prism/prism","prism/components/prism-cpp"], function () {
+Prism.languages.arduino = Prism.languages.extend('cpp', {
+       'keyword': /\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,
+       'builtin': /\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/,
+       'constant': /\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-arff.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-arff.js
new file mode 100644 (file)
index 0000000..96a4412
--- /dev/null
@@ -0,0 +1,12 @@
+define(["prism/prism"], function () {
+Prism.languages.arff = {
+       'comment': /%.*/,
+       'string': {
+               pattern: /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'keyword': /@(?:attribute|data|end|relation)\b/i,
+       'number': /\b\d+(?:\.\d+)?\b/,
+       'punctuation': /[{},]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-asciidoc.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-asciidoc.js
new file mode 100644 (file)
index 0000000..6fdf748
--- /dev/null
@@ -0,0 +1,273 @@
+define(["prism/prism"], function () {
+(function (Prism) {
+
+       var attributes = {
+               pattern: /(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\]\\]|\\.)*\]|[^\]\\]|\\.)*\]/m,
+               lookbehind: true,
+               inside: {
+                       'quoted': {
+                               pattern: /([$`])(?:(?!\1)[^\\]|\\.)*\1/,
+                               inside: {
+                                       'punctuation': /^[$`]|[$`]$/
+                               }
+                       },
+                       'interpreted': {
+                               pattern: /'(?:[^'\\]|\\.)*'/,
+                               inside: {
+                                       'punctuation': /^'|'$/
+                                       // See rest below
+                               }
+                       },
+                       'string': /"(?:[^"\\]|\\.)*"/,
+                       'variable': /\w+(?==)/,
+                       'punctuation': /^\[|\]$|,/,
+                       'operator': /=/,
+                       // The negative look-ahead prevents blank matches
+                       'attr-value': /(?!^\s+$).+/
+               }
+       };
+       Prism.languages.asciidoc = {
+               'comment-block': {
+                       pattern: /^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,
+                       alias: 'comment'
+               },
+               'table': {
+                       pattern: /^\|={3,}(?:(?:\r?\n|\r).*)*?(?:\r?\n|\r)\|={3,}$/m,
+                       inside: {
+                               'specifiers': {
+                                       pattern: /(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,
+                                       alias: 'attr-value'
+                               },
+                               'punctuation': {
+                                       pattern: /(^|[^\\])[|!]=*/,
+                                       lookbehind: true
+                               }
+                               // See rest below
+                       }
+               },
+
+               'passthrough-block': {
+                       pattern: /^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
+                       inside: {
+                               'punctuation': /^\++|\++$/
+                               // See rest below
+                       }
+               },
+               // Literal blocks and listing blocks
+               'literal-block': {
+                       pattern: /^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
+                       inside: {
+                               'punctuation': /^(?:-+|\.+)|(?:-+|\.+)$/
+                               // See rest below
+                       }
+               },
+               // Sidebar blocks, quote blocks, example blocks and open blocks
+               'other-block': {
+                       pattern: /^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,
+                       inside: {
+                               'punctuation': /^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/
+                               // See rest below
+                       }
+               },
+
+               // list-punctuation and list-label must appear before indented-block
+               'list-punctuation': {
+                       pattern: /(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,
+                       lookbehind: true,
+                       alias: 'punctuation'
+               },
+               'list-label': {
+                       pattern: /(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,
+                       lookbehind: true,
+                       alias: 'symbol'
+               },
+               'indented-block': {
+                       pattern: /((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,
+                       lookbehind: true
+               },
+
+               'comment': /^\/\/.*/m,
+               'title': {
+                       pattern: /^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} +.+|^\.(?![\s.]).*/m,
+                       alias: 'important',
+                       inside: {
+                               'punctuation': /^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/
+                               // See rest below
+                       }
+               },
+               'attribute-entry': {
+                       pattern: /^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,
+                       alias: 'tag'
+               },
+               'attributes': attributes,
+               'hr': {
+                       pattern: /^'{3,}$/m,
+                       alias: 'punctuation'
+               },
+               'page-break': {
+                       pattern: /^<{3,}$/m,
+                       alias: 'punctuation'
+               },
+               'admonition': {
+                       pattern: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,
+                       alias: 'keyword'
+               },
+               'callout': [
+                       {
+                               pattern: /(^[ \t]*)<?\d*>/m,
+                               lookbehind: true,
+                               alias: 'symbol'
+                       },
+                       {
+                               pattern: /<\d+>/,
+                               alias: 'symbol'
+                       }
+               ],
+               'macro': {
+                       pattern: /\b[a-z\d][a-z\d-]*::?(?:(?:\S+)??\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,
+                       inside: {
+                               'function': /^[a-z\d-]+(?=:)/,
+                               'punctuation': /^::?/,
+                               'attributes': {
+                                       pattern: /(?:\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,
+                                       inside: attributes.inside
+                               }
+                       }
+               },
+               'inline': {
+                       /*
+                       The initial look-behind prevents the highlighting of escaped quoted text.
+
+                       Quoted text can be multi-line but cannot span an empty line.
+                       All quoted text can have attributes before [foobar, 'foobar', baz="bar"].
+
+                       First, we handle the constrained quotes.
+                       Those must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.
+                       They are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#
+
+                       Then we handle the unconstrained quotes.
+                       Those do not have the restrictions of the constrained quotes.
+                       They are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))
+                        */
+                       pattern: /(^|[^\\])(?:(?:\B\[(?:[^\]\\"]|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?: ['`]|.)+?(?:(?:\r?\n|\r)(?: ['`]|.)+?)*['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"]|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,
+                       lookbehind: true,
+                       inside: {
+                               'attributes': attributes,
+                               'url': {
+                                       pattern: /^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,
+                                       inside: {
+                                               'punctuation': /^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/
+                                       }
+                               },
+                               'attribute-ref': {
+                                       pattern: /^\{.+\}$/,
+                                       inside: {
+                                               'variable': {
+                                                       pattern: /(^\{)[a-z\d,+_-]+/,
+                                                       lookbehind: true
+                                               },
+                                               'operator': /^[=?!#%@$]|!(?=[:}])/,
+                                               'punctuation': /^\{|\}$|::?/
+                                       }
+                               },
+                               'italic': {
+                                       pattern: /^(['_])[\s\S]+\1$/,
+                                       inside: {
+                                               'punctuation': /^(?:''?|__?)|(?:''?|__?)$/
+                                       }
+                               },
+                               'bold': {
+                                       pattern: /^\*[\s\S]+\*$/,
+                                       inside: {
+                                               punctuation: /^\*\*?|\*\*?$/
+                                       }
+                               },
+                               'punctuation': /^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/
+                       }
+               },
+               'replacement': {
+                       pattern: /\((?:C|TM|R)\)/,
+                       alias: 'builtin'
+               },
+               'entity': /&#?[\da-z]{1,8};/i,
+               'line-continuation': {
+                       pattern: /(^| )\+$/m,
+                       lookbehind: true,
+                       alias: 'punctuation'
+               }
+       };
+
+
+       // Allow some nesting. There is no recursion though, so cloning should not be needed.
+
+       attributes.inside['interpreted'].inside.rest = {
+               'macro': Prism.languages.asciidoc['macro'],
+               'inline': Prism.languages.asciidoc['inline'],
+               'replacement': Prism.languages.asciidoc['replacement'],
+               'entity': Prism.languages.asciidoc['entity']
+       };
+
+       Prism.languages.asciidoc['passthrough-block'].inside.rest = {
+               'macro': Prism.languages.asciidoc['macro']
+       };
+
+       Prism.languages.asciidoc['literal-block'].inside.rest = {
+               'callout': Prism.languages.asciidoc['callout']
+       };
+
+       Prism.languages.asciidoc['table'].inside.rest = {
+               'comment-block': Prism.languages.asciidoc['comment-block'],
+               'passthrough-block': Prism.languages.asciidoc['passthrough-block'],
+               'literal-block': Prism.languages.asciidoc['literal-block'],
+               'other-block': Prism.languages.asciidoc['other-block'],
+               'list-punctuation': Prism.languages.asciidoc['list-punctuation'],
+               'indented-block': Prism.languages.asciidoc['indented-block'],
+               'comment': Prism.languages.asciidoc['comment'],
+               'title': Prism.languages.asciidoc['title'],
+               'attribute-entry': Prism.languages.asciidoc['attribute-entry'],
+               'attributes': Prism.languages.asciidoc['attributes'],
+               'hr': Prism.languages.asciidoc['hr'],
+               'page-break': Prism.languages.asciidoc['page-break'],
+               'admonition': Prism.languages.asciidoc['admonition'],
+               'list-label': Prism.languages.asciidoc['list-label'],
+               'callout': Prism.languages.asciidoc['callout'],
+               'macro': Prism.languages.asciidoc['macro'],
+               'inline': Prism.languages.asciidoc['inline'],
+               'replacement': Prism.languages.asciidoc['replacement'],
+               'entity': Prism.languages.asciidoc['entity'],
+               'line-continuation': Prism.languages.asciidoc['line-continuation']
+       };
+
+       Prism.languages.asciidoc['other-block'].inside.rest = {
+               'table': Prism.languages.asciidoc['table'],
+               'list-punctuation': Prism.languages.asciidoc['list-punctuation'],
+               'indented-block': Prism.languages.asciidoc['indented-block'],
+               'comment': Prism.languages.asciidoc['comment'],
+               'attribute-entry': Prism.languages.asciidoc['attribute-entry'],
+               'attributes': Prism.languages.asciidoc['attributes'],
+               'hr': Prism.languages.asciidoc['hr'],
+               'page-break': Prism.languages.asciidoc['page-break'],
+               'admonition': Prism.languages.asciidoc['admonition'],
+               'list-label': Prism.languages.asciidoc['list-label'],
+               'macro': Prism.languages.asciidoc['macro'],
+               'inline': Prism.languages.asciidoc['inline'],
+               'replacement': Prism.languages.asciidoc['replacement'],
+               'entity': Prism.languages.asciidoc['entity'],
+               'line-continuation': Prism.languages.asciidoc['line-continuation']
+       };
+
+       Prism.languages.asciidoc['title'].inside.rest = {
+               'macro': Prism.languages.asciidoc['macro'],
+               'inline': Prism.languages.asciidoc['inline'],
+               'replacement': Prism.languages.asciidoc['replacement'],
+               'entity': Prism.languages.asciidoc['entity']
+       };
+
+       // Plugin to make entity title show the real entity, idea by Roman Komarov
+       Prism.hooks.add('wrap', function(env) {
+               if (env.type === 'entity') {
+                       env.attributes['title'] = env.content.replace(/&amp;/, '&');
+               }
+       });
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-asm6502.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-asm6502.js
new file mode 100644 (file)
index 0000000..d02c352
--- /dev/null
@@ -0,0 +1,31 @@
+define(["prism/prism"], function () {
+Prism.languages.asm6502 = {
+       'comment': /;.*/,
+       'directive': {
+               pattern: /\.\w+(?= )/,
+               alias: 'keyword'
+       },
+       'string': /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+       'opcode': {
+    pattern: /\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/,
+               alias: 'property'
+       },
+       'hexnumber': {
+               pattern: /#?\$[\da-f]{2,4}/i,
+               alias: 'string'
+       },
+       'binarynumber': {
+               pattern: /#?%[01]+/,
+               alias: 'string'
+       },
+       'decimalnumber': {
+               pattern: /#?\d+/,
+               alias: 'string'
+       },
+       'register': {
+               pattern: /\b[xya]\b/i,
+               alias: 'variable'
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-aspnet.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-aspnet.js
new file mode 100644 (file)
index 0000000..936f301
--- /dev/null
@@ -0,0 +1,38 @@
+define(["prism/prism","prism/components/prism-markup","prism/components/prism-csharp"], function () {
+Prism.languages.aspnet = Prism.languages.extend('markup', {
+       'page-directive tag': {
+               pattern: /<%\s*@.*%>/i,
+               inside: {
+                       'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,
+                       rest: Prism.languages.markup.tag.inside
+               }
+       },
+       'directive tag': {
+               pattern: /<%.*%>/i,
+               inside: {
+                       'directive tag': /<%\s*?[$=%#:]{0,2}|%>/i,
+                       rest: Prism.languages.csharp
+               }
+       }
+});
+// Regexp copied from prism-markup, with a negative look-ahead added
+Prism.languages.aspnet.tag.pattern = /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
+
+// match directives of attribute value foo="<% Bar %>"
+Prism.languages.insertBefore('inside', 'punctuation', {
+       'directive tag': Prism.languages.aspnet['directive tag']
+}, Prism.languages.aspnet.tag.inside["attr-value"]);
+
+Prism.languages.insertBefore('aspnet', 'comment', {
+       'asp comment': /<%--[\s\S]*?--%>/
+});
+
+// script runat="server" contains csharp, not javascript
+Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', {
+       'asp script': {
+               pattern: /(<script(?=.*runat=['"]?server['"]?)[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,
+               lookbehind: true,
+               inside: Prism.languages.csharp || {}
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-autohotkey.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-autohotkey.js
new file mode 100644 (file)
index 0000000..8ea73da
--- /dev/null
@@ -0,0 +1,29 @@
+define(["prism/prism"], function () {
+// NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl
+Prism.languages.autohotkey= {
+       'comment': {
+               pattern: /(^[^";\n]*("[^"\n]*?"[^"\n]*?)*)(?:;.*$|^\s*\/\*[\s\S]*\n\*\/)/m,
+               lookbehind: true
+       },
+       'string': /"(?:[^"\n\r]|"")*"/m,
+       'function': /[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+?(?=\()/m,  //function - don't use .*\) in the end bcoz string locks it
+       'tag': /^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m,  //labels
+       'variable': /%\w+%/,
+       'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,
+       'operator': /\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,
+       'punctuation': /[{}[\]():,]/,
+       'boolean': /\b(?:true|false)\b/,
+
+       'selector': /\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/i,
+
+       'constant': /\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\b/i,
+
+       'builtin': /\b(?:abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__Set)\b/i,
+
+       'symbol': /\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,
+
+       'important': /#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\b/i,
+
+       'keyword': /\b(?:Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-autoit.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-autoit.js
new file mode 100644 (file)
index 0000000..c1a23d0
--- /dev/null
@@ -0,0 +1,36 @@
+define(["prism/prism"], function () {
+Prism.languages.autoit = {
+       "comment": [
+               /;.*/,
+               {
+                       // The multi-line comments delimiters can actually be commented out with ";"
+                       pattern: /(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m,
+                       lookbehind: true
+               }
+       ],
+       "url": {
+               pattern: /(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,
+               lookbehind: true
+       },
+       "string": {
+               pattern: /(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,
+               greedy: true,
+               inside: {
+                       "variable": /([%$@])\w+\1/
+               }
+       },
+       "directive": {
+               pattern: /(^\s*)#\w+/m,
+               lookbehind: true,
+               alias: 'keyword'
+       },
+       "function": /\b\w+(?=\()/,
+       // Variables and macros
+       "variable": /[$@]\w+/,
+       "keyword": /\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,
+       "number": /\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,
+       "boolean": /\b(?:True|False)\b/i,
+       "operator": /<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,
+       "punctuation": /[\[\]().,:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-bash.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-bash.js
new file mode 100644 (file)
index 0000000..2c46e4b
--- /dev/null
@@ -0,0 +1,87 @@
+define(["prism/prism"], function () {
+(function(Prism) {
+       var insideString = {
+               variable: [
+                       // Arithmetic Environment
+                       {
+                               pattern: /\$?\(\([\s\S]+?\)\)/,
+                               inside: {
+                                       // If there is a $ sign at the beginning highlight $(( and )) as variable
+                                       variable: [{
+                                                       pattern: /(^\$\(\([\s\S]+)\)\)/,
+                                                       lookbehind: true
+                                               },
+                                               /^\$\(\(/
+                                       ],
+                                       number: /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,
+                                       // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic
+                                       operator: /--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,
+                                       // If there is no $ sign at the beginning highlight (( and )) as punctuation
+                                       punctuation: /\(\(?|\)\)?|,|;/
+                               }
+                       },
+                       // Command Substitution
+                       {
+                               pattern: /\$\([^)]+\)|`[^`]+`/,
+                               greedy: true,
+                               inside: {
+                                       variable: /^\$\(|^`|\)$|`$/
+                               }
+                       },
+                       /\$(?:[\w#?*!@]+|\{[^}]+\})/i
+               ]
+       };
+
+       Prism.languages.bash = {
+               'shebang': {
+                       pattern: /^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,
+                       alias: 'important'
+               },
+               'comment': {
+                       pattern: /(^|[^"{\\])#.*/,
+                       lookbehind: true
+               },
+               'string': [
+                       //Support for Here-Documents https://en.wikipedia.org/wiki/Here_document
+                       {
+                               pattern: /((?:^|[^<])<<\s*)["']?(\w+?)["']?\s*\r?\n(?:[\s\S])*?\r?\n\2/,
+                               lookbehind: true,
+                               greedy: true,
+                               inside: insideString
+                       },
+                       {
+                               pattern: /(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,
+                               greedy: true,
+                               inside: insideString
+                       }
+               ],
+               'variable': insideString.variable,
+               // Originally based on http://ss64.com/bash/
+               'function': {
+                       pattern: /(^|[\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\s;|&])/,
+                       lookbehind: true
+               },
+               'keyword': {
+                       pattern: /(^|[\s;|&])(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\s;|&])/,
+                       lookbehind: true
+               },
+               'boolean': {
+                       pattern: /(^|[\s;|&])(?:true|false)(?=$|[\s;|&])/,
+                       lookbehind: true
+               },
+               'operator': /&&?|\|\|?|==?|!=?|<<<?|>>|<=?|>=?|=~/,
+               'punctuation': /\$?\(\(?|\)\)?|\.\.|[{}[\];]/
+       };
+
+       var inside = insideString.variable[1].inside;
+       inside.string = Prism.languages.bash.string;
+       inside['function'] = Prism.languages.bash['function'];
+       inside.keyword = Prism.languages.bash.keyword;
+       inside['boolean'] = Prism.languages.bash['boolean'];
+       inside.operator = Prism.languages.bash.operator;
+       inside.punctuation = Prism.languages.bash.punctuation;
+       
+       Prism.languages.shell = Prism.languages.bash;
+})(Prism);
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-basic.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-basic.js
new file mode 100644 (file)
index 0000000..e8bd555
--- /dev/null
@@ -0,0 +1,19 @@
+define(["prism/prism"], function () {
+Prism.languages.basic = {
+       'comment': {
+               pattern: /(?:!|REM\b).+/i,
+               inside: {
+                       'keyword': /^REM/i
+               }
+       },
+       'string': {
+               pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,
+               greedy: true
+       },
+       'number': /(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,
+       'keyword': /\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,
+       'function': /\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,
+       'operator': /<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,
+       'punctuation': /[,;:()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-batch.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-batch.js
new file mode 100644 (file)
index 0000000..4218481
--- /dev/null
@@ -0,0 +1,101 @@
+define(["prism/prism"], function () {
+(function (Prism) {
+       var variable = /%%?[~:\w]+%?|!\S+!/;
+       var parameter = {
+               pattern: /\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,
+               alias: 'attr-name',
+               inside: {
+                       'punctuation': /:/
+               }
+       };
+       var string = /"[^"]*"/;
+       var number = /(?:\b|-)\d+\b/;
+
+       Prism.languages.batch = {
+               'comment': [
+                       /^::.*/m,
+                       {
+                               pattern: /((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
+                               lookbehind: true
+                       }
+               ],
+               'label': {
+                       pattern: /^:.*/m,
+                       alias: 'property'
+               },
+               'command': [
+                       {
+                               // FOR command
+                               pattern: /((?:^|[&(])[ \t]*)for(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* \S+ in \([^)]+\) do/im,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^for\b|\b(?:in|do)\b/i,
+                                       'string': string,
+                                       'parameter': parameter,
+                                       'variable': variable,
+                                       'number': number,
+                                       'punctuation': /[()',]/
+                               }
+                       },
+                       {
+                               // IF command
+                               pattern: /((?:^|[&(])[ \t]*)if(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+))/im,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,
+                                       'string': string,
+                                       'parameter': parameter,
+                                       'variable': variable,
+                                       'number': number,
+                                       'operator': /\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i
+                               }
+                       },
+                       {
+                               // ELSE command
+                               pattern: /((?:^|[&()])[ \t]*)else\b/im,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^else\b/i
+                               }
+                       },
+                       {
+                               // SET command
+                               pattern: /((?:^|[&(])[ \t]*)set(?: ?\/[a-z](?:[ :](?:"[^"]*"|\S+))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^set\b/i,
+                                       'string': string,
+                                       'parameter': parameter,
+                                       'variable': [
+                                               variable,
+                                               /\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/
+                                       ],
+                                       'number': number,
+                                       'operator': /[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,
+                                       'punctuation': /[()',]/
+                               }
+                       },
+                       {
+                               // Other commands
+                               pattern: /((?:^|[&(])[ \t]*@?)\w+\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^\w+\b/i,
+                                       'string': string,
+                                       'parameter': parameter,
+                                       'label': {
+                                               pattern: /(^\s*):\S+/m,
+                                               lookbehind: true,
+                                               alias: 'property'
+                                       },
+                                       'variable': variable,
+                                       'number': number,
+                                       'operator': /\^/
+                               }
+                       }
+               ],
+               'operator': /[&@]/,
+               'punctuation': /[()']/
+       };
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-bison.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-bison.js
new file mode 100644 (file)
index 0000000..6879d4c
--- /dev/null
@@ -0,0 +1,41 @@
+define(["prism/prism","prism/components/prism-c"], function () {
+Prism.languages.bison = Prism.languages.extend('c', {});
+
+Prism.languages.insertBefore('bison', 'comment', {
+       'bison': {
+               // This should match all the beginning of the file
+               // including the prologue(s), the bison declarations and
+               // the grammar rules.
+               pattern: /^[\s\S]*?%%[\s\S]*?%%/,
+               inside: {
+                       'c': {
+                               // Allow for one level of nested braces
+                               pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,
+                               inside: {
+                                       'delimiter': {
+                                               pattern: /^%?\{|%?\}$/,
+                                               alias: 'punctuation'
+                                       },
+                                       'bison-variable': {
+                                               pattern: /[$@](?:<[^\s>]+>)?[\w$]+/,
+                                               alias: 'variable',
+                                               inside: {
+                                                       'punctuation': /<|>/
+                                               }
+                                       },
+                                       rest: Prism.languages.c
+                               }
+                       },
+                       'comment': Prism.languages.c.comment,
+                       'string': Prism.languages.c.string,
+                       'property': /\S+(?=:)/,
+                       'keyword': /%\w+/,
+                       'number': {
+                               pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i,
+                               lookbehind: true
+                       },
+                       'punctuation': /%[%?]|[|:;\[\]<>]/
+               }
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-brainfuck.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-brainfuck.js
new file mode 100644 (file)
index 0000000..42e40c8
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.brainfuck = {
+       'pointer': {
+               pattern: /<|>/,
+               alias: 'keyword'
+       },
+       'increment': {
+               pattern: /\+/,
+               alias: 'inserted'
+       },
+       'decrement': {
+               pattern: /-/,
+               alias: 'deleted'
+       },
+       'branching': {
+               pattern: /\[|\]/,
+               alias: 'important'
+       },
+       'operator': /[.,]/,
+       'comment': /\S+/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-bro.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-bro.js
new file mode 100644 (file)
index 0000000..0cafdae
--- /dev/null
@@ -0,0 +1,51 @@
+define(["prism/prism"], function () {
+Prism.languages.bro = {
+
+       'comment': {
+               pattern: /(^|[^\\$])#.*/,
+               lookbehind: true,
+                       inside: {
+                               'italic':  /\b(?:TODO|FIXME|XXX)\b/
+               }
+       },
+
+       'string': {
+               pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+
+       'boolean': /\b[TF]\b/,
+
+       'function': {
+               pattern: /(?:function|hook|event) \w+(?:::\w+)?/,
+               inside: {
+                       keyword: /^(?:function|hook|event)/
+               }
+       },
+
+       'variable':     {
+               pattern: /(?:global|local) \w+/i,
+               inside: {
+                       keyword: /(?:global|local)/
+               }
+       },
+
+       'builtin': /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,
+
+       'constant': {
+               pattern: /const \w+/i,
+               inside: {
+                       keyword: /const/
+               }
+       },
+
+       'keyword': /\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,
+
+       'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,
+
+       'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
+
+       'punctuation': /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-c.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-c.js
new file mode 100644 (file)
index 0000000..7a540e0
--- /dev/null
@@ -0,0 +1,36 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.c = Prism.languages.extend('clike', {
+       'keyword': /\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,
+       'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,
+       'number': /(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i
+});
+
+Prism.languages.insertBefore('c', 'string', {
+       'macro': {
+               // allow for multiline macro definitions
+               // spaces after the # character compile fine with gcc
+               pattern: /(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,
+               lookbehind: true,
+               alias: 'property',
+               inside: {
+                       // highlight the path of the include statement as a string
+                       'string': {
+                               pattern: /(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,
+                               lookbehind: true
+                       },
+                       // highlight macro directives as keywords
+                       'directive': {
+                               pattern: /(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,
+                               lookbehind: true,
+                               alias: 'keyword'
+                       }
+               }
+       },
+       // highlight predefined macros as constants
+       'constant': /\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/
+});
+
+delete Prism.languages.c['class-name'];
+delete Prism.languages.c['boolean'];
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-clike.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-clike.js
new file mode 100644 (file)
index 0000000..6a56b59
--- /dev/null
@@ -0,0 +1,33 @@
+define(["prism/prism"], function () {
+Prism.languages.clike = {
+       'comment': [
+               {
+                       pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\:])\/\/.*/,
+                       lookbehind: true,
+                       greedy: true
+               }
+       ],
+       'string': {
+               pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'class-name': {
+               pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,
+               lookbehind: true,
+               inside: {
+                       punctuation: /[.\\]/
+               }
+       },
+       'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
+       'boolean': /\b(?:true|false)\b/,
+       'function': /\w+(?=\()/,
+       'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
+       'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
+       'punctuation': /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-clojure.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-clojure.js
new file mode 100644 (file)
index 0000000..51d5fba
--- /dev/null
@@ -0,0 +1,16 @@
+define(["prism/prism"], function () {
+// Copied from https://github.com/jeluard/prism-clojure
+Prism.languages.clojure = {
+       comment: /;+.*/,
+       string: /"(?:\\.|[^\\"\r\n])*"/,
+       operator: /(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i, //used for symbols and keywords
+       keyword: {
+               pattern: /([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,
+               lookbehind: true
+       },
+       boolean: /\b(?:true|false|nil)\b/,
+       number: /\b[0-9A-Fa-f]+\b/,
+       punctuation: /[{}\[\](),]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-coffeescript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-coffeescript.js
new file mode 100644 (file)
index 0000000..f80cf8a
--- /dev/null
@@ -0,0 +1,93 @@
+define(["prism/prism","prism/components/prism-javascript"], function () {
+(function(Prism) {
+
+// Ignore comments starting with { to privilege string interpolation highlighting
+var comment = /#(?!\{).+/,
+    interpolation = {
+       pattern: /#\{[^}]+\}/,
+       alias: 'variable'
+    };
+
+Prism.languages.coffeescript = Prism.languages.extend('javascript', {
+       'comment': comment,
+       'string': [
+
+               // Strings are multiline
+               {
+                       pattern: /'(?:\\[\s\S]|[^\\'])*'/,
+                       greedy: true
+               },
+
+               {
+                       // Strings are multiline
+                       pattern: /"(?:\\[\s\S]|[^\\"])*"/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               }
+       ],
+       'keyword': /\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,
+       'class-member': {
+               pattern: /@(?!\d)\w+/,
+               alias: 'variable'
+       }
+});
+
+Prism.languages.insertBefore('coffeescript', 'comment', {
+       'multiline-comment': {
+               pattern: /###[\s\S]+?###/,
+               alias: 'comment'
+       },
+
+       // Block regexp can contain comments and interpolation
+       'block-regex': {
+               pattern: /\/{3}[\s\S]*?\/{3}/,
+               alias: 'regex',
+               inside: {
+                       'comment': comment,
+                       'interpolation': interpolation
+               }
+       }
+});
+
+Prism.languages.insertBefore('coffeescript', 'string', {
+       'inline-javascript': {
+               pattern: /`(?:\\[\s\S]|[^\\`])*`/,
+               inside: {
+                       'delimiter': {
+                               pattern: /^`|`$/,
+                               alias: 'punctuation'
+                       },
+                       rest: Prism.languages.javascript
+               }
+       },
+
+       // Block strings
+       'multiline-string': [
+               {
+                       pattern: /'''[\s\S]*?'''/,
+                       greedy: true,
+                       alias: 'string'
+               },
+               {
+                       pattern: /"""[\s\S]*?"""/,
+                       greedy: true,
+                       alias: 'string',
+                       inside: {
+                               interpolation: interpolation
+                       }
+               }
+       ]
+
+});
+
+Prism.languages.insertBefore('coffeescript', 'keyword', {
+       // Object property
+       'property': /(?!\d)\w+(?=\s*:(?!:))/
+});
+
+delete Prism.languages.coffeescript['template-string'];
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-cpp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-cpp.js
new file mode 100644 (file)
index 0000000..611ff8f
--- /dev/null
@@ -0,0 +1,23 @@
+define(["prism/prism","prism/components/prism-c"], function () {
+Prism.languages.cpp = Prism.languages.extend('c', {
+       'keyword': /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,
+       'boolean': /\b(?:true|false)\b/,
+       'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/
+});
+
+Prism.languages.insertBefore('cpp', 'keyword', {
+       'class-name': {
+               pattern: /(class\s+)\w+/i,
+               lookbehind: true
+       }
+});
+
+Prism.languages.insertBefore('cpp', 'string', {
+       'raw-string': {
+               pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,
+               alias: 'string',
+               greedy: true
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-crystal.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-crystal.js
new file mode 100644 (file)
index 0000000..e9acf4d
--- /dev/null
@@ -0,0 +1,54 @@
+define(["prism/prism","prism/components/prism-ruby"], function () {
+(function(Prism) {
+       Prism.languages.crystal = Prism.languages.extend('ruby', {
+               keyword: [
+                       /\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,
+                       {
+                               pattern: /(\.\s*)(?:is_a|responds_to)\?/,
+                               lookbehind: true
+                       }
+               ],
+
+               number: /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/
+       });
+
+       Prism.languages.insertBefore('crystal', 'string', {
+               attribute: {
+                       pattern: /@\[.+?\]/,
+                       alias: 'attr-name',
+                       inside: {
+                               delimiter: {
+                                       pattern: /^@\[|\]$/,
+                                       alias: 'tag'
+                               },
+                               rest: Prism.languages.crystal
+                       }
+               },
+
+               expansion: [
+               {
+                       pattern: /\{\{.+?\}\}/,
+                       inside: {
+                               delimiter: {
+                                       pattern: /^\{\{|\}\}$/,
+                                       alias: 'tag'
+                               },
+                               rest: Prism.languages.crystal
+                       }
+               },
+               {
+                       pattern: /\{%.+?%\}/,
+                       inside: {
+                               delimiter: {
+                                       pattern: /^\{%|%\}$/,
+                                       alias: 'tag'
+                               },
+                               rest: Prism.languages.crystal
+                       }
+               }
+               ]
+       });
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-csharp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-csharp.js
new file mode 100644 (file)
index 0000000..ebdb34d
--- /dev/null
@@ -0,0 +1,81 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.csharp = Prism.languages.extend('clike', {
+       'keyword': /\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,
+       'string': [
+               {
+                       pattern: /@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,
+                       greedy: true
+               },
+               {
+                       pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,
+                       greedy: true
+               }
+       ],
+       'class-name': [
+               {
+                       // (Foo bar, Bar baz)
+                       pattern: /\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,
+                       inside: {
+                               punctuation: /\./
+                       }
+               },
+               {
+                       // [Foo]
+                       pattern: /(\[)[A-Z]\w*(?:\.\w+)*\b/,
+                       lookbehind: true,
+                       inside: {
+                               punctuation: /\./
+                       }
+               },
+               {
+                       // class Foo : Bar
+                       pattern: /(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,
+                       lookbehind: true,
+                       inside: {
+                               punctuation: /\./
+                       }
+               },
+               {
+                       // class Foo
+                       pattern: /((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,
+                       lookbehind: true,
+                       inside: {
+                               punctuation: /\./
+                       }
+               }
+       ],
+       'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i
+});
+
+Prism.languages.insertBefore('csharp', 'class-name', {
+       'generic-method': {
+               pattern: /\w+\s*<[^>\r\n]+?>\s*(?=\()/,
+               inside: {
+                       function: /^\w+/,
+                       'class-name': {
+                               pattern: /\b[A-Z]\w*(?:\.\w+)*\b/,
+                               inside: {
+                                       punctuation: /\./
+                               }
+                       },
+                       keyword: Prism.languages.csharp.keyword,
+                       punctuation: /[<>(),.:]/
+               }
+       },
+       'preprocessor': {
+               pattern: /(^\s*)#.*/m,
+               lookbehind: true,
+               alias: 'property',
+               inside: {
+                       // highlight preprocessor directives as keywords
+                       'directive': {
+                               pattern: /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,
+                               lookbehind: true,
+                               alias: 'keyword'
+                       }
+               }
+       }
+});
+
+Prism.languages.dotnet = Prism.languages.csharp;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-csp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-csp.js
new file mode 100644 (file)
index 0000000..89b78d7
--- /dev/null
@@ -0,0 +1,27 @@
+define(["prism/prism"], function () {
+/**
+ * Original by Scott Helme.
+ *
+ * Reference: https://scotthelme.co.uk/csp-cheat-sheet/
+ *
+ * Supports the following:
+ *  - CSP Level 1
+ *  - CSP Level 2
+ *  - CSP Level 3
+ */
+
+Prism.languages.csp = {
+       'directive':  {
+               pattern: /\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,
+               alias: 'keyword'
+       },
+       'safe': {
+               pattern: /'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\d+=/]+)'/,
+               alias: 'selector'
+       },
+       'unsafe': {
+               pattern: /(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\*)/,
+               alias: 'function'
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-css-extras.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-css-extras.js
new file mode 100644 (file)
index 0000000..f322469
--- /dev/null
@@ -0,0 +1,18 @@
+define(["prism/prism","prism/components/prism-css"], function () {
+Prism.languages.css.selector = {
+       pattern: /[^{}\s][^{}]*(?=\s*\{)/,
+       inside: {
+               'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,
+               'pseudo-class': /:[-\w]+(?:\(.*\))?/,
+               'class': /\.[-:.\w]+/,
+               'id': /#[-:.\w]+/,
+               'attribute': /\[[^\]]+\]/
+       }
+};
+
+Prism.languages.insertBefore('css', 'function', {
+       'hexcode': /#[\da-f]{3,8}/i,
+       'entity': /\\[\da-f]{1,8}/i,
+       'number': /[\d%.]+/
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-css.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-css.js
new file mode 100644 (file)
index 0000000..6afd332
--- /dev/null
@@ -0,0 +1,54 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages.css = {
+       'comment': /\/\*[\s\S]*?\*\//,
+       'atrule': {
+               pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i,
+               inside: {
+                       'rule': /@[\w-]+/
+                       // See rest below
+               }
+       },
+       'url': /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,
+       'selector': /[^{}\s][^{};]*?(?=\s*\{)/,
+       'string': {
+               pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,
+       'important': /\B!important\b/i,
+       'function': /[-a-z0-9]+(?=\()/i,
+       'punctuation': /[(){};:]/
+};
+
+Prism.languages.css['atrule'].inside.rest = Prism.languages.css;
+
+if (Prism.languages.markup) {
+       Prism.languages.insertBefore('markup', 'tag', {
+               'style': {
+                       pattern: /(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,
+                       lookbehind: true,
+                       inside: Prism.languages.css,
+                       alias: 'language-css',
+                       greedy: true
+               }
+       });
+
+       Prism.languages.insertBefore('inside', 'attr-value', {
+               'style-attr': {
+                       pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,
+                       inside: {
+                               'attr-name': {
+                                       pattern: /^\s*style/i,
+                                       inside: Prism.languages.markup.tag.inside
+                               },
+                               'punctuation': /^\s*=\s*['"]|['"]\s*$/,
+                               'attr-value': {
+                                       pattern: /.+/i,
+                                       inside: Prism.languages.css
+                               }
+                       },
+                       alias: 'language-css'
+               }
+       }, Prism.languages.markup.tag);
+}
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-d.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-d.js
new file mode 100644 (file)
index 0000000..1db3a0e
--- /dev/null
@@ -0,0 +1,66 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.d = Prism.languages.extend('clike', {
+       'string': [
+               // r"", x""
+               /\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/,
+               // q"[]", q"()", q"<>", q"{}"
+               /\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/,
+               // q"IDENT
+               // ...
+               // IDENT"
+               /\bq"([_a-zA-Z][_a-zA-Z\d]*)(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\1"/,
+               // q"//", q"||", etc.
+               /\bq"(.)[\s\S]*?\1"/,
+               // Characters
+               /'(?:\\'|\\?[^']+)'/,
+
+               /(["`])(?:\\[\s\S]|(?!\1)[^\\])*\1[cwd]?/
+       ],
+
+       'number': [
+               // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator
+               // Hexadecimal numbers must be handled separately to avoid problems with exponent "e"
+               /\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]*/i,
+               {
+                       pattern: /((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]*/i,
+                       lookbehind: true
+               }
+       ],
+
+       // In order: $, keywords and special tokens, globally defined symbols
+       'keyword': /\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,
+       'operator': /\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/
+});
+
+
+Prism.languages.d.comment = [
+       // Shebang
+       /^\s*#!.+/,
+       // /+ +/
+       {
+               // Allow one level of nesting
+               pattern: /(^|[^\\])\/\+(?:\/\+[\s\S]*?\+\/|[\s\S])*?\+\//,
+               lookbehind: true
+       }
+].concat(Prism.languages.d.comment);
+
+Prism.languages.insertBefore('d', 'comment', {
+       'token-string': {
+               // Allow one level of nesting
+               pattern: /\bq\{(?:\{[^}]*\}|[^}])*\}/,
+               alias: 'string'
+       }
+});
+
+Prism.languages.insertBefore('d', 'keyword', {
+       'property': /\B@\w*/
+});
+
+Prism.languages.insertBefore('d', 'function', {
+       'register': {
+               // Iasm registers
+               pattern: /\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,
+               alias: 'variable'
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-dart.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-dart.js
new file mode 100644 (file)
index 0000000..ca296f9
--- /dev/null
@@ -0,0 +1,26 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.dart = Prism.languages.extend('clike', {
+       'string': [
+               {
+                       pattern: /r?("""|''')[\s\S]*?\1/,
+                       greedy: true
+               },
+               {
+                       pattern: /r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+                       greedy: true
+               }
+       ],
+       'keyword': [
+               /\b(?:async|sync|yield)\*/,
+               /\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/
+       ],
+       'operator': /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/
+});
+
+Prism.languages.insertBefore('dart','function',{
+       'metadata': {
+               pattern: /@\w+/,
+               alias: 'symbol'
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-diff.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-diff.js
new file mode 100644 (file)
index 0000000..d997e08
--- /dev/null
@@ -0,0 +1,23 @@
+define(["prism/prism"], function () {
+Prism.languages.diff = {
+       'coord': [
+               // Match all kinds of coord lines (prefixed by "+++", "---" or "***").
+               /^(?:\*{3}|-{3}|\+{3}).*$/m,
+               // Match "@@ ... @@" coord lines in unified diff.
+               /^@@.*@@$/m,
+               // Match coord lines in normal diff (starts with a number).
+               /^\d+.*$/m
+       ],
+
+       // Match inserted and deleted lines. Support both +/- and >/< styles.
+       'deleted': /^[-<].*$/m,
+       'inserted': /^[+>].*$/m,
+
+       // Match "different" lines (prefixed with "!") in context diff.
+       'diff': {
+               'pattern': /^!(?!!).+$/m,
+               'alias': 'important'
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-django.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-django.js
new file mode 100644 (file)
index 0000000..79c6ee0
--- /dev/null
@@ -0,0 +1,44 @@
+define(["prism/prism","prism/components/prism-markup","prism/components/prism-css","prism/components/prism-javascript"], function () {
+// Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.
+// Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.
+
+var _django_template = {
+       'property': {
+               pattern: /(?:{{|{%)[\s\S]*?(?:%}|}})/g,
+               greedy: true,
+               inside: {
+                       'string': {
+                               pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+                               greedy: true
+                       },
+                       'keyword': /\b(?:\||load|verbatim|widthratio|ssi|firstof|for|url|ifchanged|csrf_token|lorem|ifnotequal|autoescape|now|templatetag|debug|cycle|ifequal|regroup|comment|filter|endfilter|if|spaceless|with|extends|block|include|else|empty|endif|endfor|as|endblock|endautoescape|endverbatim|trans|endtrans|[Tt]rue|[Ff]alse|[Nn]one|in|is|static|macro|endmacro|call|endcall|set|endset|raw|endraw)\b/,
+                       'operator' : /[-+=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,
+                       'function': /\b(?:_|abs|add|addslashes|attr|batch|callable|capfirst|capitalize|center|count|cut|d|date|default|default_if_none|defined|dictsort|dictsortreversed|divisibleby|e|equalto|escape|escaped|escapejs|even|filesizeformat|first|float|floatformat|force_escape|forceescape|format|get_digit|groupby|indent|int|iriencode|iterable|join|last|length|length_is|linebreaks|linebreaksbr|linenumbers|list|ljust|lower|make_list|map|mapping|number|odd|phone2numeric|pluralize|pprint|random|reject|rejectattr|removetags|replace|reverse|rjust|round|safe|safeseq|sameas|select|selectattr|sequence|slice|slugify|sort|string|stringformat|striptags|sum|time|timesince|timeuntil|title|trim|truncate|truncatechars|truncatechars_html|truncatewords|truncatewords_html|undefined|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|xmlattr|yesno)\b/,
+                       'important': /\b-?\d+(?:\.\d+)?\b/,
+                       'variable': /\b\w+?\b/,
+                       'punctuation' : /[[\];(),.:]/
+               }
+       }
+};
+
+Prism.languages.django = Prism.languages.extend('markup', {'comment': /(?:<!--|{#)[\s\S]*?(?:#}|-->)/});
+// Updated html tag pattern to allow template tags inside html tags
+Prism.languages.django.tag.pattern = /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^>=]+))?)*\s*\/?>/i;
+Prism.languages.insertBefore('django', 'entity', _django_template);
+Prism.languages.insertBefore('inside', 'tag', _django_template, Prism.languages.django.tag);
+
+if (Prism.languages.javascript) {
+       // Combine js code and template tags painting inside <script> blocks
+       Prism.languages.insertBefore('inside', 'string', _django_template, Prism.languages.django.script);
+       Prism.languages.django.script.inside.string.inside = _django_template;
+}
+if (Prism.languages.css) {
+       // Combine css code and template tags painting inside <style> blocks
+       Prism.languages.insertBefore('inside', 'atrule', {'tag': _django_template.property}, Prism.languages.django.style);
+       Prism.languages.django.style.inside.string.inside = _django_template;
+}
+
+// Add an Jinja2 alias
+Prism.languages.jinja2 = Prism.languages.django;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-docker.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-docker.js
new file mode 100644 (file)
index 0000000..5e7e7d9
--- /dev/null
@@ -0,0 +1,14 @@
+define(["prism/prism"], function () {
+Prism.languages.docker = {
+       'keyword': {
+               pattern: /(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/mi,
+               lookbehind: true
+       },
+       'string': /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,
+       'comment': /#.*/,
+       'punctuation': /---|\.\.\.|[:[\]{}\-,|>?]/
+};
+
+Prism.languages.dockerfile = Prism.languages.docker;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-eiffel.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-eiffel.js
new file mode 100644 (file)
index 0000000..cc2e560
--- /dev/null
@@ -0,0 +1,40 @@
+define(["prism/prism"], function () {
+Prism.languages.eiffel = {
+       'comment': /--.*/,
+       'string': [
+               // Aligned-verbatim-strings
+               {
+                       pattern: /"([^[]*)\[[\s\S]*?\]\1"/,
+                       greedy: true
+               },
+               // Non-aligned-verbatim-strings
+               {
+                       pattern: /"([^{]*)\{[\s\S]*?\}\1"/,
+                       greedy: true
+               },
+               // Single-line string
+               {
+                       pattern: /"(?:%\s+%|%.|[^%"\r\n])*"/,
+                       greedy: true
+               }
+       ],
+       // normal char | special char | char code
+       'char': /'(?:%.|[^%'\r\n])+'/,
+       'keyword': /\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,
+       'boolean': /\b(?:True|False)\b/i,
+       // Convention: class-names are always all upper-case characters
+       'class-name': {
+               'pattern': /\b[A-Z][\dA-Z_]*\b/,
+               'alias': 'builtin'
+       },
+       'number': [
+               // hexa | octal | bin
+               /\b0[xcb][\da-f](?:_*[\da-f])*\b/i,
+               // Decimal
+               /(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/i
+       ],
+       'punctuation': /:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,
+       'operator': /\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-elixir.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-elixir.js
new file mode 100644 (file)
index 0000000..e3ca692
--- /dev/null
@@ -0,0 +1,96 @@
+define(["prism/prism"], function () {
+Prism.languages.elixir = {
+       'comment': {
+               pattern: /#.*/m,
+               lookbehind: true
+       },
+       // ~r"""foo""" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r"foo", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>
+       'regex': {
+               pattern: /~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,
+               greedy: true
+       },
+       'string': [
+               {
+                       // ~s"""foo""" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s"foo", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>
+                       pattern: /~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,
+                       greedy: true,
+                       inside: {
+                               // See interpolation below
+                       }
+               },
+               {
+                       pattern: /("""|''')[\s\S]*?\1/,
+                       greedy: true,
+                       inside: {
+                               // See interpolation below
+                       }
+               },
+               {
+                       // Multi-line strings are allowed
+                       pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+                       greedy: true,
+                       inside: {
+                               // See interpolation below
+                       }
+               }
+       ],
+       'atom': {
+               // Look-behind prevents bad highlighting of the :: operator
+               pattern: /(^|[^:]):\w+/,
+               lookbehind: true,
+               alias: 'symbol'
+       },
+       // Look-ahead prevents bad highlighting of the :: operator
+       'attr-name': /\w+:(?!:)/,
+       'capture': {
+               // Look-behind prevents bad highlighting of the && operator
+               pattern: /(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/,
+               lookbehind: true,
+               alias: 'function'
+       },
+       'argument': {
+               // Look-behind prevents bad highlighting of the && operator
+               pattern: /(^|[^&])&\d+/,
+               lookbehind: true,
+               alias: 'variable'
+       },
+       'attribute': {
+               pattern: /@\w+/,
+               alias: 'variable'
+       },
+       'number': /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,
+       'keyword': /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/,
+       'boolean': /\b(?:true|false|nil)\b/,
+       'operator': [
+               /\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,
+               {
+                       // We don't want to match <<
+                       pattern: /([^<])<(?!<)/,
+                       lookbehind: true
+               },
+               {
+                       // We don't want to match >>
+                       pattern: /([^>])>(?!>)/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /<<|>>|[.,%\[\]{}()]/
+};
+
+Prism.languages.elixir.string.forEach(function(o) {
+       o.inside = {
+               'interpolation': {
+                       pattern: /#\{[^}]+\}/,
+                       inside: {
+                               'delimiter': {
+                                       pattern: /^#\{|\}$/,
+                                       alias: 'punctuation'
+                               },
+                               rest: Prism.languages.elixir
+                       }
+               }
+       };
+});
+
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-elm.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-elm.js
new file mode 100644 (file)
index 0000000..d0360d8
--- /dev/null
@@ -0,0 +1,47 @@
+define(["prism/prism"], function () {
+Prism.languages.elm = {
+       comment: /--.*|{-[\s\S]*?-}/,
+       char: {
+               pattern: /'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,
+               greedy: true
+       },
+       string: [
+               {
+                       // Multiline strings are wrapped in triple ". Quotes may appear unescaped.
+                       pattern: /"""[\s\S]*?"""/,
+                       greedy: true
+               },
+               {
+                       pattern: /"(?:[^\\"\r\n]|\\(?:[abfnrtv\\"]|\d+|x[0-9a-fA-F]+))*"/,
+                       greedy: true
+               }
+       ],
+       import_statement: {
+               // The imported or hidden names are not included in this import
+               // statement. This is because we want to highlight those exactly like
+               // we do for the names in the program.
+               pattern: /^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+([A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,
+               inside: {
+                       keyword: /\b(?:import|as|exposing)\b/
+               }
+       },
+       keyword: /\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,
+       // These are builtin variables only. Constructors are highlighted later as a constant.
+       builtin: /\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,
+       // decimal integers and floating point numbers | hexadecimal integers
+       number: /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,
+       // Most of this is needed because of the meaning of a single '.'.
+       // If it stands alone freely, it is the function composition.
+       // It may also be a separator between a module name and an identifier => no
+       // operator. If it comes together with other special characters it is an
+       // operator too.
+       // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!
+       // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ
+       operator: /\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,
+       // In Elm, nearly everything is a variable, do not highlight these.
+       hvariable: /\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,
+       constant: /\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,
+       punctuation: /[{}[\]|(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-erb.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-erb.js
new file mode 100644 (file)
index 0000000..4dcb924
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism","prism/components/prism-ruby","prism/components/prism-markup-templating"], function () {
+(function (Prism) {
+
+       Prism.languages.erb = Prism.languages.extend('ruby', {});
+       Prism.languages.insertBefore('erb', 'comment', {
+               'delimiter': {
+                       pattern: /^<%=?|%>$/,
+                       alias: 'punctuation'
+               }
+       });
+
+       Prism.hooks.add('before-tokenize', function(env) {
+               var erbPattern = /<%=?[\s\S]+?%>/g;
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'erb', erbPattern);
+       });
+
+       Prism.hooks.add('after-tokenize', function(env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb');
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-erlang.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-erlang.js
new file mode 100644 (file)
index 0000000..2f28f9b
--- /dev/null
@@ -0,0 +1,46 @@
+define(["prism/prism"], function () {
+Prism.languages.erlang = {
+       'comment': /%.+/,
+       'string': {
+               pattern: /"(?:\\.|[^\\"\r\n])*"/,
+               greedy: true
+       },
+       'quoted-function': {
+               pattern: /'(?:\\.|[^\\'\r\n])+'(?=\()/,
+               alias: 'function'
+       },
+       'quoted-atom': {
+               pattern: /'(?:\\.|[^\\'\r\n])+'/,
+               alias: 'atom'
+       },
+       'boolean': /\b(?:true|false)\b/,
+       'keyword': /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,
+       'number': [
+               /\$\\?./,
+               /\d+#[a-z0-9]+/i,
+               /(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i
+       ],
+       'function': /\b[a-z][\w@]*(?=\()/,
+       'variable': {
+               // Look-behind is used to prevent wrong highlighting of atoms containing "@"
+               pattern: /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,
+               lookbehind: true
+       },
+       'operator': [
+               /[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,
+               {
+                       // We don't want to match <<
+                       pattern: /(^|[^<])<(?!<)/,
+                       lookbehind: true
+               },
+               {
+                       // We don't want to match >>
+                       pattern: /(^|[^>])>(?!>)/,
+                       lookbehind: true
+               }
+       ],
+       'atom': /\b[a-z][\w@]*/,
+       'punctuation': /[()[\]{}:;,.#|]|<<|>>/
+
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-flow.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-flow.js
new file mode 100644 (file)
index 0000000..92d1273
--- /dev/null
@@ -0,0 +1,36 @@
+define(["prism/prism","prism/components/prism-javascript"], function () {
+(function (Prism) {
+       Prism.languages.flow = Prism.languages.extend('javascript', {});
+
+       Prism.languages.insertBefore('flow', 'keyword', {
+               'type': [
+                       {
+                               pattern: /\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,
+                               alias: 'tag'
+                       }
+               ]
+       });
+       Prism.languages.flow['function-variable'].pattern = /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i;
+
+       Prism.languages.insertBefore('flow', 'operator', {
+               'flow-punctuation': {
+                       pattern: /\{\||\|\}/,
+                       alias: 'punctuation'
+               }
+       });
+
+       if (Prism.util.type(Prism.languages.flow.keyword) !== 'Array') {
+               Prism.languages.flow.keyword = [Prism.languages.flow.keyword];
+       }
+       Prism.languages.flow.keyword.unshift(
+               {
+                       pattern: /(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,
+                       lookbehind: true
+               }
+       );
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-fortran.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-fortran.js
new file mode 100644 (file)
index 0000000..5ebd63e
--- /dev/null
@@ -0,0 +1,42 @@
+define(["prism/prism"], function () {
+Prism.languages.fortran = {
+       'quoted-number': {
+               pattern: /[BOZ](['"])[A-F0-9]+\1/i,
+               alias: 'number'
+       },
+       'string': {
+               pattern: /(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,
+               inside: {
+                       'comment': {
+                               pattern: /(&(?:\r\n?|\n)\s*)!.*/,
+                               lookbehind: true
+                       }
+               }
+       },
+       'comment': {
+               pattern: /!.*/,
+               greedy: true
+       },
+       'boolean': /\.(?:TRUE|FALSE)\.(?:_\w+)?/i,
+       'number': /(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,
+       'keyword': [
+               // Types
+               /\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,
+               // END statements
+               /\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,
+               // Statements
+               /\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,
+               // Others
+               /\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i
+       ],
+       'operator': [
+               /\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,
+               {
+                       // Use lookbehind to prevent confusion with (/ /)
+                       pattern: /(^|(?!\().)\/(?!\))/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /\(\/|\/\)|[(),;:&]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-fsharp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-fsharp.js
new file mode 100644 (file)
index 0000000..fbf8081
--- /dev/null
@@ -0,0 +1,39 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.fsharp = Prism.languages.extend('clike', {
+       'comment': [
+               {
+                       pattern: /(^|[^\\])\(\*[\s\S]*?\*\)/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\:])\/\/.*/,
+                       lookbehind: true
+               }
+       ],
+       'keyword': /\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,
+       'string': {
+               pattern: /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|"(?:\\[\s\S]|[^\\"])*")B?|'(?:[^\\']|\\.)'B?/,
+               greedy: true
+       },
+       'number': [
+               /\b0x[\da-fA-F]+(?:un|lf|LF)?\b/,
+               /\b0b[01]+(?:y|uy)?\b/,
+               /(?:\b\d+\.?\d*|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,
+               /\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/
+       ]
+});
+Prism.languages.insertBefore('fsharp', 'keyword', {
+       'preprocessor': {
+               pattern: /^[^\r\n\S]*#.*/m,
+               alias: 'property',
+               inside: {
+                       'directive': {
+                               pattern: /(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/,
+                               lookbehind: true,
+                               alias: 'keyword'
+                       }
+               }
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-gedcom.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-gedcom.js
new file mode 100644 (file)
index 0000000..5c48073
--- /dev/null
@@ -0,0 +1,30 @@
+define(["prism/prism"], function () {
+Prism.languages.gedcom = {
+       'line-value': {
+               // Preceded by level, optional pointer, and tag
+               pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ +).+/m,
+               lookbehind: true,
+               inside: {
+                       'pointer': {
+                               pattern: /^@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,
+                               alias: 'variable'
+                       }
+               }
+       },
+       'tag': {
+               // Preceded by level and optional pointer
+               pattern: /(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,
+               lookbehind: true,
+               alias: 'string'
+       },
+       'level': {
+               pattern: /(^\s*)\d+/m,
+               lookbehind: true,
+               alias: 'number'
+       },
+       'pointer': {
+               pattern: /@\w[\w!"$%&'()*+,\-./:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,
+               alias: 'variable'
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-gherkin.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-gherkin.js
new file mode 100644 (file)
index 0000000..d92163c
--- /dev/null
@@ -0,0 +1,82 @@
+define(["prism/prism"], function () {
+Prism.languages.gherkin = {
+       'pystring': {
+               pattern: /("""|''')[\s\S]+?\1/,
+               alias: 'string'
+       },
+       'comment': {
+               pattern: /((?:^|\r?\n|\r)[ \t]*)#.*/,
+               lookbehind: true
+       },
+       'tag': {
+               pattern: /((?:^|\r?\n|\r)[ \t]*)@\S*/,
+               lookbehind: true
+       },
+       'feature': {
+               pattern: /((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:]+(?:\r?\n|\r|$))*/,
+               lookbehind: true,
+               inside: {
+                       'important': {
+                               pattern: /(:)[^\r\n]+/,
+                               lookbehind: true
+                       },
+                       keyword: /[^:\r\n]+:/
+               }
+       },
+       'scenario': {
+               pattern: /((?:^|\r?\n|\r)[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|ghantoH|Grundlage|Hannergrond|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan senaryo|Plan Senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/,
+               lookbehind: true,
+               inside: {
+                       'important': {
+                               pattern: /(:)[^\r\n]*/,
+                               lookbehind: true
+                       },
+                       keyword: /[^:\r\n]+:/
+               }
+       },
+       'table-body': {
+               // Look-behind is used to skip the table head, which has the same format as any table row
+               pattern: /((?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*)+/,
+               lookbehind: true,
+               inside: {
+                       'outline': {
+                               pattern: /<[^>]+?>/,
+                               alias: 'variable'
+                       },
+                       'td': {
+                               pattern: /\s*[^\s|][^|]*/,
+                               alias: 'string'
+                       },
+                       'punctuation': /\|/
+               }
+       },
+       'table-head': {
+               pattern: /(?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*/,
+               inside: {
+                       'th': {
+                               pattern: /\s*[^\s|][^|]*/,
+                               alias: 'variable'
+                       },
+                       'punctuation': /\|/
+               }
+       },
+       'atrule': {
+               pattern: /((?:\r?\n|\r)[ \t]+)(?:'ach|'a|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cando|Cand|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|Entonces|En|Epi|E|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|ugeholl|Und|Un|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t]+)/,
+               lookbehind: true
+       },
+       'string': {
+               pattern: /"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,
+               inside: {
+                       'outline': {
+                               pattern: /<[^>]+?>/,
+                               alias: 'variable'
+                       }
+               }
+       },
+       'outline': {
+               pattern: /<[^>]+?>/,
+               alias: 'variable'
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-git.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-git.js
new file mode 100644 (file)
index 0000000..b344ace
--- /dev/null
@@ -0,0 +1,71 @@
+define(["prism/prism"], function () {
+Prism.languages.git = {
+       /*
+        * A simple one line comment like in a git status command
+        * For instance:
+        * $ git status
+        * # On branch infinite-scroll
+        * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,
+        * # and have 1 and 2 different commits each, respectively.
+        * nothing to commit (working directory clean)
+        */
+       'comment': /^#.*/m,
+
+       /*
+        * Regexp to match the changed lines in a git diff output. Check the example below.
+        */
+       'deleted': /^[-–].*/m,
+       'inserted': /^\+.*/m,
+
+       /*
+        * a string (double and simple quote)
+        */
+       'string': /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,
+
+       /*
+        * a git command. It starts with a random prompt finishing by a $, then "git" then some other parameters
+        * For instance:
+        * $ git add file.txt
+        */
+       'command': {
+               pattern: /^.*\$ git .*$/m,
+               inside: {
+                       /*
+                        * A git command can contain a parameter starting by a single or a double dash followed by a string
+                        * For instance:
+                        * $ git diff --cached
+                        * $ git log -p
+                        */
+                       'parameter': /\s--?\w+/m
+               }
+       },
+
+       /*
+        * Coordinates displayed in a git diff command
+        * For instance:
+        * $ git diff
+        * diff --git file.txt file.txt
+        * index 6214953..1d54a52 100644
+        * --- file.txt
+        * +++ file.txt
+        * @@ -1 +1,2 @@
+        * -Here's my tetx file
+        * +Here's my text file
+        * +And this is the second line
+        */
+       'coord': /^@@.*@@$/m,
+
+       /*
+        * Match a "commit [SHA1]" line in a git log output.
+        * For instance:
+        * $ git log
+        * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09
+        * Author: lgiraudel
+        * Date:   Mon Feb 17 11:18:34 2014 +0100
+        *
+        *     Add of a new line
+        */
+       'commit_sha1': /^commit \w{40}$/m
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-glsl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-glsl.js
new file mode 100644 (file)
index 0000000..c4ab498
--- /dev/null
@@ -0,0 +1,18 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.glsl = Prism.languages.extend('clike', {
+       'comment': [
+               /\/\*[\s\S]*?\*\//,
+               /\/\/(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/
+       ],
+       'number': /(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,
+       'keyword': /\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/
+});
+
+Prism.languages.insertBefore('glsl', 'comment', {
+       'preprocessor': {
+               pattern: /(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,
+               lookbehind: true,
+               alias: 'builtin'
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-gml.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-gml.js
new file mode 100644 (file)
index 0000000..f41a525
--- /dev/null
@@ -0,0 +1,10 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.gamemakerlanguage = Prism.languages.gml = Prism.languages.extend('clike', {
+       'number': /(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,
+       'keyword': /\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\b/,
+       'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at|xor|not)\b/,
+       'constant': /\b(self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\d|numpad\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|spritespeed_framesper(?:second|gameframe)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(obj|scr|spr|rm)\w+)\b/,
+       'variable': /\b(x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\d)|argument|global|local|self|other)\b/
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-go.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-go.js
new file mode 100644 (file)
index 0000000..d730923
--- /dev/null
@@ -0,0 +1,15 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.go = Prism.languages.extend('clike', {
+       'keyword': /\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,
+       'builtin': /\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,
+       'boolean': /\b(?:_|iota|nil|true|false)\b/,
+       'operator': /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,
+       'number': /(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,
+       'string': {
+               pattern: /(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,
+               greedy: true
+       }
+});
+delete Prism.languages.go['class-name'];
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-graphql.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-graphql.js
new file mode 100644 (file)
index 0000000..3a2a8b4
--- /dev/null
@@ -0,0 +1,26 @@
+define(["prism/prism"], function () {
+Prism.languages.graphql = {
+       'comment': /#.*/,
+       'string': {
+               pattern: /"(?:\\.|[^\\"\r\n])*"/,
+               greedy: true
+       },
+       'number': /(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,
+       'boolean': /\b(?:true|false)\b/,
+       'variable': /\$[a-z_]\w*/i,
+       'directive': {
+               pattern: /@[a-z_]\w*/i,
+               alias: 'function'
+       },
+       'attr-name': /[a-z_]\w*(?=\s*:)/i,
+       'keyword': [
+               {
+                       pattern: /(fragment\s+(?!on)[a-z_]\w*\s+|\.{3}\s*)on\b/,
+                       lookbehind: true
+               },
+               /\b(?:query|fragment|mutation)\b/
+       ],
+       'operator': /!|=|\.{3}/,
+       'punctuation': /[!(){}\[\]:=,]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-groovy.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-groovy.js
new file mode 100644 (file)
index 0000000..97bfb6e
--- /dev/null
@@ -0,0 +1,68 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.groovy = Prism.languages.extend('clike', {
+       'keyword': /\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,
+       'string': [
+               {
+                       pattern: /("""|''')[\s\S]*?\1|(?:\$\/)(?:\$\/\$|[\s\S])*?\/\$/,
+                       greedy: true
+               },
+               {
+                       pattern: /(["'\/])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+                       greedy: true
+               }
+       ],
+       'number': /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,
+       'operator': {
+               pattern: /(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
+               lookbehind: true
+       },
+       'punctuation': /\.+|[{}[\];(),:$]/
+});
+
+Prism.languages.insertBefore('groovy', 'string', {
+       'shebang': {
+               pattern: /#!.+/,
+               alias: 'comment'
+       }
+});
+
+Prism.languages.insertBefore('groovy', 'punctuation', {
+       'spock-block': /\b(?:setup|given|when|then|and|cleanup|expect|where):/
+});
+
+Prism.languages.insertBefore('groovy', 'function', {
+       'annotation': {
+               alias: 'punctuation',
+               pattern: /(^|[^.])@\w+/,
+               lookbehind: true
+       }
+});
+
+// Handle string interpolation
+Prism.hooks.add('wrap', function(env) {
+       if (env.language === 'groovy' && env.type === 'string') {
+               var delimiter = env.content[0];
+
+               if (delimiter != "'") {
+                       var pattern = /([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;
+                       if (delimiter === '$') {
+                               pattern = /([^\$])(?:\$(?:\{.*?\}|[\w.]+))/;
+                       }
+
+                       // To prevent double HTML-encoding we have to decode env.content first
+                       env.content = env.content.replace(/&lt;/g, '<').replace(/&amp;/g, '&');
+
+                       env.content = Prism.highlight(env.content, {
+                               'expression': {
+                                       pattern: pattern,
+                                       lookbehind: true,
+                                       inside: Prism.languages.groovy
+                               }
+                       });
+
+                       env.classes.push(delimiter === '/' ? 'regex' : 'gstring');
+               }
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-haml.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-haml.js
new file mode 100644 (file)
index 0000000..d1930d9
--- /dev/null
@@ -0,0 +1,156 @@
+define(["prism/prism","prism/components/prism-ruby","prism/components/prism-css","prism/components/prism-coffeescript","prism/components/prism-erb","prism/components/prism-javascript","prism/components/prism-less","prism/components/prism-markdown","prism/components/prism-ruby","prism/components/prism-scss","prism/components/prism-textile"], function () {
+/* TODO
+       Handle multiline code after tag
+           %foo= some |
+                       multiline |
+                       code |
+*/
+
+(function(Prism) {
+
+       Prism.languages.haml = {
+               // Multiline stuff should appear before the rest
+
+               'multiline-comment': {
+                       pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ]+.+)*/,
+                       lookbehind: true,
+                       alias: 'comment'
+               },
+
+               'multiline-code': [
+                       {
+                               pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ]+.+)/,
+                               lookbehind: true,
+                               inside: {
+                                       rest: Prism.languages.ruby
+                               }
+                       },
+                       {
+                               pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,
+                               lookbehind: true,
+                               inside: {
+                                       rest: Prism.languages.ruby
+                               }
+                       }
+               ],
+
+               // See at the end of the file for known filters
+               'filter': {
+                       pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,
+                       lookbehind: true,
+                       inside: {
+                               'filter-name': {
+                                       pattern: /^:[\w-]+/,
+                                       alias: 'variable'
+                               }
+                       }
+               },
+
+               'markup': {
+                       pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.markup
+                       }
+               },
+               'doctype': {
+                       pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,
+                       lookbehind: true
+               },
+               'tag': {
+                       // Allows for one nested group of braces
+                       pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,
+                       lookbehind: true,
+                       inside: {
+                               'attributes': [
+                                       {
+                                               // Lookbehind tries to prevent interpolations from breaking it all
+                                               // Allows for one nested group of braces
+                                               pattern: /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,
+                                               lookbehind: true,
+                                               inside: {
+                                                       rest: Prism.languages.ruby
+                                               }
+                                       },
+                                       {
+                                               pattern: /\([^)]+\)/,
+                                               inside: {
+                                                       'attr-value': {
+                                                               pattern: /(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,
+                                                               lookbehind: true
+                                                       },
+                                                       'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/,
+                                                       'punctuation': /[=(),]/
+                                               }
+                                       },
+                                       {
+                                               pattern: /\[[^\]]+\]/,
+                                               inside: {
+                                                       rest: Prism.languages.ruby
+                                               }
+                                       }
+                               ],
+                               'punctuation': /[<>]/
+                       }
+               },
+               'code': {
+                       pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.ruby
+                       }
+               },
+               // Interpolations in plain text
+               'interpolation': {
+                       pattern: /#\{[^}]+\}/,
+                       inside: {
+                               'delimiter': {
+                                       pattern: /^#\{|\}$/,
+                                       alias: 'punctuation'
+                               },
+                               rest: Prism.languages.ruby
+                       }
+               },
+               'punctuation': {
+                       pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,
+                       lookbehind: true
+               }
+       };
+
+       var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+';
+
+       // Non exhaustive list of available filters and associated languages
+       var filters = [
+               'css',
+               {filter:'coffee',language:'coffeescript'},
+               'erb',
+               'javascript',
+               'less',
+               'markdown',
+               'ruby',
+               'scss',
+               'textile'
+       ];
+       var all_filters = {};
+       for (var i = 0, l = filters.length; i < l; i++) {
+               var filter = filters[i];
+               filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
+               if (Prism.languages[filter.language]) {
+                       all_filters['filter-' + filter.filter] = {
+                               pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter)),
+                               lookbehind: true,
+                               inside: {
+                                       'filter-name': {
+                                               pattern: /^:[\w-]+/,
+                                               alias: 'variable'
+                                       },
+                                       rest: Prism.languages[filter.language]
+                               }
+                       }
+               }
+       }
+
+       Prism.languages.insertBefore('haml', 'filter', all_filters);
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-handlebars.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-handlebars.js
new file mode 100644 (file)
index 0000000..938232c
--- /dev/null
@@ -0,0 +1,40 @@
+define(["prism/prism","prism/components/prism-markup-templating"], function () {
+(function(Prism) {
+
+       Prism.languages.handlebars = {
+               'comment': /\{\{![\s\S]*?\}\}/,
+               'delimiter': {
+                       pattern: /^\{\{\{?|\}\}\}?$/i,
+                       alias: 'punctuation'
+               },
+               'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,
+               'boolean': /\b(?:true|false)\b/,
+               'block': {
+                       pattern: /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,
+                       lookbehind: true,
+                       alias: 'keyword'
+               },
+               'brackets': {
+                       pattern: /\[[^\]]+\]/,
+                       inside: {
+                               punctuation: /\[|\]/,
+                               variable: /[\s\S]+/
+                       }
+               },
+               'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,
+               'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/
+       };
+
+       Prism.hooks.add('before-tokenize', function(env) {
+               var handlebarsPattern = /\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'handlebars', handlebarsPattern);
+       });
+
+       Prism.hooks.add('after-tokenize', function(env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'handlebars');
+       });
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-haskell.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-haskell.js
new file mode 100644 (file)
index 0000000..0376536
--- /dev/null
@@ -0,0 +1,39 @@
+define(["prism/prism"], function () {
+Prism.languages.haskell= {
+       'comment': {
+               pattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\s\S]*?-})/m,
+               lookbehind: true
+       },
+       'char': /'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,
+       'string': {
+               pattern: /"(?:[^\\"]|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,
+               greedy: true
+       },
+       'keyword' : /\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
+       'import_statement' : {
+               // The imported or hidden names are not included in this import
+               // statement. This is because we want to highlight those exactly like
+               // we do for the names in the program.
+               pattern: /((?:\r?\n|\r|^)\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,
+               lookbehind: true,
+               inside: {
+                       'keyword': /\b(?:import|qualified|as|hiding)\b/
+               }
+       },
+       // These are builtin variables only. Constructors are highlighted later as a constant.
+       'builtin': /\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,
+       // decimal integers and floating point numbers | octal integers | hexadecimal integers
+       'number' : /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,
+       // Most of this is needed because of the meaning of a single '.'.
+       // If it stands alone freely, it is the function composition.
+       // It may also be a separator between a module name and an identifier => no
+       // operator. If it comes together with other special characters it is an
+       // operator too.
+       'operator' : /\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][\w']*\.)*[_a-z][\w']*`/,
+       // In Haskell, nearly everything is a variable, do not highlight these.
+       'hvariable': /\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,
+       'constant': /\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,
+       'punctuation' : /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-haxe.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-haxe.js
new file mode 100644 (file)
index 0000000..231704c
--- /dev/null
@@ -0,0 +1,47 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.haxe = Prism.languages.extend('clike', {
+       // Strings can be multi-line
+       'string': {
+               pattern: /(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
+               greedy: true,
+               inside: {
+                       'interpolation': {
+                               pattern: /(^|[^\\])\$(?:\w+|\{[^}]+\})/,
+                               lookbehind: true,
+                               inside: {
+                                       'interpolation': {
+                                               pattern: /^\$\w*/,
+                                               alias: 'variable'
+                                       }
+                                       // See rest below
+                               }
+                       }
+               }
+       },
+       // The final look-ahead prevents highlighting of keywords if expressions such as "haxe.macro.Expr"
+       'keyword': /\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,
+       'operator': /\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/
+});
+Prism.languages.insertBefore('haxe', 'class-name', {
+       'regex': {
+               pattern: /~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,
+               greedy: true
+       }
+});
+Prism.languages.insertBefore('haxe', 'keyword', {
+       'preprocessor': {
+               pattern: /#\w+/,
+               alias: 'builtin'
+       },
+       'metadata': {
+               pattern: /@:?\w+/,
+               alias: 'symbol'
+       },
+       'reification': {
+               pattern: /\$(?:\w+|(?=\{))/,
+               alias: 'variable'
+       }
+});
+Prism.languages.haxe['string'].inside['interpolation'].inside.rest = Prism.languages.haxe;
+delete Prism.languages.haxe['class-name'];
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-hpkp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-hpkp.js
new file mode 100644 (file)
index 0000000..7725bfd
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+/**
+ * Original by Scott Helme.
+ *
+ * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/
+ */
+
+Prism.languages.hpkp = {
+       'directive':  {
+               pattern: /\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=/]+"|(?:max-age|report-uri)=|report-to )/,
+               alias: 'keyword'
+       },
+       'safe': {
+               pattern: /\d{7,}/,
+               alias: 'selector'
+       },
+       'unsafe': {
+               pattern: /\d{0,6}/,
+               alias: 'function'
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-hsts.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-hsts.js
new file mode 100644 (file)
index 0000000..30833b7
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+/**
+ * Original by Scott Helme.
+ *
+ * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/
+ */
+
+Prism.languages.hsts = {
+       'directive':  {
+               pattern: /\b(?:max-age=|includeSubDomains|preload)/,
+               alias: 'keyword'
+       },
+       'safe': {
+               pattern: /\d{8,}/,
+               alias: 'selector'
+       },
+       'unsafe': {
+               pattern: /\d{0,7}/,
+               alias: 'function'
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-http.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-http.js
new file mode 100644 (file)
index 0000000..2e66b87
--- /dev/null
@@ -0,0 +1,53 @@
+define(["prism/prism","prism/components/prism-javascript","prism/components/prism-markup"], function () {
+Prism.languages.http = {
+       'request-line': {
+               pattern: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,
+               inside: {
+                       // HTTP Verb
+                       property: /^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,
+                       // Path or query argument
+                       'attr-name': /:\w+/
+               }
+       },
+       'response-status': {
+               pattern: /^HTTP\/1.[01] \d+.*/m,
+               inside: {
+                       // Status, e.g. 200 OK
+                       property: {
+                pattern: /(^HTTP\/1.[01] )\d+.*/i,
+                lookbehind: true
+            }
+               }
+       },
+       // HTTP header name
+       'header-name': {
+        pattern: /^[\w-]+:(?=.)/m,
+        alias: 'keyword'
+    }
+};
+
+// Create a mapping of Content-Type headers to language definitions
+var httpLanguages = {
+       'application/json': Prism.languages.javascript,
+       'application/xml': Prism.languages.markup,
+       'text/xml': Prism.languages.markup,
+       'text/html': Prism.languages.markup
+};
+
+// Insert each content type parser that has its associated language
+// currently loaded.
+for (var contentType in httpLanguages) {
+       if (httpLanguages[contentType]) {
+               var options = {};
+               options[contentType] = {
+                       pattern: RegExp('(content-type:\\s*' + contentType + '[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*', 'i'),
+                       lookbehind: true,
+                       inside: {
+                               rest: httpLanguages[contentType]
+                       }
+               };
+               Prism.languages.insertBefore('http', 'header-name', options);
+       }
+}
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-ichigojam.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-ichigojam.js
new file mode 100644 (file)
index 0000000..c77780d
--- /dev/null
@@ -0,0 +1,17 @@
+define(["prism/prism"], function () {
+// according to the offical reference (EN)
+// https://ichigojam.net/IchigoJam-en.html
+Prism.languages.ichigojam = {
+       'comment': /(?:\B'|REM)(?:[^\n\r]*)/i,
+       'string': {
+               pattern: /"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,
+               greedy: true
+       },
+       'number': /\B#[0-9A-F]+|\B`[01]+|(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,
+       'keyword': /\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,
+       'function': /\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,
+       'label': /(?:\B@[^\s]+)/i,
+       'operator': /<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,
+       'punctuation': /[\[,;:()\]]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-icon.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-icon.js
new file mode 100644 (file)
index 0000000..807f31b
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.icon = {
+       'comment': /#.*/,
+       'string': {
+               pattern: /(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,
+               greedy: true
+       },
+       'number': /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,
+       'builtin-keyword': {
+               pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,
+               alias: 'variable'
+       },
+       'directive': {
+               pattern: /\$\w+/,
+               alias: 'builtin'
+       },
+       'keyword': /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,
+       'function': /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,
+       'operator': /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,
+       'punctuation': /[\[\](){},;]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-inform7.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-inform7.js
new file mode 100644 (file)
index 0000000..8152715
--- /dev/null
@@ -0,0 +1,63 @@
+define(["prism/prism"], function () {
+Prism.languages.inform7 = {
+       'string': {
+               pattern: /"[^"]*"/,
+               inside: {
+                       'substitution': {
+                               pattern: /\[[^\]]+\]/,
+                               inside: {
+                                       'delimiter': {
+                                               pattern:/\[|\]/,
+                                               alias: 'punctuation'
+                                       }
+                                       // See rest below
+                               }
+                       }
+               }
+       },
+       'comment': {
+               pattern: /\[[^\]]+\]/,
+               greedy: true
+       },
+       'title': {
+               pattern: /^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,
+               alias: 'important'
+       },
+       'number': {
+               pattern: /(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,
+               lookbehind: true
+       },
+       'verb': {
+               pattern: /(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,
+               lookbehind: true,
+               alias: 'operator'
+       },
+       'keyword': {
+               pattern: /(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,
+               lookbehind: true
+       },
+       'property': {
+               pattern: /(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,
+               lookbehind: true,
+               alias: 'symbol'
+       },
+       'position': {
+               pattern: /(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,
+               lookbehind: true,
+               alias: 'keyword'
+       },
+       'type': {
+               pattern: /(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,
+               lookbehind: true,
+               alias: 'variable'
+       },
+       'punctuation': /[.,:;(){}]/
+};
+
+Prism.languages.inform7['string'].inside['substitution'].inside.rest = Prism.languages.inform7;
+// We don't want the remaining text in the substitution to be highlighted as the string.
+Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {
+       pattern: /\S(?:\s*\S)*/,
+       alias: 'comment'
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-ini.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-ini.js
new file mode 100644 (file)
index 0000000..85ccf12
--- /dev/null
@@ -0,0 +1,13 @@
+define(["prism/prism"], function () {
+Prism.languages.ini= {
+       'comment': /^[ \t]*;.*$/m,
+       'selector': /^[ \t]*\[.*?\]/m,
+       'constant': /^[ \t]*[^\s=]+?(?=[ \t]*=)/m,
+       'attr-value': {
+               pattern: /=.*/,
+               inside: {
+                       'punctuation': /^[=]/
+               }
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-io.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-io.js
new file mode 100644 (file)
index 0000000..08dac3d
--- /dev/null
@@ -0,0 +1,34 @@
+define(["prism/prism"], function () {
+Prism.languages.io = {
+       'comment': [
+               {
+                       pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\])\/\/.*/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\])#.*/,
+                       lookbehind: true
+               }
+       ],
+       'triple-quoted-string': {
+               pattern: /"""(?:\\[\s\S]|(?!""")[^\\])*"""/,
+               greedy: true,
+               alias: 'string'
+       },
+       'string': {
+               pattern: /"(?:\\.|[^\\\r\n"])*"/,
+               greedy: true
+       },
+       'keyword': /\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,
+       'builtin':/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\b/,
+       'boolean': /\b(?:true|false|nil)\b/,
+       'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?/i,
+       'operator': /[=!*/%+-^&|]=|>>?=?|<<?=?|:?:?=|\+\+?|--?|\*\*?|\/\/?|%|\|\|?|&&?|(\b(?:return|and|or|not)\b)|@@?|\?\??|\.\./,
+       'punctuation': /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-j.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-j.js
new file mode 100644 (file)
index 0000000..eda91e0
--- /dev/null
@@ -0,0 +1,27 @@
+define(["prism/prism"], function () {
+Prism.languages.j = {
+       'comment': /\bNB\..*/,
+       'string': {
+               pattern: /'(?:''|[^'\r\n])*'/,
+               greedy: true
+       },
+       'keyword': /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,
+       'verb': {
+               // Negative look-ahead prevents bad highlighting
+               // of ^: ;. =. =: !. !:
+               pattern: /(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,
+               alias: 'keyword'
+       },
+       'number': /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,
+       'adverb': {
+               pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
+               alias: 'builtin'
+       },
+       'operator': /[=a][.:]|_\./,
+       'conjunction': {
+               pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
+               alias: 'variable'
+       },
+       'punctuation': /[()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-java.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-java.js
new file mode 100644 (file)
index 0000000..05fd564
--- /dev/null
@@ -0,0 +1,30 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.java = Prism.languages.extend('clike', {
+       'keyword': /\b(?:var|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,
+       'number': /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,
+       'operator': {
+               pattern: /(^|[^.])(?:<<=?|>>>?=?|->|([-+&|])\2|[?:~]|[-+*/%&|^!=<>]=?)/m,
+               lookbehind: true
+       }
+});
+
+Prism.languages.insertBefore('java','function', {
+       'annotation': {
+               alias: 'punctuation',
+               pattern: /(^|[^.])@\w+/,
+               lookbehind: true
+       }
+});
+
+Prism.languages.insertBefore('java', 'class-name', {
+       'generics': {
+               pattern: /<\s*\w+(?:\.\w+)?(?:\s*,\s*\w+(?:\.\w+)?)*>/i,
+               alias: 'function',
+               inside: {
+                       keyword: Prism.languages.java.keyword,
+                       punctuation: /[<>(),.:]/
+               }
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-javascript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-javascript.js
new file mode 100644 (file)
index 0000000..a5918e9
--- /dev/null
@@ -0,0 +1,73 @@
+define(["prism/prism","prism/components/prism-clike","prism/components/prism-markup"], function () {
+Prism.languages.javascript = Prism.languages.extend('clike', {
+       'class-name': [
+               Prism.languages.clike['class-name'],
+               {
+                       pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,
+                       lookbehind: true
+               }
+       ],
+       'keyword': [
+               {
+                       pattern: /((?:^|})\s*)(?:catch|finally)\b/,
+                       lookbehind: true
+               },
+               /\b(?:as|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/
+       ],
+       'number': /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,
+       // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
+       'function': /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\(|\.(?:apply|bind|call)\()/,
+       'operator': /-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/
+});
+
+Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/
+
+Prism.languages.insertBefore('javascript', 'keyword', {
+       'regex': {
+               pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,
+               lookbehind: true,
+               greedy: true
+       },
+       // This must be declared before keyword because we use "function" inside the look-forward
+       'function-variable': {
+               pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,
+               alias: 'function'
+       },
+       'constant': /\b[A-Z][A-Z\d_]*\b/
+});
+
+Prism.languages.insertBefore('javascript', 'string', {
+       'template-string': {
+               pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,
+               greedy: true,
+               inside: {
+                       'interpolation': {
+                               pattern: /\${[^}]+}/,
+                               inside: {
+                                       'interpolation-punctuation': {
+                                               pattern: /^\${|}$/,
+                                               alias: 'punctuation'
+                                       },
+                                       rest: Prism.languages.javascript
+                               }
+                       },
+                       'string': /[\s\S]+/
+               }
+       }
+});
+
+if (Prism.languages.markup) {
+       Prism.languages.insertBefore('markup', 'tag', {
+               'script': {
+                       pattern: /(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,
+                       lookbehind: true,
+                       inside: Prism.languages.javascript,
+                       alias: 'language-javascript',
+                       greedy: true
+               }
+       });
+}
+
+Prism.languages.js = Prism.languages.javascript;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-jolie.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-jolie.js
new file mode 100644 (file)
index 0000000..c88a329
--- /dev/null
@@ -0,0 +1,58 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.jolie = Prism.languages.extend('clike', {
+       'keyword': /\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,
+       'builtin': /\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,
+       'number': /(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?l?/i,
+       'operator': /-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,
+       'symbol': /[|;@]/,
+       'punctuation': /[,.]/,
+       'string': {
+               pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       }
+});
+
+delete Prism.languages.jolie['class-name'];
+delete Prism.languages.jolie['function'];
+
+Prism.languages.insertBefore( 'jolie', 'keyword', {
+       'function':
+       {
+               pattern: /((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,
+               lookbehind: true
+       },
+       'aggregates': {
+               pattern: /(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,
+               lookbehind: true,
+               inside: {
+                       'withExtension': {
+                               pattern: /\bwith\s+\w+/,
+                               inside: {
+                                       'keyword' : /\bwith\b/
+                               }
+                       },
+                       'function': {
+                               pattern: /\w+/
+                       },
+                       'punctuation': {
+                               pattern: /,/
+                       }
+               }
+       },
+       'redirects': {
+               pattern: /(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,
+               lookbehind: true,
+               inside: {
+                       'punctuation': {
+                               pattern: /,/
+                       },
+                       'function': {
+                               pattern: /\w+/
+                       },
+                       'symbol': {
+                               pattern: /=>/
+                       }
+               }
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-json.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-json.js
new file mode 100644 (file)
index 0000000..1e13df2
--- /dev/null
@@ -0,0 +1,17 @@
+define(["prism/prism"], function () {
+Prism.languages.json = {
+       'property': /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,
+       'string': {
+               pattern: /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,
+               greedy: true
+       },
+       'number': /-?\d+\.?\d*([Ee][+-]?\d+)?/,
+       'punctuation': /[{}[\],]/,
+       'operator': /:/g,
+       'boolean': /\b(?:true|false)\b/i,
+       'null': /\bnull\b/i
+};
+
+Prism.languages.jsonp = Prism.languages.json;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-jsx.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-jsx.js
new file mode 100644 (file)
index 0000000..cddb99c
--- /dev/null
@@ -0,0 +1,129 @@
+define(["prism/prism","prism/components/prism-markup","prism/components/prism-javascript"], function () {
+(function(Prism) {
+
+var javascript = Prism.util.clone(Prism.languages.javascript);
+
+Prism.languages.jsx = Prism.languages.extend('markup', javascript);
+Prism.languages.jsx.tag.pattern= /<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i;
+
+Prism.languages.jsx.tag.inside['tag'].pattern = /^<\/?[^\s>\/]*/i;
+Prism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i;
+Prism.languages.jsx.tag.inside['tag'].inside['class-name'] = /^[A-Z]\w*$/;
+
+Prism.languages.insertBefore('inside', 'attr-name', {
+       'spread': {
+               pattern: /\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/,
+               inside: {
+                       'punctuation': /\.{3}|[{}.]/,
+                       'attr-value': /\w+/
+               }
+       }
+}, Prism.languages.jsx.tag);
+
+Prism.languages.insertBefore('inside', 'attr-value',{
+       'script': {
+               // Allow for two levels of nesting
+               pattern: /=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i,
+               inside: {
+                       'script-punctuation': {
+                               pattern: /^=(?={)/,
+                               alias: 'punctuation'
+                       },
+                       rest: Prism.languages.jsx
+               },
+               'alias': 'language-javascript'
+       }
+}, Prism.languages.jsx.tag);
+
+// The following will handle plain text inside tags
+var stringifyToken = function (token) {
+       if (!token) {
+               return '';
+       }
+       if (typeof token === 'string') {
+               return token;
+       }
+       if (typeof token.content === 'string') {
+               return token.content;
+       }
+       return token.content.map(stringifyToken).join('');
+};
+
+var walkTokens = function (tokens) {
+       var openedTags = [];
+       for (var i = 0; i < tokens.length; i++) {
+               var token = tokens[i];
+               var notTagNorBrace = false;
+
+               if (typeof token !== 'string') {
+                       if (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') {
+                               // We found a tag, now find its kind
+
+                               if (token.content[0].content[0].content === '</') {
+                                       // Closing tag
+                                       if (openedTags.length > 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {
+                                               // Pop matching opening tag
+                                               openedTags.pop();
+                                       }
+                               } else {
+                                       if (token.content[token.content.length - 1].content === '/>') {
+                                               // Autoclosed tag, ignore
+                                       } else {
+                                               // Opening tag
+                                               openedTags.push({
+                                                       tagName: stringifyToken(token.content[0].content[1]),
+                                                       openedBraces: 0
+                                               });
+                                       }
+                               }
+                       } else if (openedTags.length > 0 && token.type === 'punctuation' && token.content === '{') {
+
+                               // Here we might have entered a JSX context inside a tag
+                               openedTags[openedTags.length - 1].openedBraces++;
+
+                       } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') {
+
+                               // Here we might have left a JSX context inside a tag
+                               openedTags[openedTags.length - 1].openedBraces--;
+
+                       } else {
+                               notTagNorBrace = true
+                       }
+               }
+               if (notTagNorBrace || typeof token === 'string') {
+                       if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {
+                               // Here we are inside a tag, and not inside a JSX context.
+                               // That's plain text: drop any tokens matched.
+                               var plainText = stringifyToken(token);
+
+                               // And merge text with adjacent text
+                               if (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) {
+                                       plainText += stringifyToken(tokens[i + 1]);
+                                       tokens.splice(i + 1, 1);
+                               }
+                               if (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) {
+                                       plainText = stringifyToken(tokens[i - 1]) + plainText;
+                                       tokens.splice(i - 1, 1);
+                                       i--;
+                               }
+
+                               tokens[i] = new Prism.Token('plain-text', plainText, null, plainText);
+                       }
+               }
+
+               if (token.content && typeof token.content !== 'string') {
+                       walkTokens(token.content);
+               }
+       }
+};
+
+Prism.hooks.add('after-tokenize', function (env) {
+       if (env.language !== 'jsx' && env.language !== 'tsx') {
+               return;
+       }
+       walkTokens(env.tokens);
+});
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-julia.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-julia.js
new file mode 100644 (file)
index 0000000..4d02d1c
--- /dev/null
@@ -0,0 +1,14 @@
+define(["prism/prism"], function () {
+Prism.languages.julia= {
+       'comment': {
+               pattern: /(^|[^\\])#.*/,
+               lookbehind: true
+       },
+       'string': /("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2/,
+       'keyword' : /\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/,
+       'boolean' : /\b(?:true|false)\b/,
+       'number' : /(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?/i,
+       'operator': /[-+*^%÷&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,
+       'punctuation' : /[{}[\];(),.:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-keyman.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-keyman.js
new file mode 100644 (file)
index 0000000..9efa6f3
--- /dev/null
@@ -0,0 +1,16 @@
+define(["prism/prism"], function () {
+Prism.languages.keyman = {
+       'comment': /\bc\s.*/i,
+       'function': /\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,  // virtual key
+       'string': /("|').*?\1/,
+       'bold': [   // header statements, system stores and variable system stores
+               /&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,
+               /\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i
+       ],
+       'keyword': /\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,  // rule keywords
+       'atrule': /\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,   // structural keywords
+       'number': /\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i, // U+####, x###, d### characters and numbers
+       'operator': /[+>\\,()]/,
+       'tag': /\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i   // prefixes
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-kotlin.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-kotlin.js
new file mode 100644 (file)
index 0000000..cf5fc48
--- /dev/null
@@ -0,0 +1,65 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+(function (Prism) {
+       Prism.languages.kotlin = Prism.languages.extend('clike', {
+               'keyword': {
+                       // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get
+                       pattern: /(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,
+                       lookbehind: true
+               },
+               'function': [
+                       /\w+(?=\s*\()/,
+                       {
+                               pattern: /(\.)\w+(?=\s*\{)/,
+                               lookbehind: true
+                       }
+               ],
+               'number': /\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,
+               'operator': /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/
+       });
+
+       delete Prism.languages.kotlin["class-name"];
+
+       Prism.languages.insertBefore('kotlin', 'string', {
+               'raw-string': {
+                       pattern: /("""|''')[\s\S]*?\1/,
+                       alias: 'string'
+                       // See interpolation below
+               }
+       });
+       Prism.languages.insertBefore('kotlin', 'keyword', {
+               'annotation': {
+                       pattern: /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,
+                       alias: 'builtin'
+               }
+       });
+       Prism.languages.insertBefore('kotlin', 'function', {
+               'label': {
+                       pattern: /\w+@|@\w+/,
+                       alias: 'symbol'
+               }
+       });
+
+       var interpolation = [
+               {
+                       pattern: /\$\{[^}]+\}/,
+                       inside: {
+                               delimiter: {
+                                       pattern: /^\$\{|\}$/,
+                                       alias: 'variable'
+                               },
+                               rest: Prism.languages.kotlin
+                       }
+               },
+               {
+                       pattern: /\$\w+/,
+                       alias: 'variable'
+               }
+       ];
+
+       Prism.languages.kotlin['string'].inside = Prism.languages.kotlin['raw-string'].inside = {
+               interpolation: interpolation
+       };
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-latex.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-latex.js
new file mode 100644 (file)
index 0000000..32a6829
--- /dev/null
@@ -0,0 +1,64 @@
+define(["prism/prism"], function () {
+(function(Prism) {
+       var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i,
+           insideEqu = {
+                   'equation-command': {
+                           pattern: funcPattern,
+                           alias: 'regex'
+                   }
+           };
+
+       Prism.languages.latex = {
+               'comment': /%.*/m,
+               // the verbatim environment prints whitespace to the document
+               'cdata':  {
+                       pattern: /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
+                       lookbehind: true
+               },
+               /*
+                * equations can be between $ $ or \( \) or \[ \]
+                * (all are multiline)
+                */
+               'equation': [
+                       {
+                               pattern: /\$(?:\\[\s\S]|[^\\$])*\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,
+                               inside: insideEqu,
+                               alias: 'string'
+                       },
+                       {
+                               pattern: /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,
+                               lookbehind: true,
+                               inside: insideEqu,
+                               alias: 'string'
+                       }
+               ],
+               /*
+                * arguments which are keywords or references are highlighted
+                * as keywords
+                */
+               'keyword': {
+                       pattern: /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,
+                       lookbehind: true
+               },
+               'url': {
+                       pattern: /(\\url\{)[^}]+(?=\})/,
+                       lookbehind: true
+               },
+               /*
+                * section or chapter headlines are highlighted as bold so that
+                * they stand out more
+                */
+               'headline': {
+                       pattern: /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,
+                       lookbehind: true,
+                       alias: 'class-name'
+               },
+               'function': {
+                       pattern: funcPattern,
+                       alias: 'selector'
+               },
+               'punctuation': /[[\]{}&]/
+       };
+})(Prism);
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-less.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-less.js
new file mode 100644 (file)
index 0000000..3091b4f
--- /dev/null
@@ -0,0 +1,63 @@
+define(["prism/prism","prism/components/prism-css"], function () {
+/* FIXME :
+ :extend() is not handled specifically : its highlighting is buggy.
+ Mixin usage must be inside a ruleset to be highlighted.
+ At-rules (e.g. import) containing interpolations are buggy.
+ Detached rulesets are highlighted as at-rules.
+ A comment before a mixin usage prevents the latter to be properly highlighted.
+ */
+
+Prism.languages.less = Prism.languages.extend('css', {
+       'comment': [
+               /\/\*[\s\S]*?\*\//,
+               {
+                       pattern: /(^|[^\\])\/\/.*/,
+                       lookbehind: true
+               }
+       ],
+       'atrule': {
+               pattern: /@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,
+               inside: {
+                       'punctuation': /[:()]/
+               }
+       },
+       // selectors and mixins are considered the same
+       'selector': {
+               pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,
+               inside: {
+                       // mixin parameters
+                       'variable': /@+[\w-]+/
+               }
+       },
+
+       'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,
+       'punctuation': /[{}();:,]/,
+       'operator': /[+\-*\/]/
+});
+
+// Invert function and punctuation positions
+Prism.languages.insertBefore('less', 'punctuation', {
+       'function': Prism.languages.less.function
+});
+
+Prism.languages.insertBefore('less', 'property', {
+       'variable': [
+               // Variable declaration (the colon must be consumed!)
+               {
+                       pattern: /@[\w-]+\s*:/,
+                       inside: {
+                               "punctuation": /:/
+                       }
+               },
+
+               // Variable usage
+               /@@?[\w-]+/
+       ],
+       'mixin-usage': {
+               pattern: /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,
+               lookbehind: true,
+               alias: 'function'
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-liquid.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-liquid.js
new file mode 100644 (file)
index 0000000..52bb8c7
--- /dev/null
@@ -0,0 +1,15 @@
+define(["prism/prism"], function () {
+Prism.languages.liquid = {
+       'keyword': /\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,
+       'number': /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,
+       'operator': {
+               pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,
+               lookbehind: true
+       },
+       'function': {
+               pattern: /(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,
+               lookbehind: true
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-lisp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-lisp.js
new file mode 100644 (file)
index 0000000..fd74a5a
--- /dev/null
@@ -0,0 +1,200 @@
+define(["prism/prism"], function () {
+(function (Prism) {
+       // Functions to construct regular expressions
+       // simple form
+       // e.g. (interactive ... or (interactive)
+       function simple_form(name) {
+               return RegExp('(\\()' + name + '(?=[\\s\\)])');
+       }
+       // booleans and numbers
+       function primitive(pattern) {
+               return RegExp('([\\s([])' + pattern + '(?=[\\s)])');
+       }
+
+       // Patterns in regular expressions
+
+       // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html
+       // & and : are excluded as they are usually used for special purposes
+       var symbol = '[-+*/_~!@$%^=<>{}\\w]+';
+       // symbol starting with & used in function arguments
+       var marker = '&' + symbol;
+       // Open parenthesis for look-behind
+       var par = '(\\()';
+       var endpar = '(?=\\))';
+       // End the pattern with look-ahead space
+       var space = '(?=\\s)';
+
+       var language = {
+               // Three or four semicolons are considered a heading.
+               // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html
+               heading: {
+                       pattern: /;;;.*/,
+                       alias: ['comment', 'title']
+               },
+               comment: /;.*/,
+               string: {
+                       pattern: /"(?:[^"\\]*|\\.)*"/,
+                       greedy: true,
+                       inside: {
+                               argument: /[-A-Z]+(?=[.,\s])/,
+                               symbol: RegExp('`' + symbol + "'")
+                       }
+               },
+               'quoted-symbol': {
+                       pattern: RegExp("#?'" + symbol),
+                       alias: ['variable', 'symbol']
+               },
+               'lisp-property': {
+                       pattern: RegExp(':' + symbol),
+                       alias: 'property'
+               },
+               splice: {
+                       pattern: RegExp(',@?' + symbol),
+                       alias: ['symbol', 'variable']
+               },
+               keyword: [
+                       {
+                               pattern: RegExp(
+                                       par +
+                                               '(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' +
+                                               space
+                               ),
+                               lookbehind: true
+                       },
+                       {
+                               pattern: RegExp(
+                                       par + '(?:for|do|collect|return|finally|append|concat|in|by)' + space
+                               ),
+                               lookbehind: true
+                       },
+               ],
+               declare: {
+                       pattern: simple_form('declare'),
+                       lookbehind: true,
+                       alias: 'keyword'
+               },
+               interactive: {
+                       pattern: simple_form('interactive'),
+                       lookbehind: true,
+                       alias: 'keyword'
+               },
+               boolean: {
+                       pattern: primitive('(?:t|nil)'),
+                       lookbehind: true
+               },
+               number: {
+                       pattern: primitive('[-+]?\\d+(?:\\.\\d*)?'),
+                       lookbehind: true
+               },
+               defvar: {
+                       pattern: RegExp(par + 'def(?:var|const|custom|group)\\s+' + symbol),
+                       lookbehind: true,
+                       inside: {
+                               keyword: /^def[a-z]+/,
+                               variable: RegExp(symbol)
+                       }
+               },
+               defun: {
+                       pattern: RegExp(
+                               par +
+                                       '(?:cl-)?(?:defun\\*?|defmacro)\\s+' +
+                                       symbol +
+                                       '\\s+\\([\\s\\S]*?\\)'
+                       ),
+                       lookbehind: true,
+                       inside: {
+                               keyword: /^(?:cl-)?def\S+/,
+                               // See below, this property needs to be defined later so that it can
+                               // reference the language object.
+                               arguments: null,
+                               function: {
+                                       pattern: RegExp('(^\\s)' + symbol),
+                                       lookbehind: true
+                               },
+                               punctuation: /[()]/
+                       }
+               },
+               lambda: {
+                       pattern: RegExp(par + 'lambda\\s+\\((?:&?' + symbol + '\\s*)*\\)'),
+                       lookbehind: true,
+                       inside: {
+                               keyword: /^lambda/,
+                               // See below, this property needs to be defined later so that it can
+                               // reference the language object.
+                               arguments: null,
+                               punctuation: /[()]/
+                       }
+               },
+               car: {
+                       pattern: RegExp(par + symbol),
+                       lookbehind: true
+               },
+               punctuation: [
+                       // open paren, brackets, and close paren
+                       /(['`,]?\(|[)\[\]])/,
+                       // cons
+                       {
+                               pattern: /(\s)\.(?=\s)/,
+                               lookbehind: true
+                       },
+               ]
+       };
+
+       var arg = {
+               'lisp-marker': RegExp(marker),
+               rest: {
+                       argument: {
+                               pattern: RegExp(symbol),
+                               alias: 'variable'
+                       },
+                       varform: {
+                               pattern: RegExp(par + symbol + '\\s+\\S[\\s\\S]*' + endpar),
+                               lookbehind: true,
+                               inside: {
+                                       string: language.string,
+                                       boolean: language.boolean,
+                                       number: language.number,
+                                       symbol: language.symbol,
+                                       punctuation: /[()]/
+                               }
+                       }
+               }
+       };
+
+       var forms = '\\S+(?:\\s+\\S+)*';
+
+       var arglist = {
+               pattern: RegExp(par + '[\\s\\S]*' + endpar),
+               lookbehind: true,
+               inside: {
+                       'rest-vars': {
+                               pattern: RegExp('&(?:rest|body)\\s+' + forms),
+                               inside: arg
+                       },
+                       'other-marker-vars': {
+                               pattern: RegExp('&(?:optional|aux)\\s+' + forms),
+                               inside: arg
+                       },
+                       keys: {
+                               pattern: RegExp('&key\\s+' + forms + '(?:\\s+&allow-other-keys)?'),
+                               inside: arg
+                       },
+                       argument: {
+                               pattern: RegExp(symbol),
+                               alias: 'variable'
+                       },
+                       punctuation: /[()]/
+               }
+       };
+
+       language['lambda'].inside.arguments = arglist;
+       language['defun'].inside.arguments = Prism.util.clone(arglist);
+       language['defun'].inside.arguments.inside.sublist = arglist;
+
+       Prism.languages.lisp = language;
+       Prism.languages.elisp = language;
+       Prism.languages.emacs = language;
+       Prism.languages['emacs-lisp'] = language;
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-livescript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-livescript.js
new file mode 100644 (file)
index 0000000..cf89958
--- /dev/null
@@ -0,0 +1,121 @@
+define(["prism/prism"], function () {
+Prism.languages.livescript = {
+       'comment': [
+               {
+                       pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\])#.*/,
+                       lookbehind: true
+               }
+       ],
+       'interpolated-string': {
+               /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern
+               * forcing it to match """-quoted string when it would otherwise match "-quoted first. */
+               pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,
+               lookbehind: true,
+               greedy: true,
+               inside: {
+                       'variable': {
+                               pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,
+                               lookbehind: true
+                       },
+                       'interpolation': {
+                               pattern: /(^|[^\\])#\{[^}]+\}/m,
+                               lookbehind: true,
+                               inside: {
+                                       'interpolation-punctuation': {
+                                               pattern: /^#\{|\}$/,
+                                               alias: 'variable'
+                                       }
+                                       // See rest below
+                               }
+                       },
+                       'string': /[\s\S]+/
+               }
+       },
+       'string': [
+               {
+                       pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
+                       greedy: true
+               },
+               {
+                       pattern: /<\[[\s\S]*?\]>/,
+                       greedy: true
+               },
+               /\\[^\s,;\])}]+/
+       ],
+       'regex': [
+               {
+                       pattern: /\/\/(\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,
+                       greedy: true,
+                       inside: {
+                               'comment': {
+                                       pattern: /(^|[^\\])#.*/,
+                                       lookbehind: true
+                               }
+                       }
+               },
+               {
+                       pattern: /\/(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}/,
+                       greedy: true
+               }
+       ],
+       'keyword': {
+               pattern: /(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,
+               lookbehind: true
+       },
+       'keyword-operator': {
+               pattern: /(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,
+               lookbehind: true,
+               alias: 'operator'
+       },
+       'boolean': {
+               pattern: /(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,
+               lookbehind: true
+       },
+       'argument': {
+               // Don't match .&. nor &&
+               pattern: /(^|(?!\.&\.)[^&])&(?!&)\d*/m,
+               lookbehind: true,
+               alias: 'variable'
+       },
+       'number': /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,
+       'identifier': /[a-z_](?:-?[a-z]|[\d_])*/i,
+       'operator': [
+               // Spaced .
+               {
+                       pattern: /( )\.(?= )/,
+                       lookbehind: true
+               },
+               // Full list, in order:
+               // .= .~ .. ...
+               // .&. .^. .<<. .>>. .>>>.
+               // := :: ::=
+               // &&
+               // || |>
+               // < << <<< <<<<
+               // <- <-- <-! <--!
+               // <~ <~~ <~! <~~!
+               // <| <= <?
+               // > >> >= >?
+               // - -- -> -->
+               // + ++
+               // @ @@
+               // % %%
+               // * **
+               // ! != !~=
+               // !~> !~~>
+               // !-> !-->
+               // ~ ~> ~~> ~=
+               // = ==
+               // ^ ^^
+               // / ?
+               /\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/
+       ],
+       'punctuation': /[(){}\[\]|.,:;`]/
+};
+
+Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-lolcode.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-lolcode.js
new file mode 100644 (file)
index 0000000..e746fcc
--- /dev/null
@@ -0,0 +1,57 @@
+define(["prism/prism"], function () {
+Prism.languages.lolcode = {
+       'comment': [
+               /\bOBTW\s+[\s\S]*?\s+TLDR\b/,
+               /\bBTW.+/
+       ],
+       'string': {
+               pattern: /"(?::.|[^"])*"/,
+               inside: {
+                       'variable': /:\{[^}]+\}/,
+                       'symbol': [
+                               /:\([a-f\d]+\)/i,
+                               /:\[[^\]]+\]/,
+                               /:[)>o":]/
+                       ]
+               },
+               greedy: true
+       },
+       'number': /(?:\B-)?(?:\b\d+\.?\d*|\B\.\d+)/,
+       'symbol': {
+               pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,
+               lookbehind: true,
+               inside: {
+                       'keyword': /A(?=\s)/
+               }
+       },
+       'label': {
+               pattern: /((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,
+               lookbehind: true,
+               alias: 'string'
+       },
+       'function': {
+               pattern: /((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,
+               lookbehind: true
+       },
+       'keyword': [
+               {
+                       pattern: /(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,
+                       lookbehind: true
+               },
+               /'Z(?=\s|,|$)/
+       ],
+       'boolean': {
+               pattern: /(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,
+               lookbehind: true
+       },
+       'variable': {
+               pattern: /(^|\s)IT(?=\s|,|$)/,
+               lookbehind: true
+       },
+       'operator': {
+               pattern: /(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,
+               lookbehind: true
+       },
+       'punctuation': /\.{3}|…|,|!/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-lua.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-lua.js
new file mode 100644 (file)
index 0000000..f9aae17
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.lua = {
+       'comment': /^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,
+       // \z may be used to skip the following space
+       'string': {
+               pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,
+               greedy: true
+       },
+       'number': /\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,
+       'keyword': /\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,
+       'function': /(?!\d)\w+(?=\s*(?:[({]))/,
+       'operator': [
+               /[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,
+               {
+                       // Match ".." but don't break "..."
+                       pattern: /(^|[^.])\.\.(?!\.)/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /[\[\](){},;]|\.+|:+/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-makefile.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-makefile.js
new file mode 100644 (file)
index 0000000..0fb3de7
--- /dev/null
@@ -0,0 +1,36 @@
+define(["prism/prism"], function () {
+Prism.languages.makefile = {
+       'comment': {
+               pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,
+               lookbehind: true
+       },
+       'string': {
+               pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+
+       // Built-in target names
+       'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
+
+       // Targets
+       'symbol': {
+               pattern: /^[^:=\r\n]+(?=\s*:(?!=))/m,
+               inside: {
+                       'variable': /\$+(?:[^(){}:#=\s]+|(?=[({]))/
+               }
+       },
+       'variable': /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,
+
+       'keyword': [
+               // Directives
+               /-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,
+               // Functions
+               {
+                       pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,
+                       lookbehind: true
+               }
+       ],
+       'operator': /(?:::|[?:+!])?=|[|@]/,
+       'punctuation': /[:;(){}]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-markdown.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-markdown.js
new file mode 100644 (file)
index 0000000..c198120
--- /dev/null
@@ -0,0 +1,122 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages.markdown = Prism.languages.extend('markup', {});
+Prism.languages.insertBefore('markdown', 'prolog', {
+       'blockquote': {
+               // > ...
+               pattern: /^>(?:[\t ]*>)*/m,
+               alias: 'punctuation'
+       },
+       'code': [
+               {
+                       // Prefixed by 4 spaces or 1 tab
+                       pattern: /^(?: {4}|\t).+/m,
+                       alias: 'keyword'
+               },
+               {
+                       // `code`
+                       // ``code``
+                       pattern: /``.+?``|`[^`\n]+`/,
+                       alias: 'keyword'
+               }
+       ],
+       'title': [
+               {
+                       // title 1
+                       // =======
+
+                       // title 2
+                       // -------
+                       pattern: /\w+.*(?:\r?\n|\r)(?:==+|--+)/,
+                       alias: 'important',
+                       inside: {
+                               punctuation: /==+$|--+$/
+                       }
+               },
+               {
+                       // # title 1
+                       // ###### title 6
+                       pattern: /(^\s*)#+.+/m,
+                       lookbehind: true,
+                       alias: 'important',
+                       inside: {
+                               punctuation: /^#+|#+$/
+                       }
+               }
+       ],
+       'hr': {
+               // ***
+               // ---
+               // * * *
+               // -----------
+               pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,
+               lookbehind: true,
+               alias: 'punctuation'
+       },
+       'list': {
+               // * item
+               // + item
+               // - item
+               // 1. item
+               pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,
+               lookbehind: true,
+               alias: 'punctuation'
+       },
+       'url-reference': {
+               // [id]: http://example.com "Optional title"
+               // [id]: http://example.com 'Optional title'
+               // [id]: http://example.com (Optional title)
+               // [id]: <http://example.com> "Optional title"
+               pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,
+               inside: {
+                       'variable': {
+                               pattern: /^(!?\[)[^\]]+/,
+                               lookbehind: true
+                       },
+                       'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,
+                       'punctuation': /^[\[\]!:]|[<>]/
+               },
+               alias: 'url'
+       },
+       'bold': {
+               // **strong**
+               // __strong__
+
+               // Allow only one line break
+               pattern: /(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,
+               lookbehind: true,
+               inside: {
+                       'punctuation': /^\*\*|^__|\*\*$|__$/
+               }
+       },
+       'italic': {
+               // *em*
+               // _em_
+
+               // Allow only one line break
+               pattern: /(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,
+               lookbehind: true,
+               inside: {
+                       'punctuation': /^[*_]|[*_]$/
+               }
+       },
+       'url': {
+               // [example](http://example.com "Optional title")
+               // [example] [id]
+               pattern: /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,
+               inside: {
+                       'variable': {
+                               pattern: /(!?\[)[^\]]+(?=\]$)/,
+                               lookbehind: true
+                       },
+                       'string': {
+                               pattern: /"(?:\\.|[^"\\])*"(?=\)$)/
+                       }
+               }
+       }
+});
+
+Prism.languages.markdown['bold'].inside['url'] = Prism.languages.markdown['url'];
+Prism.languages.markdown['italic'].inside['url'] = Prism.languages.markdown['url'];
+Prism.languages.markdown['bold'].inside['italic'] = Prism.languages.markdown['italic'];
+Prism.languages.markdown['italic'].inside['bold'] = Prism.languages.markdown['bold'];
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-markup-templating.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-markup-templating.js
new file mode 100644 (file)
index 0000000..ce976fd
--- /dev/null
@@ -0,0 +1,91 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages['markup-templating'] = {};
+
+Object.defineProperties(Prism.languages['markup-templating'], {
+       buildPlaceholders: {
+               // Tokenize all inline templating expressions matching placeholderPattern
+               // If the replaceFilter function is provided, it will be called with every match.
+               // If it returns false, the match will not be replaced.
+               value: function (env, language, placeholderPattern, replaceFilter) {
+                       if (env.language !== language) {
+                               return;
+                       }
+
+                       env.tokenStack = [];
+
+                       env.code = env.code.replace(placeholderPattern, function(match) {
+                               if (typeof replaceFilter === 'function' && !replaceFilter(match)) {
+                                       return match;
+                               }
+                               var i = env.tokenStack.length;
+                               // Check for existing strings
+                               while (env.code.indexOf('___' + language.toUpperCase() + i + '___') !== -1)
+                                       ++i;
+
+                               // Create a sparse array
+                               env.tokenStack[i] = match;
+
+                               return '___' + language.toUpperCase() + i + '___';
+                       });
+
+                       // Switch the grammar to markup
+                       env.grammar = Prism.languages.markup;
+               }
+       },
+       tokenizePlaceholders: {
+               // Replace placeholders with proper tokens after tokenizing
+               value: function (env, language) {
+                       if (env.language !== language || !env.tokenStack) {
+                               return;
+                       }
+
+                       // Switch the grammar back
+                       env.grammar = Prism.languages[language];
+
+                       var j = 0;
+                       var keys = Object.keys(env.tokenStack);
+                       var walkTokens = function (tokens) {
+                               if (j >= keys.length) {
+                                       return;
+                               }
+                               for (var i = 0; i < tokens.length; i++) {
+                                       var token = tokens[i];
+                                       if (typeof token === 'string' || (token.content && typeof token.content === 'string')) {
+                                               var k = keys[j];
+                                               var t = env.tokenStack[k];
+                                               var s = typeof token === 'string' ? token : token.content;
+
+                                               var index = s.indexOf('___' + language.toUpperCase() + k + '___');
+                                               if (index > -1) {
+                                                       ++j;
+                                                       var before = s.substring(0, index);
+                                                       var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar, language), 'language-' + language, t);
+                                                       var after = s.substring(index + ('___' + language.toUpperCase() + k + '___').length);
+                                                       var replacement;
+                                                       if (before || after) {
+                                                               replacement = [before, middle, after].filter(function (v) { return !!v; });
+                                                               walkTokens(replacement);
+                                                       } else {
+                                                               replacement = middle;
+                                                       }
+                                                       if (typeof token === 'string') {
+                                                               Array.prototype.splice.apply(tokens, [i, 1].concat(replacement));
+                                                       } else {
+                                                               token.content = replacement;
+                                                       }
+
+                                                       if (j >= keys.length) {
+                                                               break;
+                                                       }
+                                               }
+                                       } else if (token.content && typeof token.content !== 'string') {
+                                               walkTokens(token.content);
+                                       }
+                               }
+                       };
+
+                       walkTokens(env.tokens);
+               }
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-markup.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-markup.js
new file mode 100644 (file)
index 0000000..13c761c
--- /dev/null
@@ -0,0 +1,59 @@
+define(["prism/prism"], function () {
+Prism.languages.markup = {
+       'comment': /<!--[\s\S]*?-->/,
+       'prolog': /<\?[\s\S]+?\?>/,
+       'doctype': /<!DOCTYPE[\s\S]+?>/i,
+       'cdata': /<!\[CDATA\[[\s\S]*?]]>/i,
+       'tag': {
+               pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,
+               greedy: true,
+               inside: {
+                       'tag': {
+                               pattern: /^<\/?[^\s>\/]+/i,
+                               inside: {
+                                       'punctuation': /^<\/?/,
+                                       'namespace': /^[^\s>\/:]+:/
+                               }
+                       },
+                       'attr-value': {
+                               pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,
+                               inside: {
+                                       'punctuation': [
+                                               /^=/,
+                                               {
+                                                       pattern: /(^|[^\\])["']/,
+                                                       lookbehind: true
+                                               }
+                                       ]
+                               }
+                       },
+                       'punctuation': /\/?>/,
+                       'attr-name': {
+                               pattern: /[^\s>\/]+/,
+                               inside: {
+                                       'namespace': /^[^\s>\/:]+:/
+                               }
+                       }
+
+               }
+       },
+       'entity': /&#?[\da-z]{1,8};/i
+};
+
+Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =
+       Prism.languages.markup['entity'];
+
+// Plugin to make entity title show the real entity, idea by Roman Komarov
+Prism.hooks.add('wrap', function(env) {
+
+       if (env.type === 'entity') {
+               env.attributes['title'] = env.content.replace(/&amp;/, '&');
+       }
+});
+
+Prism.languages.xml = Prism.languages.markup;
+Prism.languages.html = Prism.languages.markup;
+Prism.languages.mathml = Prism.languages.markup;
+Prism.languages.svg = Prism.languages.markup;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-matlab.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-matlab.js
new file mode 100644 (file)
index 0000000..622f986
--- /dev/null
@@ -0,0 +1,18 @@
+define(["prism/prism"], function () {
+Prism.languages.matlab = {
+       'comment': [
+               /%\{[\s\S]*?\}%/,
+               /%.+/
+       ],
+       'string': {
+               pattern: /\B'(?:''|[^'\r\n])*'/,
+               greedy: true
+       },
+       // FIXME We could handle imaginary numbers as a whole
+       'number': /(?:\b\d+\.?\d*|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,
+       'keyword': /\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,
+       'function': /(?!\d)\w+(?=\s*\()/,
+       'operator': /\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,
+       'punctuation': /\.{3}|[.,;\[\](){}!]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-mel.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-mel.js
new file mode 100644 (file)
index 0000000..29eb184
--- /dev/null
@@ -0,0 +1,45 @@
+define(["prism/prism"], function () {
+Prism.languages.mel = {
+       'comment': /\/\/.*/,
+       'code': {
+               pattern: /`(?:\\.|[^\\`\r\n])*`/,
+               greedy: true,
+               alias: 'italic',
+               inside: {
+                       'delimiter': {
+                               pattern: /^`|`$/,
+                               alias: 'punctuation'
+                       }
+                       // See rest below
+               }
+       },
+       'string': {
+               pattern: /"(?:\\.|[^\\"\r\n])*"/,
+               greedy: true
+       },
+       'variable': /\$\w+/,
+       'number': /\b0x[\da-fA-F]+\b|\b\d+\.?\d*|\B\.\d+/,
+       'flag': {
+               pattern: /-[^\d\W]\w*/,
+               alias: 'operator'
+       },
+       'keyword': /\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,
+       'function': /\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,
+       
+       'operator': [
+               /\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,
+               {
+                       // We don't want to match <<
+                       pattern: /(^|[^<])<(?!<)/,
+                       lookbehind: true
+               },
+               {
+                       // We don't want to match >>
+                       pattern: /(^|[^>])>(?!>)/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /<<|>>|[.,:;?\[\](){}]/
+};
+Prism.languages.mel['code'].inside.rest = Prism.languages.mel;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-mizar.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-mizar.js
new file mode 100644 (file)
index 0000000..5c42a78
--- /dev/null
@@ -0,0 +1,14 @@
+define(["prism/prism"], function () {
+Prism.languages.mizar = {
+       'comment': /::.+/,
+       'keyword': /@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,
+       'parameter': {
+               pattern: /\$(?:10|\d)/,
+               alias: 'variable'
+       },
+       'variable': /\w+(?=:)/,
+       'number': /(?:\b|-)\d+\b/,
+       'operator': /\.\.\.|->|&|\.?=/,
+       'punctuation': /\(#|#\)|[,:;\[\](){}]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-monkey.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-monkey.js
new file mode 100644 (file)
index 0000000..08645bf
--- /dev/null
@@ -0,0 +1,33 @@
+define(["prism/prism"], function () {
+Prism.languages.monkey = {
+       'string': /"[^"\r\n]*"/,
+       'comment': [
+               {
+                       pattern: /^#Rem\s+[\s\S]*?^#End/im,
+                       greedy: true
+               },
+               {
+                       pattern: /'.+/,
+                       greedy: true
+               }
+       ],
+       'preprocessor': {
+               pattern: /(^[ \t]*)#.+/m,
+               lookbehind: true,
+               alias: 'comment'
+       },
+       'function': /\w+(?=\()/,
+       'type-char': {
+               pattern: /(\w)[?%#$]/,
+               lookbehind: true,
+               alias: 'variable'
+       },
+       'number': {
+               pattern: /((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,
+               lookbehind: true
+       },
+       'keyword': /\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,
+       'operator': /\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,
+       'punctuation': /[.,:;()\[\]]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-n4js.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-n4js.js
new file mode 100644 (file)
index 0000000..1d6b902
--- /dev/null
@@ -0,0 +1,17 @@
+define(["prism/prism","prism/components/prism-javascript"], function () {
+Prism.languages.n4js = Prism.languages.extend('javascript', {
+       // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html
+       'keyword': /\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/
+});
+
+Prism.languages.insertBefore('n4js', 'constant', {
+       // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations
+       'annotation': {
+               pattern: /@+\w+/,
+               alias: 'operator'
+       }
+});
+
+Prism.languages.n4jsd=Prism.languages.n4js;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-nasm.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-nasm.js
new file mode 100644 (file)
index 0000000..e4ee78c
--- /dev/null
@@ -0,0 +1,27 @@
+define(["prism/prism"], function () {
+Prism.languages.nasm = {
+       'comment': /;.*$/m,
+       'string': /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+       'label': {
+               pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,
+               lookbehind: true,
+               alias: 'function'
+       },
+       'keyword': [
+               /\[?BITS (?:16|32|64)\]?/,
+               {
+                       pattern: /(^\s*)section\s*[a-zA-Z.]+:?/im,
+                       lookbehind: true
+               },
+               /(?:extern|global)[^;\r\n]*/i,
+               /(?:CPU|FLOAT|DEFAULT).*$/m
+       ],
+       'register': {
+               pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,
+               alias: 'variable'
+       },
+       'number': /(?:\b|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,
+       'operator': /[\[\]*+\-\/%<>=&|$!]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-nginx.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-nginx.js
new file mode 100644 (file)
index 0000000..eea2b9c
--- /dev/null
@@ -0,0 +1,13 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.nginx = Prism.languages.extend('clike', {
+       'comment': {
+               pattern: /(^|[^"{\\])#.*/,
+               lookbehind: true
+       },
+       'keyword': /\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\b/i
+});
+
+Prism.languages.insertBefore('nginx', 'keyword', {
+       'variable': /\$[a-z_]+/i
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-nim.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-nim.js
new file mode 100644 (file)
index 0000000..512a5b5
--- /dev/null
@@ -0,0 +1,35 @@
+define(["prism/prism"], function () {
+Prism.languages.nim = {
+       'comment': /#.*/,
+       // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)
+       // Character literals are handled specifically to prevent issues with numeric type suffixes
+       'string': {
+               pattern: /(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,
+               greedy: true
+       },
+       // The negative look ahead prevents wrong highlighting of the .. operator
+       'number': /\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,
+       'keyword': /\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,
+       'function': {
+               pattern: /(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,
+               inside: {
+                       'operator': /\*$/
+               }
+       },
+       // We don't want to highlight operators inside backticks
+       'ignore': {
+               pattern: /`[^`\r\n]+`/,
+               inside: {
+                       'punctuation': /`/
+               }
+       },
+       'operator': {
+               // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)
+               // but allow the slice operator .. to take precedence over them
+               // One can define his own operators in Nim so all combination of operators might be an operator.
+               pattern: /(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,
+               lookbehind: true
+       },
+       'punctuation': /[({\[]\.|\.[)}\]]|[`(){}\[\],:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-nix.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-nix.js
new file mode 100644 (file)
index 0000000..bad014d
--- /dev/null
@@ -0,0 +1,42 @@
+define(["prism/prism"], function () {
+Prism.languages.nix = {
+       'comment': /\/\*[\s\S]*?\*\/|#.*/,
+       'string': {
+               pattern: /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,
+               greedy: true,
+               inside: {
+                       'interpolation': {
+                               // The lookbehind ensures the ${} is not preceded by \ or ''
+                               pattern: /(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,
+                               lookbehind: true,
+                               inside: {
+                                       'antiquotation': {
+                                               pattern: /^\$(?=\{)/,
+                                               alias: 'variable'
+                                       }
+                                       // See rest below
+                               }
+                       }
+               }
+       },
+       'url': [
+               /\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,
+               {
+                       pattern: /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,
+                       lookbehind: true
+               }
+       ],
+       'antiquotation': {
+               pattern: /\$(?=\{)/,
+               alias: 'variable'
+       },
+       'number': /\b\d+\b/,
+       'keyword': /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,
+       'function': /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,
+       'boolean': /\b(?:true|false)\b/,
+       'operator': /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,
+       'punctuation': /[{}()[\].,:;]/
+};
+
+Prism.languages.nix.string.inside.interpolation.inside.rest = Prism.languages.nix;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-nsis.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-nsis.js
new file mode 100644 (file)
index 0000000..efcd88b
--- /dev/null
@@ -0,0 +1,32 @@
+define(["prism/prism"], function () {
+/**
+ * Original by Jan T. Sott (http://github.com/idleberg)
+ *
+ * Includes all commands and plug-ins shipped with NSIS 3.02
+ */
+ Prism.languages.nsis = {
+       'comment': {
+               pattern: /(^|[^\\])(\/\*[\s\S]*?\*\/|[#;].*)/,
+               lookbehind: true
+       },
+       'string': {
+               pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'keyword': {
+               pattern: /(^\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,
+               lookbehind: true
+       },
+       'property': /\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK((CR|CU|LM)(32|64)?|DD|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,
+       'constant': /\${[\w\.:\^-]+}|\$\([\w\.:\^-]+\)/i,
+       'variable': /\$\w+/i,
+       'number': /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,
+       'operator': /--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,
+       'punctuation': /[{}[\];(),.:]/,
+       'important': {
+               pattern: /(^\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/mi,
+               lookbehind: true
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-objectivec.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-objectivec.js
new file mode 100644 (file)
index 0000000..5216409
--- /dev/null
@@ -0,0 +1,8 @@
+define(["prism/prism","prism/components/prism-c"], function () {
+Prism.languages.objectivec = Prism.languages.extend('c', {
+       'keyword': /\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,
+       'string': /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
+       'operator': /-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-ocaml.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-ocaml.js
new file mode 100644 (file)
index 0000000..7a3913e
--- /dev/null
@@ -0,0 +1,29 @@
+define(["prism/prism"], function () {
+Prism.languages.ocaml = {
+       'comment': /\(\*[\s\S]*?\*\)/,
+       'string': [
+               {
+                       pattern: /"(?:\\.|[^\\\r\n"])*"/,
+                       greedy: true
+               },
+               {
+                       pattern: /(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,
+                       greedy: true
+               }
+       ],
+       'number': /\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,
+       'type': {
+               pattern: /\B['`]\w*/,
+               alias: 'variable'
+       },
+       'directive': {
+               pattern: /\B#\w+/,
+               alias: 'function'
+       },
+       'keyword': /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,
+       'boolean': /\b(?:false|true)\b/,
+       // Custom operators are allowed
+       'operator': /:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,
+       'punctuation': /[(){}\[\]|_.,:;]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-opencl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-opencl.js
new file mode 100644 (file)
index 0000000..f31901c
--- /dev/null
@@ -0,0 +1,52 @@
+define(["prism/prism","prism/components/prism-cpp","prism/components/prism-c","prism/components/prism-cpp"], function () {
+(function (Prism) {
+       /* OpenCL kernel language */
+       Prism.languages.opencl = Prism.languages.extend('c', {
+               // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)
+               'keyword': /\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|auto|break|case|cl_(?:image_format|mem_fence_flags)|clk_event_t|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|event_t|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|imaginary|inline|intptr_t|ndrange_t|packed|pipe|ptrdiff_t|queue_t|register|reserve_id_t|restrict|return|sampler_t|signed|size_t|sizeof|static|struct|switch|typedef|uintptr_t|uniform|union|unsigned|void|volatile|while)\b/,
+               // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (global-vars, opencl-dev)
+               'function-opencl-kernel': {
+                       pattern: /\b(?:abs(?:_diff)?|a?(?:cos|sin)(?:h|pi)?|add_sat|aligned|all|and|any|async(?:_work_group_copy|_work_group_strided_copy)?|atan(?:2?(?:pi)?|h)?|atom_(?:add|and|cmpxchg|dec|inc|max|min|or|sub|xchg|xor)|barrier|bitselect|cbrt|ceil|clamp|clz|copies|copysign|cross|degrees|distance|dot|endian|erf|erfc|exp(?:2|10)?|expm1|fabs|fast_(?:distance|length|normalize)|fdim|floor|fma|fmax|fmin|fract|frexp|fro|from|get_(?:global_(?:id|offset|size)|group_id|image_(?:channel_data_type|channel_order|depth|dim|height|width)|local(?:_id|_size)|num_groups|work_dim)|hadd|(?:half|native)_(?:cos|divide|exp(?:2|10)?|log(?:2|10)?|powr|recip|r?sqrt|sin|tan)|hypot|ilogb|is(?:equal|finite|greater(?:equal)?|inf|less(?:equal|greater)?|nan|normal|notequal|(?:un)?ordered)|ldexp|length|lgamma|lgamma_r|log(?:b|1p|2|10)?|mad(?:24|_hi|_sat)?|max|mem(?:_fence)?|min|mix|modf|mul24|mul_hi|nan|nextafter|normalize|pow[nr]?|prefetch|radians|read_(?:image)(?:f|h|u?i)|read_mem_fence|remainder|remquo|reqd_work_group_size|rhadd|rint|rootn|rotate|round|rsqrt|select|shuffle2?|sign|signbit|sincos|smoothstep|sqrt|step|sub_sat|tan|tanh|tanpi|tgamma|to|trunc|upsample|vec_(?:step|type_hint)|v(?:load|store)(?:_half)?(?:2|3|4|8|16)?|v(?:loada_half|storea?(?:_half)?)(?:2|3|4|8|16)?(?:_(?:rte|rtn|rtp|rtz))?|wait_group_events|work_group_size_hint|write_image(?:f|h|u?i)|write_mem_fence)\b/,
+                       alias: 'function'
+               },
+               // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)
+               'constant-opencl-kernel': {
+                       pattern: /\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF|INFINITY|(?:INT|LONG|SCHAR|SHRT|UCHAR|UINT|ULONG)_(?:MAX|MIN)|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI[24]?|SQRT(?:1_2|2))|NAN)\b/,
+                       alias: 'constant'
+               }
+       });
+
+       var attributes = {
+               // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)
+               'type-opencl-host': {
+                       pattern: /\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,
+                       alias: 'keyword'
+               },
+               'boolean-opencl-host': {
+                       pattern: /\bCL_(?:TRUE|FALSE)\b/,
+                       alias: 'boolean'
+               },
+               // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)
+               'constant-opencl-host': {
+                       pattern: /\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,
+                       alias: 'constant'
+               },
+               // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)
+               'function-opencl-host': {
+                       pattern: /\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,
+                       alias: 'function'
+               }
+       };
+
+       /* OpenCL host API */
+       Prism.languages.insertBefore('c', 'keyword', attributes);
+       // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html
+       attributes['type-opencl-host-c++'] = {
+               pattern: /\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,
+               alias: 'keyword'
+       };
+       // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h
+       Prism.languages.insertBefore('cpp', 'keyword', attributes);
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-oz.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-oz.js
new file mode 100644 (file)
index 0000000..734a15b
--- /dev/null
@@ -0,0 +1,27 @@
+define(["prism/prism"], function () {
+Prism.languages.oz = {
+       'comment': /\/\*[\s\S]*?\*\/|%.*/,
+       'string': {
+               pattern: /"(?:[^"\\]|\\[\s\S])*"/,
+               greedy: true
+       },
+       'atom': {
+               pattern: /'(?:[^'\\]|\\[\s\S])*'/,
+               greedy: true,
+               alias: 'builtin'
+       },
+       'keyword': /[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,
+       'function': [
+               /[a-z][A-Za-z\d]*(?=\()/,
+               {
+                       pattern: /(\{)[A-Z][A-Za-z\d]*/,
+                       lookbehind: true
+               }
+       ],
+       'number': /\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,
+       'variable': /\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,
+       'attr-name': /\w+(?=:)/,
+       'operator': /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,
+       'punctuation': /[\[\](){}.:;?]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-parigp.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-parigp.js
new file mode 100644 (file)
index 0000000..9d55b63
--- /dev/null
@@ -0,0 +1,32 @@
+define(["prism/prism"], function () {
+Prism.languages.parigp = {
+       'comment': /\/\*[\s\S]*?\*\/|\\\\.*/,
+       'string': {
+               pattern: /"(?:[^"\\\r\n]|\\.)*"/,
+               greedy: true
+       },
+       // PARI/GP does not care about white spaces at all
+       // so let's process the keywords to build an appropriate regexp
+       // (e.g. "b *r *e *a *k", etc.)
+       'keyword': (function () {
+               var keywords = [
+                       'breakpoint', 'break', 'dbg_down', 'dbg_err', 'dbg_up', 'dbg_x',
+                       'forcomposite', 'fordiv', 'forell', 'forpart', 'forprime',
+                       'forstep', 'forsubgroup', 'forvec', 'for', 'iferr', 'if',
+                       'local', 'my', 'next', 'return', 'until', 'while'
+               ];
+               keywords = keywords.map(function (keyword) {
+                       return keyword.split('').join(' *');
+               }).join('|');
+               return RegExp('\\b(?:' + keywords + ')\\b');
+       }()),
+       'function': /\w[\w ]*?(?= *\()/,
+       'number': {
+               // The lookbehind and the negative lookahead prevent from breaking the .. operator
+               pattern: /((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i,
+               lookbehind: true
+       },
+       'operator': /\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,
+       'punctuation': /[\[\]{}().,:;|]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-parser.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-parser.js
new file mode 100644 (file)
index 0000000..3f4dcfa
--- /dev/null
@@ -0,0 +1,69 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages.parser = Prism.languages.extend('markup', {
+       'keyword': {
+               pattern: /(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,
+               lookbehind: true
+       },
+       'variable': {
+               pattern: /(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
+               lookbehind: true,
+               inside: {
+                       'punctuation': /\.|:+/
+               }
+       },
+       'function': {
+               pattern: /(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,
+               lookbehind: true,
+               inside: {
+                       'keyword': {
+                               pattern: /(^@)(?:GET_|SET_)/,
+                               lookbehind: true
+                       },
+                       'punctuation': /\.|:+/
+               }
+       },
+       'escape': {
+               pattern: /\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,
+               alias: 'builtin'
+       },
+       'punctuation': /[\[\](){};]/
+});
+Prism.languages.insertBefore('parser', 'keyword', {
+       'parser-comment': {
+               pattern: /(\s)#.*/,
+               lookbehind: true,
+               alias: 'comment'
+       },
+       'expression': {
+               // Allow for 3 levels of depth
+               pattern: /(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,
+               greedy: true,
+               lookbehind: true,
+               inside: {
+                       'string': {
+                               pattern: /(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,
+                               lookbehind: true
+                       },
+                       'keyword': Prism.languages.parser.keyword,
+                       'variable': Prism.languages.parser.variable,
+                       'function': Prism.languages.parser.function,
+                       'boolean': /\b(?:true|false)\b/,
+                       'number': /\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,
+                       'escape': Prism.languages.parser.escape,
+                       'operator': /[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,
+                       'punctuation': Prism.languages.parser.punctuation
+               }
+       }
+});
+Prism.languages.insertBefore('inside', 'punctuation', {
+       'expression': Prism.languages.parser.expression,
+       'keyword': Prism.languages.parser.keyword,
+       'variable': Prism.languages.parser.variable,
+       'function': Prism.languages.parser.function,
+       'escape': Prism.languages.parser.escape,
+       'parser-punctuation': {
+               pattern: Prism.languages.parser.punctuation,
+               alias: 'punctuation'
+       }
+}, Prism.languages.parser['tag'].inside['attr-value']);
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-pascal.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-pascal.js
new file mode 100644 (file)
index 0000000..a9988e6
--- /dev/null
@@ -0,0 +1,57 @@
+define(["prism/prism"], function () {
+// Based on Free Pascal
+
+/* TODO
+       Support inline asm ?
+*/
+
+Prism.languages.pascal = {
+       'comment': [
+               /\(\*[\s\S]+?\*\)/,
+               /\{[\s\S]+?\}/,
+               /\/\/.*/
+       ],
+       'string': {
+               pattern: /(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,
+               greedy: true
+       },
+       'keyword': [
+               {
+                       // Turbo Pascal
+                       pattern: /(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,
+                       lookbehind: true
+               },
+               {
+                       // Free Pascal
+                       pattern: /(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,
+                       lookbehind: true
+               },
+               {
+                       // Object Pascal
+                       pattern: /(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,
+                       lookbehind: true
+               },
+               {
+                       // Modifiers
+                       pattern: /(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,
+                       lookbehind: true
+               }
+       ],
+       'number': [
+               // Hexadecimal, octal and binary
+               /(?:[&%]\d+|\$[a-f\d]+)/i,
+               // Decimal
+               /\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i
+       ],
+       'operator': [
+               /\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,
+               {
+                       pattern: /(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /\(\.|\.\)|[()\[\]:;,.]/
+};
+
+Prism.languages.objectpascal = Prism.languages.pascal;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-perl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-perl.js
new file mode 100644 (file)
index 0000000..977c5fa
--- /dev/null
@@ -0,0 +1,194 @@
+define(["prism/prism"], function () {
+Prism.languages.perl = {
+       'comment': [
+               {
+                       // POD
+                       pattern: /(^\s*)=\w+[\s\S]*?=cut.*/m,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\$])#.*/,
+                       lookbehind: true
+               }
+       ],
+       // TODO Could be nice to handle Heredoc too.
+       'string': [
+               // q/.../
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
+                       greedy: true
+               },
+       
+               // q a...a
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
+                       greedy: true
+               },
+       
+               // q(...)
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,
+                       greedy: true
+               },
+       
+               // q{...}
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,
+                       greedy: true
+               },
+       
+               // q[...]
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,
+                       greedy: true
+               },
+       
+               // q<...>
+               {
+                       pattern: /\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,
+                       greedy: true
+               },
+
+               // "...", `...`
+               {
+                       pattern: /("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,
+                       greedy: true
+               },
+
+               // '...'
+               // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '
+               {
+                       pattern: /'(?:[^'\\\r\n]|\\.)*'/,
+                       greedy: true
+               }
+       ],
+       'regex': [
+               // m/.../
+               {
+                       pattern: /\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,
+                       greedy: true
+               },
+       
+               // m a...a
+               {
+                       pattern: /\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,
+                       greedy: true
+               },
+       
+               // m(...)
+               {
+                       pattern: /\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,
+                       greedy: true
+               },
+       
+               // m{...}
+               {
+                       pattern: /\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,
+                       greedy: true
+               },
+       
+               // m[...]
+               {
+                       pattern: /\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,
+                       greedy: true
+               },
+       
+               // m<...>
+               {
+                       pattern: /\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,
+                       greedy: true
+               },
+
+               // The lookbehinds prevent -s from breaking
+               // FIXME We don't handle change of separator like s(...)[...]
+               // s/.../.../
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // s a...a...a
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // s(...)(...)
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // s{...}{...}
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // s[...][...]
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // s<...><...>
+               {
+                       pattern: /(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+       
+               // /.../
+               // The look-ahead tries to prevent two divisions on
+               // the same line from being highlighted as regex.
+               // This does not support multi-line regex.
+               {
+                       pattern: /\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,
+                       greedy: true
+               }
+       ],
+
+       // FIXME Not sure about the handling of ::, ', and #
+       'variable': [
+               // ${^POSTMATCH}
+               /[&*$@%]\{\^[A-Z]+\}/,
+               // $^V
+               /[&*$@%]\^[A-Z_]/,
+               // ${...}
+               /[&*$@%]#?(?=\{)/,
+               // $foo
+               /[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,
+               // $1
+               /[&*$@%]\d+/,
+               // $_, @_, %!
+               // The negative lookahead prevents from breaking the %= operator
+               /(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/
+       ],
+       'filehandle': {
+               // <>, <FOO>, _
+               pattern: /<(?![<=])\S*>|\b_\b/,
+               alias: 'symbol'
+       },
+       'vstring': {
+               // v1.2, 1.2.3
+               pattern: /v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,
+               alias: 'string'
+       },
+       'function': {
+               pattern: /sub [a-z0-9_]+/i,
+               inside: {
+                       keyword: /sub/
+               }
+       },
+       'keyword': /\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/,
+       'number': /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,
+       'operator': /-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,
+       'punctuation': /[{}[\];(),:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-php-extras.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-php-extras.js
new file mode 100644 (file)
index 0000000..5cc16f8
--- /dev/null
@@ -0,0 +1,13 @@
+define(["prism/prism","prism/components/prism-php"], function () {
+Prism.languages.insertBefore('php', 'variable', {
+       'this': /\$this\b/,
+       'global': /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,
+       'scope': {
+               pattern: /\b[\w\\]+::/,
+               inside: {
+                       keyword: /static|self|parent/,
+                       punctuation: /::|\\/
+               }
+       }
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-php.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-php.js
new file mode 100644 (file)
index 0000000..bea420f
--- /dev/null
@@ -0,0 +1,124 @@
+define(["prism/prism","prism/components/prism-clike","prism/components/prism-markup-templating"], function () {
+/**
+ * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/
+ * Modified by Miles Johnson: http://milesj.me
+ *
+ * Supports the following:
+ *             - Extends clike syntax
+ *             - Support for PHP 5.3+ (namespaces, traits, generators, etc)
+ *             - Smarter constant and function matching
+ *
+ * Adds the following new token classes:
+ *             constant, delimiter, variable, function, package
+ */
+(function (Prism) {
+       Prism.languages.php = Prism.languages.extend('clike', {
+               'keyword': /\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,
+               'constant': /\b[A-Z0-9_]{2,}\b/,
+               'comment': {
+                       pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
+                       lookbehind: true
+               }
+       });
+
+       Prism.languages.insertBefore('php', 'string', {
+               'shell-comment': {
+                       pattern: /(^|[^\\])#.*/,
+                       lookbehind: true,
+                       alias: 'comment'
+               }
+       });
+
+       Prism.languages.insertBefore('php', 'keyword', {
+               'delimiter': {
+                       pattern: /\?>|<\?(?:php|=)?/i,
+                       alias: 'important'
+               },
+               'variable': /\$+(?:\w+\b|(?={))/i,
+               'package': {
+                       pattern: /(\\|namespace\s+|use\s+)[\w\\]+/,
+                       lookbehind: true,
+                       inside: {
+                               punctuation: /\\/
+                       }
+               }
+       });
+
+       // Must be defined after the function pattern
+       Prism.languages.insertBefore('php', 'operator', {
+               'property': {
+                       pattern: /(->)[\w]+/,
+                       lookbehind: true
+               }
+       });
+
+       var string_interpolation = {
+               pattern: /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,
+               lookbehind: true,
+               inside: {
+                       rest: Prism.languages.php
+               }
+       };
+
+       Prism.languages.insertBefore('php', 'string', {
+               'nowdoc-string': {
+                       pattern: /<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,
+                       greedy: true,
+                       alias: 'string',
+                       inside: {
+                               'delimiter': {
+                                       pattern: /^<<<'[^']+'|[a-z_]\w*;$/i,
+                                       alias: 'symbol',
+                                       inside: {
+                                               'punctuation': /^<<<'?|[';]$/
+                                       }
+                               }
+                       }
+               },
+               'heredoc-string': {
+                       pattern: /<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,
+                       greedy: true,
+                       alias: 'string',
+                       inside: {
+                               'delimiter': {
+                                       pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,
+                                       alias: 'symbol',
+                                       inside: {
+                                               'punctuation': /^<<<"?|[";]$/
+                                       }
+                               },
+                               'interpolation': string_interpolation // See below
+                       }
+               },
+               'single-quoted-string': {
+                       pattern: /'(?:\\[\s\S]|[^\\'])*'/,
+                       greedy: true,
+                       alias: 'string'
+               },
+               'double-quoted-string': {
+                       pattern: /"(?:\\[\s\S]|[^\\"])*"/,
+                       greedy: true,
+                       alias: 'string',
+                       inside: {
+                               'interpolation': string_interpolation // See below
+                       }
+               }
+       });
+       // The different types of PHP strings "replace" the C-like standard string
+       delete Prism.languages.php['string'];
+
+       Prism.hooks.add('before-tokenize', function(env) {
+               if (!/(?:<\?php|<\?)/ig.test(env.code)) {
+                       return;
+               }
+
+               var phpPattern = /(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/ig;
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);
+       });
+
+       Prism.hooks.add('after-tokenize', function(env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php');
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-plsql.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-plsql.js
new file mode 100644 (file)
index 0000000..f4fbfc1
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism","prism/components/prism-sql"], function () {
+Prism.languages.plsql = Prism.languages.extend('sql', {
+       'comment': [
+               /\/\*[\s\S]*?\*\//,
+               /--.*/
+       ]
+});
+
+if (Prism.util.type(Prism.languages.plsql['keyword']) !== 'Array') {
+       Prism.languages.plsql['keyword'] = [Prism.languages.plsql['keyword']];
+}
+Prism.languages.plsql['keyword'].unshift(
+       /\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i
+);
+
+if (Prism.util.type(Prism.languages.plsql['operator']) !== 'Array') {
+       Prism.languages.plsql['operator'] = [Prism.languages.plsql['operator']];
+}
+Prism.languages.plsql['operator'].unshift(
+       /:=/
+);
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-powershell.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-powershell.js
new file mode 100644 (file)
index 0000000..dbfced1
--- /dev/null
@@ -0,0 +1,58 @@
+define(["prism/prism"], function () {
+Prism.languages.powershell = {
+       'comment': [
+               {
+                       pattern: /(^|[^`])<#[\s\S]*?#>/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^`])#.*/,
+                       lookbehind: true
+               }
+       ],
+       'string': [
+               {
+                       pattern: /"(?:`[\s\S]|[^`"])*"/,
+                       greedy: true,
+                       inside: {
+                               'function': {
+                                       // Allow for one level of nesting
+                                       pattern: /(^|[^`])\$\((?:\$\(.*?\)|(?!\$\()[^\r\n)])*\)/,
+                                       lookbehind: true,
+                                       // Populated at end of file
+                                       inside: {}
+                               }
+                       }
+               },
+               {
+                       pattern: /'(?:[^']|'')*'/,
+                       greedy: true
+               }
+       ],
+       // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices
+       // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)
+       'namespace': /\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,
+       'boolean': /\$(?:true|false)\b/i,
+       'variable': /\$\w+\b/i,
+       // Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example
+       // Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" }
+       // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" }
+       'function': [
+               /\b(?:Add-(?:Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(?:Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(?:Csv|Json|StringData)|Convert-Path|ConvertTo-(?:Csv|Html|Json|Xml)|Copy-(?:Item|ItemProperty)|Debug-Process|Disable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(?:Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(?:Custom|List|Table|Wide)|Get-(?:Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(?:Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(?:Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(?:Command|Object)|Move-(?:Item|ItemProperty)|New-(?:Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(?:Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(?:Job|PSSession)|Register-(?:EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(?:Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(?:Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(?:Computer|Service)|Restore-Computer|Resume-(?:Job|Service)|Save-Help|Select-(?:Object|String|Xml)|Send-MailMessage|Set-(?:Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(?:Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(?:Job|Process|Service|Sleep|Transaction)|Stop-(?:Computer|Job|Process|Service)|Suspend-(?:Job|Service)|Tee-Object|Test-(?:ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(?:Event|PSSessionConfiguration)|Update-(?:FormatData|Help|List|TypeData)|Use-Transaction|Wait-(?:Event|Job|Process)|Where-Object|Write-(?:Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i,
+               /\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i
+       ],
+       // per http://technet.microsoft.com/en-us/library/hh847744.aspx
+       'keyword': /\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,
+       'operator': {
+               pattern: /(\W?)(?:!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,
+               lookbehind: true
+       },
+       'punctuation': /[|{}[\];(),.]/
+};
+
+// Variable interpolation inside strings, and nested expressions
+Prism.languages.powershell.string[0].inside.boolean = Prism.languages.powershell.boolean;
+Prism.languages.powershell.string[0].inside.variable = Prism.languages.powershell.variable;
+Prism.languages.powershell.string[0].inside.function.inside = Prism.languages.powershell;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-processing.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-processing.js
new file mode 100644 (file)
index 0000000..21c424f
--- /dev/null
@@ -0,0 +1,20 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.processing = Prism.languages.extend('clike', {
+       'keyword': /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,
+       'operator': /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/
+});
+Prism.languages.insertBefore('processing', 'number', {
+       // Special case: XML is a type
+       'constant': /\b(?!XML\b)[A-Z][A-Z\d_]+\b/,
+       'type': {
+               pattern: /\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\w*)\b/,
+               alias: 'variable'
+       }
+});
+
+// Spaces are allowed between function name and parenthesis
+Prism.languages.processing['function'].pattern = /\w+(?=\s*\()/;
+
+// Class-names is not styled by default
+Prism.languages.processing['class-name'].alias = 'variable';
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-prolog.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-prolog.js
new file mode 100644 (file)
index 0000000..931238c
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.prolog = {
+       // Syntax depends on the implementation
+       'comment': [
+               /%.+/,
+               /\/\*[\s\S]*?\*\//
+       ],
+       // Depending on the implementation, strings may allow escaped newlines and quote-escape
+       'string': {
+               pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/,
+       'variable': /\b[A-Z_]\w*/,
+       // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?
+       'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/,
+       'number': /\b\d+\.?\d*/,
+       // Custom operators are allowed
+       'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,
+       'punctuation': /[(){}\[\],]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-properties.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-properties.js
new file mode 100644 (file)
index 0000000..2773f41
--- /dev/null
@@ -0,0 +1,11 @@
+define(["prism/prism"], function () {
+Prism.languages.properties = {
+       'comment': /^[ \t]*[#!].*$/m,
+       'attr-value': {
+               pattern: /(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,
+               lookbehind: true
+       },
+       'attr-name': /^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m,
+       'punctuation': /[=:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-protobuf.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-protobuf.js
new file mode 100644 (file)
index 0000000..df41043
--- /dev/null
@@ -0,0 +1,11 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.protobuf = Prism.languages.extend('clike', {
+       keyword: /\b(?:package|import|message|enum)\b/,
+       builtin: /\b(?:required|repeated|optional|reserved)\b/,
+       primitive: {
+               pattern: /\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,
+               alias: 'symbol'
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-pug.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-pug.js
new file mode 100644 (file)
index 0000000..b038551
--- /dev/null
@@ -0,0 +1,201 @@
+define(["prism/prism","prism/components/prism-javascript","prism/components/prism-coffeescript","prism/components/prism-ejs","prism/components/prism-handlebars","prism/components/prism-hogan","prism/components/prism-less","prism/components/prism-livescript","prism/components/prism-markdown","prism/components/prism-mustache","prism/components/prism-plates","prism/components/prism-scss","prism/components/prism-stylus","prism/components/prism-swig"], function () {
+(function(Prism) {
+       // TODO:
+       // - Add CSS highlighting inside <style> tags
+       // - Add support for multi-line code blocks
+       // - Add support for interpolation #{} and !{}
+       // - Add support for tag interpolation #[]
+       // - Add explicit support for plain text using |
+       // - Add support for markup embedded in plain text
+
+       Prism.languages.pug = {
+
+               // Multiline stuff should appear before the rest
+
+               // This handles both single-line and multi-line comments
+               'comment': {
+                       pattern: /(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ]+.+)*/m,
+                       lookbehind: true
+               },
+
+               // All the tag-related part is in lookbehind
+               // so that it can be highlighted by the "tag" pattern
+               'multiline-script': {
+                       pattern: /(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.javascript
+                       }
+               },
+
+               // See at the end of the file for known filters
+               'filter': {
+                       pattern: /(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
+                       lookbehind: true,
+                       inside: {
+                               'filter-name': {
+                                       pattern: /^:[\w-]+/,
+                                       alias: 'variable'
+                               }
+                       }
+               },
+
+               'multiline-plain-text': {
+                       pattern: /(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
+                       lookbehind: true
+               },
+               'markup': {
+                       pattern: /(^[\t ]*)<.+/m,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.markup
+                       }
+               },
+               'doctype': {
+                       pattern: /((?:^|\n)[\t ]*)doctype(?: .+)?/,
+                       lookbehind: true
+               },
+
+               // This handle all conditional and loop keywords
+               'flow-control': {
+                       pattern: /(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,
+                       lookbehind: true,
+                       inside: {
+                               'each': {
+                                       pattern: /^each .+? in\b/,
+                                       inside: {
+                                               'keyword': /\b(?:each|in)\b/,
+                                               'punctuation': /,/
+                                       }
+                               },
+                               'branch': {
+                                       pattern: /^(?:if|unless|else|case|when|default|while)\b/,
+                                       alias: 'keyword'
+                               },
+                               rest: Prism.languages.javascript
+                       }
+               },
+               'keyword': {
+                       pattern: /(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,
+                       lookbehind: true
+               },
+               'mixin': [
+                       // Declaration
+                       {
+                               pattern: /(^[\t ]*)mixin .+/m,
+                               lookbehind: true,
+                               inside: {
+                                       'keyword': /^mixin/,
+                                       'function': /\w+(?=\s*\(|\s*$)/,
+                                       'punctuation': /[(),.]/
+                               }
+                       },
+                       // Usage
+                       {
+                               pattern: /(^[\t ]*)\+.+/m,
+                               lookbehind: true,
+                               inside: {
+                                       'name': {
+                                               pattern: /^\+\w+/,
+                                               alias: 'function'
+                                       },
+                                       'rest': Prism.languages.javascript
+                               }
+                       }
+               ],
+               'script': {
+                       pattern: /(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m,
+                       lookbehind: true,
+                       inside: {
+                               rest: Prism.languages.javascript
+                       }
+               },
+
+               'plain-text': {
+                       pattern: /(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m,
+                       lookbehind: true
+               },
+               'tag': {
+                       pattern: /(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,
+                       lookbehind: true,
+                       inside: {
+                               'attributes': [
+                                       {
+                                               pattern: /&[^(]+\([^)]+\)/,
+                                               inside: {
+                                                       rest: Prism.languages.javascript
+                                               }
+                                       },
+                                       {
+                                               pattern: /\([^)]+\)/,
+                                               inside: {
+                                                       'attr-value': {
+                                                               pattern: /(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/,
+                                                               lookbehind: true,
+                                                               inside: {
+                                                                       rest: Prism.languages.javascript
+                                                               }
+                                                       },
+                                                       'attr-name': /[\w-]+(?=\s*!?=|\s*[,)])/,
+                                                       'punctuation': /[!=(),]+/
+                                               }
+                                       }
+                               ],
+                               'punctuation': /:/
+                       }
+               },
+               'code': [
+                       {
+                               pattern: /(^[\t ]*(?:-|!?=)).+/m,
+                               lookbehind: true,
+                               inside: {
+                                       rest: Prism.languages.javascript
+                               }
+                       }
+               ],
+               'punctuation': /[.\-!=|]+/
+       };
+
+       var filter_pattern = '(^([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+';
+
+       // Non exhaustive list of available filters and associated languages
+       var filters = [
+               {filter:'atpl',language:'twig'},
+               {filter:'coffee',language:'coffeescript'},
+               'ejs',
+               'handlebars',
+               'hogan',
+               'less',
+               'livescript',
+               'markdown',
+               'mustache',
+               'plates',
+               {filter:'sass',language:'scss'},
+               'stylus',
+               'swig'
+
+       ];
+       var all_filters = {};
+       for (var i = 0, l = filters.length; i < l; i++) {
+               var filter = filters[i];
+               filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
+               if (Prism.languages[filter.language]) {
+                       all_filters['filter-' + filter.filter] = {
+                               pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter), 'm'),
+                               lookbehind: true,
+                               inside: {
+                                       'filter-name': {
+                                               pattern: /^:[\w-]+/,
+                                               alias: 'variable'
+                                       },
+                                       rest: Prism.languages[filter.language]
+                               }
+                       }
+               }
+       }
+
+       Prism.languages.insertBefore('pug', 'filter', all_filters);
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-puppet.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-puppet.js
new file mode 100644 (file)
index 0000000..e54583b
--- /dev/null
@@ -0,0 +1,138 @@
+define(["prism/prism"], function () {
+(function (Prism) {
+       Prism.languages.puppet = {
+               'heredoc': [
+                       // Matches the content of a quoted heredoc string (subject to interpolation)
+                       {
+                               pattern: /(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,
+                               lookbehind: true,
+                               alias: 'string',
+                               inside: {
+                                       // Matches the end tag
+                                       'punctuation': /(?=\S).*\S(?= *$)/
+                                       // See interpolation below
+                               }
+                       },
+                       // Matches the content of an unquoted heredoc string (no interpolation)
+                       {
+                               pattern: /(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,
+                               lookbehind: true,
+                               greedy: true,
+                               alias: 'string',
+                               inside: {
+                                       // Matches the end tag
+                                       'punctuation': /(?=\S).*\S(?= *$)/
+                               }
+                       },
+                       // Matches the start tag of heredoc strings
+                       {
+                               pattern: /@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,
+                               alias: 'string',
+                               inside: {
+                                       'punctuation': {
+                                               pattern: /(\().+?(?=\))/,
+                                               lookbehind: true
+                                       }
+                               }
+                       }
+               ],
+               'multiline-comment': {
+                       pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+                       lookbehind: true,
+                       greedy: true,
+                       alias: 'comment'
+               },
+               'regex': {
+                       // Must be prefixed with the keyword "node" or a non-word char
+                       pattern: /((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,
+                       lookbehind: true,
+                       greedy: true,
+                       inside: {
+                               // Extended regexes must have the x flag. They can contain single-line comments.
+                               'extended-regex': {
+                                       pattern: /^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,
+                                       inside: {
+                                               'comment': /#.*/
+                                       }
+                               }
+                       }
+               },
+               'comment': {
+                       pattern: /(^|[^\\])#.*/,
+                       lookbehind: true,
+                       greedy: true,
+               },
+               'string': {
+                       // Allow for one nested level of double quotes inside interpolation
+                       pattern: /(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|(?!\1)[^\\]|\\[\s\S])*\1/,
+                       greedy: true,
+                       inside: {
+                               'double-quoted': {
+                                       pattern: /^"[\s\S]*"$/,
+                                       inside: {
+                                               // See interpolation below
+                                       }
+                               }
+                       }
+               },
+               'variable': {
+                       pattern: /\$(?:::)?\w+(?:::\w+)*/,
+                       inside: {
+                               'punctuation': /::/
+                       }
+               },
+               'attr-name': /(?:\w+|\*)(?=\s*=>)/,
+               'function': [
+                       {
+                               pattern: /(\.)(?!\d)\w+/,
+                               lookbehind: true
+                       },
+                       /\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/
+               ],
+               'number': /\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,
+               'boolean': /\b(?:true|false)\b/,
+               // Includes words reserved for future use
+               'keyword': /\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,
+               'datatype': {
+                       pattern: /\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,
+                       alias: 'symbol'
+               },
+               'operator': /=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,
+               'punctuation': /[\[\]{}().,;]|:+/
+       };
+
+       var interpolation = [
+               {
+                       // Allow for one nested level of braces inside interpolation
+                       pattern: /(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,
+                       lookbehind: true,
+                       inside: {
+                               'short-variable': {
+                                       // Negative look-ahead prevent wrong highlighting of functions
+                                       pattern: /(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,
+                                       lookbehind: true,
+                                       alias: 'variable',
+                                       inside: {
+                                               'punctuation': /::/
+                                       }
+                               },
+                               'delimiter': {
+                                       pattern: /^\$/,
+                                       alias: 'variable'
+                               },
+                               rest: Prism.languages.puppet
+                       }
+               },
+               {
+                       pattern: /(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,
+                       lookbehind: true,
+                       alias: 'variable',
+                       inside: {
+                               'punctuation': /::/
+                       }
+               }
+       ];
+       Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation;
+       Prism.languages.puppet['string'].inside['double-quoted'].inside.interpolation = interpolation;
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-pure.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-pure.js
new file mode 100644 (file)
index 0000000..1c12ace
--- /dev/null
@@ -0,0 +1,83 @@
+define(["prism/prism","prism/components/prism-c","prism/components/prism-cpp","prism/components/prism-fortran","prism/components/prism-ats","prism/components/prism-dsp"], function () {
+(function (Prism) {
+       Prism.languages.pure = {
+               'comment': [
+                       {
+                               pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+                               lookbehind: true
+                       },
+                       {
+                               pattern: /(^|[^\\:])\/\/.*/,
+                               lookbehind: true
+                       },
+                       /#!.+/
+               ],
+               'inline-lang': {
+                       pattern: /%<[\s\S]+?%>/,
+                       greedy: true,
+                       inside: {
+                               'lang': {
+                                       pattern: /(^%< *)-\*-.+?-\*-/,
+                                       lookbehind: true,
+                                       alias: 'comment'
+                               },
+                               'delimiter': {
+                                       pattern: /^%<.*|%>$/,
+                                       alias: 'punctuation'
+                               }
+                       }
+               },
+               'string': {
+                       pattern: /"(?:\\.|[^"\\\r\n])*"/,
+                       greedy: true
+               },
+               'number': {
+                       // The look-behind prevents wrong highlighting of the .. operator
+                       pattern: /((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d)?|\B\.\d)\d*(?:e[+-]?\d+)?L?)/i,
+                       lookbehind: true
+               },
+               'keyword': /\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,
+               'function': /\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,
+               'special': {
+                       pattern: /\b__[a-z]+__\b/i,
+                       alias: 'builtin'
+               },
+               // Any combination of operator chars can be an operator
+               'operator': /(?=\b_|[^_])[!"#$%&'*+,\-.\/:<=>?@\\^_`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]+|\b(?:and|div|mod|not|or)\b/,
+               // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?
+               'punctuation': /[(){}\[\];,|]/
+       };
+
+       var inlineLanguages = [
+               'c',
+               { lang: 'c++', alias: 'cpp' },
+               'fortran',
+               'ats',
+               'dsp'
+       ];
+       var inlineLanguageRe = '%< *-\\*- *{lang}\\d* *-\\*-[\\s\\S]+?%>';
+
+       inlineLanguages.forEach(function (lang) {
+               var alias = lang;
+               if (typeof lang !== 'string') {
+                       alias = lang.alias;
+                       lang = lang.lang;
+               }
+               if (Prism.languages[alias]) {
+                       var o = {};
+                       o['inline-lang-' + alias] = {
+                               pattern: RegExp(inlineLanguageRe.replace('{lang}', lang.replace(/([.+*?\/\\(){}\[\]])/g,'\\$1')), 'i'),
+                               inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)
+                       };
+                       o['inline-lang-' + alias].inside.rest = Prism.util.clone(Prism.languages[alias]);
+                       Prism.languages.insertBefore('pure', 'inline-lang', o);
+               }
+       });
+
+       // C is the default inline language
+       if (Prism.languages.c) {
+               Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(Prism.languages.c);
+       }
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-python.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-python.js
new file mode 100644 (file)
index 0000000..c12183e
--- /dev/null
@@ -0,0 +1,32 @@
+define(["prism/prism"], function () {
+Prism.languages.python = {
+       'comment': {
+               pattern: /(^|[^\\])#.*/,
+               lookbehind: true
+       },
+       'triple-quoted-string': {
+               pattern: /("""|''')[\s\S]+?\1/,
+               greedy: true,
+               alias: 'string'
+       },
+       'string': {
+               pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'function': {
+               pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,
+               lookbehind: true
+       },
+       'class-name': {
+               pattern: /(\bclass\s+)\w+/i,
+               lookbehind: true
+       },
+       'keyword': /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\b/,
+       'builtin':/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,
+       'boolean': /\b(?:True|False|None)\b/,
+       'number': /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,
+       'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,
+       'punctuation': /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-q.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-q.js
new file mode 100644 (file)
index 0000000..7bde867
--- /dev/null
@@ -0,0 +1,53 @@
+define(["prism/prism"], function () {
+Prism.languages.q = {
+       'string': /"(?:\\.|[^"\\\r\n])*"/,
+       'comment': [
+               // From http://code.kx.com/wiki/Reference/Slash:
+               // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.
+               {
+
+                       pattern: /([\t )\]}])\/.*/,
+                       lookbehind: true,
+                       greedy: true
+               },
+               // From http://code.kx.com/wiki/Reference/Slash:
+               // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.
+               // A / on a line by itself begins a multiline comment which is terminated by the next \ on a line by itself.
+               // If a / is not matched by a \, the multiline comment is unterminated and continues to end of file.
+               // The / and \ must be the first char on the line, but may be followed by any amount of whitespace.
+               {
+                       pattern: /(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,
+                       lookbehind: true,
+                       greedy: true
+               },
+               // From http://code.kx.com/wiki/Reference/Slash:
+               // A \ on a line by itself with no preceding matching / will comment to end of file.
+               {
+                       pattern: /^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,
+                       greedy: true
+               },
+               {
+                       pattern: /^#!.+/m,
+                       greedy: true
+               }
+       ],
+       'symbol': /`(?::\S+|[\w.]*)/,
+       'datetime': {
+               pattern: /0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,
+               alias: 'number'
+       },
+       // The negative look-ahead prevents bad highlighting
+       // of verbs 0: and 1:
+       'number': /\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+\.?\d*(?:e[+-]?\d+)?[hjfeb]?)/,
+       'keyword': /\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,
+       'adverb': {
+               pattern: /['\/\\]:?|\beach\b/,
+               alias: 'function'
+       },
+       'verb': {
+               pattern: /(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?_~=|$&#@^]):?/,
+               alias: 'operator'
+       },
+       'punctuation': /[(){}\[\];.]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-qore.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-qore.js
new file mode 100644 (file)
index 0000000..9056a44
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.qore = Prism.languages.extend('clike', {
+       'comment': {
+               pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,
+               lookbehind: true
+       },
+       // Overridden to allow unescaped multi-line strings
+       'string': {
+               pattern: /("|')(\\[\s\S]|(?!\1)[^\\])*\1/,
+               greedy: true
+       },
+       'variable': /\$(?!\d)\w+\b/,
+       'keyword': /\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,
+       'number': /\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i,
+       'boolean': /\b(?:true|false)\b/i,
+       'operator': {
+               pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,
+               lookbehind: true
+       },
+       'function': /\$?\b(?!\d)\w+(?=\()/
+});
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-r.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-r.js
new file mode 100644 (file)
index 0000000..d4c72e5
--- /dev/null
@@ -0,0 +1,24 @@
+define(["prism/prism"], function () {
+Prism.languages.r = {
+       'comment': /#.*/,
+       'string': {
+               pattern: /(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'percent-operator': {
+               // Includes user-defined operators
+               // and %%, %*%, %/%, %in%, %o%, %x%
+               pattern: /%[^%\s]*%/,
+               alias: 'operator'
+       },
+       'boolean': /\b(?:TRUE|FALSE)\b/,
+       'ellipsis': /\.\.(?:\.|\d+)/,
+       'number': [
+               /\b(?:NaN|Inf)\b/,
+               /(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/
+       ],
+       'keyword': /\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,
+       'operator': /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,
+       'punctuation': /[(){}\[\],;]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-reason.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-reason.js
new file mode 100644 (file)
index 0000000..ef5232e
--- /dev/null
@@ -0,0 +1,34 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+Prism.languages.reason = Prism.languages.extend('clike', {
+       'comment': {
+               pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+               lookbehind: true
+       },
+       'string': {
+               pattern: /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,
+               greedy: true
+       },
+       // 'class-name' must be matched *after* 'constructor' defined below
+       'class-name': /\b[A-Z]\w*/,
+       'keyword': /\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,
+       'operator': /\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/
+});
+Prism.languages.insertBefore('reason', 'class-name', {
+       'character': {
+               pattern: /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,
+               alias: 'string'
+       },
+       'constructor': {
+               // Negative look-ahead prevents from matching things like String.capitalize
+               pattern: /\b[A-Z]\w*\b(?!\s*\.)/,
+               alias: 'variable'
+       },
+       'label': {
+               pattern: /\b[a-z]\w*(?=::)/,
+               alias: 'symbol'
+       }
+});
+
+// We can't match functions property, so let's not even try.
+delete Prism.languages.reason.function;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-renpy.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-renpy.js
new file mode 100644 (file)
index 0000000..fb64a48
--- /dev/null
@@ -0,0 +1,32 @@
+define(["prism/prism"], function () {
+Prism.languages.renpy= {
+       // TODO Write tests.
+
+       'comment': {
+               pattern: /(^|[^\\])#.+/,
+               lookbehind: true
+       },
+
+       'string': {
+               pattern: /("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,
+               greedy: true
+       },
+
+       'function' : /[a-z_]\w*(?=\()/i,
+
+       'property': /\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,
+
+       'tag': /\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,
+
+       'keyword' : /\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,
+
+       'boolean' : /\b(?:[Tt]rue|[Ff]alse)\b/,
+
+       'number' : /(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*)|\B\.\d+)(?:e[+-]?\d+)?j?/i,
+
+       'operator' : /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,
+
+       'punctuation' : /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-rest.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-rest.js
new file mode 100644 (file)
index 0000000..6139d39
--- /dev/null
@@ -0,0 +1,207 @@
+define(["prism/prism"], function () {
+Prism.languages.rest = {
+       'table': [
+               {
+                       pattern: /(\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1(?:[+|].+)+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/,
+                       lookbehind: true,
+                       inside: {
+                               'punctuation': /\||(?:\+[=-]+)+\+/
+                       }
+               },
+               {
+                       pattern: /(\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$)/,
+                       lookbehind: true,
+                       inside: {
+                               'punctuation': /[=-]+/
+                       }
+               }
+       ],
+
+       // Directive-like patterns
+
+       'substitution-def': {
+               pattern: /(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,
+               lookbehind: true,
+               inside: {
+                       'substitution': {
+                               pattern: /^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,
+                               alias: 'attr-value',
+                               inside: {
+                                       'punctuation': /^\||\|$/
+                               }
+                       },
+                       'directive': {
+                               pattern: /( +)[^:]+::/,
+                               lookbehind: true,
+                               alias: 'function',
+                               inside: {
+                                       'punctuation': /::$/
+                               }
+                       }
+               }
+       },
+       'link-target': [
+               {
+                       pattern: /(^\s*\.\. )\[[^\]]+\]/m,
+                       lookbehind: true,
+                       alias: 'string',
+                       inside: {
+                               'punctuation': /^\[|\]$/
+                       }
+               },
+               {
+                       pattern: /(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,
+                       lookbehind: true,
+                       alias: 'string',
+                       inside: {
+                               'punctuation': /^_|:$/
+                       }
+               }
+       ],
+       'directive': {
+               pattern: /(^\s*\.\. )[^:]+::/m,
+               lookbehind: true,
+               alias: 'function',
+               inside: {
+                       'punctuation': /::$/
+               }
+       },
+       'comment': {
+               // The two alternatives try to prevent highlighting of blank comments
+               pattern: /(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,
+               lookbehind: true
+       },
+
+       'title': [
+               // Overlined and underlined
+               {
+                       pattern: /^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,
+                       inside: {
+                               'punctuation': /^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
+                               'important': /.+/
+                       }
+               },
+
+               // Underlined only
+               {
+                       pattern: /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,
+                       lookbehind: true,
+                       inside: {
+                               'punctuation': /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,
+                               'important': /.+/
+                       }
+               }
+       ],
+       'hr': {
+               pattern: /((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,
+               lookbehind: true,
+               alias: 'punctuation'
+       },
+       'field': {
+               pattern: /(^\s*):[^:\r\n]+:(?= )/m,
+               lookbehind: true,
+               alias: 'attr-name'
+       },
+       'command-line-option': {
+               pattern: /(^\s*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,
+               lookbehind: true,
+               alias: 'symbol'
+       },
+       'literal-block': {
+               pattern: /::(?:\r?\n|\r){2}([ \t]+).+(?:(?:\r?\n|\r)\1.+)*/,
+               inside: {
+                       'literal-block-punctuation': {
+                               pattern: /^::/,
+                               alias: 'punctuation'
+                       }
+               }
+       },
+       'quoted-literal-block': {
+               pattern: /::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,
+               inside: {
+                       'literal-block-punctuation': {
+                               pattern: /^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,
+                               alias: 'punctuation'
+                       }
+               }
+       },
+       'list-bullet': {
+               pattern: /(^\s*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,
+               lookbehind: true,
+               alias: 'punctuation'
+       },
+       'doctest-block': {
+               pattern: /(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,
+               lookbehind: true,
+               inside: {
+                       'punctuation': /^>>>/
+               }
+       },
+
+       'inline': [
+               {
+                       pattern: /(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s).*?[^\s]\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,
+                       lookbehind: true,
+                       inside: {
+                               'bold': {
+                                       pattern: /(^\*\*).+(?=\*\*$)/,
+                                       lookbehind: true
+                               },
+                               'italic': {
+                                       pattern: /(^\*).+(?=\*$)/,
+                                       lookbehind: true
+                               },
+                               'inline-literal': {
+                                       pattern: /(^``).+(?=``$)/,
+                                       lookbehind: true,
+                                       alias: 'symbol'
+                               },
+                               'role': {
+                                       pattern: /^:[^:]+:|:[^:]+:$/,
+                                       alias: 'function',
+                                       inside: {
+                                               'punctuation': /^:|:$/
+                                       }
+                               },
+                               'interpreted-text': {
+                                       pattern: /(^`).+(?=`$)/,
+                                       lookbehind: true,
+                                       alias: 'attr-value'
+                               },
+                               'substitution': {
+                                       pattern: /(^\|).+(?=\|$)/,
+                                       lookbehind: true,
+                                       alias: 'attr-value'
+                               },
+                               'punctuation': /\*\*?|``?|\|/
+                       }
+               }
+       ],
+
+       'link': [
+               {
+                       pattern: /\[[^\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,
+                       alias: 'string',
+                       inside: {
+                               'punctuation': /^\[|\]_$/
+                       }
+               },
+               {
+                       pattern: /(?:\b[a-z\d](?:[_.:+]?[a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,
+                       alias: 'string',
+                       inside: {
+                               'punctuation': /^_?`|`$|`?_?_$/
+                       }
+               }
+       ],
+
+       // Line block start,
+       // quote attribution,
+       // explicit markup start,
+       // and anonymous hyperlink target shortcut (__)
+       'punctuation': {
+               pattern: /(^\s*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,
+               lookbehind: true
+       }
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-rip.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-rip.js
new file mode 100644 (file)
index 0000000..294950c
--- /dev/null
@@ -0,0 +1,35 @@
+define(["prism/prism"], function () {
+Prism.languages.rip = {
+       'comment': /#.*/,
+
+       'keyword': /(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,
+
+       'builtin': /@|\bSystem\b/,
+
+       'boolean': /\b(?:true|false)\b/,
+
+       'date': /\b\d{4}-\d{2}-\d{2}\b/,
+       'time': /\b\d{2}:\d{2}:\d{2}\b/,
+       'datetime': /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,
+
+       'character': /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,
+
+       'regex': {
+               pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,
+               lookbehind: true,
+               greedy: true
+       },
+
+       'symbol': /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,
+       'string': {
+               pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               greedy: true
+       },
+       'number': /[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,
+
+       'punctuation': /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,
+
+       'reference': /[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-roboconf.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-roboconf.js
new file mode 100644 (file)
index 0000000..995f5fd
--- /dev/null
@@ -0,0 +1,29 @@
+define(["prism/prism"], function () {
+Prism.languages.roboconf = {
+       'comment': /#.*/,
+       'keyword': {
+               'pattern': /(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,
+               lookbehind: true
+       },
+       'component': {
+               pattern: /[\w-]+(?=[ \t]*\{)/,
+               alias: 'variable'
+       },
+       'property': /[\w.-]+(?=[ \t]*:)/,
+       'value': {
+               pattern: /(=[ \t]*)[^,;]+/,
+               lookbehind: true,
+               alias: 'attr-value'
+       },
+       'optional': {
+               pattern: /\(optional\)/,
+               alias: 'builtin'
+       },
+       'wildcard': {
+               pattern: /(\.)\*/,
+               lookbehind: true,
+               alias: 'operator'
+       },
+       'punctuation': /[{},.;:=]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-ruby.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-ruby.js
new file mode 100644 (file)
index 0000000..d01d405
--- /dev/null
@@ -0,0 +1,133 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+/**
+ * Original by Samuel Flores
+ *
+ * Adds the following new token classes:
+ *             constant, builtin, variable, symbol, regex
+ */
+(function(Prism) {
+       Prism.languages.ruby = Prism.languages.extend('clike', {
+               'comment': [
+                       /#.*/,
+                       {
+                               pattern: /^=begin(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?=end/m,
+                               greedy: true
+                       }
+               ],
+               'keyword': /\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/
+       });
+
+       var interpolation = {
+               pattern: /#\{[^}]+\}/,
+               inside: {
+                       'delimiter': {
+                               pattern: /^#\{|\}$/,
+                               alias: 'tag'
+                       },
+                       rest: Prism.languages.ruby
+               }
+       };
+
+       Prism.languages.insertBefore('ruby', 'keyword', {
+               'regex': [
+                       {
+                               pattern: /%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,
+                               greedy: true,
+                               inside: {
+                                       'interpolation': interpolation
+                               }
+                       },
+                       {
+                               pattern: /%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,
+                               greedy: true,
+                               inside: {
+                                       'interpolation': interpolation
+                               }
+                       },
+                       {
+                               // Here we need to specifically allow interpolation
+                               pattern: /%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,
+                               greedy: true,
+                               inside: {
+                                       'interpolation': interpolation
+                               }
+                       },
+                       {
+                               pattern: /%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,
+                               greedy: true,
+                               inside: {
+                                       'interpolation': interpolation
+                               }
+                       },
+                       {
+                               pattern: /%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,
+                               greedy: true,
+                               inside: {
+                                       'interpolation': interpolation
+                               }
+                       },
+                       {
+                               pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,
+                               lookbehind: true,
+                               greedy: true
+                       }
+               ],
+               'variable': /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,
+               'symbol': {
+                       pattern: /(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,
+                       lookbehind: true
+               }
+       });
+
+       Prism.languages.insertBefore('ruby', 'number', {
+               'builtin': /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,
+               'constant': /\b[A-Z]\w*(?:[?!]|\b)/
+       });
+
+       Prism.languages.ruby.string = [
+               {
+                       pattern: /%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               },
+               {
+                       pattern: /%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               },
+               {
+                       // Here we need to specifically allow interpolation
+                       pattern: /%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               },
+               {
+                       pattern: /%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               },
+               {
+                       pattern: /%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               },
+               {
+                       pattern: /("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+                       greedy: true,
+                       inside: {
+                               'interpolation': interpolation
+                       }
+               }
+       ];
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-rust.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-rust.js
new file mode 100644 (file)
index 0000000..29e21bb
--- /dev/null
@@ -0,0 +1,70 @@
+define(["prism/prism"], function () {
+/* TODO
+       Add support for Markdown notation inside doc comments
+       Add support for nested block comments...
+       Match closure params even when not followed by dash or brace
+       Add better support for macro definition
+*/
+
+Prism.languages.rust = {
+       'comment': [
+               {
+                       pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^|[^\\:])\/\/.*/,
+                       lookbehind: true
+               }
+       ],
+       'string': [
+               {
+                       pattern: /b?r(#*)"(?:\\.|(?!"\1)[^\\\r\n])*"\1/,
+                       greedy: true
+               },
+               {
+                       pattern: /b?"(?:\\.|[^\\\r\n"])*"/,
+                       greedy: true
+               }
+       ],
+       'char': {
+               pattern: /b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/,
+               alias: 'string'
+       },
+       'lifetime-annotation': {
+               pattern: /'[^\s>']+/,
+               alias: 'symbol'
+       },
+       'keyword': /\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,
+
+       'attribute': {
+               pattern: /#!?\[.+?\]/,
+               greedy: true,
+               alias: 'attr-name'
+       },
+
+       'function': [
+               /\w+(?=\s*\()/,
+               // Macros can use parens or brackets
+               /\w+!(?=\s*\(|\[)/
+       ],
+       'macro-rules': {
+               pattern: /\w+!/,
+               alias: 'function'
+       },
+
+       // Hex, oct, bin, dec numbers with visual separators and type suffix
+       'number': /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,
+
+       // Closure params should not be confused with bitwise OR |
+       'closure-params': {
+               pattern: /\|[^|]*\|(?=\s*[{-])/,
+               inside: {
+                       'punctuation': /[|:,]/,
+                       'operator': /[&*]/
+               }
+       },
+       'punctuation': /[{}[\];(),:]|\.+|->/,
+       'operator': /[-+*\/%!^]=?|=[=>]?|@|&[&=]?|\|[|=]?|<<?=?|>>?=?/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-sas.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-sas.js
new file mode 100644 (file)
index 0000000..c6d8ea1
--- /dev/null
@@ -0,0 +1,37 @@
+define(["prism/prism"], function () {
+Prism.languages.sas = {
+       'datalines': {
+               pattern: /^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,
+               alias: 'string',
+               inside: {
+                       'keyword': {
+                               pattern: /^(\s*)(?:(?:data)?lines|cards)/i,
+                               lookbehind: true
+                       },
+                       'punctuation': /;/
+               }
+       },
+       'comment': [
+               {
+                       pattern: /(^\s*|;\s*)\*.*;/m,
+                       lookbehind: true
+               },
+               /\/\*[\s\S]+?\*\//
+       ],
+       'datetime': {
+               // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt
+               pattern: /'[^']+'(?:dt?|t)\b/i,
+               alias: 'number'
+       },
+       'string': {
+               pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/,
+               greedy: true
+       },
+       'keyword': /\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,
+       // Decimal (1.2e23), hexadecimal (0c1x)
+       'number': /\b(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,
+       'operator': /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,
+       'punctuation': /[$%@.(){}\[\];,\\]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-sass.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-sass.js
new file mode 100644 (file)
index 0000000..3fc647d
--- /dev/null
@@ -0,0 +1,75 @@
+define(["prism/prism","prism/components/prism-css"], function () {
+(function(Prism) {
+       Prism.languages.sass = Prism.languages.extend('css', {
+               // Sass comments don't need to be closed, only indented
+               'comment': {
+                       pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,
+                       lookbehind: true
+               }
+       });
+
+       Prism.languages.insertBefore('sass', 'atrule', {
+               // We want to consume the whole line
+               'atrule-line': {
+                       // Includes support for = and + shortcuts
+                       pattern: /^(?:[ \t]*)[@+=].+/m,
+                       inside: {
+                               'atrule': /(?:@[\w-]+|[+=])/m
+                       }
+               }
+       });
+       delete Prism.languages.sass.atrule;
+
+
+       var variable = /\$[-\w]+|#\{\$[-\w]+\}/;
+       var operator = [
+               /[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,
+               {
+                       pattern: /(\s+)-(?=\s)/,
+                       lookbehind: true
+               }
+       ];
+
+       Prism.languages.insertBefore('sass', 'property', {
+               // We want to consume the whole line
+               'variable-line': {
+                       pattern: /^[ \t]*\$.+/m,
+                       inside: {
+                               'punctuation': /:/,
+                               'variable': variable,
+                               'operator': operator
+                       }
+               },
+               // We want to consume the whole line
+               'property-line': {
+                       pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,
+                       inside: {
+                               'property': [
+                                       /[^:\s]+(?=\s*:)/,
+                                       {
+                                               pattern: /(:)[^:\s]+/,
+                                               lookbehind: true
+                                       }
+                               ],
+                               'punctuation': /:/,
+                               'variable': variable,
+                               'operator': operator,
+                               'important': Prism.languages.sass.important
+                       }
+               }
+       });
+       delete Prism.languages.sass.property;
+       delete Prism.languages.sass.important;
+
+       // Now that whole lines for other patterns are consumed,
+       // what's left should be selectors
+       delete Prism.languages.sass.selector;
+       Prism.languages.insertBefore('sass', 'punctuation', {
+               'selector': {
+                       pattern: /([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,
+                       lookbehind: true
+               }
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-scala.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-scala.js
new file mode 100644 (file)
index 0000000..50feab1
--- /dev/null
@@ -0,0 +1,21 @@
+define(["prism/prism","prism/components/prism-java"], function () {
+Prism.languages.scala = Prism.languages.extend('java', {
+       'keyword': /<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,
+       'string': [
+               {
+                       pattern: /"""[\s\S]*?"""/,
+                       greedy: true
+               },
+               {
+                       pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+                       greedy: true
+               }
+       ],
+       'builtin': /\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,
+       'number': /\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,
+       'symbol': /'[^\d\s\\]\w*/
+});
+delete Prism.languages.scala['class-name'];
+delete Prism.languages.scala['function'];
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-scheme.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-scheme.js
new file mode 100644 (file)
index 0000000..ab53cc4
--- /dev/null
@@ -0,0 +1,31 @@
+define(["prism/prism"], function () {
+Prism.languages.scheme = {
+       'comment' : /;.*/,
+       'string' :  {
+               pattern: /"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,
+               greedy: true
+       },
+       'keyword' : {
+               pattern : /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,
+               lookbehind : true
+       },
+       'builtin' : {
+               pattern :  /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,
+               lookbehind : true
+       },
+       'number' : {
+               pattern: /(\s|[()])[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,
+               lookbehind: true
+       },
+       'boolean' : /#[tf]/,
+       'operator': {
+               pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)/,
+               lookbehind: true
+       },
+       'function' : {
+               pattern : /(\()[^\s()]*(?=[\s)])/,
+               lookbehind : true
+       },
+       'punctuation' : /[()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-scss.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-scss.js
new file mode 100644 (file)
index 0000000..a86b207
--- /dev/null
@@ -0,0 +1,78 @@
+define(["prism/prism","prism/components/prism-css"], function () {
+Prism.languages.scss = Prism.languages.extend('css', {
+       'comment': {
+               pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
+               lookbehind: true
+       },
+       'atrule': {
+               pattern: /@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,
+               inside: {
+                       'rule': /@[\w-]+/
+                       // See rest below
+               }
+       },
+       // url, compassified
+       'url': /(?:[-a-z]+-)*url(?=\()/i,
+       // CSS selector regex is not appropriate for Sass
+       // since there can be lot more things (var, @ directive, nesting..)
+       // a selector must start at the end of a property or after a brace (end of other rules or nesting)
+       // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable
+       // the end of a selector is found when there is no rules in it ( {} or {\s}) or if there is a property (because an interpolated var
+       // can "pass" as a selector- e.g: proper#{$erty})
+       // this one was hard to do, so please be careful if you edit this one :)
+       'selector': {
+               // Initial look-ahead is used to prevent matching of blank selectors
+               pattern: /(?=\S)[^@;{}()]?(?:[^@;{}()]|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,
+               inside: {
+                       'parent': {
+                               pattern: /&/,
+                               alias: 'important'
+                       },
+                       'placeholder': /%[-\w]+/,
+                       'variable': /\$[-\w]+|#\{\$[-\w]+\}/
+               }
+       }
+});
+
+Prism.languages.insertBefore('scss', 'atrule', {
+       'keyword': [
+               /@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,
+               {
+                       pattern: /( +)(?:from|through)(?= )/,
+                       lookbehind: true
+               }
+       ]
+});
+
+Prism.languages.scss.property = {
+       pattern: /(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i,
+       inside: {
+               'variable': /\$[-\w]+|#\{\$[-\w]+\}/
+       }
+};
+
+Prism.languages.insertBefore('scss', 'important', {
+       // var and interpolated vars
+       'variable': /\$[-\w]+|#\{\$[-\w]+\}/
+});
+
+Prism.languages.insertBefore('scss', 'function', {
+       'placeholder': {
+               pattern: /%[-\w]+/,
+               alias: 'selector'
+       },
+       'statement': {
+               pattern: /\B!(?:default|optional)\b/i,
+               alias: 'keyword'
+       },
+       'boolean': /\b(?:true|false)\b/,
+       'null': /\bnull\b/,
+       'operator': {
+               pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,
+               lookbehind: true
+       }
+});
+
+Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-smalltalk.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-smalltalk.js
new file mode 100644 (file)
index 0000000..2629caa
--- /dev/null
@@ -0,0 +1,33 @@
+define(["prism/prism"], function () {
+Prism.languages.smalltalk = {
+       'comment': /"(?:""|[^"])+"/,
+       'string': /'(?:''|[^'])+'/,
+       'symbol': /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,
+       'block-arguments': {
+               pattern: /(\[\s*):[^\[|]*\|/,
+               lookbehind: true,
+               inside: {
+                       'variable': /:[\da-z]+/i,
+                       'punctuation': /\|/
+               }
+       },
+       'temporary-variables': {
+               pattern: /\|[^|]+\|/,
+               inside: {
+                       'variable': /[\da-z]+/i,
+                       'punctuation': /\|/
+               }
+       },
+       'keyword': /\b(?:nil|true|false|self|super|new)\b/,
+       'character': {
+               pattern: /\$./,
+               alias: 'string'
+       },
+       'number': [
+               /\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,
+               /\b\d+(?:\.\d+)?(?:e-?\d+)?/
+       ],
+       'operator': /[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,
+       'punctuation': /[.;:?\[\](){}]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-smarty.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-smarty.js
new file mode 100644 (file)
index 0000000..a6da7bd
--- /dev/null
@@ -0,0 +1,98 @@
+define(["prism/prism","prism/components/prism-markup-templating"], function () {
+/* TODO
+       Add support for variables inside double quoted strings
+       Add support for {php}
+*/
+
+(function(Prism) {
+
+       Prism.languages.smarty = {
+               'comment': /\{\*[\s\S]*?\*\}/,
+               'delimiter': {
+                       pattern: /^\{|\}$/i,
+                       alias: 'punctuation'
+               },
+               'string': /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,
+               'number': /\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,
+               'variable': [
+                       /\$(?!\d)\w+/,
+                       /#(?!\d)\w+#/,
+                       {
+                               pattern: /(\.|->)(?!\d)\w+/,
+                               lookbehind: true
+                       },
+                       {
+                               pattern: /(\[)(?!\d)\w+(?=\])/,
+                               lookbehind: true
+                       }
+               ],
+               'function': [
+                       {
+                               pattern: /(\|\s*)@?(?!\d)\w+/,
+                               lookbehind: true
+                       },
+                       /^\/?(?!\d)\w+/,
+                       /(?!\d)\w+(?=\()/
+               ],
+               'attr-name': {
+                       // Value is made optional because it may have already been tokenized
+                       pattern: /\w+\s*=\s*(?:(?!\d)\w+)?/,
+                       inside: {
+                               "variable": {
+                                       pattern: /(=\s*)(?!\d)\w+/,
+                                       lookbehind: true
+                               },
+                               "operator": /=/
+                       }
+               },
+               'punctuation': [
+                       /[\[\]().,:`]|->/
+               ],
+               'operator': [
+                       /[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,
+                       /\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,
+                       /\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/
+               ],
+               'keyword': /\b(?:false|off|on|no|true|yes)\b/
+       };
+
+       // Comments are inserted at top so that they can
+       // surround markup
+       Prism.languages.insertBefore('smarty', 'tag', {
+               'smarty-comment': {
+                       pattern: /\{\*[\s\S]*?\*\}/,
+                       alias: ['smarty','comment']
+               }
+       });
+
+       // Tokenize all inline Smarty expressions
+       Prism.hooks.add('before-tokenize', function(env) {
+               var smartyPattern = /\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g;
+               var smartyLitteralStart = '{literal}';
+               var smartyLitteralEnd = '{/literal}';
+               var smartyLitteralMode = false;
+
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'smarty', smartyPattern, function (match) {
+                       // Smarty tags inside {literal} block are ignored
+                       if(match === smartyLitteralEnd) {
+                               smartyLitteralMode = false;
+                       }
+
+                       if(!smartyLitteralMode) {
+                               if(match === smartyLitteralStart) {
+                                       smartyLitteralMode = true;
+                               }
+
+                               return true;
+                       }
+                       return false;
+               });
+       });
+
+       // Re-insert the tokens after tokenizing
+       Prism.hooks.add('after-tokenize', function(env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty');
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-soy.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-soy.js
new file mode 100644 (file)
index 0000000..37331b3
--- /dev/null
@@ -0,0 +1,98 @@
+define(["prism/prism","prism/components/prism-markup-templating"], function () {
+(function (Prism) {
+       var stringPattern = /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
+       var numberPattern = /\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;
+
+       Prism.languages.soy = {
+               'comment': [
+                       /\/\*[\s\S]*?\*\//,
+                       {
+                               pattern: /(\s)\/\/.*/,
+                               lookbehind: true,
+                               greedy: true
+                       }
+               ],
+               'command-arg': {
+                       pattern: /({+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,
+                       lookbehind: true,
+                       alias: 'string',
+                       inside: {
+                               'punctuation': /\./
+                       }
+               },
+               'parameter': {
+                       pattern: /({+\/?\s*@?param\??\s+)\.?[\w.]+/,
+                       lookbehind: true,
+                       alias: 'variable'
+               },
+               'keyword': [
+                       {
+                               pattern: /({+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,
+                               lookbehind: true
+                       },
+                       /\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/
+               ],
+               'delimiter': {
+                       pattern: /^{+\/?|\/?}+$/,
+                       alias: 'punctuation'
+               },
+               'property': /\w+(?==)/,
+               'variable': {
+                       pattern: /\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+]))*/,
+                       inside: {
+                               'string': {
+                                       pattern: stringPattern,
+                                       greedy: true
+                               },
+                               'number': numberPattern,
+                               'punctuation': /[\[\].?]/
+                       }
+               },
+               'string': {
+                       pattern: stringPattern,
+                       greedy: true
+               },
+               'function': [
+                       /\w+(?=\()/,
+                       {
+                               pattern: /(\|[^\S\r\n]*)\w+/,
+                               lookbehind: true
+                       }
+               ],
+               'boolean': /\b(?:true|false)\b/,
+               'number': numberPattern,
+               'operator': /\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,
+               'punctuation': /[{}()\[\]|.,:]/
+       };
+
+       // Tokenize all inline Soy expressions
+       Prism.hooks.add('before-tokenize', function (env) {
+               var soyPattern = /{{.+?}}|{.+?}|\s\/\/.*|\/\*[\s\S]*?\*\//g;
+               var soyLitteralStart = '{literal}';
+               var soyLitteralEnd = '{/literal}';
+               var soyLitteralMode = false;
+
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'soy', soyPattern, function (match) {
+                       // Soy tags inside {literal} block are ignored
+                       if (match === soyLitteralEnd) {
+                               soyLitteralMode = false;
+                       }
+
+                       if (!soyLitteralMode) {
+                               if (match === soyLitteralStart) {
+                                       soyLitteralMode = true;
+                               }
+
+                               return true;
+                       }
+                       return false;
+               });
+       });
+
+       // Re-insert the tokens after tokenizing
+       Prism.hooks.add('after-tokenize', function (env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy');
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-sql.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-sql.js
new file mode 100644 (file)
index 0000000..ea7943e
--- /dev/null
@@ -0,0 +1,27 @@
+define(["prism/prism"], function () {
+Prism.languages.sql = {
+       'comment': {
+               pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,
+               lookbehind: true
+       },
+       'variable': [
+               {
+                       pattern: /@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,
+                       greedy: true
+               },
+               /@[\w.$]+/
+       ],
+       'string': {
+               pattern: /(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,
+               greedy: true,
+               lookbehind: true
+       },
+       'function': /\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i, // Should we highlight user defined functions too?
+       'keyword': /\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,
+       'boolean': /\b(?:TRUE|FALSE|NULL)\b/i,
+       'number': /\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,
+       'operator': /[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,
+       'punctuation': /[;[\]()`,.]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-stylus.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-stylus.js
new file mode 100644 (file)
index 0000000..fd912f9
--- /dev/null
@@ -0,0 +1,113 @@
+define(["prism/prism"], function () {
+(function (Prism) {
+       var inside = {
+               'url': /url\((["']?).*?\1\)/i,
+               'string': {
+                       pattern: /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,
+                       greedy: true
+               },
+               'interpolation': null, // See below
+               'func': null, // See below
+               'important': /\B!(?:important|optional)\b/i,
+               'keyword': {
+                       pattern: /(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,
+                       lookbehind: true
+               },
+               'hexcode': /#[\da-f]{3,6}/i,
+               'number': /\b\d+(?:\.\d+)?%?/,
+               'boolean': /\b(?:true|false)\b/,
+               'operator': [
+                       // We want non-word chars around "-" because it is
+                       // accepted in property names.
+                       /~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/
+               ],
+               'punctuation': /[{}()\[\];:,]/
+       };
+
+       inside['interpolation'] = {
+               pattern: /\{[^\r\n}:]+\}/,
+               alias: 'variable',
+               inside: {
+                       'delimiter': {
+                               pattern: /^{|}$/,
+                               alias: 'punctuation'
+                       },
+                       rest: inside
+               }
+       };
+       inside['func'] = {
+               pattern: /[\w-]+\([^)]*\).*/,
+               inside: {
+                       'function': /^[^(]+/,
+                       rest: inside
+               }
+       };
+
+       Prism.languages.stylus = {
+               'comment': {
+                       pattern: /(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,
+                       lookbehind: true
+               },
+               'atrule-declaration': {
+                       pattern: /(^\s*)@.+/m,
+                       lookbehind: true,
+                       inside: {
+                               'atrule': /^@[\w-]+/,
+                               rest: inside
+                       }
+               },
+               'variable-declaration': {
+                       pattern: /(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,
+                       lookbehind: true,
+                       inside: {
+                               'variable': /^\S+/,
+                               rest: inside
+                       }
+               },
+
+               'statement': {
+                       pattern: /(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,
+                       lookbehind: true,
+                       inside: {
+                               keyword: /^\S+/,
+                               rest: inside
+                       }
+               },
+
+               // A property/value pair cannot end with a comma or a brace
+               // It cannot have indented content unless it ended with a semicolon
+               'property-declaration': {
+                       pattern: /((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,
+                       lookbehind: true,
+                       inside: {
+                               'property': {
+                                       pattern: /^[^\s:]+/,
+                                       inside: {
+                                               'interpolation': inside.interpolation
+                                       }
+                               },
+                               rest: inside
+                       }
+               },
+
+
+
+               // A selector can contain parentheses only as part of a pseudo-element
+               // It can span multiple lines.
+               // It must end with a comma or an accolade or have indented content.
+               'selector': {
+                       pattern: /(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,
+                       lookbehind: true,
+                       inside: {
+                               'interpolation': inside.interpolation,
+                               'punctuation': /[{},]/
+                       }
+               },
+
+               'func': inside.func,
+               'string': inside.string,
+               'interpolation': inside.interpolation,
+               'punctuation': /[{}()\[\];:.]/
+       };
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-swift.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-swift.js
new file mode 100644 (file)
index 0000000..ae27609
--- /dev/null
@@ -0,0 +1,28 @@
+define(["prism/prism","prism/components/prism-clike"], function () {
+// issues: nested multiline comments
+Prism.languages.swift = Prism.languages.extend('clike', {
+       'string': {
+               pattern: /("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+               greedy: true,
+               inside: {
+                       'interpolation': {
+                               pattern: /\\\((?:[^()]|\([^)]+\))+\)/,
+                               inside: {
+                                       delimiter: {
+                                               pattern: /^\\\(|\)$/,
+                                               alias: 'variable'
+                                       }
+                                       // See rest below
+                               }
+                       }
+               }
+       },
+       'keyword': /\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,
+       'number': /\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,
+       'constant': /\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,
+       'atrule': /@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,
+       'builtin': /\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/
+});
+Prism.languages.swift['string'].inside['interpolation'].inside.rest = Prism.languages.swift;
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-tap.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-tap.js
new file mode 100644 (file)
index 0000000..b42f3c4
--- /dev/null
@@ -0,0 +1,23 @@
+define(["prism/prism","prism/components/prism-yaml"], function () {
+Prism.languages.tap = {
+       fail: /not ok[^#{\n\r]*/,
+       pass: /ok[^#{\n\r]*/,
+       pragma: /pragma [+-][a-z]+/,
+       bailout: /bail out!.*/i,
+       version: /TAP version \d+/i,
+       plan: /\d+\.\.\d+(?: +#.*)?/,
+       subtest: {
+               pattern: /# Subtest(?:: .*)?/,
+               greedy: true
+       },
+       punctuation: /[{}]/,
+       directive: /#.*/,
+       yamlish: {
+               pattern: /(^[^\S\r\n]*)---(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?[^\S\r\n]*\.\.\.$/m,
+               lookbehind: true,
+               inside: Prism.languages.yaml,
+               alias: 'language-yaml'
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-tcl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-tcl.js
new file mode 100644 (file)
index 0000000..3599ca6
--- /dev/null
@@ -0,0 +1,49 @@
+define(["prism/prism"], function () {
+Prism.languages.tcl = {
+       'comment': {
+               pattern: /(^|[^\\])#.*/,
+               lookbehind: true
+       },
+       'string': {
+               pattern: /"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,
+               greedy: true
+       },
+       'variable': [
+               {
+                       pattern: /(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(\$){[^}]+}/,
+                       lookbehind: true
+               },
+               {
+                       pattern: /(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,
+                       lookbehind: true
+               }
+       ],
+       'function': {
+               pattern: /(^\s*proc[ \t]+)[^\s]+/m,
+               lookbehind: true
+       },
+       'builtin': [
+               {
+                       pattern: /(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,
+                       lookbehind: true
+               },
+               /\b(?:elseif|else)\b/
+       ],
+       'scope': {
+               pattern: /(^\s*)(?:global|upvar|variable)\b/m,
+               lookbehind: true,
+               alias: 'constant'
+       },
+       'keyword': {
+               pattern: /(^\s*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,
+               lookbehind: true
+       },
+       'operator': /!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,
+       'punctuation': /[{}()\[\]]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-textile.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-textile.js
new file mode 100644 (file)
index 0000000..eba13e8
--- /dev/null
@@ -0,0 +1,259 @@
+define(["prism/prism","prism/components/prism-markup","prism/components/prism-css"], function () {
+(function(Prism) {
+       // We don't allow for pipes inside parentheses
+       // to not break table pattern |(. foo |). bar |
+       var modifierRegex = '(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+';
+       var modifierTokens = {
+               'css': {
+                       pattern: /\{[^}]+\}/,
+                       inside: {
+                               rest: Prism.languages.css
+                       }
+               },
+               'class-id': {
+                       pattern: /(\()[^)]+(?=\))/,
+                       lookbehind: true,
+                       alias: 'attr-value'
+               },
+               'lang': {
+                       pattern: /(\[)[^\]]+(?=\])/,
+                       lookbehind: true,
+                       alias: 'attr-value'
+               },
+               // Anything else is punctuation (the first pattern is for row/col spans inside tables)
+               'punctuation': /[\\\/]\d+|\S/
+       };
+
+
+       Prism.languages.textile = Prism.languages.extend('markup', {
+               'phrase': {
+                       pattern: /(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,
+                       lookbehind: true,
+                       inside: {
+
+                               // h1. Header 1
+                               'block-tag': {
+                                       pattern: RegExp('^[a-z]\\w*(?:' + modifierRegex + '|[<>=()])*\\.'),
+                                       inside: {
+                                               'modifier': {
+                                                       pattern: RegExp('(^[a-z]\\w*)(?:' + modifierRegex + '|[<>=()])+(?=\\.)'),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'tag': /^[a-z]\w*/,
+                                               'punctuation': /\.$/
+                                       }
+                               },
+
+                               // # List item
+                               // * List item
+                               'list': {
+                                       pattern: RegExp('^[*#]+(?:' + modifierRegex + ')?\\s+.+', 'm'),
+                                       inside: {
+                                               'modifier': {
+                                                       pattern: RegExp('(^[*#]+)' + modifierRegex),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'punctuation': /^[*#]+/
+                                       }
+                               },
+
+                               // | cell | cell | cell |
+                               'table': {
+                                       // Modifiers can be applied to the row: {color:red}.|1|2|3|
+                                       // or the cell: |{color:red}.1|2|3|
+                                       pattern: RegExp('^(?:(?:' + modifierRegex + '|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|', 'm'),
+                                       inside: {
+                                               'modifier': {
+                                                       // Modifiers for rows after the first one are
+                                                       // preceded by a pipe and a line feed
+                                                       pattern: RegExp('(^|\\|(?:\\r?\\n|\\r)?)(?:' + modifierRegex + '|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)'),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'punctuation': /\||^\./
+                                       }
+                               },
+
+                               'inline': {
+                                       pattern: RegExp('(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:' + modifierRegex + ')?.+?\\1'),
+                                       inside: {
+                                               // Note: superscripts and subscripts are not handled specifically
+
+                                               // *bold*, **bold**
+                                               'bold': {
+                                                       pattern: RegExp('(^(\\*\\*?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
+                                                       lookbehind: true
+                                               },
+
+                                               // _italic_, __italic__
+                                               'italic': {
+                                                       pattern: RegExp('(^(__?)(?:' + modifierRegex + ')?).+?(?=\\2)'),
+                                                       lookbehind: true
+                                               },
+
+                                               // ??cite??
+                                               'cite': {
+                                                       pattern: RegExp('(^\\?\\?(?:' + modifierRegex + ')?).+?(?=\\?\\?)'),
+                                                       lookbehind: true,
+                                                       alias: 'string'
+                                               },
+
+                                               // @code@
+                                               'code': {
+                                                       pattern: RegExp('(^@(?:' + modifierRegex + ')?).+?(?=@)'),
+                                                       lookbehind: true,
+                                                       alias: 'keyword'
+                                               },
+
+                                               // +inserted+
+                                               'inserted': {
+                                                       pattern: RegExp('(^\\+(?:' + modifierRegex + ')?).+?(?=\\+)'),
+                                                       lookbehind: true
+                                               },
+
+                                               // -deleted-
+                                               'deleted': {
+                                                       pattern: RegExp('(^-(?:' + modifierRegex + ')?).+?(?=-)'),
+                                                       lookbehind: true
+                                               },
+
+                                               // %span%
+                                               'span': {
+                                                       pattern: RegExp('(^%(?:' + modifierRegex + ')?).+?(?=%)'),
+                                                       lookbehind: true
+                                               },
+
+                                               'modifier': {
+                                                       pattern: RegExp('(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])' + modifierRegex),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'punctuation': /[*_%?@+\-^~]+/
+                                       }
+                               },
+
+                               // [alias]http://example.com
+                               'link-ref': {
+                                       pattern: /^\[[^\]]+\]\S+$/m,
+                                       inside: {
+                                               'string': {
+                                                       pattern: /(\[)[^\]]+(?=\])/,
+                                                       lookbehind: true
+                                               },
+                                               'url': {
+                                                       pattern: /(\])\S+$/,
+                                                       lookbehind: true
+                                               },
+                                               'punctuation': /[\[\]]/
+                                       }
+                               },
+
+                               // "text":http://example.com
+                               // "text":link-ref
+                               'link': {
+                                       pattern: RegExp('"(?:' + modifierRegex + ')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),
+                                       inside: {
+                                               'text': {
+                                                       pattern: RegExp('(^"(?:' + modifierRegex + ')?)[^"]+(?=")'),
+                                                       lookbehind: true
+                                               },
+                                               'modifier': {
+                                                       pattern: RegExp('(^")' + modifierRegex),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'url': {
+                                                       pattern: /(:).+/,
+                                                       lookbehind: true
+                                               },
+                                               'punctuation': /[":]/
+                                       }
+                               },
+
+                               // !image.jpg!
+                               // !image.jpg(Title)!:http://example.com
+                               'image': {
+                                       pattern: RegExp('!(?:' + modifierRegex + '|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?'),
+                                       inside: {
+                                               'source': {
+                                                       pattern: RegExp('(^!(?:' + modifierRegex + '|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)'),
+                                                       lookbehind: true,
+                                                       alias: 'url'
+                                               },
+                                               'modifier': {
+                                                       pattern: RegExp('(^!)(?:' + modifierRegex + '|[<>=()])+'),
+                                                       lookbehind: true,
+                                                       inside: modifierTokens
+                                               },
+                                               'url': {
+                                                       pattern: /(:).+/,
+                                                       lookbehind: true
+                                               },
+                                               'punctuation': /[!:]/
+                                       }
+                               },
+
+                               // Footnote[1]
+                               'footnote': {
+                                       pattern: /\b\[\d+\]/,
+                                       alias: 'comment',
+                                       inside: {
+                                               'punctuation': /\[|\]/
+                                       }
+                               },
+
+                               // CSS(Cascading Style Sheet)
+                               'acronym': {
+                                       pattern: /\b[A-Z\d]+\([^)]+\)/,
+                                       inside: {
+                                               'comment': {
+                                                       pattern: /(\()[^)]+(?=\))/,
+                                                       lookbehind: true
+                                               },
+                                               'punctuation': /[()]/
+                                       }
+                               },
+
+                               // Prism(C)
+                               'mark': {
+                                       pattern: /\b\((?:TM|R|C)\)/,
+                                       alias: 'comment',
+                                       inside: {
+                                               'punctuation':/[()]/
+                                       }
+                               }
+                       }
+               }
+       });
+
+       var nestedPatterns = {
+               'inline': Prism.languages.textile['phrase'].inside['inline'],
+               'link': Prism.languages.textile['phrase'].inside['link'],
+               'image': Prism.languages.textile['phrase'].inside['image'],
+               'footnote': Prism.languages.textile['phrase'].inside['footnote'],
+               'acronym': Prism.languages.textile['phrase'].inside['acronym'],
+               'mark': Prism.languages.textile['phrase'].inside['mark']
+       };
+
+       // Only allow alpha-numeric HTML tags, not XML tags
+       Prism.languages.textile.tag.pattern = /<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
+
+       // Allow some nesting
+       Prism.languages.textile['phrase'].inside['inline'].inside['bold'].inside = nestedPatterns;
+       Prism.languages.textile['phrase'].inside['inline'].inside['italic'].inside = nestedPatterns;
+       Prism.languages.textile['phrase'].inside['inline'].inside['inserted'].inside = nestedPatterns;
+       Prism.languages.textile['phrase'].inside['inline'].inside['deleted'].inside = nestedPatterns;
+       Prism.languages.textile['phrase'].inside['inline'].inside['span'].inside = nestedPatterns;
+
+       // Allow some styles inside table cells
+       Prism.languages.textile['phrase'].inside['table'].inside['inline'] = nestedPatterns['inline'];
+       Prism.languages.textile['phrase'].inside['table'].inside['link'] = nestedPatterns['link'];
+       Prism.languages.textile['phrase'].inside['table'].inside['image'] = nestedPatterns['image'];
+       Prism.languages.textile['phrase'].inside['table'].inside['footnote'] = nestedPatterns['footnote'];
+       Prism.languages.textile['phrase'].inside['table'].inside['acronym'] = nestedPatterns['acronym'];
+       Prism.languages.textile['phrase'].inside['table'].inside['mark'] = nestedPatterns['mark'];
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-tsx.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-tsx.js
new file mode 100644 (file)
index 0000000..f4669e1
--- /dev/null
@@ -0,0 +1,4 @@
+define(["prism/prism","prism/components/prism-jsx","prism/components/prism-typescript"], function () {
+var typescript = Prism.util.clone(Prism.languages.typescript);
+Prism.languages.tsx = Prism.languages.extend('jsx', typescript);
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-tt2.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-tt2.js
new file mode 100644 (file)
index 0000000..33a706f
--- /dev/null
@@ -0,0 +1,62 @@
+define(["prism/prism","prism/components/prism-clike","prism/components/prism-markup-templating"], function () {
+(function(Prism) {
+
+       Prism.languages.tt2 = Prism.languages.extend('clike', {
+               comment: {
+                       pattern: /#.*|\[%#[\s\S]*?%\]/,
+                       lookbehind: true
+               },
+               keyword: /\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,
+               punctuation: /[[\]{},()]/
+       });
+
+       delete Prism.languages.tt2['operator'];
+       delete Prism.languages.tt2['variable'];
+       Prism.languages.insertBefore('tt2', 'number', {
+               operator: /=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,
+               variable: {
+                       pattern: /[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*/i
+               }
+       });
+
+       delete Prism.languages.tt2['delimiter'];
+       Prism.languages.insertBefore('tt2', 'keyword', {
+               'delimiter': {
+                       pattern: /^(?:\[%|%%)-?|-?%]$/,
+                       alias: 'punctuation'
+               }
+       });
+
+       Prism.languages.insertBefore('tt2', 'string', {
+               'single-quoted-string': {
+                       pattern: /'[^\\']*(?:\\[\s\S][^\\']*)*'/,
+                       greedy: true,
+                       alias: 'string'
+               },
+               'double-quoted-string': {
+                       pattern: /"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,
+                       greedy: true,
+                       alias: 'string',
+                       inside: {
+                               variable: {
+                                       pattern: /\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i
+                               }
+                       }
+               }
+       });
+
+       // The different types of TT2 strings "replace" the C-like standard string
+       delete Prism.languages.tt2.string;
+
+       Prism.hooks.add('before-tokenize', function(env) {
+               var tt2Pattern = /\[%[\s\S]+?%\]/g;
+               Prism.languages['markup-templating'].buildPlaceholders(env, 'tt2', tt2Pattern);
+       });
+
+       Prism.hooks.add('after-tokenize', function(env) {
+               Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2');
+       });
+
+}(Prism));
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-twig.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-twig.js
new file mode 100644 (file)
index 0000000..2a5f2c8
--- /dev/null
@@ -0,0 +1,49 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages.twig = {
+       'comment': /\{#[\s\S]*?#\}/,
+       'tag': {
+               pattern: /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,
+               inside: {
+                       'ld': {
+                               pattern: /^(?:\{\{-?|\{%-?\s*\w+)/,
+                               inside: {
+                                       'punctuation': /^(?:\{\{|\{%)-?/,
+                                       'keyword': /\w+/
+                               }
+                       },
+                       'rd': {
+                               pattern: /-?(?:%\}|\}\})$/,
+                               inside: {
+                                       'punctuation': /.*/
+                               }
+                       },
+                       'string': {
+                               pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
+                               inside: {
+                                       'punctuation': /^['"]|['"]$/
+                               }
+                       },
+                       'keyword': /\b(?:even|if|odd)\b/,
+                       'boolean': /\b(?:true|false|null)\b/,
+                       'number': /\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,
+                       'operator': [
+                               {
+                                       pattern: /(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,
+                                       lookbehind: true
+                               },
+                               /[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/
+                       ],
+                       'property': /\b[a-zA-Z_]\w*\b/,
+                       'punctuation': /[()\[\]{}:.,]/
+               }
+       },
+
+       // The rest can be parsed as HTML
+       'other': {
+               // We want non-blank matches
+               pattern: /\S(?:[\s\S]*\S)?/,
+               inside: Prism.languages.markup
+       }
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-typescript.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-typescript.js
new file mode 100644 (file)
index 0000000..d3d8da1
--- /dev/null
@@ -0,0 +1,9 @@
+define(["prism/prism","prism/components/prism-javascript"], function () {
+Prism.languages.typescript = Prism.languages.extend('javascript', {
+       // From JavaScript Prism keyword list and TypeScript language spec: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#221-reserved-words
+       'keyword': /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\b/,
+       'builtin': /\b(?:string|Function|any|number|boolean|Array|symbol|console)\b/,
+});
+
+Prism.languages.ts = Prism.languages.typescript;
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-vbnet.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-vbnet.js
new file mode 100644 (file)
index 0000000..93dac96
--- /dev/null
@@ -0,0 +1,18 @@
+define(["prism/prism","prism/components/prism-basic"], function () {
+Prism.languages.vbnet = Prism.languages.extend("basic", {
+       'keyword': /(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,
+       'comment': [
+               {
+                       pattern: /(?:!|REM\b).+/i,
+                       inside: {
+                               'keyword': /^REM/i
+                       }
+               },
+               {
+                       pattern: /(^|[^\\:])'.*/,
+                       lookbehind: true
+               }
+       ]
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-velocity.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-velocity.js
new file mode 100644 (file)
index 0000000..b6f3195
--- /dev/null
@@ -0,0 +1,74 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+(function (Prism) {
+       Prism.languages.velocity = Prism.languages.extend('markup', {});
+
+       var velocity = {
+               'variable': {
+                       pattern: /(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+])*|{[^}]+})/i,
+                       lookbehind: true,
+                       inside: {} // See below
+               },
+               'string': {
+                       pattern: /"[^"]*"|'[^']*'/,
+                       greedy: true
+               },
+               'number': /\b\d+\b/,
+               'boolean': /\b(?:true|false)\b/,
+               'operator': /[=!<>]=?|[+*/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,
+               'punctuation': /[(){}[\]:,.]/
+       };
+
+       velocity.variable.inside = {
+               'string': velocity['string'],
+               'function': {
+                       pattern: /([^\w-])[a-z][\w-]*(?=\()/,
+                       lookbehind: true
+               },
+               'number': velocity['number'],
+               'boolean': velocity['boolean'],
+               'punctuation': velocity['punctuation']
+       };
+
+       Prism.languages.insertBefore('velocity', 'comment', {
+               'unparsed': {
+                       pattern: /(^|[^\\])#\[\[[\s\S]*?]]#/,
+                       lookbehind: true,
+                       greedy: true,
+                       inside: {
+                               'punctuation': /^#\[\[|]]#$/
+                       }
+               },
+               'velocity-comment': [
+                       {
+                               pattern: /(^|[^\\])#\*[\s\S]*?\*#/,
+                               lookbehind: true,
+                               greedy: true,
+                               alias: 'comment'
+                       },
+                       {
+                               pattern: /(^|[^\\])##.*/,
+                               lookbehind: true,
+                               greedy: true,
+                               alias: 'comment'
+                       }
+               ],
+               'directive': {
+                       pattern: /(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|{[a-z][\w-]*})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,
+                       lookbehind: true,
+                       inside: {
+                               keyword: {
+                                       pattern: /^#@?(?:[a-z][\w-]*|{[a-z][\w-]*})|\bin\b/,
+                                       inside: {
+                                               'punctuation': /[{}]/
+                                       }
+                               },
+                               rest: velocity
+                       }
+               },
+               'variable': velocity['variable']
+       });
+
+       Prism.languages.velocity['tag'].inside['attr-value'].inside.rest = Prism.languages.velocity;
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-verilog.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-verilog.js
new file mode 100644 (file)
index 0000000..4cf9aa2
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.verilog = {
+       'comment': /\/\/.*|\/\*[\s\S]*?\*\//,
+       'string': {
+               pattern: /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
+               greedy: true
+       },
+       // support for any kernel function (ex: $display())
+       'property': /\B\$\w+\b/,
+       // support for user defined constants (ex: `define)
+       'constant': /\B`\w+\b/,
+       'function': /\w+(?=\()/,
+       // support for verilog and system verilog keywords
+       'keyword': /\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,
+       // bold highlighting for all verilog and system verilog logic blocks
+       'important': /\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,
+       // support for time ticks, vectors, and real numbers
+       'number': /\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b\d*[._]?\d+(?:e[-+]?\d+)?/i,
+       'operator': /[-+{}^~%*\/?=!<>&|]+/,
+       'punctuation': /[[\];(),.:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-vhdl.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-vhdl.js
new file mode 100644 (file)
index 0000000..6be4ac6
--- /dev/null
@@ -0,0 +1,26 @@
+define(["prism/prism"], function () {
+Prism.languages.vhdl = {
+       'comment': /--.+/,
+       // support for all logic vectors
+       'vhdl-vectors': {
+               'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,
+               'alias': 'number'
+       },
+       // support for operator overloading included
+       'quoted-function': {
+               pattern: /"\S+?"(?=\()/,
+               alias: 'function'
+       },
+       'string': /"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,
+       'constant': /\b(?:use|library)\b/i,
+       // support for predefined attributes included
+       'keyword': /\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,
+       'boolean': /\b(?:true|false)\b/i,
+       'function': /\w+(?=\()/,
+       // decimal, based, physical, and exponential numbers supported
+       'number': /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,
+       'operator': /[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,
+       'punctuation': /[{}[\];(),.:]/
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-vim.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-vim.js
new file mode 100644 (file)
index 0000000..76edfd5
--- /dev/null
@@ -0,0 +1,12 @@
+define(["prism/prism"], function () {
+Prism.languages.vim = {
+       'string': /"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,
+       'comment': /".*/,
+       'function': /\w+(?=\()/,
+       'keyword': /\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,
+       'builtin': /\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,
+       'number': /\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,
+       'operator': /\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,
+       'punctuation': /[{}[\](),;:]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-visual-basic.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-visual-basic.js
new file mode 100644 (file)
index 0000000..285d87b
--- /dev/null
@@ -0,0 +1,36 @@
+define(["prism/prism"], function () {
+Prism.languages['visual-basic'] = {
+       'comment': {
+               pattern: /(?:['‘’]|REM\b).*/i,
+               inside: {
+                       'keyword': /^REM/i
+               }
+       },
+       'directive': {
+               pattern: /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,
+               alias: 'comment',
+               greedy: true
+       },
+       'string': {
+               pattern: /["“”](?:["“”]{2}|[^"“”])*["“”]C?/i,
+               greedy: true
+       },
+       'date': {
+               pattern: /#[^\S\r\n]*(?:\d+([/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))[^\S\r\n]*#/i,
+               alias: 'builtin'
+       },
+       'number': /(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,
+       'boolean': /\b(?:True|False|Nothing)\b/i,
+       'keyword': /\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,
+       'operator': [
+               /[+\-*/\\^<=>&#@$%!]/,
+               {
+                       pattern: /([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,
+                       lookbehind: true
+               }
+       ],
+       'punctuation': /[{}().,:?]/
+};
+
+Prism.languages.vb = Prism.languages['visual-basic'];
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-wasm.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-wasm.js
new file mode 100644 (file)
index 0000000..af185c1
--- /dev/null
@@ -0,0 +1,33 @@
+define(["prism/prism"], function () {
+Prism.languages.wasm = {
+       'comment': [
+               /\(;[\s\S]*?;\)/,
+               {
+                       pattern: /;;.*/,
+                       greedy: true
+               }
+       ],
+       'string': {
+               pattern: /"(?:\\[\s\S]|[^"\\])*"/,
+               greedy: true
+       },
+       'keyword': [
+               {
+                       pattern: /\b(?:align|offset)=/,
+                       inside: {
+                               'operator': /=/
+                       }
+               },
+               {
+                       pattern: /\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,
+                       inside: {
+                               'punctuation': /\./
+                       }
+               },
+               /\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/
+       ],
+       'variable': /\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,
+       'number': /[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,
+       'punctuation': /[()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-wiki.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-wiki.js
new file mode 100644 (file)
index 0000000..98ab078
--- /dev/null
@@ -0,0 +1,84 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+Prism.languages.wiki = Prism.languages.extend('markup', {
+       'block-comment': {
+               pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
+               lookbehind: true,
+               alias: 'comment'
+       },
+       'heading': {
+               pattern: /^(=+).+?\1/m,
+               inside: {
+                       'punctuation': /^=+|=+$/,
+                       'important': /.+/
+               }
+       },
+       'emphasis': {
+               // TODO Multi-line
+               pattern: /('{2,5}).+?\1/,
+               inside: {
+                       'bold italic': {
+                               pattern: /(''''').+?(?=\1)/,
+                               lookbehind: true
+                       },
+                       'bold': {
+                               pattern: /(''')[^'](?:.*?[^'])?(?=\1)/,
+                               lookbehind: true
+                       },
+                       'italic': {
+                               pattern: /('')[^'](?:.*?[^'])?(?=\1)/,
+                               lookbehind: true
+                       },
+                       'punctuation': /^''+|''+$/
+               }
+       },
+       'hr': {
+               pattern: /^-{4,}/m,
+               alias: 'punctuation'
+       },
+       'url': [
+               /ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,
+               /\[\[.+?\]\]|\[.+?\]/
+       ],
+       'variable': [
+               /__[A-Z]+__/,
+               // FIXME Nested structures should be handled
+               // {{formatnum:{{#expr:{{{3}}}}}}}
+               /\{{3}.+?\}{3}/,
+               /\{\{.+?\}\}/
+       ],
+       'symbol': [
+               /^#redirect/im,
+               /~{3,5}/
+       ],
+       // Handle table attrs:
+       // {|
+       // ! style="text-align:left;"| Item
+       // |}
+       'table-tag': {
+               pattern: /((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,
+               lookbehind: true,
+               inside: {
+                       'table-bar': {
+                               pattern: /\|$/,
+                               alias: 'punctuation'
+                       },
+                       rest: Prism.languages.markup['tag'].inside
+               }
+       },
+       'punctuation': /^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m
+});
+
+Prism.languages.insertBefore('wiki', 'tag', {
+       // Prevent highlighting inside <nowiki>, <source> and <pre> tags
+       'nowiki': {
+               pattern: /<(nowiki|pre|source)\b[\s\S]*?>[\s\S]*?<\/\1>/i,
+               inside: {
+                       'tag': {
+                               pattern: /<(?:nowiki|pre|source)\b[\s\S]*?>|<\/(?:nowiki|pre|source)>/i,
+                               inside: Prism.languages.markup['tag'].inside
+                       }
+               }
+       }
+});
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-xeora.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-xeora.js
new file mode 100644 (file)
index 0000000..1d5113a
--- /dev/null
@@ -0,0 +1,116 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+(function(Prism) {
+       Prism.languages.xeora = Prism.languages.extend('markup', {
+               'constant': {
+                       pattern: /\$(?:DomainContents|PageRenderDuration)\$/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /\$/
+                               }
+                       }
+               },
+               'variable': {
+                       pattern: /\$@?(?:#+|[-+*~=^])?[\w.]+\$/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /[$.]/
+                               },
+                               'operator': {
+                                       pattern: /#+|[-+*~=^@]/
+                               }
+                       }
+               },
+               'function-inline': {
+                       pattern: /\$F:[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?\$/,
+                       inside: {
+                               'variable': {
+                                       pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,
+                                       inside: {
+                                               'punctuation': {
+                                                       pattern: /[,.|]/
+                                               },
+                                               'operator': {
+                                                       pattern: /#+|[-+*~=^@]/
+                                               }
+                                       }
+                               },
+                               'punctuation': {
+                                       pattern: /\$\w:|[$:?.,|]/
+                               }
+                       },
+                       alias: 'function'
+               },
+               'function-block': {
+                       pattern: /\$XF:{[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?}:XF\$/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /[$:{}?.,|]/
+                               }
+                       },
+                       alias: 'function'
+               },
+               'directive-inline': {
+                       pattern: /\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\/\w.]+\$/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
+                                       inside: {
+                                               'tag': {
+                                                       pattern: /#\d/
+                                               }
+                                       }
+                               }
+                       },
+                       alias: 'function'
+               },
+               'directive-block-open': {
+                       pattern: /\$\w+:{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\w.]+:{(![A-Z]+)?/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,
+                                       inside: {
+                                               'tag': {
+                                                       pattern: /#\d/
+                                               }
+                                       }
+                               },
+                               'attribute': {
+                                       pattern: /![A-Z]+$/,
+                                       inside: {
+                                               'punctuation': {
+                                                       pattern: /!/
+                                               }
+                                       },
+                                       alias: 'keyword'
+                               }
+                       },
+                       alias: 'function'
+               },
+               'directive-block-separator': {
+                       pattern: /}:[-\w.]+:{/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /[:{}]/
+                               }
+                       },
+                       alias: 'function'
+               },
+               'directive-block-close': {
+                       pattern: /}:[-\w.]+\$/,
+                       inside: {
+                               'punctuation': {
+                                       pattern: /[:{}$]/
+                               }
+                       },
+                       alias: 'function'
+               }
+       });
+
+       Prism.languages.insertBefore('inside', 'punctuation', {
+               'variable': Prism.languages.xeora['function-inline'].inside['variable']
+       }, Prism.languages.xeora["function-block"]);
+
+       Prism.languages.xeoracube = Prism.languages.xeora;
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-xojo.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-xojo.js
new file mode 100644 (file)
index 0000000..5aba4cb
--- /dev/null
@@ -0,0 +1,22 @@
+define(["prism/prism"], function () {
+Prism.languages.xojo = {
+       'comment': {
+               pattern: /(?:'|\/\/|Rem\b).+/i,
+               inside: {
+                       'keyword': /^Rem/i
+               }
+       },
+       'string': {
+               pattern: /"(?:""|[^"])*"/,
+               greedy: true
+       },
+       'number': [
+               /(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,
+               /&[bchou][a-z\d]+/i
+       ],
+       'symbol': /#(?:If|Else|ElseIf|Endif|Pragma)\b/i,
+       'keyword': /\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,
+       'operator': /<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,
+       'punctuation': /[.,;:()]/
+};
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-xquery.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-xquery.js
new file mode 100644 (file)
index 0000000..8a13141
--- /dev/null
@@ -0,0 +1,166 @@
+define(["prism/prism","prism/components/prism-markup"], function () {
+(function (Prism) {
+
+       Prism.languages.xquery = Prism.languages.extend('markup', {
+               'xquery-comment': {
+                       pattern: /\(:[\s\S]*?:\)/,
+                       greedy: true,
+                       alias: "comment"
+               },
+               'string': {
+                       pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/,
+                       greedy: true
+               },
+               'extension': {
+                       pattern: /\(#.+?#\)/,
+                       alias: 'symbol'
+               },
+               'variable': /\$[\w-:]+/,
+               'axis': {
+                       pattern: /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,
+                       lookbehind: true,
+                       alias: 'operator'
+               },
+               'keyword-operator': {
+                       pattern: /(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,
+                       lookbehind: true,
+                       alias: 'operator'
+               },
+               'keyword': {
+                       pattern: /(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,
+                       lookbehind: true
+               },
+               'function': /[\w-]+(?::[\w-]+)*(?=\s*\()/,
+               'xquery-element': {
+                       pattern: /(element\s+)[\w-]+(?::[\w-]+)*/,
+                       lookbehind: true,
+                       alias: 'tag'
+               },
+               'xquery-attribute': {
+                       pattern: /(attribute\s+)[\w-]+(?::[\w-]+)*/,
+                       lookbehind: true,
+                       alias: 'attr-name'
+               },
+               'builtin': {
+                       pattern: /(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,
+                       lookbehind: true
+               },
+               'number': /\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,
+               'operator': [
+                       /[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,
+                       {
+                               pattern: /(\s)-(?=\s)/,
+                               lookbehind: true
+                       }
+               ],
+               'punctuation': /[[\](){},;:/]/
+       });
+
+       Prism.languages.xquery.tag.pattern = /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
+       Prism.languages.xquery['tag'].inside['attr-value'].pattern = /=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+)/i;
+       Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] = /^="|"$/;
+       Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {
+               // Allow for two levels of nesting
+               pattern: /{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}/,
+               inside: {
+                       rest: Prism.languages.xquery
+               },
+               'alias': 'language-xquery'
+       };
+
+       // The following will handle plain text inside tags
+       var stringifyToken = function (token) {
+               if (typeof token === 'string') {
+                       return token;
+               }
+               if (typeof token.content === 'string') {
+                       return token.content;
+               }
+               return token.content.map(stringifyToken).join('');
+       };
+
+       var walkTokens = function (tokens) {
+               var openedTags = [];
+               for (var i = 0; i < tokens.length; i++) {
+                       var token = tokens[i];
+                       var notTagNorBrace = false;
+
+                       if (typeof token !== 'string') {
+                               if (token.type === 'tag' && token.content[0] && token.content[0].type === 'tag') {
+                                       // We found a tag, now find its kind
+
+                                       if (token.content[0].content[0].content === '</') {
+                                               // Closing tag
+                                               if (openedTags.length > 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {
+                                                       // Pop matching opening tag
+                                                       openedTags.pop();
+                                               }
+                                       } else {
+                                               if (token.content[token.content.length - 1].content === '/>') {
+                                                       // Autoclosed tag, ignore
+                                               } else {
+                                                       // Opening tag
+                                                       openedTags.push({
+                                                               tagName: stringifyToken(token.content[0].content[1]),
+                                                               openedBraces: 0
+                                                       });
+                                               }
+                                       }
+                               } else if (
+                                       openedTags.length > 0 && token.type === 'punctuation' && token.content === '{' &&
+                                       // Ignore `{{`
+                                       (!tokens[i + 1] || tokens[i + 1].type !== 'punctuation' || tokens[i + 1].content !== '{') &&
+                                       (!tokens[i - 1] || tokens[i - 1].type !== 'plain-text' || tokens[i - 1].content !== '{')
+                               ) {
+                                       // Here we might have entered an XQuery expression inside a tag
+                                       openedTags[openedTags.length - 1].openedBraces++;
+
+                               } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === 'punctuation' && token.content === '}') {
+
+                                       // Here we might have left an XQuery expression inside a tag
+                                       openedTags[openedTags.length - 1].openedBraces--;
+
+                               } else if (token.type !== 'comment') {
+                                       notTagNorBrace = true
+                               }
+                       }
+                       if (notTagNorBrace || typeof token === 'string') {
+                               if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {
+                                       // Here we are inside a tag, and not inside an XQuery expression.
+                                       // That's plain text: drop any tokens matched.
+                                       var plainText = stringifyToken(token);
+
+                                       // And merge text with adjacent text
+                                       if (i < tokens.length - 1 && (typeof tokens[i + 1] === 'string' || tokens[i + 1].type === 'plain-text')) {
+                                               plainText += stringifyToken(tokens[i + 1]);
+                                               tokens.splice(i + 1, 1);
+                                       }
+                                       if (i > 0 && (typeof tokens[i - 1] === 'string' || tokens[i - 1].type === 'plain-text')) {
+                                               plainText = stringifyToken(tokens[i - 1]) + plainText;
+                                               tokens.splice(i - 1, 1);
+                                               i--;
+                                       }
+
+                                       if (/^\s+$/.test(plainText)) {
+                                               tokens[i] = plainText;
+                                       } else {
+                                               tokens[i] = new Prism.Token('plain-text', plainText, null, plainText);
+                                       }
+                               }
+                       }
+
+                       if (token.content && typeof token.content !== 'string') {
+                               walkTokens(token.content);
+                       }
+               }
+       };
+
+       Prism.hooks.add('after-tokenize', function (env) {
+               if (env.language !== 'xquery') {
+                       return;
+               }
+               walkTokens(env.tokens);
+       });
+
+}(Prism));
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/components/prism-yaml.js b/wcfsetup/install/files/js/3rdParty/prism/components/prism-yaml.js
new file mode 100644 (file)
index 0000000..51edd11
--- /dev/null
@@ -0,0 +1,48 @@
+define(["prism/prism"], function () {
+Prism.languages.yaml = {
+       'scalar': {
+               pattern: /([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,
+               lookbehind: true,
+               alias: 'string'
+       },
+       'comment': /#.*/,
+       'key': {
+               pattern: /(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,
+               lookbehind: true,
+               alias: 'atrule'
+       },
+       'directive': {
+               pattern: /(^[ \t]*)%.+/m,
+               lookbehind: true,
+               alias: 'important'
+       },
+       'datetime': {
+               pattern: /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,
+               lookbehind: true,
+               alias: 'number'
+       },
+       'boolean': {
+               pattern: /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,
+               lookbehind: true,
+               alias: 'important'
+       },
+       'null': {
+               pattern: /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,
+               lookbehind: true,
+               alias: 'important'
+       },
+       'string': {
+               pattern: /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}))/m,
+               lookbehind: true,
+               greedy: true
+       },
+       'number': {
+               pattern: /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,
+               lookbehind: true
+       },
+       'tag': /![^\s]+/,
+       'important': /[&*][\w]+/,
+       'punctuation': /---|[:[\]{}\-,|>?]|\.\.\./
+};
+
+return Prism; })
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/prism-meta.js b/wcfsetup/install/files/js/3rdParty/prism/prism-meta.js
new file mode 100644 (file)
index 0000000..db265ea
--- /dev/null
@@ -0,0 +1 @@
+define([],function(){return /*START*/{"markup":{"title":"Markup","file":"markup"},"html":{"title":"HTML","file":"markup"},"xml":{"title":"XML","file":"markup"},"svg":{"title":"SVG","file":"markup"},"mathml":{"title":"MathML","file":"markup"},"css":{"title":"CSS","file":"css"},"clike":{"title":"C-like","file":"clike"},"javascript":{"title":"JavaScript","file":"javascript"},"js":{"title":"JavaScript","file":"javascript"},"abap":{"title":"ABAP","file":"abap"},"actionscript":{"title":"ActionScript","file":"actionscript"},"ada":{"title":"Ada","file":"ada"},"apacheconf":{"title":"Apache Configuration","file":"apacheconf"},"apl":{"title":"APL","file":"apl"},"applescript":{"title":"AppleScript","file":"applescript"},"arduino":{"title":"Arduino","file":"arduino"},"arff":{"title":"ARFF","file":"arff"},"asciidoc":{"title":"AsciiDoc","file":"asciidoc"},"asm6502":{"title":"6502 Assembly","file":"asm6502"},"aspnet":{"title":"ASP.NET (C#)","file":"aspnet"},"autohotkey":{"title":"AutoHotkey","file":"autohotkey"},"autoit":{"title":"AutoIt","file":"autoit"},"bash":{"title":"Bash","file":"bash"},"shell":{"title":"Batch","file":"batch"},"basic":{"title":"BASIC","file":"basic"},"batch":{"title":"Batch","file":"batch"},"bison":{"title":"Bison","file":"bison"},"brainfuck":{"title":"Brainfuck","file":"brainfuck"},"bro":{"title":"Bro","file":"bro"},"c":{"title":"C","file":"c"},"csharp":{"title":"C#","file":"csharp"},"dotnet":{"title":"C#","file":"csharp"},"cpp":{"title":"C++","file":"cpp"},"coffeescript":{"title":"CoffeeScript","file":"coffeescript"},"clojure":{"title":"Clojure","file":"clojure"},"crystal":{"title":"Crystal","file":"crystal"},"csp":{"title":"Content-Security-Policy","file":"csp"},"css-extras":{"title":"CSS Extras","file":"css-extras"},"d":{"title":"D","file":"d"},"dart":{"title":"Dart","file":"dart"},"diff":{"title":"Diff","file":"diff"},"django":{"title":"Django/Jinja2","file":"django"},"jinja2":{"title":"Django/Jinja2","file":"django"},"docker":{"title":"Docker","file":"docker"},"dockerfile":{"title":"Docker","file":"docker"},"eiffel":{"title":"Eiffel","file":"eiffel"},"elixir":{"title":"Elixir","file":"elixir"},"elm":{"title":"Elm","file":"elm"},"erb":{"title":"ERB","file":"erb"},"erlang":{"title":"Erlang","file":"erlang"},"fsharp":{"title":"F#","file":"fsharp"},"flow":{"title":"Flow","file":"flow"},"fortran":{"title":"Fortran","file":"fortran"},"gedcom":{"title":"GEDCOM","file":"gedcom"},"gherkin":{"title":"Gherkin","file":"gherkin"},"git":{"title":"Git","file":"git"},"glsl":{"title":"GLSL","file":"glsl"},"gml":{"title":"GameMaker Language","file":"gml"},"gamemakerlanguage":{"title":"GameMaker Language","file":"gml"},"go":{"title":"Go","file":"go"},"graphql":{"title":"GraphQL","file":"graphql"},"groovy":{"title":"Groovy","file":"groovy"},"haml":{"title":"Haml","file":"haml"},"handlebars":{"title":"Handlebars","file":"handlebars"},"haskell":{"title":"Haskell","file":"haskell"},"haxe":{"title":"Haxe","file":"haxe"},"http":{"title":"HTTP","file":"http"},"hpkp":{"title":"HTTP Public-Key-Pins","file":"hpkp"},"hsts":{"title":"HTTP Strict-Transport-Security","file":"hsts"},"ichigojam":{"title":"IchigoJam","file":"ichigojam"},"icon":{"title":"Icon","file":"icon"},"inform7":{"title":"Inform 7","file":"inform7"},"ini":{"title":"Ini","file":"ini"},"io":{"title":"Io","file":"io"},"j":{"title":"J","file":"j"},"java":{"title":"Java","file":"java"},"jolie":{"title":"Jolie","file":"jolie"},"json":{"title":"JSON","file":"json"},"jsonp":{"title":"JSON","file":"json"},"julia":{"title":"Julia","file":"julia"},"keyman":{"title":"Keyman","file":"keyman"},"kotlin":{"title":"Kotlin","file":"kotlin"},"latex":{"title":"LaTeX","file":"latex"},"less":{"title":"Less","file":"less"},"liquid":{"title":"Liquid","file":"liquid"},"lisp":{"title":"Lisp","file":"lisp"},"emacs":{"title":"Lisp","file":"lisp"},"elisp":{"title":"Lisp","file":"lisp"},"emacs-lisp":{"title":"Lisp","file":"lisp"},"livescript":{"title":"LiveScript","file":"livescript"},"lolcode":{"title":"LOLCODE","file":"lolcode"},"lua":{"title":"Lua","file":"lua"},"makefile":{"title":"Makefile","file":"makefile"},"markdown":{"title":"Markdown","file":"markdown"},"markup-templating":{"title":"Markup templating","file":"markup-templating"},"matlab":{"title":"MATLAB","file":"matlab"},"mel":{"title":"MEL","file":"mel"},"mizar":{"title":"Mizar","file":"mizar"},"monkey":{"title":"Monkey","file":"monkey"},"n4js":{"title":"N4JS","file":"n4js"},"n4jsd":{"title":"N4JS","file":"n4js"},"nasm":{"title":"NASM","file":"nasm"},"nginx":{"title":"nginx","file":"nginx"},"nim":{"title":"Nim","file":"nim"},"nix":{"title":"Nix","file":"nix"},"nsis":{"title":"NSIS","file":"nsis"},"objectivec":{"title":"Objective-C","file":"objectivec"},"ocaml":{"title":"OCaml","file":"ocaml"},"opencl":{"title":"OpenCL","file":"opencl"},"oz":{"title":"Oz","file":"oz"},"parigp":{"title":"PARI/GP","file":"parigp"},"parser":{"title":"Parser","file":"parser"},"pascal":{"title":"Pascal","file":"pascal"},"objectpascal":{"title":"Pascal","file":"pascal"},"perl":{"title":"Perl","file":"perl"},"php":{"title":"PHP","file":"php"},"php-extras":{"title":"PHP Extras","file":"php-extras"},"plsql":{"title":"PL/SQL","file":"plsql"},"powershell":{"title":"PowerShell","file":"powershell"},"processing":{"title":"Processing","file":"processing"},"prolog":{"title":"Prolog","file":"prolog"},"properties":{"title":".properties","file":"properties"},"protobuf":{"title":"Protocol Buffers","file":"protobuf"},"pug":{"title":"Pug","file":"pug"},"puppet":{"title":"Puppet","file":"puppet"},"pure":{"title":"Pure","file":"pure"},"python":{"title":"Python","file":"python"},"q":{"title":"Q (kdb+ database)","file":"q"},"qore":{"title":"Qore","file":"qore"},"r":{"title":"R","file":"r"},"jsx":{"title":"React JSX","file":"jsx"},"tsx":{"title":"React TSX","file":"tsx"},"renpy":{"title":"Ren'py","file":"renpy"},"reason":{"title":"Reason","file":"reason"},"rest":{"title":"reST (reStructuredText)","file":"rest"},"rip":{"title":"Rip","file":"rip"},"roboconf":{"title":"Roboconf","file":"roboconf"},"ruby":{"title":"Ruby","file":"ruby"},"rust":{"title":"Rust","file":"rust"},"sas":{"title":"SAS","file":"sas"},"sass":{"title":"Sass (Sass)","file":"sass"},"scss":{"title":"Sass (Scss)","file":"scss"},"scala":{"title":"Scala","file":"scala"},"scheme":{"title":"Scheme","file":"scheme"},"smalltalk":{"title":"Smalltalk","file":"smalltalk"},"smarty":{"title":"Smarty","file":"smarty"},"sql":{"title":"SQL","file":"sql"},"soy":{"title":"Soy (Closure Template)","file":"soy"},"stylus":{"title":"Stylus","file":"stylus"},"swift":{"title":"Swift","file":"swift"},"tap":{"title":"TAP","file":"tap"},"tcl":{"title":"Tcl","file":"tcl"},"textile":{"title":"Textile","file":"textile"},"tt2":{"title":"Template Toolkit 2","file":"tt2"},"twig":{"title":"Twig","file":"twig"},"typescript":{"title":"TypeScript","file":"typescript"},"ts":{"title":"TypeScript","file":"typescript"},"vbnet":{"title":"VB.Net","file":"vbnet"},"velocity":{"title":"Velocity","file":"velocity"},"verilog":{"title":"Verilog","file":"verilog"},"vhdl":{"title":"VHDL","file":"vhdl"},"vim":{"title":"vim","file":"vim"},"visual-basic":{"title":"Visual Basic","file":"visual-basic"},"vb":{"title":"Visual Basic","file":"visual-basic"},"wasm":{"title":"WebAssembly","file":"wasm"},"wiki":{"title":"Wiki markup","file":"wiki"},"xeora":{"title":"Xeora","file":"xeora"},"xeoracube":{"title":"Xeora","file":"xeora"},"xojo":{"title":"Xojo (REALbasic)","file":"xojo"},"xquery":{"title":"XQuery","file":"xquery"},"yaml":{"title":"YAML","file":"yaml"}}/*END*/;});
\ No newline at end of file
diff --git a/wcfsetup/install/files/js/3rdParty/prism/prism.js b/wcfsetup/install/files/js/3rdParty/prism/prism.js
new file mode 100644 (file)
index 0000000..88a3368
--- /dev/null
@@ -0,0 +1,563 @@
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism */
+var _self = (typeof window !== 'undefined')
+       ? window   // if in browser
+       : (
+               (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
+               ? self // if in worker
+               : {}   // if in node js
+       );
+
+/**
+ * Prism: Lightweight, robust, elegant syntax highlighting
+ * MIT license http://www.opensource.org/licenses/mit-license.php/
+ * @author Lea Verou http://lea.verou.me
+ */
+
+var Prism = (function(){
+
+// Private helper vars
+var lang = /\blang(?:uage)?-([\w-]+)\b/i;
+var uniqueId = 0;
+
+var _ = _self.Prism = {
+       manual: _self.Prism && _self.Prism.manual,
+       disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,
+       util: {
+               encode: function (tokens) {
+                       if (tokens instanceof Token) {
+                               return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
+                       } else if (_.util.type(tokens) === 'Array') {
+                               return tokens.map(_.util.encode);
+                       } else {
+                               return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\u00a0/g, ' ');
+                       }
+               },
+
+               type: function (o) {
+                       return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
+               },
+
+               objId: function (obj) {
+                       if (!obj['__id']) {
+                               Object.defineProperty(obj, '__id', { value: ++uniqueId });
+                       }
+                       return obj['__id'];
+               },
+
+               // Deep clone a language definition (e.g. to extend it)
+               clone: function (o, visited) {
+                       var type = _.util.type(o);
+                       visited = visited || {};
+
+                       switch (type) {
+                               case 'Object':
+                                       if (visited[_.util.objId(o)]) {
+                                               return visited[_.util.objId(o)];
+                                       }
+                                       var clone = {};
+                                       visited[_.util.objId(o)] = clone;
+
+                                       for (var key in o) {
+                                               if (o.hasOwnProperty(key)) {
+                                                       clone[key] = _.util.clone(o[key], visited);
+                                               }
+                                       }
+
+                                       return clone;
+
+                               case 'Array':
+                                       if (visited[_.util.objId(o)]) {
+                                               return visited[_.util.objId(o)];
+                                       }
+                                       var clone = [];
+                                       visited[_.util.objId(o)] = clone;
+
+                                       o.forEach(function (v, i) {
+                                               clone[i] = _.util.clone(v, visited);
+                                       });
+
+                                       return clone;
+                       }
+
+                       return o;
+               }
+       },
+
+       languages: {
+               extend: function (id, redef) {
+                       var lang = _.util.clone(_.languages[id]);
+
+                       for (var key in redef) {
+                               lang[key] = redef[key];
+                       }
+
+                       return lang;
+               },
+
+               /**
+                * Insert a token before another token in a language literal
+                * As this needs to recreate the object (we cannot actually insert before keys in object literals),
+                * we cannot just provide an object, we need anobject and a key.
+                * @param inside The key (or language id) of the parent
+                * @param before The key to insert before. If not provided, the function appends instead.
+                * @param insert Object with the key/value pairs to insert
+                * @param root The object that contains `inside`. If equal to Prism.languages, it can be omitted.
+                */
+               insertBefore: function (inside, before, insert, root) {
+                       root = root || _.languages;
+                       var grammar = root[inside];
+
+                       if (arguments.length == 2) {
+                               insert = arguments[1];
+
+                               for (var newToken in insert) {
+                                       if (insert.hasOwnProperty(newToken)) {
+                                               grammar[newToken] = insert[newToken];
+                                       }
+                               }
+
+                               return grammar;
+                       }
+
+                       var ret = {};
+
+                       for (var token in grammar) {
+
+                               if (grammar.hasOwnProperty(token)) {
+
+                                       if (token == before) {
+
+                                               for (var newToken in insert) {
+
+                                                       if (insert.hasOwnProperty(newToken)) {
+                                                               ret[newToken] = insert[newToken];
+                                                       }
+                                               }
+                                       }
+
+                                       ret[token] = grammar[token];
+                               }
+                       }
+
+                       var old = root[inside];
+                       root[inside] = ret;
+
+                       // Update references in other language definitions
+                       _.languages.DFS(_.languages, function(key, value) {
+                               if (value === old && key != inside) {
+                                       this[key] = ret;
+                               }
+                       });
+
+                       return ret;
+               },
+
+               // Traverse a language definition with Depth First Search
+               DFS: function(o, callback, type, visited) {
+                       visited = visited || {};
+                       for (var i in o) {
+                               if (o.hasOwnProperty(i)) {
+                                       callback.call(o, i, o[i], type || i);
+
+                                       if (_.util.type(o[i]) === 'Object' && !visited[_.util.objId(o[i])]) {
+                                               visited[_.util.objId(o[i])] = true;
+                                               _.languages.DFS(o[i], callback, null, visited);
+                                       }
+                                       else if (_.util.type(o[i]) === 'Array' && !visited[_.util.objId(o[i])]) {
+                                               visited[_.util.objId(o[i])] = true;
+                                               _.languages.DFS(o[i], callback, i, visited);
+                                       }
+                               }
+                       }
+               }
+       },
+       plugins: {},
+
+       highlightAll: function(async, callback) {
+               _.highlightAllUnder(document, async, callback);
+       },
+
+       highlightAllUnder: function(container, async, callback) {
+               var env = {
+                       callback: callback,
+                       selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
+               };
+
+               _.hooks.run("before-highlightall", env);
+
+               var elements = env.elements || container.querySelectorAll(env.selector);
+
+               for (var i=0, element; element = elements[i++];) {
+                       _.highlightElement(element, async === true, env.callback);
+               }
+       },
+
+       highlightElement: function(element, async, callback) {
+               // Find language
+               var language, grammar, parent = element;
+
+               while (parent && !lang.test(parent.className)) {
+                       parent = parent.parentNode;
+               }
+
+               if (parent) {
+                       language = (parent.className.match(lang) || [,''])[1].toLowerCase();
+                       grammar = _.languages[language];
+               }
+
+               // Set language on the element, if not present
+               element.className = element.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
+
+               if (element.parentNode) {
+                       // Set language on the parent, for styling
+                       parent = element.parentNode;
+
+                       if (/pre/i.test(parent.nodeName)) {
+                               parent.className = parent.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
+                       }
+               }
+
+               var code = element.textContent;
+
+               var env = {
+                       element: element,
+                       language: language,
+                       grammar: grammar,
+                       code: code
+               };
+
+               _.hooks.run('before-sanity-check', env);
+
+               if (!env.code || !env.grammar) {
+                       if (env.code) {
+                               _.hooks.run('before-highlight', env);
+                               env.element.textContent = env.code;
+                               _.hooks.run('after-highlight', env);
+                       }
+                       _.hooks.run('complete', env);
+                       return;
+               }
+
+               _.hooks.run('before-highlight', env);
+
+               if (async && _self.Worker) {
+                       var worker = new Worker(_.filename);
+
+                       worker.onmessage = function(evt) {
+                               env.highlightedCode = evt.data;
+
+                               _.hooks.run('before-insert', env);
+
+                               env.element.innerHTML = env.highlightedCode;
+
+                               callback && callback.call(env.element);
+                               _.hooks.run('after-highlight', env);
+                               _.hooks.run('complete', env);
+                       };
+
+                       worker.postMessage(JSON.stringify({
+                               language: env.language,
+                               code: env.code,
+                               immediateClose: true
+                       }));
+               }
+               else {
+                       env.highlightedCode = _.highlight(env.code, env.grammar, env.language);
+
+                       _.hooks.run('before-insert', env);
+
+                       env.element.innerHTML = env.highlightedCode;
+
+                       callback && callback.call(element);
+
+                       _.hooks.run('after-highlight', env);
+                       _.hooks.run('complete', env);
+               }
+       },
+
+       highlight: function (text, grammar, language) {
+               var env = {
+                       code: text,
+                       grammar: grammar,
+                       language: language
+               };
+               _.hooks.run('before-tokenize', env);
+               env.tokens = _.tokenize(env.code, env.grammar);
+               _.hooks.run('after-tokenize', env);
+               return Token.stringify(_.util.encode(env.tokens), env.language);
+       },
+
+       matchGrammar: function (text, strarr, grammar, index, startPos, oneshot, target) {
+               var Token = _.Token;
+
+               for (var token in grammar) {
+                       if(!grammar.hasOwnProperty(token) || !grammar[token]) {
+                               continue;
+                       }
+
+                       if (token == target) {
+                               return;
+                       }
+
+                       var patterns = grammar[token];
+                       patterns = (_.util.type(patterns) === "Array") ? patterns : [patterns];
+
+                       for (var j = 0; j < patterns.length; ++j) {
+                               var pattern = patterns[j],
+                                       inside = pattern.inside,
+                                       lookbehind = !!pattern.lookbehind,
+                                       greedy = !!pattern.greedy,
+                                       lookbehindLength = 0,
+                                       alias = pattern.alias;
+
+                               if (greedy && !pattern.pattern.global) {
+                                       // Without the global flag, lastIndex won't work
+                                       var flags = pattern.pattern.toString().match(/[imuy]*$/)[0];
+                                       pattern.pattern = RegExp(pattern.pattern.source, flags + "g");
+                               }
+
+                               pattern = pattern.pattern || pattern;
+
+                               // Don’t cache length as it changes during the loop
+                               for (var i = index, pos = startPos; i < strarr.length; pos += strarr[i].length, ++i) {
+
+                                       var str = strarr[i];
+
+                                       if (strarr.length > text.length) {
+                                               // Something went terribly wrong, ABORT, ABORT!
+                                               return;
+                                       }
+
+                                       if (str instanceof Token) {
+                                               continue;
+                                       }
+
+                                       if (greedy && i != strarr.length - 1) {
+                                               pattern.lastIndex = pos;
+                                               var match = pattern.exec(text);
+                                               if (!match) {
+                                                       break;
+                                               }
+
+                                               var from = match.index + (lookbehind ? match[1].length : 0),
+                                                   to = match.index + match[0].length,
+                                                   k = i,
+                                                   p = pos;
+
+                                               for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {
+                                                       p += strarr[k].length;
+                                                       // Move the index i to the element in strarr that is closest to from
+                                                       if (from >= p) {
+                                                               ++i;
+                                                               pos = p;
+                                                       }
+                                               }
+
+                                               // If strarr[i] is a Token, then the match starts inside another Token, which is invalid
+                                               if (strarr[i] instanceof Token) {
+                                                       continue;
+                                               }
+
+                                               // Number of tokens to delete and replace with the new match
+                                               delNum = k - i;
+                                               str = text.slice(pos, p);
+                                               match.index -= pos;
+                                       } else {
+                                               pattern.lastIndex = 0;
+
+                                               var match = pattern.exec(str),
+                                                       delNum = 1;
+                                       }
+
+                                       if (!match) {
+                                               if (oneshot) {
+                                                       break;
+                                               }
+
+                                               continue;
+                                       }
+
+                                       if(lookbehind) {
+                                               lookbehindLength = match[1] ? match[1].length : 0;
+                                       }
+
+                                       var from = match.index + lookbehindLength,
+                                           match = match[0].slice(lookbehindLength),
+                                           to = from + match.length,
+                                           before = str.slice(0, from),
+                                           after = str.slice(to);
+
+                                       var args = [i, delNum];
+
+                                       if (before) {
+                                               ++i;
+                                               pos += before.length;
+                                               args.push(before);
+                                       }
+
+                                       var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
+
+                                       args.push(wrapped);
+
+                                       if (after) {
+                                               args.push(after);
+                                       }
+
+                                       Array.prototype.splice.apply(strarr, args);
+
+                                       if (delNum != 1)
+                                               _.matchGrammar(text, strarr, grammar, i, pos, true, token);
+
+                                       if (oneshot)
+                                               break;
+                               }
+                       }
+               }
+       },
+
+       tokenize: function(text, grammar, language) {
+               var strarr = [text];
+
+               var rest = grammar.rest;
+
+               if (rest) {
+                       for (var token in rest) {
+                               grammar[token] = rest[token];
+                       }
+
+                       delete grammar.rest;
+               }
+
+               _.matchGrammar(text, strarr, grammar, 0, 0, false);
+
+               return strarr;
+       },
+
+       hooks: {
+               all: {},
+
+               add: function (name, callback) {
+                       var hooks = _.hooks.all;
+
+                       hooks[name] = hooks[name] || [];
+
+                       hooks[name].push(callback);
+               },
+
+               run: function (name, env) {
+                       var callbacks = _.hooks.all[name];
+
+                       if (!callbacks || !callbacks.length) {
+                               return;
+                       }
+
+                       for (var i=0, callback; callback = callbacks[i++];) {
+                               callback(env);
+                       }
+               }
+       }
+};
+
+var Token = _.Token = function(type, content, alias, matchedStr, greedy) {
+       this.type = type;
+       this.content = content;
+       this.alias = alias;
+       // Copy of the full string this token was created from
+       this.length = (matchedStr || "").length|0;
+       this.greedy = !!greedy;
+};
+
+Token.stringify = function(o, language, parent) {
+       if (typeof o == 'string') {
+               return o;
+       }
+
+       if (_.util.type(o) === 'Array') {
+               return o.map(function(element) {
+                       return Token.stringify(element, language, o);
+               }).join('');
+       }
+
+       var env = {
+               type: o.type,
+               content: Token.stringify(o.content, language, parent),
+               tag: 'span',
+               classes: ['token', o.type],
+               attributes: {},
+               language: language,
+               parent: parent
+       };
+
+       if (o.alias) {
+               var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];
+               Array.prototype.push.apply(env.classes, aliases);
+       }
+
+       _.hooks.run('wrap', env);
+
+       var attributes = Object.keys(env.attributes).map(function(name) {
+               return name + '="' + (env.attributes[name] || '').replace(/"/g, '&quot;') + '"';
+       }).join(' ');
+
+       return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '</' + env.tag + '>';
+
+};
+
+if (!_self.document) {
+       if (!_self.addEventListener) {
+               // in Node.js
+               return _self.Prism;
+       }
+
+       if (!_.disableWorkerMessageHandler) {
+               // In worker
+               _self.addEventListener('message', function (evt) {
+                       var message = JSON.parse(evt.data),
+                               lang = message.language,
+                               code = message.code,
+                               immediateClose = message.immediateClose;
+
+                       _self.postMessage(_.highlight(code, _.languages[lang], lang));
+                       if (immediateClose) {
+                               _self.close();
+                       }
+               }, false);
+       }
+
+       return _self.Prism;
+}
+
+//Get current script and highlight
+var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
+
+if (script) {
+       _.filename = script.src;
+
+       if (!_.manual && !script.hasAttribute('data-manual')) {
+               if(document.readyState !== "loading") {
+                       if (window.requestAnimationFrame) {
+                               window.requestAnimationFrame(_.highlightAll);
+                       } else {
+                               window.setTimeout(_.highlightAll, 16);
+                       }
+               }
+               else {
+                       document.addEventListener('DOMContentLoaded', _.highlightAll);
+               }
+       }
+}
+
+return _self.Prism;
+
+})();
+
+if (typeof module !== 'undefined' && module.exports) {
+       module.exports = Prism;
+}
+
+// hack for components to work correctly in node.js
+if (typeof global !== 'undefined') {
+       global.Prism = Prism;
+}
+;