+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+//var copy = require('dryice').copy;
+var copy = internalRequire('dryice').copy;
+
+var aceHome = __dirname;
+
+// Pilot sources
+var pilot = copy.createDataObject();
+copy({
+ source: [ {
+ root: aceHome + '/support/cockpit/support/pilot/lib',
+ include: /.*\.js$/,
+ exclude: /tests?\//
+ } ],
+ filter: [ copy.filter.moduleDefines ],
+ dest: pilot
+});
+
+// Cockpit sources
+var cockpit = copy.createDataObject();
+copy({
+ source: [ {
+ root: aceHome + '/support/cockpit/lib',
+ include: /.*\.js$/,
+ exclude: /tests?\//
+ } ],
+ filter: [ copy.filter.moduleDefines ],
+ dest: cockpit
+});
+copy({
+ source: [ {
+ root: aceHome + '/support/cockpit/lib',
+ include: /.*\.css$|.*\.html$/,
+ exclude: /tests?\//
+ } ],
+ filter: [ copy.filter.addDefines ],
+ dest: cockpit
+});
+copy({
+ source: [ {
+ root: aceHome + '/support/cockpit/lib',
+ include: /.*\.png$|.*\.gif$/,
+ exclude: /tests?\//
+ } ],
+ filter: [ copy.filter.base64 ],
+ dest: cockpit
+});
+
+// Ace sources
+var ace = copy.createDataObject();
+copy({
+ source: [
+ // Exclude all themes/modes so we can just include textmate/js
+ {
+ root: aceHome + '/lib',
+ include: /.*\.js$/,
+ exclude: /tests?\/|theme\/|mode\//
+ },
+ { base: aceHome + '/lib/', path: 'ace/theme/textmate.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/text.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/javascript.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/text_highlight_rules.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/javascript_highlight_rules.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/doc_comment_highlight_rules.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/matching_brace_outdent.js' },
+ { base: aceHome + '/lib/', path: 'ace/mode/javascript_highlight_rules.js' }
+ ],
+ filter: [ copy.filter.moduleDefines ],
+ dest: ace
+});
+copy({
+ source: [ {
+ root: aceHome + '/lib',
+ include: /tm\.css|editor\.css/,
+ exclude: /tests?\//
+ } ],
+ filter: [ copy.filter.addDefines ],
+ dest: ace
+});
+
+// Piece together the parts that we want
+var data = copy.createDataObject();
+copy({
+ source: [
+ 'build_support/mini_require.js',
+ pilot,
+ // cockpit,
+ ace,
+ 'build_support/boot.js'
+ ],
+ dest: data
+});
+
+copy({
+ source: [
+ 'build_support/editor.html'
+ ],
+ dest: 'build/editor.html'
+});
+
+// Create the compressed and uncompressed output files
+copy({
+ source: data,
+ filter: copy.filter.uglifyjs,
+ dest: 'build/ace.js'
+});
+copy({
+ source: data,
+ dest: 'build/ace-uncompressed.js'
+});
+
+
+
+
+
+function internalRequire(ignore) {
+var exports = {};
+
+
+
+var fs = require("fs");
+var ujs = require("uglify-js");
+
+/**
+ * Dryice is ant for javascript
+ * @param obj An object that contains source, dest and (optionally) filter objects
+ * source must be one of:
+ * - string: a file to read (later a directory too)
+ * - a data object like { value:OUTPUT_DATA }
+ * - a findObj like { root:DIR, include:RegExp|[RegExp], exclude:RegExp|[RegExp] }
+ * - a baseObj like { base:BASE, path:PATH } where BASE+PATH = filename
+ * (this method allows use of commonjs filters)
+ * - an array containing entries like the 3 above
+ * - a function which returns one of the 4 above
+ * dest must be either a string (pointing to a file) or a data object
+ */
+function copy(obj) {
+ // Gather a list of all the input sources
+ addSource(obj, obj.source);
+
+ // Concatenate all the input sources
+ var value = '';
+ obj.sources.forEach(function(source) {
+ value += source.value;
+ }, this);
+
+ // Run filters where onRead=false
+ value = runFilters(value, obj.filter, false);
+
+ // Output
+ // TODO: for now we're ignoring the concept of directory destinations.
+ if (typeof obj.dest.value === 'string') {
+ obj.dest.value += value;
+ }
+ else if (typeof obj.dest === 'string') {
+ fs.writeFileSync(obj.dest, value);
+ }
+ else {
+ throw new Error('Can\'t handle type of dest: ' + typeof obj.dest);
+ }
+}
+
+function addName(currentName, newName) {
+ return currentName === null ? currentName : newName;
+}
+
+function addSource(obj, source) {
+ if (!obj.sources) {
+ obj.sources = [];
+ }
+
+ if (typeof source === 'function') {
+ addSource(obj, source());
+ }
+ else if (Array.isArray(source)) {
+ source.forEach(function(s) {
+ addSource(obj, s);
+ }, this);
+ }
+ else if (source.root) {
+ copy.findFiles(obj, source);
+ }
+ else if (source.base) {
+ addSourceBase(obj, source);
+ }
+ else if (typeof source === 'string') {
+ addSourceFile(obj, source);
+ }
+ else if (typeof source.value === 'string') {
+ if (!source.filtered) {
+ source.value = runFilters(source.value, obj.filter, true, source.name);
+ source.filtered = true;
+ }
+ obj.sources.push(source);
+ }
+ else {
+ throw new Error('Can\'t handle type of source: ' + typeof source);
+ }
+}
+
+function addSourceFile(obj, filename) {
+ var read = fs.readFileSync(filename);
+ obj.sources.push({
+ name: filename,
+ value: runFilters(read, obj.filter, true, filename)
+ });
+}
+
+function addSourceBase(obj, baseObj) {
+ var read = fs.readFileSync(baseObj.base + baseObj.path);
+ obj.sources.push({
+ name: baseObj,
+ value: runFilters(read, obj.filter, true, baseObj)
+ });
+}
+
+function runFilters(value, filter, reading, name) {
+ if (!filter) {
+ return value;
+ }
+
+ if (Array.isArray(filter)) {
+ filter.forEach(function(f) {
+ value = runFilters(value, f, reading, name);
+ }, this);
+ return value;
+ }
+
+ if (filter.onRead == reading) {
+ return filter(value, name);
+ }
+ else {
+ return value;
+ }
+}
+
+/**
+ * A holder is an in-memory store of a result of a copy operation.
+ *
+ * var holder = copy.createDataObject();
+ * copy({ source: 'x.txt', dest: holder });
+ * copy({ source: 'y.txt', dest: holder });
+ * copy({ source: holder, dest: 'z.txt' });
+ *
+ */
+copy.createDataObject = function() {
+ return { value: '' };
+};
+
+/**
+ * An object that contains include and exclude object
+ */
+copy.findFiles = function(obj, findObj) {
+ if (!findObj.filter) {
+ findObj.filter = createFilterFromRegex(findObj);
+ }
+ if (!findObj.path) {
+ findObj.path = '';
+ }
+
+ if (findObj.root.length > 0 && findObj.root.substr(-1) !== '/') {
+ findObj.root += '/';
+ }
+ var path = findObj.path;
+ if (path.length > 0 && path.substr(-1) !== '/') {
+ path += '/';
+ }
+
+ fs.readdirSync(findObj.root + findObj.path).forEach(function(entry) {
+ var stat = fs.statSync(findObj.root + path + entry);
+ if (stat.isFile()) {
+ if (findObj.filter(path + entry)) {
+ addSourceBase(obj, {
+ base: findObj.root,
+ path: path + entry
+ });
+ }
+ }
+ else if (stat.isDirectory()) {
+ findObj.path = path + entry;
+ copy.findFiles(obj, findObj);
+ }
+ }, this);
+};
+
+function createFilterFromRegex(obj) {
+ return function(path) {
+ function noPathMatch(pattern) {
+ return !pattern.test(path);
+ }
+ if (obj.include instanceof RegExp) {
+ if (noPathMatch(obj.include)) {
+ return false;
+ }
+ }
+ if (typeof obj.include === 'string') {
+ if (noPathMatch(new RegExp(obj.include))) {
+ return false;
+ }
+ }
+ if (Array.isArray(obj.include)) {
+ if (obj.include.every(noPathMatch)) {
+ return false;
+ }
+ }
+
+ function pathMatch(pattern) {
+ return pattern.test(path);
+ }
+ if (obj.exclude instanceof RegExp) {
+ if (pathMatch(obj.exclude)) {
+ return false;
+ }
+ }
+ if (typeof obj.exclude === 'string') {
+ if (pathMatch(new RegExp(obj.exclude))) {
+ return false;
+ }
+ }
+ if (Array.isArray(obj.exclude)) {
+ if (obj.exclude.some(pathMatch)) {
+ return false;
+ }
+ }
+
+ return true;
+ };
+}
+
+/**
+ * File filters
+ */
+copy.filter = {};
+
+/**
+ * Compress the given input code using UglifyJS.
+ *
+ * @param string input
+ * @return string output
+ */
+copy.filter.uglifyjs = function(input) {
+ if (typeof input !== 'string') {
+ input = input.toString();
+ }
+
+ var opt = copy.filter.uglifyjs.options;
+ var ast = ujs.parser.parse(input, opt.parse_strict_semicolons);
+
+ if (opt.mangle) {
+ ast = ujs.uglify.ast_mangle(ast, opt.mangle_toplevel);
+ }
+
+ if (opt.squeeze) {
+ ast = ujs.uglify.ast_squeeze(ast, opt.squeeze_options);
+ if (opt.squeeze_more) {
+ ast = ujs.uglify.ast_squeeze_more(ast);
+ }
+ }
+
+ return ujs.uglify.gen_code(ast, opt.beautify);
+};
+copy.filter.uglifyjs.onRead = false;
+/**
+ * UglifyJS filter options.
+ */
+copy.filter.uglifyjs.options = {
+ parse_strict_semicolons: false,
+
+ /**
+ * The beautify argument used for process.gen_code(). See the UglifyJS
+ * documentation.
+ */
+ beautify: false,
+ mangle: true,
+ mangle_toplevel: false,
+ squeeze: true,
+
+ /**
+ * The options argument used for process.ast_squeeze(). See the UglifyJS
+ * documentation.
+ */
+ squeeze_options: {},
+
+ /**
+ * Tells if you want to perform potentially unsafe compression.
+ */
+ squeeze_more: false
+};
+
+/**
+ * A filter to munge CommonJS headers
+ */
+copy.filter.addDefines = function(input, source) {
+ if (typeof input !== 'string') {
+ input = input.toString();
+ }
+
+ if (!source) {
+ throw new Error('Missing filename for moduleDefines');
+ }
+
+ if (source.base) {
+ source = source.path;
+ }
+
+ var module = source.replace(/\.css$/, '');
+
+ input = input.replace(/"/g, '\\"');
+ input = '"' + input.replace(/\n/g, '" +\n "') + '"';
+
+ return 'define("text!' + source.toString() + '", ' + input + ');\n\n';
+};
+copy.filter.addDefines.onRead = true;
+
+/**
+ *
+ */
+copy.filter.base64 = function(input, source) {
+ if (typeof input === 'string') {
+ throw new Error('base64 filter needs to be the first in a filter set');
+ }
+
+ if (!source) {
+ throw new Error('Missing filename for moduleDefines');
+ }
+
+ if (source.base) {
+ source = source.path;
+ }
+
+ if (source.substr(-4) === '.png') {
+ input = 'data:image/png;base64,' + input.toString('base64');
+ }
+ else if (source.substr(-4) === '.gif') {
+ input = 'data:image/gif;base64,' + input.toString('base64');
+ }
+ else {
+ throw new Error('Only gif/png supported by base64 filter: ' + source);
+ }
+
+ return 'define("text!' + source + '", "' + input + '");\n\n';
+};
+copy.filter.base64.onRead = true;
+
+/**
+ *
+ */
+copy.filter.moduleDefines = function(input, source) {
+ if (typeof input !== 'string') {
+ input = input.toString();
+ }
+
+ if (!source) {
+ throw new Error('Missing filename for moduleDefines');
+ }
+
+ if (source.base) {
+ source = source.path;
+ }
+ source = source.replace(/\.js$/, '');
+
+ return input.replace(/\bdefine\(\s*function\(require,\s*exports,\s*module\)\s*\{/,
+ "define('" + source + "', function(require, exports, module) {");
+};
+copy.filter.moduleDefines.onRead = true;
+
+
+exports.copy = copy;
+
+
+
+
+
+
+
+
+
+
+
+return exports;
+};
+
+
+
+
+
+var sys = require("sys");
+var fs = require("fs");
+var path = require("path");
+var util = require("util");
+var Step = require("step");
+
+
+function copy0(options, callback) {
+ var source = options.source;
+ var data = "";
+
+ if (typeof source == "function") {
+ source = source(options);
+ }
+
+ if (typeof source == "string") {
+ source = [source];
+ } else if (typeof options.source == "object") {
+ data = source.value || "";
+ }
+
+ var filters = options.filter || [];
+ if (typeof filters == "function") {
+ filters = [filters];
+ }
+
+ if (typeof dest == "string") {
+ var stat = fs.statSync();
+ }
+
+ // read the files
+ if (Array.isArray(source)) {
+ source.forEach(function(file) {
+ var stat = fs.statSync(file);
+ var result = fs.readFileSync(file);
+
+ // execute the filters
+ filters.forEach(function(filter) {
+ filter(input, file);
+ });
+
+ data += result + "\n";
+ });
+ }
+
+ // save the output
+ var dest = options.dest;
+ if (typeof dest == "string") {
+ fs.writeFileSync(dest, data);
+ } else {
+ dest.value = data;
+ }
+}
+
+
+var Builder = function Builder(appFolder) {
+ this.appFolder = appFolder;
+};
+
+Builder.prototype = {
+ DEBUG: false,
+
+ /**
+ * Web application folder - the location where scripts, styles and resources
+ * are fetched from.
+ */
+ appFolder: ".",
+
+ /**
+ * Target build folder - the location where the packaged web application is
+ * saved to.
+ */
+ buildFolder: "./build",
+
+ /**
+ * The default folder and file modes (permissions for chmod).
+ */
+ folderMode: 0755,
+ fileMode: 0644,
+
+ /**
+ * Array holding regular expression patterns. When you add entire folders to
+ * your build you might want to skip certain files.
+ */
+ ignoreFiles: [],
+
+ log: sys.puts,
+
+ debug: function(message) {
+ if (this.DEBUG) {
+ this.log(message);
+ }
+ },
+
+ /**
+ * Sets and creates the target build folder, asynchronously.
+ *
+ * @param string folder
+ * Tells the target folder where you want to save the packaged web
+ * application.
+ *
+ * @param function callback
+ * The callback you want executed after the folder is created.
+ * Callback arguments:
+ * string|Exception|Error error - Holds the error that occurred
+ * while trying to set the build folder. This is undefined|null
+ * when the operation was successful.
+ *
+ * Builder build - holds a reference to the build instance.
+ */
+ setBuildFolder: function Builder_setBuildFolder(newFolder, callback)
+ {
+ var self = this;
+
+ Step(
+ function checkFolder() {
+ path.exists(newFolder, this);
+ },
+
+ function makeFolder(exists) {
+ if (!exists) {
+ fs.mkdir(newFolder, self.folderMode, this);
+ } else {
+ return true;
+ }
+ },
+
+ function folderReady(err) {
+ if (!err) {
+ self.buildFolder = newFolder;
+ }
+ callback(err, self);
+ }
+ );
+ },
+
+ /**
+ * Copy files from the web application folder to the target build folder.
+ *
+ * @param object|array|string aFiles
+ * Holds the list of files you want to copy to the target build
+ * folder. If this is a string, you copy only one file. If the
+ * argument is given as an object, keys are considered source files
+ * and values are considered target files - this allows you to copy
+ * files to different locations in the build folder, without
+ * maintaining the same structure as in the original folder.
+ * @param function callback
+ * The callback you want executed after the files are copied. The
+ * callback arguments are the same as for setBuildFolder().
+ * @returns void
+ */
+ copyFiles: function Builder_copyFiles(aFiles, callback)
+ {
+ var files = {};
+ if (typeof aFiles == "string") {
+ files[aFiles] = aFiles;
+ } else if (Array.isArray(aFiles)) {
+ aFiles.forEach(function(file) {
+ files[file] = file;
+ });
+ } else {
+ files = aFiles;
+ }
+
+ var self = this;
+
+ Step(
+ function copyFiles() {
+ var group = this.group();
+ for (var file in files) {
+ fs_copyFile(self.appFolder + "/" + file,
+ self.buildFolder + "/" + files[file],
+ group());
+ }
+ },
+
+ function filesReady(err) {
+ callback(err, self);
+ }
+ );
+ },
+
+ /**
+ * Copy folders from the web application folder to the target build folder.
+ *
+ * @param object|array|string aFolders
+ * Holds the list of folders you want to copy to the target build
+ * folder. If this is a string, you copy only one folder. If the
+ * argument is given as an object, keys are considered source folders
+ * and values are considered target folders - this allows you to copy
+ * folders to different locations in the build folder, without
+ * maintaining the same structure as in the original folder.
+ * @param function callback
+ * The callback you want executed after the folders are copied. The
+ * callback arguments are the same as for setBuildFolder().
+ * @param boolean [recursive=true]
+ * (Optional) True if you want to copy subfolders as well, false if
+ * you want to copy only the files contained in the folders given.
+ * Default is true.
+ * @returns void
+ */
+ copyFolders: function Builder_copyFolders(aFolders, callback, recursive)
+ {
+ var folders = {};
+ if (typeof aFolders == "string") {
+ folders[aFolders] = aFolders;
+ } else if (Array.isArray(aFolders)) {
+ folders.forEach(function(folder) {
+ folders[folder] = folder;
+ });
+ } else {
+ folders = aFolders;
+ }
+ if (typeof recursive == "undefined") {
+ recursive = true;
+ }
+
+ var self = this;
+
+ Step(
+ function copyFolders() {
+ var group = this.group();
+ for (var folder in folders) {
+ self.copyFolder(folder, folders[folder], group(), recursive);
+ }
+ },
+ function foldersReady(err) {
+ callback(err, self);
+ }
+ );
+ },
+
+ /**
+ * Copy one folder from the web application folder to the target build
+ * folder.
+ *
+ * @param string source
+ * The folder you want to copy.
+ * @param string [destination=source]
+ * The destination folder. By default this is the same as the source,
+ * but in the buildFolder. You can change the destination, relative
+ * to the buildFolder.
+ * @param function callback
+ * The callback you want executed after the folder is copied. The
+ * callback arguments are the same as for setBuildFolder().
+ * @param boolean [recursive=true]
+ * (Optional) True if you want to copy the subfolders as well, false
+ * if you want to copy only the files contained in the given source
+ * folder. Default is true.
+ * @returns void
+ */
+ copyFolder: function Builder_copyFolder()
+ {
+ var source, destination, recursive, callback;
+ switch (arguments.length) {
+ case 2: // source, callback
+ source = destination = arguments[0];
+ callback = arguments[1];
+ recursive = true;
+ break;
+ case 3:
+ // source, callback, recursive
+ // OR source, destination, callback
+ source = arguments[0];
+ if (typeof arguments[1] == "function") {
+ destination = source;
+ callback = arguments[1];
+ recursive = arguments[2];
+ } else {
+ destination = arguments[1];
+ callback = arguments[2];
+ recursive = true;
+ }
+ break;
+ case 4: // source, destination, callback, recursive
+ source = arguments[0];
+ destination = arguments[1];
+ callback = arguments[2];
+ recursive = arguments[3];
+ break;
+ default:
+ throw new Error("Invalid arguments.");
+ }
+
+ var self = this;
+
+ // result from fs.readdir(), without . and ..
+ var readdir_files = [];
+
+ var files = [];
+ var subfolders = [];
+
+ Step(
+ function checkDestination() {
+ path.exists(self.buildFolder + "/" + destination, this);
+ },
+
+ function mkdir_destination(exists) {
+ if (!exists) {
+ fs.mkdir(self.buildFolder + "/" + destination, this);
+ } else {
+ return true;
+ }
+ },
+
+ function readdir_source(err) {
+ if (err) {
+ throw err;
+ }
+
+ // find the files in the given source folder.
+ fs.readdir(self.appFolder + "/" + source, this);
+ },
+
+ function statFiles(err, result) {
+ if (err) {
+ throw err;
+ }
+
+ var group = this.group();
+ result.forEach(function(file) {
+ if (file != "." && file != ".." &&
+ !self.shouldSkipFile("/" + source + "/" + file)) {
+ fs.stat(file, group());
+ readdir_files.push(file);
+ }
+ });
+ },
+
+ function copyFiles(err, stats) {
+ if (err) {
+ throw err;
+ }
+
+ // separate files out from folders
+ stats.forEach(function(stat, index) {
+ if (stat.isDirectory()) {
+ subfolders.push(readdir_files[index]);
+ } else if (stat.isFile()) {
+ files.push(readdir_files[index]);
+ }
+ });
+
+ // copy the files
+ var group = this.group();
+ files.forEach(function(file) {
+ fs_copyFile(self.appFolder + "/" + source + "/" + file,
+ self.buildFolder + "/" + destination + "/" + file,
+ group());
+ });
+ },
+
+ function copySubfolders(err) {
+ if (err) {
+ throw err;
+ }
+
+ if (!recursive) {
+ return true;
+ }
+
+ var group = this.group();
+ subfolders.forEach(function(folder) {
+ self.copyFolder(source + "/" + folder,
+ destination + "/" + folder,
+ group(), true);
+ });
+ },
+
+ function copyDone(err) {
+ callback(err, self);
+ }
+ );
+ },
+
+ /**
+ * Tells if this builder should ignore a file, given the file name. The
+ * this.ignoreFiles array of regular expression patterns is used.
+ *
+ * @param string filename
+ * @returns boolean
+ * True if the file should be ignored, or false otherwise.
+ */
+ shouldSkipFile: function Builder_shouldSkipFile(filename)
+ {
+ return this.ignoreFiles.some(function(pattern) {
+ return pattern.test(filename);
+ });
+ }
+};
+
+Builder.executeManifest = function Builder_executeManifest(manifest, callback) {
+ return; // stub
+};
+
+var Script = function Script(build, filename) {
+ if (!build) {
+ throw new Error("The first argument must reference a dryice.Builder instance.");
+ } else if (!filename) {
+ throw new Error("The second argument must be the script file name.");
+ }
+
+ this.build = build;
+ this.filename = filename;
+};
+
+Script.prototype = {
+ inputEncoding: "utf8",
+ outputEncoding: "utf8",
+
+ /**
+ * List of functions or filter names that process each input file.
+ */
+ inputFilters: [],
+
+ /**
+ * List of functions or filter names that process the concatenated output
+ * file.
+ */
+ outputFilters: [],
+
+ /**
+ * Add files to the compiled script.
+ *
+ * @param array|string files
+ * @param function callback
+ * @returns void
+ */
+ addFiles: function Builder_addFiles(files, callback) {
+ if (typeof files == "string") {
+ files = [files];
+ }
+
+ var self = this;
+
+ Step(
+ function readFiles() {
+ var group = this.group();
+
+ files.forEach(function(file) {
+ fs.readFile(self.build.appFolder + "/" + file,
+ self.inputEncoding, group());
+ });
+ },
+
+ function filterFiles(err, data) {
+ if (err) {
+ throw err;
+ }
+
+ for (var i = 0; i < data.length; i++) {
+ data[i] = self.executeFilters(self.inputFilters, data[i],
+ files[i]);
+ }
+
+ self.output += data.join("\n");
+
+ return self;
+ },
+
+ callback
+ );
+ },
+
+ run: function Builder_run(buildCallback) {
+ var self = this;
+
+ Step(
+ function readFiles() {
+ var group = this.group();
+
+ self.input_files.forEach(function(file) {
+ fs.readFile(self.basedir + "/" + file,
+ self.input_encoding, group());
+ });
+ },
+
+ function filterInput(err, files) {
+ if (err) {
+ throw err;
+ }
+
+ for (var i = 0; i < files.length; i++) {
+ files[i] = self.run_filters(self.input_filters, files[i],
+ self.input_files[i]);
+ }
+
+ return files;
+ },
+
+ function postProcessOutput(err, output) {
+ if (err) {
+ throw err;
+ }
+
+ output = output.join("\n");
+ output = self.run_filters(self.output_filters, output);
+
+ if (typeof self.output_file == "string") {
+ fs.writeFile(self.basedir + "/" + self.output_file,
+ output, self.output_encoding, this);
+ } else {
+ self.output_file.write(output);
+ self.output_file.end();
+ return 1;
+ }
+ },
+
+ function buildComplete(err) {
+ buildCallback(err, self);
+ }
+ );
+ },
+
+ /**
+ * Given an array of filters (functions or filter names), invoke these
+ * filters on the given input content.
+ *
+ * @param array filters
+ * @param string input
+ * @param string [filename]
+ * Optional filename, useful for some filters.
+ * @return string
+ * Final filtered output.
+ */
+ executeFilters: function(filters, input, filename) {
+ filters.forEach(function(filter) {
+ if (typeof filter == "string") {
+ input = input_filters[filter].call(this, input, filename);
+ } else {
+ input = filter.call(this, input, filename);
+ }
+ }, this);
+ return input;
+ }
+};
+
+
diff --git a/Readme.md b/Readme.md
index 5d7f84c8..161852a0 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,6 +1,6 @@
-ACE (Ajax.org Code Editor)
+ACE (Ajax.org Cloud9 Editor)
==========================
-ACE is a standalone code editor written in JavaScript. It can be easily embedded in any web page and JavaScript application. It is currently used as the editor component of the [Cloud9 IDE](http://cloud9ide.com).
+ACE is a standalone code editor written in JavaScript. It can be easily embedded in any web page and JavaScript application. It is developed as the editor component for the [Cloud9 IDE](http://cloud9ide.com).
Checkout the [demo](http://ajaxorg.github.com/ace/editor-build.html)!
diff --git a/build.js b/build.js
deleted file mode 100644
index f36f6851..00000000
--- a/build.js
+++ /dev/null
@@ -1,114 +0,0 @@
-{
- baseUrl: "lib",
- dir: "build",
-
- paths: {
- "ace": "ace",
- "demo": "../demo",
- "cockpit": "../support/cockpit/lib/cockpit",
- "pilot": "../support/cockpit/support/pilot/lib/pilot"
- },
-
- //- "closure": uses Google's Closure Compiler in simple optimization
- //mode to minify the code.
- //- "closure.keepLines": Same as closure option, but keeps line returns
- //in the minified files.
- //- "none": no minification will be done.
- optimize: "closure.keepLines",
- //optimize: "none",
- inlineText: true,
- useStrict: false,
-
- pragmas: {
- jquery: false,
- requireExcludeModify: true,
- requireExcludePlugin: false,
- requireExcludePageLoad: false
- },
-
- skipPragmas: false,
- execModules: false,
- skipModuleInsertion: false,
-
- modules: [
- {
- name: "demo/boot",
- include: [
- "pilot/fixoldbrowsers",
- "pilot/plugin_manager",
- "pilot/settings",
- "pilot/environment",
- "pilot/index",
- "cockpit/index",
- "demo/startup"
- ]
- },
- /*{
- name: "demo/startup",
- includeRequire: false,
- include: [
- "pilot/fixoldbrowsers"
- ]
- },
- {
- name: "ace/editor",
- include: [
- "ace/document",
- "ace/undomanager",
- "ace/virtual_renderer",
-
- "ace/mode/javascript",
- "ace/theme/textmate"
- ],
- includeRequire: false
- },*/
- {
- name: "ace/theme/eclipse",
- exclude: [
- "pilot/lang",
- "pilot/dom",
- "pilot/oop"
- ]
- },
- {
- name: "ace/mode/xml",
- exclude: [
- "pilot/oop",
- "ace/tokenizer",
- "ace/mode/text"
- ]
- },
- {
- name: "ace/mode/css",
- exclude: [
- "pilot/oop",
- "pilot/lang",
- "ace/tokenizer",
- "ace/range",
- "ace/mode/text"
- ]
- },
- {
- name: "ace/mode/html",
- exclude: [
- "pilot/oop",
- "pilot/lang",
- "ace/tokenizer",
- "ace/range",
- "ace/mode/text",
- "ace/mode/javascript",
- "ace/mode/css",
- ]
- },
- {
- name: "ace/mode/python",
- exclude: [
- "pilot/oop",
- "pilot/lang",
- "ace/tokenizer",
- "ace/range",
- "ace/mode/text"
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/build/ace/background_tokenizer.js b/build/ace/background_tokenizer.js
deleted file mode 100644
index d913fca1..00000000
--- a/build/ace/background_tokenizer.js
+++ /dev/null
@@ -1,79 +0,0 @@
-define(function(f, i) {
- var j = f("pilot/oop"), k = f("pilot/event_emitter").EventEmitter;
- f = function(a, c) {
- this.running = false;
- this.textLines = [];
- this.lines = [];
- this.currentLine = 0;
- this.tokenizer = a;
- var b = this;
- this.$worker = function() {
- if(b.running) {
- for(var e = new Date, g = b.currentLine, d = b.textLines, h = 0, l = c.getLastVisibleRow();b.currentLine < d.length;) {
- b.lines[b.currentLine] = b.$tokenizeRows(b.currentLine, b.currentLine)[0];
- b.currentLine++;
- h += 1;
- if(h % 5 == 0 && new Date - e > 20) {
- b.fireUpdateEvent(g, b.currentLine - 1);
- b.running = setTimeout(b.$worker, b.currentLine < l ? 20 : 100);
- return
- }
- }b.running = false;
- b.fireUpdateEvent(g, d.length - 1)
- }
- }
- };
- (function() {
- j.implement(this, k);
- this.setTokenizer = function(a) {
- this.tokenizer = a;
- this.lines = [];
- this.start(0)
- };
- this.setLines = function(a) {
- this.textLines = a;
- this.lines = [];
- this.stop()
- };
- this.fireUpdateEvent = function(a, c) {
- this._dispatchEvent("update", {data:{first:a, last:c}})
- };
- this.start = function(a) {
- this.currentLine = Math.min(a || 0, this.currentLine, this.textLines.length);
- this.lines.splice(this.currentLine, this.lines.length);
- this.stop();
- this.running = setTimeout(this.$worker, 700)
- };
- this.stop = function() {
- this.running && clearTimeout(this.running);
- this.running = false
- };
- this.getTokens = function(a, c, b) {
- b(this.$tokenizeRows(a, c))
- };
- this.getState = function(a, c) {
- c(this.$tokenizeRows(a, a)[0].state)
- };
- this.$tokenizeRows = function(a, c) {
- var b = [], e = "start", g = false;
- if(a > 0 && this.lines[a - 1]) {
- e = this.lines[a - 1].state;
- g = true
- }for(a = a;a <= c;a++) {
- if(this.lines[a]) {
- d = this.lines[a];
- e = d.state;
- b.push(d)
- }else {
- var d = this.tokenizer.getLineTokens(this.textLines[a] || "", e);
- e = d.state;
- b.push(d);
- if(g) {
- this.lines[a] = d
- }
- }
- }return b
- }
- }).call(f.prototype);
- i.BackgroundTokenizer = f
-});
\ No newline at end of file
diff --git a/build/ace/commands/default_commands.js b/build/ace/commands/default_commands.js
deleted file mode 100644
index 2341aa26..00000000
--- a/build/ace/commands/default_commands.js
+++ /dev/null
@@ -1,152 +0,0 @@
-define(function(b) {
- b = b("pilot/canon");
- b.addCommand({name:"selectall", exec:function(a) {
- a.editor.getSelection().selectAll()
- }});
- b.addCommand({name:"removeline", exec:function(a) {
- a.editor.removeLines()
- }});
- b.addCommand({name:"gotoline", exec:function(a) {
- var c = parseInt(prompt("Enter line number:"));
- isNaN(c) || a.editor.gotoLine(c)
- }});
- b.addCommand({name:"togglecomment", exec:function(a) {
- a.editor.toggleCommentLines()
- }});
- b.addCommand({name:"findnext", exec:function(a) {
- a.editor.findNext()
- }});
- b.addCommand({name:"findprevious", exec:function(a) {
- a.editor.findPrevious()
- }});
- b.addCommand({name:"find", exec:function(a) {
- var c = prompt("Find:");
- a.editor.find(c)
- }});
- b.addCommand({name:"undo", exec:function(a) {
- a.editor.undo()
- }});
- b.addCommand({name:"redo", exec:function(a) {
- a.editor.redo()
- }});
- b.addCommand({name:"redo", exec:function(a) {
- a.editor.redo()
- }});
- b.addCommand({name:"overwrite", exec:function(a) {
- a.editor.toggleOverwrite()
- }});
- b.addCommand({name:"copylinesup", exec:function(a) {
- a.editor.copyLinesUp()
- }});
- b.addCommand({name:"movelinesup", exec:function(a) {
- a.editor.moveLinesUp()
- }});
- b.addCommand({name:"selecttostart", exec:function(a) {
- a.editor.getSelection().selectFileStart()
- }});
- b.addCommand({name:"gotostart", exec:function(a) {
- a.editor.navigateFileStart()
- }});
- b.addCommand({name:"selectup", exec:function(a) {
- a.editor.getSelection().selectUp()
- }});
- b.addCommand({name:"golineup", exec:function(a) {
- a.editor.navigateUp()
- }});
- b.addCommand({name:"copylinesdown", exec:function(a) {
- a.editor.copyLinesDown()
- }});
- b.addCommand({name:"movelinesdown", exec:function(a) {
- a.editor.moveLinesDown()
- }});
- b.addCommand({name:"selecttoend", exec:function(a) {
- a.editor.getSelection().selectFileEnd()
- }});
- b.addCommand({name:"gotoend", exec:function(a) {
- a.editor.navigateFileEnd()
- }});
- b.addCommand({name:"selectdown", exec:function(a) {
- a.editor.getSelection().selectDown()
- }});
- b.addCommand({name:"godown", exec:function(a) {
- a.editor.navigateDown()
- }});
- b.addCommand({name:"selectwordleft", exec:function(a) {
- a.editor.getSelection().selectWordLeft()
- }});
- b.addCommand({name:"gotowordleft", exec:function(a) {
- a.editor.navigateWordLeft()
- }});
- b.addCommand({name:"selecttolinestart", exec:function(a) {
- a.editor.getSelection().selectLineStart()
- }});
- b.addCommand({name:"gotolinestart", exec:function(a) {
- a.editor.navigateLineStart()
- }});
- b.addCommand({name:"selectleft", exec:function(a) {
- a.editor.getSelection().selectLeft()
- }});
- b.addCommand({name:"gotoleft", exec:function(a) {
- a.editor.navigateLeft()
- }});
- b.addCommand({name:"selectwordright", exec:function(a) {
- a.editor.getSelection().selectWordRight()
- }});
- b.addCommand({name:"gotowordright", exec:function(a) {
- a.editor.navigateWordRight()
- }});
- b.addCommand({name:"selecttolineend", exec:function(a) {
- a.editor.getSelection().selectLineEnd()
- }});
- b.addCommand({name:"gotolineend", exec:function(a) {
- a.editor.navigateLineEnd()
- }});
- b.addCommand({name:"selectright", exec:function(a) {
- a.editor.getSelection().selectRight()
- }});
- b.addCommand({name:"gotoright", exec:function(a) {
- a.editor.navigateRight()
- }});
- b.addCommand({name:"selectpagedown", exec:function(a) {
- a.editor.selectPageDown()
- }});
- b.addCommand({name:"pagedown", exec:function(a) {
- a.editor.scrollPageDown()
- }});
- b.addCommand({name:"gotopagedown", exec:function(a) {
- a.editor.gotoPageDown()
- }});
- b.addCommand({name:"selectpageup", exec:function(a) {
- a.editor.selectPageUp()
- }});
- b.addCommand({name:"pageup", exec:function(a) {
- a.editor.scrollPageUp()
- }});
- b.addCommand({name:"gotopageup", exec:function(a) {
- a.editor.gotoPageUp()
- }});
- b.addCommand({name:"selectlinestart", exec:function(a) {
- a.editor.getSelection().selectLineStart()
- }});
- b.addCommand({name:"gotolinestart", exec:function(a) {
- a.editor.navigateLineStart()
- }});
- b.addCommand({name:"selectlineend", exec:function(a) {
- a.editor.getSelection().selectLineEnd()
- }});
- b.addCommand({name:"gotolineend", exec:function(a) {
- a.editor.navigateLineEnd()
- }});
- b.addCommand({name:"del", exec:function(a) {
- a.editor.removeRight()
- }});
- b.addCommand({name:"backspace", exec:function(a) {
- a.editor.removeLeft()
- }});
- b.addCommand({name:"outdent", exec:function(a) {
- a.editor.blockOutdent()
- }});
- b.addCommand({name:"indent", exec:function(a) {
- a.editor.indent()
- }})
-});
\ No newline at end of file
diff --git a/build/ace/conf/keybindings/default_mac.js b/build/ace/conf/keybindings/default_mac.js
deleted file mode 100644
index 057e7405..00000000
--- a/build/ace/conf/keybindings/default_mac.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define(function(b, a) {
- a.bindings = {selectall:"Command-A", removeline:"Command-D", gotoline:"Command-L", togglecomment:"Command-7", findnext:"Command-K", findprevious:"Command-Shift-K", find:"Command-F", replace:"Command-R", undo:"Command-Z", redo:"Command-Shift-Z|Command-Y", overwrite:"Insert", copylinesup:"Command-Option-Up", movelinesup:"Option-Up", selecttostart:"Command-Shift-Up", gotostart:"Command-Home|Command-Up", selectup:"Shift-Up", golineup:"Up", copylinesdown:"Command-Option-Down", movelinesdown:"Option-Down",
- selecttoend:"Command-Shift-Down", gotoend:"Command-End|Command-Down", selectdown:"Shift-Down", godown:"Down", selectwordleft:"Option-Shift-Left", gotowordleft:"Option-Left", selecttolinestart:"Command-Shift-Left", gotolinestart:"Command-Left|Home", selectleft:"Shift-Left", gotoleft:"Left", selectwordright:"Option-Shift-Right", gotowordright:"Option-Right", selecttolineend:"Command-Shift-Right", gotolineend:"Command-Right|End", selectright:"Shift-Right", gotoright:"Right", selectpagedown:"Shift-PageDown",
- pagedown:"PageDown", selectpageup:"Shift-PageUp", pageup:"PageUp", selectlinestart:"Shift-Home", selectlineend:"Shift-End", del:"Delete", backspace:"Ctrl-Backspace|Command-Backspace|Option-Backspace|Backspace", outdent:"Shift-Tab", indent:"Tab"}
-});
\ No newline at end of file
diff --git a/build/ace/conf/keybindings/default_win.js b/build/ace/conf/keybindings/default_win.js
deleted file mode 100644
index 60ff898f..00000000
--- a/build/ace/conf/keybindings/default_win.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define(function(b, a) {
- a.bindings = {selectall:"Ctrl-A", removeline:"Ctrl-D", gotoline:"Ctrl-L", togglecomment:"Ctrl-7", findnext:"Ctrl-K", findprevious:"Ctrl-Shift-K", find:"Ctrl-F", replace:"Ctrl-R", undo:"Ctrl-Z", redo:"Ctrl-Shift-Z|Ctrl-Y", overwrite:"Insert", copylinesup:"Ctrl-Alt-Up", movelinesup:"Alt-Up", selecttostart:"Alt-Shift-Up", gotostart:"Ctrl-Home|Ctrl-Up", selectup:"Shift-Up", golineup:"Up", copylinesdown:"Ctrl-Alt-Down", movelinesdown:"Alt-Down", selecttoend:"Alt-Shift-Down", gotoend:"Ctrl-End|Ctrl-Down",
- selectdown:"Shift-Down", godown:"Down", selectwordleft:"Ctrl-Shift-Left", gotowordleft:"Ctrl-Left", selecttolinestart:"Alt-Shift-Left", gotolinestart:"Alt-Left|Home", selectleft:"Shift-Left", gotoleft:"Left", selectwordright:"Ctrl-Shift-Right", gotowordright:"Ctrl-Right", selecttolineend:"Alt-Shift-Right", gotolineend:"Alt-Right|End", selectright:"Shift-Right", gotoright:"Right", selectpagedown:"Shift-PageDown", pagedown:"PageDown", selectpageup:"Shift-PageUp", pageup:"PageUp", selectlinestart:"Shift-Home",
- selectlineend:"Shift-End", del:"Delete", backspace:"Backspace", outdent:"Shift-Tab", indent:"Tab"}
-});
\ No newline at end of file
diff --git a/build/ace/css/editor.css b/build/ace/css/editor.css
deleted file mode 100644
index b8125397..00000000
--- a/build/ace/css/editor.css
+++ /dev/null
@@ -1,71 +0,0 @@
-.ace_editor {
- position: absolute;
- overflow: hidden;
- font-family: "Menlo", "Monaco", "Courier New", monospace;
- font-size: 12px;
-}
-.ace_scroller {
- position: absolute;
- overflow-x: scroll;
- overflow-y: hidden;
-}
-.ace_gutter {
- position: absolute;
- overflow-x: hidden;
- overflow-y: hidden;
- height: 100%;
-}
-.ace_editor .ace_sb {
- position: absolute;
- overflow-x: hidden;
- overflow-y: scroll;
- right: 0;
-}
-.ace_editor .ace_sb div {
- position: absolute;
- width: 1px;
- left: 0px;
-}
-.ace_editor .ace_printMargin {
- position: absolute;
- height: 100%;
-}
-.ace_layer {
- z-index: 0;
- position: absolute;
- overflow: hidden;
- white-space: nowrap;
- height: 100%;
-}
-.ace_text-layer {
- font-family: Monaco, "Courier New", monospace;
- color: black;
-}
-.ace_cursor-layer {
- cursor: text;
-}
-.ace_cursor {
- z-index: 3;
- position: absolute;
-}
-.ace_line {
- white-space: nowrap;
-}
-.ace_marker-layer {
-}
-.ace_marker-layer .ace_step {
- position: absolute;
- z-index: 2;
-}
-.ace_marker-layer .ace_selection {
- position: absolute;
- z-index: 3;
-}
-.ace_marker-layer .ace_bracket {
- position: absolute;
- z-index: 4;
-}
-.ace_marker-layer .ace_active_line {
- position: absolute;
- z-index: 1;
-}
diff --git a/build/ace/document.js b/build/ace/document.js
deleted file mode 100644
index 64257f27..00000000
--- a/build/ace/document.js
+++ /dev/null
@@ -1,494 +0,0 @@
-define(function(i, l) {
- var m = i("pilot/oop"), k = i("pilot/lang"), n = i("pilot/event_emitter").EventEmitter, o = i("ace/selection").Selection, p = i("ace/mode/text").Mode, j = i("ace/range").Range;
- i = function(a, b) {
- this.modified = true;
- this.lines = [];
- this.selection = new o(this);
- this.$breakpoints = [];
- this.listeners = [];
- b && this.setMode(b);
- Array.isArray(a) ? this.$insertLines(0, a) : this.$insert({row:0, column:0}, a)
- };
- (function() {
- m.implement(this, n);
- this.$undoManager = null;
- this.$split = function(a) {
- return a.split(/\r\n|\r|\n/)
- };
- this.setValue = function(a) {
- var b = [0, this.lines.length];
- b.push.apply(b, this.$split(a));
- this.lines.splice.apply(this.lines, b);
- this.modified = true;
- this.fireChangeEvent(0)
- };
- this.toString = function() {
- return this.lines.join(this.$getNewLineCharacter())
- };
- this.getSelection = function() {
- return this.selection
- };
- this.fireChangeEvent = function(a, b) {
- this._dispatchEvent("change", {data:{firstRow:a, lastRow:b}})
- };
- this.setUndoManager = function(a) {
- this.$undoManager = a;
- this.$deltas = [];
- this.$informUndoManager && this.$informUndoManager.cancel();
- if(a) {
- var b = this;
- this.$informUndoManager = k.deferredCall(function() {
- b.$deltas.length > 0 && a.execute({action:"aceupdate", args:[b.$deltas, b]});
- b.$deltas = []
- })
- }
- };
- this.$defaultUndoManager = {undo:function() {
- }, redo:function() {
- }};
- this.getUndoManager = function() {
- return this.$undoManager || this.$defaultUndoManager
- };
- this.getTabString = function() {
- return this.getUseSoftTabs() ? k.stringRepeat(" ", this.getTabSize()) : "\t"
- };
- this.$useSoftTabs = true;
- this.setUseSoftTabs = function(a) {
- if(this.$useSoftTabs !== a) {
- this.$useSoftTabs = a
- }
- };
- this.getUseSoftTabs = function() {
- return this.$useSoftTabs
- };
- this.$tabSize = 4;
- this.setTabSize = function(a) {
- if(!(isNaN(a) || this.$tabSize === a)) {
- this.modified = true;
- this.$tabSize = a;
- this._dispatchEvent("changeTabSize")
- }
- };
- this.getTabSize = function() {
- return this.$tabSize
- };
- this.isTabStop = function(a) {
- return this.$useSoftTabs && a.column % this.$tabSize == 0
- };
- this.getBreakpoints = function() {
- return this.$breakpoints
- };
- this.setBreakpoints = function(a) {
- this.$breakpoints = [];
- for(var b = 0;b < a.length;b++) {
- this.$breakpoints[a[b]] = true
- }this._dispatchEvent("changeBreakpoint", {})
- };
- this.clearBreakpoints = function() {
- this.$breakpoints = [];
- this._dispatchEvent("changeBreakpoint", {})
- };
- this.setBreakpoint = function(a) {
- this.$breakpoints[a] = true;
- this._dispatchEvent("changeBreakpoint", {})
- };
- this.clearBreakpoint = function(a) {
- delete this.$breakpoints[a];
- this._dispatchEvent("changeBreakpoint", {})
- };
- this.$detectNewLine = function(a) {
- this.$autoNewLine = (a = a.match(/^.*?(\r?\n)/m)) ? a[1] : "\n"
- };
- this.tokenRe = /^[\w\d]+/g;
- this.nonTokenRe = /^[^\w\d]+/g;
- this.getWordRange = function(a, b) {
- var c = this.getLine(a), d = false;
- if(b > 0) {
- d = !!c.charAt(b - 1).match(this.tokenRe)
- }d || (d = !!c.charAt(b).match(this.tokenRe));
- d = d ? this.tokenRe : this.nonTokenRe;
- var e = b;
- if(e > 0) {
- do {
- e--
- }while(e >= 0 && c.charAt(e).match(d));
- e++
- }for(b = b;b < c.length && c.charAt(b).match(d);) {
- b++
- }return new j(a, e, a, b)
- };
- this.$getNewLineCharacter = function() {
- switch(this.$newLineMode) {
- case "windows":
- return"\r\n";
- case "unix":
- return"\n";
- case "auto":
- return this.$autoNewLine
- }
- };
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(a) {
- if(this.$newLineMode !== a) {
- this.$newLineMode = a
- }
- };
- this.getNewLineMode = function() {
- return this.$newLineMode
- };
- this.$mode = null;
- this.setMode = function(a) {
- if(this.$mode !== a) {
- this.$mode = a;
- this._dispatchEvent("changeMode")
- }
- };
- this.getMode = function() {
- if(!this.$mode) {
- this.$mode = new p
- }return this.$mode
- };
- this.$scrollTop = 0;
- this.setScrollTopRow = function(a) {
- if(this.$scrollTop !== a) {
- this.$scrollTop = a;
- this._dispatchEvent("changeScrollTop")
- }
- };
- this.getScrollTopRow = function() {
- return this.$scrollTop
- };
- this.getWidth = function() {
- this.$computeWidth();
- return this.width
- };
- this.getScreenWidth = function() {
- this.$computeWidth();
- return this.screenWidth
- };
- this.$computeWidth = function() {
- if(this.modified) {
- this.modified = false;
- for(var a = this.lines, b = 0, c = 0, d = this.getTabSize(), e = 0;e < a.length;e++) {
- var f = a[e].length;
- b = Math.max(b, f);
- a[e].replace("\t", function(g) {
- f += d - 1;
- return g
- });
- c = Math.max(c, f)
- }this.width = b;
- this.screenWidth = c
- }
- };
- this.getLine = function(a) {
- return this.lines[a] || ""
- };
- this.getDisplayLine = function(a) {
- var b = (new Array(this.getTabSize() + 1)).join(" ");
- return this.lines[a].replace(/\t/g, b)
- };
- this.getLines = function(a, b) {
- return this.lines.slice(a, b + 1)
- };
- this.getLength = function() {
- return this.lines.length
- };
- this.getTextRange = function(a) {
- if(a.start.row == a.end.row) {
- return this.lines[a.start.row].substring(a.start.column, a.end.column)
- }else {
- var b = [];
- b.push(this.lines[a.start.row].substring(a.start.column));
- b.push.apply(b, this.getLines(a.start.row + 1, a.end.row - 1));
- b.push(this.lines[a.end.row].substring(0, a.end.column));
- return b.join(this.$getNewLineCharacter())
- }
- };
- this.findMatchingBracket = function(a) {
- if(a.column == 0) {
- return null
- }var b = this.getLine(a.row).charAt(a.column - 1);
- if(b == "") {
- return null
- }b = b.match(/([\(\[\{])|([\)\]\}])/);
- if(!b) {
- return null
- }return b[1] ? this.$findClosingBracket(b[1], a) : this.$findOpeningBracket(b[2], a)
- };
- this.$brackets = {")":"(", "(":")", "]":"[", "[":"]", "{":"}", "}":"{"};
- this.$findOpeningBracket = function(a, b) {
- var c = this.$brackets[a], d = b.column - 2;
- b = b.row;
- for(var e = 1, f = this.getLine(b);;) {
- for(;d >= 0;) {
- var g = f.charAt(d);
- if(g == c) {
- e -= 1;
- if(e == 0) {
- return{row:b, column:d}
- }
- }else {
- if(g == a) {
- e += 1
- }
- }d -= 1
- }b -= 1;
- if(b < 0) {
- break
- }f = this.getLine(b);
- d = f.length - 1
- }return null
- };
- this.$findClosingBracket = function(a, b) {
- var c = this.$brackets[a], d = b.column;
- b = b.row;
- for(var e = 1, f = this.getLine(b), g = this.getLength();;) {
- for(;d < f.length;) {
- var h = f.charAt(d);
- if(h == c) {
- e -= 1;
- if(e == 0) {
- return{row:b, column:d}
- }
- }else {
- if(h == a) {
- e += 1
- }
- }d += 1
- }b += 1;
- if(b >= g) {
- break
- }f = this.getLine(b);
- d = 0
- }return null
- };
- this.insert = function(a, b, c) {
- b = this.$insert(a, b, c);
- this.fireChangeEvent(a.row, a.row == b.row ? a.row : undefined);
- return b
- };
- this.multiRowInsert = function(a, b, c) {
- for(var d = this.lines, e = a.length - 1;e >= 0;e--) {
- var f = a[e];
- if(!(f >= d.length)) {
- var g = b - d[f].length;
- if(g > 0) {
- var h = k.stringRepeat(" ", g) + c;
- g = -g
- }else {
- h = c;
- g = 0
- }h = this.$insert({row:f, column:b + g}, h, false)
- }
- }if(h) {
- this.fireChangeEvent(a[0], a[a.length - 1] + h.row - a[0]);
- return{rows:h.row - a[0], columns:h.column - b}
- }else {
- return{rows:0, columns:0}
- }
- };
- this.$insertLines = function(a, b, c) {
- if(b.length != 0) {
- var d = [a, 0];
- d.push.apply(d, b);
- this.lines.splice.apply(this.lines, d);
- if(!c && this.$undoManager) {
- c = this.$getNewLineCharacter();
- this.$deltas.push({action:"insertText", range:new j(a, 0, a + b.length, 0), text:b.join(c) + c});
- this.$informUndoManager.schedule()
- }
- }
- };
- this.$insert = function(a, b, c) {
- if(b.length == 0) {
- return a
- }this.modified = true;
- this.lines.length <= 1 && this.$detectNewLine(b);
- var d = this.$split(b);
- if(this.$isNewLine(b)) {
- var e = this.lines[a.row] || "";
- this.lines[a.row] = e.substring(0, a.column);
- this.lines.splice(a.row + 1, 0, e.substring(a.column));
- d = {row:a.row + 1, column:0}
- }else {
- if(d.length == 1) {
- e = this.lines[a.row] || "";
- this.lines[a.row] = e.substring(0, a.column) + b + e.substring(a.column);
- d = {row:a.row, column:a.column + b.length}
- }else {
- e = this.lines[a.row] || "";
- var f = e.substring(0, a.column) + d[0];
- e = d[d.length - 1] + e.substring(a.column);
- this.lines[a.row] = f;
- this.$insertLines(a.row + 1, [e], true);
- d.length > 2 && this.$insertLines(a.row + 1, d.slice(1, -1), true);
- d = {row:a.row + d.length - 1, column:d[d.length - 1].length}
- }
- }if(!c && this.$undoManager) {
- this.$deltas.push({action:"insertText", range:j.fromPoints(a, d), text:b});
- this.$informUndoManager.schedule()
- }return d
- };
- this.$isNewLine = function(a) {
- return a == "\r\n" || a == "\r" || a == "\n"
- };
- this.remove = function(a, b) {
- if(a.isEmpty()) {
- return a.start
- }this.$remove(a, b);
- this.fireChangeEvent(a.start.row, a.isMultiLine() ? undefined : a.start.row);
- return a.start
- };
- this.multiRowRemove = function(a, b) {
- if(b.start.row !== a[0]) {
- throw new TypeError("range must start in the first row!");
- }for(var c = b.end.row - a[0], d = a.length - 1;d >= 0;d--) {
- var e = a[d];
- if(!(e >= this.lines.length)) {
- var f = this.$remove(new j(e, b.start.column, e + c, b.end.column), false)
- }
- }if(f) {
- c < 0 ? this.fireChangeEvent(a[0] + c, undefined) : this.fireChangeEvent(a[0], c == 0 ? a[a.length - 1] : undefined)
- }
- };
- this.$remove = function(a, b) {
- if(!a.isEmpty()) {
- if(!b && this.$undoManager) {
- this.$getNewLineCharacter();
- this.$deltas.push({action:"removeText", range:a.clone(), text:this.getTextRange(a)});
- this.$informUndoManager.schedule()
- }this.modified = true;
- b = a.start.row;
- var c = a.end.row, d = this.getLine(b).substring(0, a.start.column) + this.getLine(c).substring(a.end.column);
- d != "" ? this.lines.splice(b, c - b + 1, d) : this.lines.splice(b, c - b + 1, "");
- return a.start
- }
- };
- this.undoChanges = function(a) {
- this.selection.clearSelection();
- for(var b = a.length - 1;b >= 0;b--) {
- var c = a[b];
- if(c.action == "insertText") {
- this.remove(c.range, true);
- this.selection.moveCursorToPosition(c.range.start)
- }else {
- this.insert(c.range.start, c.text, true);
- this.selection.clearSelection()
- }
- }
- };
- this.redoChanges = function(a) {
- this.selection.clearSelection();
- for(var b = 0;b < a.length;b++) {
- var c = a[b];
- if(c.action == "insertText") {
- this.insert(c.range.start, c.text, true);
- this.selection.setSelectionRange(c.range)
- }else {
- this.remove(c.range, true);
- this.selection.moveCursorToPosition(c.range.start)
- }
- }
- };
- this.replace = function(a, b) {
- this.$remove(a);
- b = b ? this.$insert(a.start, b) : a.start;
- var c = a.end.column == 0 ? a.end.column - 1 : a.end.column;
- this.fireChangeEvent(a.start.row, c == b.row ? c : undefined);
- return b
- };
- this.indentRows = function(a, b, c) {
- c = c.replace("\t", this.getTabString());
- for(var d = a;d <= b;d++) {
- this.$insert({row:d, column:0}, c)
- }this.fireChangeEvent(a, b);
- return c.length
- };
- this.outdentRows = function(a) {
- for(var b = a.collapseRows(), c = new j(0, 0, 0, 0), d = this.getTabSize(), e = b.start.row;e <= b.end.row;++e) {
- var f = this.getLine(e);
- c.start.row = e;
- c.end.row = e;
- for(var g = 0;g < d;++g) {
- if(f.charAt(g) != " ") {
- break
- }
- }if(g < d && f.charAt(g) == "\t") {
- c.start.column = g;
- c.end.column = g + 1
- }else {
- c.start.column = 0;
- c.end.column = g
- }if(e == a.start.row) {
- a.start.column -= c.end.column - c.start.column
- }if(e == a.end.row) {
- a.end.column -= c.end.column - c.start.column
- }this.$remove(c)
- }this.fireChangeEvent(a.start.row, a.end.row);
- return a
- };
- this.moveLinesUp = function(a, b) {
- if(a <= 0) {
- return 0
- }var c = this.lines.slice(a, b + 1);
- this.$remove(new j(a - 1, this.lines[a - 1].length, b, this.lines[b].length));
- this.$insertLines(a - 1, c);
- this.fireChangeEvent(a - 1, b);
- return-1
- };
- this.moveLinesDown = function(a, b) {
- if(b >= this.lines.length - 1) {
- return 0
- }var c = this.lines.slice(a, b + 1);
- this.$remove(new j(a, 0, b + 1, 0));
- this.$insertLines(a + 1, c);
- this.fireChangeEvent(a, b + 1);
- return 1
- };
- this.duplicateLines = function(a, b) {
- a = this.$clipRowToDocument(a);
- b = this.$clipRowToDocument(b);
- var c = this.getLines(a, b);
- this.$insertLines(a, c);
- b = b - a + 1;
- this.fireChangeEvent(a);
- return b
- };
- this.$clipRowToDocument = function(a) {
- return Math.max(0, Math.min(a, this.lines.length - 1))
- };
- this.documentToScreenColumn = function(a, b) {
- var c = this.getTabSize(), d = 0;
- b = b;
- a = this.getLine(a).split("\t");
- for(var e = 0;e < a.length;e++) {
- var f = a[e].length;
- if(b > f) {
- b -= f + 1;
- d += f + c
- }else {
- d += b;
- break
- }
- }return d
- };
- this.screenToDocumentColumn = function(a, b) {
- var c = this.getTabSize(), d = 0;
- b = b;
- a = this.getLine(a).split("\t");
- for(var e = 0;e < a.length;e++) {
- var f = a[e].length;
- if(b >= f + c) {
- b -= f + c;
- d += f + 1
- }else {
- d += b > f ? f : b;
- break
- }
- }return d
- }
- }).call(i.prototype);
- l.Document = i
-});
\ No newline at end of file
diff --git a/build/ace/editor.js b/build/ace/editor.js
deleted file mode 100644
index ddb61d34..00000000
--- a/build/ace/editor.js
+++ /dev/null
@@ -1,672 +0,0 @@
-define(function(g, r) {
- var s = g("pilot/oop"), e = g("pilot/event"), t = g("pilot/lang"), u = g("ace/textinput").TextInput, v = g("ace/keybinding").KeyBinding, w = g("ace/document").Document, x = g("ace/search").Search, y = g("ace/background_tokenizer").BackgroundTokenizer, o = g("ace/range").Range, z = g("pilot/event_emitter").EventEmitter;
- g = function(a, b) {
- var d = a.getContainerElement();
- this.container = d;
- this.renderer = a;
- this.textInput = new u(d, this);
- this.keyBinding = new v(d, this);
- var c = this;
- e.addListener(d, "mousedown", function(i) {
- setTimeout(function() {
- c.focus()
- });
- return e.preventDefault(i)
- });
- e.addListener(d, "selectstart", function(i) {
- return e.preventDefault(i)
- });
- a = a.getMouseEventTarget();
- e.addListener(a, "mousedown", this.onMouseDown.bind(this));
- e.addMultiMouseDownListener(a, 0, 2, 500, this.onMouseDoubleClick.bind(this));
- e.addMultiMouseDownListener(a, 0, 3, 600, this.onMouseTripleClick.bind(this));
- e.addMouseWheelListener(a, this.onMouseWheel.bind(this));
- this.$highlightLineMarker = this.$selectionMarker = null;
- this.$blockScrolling = false;
- this.$search = (new x).set({wrap:true});
- this.setDocument(b || new w(""));
- this.focus()
- };
- (function() {
- s.implement(this, z);
- this.$forwardEvents = {gutterclick:1, gutterdblclick:1};
- this.$originalAddEventListener = this.addEventListener;
- this.$originalRemoveEventListener = this.removeEventListener;
- this.addEventListener = function(a, b) {
- return this.$forwardEvents[a] ? this.renderer.addEventListener(a, b) : this.$originalAddEventListener(a, b)
- };
- this.removeEventListener = function(a, b) {
- return this.$forwardEvents[a] ? this.renderer.removeEventListener(a, b) : this.$originalRemoveEventListener(a, b)
- };
- this.setDocument = function(a) {
- if(this.doc != a) {
- if(this.doc) {
- this.doc.removeEventListener("change", this.$onDocumentChange);
- this.doc.removeEventListener("changeMode", this.$onDocumentModeChange);
- this.doc.removeEventListener("changeTabSize", this.$onDocumentChangeTabSize);
- this.doc.removeEventListener("changeBreakpoint", this.$onDocumentChangeBreakpoint);
- var b = this.doc.getSelection();
- b.removeEventListener("changeCursor", this.$onCursorChange);
- b.removeEventListener("changeSelection", this.$onSelectionChange);
- this.doc.setScrollTopRow(this.renderer.getScrollTopRow())
- }this.doc = a;
- this.$onDocumentChange = this.onDocumentChange.bind(this);
- a.addEventListener("change", this.$onDocumentChange);
- this.renderer.setDocument(a);
- this.$onDocumentModeChange = this.onDocumentModeChange.bind(this);
- a.addEventListener("changeMode", this.$onDocumentModeChange);
- this.$onDocumentChangeTabSize = this.renderer.updateText.bind(this.renderer);
- a.addEventListener("changeTabSize", this.$onDocumentChangeTabSize);
- this.$onDocumentChangeBreakpoint = this.onDocumentChangeBreakpoint.bind(this);
- this.doc.addEventListener("changeBreakpoint", this.$onDocumentChangeBreakpoint);
- this.selection = a.getSelection();
- this.$desiredColumn = 0;
- this.$onCursorChange = this.onCursorChange.bind(this);
- this.selection.addEventListener("changeCursor", this.$onCursorChange);
- this.$onSelectionChange = this.onSelectionChange.bind(this);
- this.selection.addEventListener("changeSelection", this.$onSelectionChange);
- this.onDocumentModeChange();
- this.bgTokenizer.setLines(this.doc.lines);
- this.bgTokenizer.start(0);
- this.onCursorChange();
- this.onSelectionChange();
- this.onDocumentChangeBreakpoint();
- this.renderer.scrollToRow(a.getScrollTopRow());
- this.renderer.updateFull()
- }
- };
- this.getDocument = function() {
- return this.doc
- };
- this.getSelection = function() {
- return this.selection
- };
- this.resize = function() {
- this.renderer.onResize()
- };
- this.setTheme = function(a) {
- this.renderer.setTheme(a)
- };
- this.$highlightBrackets = function() {
- if(this.$bracketHighlight) {
- this.renderer.removeMarker(this.$bracketHighlight);
- this.$bracketHighlight = null
- }if(!this.$highlightPending) {
- var a = this;
- this.$highlightPending = true;
- setTimeout(function() {
- a.$highlightPending = false;
- var b = a.doc.findMatchingBracket(a.getCursorPosition());
- if(b) {
- b = new o(b.row, b.column, b.row, b.column + 1);
- a.$bracketHighlight = a.renderer.addMarker(b, "ace_bracket")
- }
- }, 10)
- }
- };
- this.focus = function() {
- this.textInput.focus()
- };
- this.blur = function() {
- this.textInput.blur()
- };
- this.onFocus = function() {
- this.renderer.showCursor();
- this.renderer.visualizeFocus()
- };
- this.onBlur = function() {
- this.renderer.hideCursor();
- this.renderer.visualizeBlur()
- };
- this.onDocumentChange = function(a) {
- a = a.data;
- this.bgTokenizer.start(a.firstRow);
- this.renderer.updateLines(a.firstRow, a.lastRow);
- this.renderer.updateCursor(this.getCursorPosition(), this.$overwrite)
- };
- this.onTokenizerUpdate = function(a) {
- a = a.data;
- this.renderer.updateLines(a.first, a.last)
- };
- this.onCursorChange = function(a) {
- this.$highlightBrackets();
- this.renderer.updateCursor(this.getCursorPosition(), this.$overwrite);
- if(!this.$blockScrolling && (!a || !a.blockScrolling)) {
- this.renderer.scrollCursorIntoView()
- }this.$updateHighlightActiveLine()
- };
- this.$updateHighlightActiveLine = function() {
- this.$highlightLineMarker && this.renderer.removeMarker(this.$highlightLineMarker);
- this.$highlightLineMarker = null;
- if(this.getHighlightActiveLine() && (this.getSelectionStyle() != "line" || !this.selection.isMultiLine())) {
- var a = this.getCursorPosition();
- this.$highlightLineMarker = this.renderer.addMarker(new o(a.row, 0, a.row + 1, 0), "ace_active_line", "line")
- }
- };
- this.onSelectionChange = function(a) {
- this.$selectionMarker && this.renderer.removeMarker(this.$selectionMarker);
- this.$selectionMarker = null;
- if(!this.selection.isEmpty()) {
- var b = this.selection.getRange(), d = this.getSelectionStyle();
- this.$selectionMarker = this.renderer.addMarker(b, "ace_selection", d)
- }this.onCursorChange(a)
- };
- this.onDocumentChangeBreakpoint = function() {
- this.renderer.setBreakpoints(this.doc.getBreakpoints())
- };
- this.onDocumentModeChange = function() {
- var a = this.doc.getMode();
- if(this.mode != a) {
- this.mode = a;
- a = a.getTokenizer();
- if(this.bgTokenizer) {
- this.bgTokenizer.setTokenizer(a)
- }else {
- var b = this.onTokenizerUpdate.bind(this);
- this.bgTokenizer = new y(a, this);
- this.bgTokenizer.addEventListener("update", b)
- }this.renderer.setTokenizer(this.bgTokenizer)
- }
- };
- this.onMouseDown = function(a) {
- var b = e.getDocumentX(a), d = e.getDocumentY(a);
- b = this.renderer.screenToTextCoordinates(b, d);
- b.row = Math.max(0, Math.min(b.row, this.doc.getLength() - 1));
- if(e.getButton(a) != 0) {
- this.selection.isEmpty() && this.moveCursorToPosition(b)
- }else {
- if(a.shiftKey) {
- this.selection.selectToPosition(b)
- }else {
- this.moveCursorToPosition(b);
- this.$clickSelection || this.selection.clearSelection(b.row, b.column)
- }this.renderer.scrollCursorIntoView();
- var c = this, i, n;
- e.capture(this.container, function(h) {
- i = e.getDocumentX(h);
- n = e.getDocumentY(h)
- }, function() {
- clearInterval(f);
- c.$clickSelection = null
- });
- var f = setInterval(function() {
- if(!(i === undefined || n === undefined)) {
- var h = c.renderer.screenToTextCoordinates(i, n);
- h.row = Math.max(0, Math.min(h.row, c.doc.getLength() - 1));
- if(c.$clickSelection) {
- if(c.$clickSelection.contains(h.row, h.column)) {
- c.selection.setSelectionRange(c.$clickSelection)
- }else {
- var j = c.$clickSelection.compare(h.row, h.column) == -1 ? c.$clickSelection.end : c.$clickSelection.start;
- c.selection.setSelectionAnchor(j.row, j.column);
- c.selection.selectToPosition(h)
- }
- }else {
- c.selection.selectToPosition(h)
- }c.renderer.scrollCursorIntoView()
- }
- }, 20);
- return e.preventDefault(a)
- }
- };
- this.onMouseDoubleClick = function() {
- this.selection.selectWord();
- this.$clickSelection = this.getSelectionRange();
- this.$updateDesiredColumn()
- };
- this.onMouseTripleClick = function() {
- this.selection.selectLine();
- this.$clickSelection = this.getSelectionRange();
- this.$updateDesiredColumn()
- };
- this.onMouseWheel = function(a) {
- var b = this.$scrollSpeed * 2;
- this.renderer.scrollBy(a.wheelX * b, a.wheelY * b);
- return e.preventDefault(a)
- };
- this.getCopyText = function() {
- return this.selection.isEmpty() ? "" : this.doc.getTextRange(this.getSelectionRange())
- };
- this.onCut = function() {
- if(!this.$readOnly) {
- if(!this.selection.isEmpty()) {
- this.moveCursorToPosition(this.doc.remove(this.getSelectionRange()));
- this.clearSelection()
- }
- }
- };
- this.onTextInput = function(a) {
- if(!this.$readOnly) {
- var b = this.getCursorPosition();
- a = a.replace("\t", this.doc.getTabString());
- if(this.selection.isEmpty()) {
- if(this.$overwrite) {
- var d = new o.fromPoints(b, b);
- d.end.column += a.length;
- this.doc.remove(d)
- }
- }else {
- b = this.doc.remove(this.getSelectionRange());
- this.clearSelection()
- }this.clearSelection();
- var c = this;
- this.bgTokenizer.getState(b.row, function(i) {
- var n = c.mode.checkOutdent(i, c.doc.getLine(b.row), a), f = c.doc.getLine(b.row), h = c.mode.getNextLineIndent(i, f.slice(0, b.column), c.doc.getTabString()), j = c.doc.insert(b, a);
- c.bgTokenizer.getState(b.row, function(p) {
- if(b.row !== j.row) {
- p = c.doc.getTabSize();
- for(var q = Number.MAX_VALUE, l = b.row + 1;l <= j.row;++l) {
- var m = 0;
- f = c.doc.getLine(l);
- for(var k = 0;k < f.length;++k) {
- if(f.charAt(k) == "\t") {
- m += p
- }else {
- if(f.charAt(k) == " ") {
- m += 1
- }else {
- break
- }
- }
- }if(/[^\s]/.test(f)) {
- q = Math.min(m, q)
- }
- }for(l = b.row + 1;l <= j.row;++l) {
- m = q;
- f = c.doc.getLine(l);
- for(k = 0;k < f.length && m > 0;++k) {
- if(f.charAt(k) == "\t") {
- m -= p
- }else {
- if(f.charAt(k) == " ") {
- m -= 1
- }
- }
- }c.doc.replace(new o(l, 0, l, f.length), f.substr(k))
- }j.column += c.doc.indentRows(b.row + 1, j.row, h)
- }else {
- if(n) {
- j.column += c.mode.autoOutdent(p, c.doc, b.row)
- }
- }c.moveCursorToPosition(j);
- c.renderer.scrollCursorIntoView()
- })
- })
- }
- };
- this.$overwrite = false;
- this.setOverwrite = function(a) {
- if(this.$overwrite != a) {
- this.$overwrite = a;
- this.$blockScrolling = true;
- this.onCursorChange();
- this.$blockScrolling = false;
- this._dispatchEvent("changeOverwrite", {data:a})
- }
- };
- this.getOverwrite = function() {
- return this.$overwrite
- };
- this.toggleOverwrite = function() {
- this.setOverwrite(!this.$overwrite)
- };
- this.$scrollSpeed = 1;
- this.setScrollSpeed = function(a) {
- this.$scrollSpeed = a
- };
- this.getScrollSpeed = function() {
- return this.$scrollSpeed
- };
- this.$selectionStyle = "line";
- this.setSelectionStyle = function(a) {
- if(this.$selectionStyle != a) {
- this.$selectionStyle = a;
- this.onSelectionChange();
- this._dispatchEvent("changeSelectionStyle", {data:a})
- }
- };
- this.getSelectionStyle = function() {
- return this.$selectionStyle
- };
- this.$highlightActiveLine = true;
- this.setHighlightActiveLine = function(a) {
- if(this.$highlightActiveLine != a) {
- this.$highlightActiveLine = a;
- this.$updateHighlightActiveLine()
- }
- };
- this.getHighlightActiveLine = function() {
- return this.$highlightActiveLine
- };
- this.setShowInvisibles = function(a) {
- this.getShowInvisibles() != a && this.renderer.setShowInvisibles(a)
- };
- this.getShowInvisibles = function() {
- return this.renderer.getShowInvisibles()
- };
- this.setShowPrintMargin = function(a) {
- this.renderer.setShowPrintMargin(a)
- };
- this.getShowPrintMargin = function() {
- return this.renderer.getShowPrintMargin()
- };
- this.setPrintMarginColumn = function(a) {
- this.renderer.setPrintMarginColumn(a)
- };
- this.getPrintMarginColumn = function() {
- return this.renderer.getPrintMarginColumn()
- };
- this.$readOnly = false;
- this.setReadOnly = function(a) {
- this.$readOnly = a
- };
- this.getReadOnly = function() {
- return this.$readOnly
- };
- this.removeRight = function() {
- if(!this.$readOnly) {
- this.selection.isEmpty() && this.selection.selectRight();
- this.moveCursorToPosition(this.doc.remove(this.getSelectionRange()));
- this.clearSelection()
- }
- };
- this.removeLeft = function() {
- if(!this.$readOnly) {
- this.selection.isEmpty() && this.selection.selectLeft();
- this.moveCursorToPosition(this.doc.remove(this.getSelectionRange()));
- this.clearSelection()
- }
- };
- this.indent = function() {
- if(!this.$readOnly) {
- var a = this.doc, b = this.getSelectionRange();
- if(b.start.row < b.end.row || b.start.column < b.end.column) {
- b = this.$getSelectedRows();
- a = a.indentRows(b.first, b.last, "\t");
- this.selection.shiftSelection(a)
- }else {
- if(this.doc.getUseSoftTabs()) {
- b = a.getTabSize();
- var d = this.getCursorPosition();
- a = a.documentToScreenColumn(d.row, d.column);
- a = b - a % b;
- a = t.stringRepeat(" ", a)
- }else {
- a = "\t"
- }return this.onTextInput(a)
- }
- }
- };
- this.blockOutdent = function() {
- if(!this.$readOnly) {
- var a = this.doc.getSelection(), b = this.doc.outdentRows(a.getRange());
- a.setSelectionRange(b, a.isBackwards());
- this.$updateDesiredColumn()
- }
- };
- this.toggleCommentLines = function() {
- if(!this.$readOnly) {
- var a = this;
- this.bgTokenizer.getState(this.getCursorPosition().row, function(b) {
- var d = a.$getSelectedRows();
- b = a.mode.toggleCommentLines(b, a.doc, d.first, d.last);
- a.selection.shiftSelection(b)
- })
- }
- };
- this.removeLines = function() {
- if(!this.$readOnly) {
- var a = this.$getSelectedRows();
- this.selection.setSelectionAnchor(a.last + 1, 0);
- this.selection.selectTo(a.first, 0);
- this.doc.remove(this.getSelectionRange());
- this.clearSelection()
- }
- };
- this.moveLinesDown = function() {
- this.$readOnly || this.$moveLines(function(a, b) {
- return this.doc.moveLinesDown(a, b)
- })
- };
- this.moveLinesUp = function() {
- this.$readOnly || this.$moveLines(function(a, b) {
- return this.doc.moveLinesUp(a, b)
- })
- };
- this.copyLinesUp = function() {
- this.$readOnly || this.$moveLines(function(a, b) {
- this.doc.duplicateLines(a, b);
- return 0
- })
- };
- this.copyLinesDown = function() {
- this.$readOnly || this.$moveLines(function(a, b) {
- return this.doc.duplicateLines(a, b)
- })
- };
- this.$moveLines = function(a) {
- var b = this.$getSelectedRows(), d = a.call(this, b.first, b.last), c = this.selection;
- c.setSelectionAnchor(b.last + d + 1, 0);
- c.$moveSelection(function() {
- c.moveCursorTo(b.first + d, 0)
- })
- };
- this.$getSelectedRows = function() {
- var a = this.getSelectionRange().collapseRows();
- return{first:a.start.row, last:a.end.row}
- };
- this.onCompositionStart = function() {
- this.renderer.showComposition(this.getCursorPosition())
- };
- this.onCompositionUpdate = function(a) {
- this.renderer.setCompositionText(a)
- };
- this.onCompositionEnd = function() {
- this.renderer.hideComposition()
- };
- this.getFirstVisibleRow = function() {
- return this.renderer.getFirstVisibleRow()
- };
- this.getLastVisibleRow = function() {
- return this.renderer.getLastVisibleRow()
- };
- this.isRowVisible = function(a) {
- return a >= this.getFirstVisibleRow() && a <= this.getLastVisibleRow()
- };
- this.getVisibleRowCount = function() {
- return this.getLastVisibleRow() - this.getFirstVisibleRow() + 1
- };
- this.getPageDownRow = function() {
- return this.renderer.getLastVisibleRow() - 1
- };
- this.getPageUpRow = function() {
- var a = this.renderer.getFirstVisibleRow(), b = this.renderer.getLastVisibleRow();
- return a - (b - a) + 1
- };
- this.selectPageDown = function() {
- var a = this.getPageDownRow() + Math.floor(this.getVisibleRowCount() / 2);
- this.scrollPageDown();
- var b = this.getSelection();
- b.$moveSelection(function() {
- b.moveCursorTo(a, b.getSelectionLead().column)
- })
- };
- this.selectPageUp = function() {
- var a = this.getLastVisibleRow() - this.getFirstVisibleRow(), b = this.getPageUpRow() + Math.round(a / 2);
- this.scrollPageUp();
- var d = this.getSelection();
- d.$moveSelection(function() {
- d.moveCursorTo(b, d.getSelectionLead().column)
- })
- };
- this.gotoPageDown = function() {
- var a = this.getPageDownRow(), b = Math.min(this.getCursorPosition().column, this.doc.getLine(a).length);
- this.scrollToRow(a);
- this.getSelection().moveCursorTo(a, b)
- };
- this.gotoPageUp = function() {
- var a = this.getPageUpRow(), b = Math.min(this.getCursorPosition().column, this.doc.getLine(a).length);
- this.scrollToRow(a);
- this.getSelection().moveCursorTo(a, b)
- };
- this.scrollPageDown = function() {
- this.scrollToRow(this.getPageDownRow())
- };
- this.scrollPageUp = function() {
- this.renderer.scrollToRow(this.getPageUpRow())
- };
- this.scrollToRow = function(a) {
- this.renderer.scrollToRow(a)
- };
- this.getCursorPosition = function() {
- return this.selection.getCursor()
- };
- this.getSelectionRange = function() {
- return this.selection.getRange()
- };
- this.clearSelection = function() {
- this.selection.clearSelection();
- this.$updateDesiredColumn()
- };
- this.moveCursorTo = function(a, b) {
- this.selection.moveCursorTo(a, b);
- this.$updateDesiredColumn()
- };
- this.moveCursorToPosition = function(a) {
- this.selection.moveCursorToPosition(a);
- this.$updateDesiredColumn()
- };
- this.gotoLine = function(a, b) {
- this.selection.clearSelection();
- this.$blockScrolling = true;
- this.moveCursorTo(a - 1, b || 0);
- this.$blockScrolling = false;
- this.isRowVisible(this.getCursorPosition().row) || this.scrollToRow(a - 1 - Math.floor(this.getVisibleRowCount() / 2))
- };
- this.navigateTo = function(a, b) {
- this.clearSelection();
- this.moveCursorTo(a, b);
- this.$updateDesiredColumn(b)
- };
- this.navigateUp = function() {
- this.selection.clearSelection();
- this.selection.moveCursorBy(-1, 0);
- if(this.$desiredColumn) {
- var a = this.getCursorPosition(), b = this.doc.screenToDocumentColumn(a.row, this.$desiredColumn);
- this.selection.moveCursorTo(a.row, b)
- }
- };
- this.navigateDown = function() {
- this.selection.clearSelection();
- this.selection.moveCursorBy(1, 0);
- if(this.$desiredColumn) {
- var a = this.getCursorPosition(), b = this.doc.screenToDocumentColumn(a.row, this.$desiredColumn);
- this.selection.moveCursorTo(a.row, b)
- }
- };
- this.$updateDesiredColumn = function() {
- var a = this.getCursorPosition();
- this.$desiredColumn = this.doc.documentToScreenColumn(a.row, a.column)
- };
- this.navigateLeft = function() {
- this.selection.isEmpty() ? this.selection.moveCursorLeft() : this.moveCursorToPosition(this.getSelectionRange().start);
- this.clearSelection()
- };
- this.navigateRight = function() {
- this.selection.isEmpty() ? this.selection.moveCursorRight() : this.moveCursorToPosition(this.getSelectionRange().end);
- this.clearSelection()
- };
- this.navigateLineStart = function() {
- this.selection.moveCursorLineStart();
- this.clearSelection()
- };
- this.navigateLineEnd = function() {
- this.selection.moveCursorLineEnd();
- this.clearSelection()
- };
- this.navigateFileEnd = function() {
- this.selection.moveCursorFileEnd();
- this.clearSelection()
- };
- this.navigateFileStart = function() {
- this.selection.moveCursorFileStart();
- this.clearSelection()
- };
- this.navigateWordRight = function() {
- this.selection.moveCursorWordRight();
- this.clearSelection()
- };
- this.navigateWordLeft = function() {
- this.selection.moveCursorWordLeft();
- this.clearSelection()
- };
- this.replace = function(a, b) {
- b && this.$search.set(b);
- b = this.$search.find(this.doc);
- this.$tryReplace(b, a);
- b !== null && this.selection.setSelectionRange(b);
- this.$updateDesiredColumn()
- };
- this.replaceAll = function(a, b) {
- b && this.$search.set(b);
- b = this.$search.findAll(this.doc);
- if(b.length) {
- this.clearSelection();
- this.selection.moveCursorTo(0, 0);
- for(var d = b.length - 1;d >= 0;--d) {
- this.$tryReplace(b[d], a)
- }b[0] !== null && this.selection.setSelectionRange(b[0]);
- this.$updateDesiredColumn()
- }
- };
- this.$tryReplace = function(a, b) {
- b = this.$search.replace(this.doc.getTextRange(a), b);
- if(b !== null) {
- a.end = this.doc.replace(a, b);
- return a
- }else {
- return null
- }
- };
- this.getLastSearchOptions = function() {
- return this.$search.getOptions()
- };
- this.find = function(a, b) {
- this.clearSelection();
- b = b || {};
- b.needle = a;
- this.$search.set(b);
- this.$find()
- };
- this.findNext = function(a) {
- a = a || {};
- if(typeof a.backwards == "undefined") {
- a.backwards = false
- }this.$search.set(a);
- this.$find()
- };
- this.findPrevious = function(a) {
- a = a || {};
- if(typeof a.backwards == "undefined") {
- a.backwards = true
- }this.$search.set(a);
- this.$find()
- };
- this.$find = function(a) {
- this.selection.isEmpty() || this.$search.set({needle:this.doc.getTextRange(this.getSelectionRange())});
- typeof a != "undefined" && this.$search.set({backwards:a});
- if(a = this.$search.find(this.doc)) {
- this.gotoLine(a.end.row + 1, a.end.column);
- this.$updateDesiredColumn();
- this.selection.setSelectionRange(a)
- }
- };
- this.undo = function() {
- this.doc.getUndoManager().undo()
- };
- this.redo = function() {
- this.doc.getUndoManager().redo()
- }
- }).call(g.prototype);
- r.Editor = g
-});
\ No newline at end of file
diff --git a/build/ace/keybinding.js b/build/ace/keybinding.js
deleted file mode 100644
index 6da92ea6..00000000
--- a/build/ace/keybinding.js
+++ /dev/null
@@ -1,55 +0,0 @@
-define(function(e, n) {
- var j = e("pilot/useragent"), m = e("pilot/event"), o = e("ace/conf/keybindings/default_mac").bindings, p = e("ace/conf/keybindings/default_win").bindings, q = e("pilot/canon");
- e("ace/commands/default_commands");
- e = function(k, i, l) {
- this.setConfig(l);
- var b = this;
- m.addKeyListener(k, function(a) {
- var d = (b.config.reverse[j.isOpera && j.isMac ? 0 | (a.metaKey ? 1 : 0) | (a.altKey ? 2 : 0) | (a.shiftKey ? 4 : 0) | (a.ctrlKey ? 8 : 0) : 0 | (a.ctrlKey ? 1 : 0) | (a.altKey ? 2 : 0) | (a.shiftKey ? 4 : 0) | (a.metaKey ? 8 : 0)] || {})[(b.keyNames[a.keyCode] || String.fromCharCode(a.keyCode)).toLowerCase()];
- if(q.exec(d, {editor:i})) {
- return m.stopEvent(a)
- }
- })
- };
- (function() {
- function k(b, a, d, f) {
- return(f && b.toLowerCase() || b).replace(/(?:^\s+|\n|\s+$)/g, "").split(new RegExp("[\\s ]*" + a + "[\\s ]*", "g"), d || 999)
- }
- function i(b, a, d) {
- var f, g = 0;
- b = k(b, "\\-", null, true);
- for(var c = 0, h = b.length;c < h;++c) {
- if(this.keyMods[b[c]]) {
- g |= this.keyMods[b[c]]
- }else {
- f = b[c] || "-"
- }
- }(d[g] || (d[g] = {}))[f] = a;
- return d
- }
- function l(b, a) {
- var d, f, g, c, h = {};
- for(d in b) {
- c = b[d];
- if(a && typeof c == "string") {
- c = c.split(a);
- f = 0;
- for(g = c.length;f < g;++f) {
- i.call(this, c[f], d, h)
- }
- }else {
- i.call(this, c, d, h)
- }
- }return h
- }
- this.keyMods = {ctrl:1, alt:2, option:2, shift:4, meta:8, command:8};
- this.keyNames = {"8":"Backspace", "9":"Tab", "13":"Enter", "27":"Esc", "32":"Space", "33":"PageUp", "34":"PageDown", "35":"End", "36":"Home", "37":"Left", "38":"Up", "39":"Right", "40":"Down", "45":"Insert", "46":"Delete", "107":"+", "112":"F1", "113":"F2", "114":"F3", "115":"F4", "116":"F5", "117":"F6", "118":"F7", "119":"F8", "120":"F9", "121":"F10", "122":"F11", "123":"F12"};
- this.setConfig = function(b) {
- this.config = b || (j.isMac ? o : p);
- if(typeof this.config.reverse == "undefined") {
- this.config.reverse = l.call(this, this.config, "|")
- }
- }
- }).call(e.prototype);
- n.KeyBinding = e
-});
\ No newline at end of file
diff --git a/build/ace/layer/cursor.js b/build/ace/layer/cursor.js
deleted file mode 100644
index df23345c..00000000
--- a/build/ace/layer/cursor.js
+++ /dev/null
@@ -1,63 +0,0 @@
-define(function(b, f) {
- var d = b("pilot/dom");
- b = function(a) {
- this.element = document.createElement("div");
- this.element.className = "ace_layer ace_cursor-layer";
- a.appendChild(this.element);
- this.cursor = document.createElement("div");
- this.cursor.className = "ace_cursor";
- this.isVisible = false
- };
- (function() {
- this.setDocument = function(a) {
- this.doc = a
- };
- this.setCursor = function(a, c) {
- this.position = {row:a.row, column:this.doc.documentToScreenColumn(a.row, a.column)};
- c ? d.addCssClass(this.cursor, "ace_overwrite") : d.removeCssClass(this.cursor, "ace_overwrite")
- };
- this.hideCursor = function() {
- this.isVisible = false;
- this.cursor.parentNode && this.cursor.parentNode.removeChild(this.cursor);
- clearInterval(this.blinkId)
- };
- this.showCursor = function() {
- this.isVisible = true;
- this.element.appendChild(this.cursor);
- this.cursor.style.visibility = "visible";
- this.restartTimer()
- };
- this.restartTimer = function() {
- clearInterval(this.blinkId);
- if(this.isVisible) {
- var a = this.cursor;
- this.blinkId = setInterval(function() {
- a.style.visibility = "hidden";
- setTimeout(function() {
- a.style.visibility = "visible"
- }, 400)
- }, 1E3)
- }
- };
- this.getPixelPosition = function() {
- if(!this.config || !this.position) {
- return{left:0, top:0}
- }var a = this.position.row * this.config.lineHeight;
- return{left:Math.round(this.position.column * this.config.characterWidth), top:a}
- };
- this.update = function(a) {
- if(this.position) {
- this.config = a;
- var c = Math.round(this.position.column * a.characterWidth), e = this.position.row * a.lineHeight;
- this.pixelPos = {left:c, top:e};
- this.cursor.style.left = c + "px";
- this.cursor.style.top = e - a.firstRow * a.lineHeight + "px";
- this.cursor.style.width = a.characterWidth + "px";
- this.cursor.style.height = a.lineHeight + "px";
- this.isVisible && this.element.appendChild(this.cursor);
- this.restartTimer()
- }
- }
- }).call(b.prototype);
- f.Cursor = b
-});
\ No newline at end of file
diff --git a/build/ace/layer/gutter.js b/build/ace/layer/gutter.js
deleted file mode 100644
index 24021d6c..00000000
--- a/build/ace/layer/gutter.js
+++ /dev/null
@@ -1,31 +0,0 @@
-define(function(d, e) {
- var f = d("pilot/dom");
- d = function(a) {
- this.element = document.createElement("div");
- this.element.className = "ace_layer ace_gutter-layer";
- a.appendChild(this.element);
- this.$breakpoints = [];
- this.$decorations = []
- };
- (function() {
- this.addGutterDecoration = function(a, b) {
- this.$decorations[a] || (this.$decorations[a] = "");
- this.$decorations[a] += " ace_" + b
- };
- this.removeGutterDecoration = function(a, b) {
- this.$decorations[a] = this.$decorations[a].replace(" ace_" + b, "")
- };
- this.setBreakpoints = function(a) {
- this.$breakpoints = a.concat()
- };
- this.update = function(a) {
- this.$config = a;
- for(var b = [], c = a.firstRow;c <= a.lastRow;c++) {
- b.push("", c + 1, "
");
- b.push("")
- }this.element = f.setInnerHtml(this.element, b.join(""));
- this.element.style.height = a.minHeight + "px"
- }
- }).call(d.prototype);
- e.Gutter = d
-});
\ No newline at end of file
diff --git a/build/ace/layer/marker.js b/build/ace/layer/marker.js
deleted file mode 100644
index b2960ea9..00000000
--- a/build/ace/layer/marker.js
+++ /dev/null
@@ -1,74 +0,0 @@
-define(function(h, j) {
- var i = h("ace/range").Range, k = h("pilot/dom");
- h = function(d) {
- this.element = document.createElement("div");
- this.element.className = "ace_layer ace_marker-layer";
- d.appendChild(this.element);
- this.markers = {};
- this.$markerId = 1
- };
- (function() {
- this.setDocument = function(d) {
- this.doc = d
- };
- this.addMarker = function(d, a, e) {
- var b = this.$markerId++;
- this.markers[b] = {range:d, type:e || "line", clazz:a};
- return b
- };
- this.removeMarker = function(d) {
- this.markers[d] && delete this.markers[d]
- };
- this.update = function(d) {
- if(d = d || this.config) {
- this.config = d;
- var a = [];
- for(var e in this.markers) {
- var b = this.markers[e], c = b.range.clipRows(d.firstRow, d.lastRow);
- if(!c.isEmpty()) {
- if(c.isMultiLine()) {
- b.type == "text" ? this.drawTextMarker(a, c, b.clazz, d) : this.drawMultiLineMarker(a, c, b.clazz, d)
- }else {
- this.drawSingleLineMarker(a, c, b.clazz, d)
- }
- }
- }this.element = k.setInnerHtml(this.element, a.join(""))
- }
- };
- this.drawTextMarker = function(d, a, e, b) {
- var c = a.start.row, f = new i(c, a.start.column, c, this.doc.getLine(c).length);
- this.drawSingleLineMarker(d, f, e, b, 1);
- c = a.end.row;
- f = new i(c, 0, c, a.end.column);
- this.drawSingleLineMarker(d, f, e, b);
- for(c = a.start.row + 1;c < a.end.row;c++) {
- f.start.row = c;
- f.end.row = c;
- f.end.column = this.doc.getLine(c).length;
- this.drawSingleLineMarker(d, f, e, b, 1)
- }
- };
- this.drawMultiLineMarker = function(d, a, e, b) {
- a = a.toScreenRange(this.doc);
- var c = b.lineHeight, f = Math.round(b.width - a.start.column * b.characterWidth), g = (a.start.row - b.firstRow) * b.lineHeight, l = Math.round(a.start.column * b.characterWidth);
- d.push("");
- g = (a.end.row - b.firstRow) * b.lineHeight;
- f = Math.round(a.end.column * b.characterWidth);
- d.push("");
- c = (a.end.row - a.start.row - 1) * b.lineHeight;
- if(!(c < 0)) {
- g = (a.start.row + 1 - b.firstRow) * b.lineHeight;
- d.push("")
- }
- };
- this.drawSingleLineMarker = function(d, a, e, b, c) {
- a = a.toScreenRange(this.doc);
- var f = b.lineHeight;
- c = Math.round((a.end.column + (c || 0) - a.start.column) * b.characterWidth);
- var g = (a.start.row - b.firstRow) * b.lineHeight;
- a = Math.round(a.start.column * b.characterWidth);
- d.push("")
- }
- }).call(h.prototype);
- j.Marker = h
-});
\ No newline at end of file
diff --git a/build/ace/layer/text.js b/build/ace/layer/text.js
deleted file mode 100644
index afbc4ab3..00000000
--- a/build/ace/layer/text.js
+++ /dev/null
@@ -1,162 +0,0 @@
-define(function(k, n) {
- var o = k("pilot/oop"), l = k("pilot/dom"), p = k("pilot/lang"), q = k("pilot/event_emitter").EventEmitter;
- k = function(a) {
- this.element = document.createElement("div");
- this.element.className = "ace_layer ace_text-layer";
- a.appendChild(this.element);
- this.$characterSize = this.$measureSizes();
- this.$pollSizeChanges()
- };
- (function() {
- o.implement(this, q);
- this.EOF_CHAR = "¶";
- this.EOL_CHAR = "¬";
- this.TAB_CHAR = "→";
- this.SPACE_CHAR = "·";
- this.setTokenizer = function(a) {
- this.tokenizer = a
- };
- this.getLineHeight = function() {
- return this.$characterSize.height || 1
- };
- this.getCharacterWidth = function() {
- return this.$characterSize.width || 1
- };
- this.$pollSizeChanges = function() {
- var a = this;
- setInterval(function() {
- var b = a.$measureSizes();
- if(a.$characterSize.width !== b.width || a.$characterSize.height !== b.height) {
- a.$characterSize = b;
- a._dispatchEvent("changeCharaterSize", {data:b})
- }
- }, 500)
- };
- this.$fontStyles = {fontFamily:1, fontSize:1, fontWeight:1, fontStyle:1, lineHeight:1};
- this.$measureSizes = function() {
- if(!this.$measureNode) {
- var a = this.$measureNode = document.createElement("div"), b = a.style;
- b.width = b.height = "auto";
- b.left = b.top = "-1000px";
- b.visibility = "hidden";
- b.position = "absolute";
- b.overflow = "visible";
- b.whiteSpace = "nowrap";
- a.innerHTML = p.stringRepeat("Xy", 1E3);
- document.body.insertBefore(a, document.body.firstChild)
- }b = this.$measureNode.style;
- for(var e in this.$fontStyles) {
- a = l.computedStyle(this.element, e);
- b[e] = a
- }return{height:this.$measureNode.offsetHeight, width:this.$measureNode.offsetWidth / 2E3}
- };
- this.setDocument = function(a) {
- this.doc = a
- };
- this.showInvisibles = false;
- this.setShowInvisibles = function(a) {
- if(this.showInvisibles == a) {
- return false
- }this.showInvisibles = a;
- return true
- };
- this.$computeTabString = function() {
- var a = this.doc.getTabSize();
- if(this.showInvisibles) {
- a = a / 2;
- this.$tabString = "" + (new Array(Math.floor(a))).join(" ") + this.TAB_CHAR + (new Array(Math.ceil(a) + 1)).join(" ") + ""
- }else {
- this.$tabString = (new Array(a + 1)).join(" ")
- }
- };
- this.updateLines = function(a, b, e) {
- this.$computeTabString();
- this.config = a;
- var g = Math.max(b, a.firstRow), c = Math.min(e, a.lastRow), d = this.element.childNodes, h = this;
- this.tokenizer.getTokens(g, c, function(i) {
- for(var f = g;f <= c;f++) {
- var j = d[f - a.firstRow];
- if(j) {
- var m = [];
- h.$renderLine(m, f, i[f - g].tokens);
- l.setInnerHtml(j, m.join(""))
- }
- }
- })
- };
- this.scrollLines = function(a) {
- function b(i) {
- a.firstRow < c.firstRow ? g.$renderLinesFragment(a, a.firstRow, c.firstRow - 1, function(f) {
- d.firstChild ? d.insertBefore(f, d.firstChild) : d.appendChild(f);
- i()
- }) : i()
- }
- function e() {
- a.lastRow > c.lastRow && g.$renderLinesFragment(a, c.lastRow + 1, a.lastRow, function(i) {
- d.appendChild(i)
- })
- }
- var g = this;
- this.$computeTabString();
- var c = this.config;
- this.config = a;
- if(!c || c.lastRow < a.firstRow) {
- return this.update(a)
- }if(a.lastRow < c.firstRow) {
- return this.update(a)
- }var d = this.element;
- if(c.firstRow < a.firstRow) {
- for(var h = c.firstRow;h < a.firstRow;h++) {
- d.removeChild(d.firstChild)
- }
- }if(c.lastRow > a.lastRow) {
- for(h = a.lastRow + 1;h <= c.lastRow;h++) {
- d.removeChild(d.lastChild)
- }
- }b(e)
- };
- this.$renderLinesFragment = function(a, b, e, g) {
- var c = document.createDocumentFragment(), d = this;
- this.tokenizer.getTokens(b, e, function(h) {
- for(var i = b;i <= e;i++) {
- var f = document.createElement("div");
- f.className = "ace_line";
- var j = f.style;
- j.height = d.$characterSize.height + "px";
- j.width = a.width + "px";
- j = [];
- d.$renderLine(j, i, h[i - b].tokens);
- f.innerHTML = j.join("");
- c.appendChild(f)
- }g(c)
- })
- };
- this.update = function(a) {
- this.$computeTabString();
- this.config = a;
- var b = [], e = this;
- this.tokenizer.getTokens(a.firstRow, a.lastRow, function(g) {
- for(var c = a.firstRow;c <= a.lastRow;c++) {
- b.push("");
- e.$renderLine(b, c, g[c - a.firstRow].tokens);
- b.push("
")
- }e.element = l.setInnerHtml(e.element, b.join(""))
- })
- };
- this.$textToken = {text:true, rparen:true, lparen:true};
- this.$renderLine = function(a, b, e) {
- for(var g = /[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/g, c = 0;c < e.length;c++) {
- var d = e[c], h = d.value.replace(/&/g, "&").replace(/", h, "")
- }
- }if(this.showInvisibles) {
- b !== this.doc.getLength() - 1 ? a.push("" + this.EOL_CHAR + "") : a.push("" + this.EOF_CHAR + "")
- }
- }
- }).call(k.prototype);
- n.Text = k
-});
\ No newline at end of file
diff --git a/build/ace/mode/css.js b/build/ace/mode/css.js
deleted file mode 100644
index aa9499fe..00000000
--- a/build/ace/mode/css.js
+++ /dev/null
@@ -1,80 +0,0 @@
-define("ace/mode/css_highlight_rules", ["require", "exports", "module", "pilot/oop", "pilot/lang", "ace/mode/text_highlight_rules"], function(b, j) {
- var k = b("pilot/oop"), c = b("pilot/lang");
- b = b("ace/mode/text_highlight_rules").TextHighlightRules;
- var e = function() {
- function a(d) {
- var m = [];
- d = d.split("");
- for(var l = 0;l < d.length;l++) {
- m.push("[", d[l].toLowerCase(), d[l].toUpperCase(), "]")
- }return m.join("")
- }
- var f = c.arrayToMap("azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|-moz-border-radius|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|")),
- g = c.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")), h = c.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),
- i = c.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|"));
- this.$rules = {start:[{token:"comment", regex:"\\/\\*", next:"comment"}, {token:"string", regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, {token:"string", regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("em")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("ex")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("px")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" +
- a("cm")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("mm")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("in")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("pt")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("pc")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("deg")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" +
- a("rad")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("grad")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("ms")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("s")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("hz")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("khz")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))%"},
- {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"}, {token:"constant.numeric", regex:"#[a-fA-F0-9]{6}"}, {token:"constant.numeric", regex:"#[a-fA-F0-9]{3}"}, {token:"lparen", regex:"{"}, {token:"rparen", regex:"}"}, {token:function(d) {
- return f[d.toLowerCase()] ? "support.type" : g[d.toLowerCase()] ? "support.function" : h[d.toLowerCase()] ? "support.constant" : i[d.toLowerCase()] ? "support.constant.color" : "text"
- }, regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}], comment:[{token:"comment", regex:".*?\\*\\/", next:"start"}, {token:"comment", regex:".+"}]}
- };
- k.inherits(e, b);
- j.CssHighlightRules = e
-});
-define("ace/mode/matching_brace_outdent", ["require", "exports", "module", "ace/range"], function(b, j) {
- var k = b("ace/range").Range;
- b = function() {
- };
- (function() {
- this.checkOutdent = function(c, e) {
- if(!/^\s+$/.test(c)) {
- return false
- }return/^\s*\}/.test(e)
- };
- this.autoOutdent = function(c, e) {
- var a = c.getLine(e).match(/^(\s*\})/);
- if(!a) {
- return 0
- }a = a[1].length;
- var f = c.findMatchingBracket({row:e, column:a});
- if(!f || f.row == e) {
- return 0
- }f = this.$getIndent(c.getLine(f.row));
- c.replace(new k(e, 0, e, a - 1), f);
- return f.length - (a - 1)
- };
- this.$getIndent = function(c) {
- if(c = c.match(/^(\s+)/)) {
- return c[1]
- }return""
- }
- }).call(b.prototype);
- j.MatchingBraceOutdent = b
-});
-define("ace/mode/css", ["require", "exports", "module", "pilot/oop", "ace/mode/text", "ace/tokenizer", "ace/mode/css_highlight_rules", "ace/mode/matching_brace_outdent"], function(b, j) {
- var k = b("pilot/oop"), c = b("ace/mode/text").Mode, e = b("ace/tokenizer").Tokenizer, a = b("ace/mode/css_highlight_rules").CssHighlightRules, f = b("ace/mode/matching_brace_outdent").MatchingBraceOutdent;
- b = function() {
- this.$tokenizer = new e((new a).getRules());
- this.$outdent = new f
- };
- k.inherits(b, c);
- (function() {
- this.getNextLineIndent = function(g, h, i) {
- var d = this.$getIndent(h);
- g = this.$tokenizer.getLineTokens(h, g).tokens;
- if(g.length && g[g.length - 1].type == "comment") {
- return d
- }if(h.match(/^.*\{\s*$/)) {
- d += i
- }return d
- };
- this.checkOutdent = function(g, h, i) {
- return this.$outdent.checkOutdent(h, i)
- };
- this.autoOutdent = function(g, h, i) {
- return this.$outdent.autoOutdent(h, i)
- }
- }).call(b.prototype);
- j.Mode = b
-});
\ No newline at end of file
diff --git a/build/ace/mode/css_highlight_rules.js b/build/ace/mode/css_highlight_rules.js
deleted file mode 100644
index 28b409ac..00000000
--- a/build/ace/mode/css_highlight_rules.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define(function(c, h) {
- var i = c("pilot/oop"), d = c("pilot/lang");
- c = c("ace/mode/text_highlight_rules").TextHighlightRules;
- var g = function() {
- function a(b) {
- var f = [];
- b = b.split("");
- for(var e = 0;e < b.length;e++) {
- f.push("[", b[e].toLowerCase(), b[e].toUpperCase(), "]")
- }return f.join("")
- }
- var j = d.arrayToMap("azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|-moz-border-radius|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|")),
- k = d.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")), l = d.arrayToMap("absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|zero".split("|")),
- m = d.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|"));
- this.$rules = {start:[{token:"comment", regex:"\\/\\*", next:"comment"}, {token:"string", regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, {token:"string", regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("em")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("ex")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("px")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" +
- a("cm")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("mm")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("in")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("pt")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("pc")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("deg")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" +
- a("rad")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("grad")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("ms")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("s")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("hz")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))" + a("khz")}, {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))%"},
- {token:"constant.numeric", regex:"\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"}, {token:"constant.numeric", regex:"#[a-fA-F0-9]{6}"}, {token:"constant.numeric", regex:"#[a-fA-F0-9]{3}"}, {token:"lparen", regex:"{"}, {token:"rparen", regex:"}"}, {token:function(b) {
- return j[b.toLowerCase()] ? "support.type" : k[b.toLowerCase()] ? "support.function" : l[b.toLowerCase()] ? "support.constant" : m[b.toLowerCase()] ? "support.constant.color" : "text"
- }, regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}], comment:[{token:"comment", regex:".*?\\*\\/", next:"start"}, {token:"comment", regex:".+"}]}
- };
- i.inherits(g, c);
- h.CssHighlightRules = g
-});
\ No newline at end of file
diff --git a/build/ace/mode/doc_comment_highlight_rules.js b/build/ace/mode/doc_comment_highlight_rules.js
deleted file mode 100644
index 8a899a91..00000000
--- a/build/ace/mode/doc_comment_highlight_rules.js
+++ /dev/null
@@ -1,14 +0,0 @@
-define(function(a, c) {
- var d = a("pilot/oop");
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- var b = function() {
- this.$rules = {start:[{token:"comment.doc", regex:"\\*\\/", next:"start"}, {token:"comment.doc.tag", regex:"@[\\w\\d_]+"}, {token:"comment.doc", regex:"s+"}, {token:"comment.doc", regex:"TODO"}, {token:"comment.doc", regex:"[^@\\*]+"}, {token:"comment.doc", regex:"."}]}
- };
- d.inherits(b, a);
- (function() {
- this.getStartRule = function(e) {
- return{token:"comment.doc", regex:"\\/\\*(?=\\*)", next:e}
- }
- }).call(b.prototype);
- c.DocCommentHighlightRules = b
-});
\ No newline at end of file
diff --git a/build/ace/mode/html.js b/build/ace/mode/html.js
deleted file mode 100644
index 35cb5f7d..00000000
--- a/build/ace/mode/html.js
+++ /dev/null
@@ -1,57 +0,0 @@
-define("ace/mode/html_highlight_rules", ["require", "exports", "module", "pilot/oop", "ace/mode/css_highlight_rules", "ace/mode/javascript_highlight_rules", "ace/mode/text_highlight_rules"], function(a, f) {
- var g = a("pilot/oop"), h = a("ace/mode/css_highlight_rules").CssHighlightRules, i = a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules;
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- var d = function() {
- this.$rules = {start:[{token:"text", regex:"<\\!\\[CDATA\\[", next:"cdata"}, {token:"xml_pe", regex:"<\\?.*?\\?>"}, {token:"comment", regex:"<\\!--", next:"comment"}, {token:"text", regex:"<(?=s*script)", next:"script"}, {token:"text", regex:"<(?=s*style)", next:"css"}, {token:"text", regex:"<\\/?", next:"tag"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"[^<]+"}], script:[{token:"text", regex:">", next:"js-start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"},
- {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], css:[{token:"text", regex:">", next:"css-start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], tag:[{token:"text", regex:">", next:"start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], cdata:[{token:"text", regex:"\\]\\]>", next:"start"},
- {token:"text", regex:"\\s+"}, {token:"text", regex:".+"}], comment:[{token:"comment", regex:".*?--\>", next:"start"}, {token:"comment", regex:".+"}]};
- this.addRules((new i).getRules(), "js-");
- this.$rules["js-start"].unshift({token:"comment", regex:"\\/\\/.*(?=<\\/script>)", next:"tag"}, {token:"text", regex:"<\\/(?=script)", next:"tag"});
- this.addRules((new h).getRules(), "css-");
- this.$rules["css-start"].unshift({token:"text", regex:"<\\/(?=style)", next:"tag"})
- };
- g.inherits(d, a);
- f.HtmlHighlightRules = d
-});
-define("ace/mode/html", ["require", "exports", "module", "pilot/oop", "ace/mode/text", "ace/mode/javascript", "ace/mode/css", "ace/tokenizer", "ace/mode/html_highlight_rules"], function(a, f) {
- var g = a("pilot/oop"), h = a("ace/mode/text").Mode, i = a("ace/mode/javascript").Mode, d = a("ace/mode/css").Mode, l = a("ace/tokenizer").Tokenizer, m = a("ace/mode/html_highlight_rules").HtmlHighlightRules;
- a = function() {
- this.$tokenizer = new l((new m).getRules());
- this.$js = new i;
- this.$css = new d
- };
- g.inherits(a, h);
- (function() {
- this.toggleCommentLines = function() {
- return this.$delegate("toggleCommentLines", arguments, function() {
- return 0
- })
- };
- this.getNextLineIndent = function(j, b) {
- var e = this;
- return this.$delegate("getNextLineIndent", arguments, function() {
- return e.$getIndent(b)
- })
- };
- this.checkOutdent = function() {
- return this.$delegate("checkOutdent", arguments, function() {
- return false
- })
- };
- this.autoOutdent = function() {
- return this.$delegate("autoOutdent", arguments)
- };
- this.$delegate = function(j, b, e) {
- var k = b[0], c = k.split("js-");
- if(!c[0] && c[1]) {
- b[0] = c[1];
- return this.$js[j].apply(this.$js, b)
- }c = k.split("css-");
- if(!c[0] && c[1]) {
- b[0] = c[1];
- return this.$css[j].apply(this.$css, b)
- }return e ? e() : undefined
- }
- }).call(a.prototype);
- f.Mode = a
-});
\ No newline at end of file
diff --git a/build/ace/mode/html_highlight_rules.js b/build/ace/mode/html_highlight_rules.js
deleted file mode 100644
index b6dd54b0..00000000
--- a/build/ace/mode/html_highlight_rules.js
+++ /dev/null
@@ -1,15 +0,0 @@
-define(function(a, c) {
- var d = a("pilot/oop"), e = a("ace/mode/css_highlight_rules").CssHighlightRules, f = a("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules;
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- var b = function() {
- this.$rules = {start:[{token:"text", regex:"<\\!\\[CDATA\\[", next:"cdata"}, {token:"xml_pe", regex:"<\\?.*?\\?>"}, {token:"comment", regex:"<\\!--", next:"comment"}, {token:"text", regex:"<(?=s*script)", next:"script"}, {token:"text", regex:"<(?=s*style)", next:"css"}, {token:"text", regex:"<\\/?", next:"tag"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"[^<]+"}], script:[{token:"text", regex:">", next:"js-start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"},
- {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], css:[{token:"text", regex:">", next:"css-start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], tag:[{token:"text", regex:">", next:"start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], cdata:[{token:"text", regex:"\\]\\]>", next:"start"},
- {token:"text", regex:"\\s+"}, {token:"text", regex:".+"}], comment:[{token:"comment", regex:".*?--\>", next:"start"}, {token:"comment", regex:".+"}]};
- this.addRules((new f).getRules(), "js-");
- this.$rules["js-start"].unshift({token:"comment", regex:"\\/\\/.*(?=<\\/script>)", next:"tag"}, {token:"text", regex:"<\\/(?=script)", next:"tag"});
- this.addRules((new e).getRules(), "css-");
- this.$rules["css-start"].unshift({token:"text", regex:"<\\/(?=style)", next:"tag"})
- };
- d.inherits(b, a);
- c.HtmlHighlightRules = b
-});
\ No newline at end of file
diff --git a/build/ace/mode/javascript.js b/build/ace/mode/javascript.js
deleted file mode 100644
index 1ef160ff..00000000
--- a/build/ace/mode/javascript.js
+++ /dev/null
@@ -1,59 +0,0 @@
-define(function(f, h) {
- var i = f("pilot/oop"), j = f("ace/mode/text").Mode, k = f("ace/tokenizer").Tokenizer, l = f("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules, m = f("ace/mode/matching_brace_outdent").MatchingBraceOutdent, n = f("ace/range").Range;
- f = function() {
- this.$tokenizer = new k((new l).getRules());
- this.$outdent = new m
- };
- i.inherits(f, j);
- (function() {
- this.toggleCommentLines = function(c, a, d, g) {
- var e = true;
- c = /^(\s*)\/\//;
- for(var b = d;b <= g;b++) {
- if(!c.test(a.getLine(b))) {
- e = false;
- break
- }
- }if(e) {
- e = new n(0, 0, 0, 0);
- for(b = d;b <= g;b++) {
- d = a.getLine(b).replace(c, "$1");
- e.start.row = b;
- e.end.row = b;
- e.end.column = d.length + 2;
- a.replace(e, d)
- }return-2
- }else {
- return a.indentRows(d, g, "//")
- }
- };
- this.getNextLineIndent = function(c, a, d) {
- var g = this.$getIndent(a), e = this.$tokenizer.getLineTokens(a, c), b = e.tokens;
- e = e.state;
- if(b.length && b[b.length - 1].type == "comment") {
- return g
- }if(c == "start") {
- if(c = a.match(/^.*[\{\(\[]\s*$/)) {
- g += d
- }
- }else {
- if(c == "doc-start") {
- if(e == "start") {
- return""
- }if(c = a.match(/^\s*(\/?)\*/)) {
- if(c[1]) {
- g += " "
- }g += "* "
- }
- }
- }return g
- };
- this.checkOutdent = function(c, a, d) {
- return this.$outdent.checkOutdent(a, d)
- };
- this.autoOutdent = function(c, a, d) {
- return this.$outdent.autoOutdent(a, d)
- }
- }).call(f.prototype);
- h.Mode = f
-});
\ No newline at end of file
diff --git a/build/ace/mode/javascript_highlight_rules.js b/build/ace/mode/javascript_highlight_rules.js
deleted file mode 100644
index b44c427c..00000000
--- a/build/ace/mode/javascript_highlight_rules.js
+++ /dev/null
@@ -1,16 +0,0 @@
-define(function(a, e) {
- var f = a("pilot/oop"), c = a("pilot/lang"), g = a("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules;
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- JavaScriptHighlightRules = function() {
- var d = new g, h = c.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|var|while|with".split("|")), i = c.arrayToMap("null|Infinity|NaN|undefined".split("|")), j = c.arrayToMap("class|enum|extends|super|const|export|import|implements|let|private|public|yield|interface|package|protected|static".split("|"));
- this.$rules = {start:[{token:"comment", regex:"\\/\\/.*$"}, d.getStartRule("doc-start"), {token:"comment", regex:"\\/\\*", next:"comment"}, {token:"string.regexp", regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"}, {token:"string", regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, {token:"string", regex:'["].*\\\\$', next:"qqstring"}, {token:"string", regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"}, {token:"string", regex:"['].*\\\\$", next:"qstring"}, {token:"constant.numeric",
- regex:"0[xX][0-9a-fA-F]+\\b"}, {token:"constant.numeric", regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, {token:"constant.language.boolean", regex:"(?:true|false)\\b"}, {token:function(b) {
- return b == "this" ? "variable.language" : h[b] ? "keyword" : i[b] ? "constant.language" : j[b] ? "invalid.illegal" : b == "debugger" ? "invalid.deprecated" : "identifier"
- }, regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}, {token:"keyword.operator", regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"}, {token:"lparen", regex:"[[({]"}, {token:"rparen", regex:"[\\])}]"}, {token:"text", regex:"\\s+"}], comment:[{token:"comment", regex:".*?\\*\\/", next:"start"}, {token:"comment", regex:".+"}], qqstring:[{token:"string", regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
- next:"start"}, {token:"string", regex:".+"}], qstring:[{token:"string", regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'", next:"start"}, {token:"string", regex:".+"}]};
- this.addRules(d.getRules(), "doc-");
- this.$rules["doc-start"][0].next = "start"
- };
- f.inherits(JavaScriptHighlightRules, a);
- e.JavaScriptHighlightRules = JavaScriptHighlightRules
-});
\ No newline at end of file
diff --git a/build/ace/mode/matching_brace_outdent.js b/build/ace/mode/matching_brace_outdent.js
deleted file mode 100644
index e66aecb7..00000000
--- a/build/ace/mode/matching_brace_outdent.js
+++ /dev/null
@@ -1,30 +0,0 @@
-define(function(e, f) {
- var g = e("ace/range").Range;
- e = function() {
- };
- (function() {
- this.checkOutdent = function(a, b) {
- if(!/^\s+$/.test(a)) {
- return false
- }return/^\s*\}/.test(b)
- };
- this.autoOutdent = function(a, b) {
- var c = a.getLine(b).match(/^(\s*\})/);
- if(!c) {
- return 0
- }c = c[1].length;
- var d = a.findMatchingBracket({row:b, column:c});
- if(!d || d.row == b) {
- return 0
- }d = this.$getIndent(a.getLine(d.row));
- a.replace(new g(b, 0, b, c - 1), d);
- return d.length - (c - 1)
- };
- this.$getIndent = function(a) {
- if(a = a.match(/^(\s+)/)) {
- return a[1]
- }return""
- }
- }).call(e.prototype);
- f.MatchingBraceOutdent = e
-});
\ No newline at end of file
diff --git a/build/ace/mode/php.js b/build/ace/mode/php.js
deleted file mode 100644
index a4ce06e6..00000000
--- a/build/ace/mode/php.js
+++ /dev/null
@@ -1,48 +0,0 @@
-define(function(d, h) {
- var i = d("pilot/oop"), j = d("./text").Mode, k = d("../tokenizer").Tokenizer, l = d("./php_highlight_rules").PhpHighlightRules, m = d("./matching_brace_outdent").MatchingBraceOutdent, n = d("../range").Range;
- d = function() {
- this.$tokenizer = new k((new l).getRules());
- this.$outdent = new m
- };
- i.inherits(d, j);
- (function() {
- this.toggleCommentLines = function(f, a, b, g) {
- var c = true;
- f = /^(\s*)#/;
- for(var e = b;e <= g;e++) {
- if(!f.test(a.getLine(e))) {
- c = false;
- break
- }
- }if(c) {
- c = new n(0, 0, 0, 0);
- for(e = b;e <= g;e++) {
- b = a.getLine(e).replace(f, "$1");
- c.start.row = e;
- c.end.row = e;
- c.end.column = b.length + 2;
- a.replace(c, b)
- }return-2
- }else {
- return a.indentRows(b, g, "#")
- }
- };
- this.getNextLineIndent = function(f, a, b) {
- var g = this.$getIndent(a), c = this.$tokenizer.getLineTokens(a, f).tokens;
- if(c.length && c[c.length - 1].type == "comment") {
- return g
- }if(f == "start") {
- if(a.match(/^.*[\{\(\[\:]\s*$/)) {
- g += b
- }
- }return g
- };
- this.checkOutdent = function(f, a, b) {
- return this.$outdent.checkOutdent(a, b)
- };
- this.autoOutdent = function(f, a, b) {
- return this.$outdent.autoOutdent(a, b)
- }
- }).call(d.prototype);
- h.Mode = d
-});
\ No newline at end of file
diff --git a/build/ace/mode/php_highlight_rules.js b/build/ace/mode/php_highlight_rules.js
deleted file mode 100644
index b5cdf02a..00000000
--- a/build/ace/mode/php_highlight_rules.js
+++ /dev/null
@@ -1,46 +0,0 @@
-define(function(b, e) {
- var f = b("pilot/oop"), c = b("pilot/lang"), g = b("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules;
- b = b("ace/mode/text_highlight_rules").TextHighlightRules;
- PhpHighlightRules = function() {
- var d = new g, h = c.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_response_headers|apache_setenv|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_uassoc|array_fill|array_filter|array_flip|array_intersect|array_intersect_assoc|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_push|array_rand|array_reduce|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_unique|array_unshift|array_values|array_walk|arsort|ascii2ebcdic|asin|asinh|asort|aspell_check|aspell_check_raw|aspell_new|aspell_suggest|assert|assert_options|atan|atan2|atanh|base64_decode|base64_encode|base_convert|basename|bcadd|bccomp|bcdiv|bcmod|bcmul|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|call_user_func|call_user_func_array|call_user_method|call_user_method_array|ccvs_add|ccvs_auth|ccvs_command|ccvs_count|ccvs_delete|ccvs_done|ccvs_init|ccvs_lookup|ccvs_new|ccvs_report|ccvs_return|ccvs_reverse|ccvs_sale|ccvs_status|ccvs_textvalue|ccvs_void|ceil|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_exists|clearstatcache|closedir|closelog|com|com_addref|com_get|com_invoke|com_isenum|com_load|com_load_typelib|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|convert_cyr_string|copy|cos|cosh|count|count_chars|cpdf_add_annotation|cpdf_add_outline|cpdf_arc|cpdf_begin_text|cpdf_circle|cpdf_clip|cpdf_close|cpdf_closepath|cpdf_closepath_fill_stroke|cpdf_closepath_stroke|cpdf_continue_text|cpdf_curveto|cpdf_end_text|cpdf_fill|cpdf_fill_stroke|cpdf_finalize|cpdf_finalize_page|cpdf_global_set_document_limits|cpdf_import_jpeg|cpdf_lineto|cpdf_moveto|cpdf_newpath|cpdf_open|cpdf_output_buffer|cpdf_page_init|cpdf_place_inline_image|cpdf_rect|cpdf_restore|cpdf_rlineto|cpdf_rmoveto|cpdf_rotate|cpdf_rotate_text|cpdf_save|cpdf_save_to_file|cpdf_scale|cpdf_set_action_url|cpdf_set_char_spacing|cpdf_set_creator|cpdf_set_current_page|cpdf_set_font|cpdf_set_font_directories|cpdf_set_font_map_file|cpdf_set_horiz_scaling|cpdf_set_keywords|cpdf_set_leading|cpdf_set_page_animation|cpdf_set_subject|cpdf_set_text_matrix|cpdf_set_text_pos|cpdf_set_text_rendering|cpdf_set_text_rise|cpdf_set_title|cpdf_set_viewer_preferences|cpdf_set_word_spacing|cpdf_setdash|cpdf_setflat|cpdf_setgray|cpdf_setgray_fill|cpdf_setgray_stroke|cpdf_setlinecap|cpdf_setlinejoin|cpdf_setlinewidth|cpdf_setmiterlimit|cpdf_setrgbcolor|cpdf_setrgbcolor_fill|cpdf_setrgbcolor_stroke|cpdf_show|cpdf_show_xy|cpdf_stringwidth|cpdf_stroke|cpdf_text|cpdf_translate|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|curl_close|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_version|current|cybercash_base64_decode|cybercash_base64_encode|cybercash_decr|cybercash_encr|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dblist|dbmclose|dbmdelete|dbmexists|dbmfetch|dbmfirstkey|dbminsert|dbmnextkey|dbmopen|dbmreplace|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debugger_off|debugger_on|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|dotnet_load|doubleval|each|easter_date|easter_days|ebcdic2ascii|echo|empty|end|ereg|ereg_replace|eregi|eregi_replace|error_log|error_reporting|escapeshellarg|escapeshellcmd|eval|exec|exif_imagetype|exif_read_data|exif_thumbnail|exit|exp|explode|expm1|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_select_db|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filetype|floatval|flock|floor|flush|fmod|fnmatch|fopen|fpassthru|fprintf|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gd_info|get_browser|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getcwd|getdate|getenv|gethostbyaddr|gethostbyname|gethostbynamel|getimagesize|getlastmod|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getopt|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|gettext|gettimeofday|gettype|glob|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_xor|gmstrftime|gregoriantojd|gzclose|gzcompress|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|header|headers_list|headers_sent|hebrev|hebrevc|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|http_build_query|hw_api_attribute|hw_api_content|hw_api_object|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_hgcsp|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|idate|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|image2wbmp|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepscopyfont|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchstructure|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implode|import_request_variables|in_array|ingres_autocommit|ingres_close|ingres_commit|ingres_connect|ingres_fetch_array|ingres_fetch_object|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_query|ingres_rollback|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|intval|ip2long|iptcembed|iptcparse|ircg_channel_mode|ircg_disconnect|ircg_fetch_error_msg|ircg_get_username|ircg_html_encode|ircg_ignore_add|ircg_ignore_del|ircg_invite|ircg_is_conn_alive|ircg_join|ircg_kick|ircg_list|ircg_lookup_format_messages|ircg_lusers|ircg_msg|ircg_nick|ircg_nickname_escape|ircg_nickname_unescape|ircg_notice|ircg_oper|ircg_part|ircg_pconnect|ircg_register_format_messages|ircg_set_current|ircg_set_file|ircg_set_on_die|ircg_topic|ircg_who|ircg_whois|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isset|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|juliantojd|key|krsort|ksort|lcg_value|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|levenshtein|link|linkinfo|list|localeconv|localtime|log|log10|log1p|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_strlen|mb_strpos|mb_strrpos|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcal_append_event|mcal_close|mcal_create_calendar|mcal_date_compare|mcal_date_valid|mcal_day_of_week|mcal_day_of_year|mcal_days_in_month|mcal_delete_calendar|mcal_delete_event|mcal_event_add_attribute|mcal_event_init|mcal_event_set_alarm|mcal_event_set_category|mcal_event_set_class|mcal_event_set_description|mcal_event_set_end|mcal_event_set_recur_daily|mcal_event_set_recur_monthly_mday|mcal_event_set_recur_monthly_wday|mcal_event_set_recur_none|mcal_event_set_recur_weekly|mcal_event_set_recur_yearly|mcal_event_set_start|mcal_event_set_title|mcal_expunge|mcal_fetch_current_stream_event|mcal_fetch_event|mcal_is_leap_year|mcal_list_alarms|mcal_list_events|mcal_next_recurrence|mcal_open|mcal_popen|mcal_rename_calendar|mcal_reopen|mcal_snooze|mcal_store_event|mcal_time_valid|mcal_week_of_year|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|mcve_adduser|mcve_adduserarg|mcve_bt|mcve_checkstatus|mcve_chkpwd|mcve_chngpwd|mcve_completeauthorizations|mcve_connect|mcve_connectionerror|mcve_deleteresponse|mcve_deletetrans|mcve_deleteusersetup|mcve_deluser|mcve_destroyconn|mcve_destroyengine|mcve_disableuser|mcve_edituser|mcve_enableuser|mcve_force|mcve_getcell|mcve_getcellbynum|mcve_getcommadelimited|mcve_getheader|mcve_getuserarg|mcve_getuserparam|mcve_gft|mcve_gl|mcve_gut|mcve_initconn|mcve_initengine|mcve_initusersetup|mcve_iscommadelimited|mcve_liststats|mcve_listusers|mcve_maxconntimeout|mcve_monitor|mcve_numcolumns|mcve_numrows|mcve_override|mcve_parsecommadelimited|mcve_ping|mcve_preauth|mcve_preauthcompletion|mcve_qc|mcve_responseparam|mcve_return|mcve_returncode|mcve_returnstatus|mcve_sale|mcve_setblocking|mcve_setdropfile|mcve_setip|mcve_setssl|mcve_setssl_files|mcve_settimeout|mcve_settle|mcve_text_avs|mcve_text_code|mcve_text_cv|mcve_transactionauth|mcve_transactionavs|mcve_transactionbatch|mcve_transactioncv|mcve_transactionid|mcve_transactionitem|mcve_transactionssent|mcve_transactiontext|mcve_transinqueue|mcve_transnew|mcve_transparam|mcve_transsend|mcve_ub|mcve_uwait|mcve_verifyconnection|mcve_verifysslcert|mcve_void|md5|md5_file|mdecrypt_generic|memory_get_usage|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_setcubicthreshold|ming_setscale|ming_useswfversion|mkdir|mktime|money_format|move_uploaded_file|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_getdata|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_setdata|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|muscat_close|muscat_get|muscat_give|muscat_setup|muscat_setup_net|mysql_affected_rows|mysql_change_user|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli_affected_rows|mysqli_autocommit|mysqli_bind_param|mysqli_bind_result|mysqli_change_user|mysqli_character_set_name|mysqli_client_encoding|mysqli_close|mysqli_commit|mysqli_connect|mysqli_connect_errno|mysqli_connect_error|mysqli_data_seek|mysqli_debug|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_dump_debug_info|mysqli_embedded_connect|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_errno|mysqli_error|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_fetch_array|mysqli_fetch_assoc|mysqli_fetch_field|mysqli_fetch_field_direct|mysqli_fetch_fields|mysqli_fetch_lengths|mysqli_fetch_object|mysqli_fetch_row|mysqli_field_count|mysqli_field_seek|mysqli_field_tell|mysqli_free_result|mysqli_get_client_info|mysqli_get_client_version|mysqli_get_host_info|mysqli_get_metadata|mysqli_get_proto_info|mysqli_get_server_info|mysqli_get_server_version|mysqli_info|mysqli_init|mysqli_insert_id|mysqli_kill|mysqli_master_query|mysqli_more_results|mysqli_multi_query|mysqli_next_result|mysqli_num_fields|mysqli_num_rows|mysqli_options|mysqli_param_count|mysqli_ping|mysqli_prepare|mysqli_query|mysqli_real_connect|mysqli_real_escape_string|mysqli_real_query|mysqli_report|mysqli_rollback|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_select_db|mysqli_send_long_data|mysqli_send_query|mysqli_server_end|mysqli_server_init|mysqli_set_opt|mysqli_sqlstate|mysqli_ssl_set|mysqli_stat|mysqli_stmt_init|mysqli_stmt_affected_rows|mysqli_stmt_bind_param|mysqli_stmt_bind_result|mysqli_stmt_close|mysqli_stmt_data_seek|mysqli_stmt_errno|mysqli_stmt_error|mysqli_stmt_execute|mysqli_stmt_fetch|mysqli_stmt_free_result|mysqli_stmt_num_rows|mysqli_stmt_param_count|mysqli_stmt_prepare|mysqli_stmt_result_metadata|mysqli_stmt_send_long_data|mysqli_stmt_sqlstate|mysqli_stmt_store_result|mysqli_store_result|mysqli_thread_id|mysqli_thread_safe|mysqli_use_result|mysqli_warning_count|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|next|ngettext|nl2br|nl_langinfo|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|number_format|ob_clean|ob_end_clean|ob_end_flush|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_by_name|oci_cancel|oci_close|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_copy|oci_lob_is_equal|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|opendir|openlog|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_new|openssl_csr_sign|openssl_error_string|openssl_free_key|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ora_bind|ora_close|ora_columnname|ora_columnsize|ora_columntype|ora_commit|ora_commitoff|ora_commiton|ora_do|ora_error|ora_errorcode|ora_exec|ora_fetch|ora_fetch_into|ora_getcolumn|ora_logoff|ora_logon|ora_numcols|ora_numrows|ora_open|ora_parse|ora_plogon|ora_rollback|ord|output_add_rewrite_var|output_reset_rewrite_vars|overload|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parse_ini_file|parse_str|parse_url|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_page|pdf_begin_pattern|pdf_begin_template|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_curveto|pdf_delete|pdf_end_page|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_stroke|pdf_findfont|pdf_get_buffer|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_initgraphics|pdf_lineto|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_page|pdf_open_png|pdf_open_tiff|pdf_place_image|pdf_place_pdi_page|pdf_rect|pdf_restore|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_font|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_translate|pfpro_cleanup|pfpro_init|pfpro_process|pfpro_process_raw|pfpro_version|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_fetch_all|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_type|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_pconnect|pg_ping|pg_port|pg_put_line|pg_query|pg_result_error|pg_result_seek|pg_result_status|pg_select|pg_send_query|pg_set_client_encoding|pg_trace|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_ctermid|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_isatty|posix_kill|posix_mkfifo|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_grep|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|qdom_error|qdom_tree|quoted_printable_decode|quotemeta|rad2deg|rand|range|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_read_history|readline_write_history|readlink|realpath|recode|recode_file|recode_string|register_shutdown_function|register_tick_function|rename|reset|restore_error_handler|restore_include_path|rewind|rewinddir|rmdir|round|rsort|rtrim|scandir|sem_acquire|sem_get|sem_release|sem_remove|serialize|sesam_affected_rows|sesam_commit|sesam_connect|sesam_diagnostic|sesam_disconnect|sesam_errormsg|sesam_execimm|sesam_fetch_array|sesam_fetch_result|sesam_fetch_row|sesam_field_array|sesam_field_name|sesam_free_result|sesam_num_fields|sesam_query|sesam_rollback|sesam_seek_row|sesam_settransaction|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|set_error_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_time_limit|setcookie|setlocale|setrawcookie|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|sin|sinh|sizeof|sleep|snmp_get_quick_print|snmp_set_quick_print|snmpget|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_iovec_add|socket_iovec_alloc|socket_iovec_delete|socket_iovec_fetch|socket_iovec_free|socket_iovec_set|socket_last_error|socket_listen|socket_read|socket_readv|socket_recv|socket_recvfrom|socket_recvmsg|socket_select|socket_send|socket_sendmsg|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|socket_writev|sort|soundex|split|spliti|sprintf|sql_regcase|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_fetch_array|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqrt|srand|sscanf|stat|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_context_create|stream_context_get_options|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_register_wrapper|stream_select|stream_set_blocking|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_get_name|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_wrapper_register|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpos|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfbutton_keypress|swfdisplayitem|swffill|swffont|swfgradient|swfmorph|swfmovie|swfshape|swfsprite|swftext|swftextfield|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|syslog|system|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy_access_count|tidy_clean_repair|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_body|tidy_get_config|tidy_get_error_buffer|tidy_get_head|tidy_get_html|tidy_get_html_ver|tidy_get_output|tidy_get_release|tidy_get_root|tidy_get_status|tidy_getopt|tidy_is_xhtml|tidy_is_xml|tidy_load_config|tidy_parse_file|tidy_parse_string|tidy_repair_file|tidy_repair_string|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|time|tmpfile|token_get_all|token_name|touch|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|user_error|usleep|usort|utf8_decode|utf8_encode|var_dump|var_export|variant|version_compare|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|wordwrap|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xpath_eval|xpath_eval_expression|xpath_new_context|xptr_eval|xptr_new_context|xsl_xsltprocessor_get_parameter|xsl_xsltprocessor_has_exslt_support|xsl_xsltprocessor_import_stylesheet|xsl_xsltprocessor_register_php_functions|xsl_xsltprocessor_remove_parameter|xsl_xsltprocessor_set_parameter|xsl_xsltprocessor_transform_to_doc|xsl_xsltprocessor_transform_to_uri|xsl_xsltprocessor_transform_to_xml|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|zlib_get_coding_type".split("|")),
- i = c.arrayToMap("abstract|and|array|as|break|case|catch|cfunction|class|clone|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|include|include_once|global|goto|if|implements|interface|instanceof|namespace|new|old_function|or|private|protected|public|return|require|require_once|static|switch|throw|try|use|var|while|xor".split("|")), j = c.arrayToMap("true|false|null|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__CLASS__".split("|")),
- k = c.arrayToMap("$_GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")), l = c.arrayToMap([]);
- this.$rules = {start:[{token:"support", regex:"<\\?(?:php|\\=)"}, {token:"support", regex:"\\?>"}, {token:"comment", regex:"\\/\\/.*$"}, d.getStartRule("doc-start"), {token:"comment", regex:"\\/\\*", next:"comment"}, {token:"string.regexp", regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"}, {token:"string", regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'}, {token:"string", regex:'["].*\\\\$', next:"qqstring"}, {token:"string", regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},
- {token:"string", regex:"['].*\\\\$", next:"qstring"}, {token:"constant.numeric", regex:"0[xX][0-9a-fA-F]+\\b"}, {token:"constant.numeric", regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, {token:"constant.language", regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},
- {token:"constant.language", regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},
- {token:function(a) {
- if(i[a]) {
- return"keyword"
- }else {
- if(j[a]) {
- return"constant.language"
- }else {
- if(k[a]) {
- return"variable.language"
- }else {
- if(l[a]) {
- return"invalid.illegal"
- }else {
- if(h[a]) {
- return"support.function"
- }else {
- if(a == "debugger") {
- return"invalid.deprecated"
- }else {
- if(a.match(/^(\$[a-zA-Z][a-zA-Z0-9_]*|self|parent)$/)) {
- return"variable"
- }
- }
- }
- }
- }
- }
- }return"identifier"
- }, regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}, {token:"keyword.operator", regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"}, {token:"lparen", regex:"[[({]"}, {token:"rparen", regex:"[\\])}]"}, {token:"text", regex:"\\s+"}], comment:[{token:"comment", regex:".*?\\*\\/", next:"start"}, {token:"comment", regex:".+"}], qqstring:[{token:"string", regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
- next:"start"}, {token:"string", regex:".+"}], qstring:[{token:"string", regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'", next:"start"}, {token:"string", regex:".+"}]};
- this.addRules(d.getRules(), "doc-");
- this.$rules["doc-start"][0].next = "start"
- };
- f.inherits(PhpHighlightRules, b);
- e.PhpHighlightRules = PhpHighlightRules
-});
\ No newline at end of file
diff --git a/build/ace/mode/python.js b/build/ace/mode/python.js
deleted file mode 100644
index 91df47e5..00000000
--- a/build/ace/mode/python.js
+++ /dev/null
@@ -1,93 +0,0 @@
-define("ace/mode/python_highlight_rules", ["require", "exports", "module", "pilot/oop", "pilot/lang", "./text_highlight_rules"], function(a, l) {
- var m = a("pilot/oop"), b = a("pilot/lang");
- a = a("./text_highlight_rules").TextHighlightRules;
- PythonHighlightRules = function() {
- var f = b.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")), h = b.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")), i = b.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),
- n = b.arrayToMap("".split("|"));
- this.$rules = {start:[{token:"comment", regex:"#.*$"}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"{3}(?:(?:.)|(?:^"{3}))*?"{3}'}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"{3}.*$', next:"qqstring"}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"(?:(?:\\\\.)|(?:[^"\\\\]))*?"'}, {token:"string", regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'{3}(?:(?:.)|(?:^'{3}))*?'{3}"}, {token:"string", regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'{3}.*$", next:"qstring"}, {token:"string",
- regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'(?:(?:\\\\.)|(?:[^'\\\\]))*?'"}, {token:"constant.numeric", regex:"(?:(?:(?:(?:(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.))|(?:\\d+))(?:[eE][+-]?\\d+))|(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.)))|\\d+)[jJ]\\b"}, {token:"constant.numeric", regex:"(?:(?:(?:(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.))|(?:\\d+))(?:[eE][+-]?\\d+))|(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.)))"}, {token:"constant.numeric", regex:"(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))[lL]\\b"},
- {token:"constant.numeric", regex:"(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))\\b"}, {token:function(c) {
- return f[c] ? "keyword" : h[c] ? "constant.language" : n[c] ? "invalid.illegal" : i[c] ? "support.function" : c == "debugger" ? "invalid.deprecated" : "identifier"
- }, regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}, {token:"keyword.operator", regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="}, {token:"lparen", regex:"[\\[\\(\\{]"}, {token:"rparen", regex:"[\\]\\)\\}]"}, {token:"text", regex:"\\s+"}], qqstring:[{token:"string", regex:'(?:^"{3})*?"{3}', next:"start"}, {token:"string", regex:".+"}], qstring:[{token:"string", regex:"(?:^'{3})*?'{3}", next:"start"}, {token:"string", regex:".+"}]}
- };
- m.inherits(PythonHighlightRules, a);
- l.PythonHighlightRules = PythonHighlightRules
-});
-define("ace/mode/matching_brace_outdent", ["require", "exports", "module", "ace/range"], function(a, l) {
- var m = a("ace/range").Range;
- a = function() {
- };
- (function() {
- this.checkOutdent = function(b, f) {
- if(!/^\s+$/.test(b)) {
- return false
- }return/^\s*\}/.test(f)
- };
- this.autoOutdent = function(b, f) {
- var h = b.getLine(f).match(/^(\s*\})/);
- if(!h) {
- return 0
- }h = h[1].length;
- var i = b.findMatchingBracket({row:f, column:h});
- if(!i || i.row == f) {
- return 0
- }i = this.$getIndent(b.getLine(i.row));
- b.replace(new m(f, 0, f, h - 1), i);
- return i.length - (h - 1)
- };
- this.$getIndent = function(b) {
- if(b = b.match(/^(\s+)/)) {
- return b[1]
- }return""
- }
- }).call(a.prototype);
- l.MatchingBraceOutdent = a
-});
-define("ace/mode/python", ["require", "exports", "module", "pilot/oop", "./text", "../tokenizer", "./python_highlight_rules", "./matching_brace_outdent", "../range"], function(a, l) {
- var m = a("pilot/oop"), b = a("./text").Mode, f = a("../tokenizer").Tokenizer, h = a("./python_highlight_rules").PythonHighlightRules, i = a("./matching_brace_outdent").MatchingBraceOutdent, n = a("../range").Range;
- a = function() {
- this.$tokenizer = new f((new h).getRules());
- this.$outdent = new i
- };
- m.inherits(a, b);
- (function() {
- this.toggleCommentLines = function(c, d, e, k) {
- var g = true;
- c = /^(\s*)#/;
- for(var j = e;j <= k;j++) {
- if(!c.test(d.getLine(j))) {
- g = false;
- break
- }
- }if(g) {
- g = new n(0, 0, 0, 0);
- for(j = e;j <= k;j++) {
- e = d.getLine(j).replace(c, "$1");
- g.start.row = j;
- g.end.row = j;
- g.end.column = e.length + 2;
- d.replace(g, e)
- }return-2
- }else {
- return d.indentRows(e, k, "#")
- }
- };
- this.getNextLineIndent = function(c, d, e) {
- var k = this.$getIndent(d), g = this.$tokenizer.getLineTokens(d, c).tokens;
- if(g.length && g[g.length - 1].type == "comment") {
- return k
- }if(c == "start") {
- if(d.match(/^.*[\{\(\[\:]\s*$/)) {
- k += e
- }
- }return k
- };
- this.checkOutdent = function(c, d, e) {
- return this.$outdent.checkOutdent(d, e)
- };
- this.autoOutdent = function(c, d, e) {
- return this.$outdent.autoOutdent(d, e)
- }
- }).call(a.prototype);
- l.Mode = a
-});
\ No newline at end of file
diff --git a/build/ace/mode/python_highlight_rules.js b/build/ace/mode/python_highlight_rules.js
deleted file mode 100644
index 57468c5c..00000000
--- a/build/ace/mode/python_highlight_rules.js
+++ /dev/null
@@ -1,15 +0,0 @@
-define(function(a, d) {
- var e = a("pilot/oop"), c = a("pilot/lang");
- a = a("./text_highlight_rules").TextHighlightRules;
- PythonHighlightRules = function() {
- var f = c.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")), g = c.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")), h = c.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),
- i = c.arrayToMap("".split("|"));
- this.$rules = {start:[{token:"comment", regex:"#.*$"}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"{3}(?:(?:.)|(?:^"{3}))*?"{3}'}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"{3}.*$', next:"qqstring"}, {token:"string", regex:'(?:(?:[rubRUB])|(?:[ubUB][rR]))?"(?:(?:\\\\.)|(?:[^"\\\\]))*?"'}, {token:"string", regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'{3}(?:(?:.)|(?:^'{3}))*?'{3}"}, {token:"string", regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'{3}.*$", next:"qstring"}, {token:"string",
- regex:"(?:(?:[rubRUB])|(?:[ubUB][rR]))?'(?:(?:\\\\.)|(?:[^'\\\\]))*?'"}, {token:"constant.numeric", regex:"(?:(?:(?:(?:(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.))|(?:\\d+))(?:[eE][+-]?\\d+))|(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.)))|\\d+)[jJ]\\b"}, {token:"constant.numeric", regex:"(?:(?:(?:(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.))|(?:\\d+))(?:[eE][+-]?\\d+))|(?:(?:(?:\\d+)?(?:\\.\\d+))|(?:(?:\\d+)\\.)))"}, {token:"constant.numeric", regex:"(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))[lL]\\b"},
- {token:"constant.numeric", regex:"(?:(?:(?:[1-9]\\d*)|(?:0))|(?:0[oO]?[0-7]+)|(?:0[xX][\\dA-Fa-f]+)|(?:0[bB][01]+))\\b"}, {token:function(b) {
- return f[b] ? "keyword" : g[b] ? "constant.language" : i[b] ? "invalid.illegal" : h[b] ? "support.function" : b == "debugger" ? "invalid.deprecated" : "identifier"
- }, regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}, {token:"keyword.operator", regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="}, {token:"lparen", regex:"[\\[\\(\\{]"}, {token:"rparen", regex:"[\\]\\)\\}]"}, {token:"text", regex:"\\s+"}], qqstring:[{token:"string", regex:'(?:^"{3})*?"{3}', next:"start"}, {token:"string", regex:".+"}], qstring:[{token:"string", regex:"(?:^'{3})*?'{3}", next:"start"}, {token:"string", regex:".+"}]}
- };
- e.inherits(PythonHighlightRules, a);
- d.PythonHighlightRules = PythonHighlightRules
-});
\ No newline at end of file
diff --git a/build/ace/mode/text.js b/build/ace/mode/text.js
deleted file mode 100644
index 63ae67bd..00000000
--- a/build/ace/mode/text.js
+++ /dev/null
@@ -1,28 +0,0 @@
-define(function(a, c) {
- var d = a("ace/tokenizer").Tokenizer, e = a("ace/mode/text_highlight_rules").TextHighlightRules;
- a = function() {
- this.$tokenizer = new d((new e).getRules())
- };
- (function() {
- this.getTokenizer = function() {
- return this.$tokenizer
- };
- this.toggleCommentLines = function() {
- return 0
- };
- this.getNextLineIndent = function() {
- return""
- };
- this.checkOutdent = function() {
- return false
- };
- this.autoOutdent = function() {
- };
- this.$getIndent = function(b) {
- if(b = b.match(/^(\s+)/)) {
- return b[1]
- }return""
- }
- }).call(a.prototype);
- c.Mode = a
-});
\ No newline at end of file
diff --git a/build/ace/mode/text_highlight_rules.js b/build/ace/mode/text_highlight_rules.js
deleted file mode 100644
index 2415acca..00000000
--- a/build/ace/mode/text_highlight_rules.js
+++ /dev/null
@@ -1,19 +0,0 @@
-define(function(a, h) {
- a = function() {
- this.$rules = {start:[{token:"text", regex:".+"}]}
- };
- (function() {
- this.addRules = function(g, b) {
- for(var c in g) {
- for(var d = g[c], e = 0;e < d.length;e++) {
- var f = d[e];
- f.next = f.next ? b + f.next : b + c
- }this.$rules[b + c] = d
- }
- };
- this.getRules = function() {
- return this.$rules
- }
- }).call(a.prototype);
- h.TextHighlightRules = a
-});
\ No newline at end of file
diff --git a/build/ace/mode/xml.js b/build/ace/mode/xml.js
deleted file mode 100644
index 2c0ba5e1..00000000
--- a/build/ace/mode/xml.js
+++ /dev/null
@@ -1,23 +0,0 @@
-define("ace/mode/xml_highlight_rules", ["require", "exports", "module", "pilot/oop", "ace/mode/text_highlight_rules"], function(a, c) {
- var d = a("pilot/oop");
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- var b = function() {
- this.$rules = {start:[{token:"text", regex:"<\\!\\[CDATA\\[", next:"cdata"}, {token:"xml_pe", regex:"<\\?.*?\\?>"}, {token:"comment", regex:"<\\!--", next:"comment"}, {token:"text", regex:"<\\/?", next:"tag"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"[^<]+"}], tag:[{token:"text", regex:">", next:"start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], cdata:[{token:"text", regex:"\\]\\]>",
- next:"start"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"(?:[^\\]]|\\](?!\\]>))+"}], comment:[{token:"comment", regex:".*?--\>", next:"start"}, {token:"comment", regex:".+"}]}
- };
- d.inherits(b, a);
- c.XmlHighlightRules = b
-});
-define("ace/mode/xml", ["require", "exports", "module", "pilot/oop", "ace/mode/text", "ace/tokenizer", "ace/mode/xml_highlight_rules"], function(a, c) {
- var d = a("pilot/oop"), b = a("ace/mode/text").Mode, e = a("ace/tokenizer").Tokenizer, f = a("ace/mode/xml_highlight_rules").XmlHighlightRules;
- a = function() {
- this.$tokenizer = new e((new f).getRules())
- };
- d.inherits(a, b);
- (function() {
- this.getNextLineIndent = function(h, g) {
- return this.$getIndent(g)
- }
- }).call(a.prototype);
- c.Mode = a
-});
\ No newline at end of file
diff --git a/build/ace/mode/xml_highlight_rules.js b/build/ace/mode/xml_highlight_rules.js
deleted file mode 100644
index ed500328..00000000
--- a/build/ace/mode/xml_highlight_rules.js
+++ /dev/null
@@ -1,10 +0,0 @@
-define(function(a, c) {
- var d = a("pilot/oop");
- a = a("ace/mode/text_highlight_rules").TextHighlightRules;
- var b = function() {
- this.$rules = {start:[{token:"text", regex:"<\\!\\[CDATA\\[", next:"cdata"}, {token:"xml_pe", regex:"<\\?.*?\\?>"}, {token:"comment", regex:"<\\!--", next:"comment"}, {token:"text", regex:"<\\/?", next:"tag"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"[^<]+"}], tag:[{token:"text", regex:">", next:"start"}, {token:"keyword", regex:"[-_a-zA-Z0-9:]+"}, {token:"text", regex:"\\s+"}, {token:"string", regex:'".*?"'}, {token:"string", regex:"'.*?'"}], cdata:[{token:"text", regex:"\\]\\]>",
- next:"start"}, {token:"text", regex:"\\s+"}, {token:"text", regex:"(?:[^\\]]|\\](?!\\]>))+"}], comment:[{token:"comment", regex:".*?--\>", next:"start"}, {token:"comment", regex:".+"}]}
- };
- d.inherits(b, a);
- c.XmlHighlightRules = b
-});
\ No newline at end of file
diff --git a/build/ace/range.js b/build/ace/range.js
deleted file mode 100644
index 57677a7e..00000000
--- a/build/ace/range.js
+++ /dev/null
@@ -1,71 +0,0 @@
-define(function(h, f) {
- var c = function(a, b, d, e) {
- this.start = {row:a, column:b};
- this.end = {row:d, column:e}
- };
- (function() {
- this.toString = function() {
- return"Range: [" + this.start.row + "/" + this.start.column + "] -> [" + this.end.row + "/" + this.end.column + "]"
- };
- this.contains = function(a, b) {
- return this.compare(a, b) == 0
- };
- this.compare = function(a, b) {
- if(!this.isMultiLine()) {
- if(a === this.start.row) {
- return b < this.start.column ? -1 : b > this.end.column ? 1 : 0
- }
- }if(a < this.start.row) {
- return-1
- }if(a > this.end.row) {
- return 1
- }if(this.start.row === a) {
- return b >= this.start.column ? 0 : -1
- }if(this.end.row === a) {
- return b <= this.end.column ? 0 : 1
- }return 0
- };
- this.clipRows = function(a, b) {
- if(this.end.row > b) {
- var d = {row:b + 1, column:0}
- }if(this.start.row > b) {
- var e = {row:b + 1, column:0}
- }if(this.start.row < a) {
- e = {row:a, column:0}
- }if(this.end.row < a) {
- d = {row:a, column:0}
- }return c.fromPoints(e || this.start, d || this.end)
- };
- this.extend = function(a, b) {
- var d = this.compare(a, b);
- if(d == 0) {
- return this
- }else {
- if(d == -1) {
- var e = {row:a, column:b}
- }else {
- var g = {row:a, column:b}
- }
- }return c.fromPoints(e || this.start, g || this.end)
- };
- this.isEmpty = function() {
- return this.start.row == this.end.row && this.start.column == this.end.column
- };
- this.isMultiLine = function() {
- return this.start.row !== this.end.row
- };
- this.clone = function() {
- return c.fromPoints(this.start, this.end)
- };
- this.collapseRows = function() {
- return this.end.column == 0 ? new c(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0) : new c(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(a) {
- return new c(this.start.row, a.documentToScreenColumn(this.start.row, this.start.column), this.end.row, a.documentToScreenColumn(this.end.row, this.end.column))
- }
- }).call(c.prototype);
- c.fromPoints = function(a, b) {
- return new c(a.row, a.column, b.row, b.column)
- };
- f.Range = c
-});
\ No newline at end of file
diff --git a/build/ace/renderloop.js b/build/ace/renderloop.js
deleted file mode 100644
index fdc7a06d..00000000
--- a/build/ace/renderloop.js
+++ /dev/null
@@ -1,44 +0,0 @@
-define(function(d, f) {
- var e = d("pilot/event");
- d = function(b) {
- this.onRender = b;
- this.pending = false;
- this.changes = 0
- };
- (function() {
- this.schedule = function(b) {
- this.changes |= b;
- if(!this.pending) {
- this.pending = true;
- var a = this;
- this.setTimeoutZero(function() {
- a.pending = false;
- var c = a.changes;
- a.changes = 0;
- a.onRender(c)
- })
- }
- };
- if(window.postMessage) {
- this.messageName = "zero-timeout-message";
- this.setTimeoutZero = function(b) {
- if(!this.attached) {
- var a = this;
- e.addListener(window, "message", function(c) {
- if(c.source == window && a.callback && c.data == a.messageName) {
- e.stopPropagation(c);
- a.callback()
- }
- });
- this.attached = true
- }this.callback = b;
- window.postMessage(this.messageName, "*")
- }
- }else {
- this.setTimeoutZero = function(b) {
- setTimeout(b, 0)
- }
- }
- }).call(d.prototype);
- f.RenderLoop = d
-});
\ No newline at end of file
diff --git a/build/ace/scrollbar.js b/build/ace/scrollbar.js
deleted file mode 100644
index 424d6de0..00000000
--- a/build/ace/scrollbar.js
+++ /dev/null
@@ -1,32 +0,0 @@
-define(function(a, c) {
- var d = a("pilot/oop"), e = a("pilot/dom"), f = a("pilot/event"), g = a("pilot/event_emitter").EventEmitter;
- a = function(b) {
- this.element = document.createElement("div");
- this.element.className = "ace_sb";
- this.inner = document.createElement("div");
- this.element.appendChild(this.inner);
- b.appendChild(this.element);
- this.width = e.scrollbarWidth();
- this.element.style.width = this.width;
- f.addListener(this.element, "scroll", this.onScroll.bind(this))
- };
- (function() {
- d.implement(this, g);
- this.onScroll = function() {
- this._dispatchEvent("scroll", {data:this.element.scrollTop})
- };
- this.getWidth = function() {
- return this.width
- };
- this.setHeight = function(b) {
- this.element.style.height = Math.max(0, b - this.width) + "px"
- };
- this.setInnerHeight = function(b) {
- this.inner.style.height = b + "px"
- };
- this.setScrollTop = function(b) {
- this.element.scrollTop = b
- }
- }).call(a.prototype);
- c.ScrollBar = a
-});
\ No newline at end of file
diff --git a/build/ace/search.js b/build/ace/search.js
deleted file mode 100644
index aace07de..00000000
--- a/build/ace/search.js
+++ /dev/null
@@ -1,149 +0,0 @@
-define(function(o, r) {
- var p = o("pilot/lang"), s = o("pilot/oop"), t = o("ace/range").Range, l = function() {
- this.$options = {needle:"", backwards:false, wrap:false, caseSensitive:false, wholeWord:false, scope:l.ALL, regExp:false}
- };
- l.ALL = 1;
- l.SELECTION = 2;
- (function() {
- this.set = function(a) {
- s.mixin(this.$options, a);
- return this
- };
- this.getOptions = function() {
- return p.copyObject(this.$options)
- };
- this.find = function(a) {
- if(!this.$options.needle) {
- return null
- }var b = null;
- (this.$options.backwards ? this.$backwardMatchIterator(a) : this.$forwardMatchIterator(a)).forEach(function(c) {
- b = c;
- return true
- });
- return b
- };
- this.findAll = function(a) {
- if(!this.$options.needle) {
- return[]
- }var b = [];
- (this.$options.backwards ? this.$backwardMatchIterator(a) : this.$forwardMatchIterator(a)).forEach(function(c) {
- b.push(c)
- });
- return b
- };
- this.replace = function(a, b) {
- var c = this.$assembleRegExp(), g = c.exec(a);
- return g && g[0].length == a.length ? this.$options.regExp ? a.replace(c, b) : b : null
- };
- this.$forwardMatchIterator = function(a) {
- var b = this.$assembleRegExp(), c = this;
- return{forEach:function(g) {
- c.$forwardLineIterator(a).forEach(function(d, i, k) {
- if(i) {
- d = d.substring(i)
- }var j = [];
- d.replace(b, function(e) {
- j.push({str:e, offset:i + arguments[arguments.length - 2]});
- return e
- });
- for(d = 0;d < j.length;d++) {
- var h = j[d];
- h = c.$rangeFromMatch(k, h.offset, h.str.length);
- if(g(h)) {
- return true
- }
- }
- })
- }}
- };
- this.$backwardMatchIterator = function(a) {
- var b = this.$assembleRegExp(), c = this;
- return{forEach:function(g) {
- c.$backwardLineIterator(a).forEach(function(d, i, k) {
- if(i) {
- d = d.substring(i)
- }var j = [];
- d.replace(b, function(e, f) {
- j.push({str:e, offset:i + f});
- return e
- });
- for(d = j.length - 1;d >= 0;d--) {
- var h = j[d];
- h = c.$rangeFromMatch(k, h.offset, h.str.length);
- if(g(h)) {
- return true
- }
- }
- })
- }}
- };
- this.$rangeFromMatch = function(a, b, c) {
- return new t(a, b, a, b + c)
- };
- this.$assembleRegExp = function() {
- var a = this.$options.regExp ? this.$options.needle : p.escapeRegExp(this.$options.needle);
- if(this.$options.wholeWord) {
- a = "\\b" + a + "\\b"
- }var b = "g";
- this.$options.caseSensitive || (b += "i");
- return new RegExp(a, b)
- };
- this.$forwardLineIterator = function(a) {
- function b(e) {
- var f = a.getLine(e);
- if(c && e == g.end.row) {
- f = f.substring(0, g.end.column)
- }return f
- }
- var c = this.$options.scope == l.SELECTION, g = a.getSelection().getRange(), d = a.getSelection().getCursor(), i = c ? g.start.row : 0, k = c ? g.start.column : 0, j = c ? g.end.row : a.getLength() - 1, h = this.$options.wrap;
- return{forEach:function(e) {
- for(var f = d.row, m = b(f), n = d.column, q = false;!e(m, n, f);) {
- if(q) {
- return
- }f++;
- n = 0;
- if(f > j) {
- if(h) {
- f = i;
- n = k
- }else {
- return
- }
- }if(f == d.row) {
- q = true
- }m = b(f)
- }
- }}
- };
- this.$backwardLineIterator = function(a) {
- var b = this.$options.scope == l.SELECTION, c = a.getSelection().getRange(), g = b ? c.end : c.start, d = b ? c.start.row : 0, i = b ? c.start.column : 0, k = b ? c.end.row : a.getLength() - 1, j = this.$options.wrap;
- return{forEach:function(h) {
- for(var e = g.row, f = a.getLine(e).substring(0, g.column), m = 0, n = false;!h(f, m, e);) {
- if(n) {
- return
- }e--;
- m = 0;
- if(e < d) {
- if(j) {
- e = k
- }else {
- return
- }
- }if(e == g.row) {
- n = true
- }f = a.getLine(e);
- if(b) {
- if(e == d) {
- m = i
- }else {
- if(e == k) {
- f = f.substring(0, c.end.column)
- }
- }
- }
- }
- }}
- }
- }).call(l.prototype);
- r.Search = l
-});
\ No newline at end of file
diff --git a/build/ace/selection.js b/build/ace/selection.js
deleted file mode 100644
index ac335096..00000000
--- a/build/ace/selection.js
+++ /dev/null
@@ -1,261 +0,0 @@
-define(function(d, g) {
- var h = d("pilot/oop"), i = d("pilot/lang"), j = d("pilot/event_emitter").EventEmitter, f = d("ace/range").Range;
- d = function(a) {
- this.doc = a;
- this.clearSelection();
- this.selectionLead = {row:0, column:0}
- };
- (function() {
- h.implement(this, j);
- this.isEmpty = function() {
- return!this.selectionAnchor || this.selectionAnchor.row == this.selectionLead.row && this.selectionAnchor.column == this.selectionLead.column
- };
- this.isMultiLine = function() {
- if(this.isEmpty()) {
- return false
- }return this.getRange().isMultiLine()
- };
- this.getCursor = function() {
- return this.selectionLead
- };
- this.setSelectionAnchor = function(a, b) {
- a = this.$clipPositionToDocument(a, b);
- if(this.selectionAnchor) {
- if(this.selectionAnchor.row !== a.row || this.selectionAnchor.column !== a.column) {
- this.selectionAnchor = a;
- this._dispatchEvent("changeSelection", {})
- }
- }else {
- this.selectionAnchor = a;
- this._dispatchEvent("changeSelection", {})
- }
- };
- this.getSelectionAnchor = function() {
- return this.selectionAnchor ? this.$clone(this.selectionAnchor) : this.$clone(this.selectionLead)
- };
- this.getSelectionLead = function() {
- return this.$clone(this.selectionLead)
- };
- this.shiftSelection = function(a) {
- if(this.isEmpty()) {
- this.moveCursorTo(this.selectionLead.row, this.selectionLead.column + a)
- }else {
- var b = this.getSelectionAnchor(), c = this.getSelectionLead(), e = this.isBackwards();
- if(!e || b.column !== 0) {
- this.setSelectionAnchor(b.row, b.column + a)
- }if(e || c.column !== 0) {
- this.$moveSelection(function() {
- this.moveCursorTo(c.row, c.column + a)
- })
- }
- }
- };
- this.isBackwards = function() {
- var a = this.selectionAnchor || this.selectionLead, b = this.selectionLead;
- return a.row > b.row || a.row == b.row && a.column > b.column
- };
- this.getRange = function() {
- var a = this.selectionAnchor || this.selectionLead, b = this.selectionLead;
- return this.isBackwards() ? f.fromPoints(b, a) : f.fromPoints(a, b)
- };
- this.clearSelection = function() {
- if(this.selectionAnchor) {
- this.selectionAnchor = null;
- this._dispatchEvent("changeSelection", {})
- }
- };
- this.selectAll = function() {
- var a = this.doc.getLength() - 1;
- this.setSelectionAnchor(a, this.doc.getLine(a).length);
- if(!this.selectionAnchor) {
- this.selectionAnchor = this.$clone(this.selectionLead)
- }a = {row:0, column:0};
- if(a.row !== this.selectionLead.row || a.column !== this.selectionLead.column) {
- this.selectionLead = a;
- this._dispatchEvent("changeSelection", {blockScrolling:true})
- }
- };
- this.setSelectionRange = function(a, b) {
- if(b) {
- this.setSelectionAnchor(a.end.row, a.end.column);
- this.selectTo(a.start.row, a.start.column)
- }else {
- this.setSelectionAnchor(a.start.row, a.start.column);
- this.selectTo(a.end.row, a.end.column)
- }
- };
- this.$moveSelection = function(a) {
- var b = false;
- if(!this.selectionAnchor) {
- b = true;
- this.selectionAnchor = this.$clone(this.selectionLead)
- }var c = this.$clone(this.selectionLead);
- a.call(this);
- if(c.row !== this.selectionLead.row || c.column !== this.selectionLead.column) {
- b = true
- }b && this._dispatchEvent("changeSelection", {})
- };
- this.selectTo = function(a, b) {
- this.$moveSelection(function() {
- this.moveCursorTo(a, b)
- })
- };
- this.selectToPosition = function(a) {
- this.$moveSelection(function() {
- this.moveCursorToPosition(a)
- })
- };
- this.selectUp = function() {
- this.$moveSelection(this.moveCursorUp)
- };
- this.selectDown = function() {
- this.$moveSelection(this.moveCursorDown)
- };
- this.selectRight = function() {
- this.$moveSelection(this.moveCursorRight)
- };
- this.selectLeft = function() {
- this.$moveSelection(this.moveCursorLeft)
- };
- this.selectLineStart = function() {
- this.$moveSelection(this.moveCursorLineStart)
- };
- this.selectLineEnd = function() {
- this.$moveSelection(this.moveCursorLineEnd)
- };
- this.selectFileEnd = function() {
- this.$moveSelection(this.moveCursorFileEnd)
- };
- this.selectFileStart = function() {
- this.$moveSelection(this.moveCursorFileStart)
- };
- this.selectWordRight = function() {
- this.$moveSelection(this.moveCursorWordRight)
- };
- this.selectWordLeft = function() {
- this.$moveSelection(this.moveCursorWordLeft)
- };
- this.selectWord = function() {
- var a = this.selectionLead;
- this.setSelectionRange(this.doc.getWordRange(a.row, a.column))
- };
- this.selectLine = function() {
- this.setSelectionAnchor(this.selectionLead.row, 0);
- this.$moveSelection(function() {
- this.moveCursorTo(this.selectionLead.row + 1, 0)
- })
- };
- this.moveCursorUp = function() {
- this.moveCursorBy(-1, 0)
- };
- this.moveCursorDown = function() {
- this.moveCursorBy(1, 0)
- };
- this.moveCursorLeft = function() {
- if(this.selectionLead.column == 0) {
- this.selectionLead.row > 0 && this.moveCursorTo(this.selectionLead.row - 1, this.doc.getLine(this.selectionLead.row - 1).length)
- }else {
- var a = this.doc, b = a.getTabSize(), c = this.selectionLead;
- a.isTabStop(c) && a.getLine(c.row).slice(c.column - b, c.column).split(" ").length - 1 == b ? this.moveCursorBy(0, -b) : this.moveCursorBy(0, -1)
- }
- };
- this.moveCursorRight = function() {
- if(this.selectionLead.column == this.doc.getLine(this.selectionLead.row).length) {
- this.selectionLead.row < this.doc.getLength() - 1 && this.moveCursorTo(this.selectionLead.row + 1, 0)
- }else {
- var a = this.doc, b = a.getTabSize(), c = this.selectionLead;
- a.isTabStop(c) && a.getLine(c.row).slice(c.column, c.column + b).split(" ").length - 1 == b ? this.moveCursorBy(0, b) : this.moveCursorBy(0, 1)
- }
- };
- this.moveCursorLineStart = function() {
- var a = this.selectionLead.row, b = this.selectionLead.column, c = this.doc.getLine(a).slice(0, b).match(/^\s*/);
- if(c[0].length == 0) {
- this.moveCursorTo(a, this.doc.getLine(a).match(/^\s*/)[0].length)
- }else {
- c[0].length >= b ? this.moveCursorTo(a, 0) : this.moveCursorTo(a, c[0].length)
- }
- };
- this.moveCursorLineEnd = function() {
- this.moveCursorTo(this.selectionLead.row, this.doc.getLine(this.selectionLead.row).length)
- };
- this.moveCursorFileEnd = function() {
- var a = this.doc.getLength() - 1, b = this.doc.getLine(a).length;
- this.moveCursorTo(a, b)
- };
- this.moveCursorFileStart = function() {
- this.moveCursorTo(0, 0)
- };
- this.moveCursorWordRight = function() {
- var a = this.selectionLead.row, b = this.selectionLead.column, c = this.doc.getLine(a), e = c.substring(b);
- this.doc.nonTokenRe.lastIndex = 0;
- this.doc.tokenRe.lastIndex = 0;
- if(b == c.length) {
- this.moveCursorRight()
- }else {
- if(this.doc.nonTokenRe.exec(e)) {
- b += this.doc.nonTokenRe.lastIndex;
- this.doc.nonTokenRe.lastIndex = 0
- }else {
- if(this.doc.tokenRe.exec(e)) {
- b += this.doc.tokenRe.lastIndex;
- this.doc.tokenRe.lastIndex = 0
- }
- }this.moveCursorTo(a, b)
- }
- };
- this.moveCursorWordLeft = function() {
- var a = this.selectionLead.row, b = this.selectionLead.column, c = this.doc.getLine(a);
- c = i.stringReverse(c.substring(0, b));
- this.doc.nonTokenRe.lastIndex = 0;
- this.doc.tokenRe.lastIndex = 0;
- if(b == 0) {
- this.moveCursorLeft()
- }else {
- if(this.doc.nonTokenRe.exec(c)) {
- b -= this.doc.nonTokenRe.lastIndex;
- this.doc.nonTokenRe.lastIndex = 0
- }else {
- if(this.doc.tokenRe.exec(c)) {
- b -= this.doc.tokenRe.lastIndex;
- this.doc.tokenRe.lastIndex = 0
- }
- }this.moveCursorTo(a, b)
- }
- };
- this.moveCursorBy = function(a, b) {
- this.moveCursorTo(this.selectionLead.row + a, this.selectionLead.column + b)
- };
- this.moveCursorToPosition = function(a) {
- this.moveCursorTo(a.row, a.column)
- };
- this.moveCursorTo = function(a, b) {
- a = this.$clipPositionToDocument(a, b);
- if(a.row !== this.selectionLead.row || a.column !== this.selectionLead.column) {
- this.selectionLead = a;
- this._dispatchEvent("changeCursor", {data:this.getCursor()})
- }
- };
- this.moveCursorUp = function() {
- this.moveCursorBy(-1, 0)
- };
- this.$clipPositionToDocument = function(a, b) {
- var c = {};
- if(a >= this.doc.getLength()) {
- c.row = Math.max(0, this.doc.getLength() - 1);
- c.column = this.doc.getLine(c.row).length
- }else {
- if(a < 0) {
- c.row = 0;
- c.column = 0
- }else {
- c.row = a;
- c.column = Math.min(this.doc.getLine(c.row).length, Math.max(0, b))
- }
- }return c
- };
- this.$clone = function(a) {
- return{row:a.row, column:a.column}
- }
- }).call(d.prototype);
- g.Selection = d
-});
\ No newline at end of file
diff --git a/build/ace/test/all.js b/build/ace/test/all.js
deleted file mode 100644
index 3053c7c9..00000000
--- a/build/ace/test/all.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require("../../../support/paths");
-var async = require("async");
-async.concat(require("./change_document_test"), require("./document_test"), require("./event_emitter_test"), require("./navigation_test"), require("./range_test"), require("./search_test"), require("./selection_test"), require("./text_edit_test"), require("./mode/css_test"), require("./mode/css_tokenizer_test"), require("./mode/html_test"), require("./mode/html_tokenizer_test"), require("./mode/javascript_test"), require("./mode/javascript_tokenizer_test"), require("./mode/text_test"), require("./mode/xml_test"),
-require("./mode/xml_tokenizer_test")).exec();
\ No newline at end of file
diff --git a/build/ace/test/assertions.js b/build/ace/test/assertions.js
deleted file mode 100644
index c1e0c891..00000000
--- a/build/ace/test/assertions.js
+++ /dev/null
@@ -1,18 +0,0 @@
-define(function(e, f, g) {
- var a = e("assert");
- a.position = function(b, c, d) {
- a.equal(b.row, c);
- a.equal(b.column, d)
- };
- a.range = function(b, c, d, h, i) {
- a.position(b.start, c, d);
- a.position(b.end, h, i)
- };
- a.notOk = function(b) {
- a.equal(b, false)
- };
- f.jsonEquals = function(b, c) {
- a.equal(JSON.stringify(b), JSON.stringify(c))
- };
- g.exports = a
-});
\ No newline at end of file
diff --git a/build/ace/test/change_document_test.js b/build/ace/test/change_document_test.js
deleted file mode 100644
index c10c8a58..00000000
--- a/build/ace/test/change_document_test.js
+++ /dev/null
@@ -1,83 +0,0 @@
-define(function(c, d, f) {
- c("./mockdom");
- var e = c("../document").Document, g = c("../editor").Editor, h = c("../mode/text").Mode, i = c("../mode/javascript").Mode, j = c("./mockrenderer"), a = c("./assertions");
- d = {setUp:function() {
- this.doc1 = new e("abc\ndef");
- this.doc2 = new e("ghi\njkl");
- this.editor = new g(new j)
- }, "test: change document":function() {
- this.editor.setDocument(this.doc1);
- a.equal(this.editor.getDocument(), this.doc1);
- this.editor.setDocument(this.doc2);
- a.equal(this.editor.getDocument(), this.doc2)
- }, "test: only changes to the new document should have effect":function() {
- var b = false;
- this.editor.onDocumentChange = function() {
- b = true
- };
- this.editor.setDocument(this.doc1);
- this.editor.setDocument(this.doc2);
- this.doc1.duplicateLines(0, 0);
- a.notOk(b);
- this.doc2.duplicateLines(0, 0);
- a.notOk(b)
- }, "test: should use cursor of new document":function() {
- this.doc1.getSelection().moveCursorTo(0, 1);
- this.doc2.getSelection().moveCursorTo(1, 0);
- this.editor.setDocument(this.doc1);
- a.position(this.editor.getCursorPosition(), 0, 1);
- this.editor.setDocument(this.doc2);
- a.position(this.editor.getCursorPosition(), 1, 0)
- }, "test: only changing the cursor of the new doc should not have an effect":function() {
- this.editor.onCursorChange = function() {
- b = true
- };
- this.editor.setDocument(this.doc1);
- this.editor.setDocument(this.doc2);
- a.position(this.editor.getCursorPosition(), 0, 0);
- var b = false;
- this.doc1.getSelection().moveCursorTo(0, 1);
- a.position(this.editor.getCursorPosition(), 0, 0);
- a.notOk(b);
- this.doc2.getSelection().moveCursorTo(1, 1);
- a.position(this.editor.getCursorPosition(), 1, 1);
- a.ok(b)
- }, "test: should use selection of new document":function() {
- this.doc1.getSelection().selectTo(0, 1);
- this.doc2.getSelection().selectTo(1, 0);
- this.editor.setDocument(this.doc1);
- a.position(this.editor.getSelection().getSelectionLead(), 0, 1);
- this.editor.setDocument(this.doc2);
- a.position(this.editor.getSelection().getSelectionLead(), 1, 0)
- }, "test: only changing the selection of the new doc should not have an effect":function() {
- this.editor.onSelectionChange = function() {
- b = true
- };
- this.editor.setDocument(this.doc1);
- this.editor.setDocument(this.doc2);
- a.position(this.editor.getSelection().getSelectionLead(), 0, 0);
- var b = false;
- this.doc1.getSelection().selectTo(0, 1);
- a.position(this.editor.getSelection().getSelectionLead(), 0, 0);
- a.notOk(b);
- this.doc2.getSelection().selectTo(1, 1);
- a.position(this.editor.getSelection().getSelectionLead(), 1, 1);
- a.ok(b)
- }, "test: should use mode of new document":function() {
- this.editor.onDocumentModeChange = function() {
- b = true
- };
- this.editor.setDocument(this.doc1);
- this.editor.setDocument(this.doc2);
- var b = false;
- this.doc1.setMode(new h);
- a.notOk(b);
- this.doc2.setMode(new i);
- a.ok(b)
- }};
- f.exports = c("async/test").testcase(d)
-});
-if(module === require.main) {
- require("../../../support/paths");
- exports.exec()
-};
\ No newline at end of file
diff --git a/build/ace/test/document_test.js b/build/ace/test/document_test.js
deleted file mode 100644
index d0d6e798..00000000
--- a/build/ace/test/document_test.js
+++ /dev/null
@@ -1,163 +0,0 @@
-define(function(e, g, i) {
- var c = e("../document").Document, h = e("../undomanager").UndoManager;
- e("./mockrenderer");
- var f = e("../range").Range, b = e("./assertions");
- e("async");
- g = {"test: find matching opening bracket":function() {
- var a = new c(["(()(", "())))"]);
- b.position(a.findMatchingBracket({row:0, column:3}), 0, 1);
- b.position(a.findMatchingBracket({row:1, column:2}), 1, 0);
- b.position(a.findMatchingBracket({row:1, column:3}), 0, 3);
- b.position(a.findMatchingBracket({row:1, column:4}), 0, 0);
- b.equal(a.findMatchingBracket({row:1, column:5}), null)
- }, "test: find matching closing bracket":function() {
- var a = new c(["(()(", "())))"]);
- b.position(a.findMatchingBracket({row:1, column:1}), 1, 1);
- b.position(a.findMatchingBracket({row:1, column:1}), 1, 1);
- b.position(a.findMatchingBracket({row:0, column:4}), 1, 2);
- b.position(a.findMatchingBracket({row:0, column:2}), 0, 2);
- b.position(a.findMatchingBracket({row:0, column:1}), 1, 3);
- b.equal(a.findMatchingBracket({row:0, column:0}), null)
- }, "test: match different bracket types":function() {
- var a = new c(["({[", ")]}"]);
- b.position(a.findMatchingBracket({row:0, column:1}), 1, 0);
- b.position(a.findMatchingBracket({row:0, column:2}), 1, 2);
- b.position(a.findMatchingBracket({row:0, column:3}), 1, 1);
- b.position(a.findMatchingBracket({row:1, column:1}), 0, 0);
- b.position(a.findMatchingBracket({row:1, column:2}), 0, 2);
- b.position(a.findMatchingBracket({row:1, column:3}), 0, 1)
- }, "test: move lines down":function() {
- var a = new c(["a1", "a2", "a3", "a4"]);
- a.moveLinesDown(0, 1);
- b.equal(a.toString(), "a3\na1\na2\na4");
- a.moveLinesDown(1, 2);
- b.equal(a.toString(), "a3\na4\na1\na2");
- a.moveLinesDown(2, 3);
- b.equal(a.toString(), "a3\na4\na1\na2");
- a.moveLinesDown(2, 2);
- b.equal(a.toString(), "a3\na4\na2\na1")
- }, "test: move lines up":function() {
- var a = new c(["a1", "a2", "a3", "a4"]);
- a.moveLinesUp(2, 3);
- b.equal(a.toString(), "a1\na3\na4\na2");
- a.moveLinesUp(1, 2);
- b.equal(a.toString(), "a3\na4\na1\na2");
- a.moveLinesUp(0, 1);
- b.equal(a.toString(), "a3\na4\na1\na2");
- a.moveLinesUp(2, 2);
- b.equal(a.toString(), "a3\na1\na4\na2")
- }, "test: duplicate lines":function() {
- var a = new c(["1", "2", "3", "4"]);
- a.duplicateLines(1, 2);
- b.equal(a.toString(), "1\n2\n3\n2\n3\n4")
- }, "test: duplicate last line":function() {
- var a = new c(["1", "2", "3"]);
- a.duplicateLines(2, 2);
- b.equal(a.toString(), "1\n2\n3\n3")
- }, "test: duplicate first line":function() {
- var a = new c(["1", "2", "3"]);
- a.duplicateLines(0, 0);
- b.equal(a.toString(), "1\n1\n2\n3")
- }, "test: should handle unix style new lines":function() {
- var a = new c(["1", "2", "3"]);
- b.equal(a.toString(), "1\n2\n3")
- }, "test: should handle windows style new lines":function() {
- var a = new c("1\r\n2\r\n3");
- a.setNewLineMode("unix");
- b.equal(a.toString(), "1\n2\n3")
- }, "test: set new line mode to 'windows' should use '\r\n' as new lines":function() {
- var a = new c("1\n2\n3");
- a.setNewLineMode("windows");
- b.equal(a.toString(), "1\r\n2\r\n3")
- }, "test: set new line mode to 'unix' should use '\n' as new lines":function() {
- var a = new c("1\r\n2\r\n3");
- a.setNewLineMode("unix");
- b.equal(a.toString(), "1\n2\n3")
- }, "test: set new line mode to 'auto' should detect the incoming nl type":function() {
- var a = new c("1\n2\n3");
- a.setNewLineMode("auto");
- b.equal(a.toString(), "1\n2\n3");
- a = new c("1\r\n2\r\n3");
- a.setNewLineMode("auto");
- b.equal(a.toString(), "1\r\n2\r\n3");
- a.replace(new f(0, 0, 2, 1), "4\n5\n6");
- b.equal("4\n5\n6", a.toString())
- }, "test: convert document to screen coordinates":function() {
- var a = new c("01234\t567890\t1234");
- a.setTabSize(4);
- b.equal(a.documentToScreenColumn(0, 0), 0);
- b.equal(a.documentToScreenColumn(0, 4), 4);
- b.equal(a.documentToScreenColumn(0, 5), 5);
- b.equal(a.documentToScreenColumn(0, 6), 9);
- b.equal(a.documentToScreenColumn(0, 12), 15);
- b.equal(a.documentToScreenColumn(0, 13), 19);
- a.setTabSize(2);
- b.equal(a.documentToScreenColumn(0, 0), 0);
- b.equal(a.documentToScreenColumn(0, 4), 4);
- b.equal(a.documentToScreenColumn(0, 5), 5);
- b.equal(a.documentToScreenColumn(0, 6), 7);
- b.equal(a.documentToScreenColumn(0, 12), 13);
- b.equal(a.documentToScreenColumn(0, 13), 15)
- }, "test: convert document to scrren coordinates with leading tabs":function() {
- var a = new c("\t\t123");
- a.setTabSize(4);
- b.equal(a.documentToScreenColumn(0, 0), 0);
- b.equal(a.documentToScreenColumn(0, 1), 4);
- b.equal(a.documentToScreenColumn(0, 2), 8);
- b.equal(a.documentToScreenColumn(0, 3), 9)
- }, "test: convert screen to document coordinates":function() {
- var a = new c("01234\t567890\t1234");
- a.setTabSize(4);
- b.equal(a.screenToDocumentColumn(0, 0), 0);
- b.equal(a.screenToDocumentColumn(0, 4), 4);
- b.equal(a.screenToDocumentColumn(0, 5), 5);
- b.equal(a.screenToDocumentColumn(0, 6), 5);
- b.equal(a.screenToDocumentColumn(0, 7), 5);
- b.equal(a.screenToDocumentColumn(0, 8), 5);
- b.equal(a.screenToDocumentColumn(0, 9), 6);
- b.equal(a.screenToDocumentColumn(0, 15), 12);
- b.equal(a.screenToDocumentColumn(0, 19), 13)
- }, "test: insert text in multiple rows":function() {
- var a = new c(["12", "", "abcd"]), d = a.multiRowInsert([0, 1, 2], 2, "juhu 1");
- b.equal(d.rows, 0);
- b.equal(d.columns, 6);
- b.equal(a.toString(), "12juhu 1\n juhu 1\nabjuhu 1cd")
- }, "test: undo insert text in multiple rows":function() {
- var a = new c(["12", "", "abcd"]), d = new h;
- a.setUndoManager(d);
- a.multiRowInsert([0, 1, 2], 2, "juhu 1");
- a.$informUndoManager.call();
- b.equal(a.toString(), "12juhu 1\n juhu 1\nabjuhu 1cd");
- d.undo();
- b.equal(a.toString(), "12\n\nabcd");
- d.redo();
- b.equal(a.toString(), "12juhu 1\n juhu 1\nabjuhu 1cd")
- }, "test: insert new line in multiple rows":function() {
- var a = new c(["12", "", "abcd"]), d = a.multiRowInsert([0, 1, 2], 2, "\n");
- b.equal(d.rows, 1);
- b.equal(a.toString(), "12\n\n \n\nab\ncd")
- }, "test: insert multi line text in multiple rows":function() {
- var a = new c(["12", "", "abcd"]), d = a.multiRowInsert([0, 1, 2], 2, "juhu\n12");
- b.equal(d.rows, 1);
- b.equal(a.toString(), "12juhu\n12\n juhu\n12\nabjuhu\n12cd")
- }, "test: remove right in multiple rows":function() {
- var a = new c(["12", "", "abcd"]);
- a.multiRowRemove([0, 1, 2], new f(0, 2, 0, 3));
- b.equal(a.toString(), "12\n\nabd")
- }, "test: undo remove right in multiple rows":function() {
- var a = new c(["12", "", "abcd"]), d = new h;
- a.setUndoManager(d);
- a.multiRowRemove([0, 1, 2], new f(0, 1, 0, 3));
- a.$informUndoManager.call();
- b.equal(a.toString(), "1\n\nad");
- d.undo();
- b.equal(a.toString(), "12\n\nabcd");
- d.redo();
- b.equal(a.toString(), "1\n\nad")
- }};
- i.exports = e("async/test").testcase(g)
-});
-if(module === require.main) {
- require("../../../support/paths");
- exports.exec()
-};
\ No newline at end of file
diff --git a/build/ace/test/event_emitter_test.js b/build/ace/test/event_emitter_test.js
deleted file mode 100644
index 86797fb4..00000000
--- a/build/ace/test/event_emitter_test.js
+++ /dev/null
@@ -1,18 +0,0 @@
-require("../../../support/paths");
-var oop = require("pilot/oop");
-EventEmitter = require("pilot/event_emitter").EventEmitter;
-assert = require("./assertions");
-var Emitter = function() {
-};
-oop.implement(Emitter.prototype, EventEmitter);
-var Test = {"test: dispatch event with no data":function() {
- var a = new Emitter, b = false;
- a.addEventListener("juhu", function(c) {
- b = true;
- assert.equal(c.type, "juhu")
- });
- a._dispatchEvent("juhu");
- assert.ok(b)
-}};
-module.exports = require("async/test").testcase(Test);
-module === require.main && module.exports.exec();
\ No newline at end of file
diff --git a/build/ace/test/mockdom.js b/build/ace/test/mockdom.js
deleted file mode 100644
index 89879485..00000000
--- a/build/ace/test/mockdom.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var dom = require("jsdom/level2/html").dom.level2.html, browser = require("jsdom/browser/index").windowAugmentation(dom);
-global.document = browser.document;
-global.window = browser.window;
-global.self = browser.self;
-global.navigator = browser.navigator;
-global.location = browser.location;
\ No newline at end of file
diff --git a/build/ace/test/mockrenderer.js b/build/ace/test/mockrenderer.js
deleted file mode 100644
index 3540aec7..00000000
--- a/build/ace/test/mockrenderer.js
+++ /dev/null
@@ -1,61 +0,0 @@
-define(function() {
- MockRenderer = function(a) {
- this.container = document.createElement("div");
- this.cursor = {row:0, column:0};
- this.visibleRowCount = a || 20;
- this.layerConfig = {firstVisibleRow:0, lastVisibleRow:this.visibleRowCount}
- };
- MockRenderer.prototype.getFirstVisibleRow = function() {
- return this.layerConfig.firstVisibleRow
- };
- MockRenderer.prototype.getLastVisibleRow = function() {
- return this.layerConfig.lastVisibleRow
- };
- MockRenderer.prototype.getContainerElement = function() {
- return this.container
- };
- MockRenderer.prototype.getMouseEventTarget = function() {
- return this.container
- };
- MockRenderer.prototype.setDocument = function(a) {
- this.lines = a.lines
- };
- MockRenderer.prototype.setTokenizer = function() {
- };
- MockRenderer.prototype.updateCursor = function(a) {
- this.cursor.row = a.row;
- this.cursor.column = a.column
- };
- MockRenderer.prototype.scrollCursorIntoView = function() {
- if(this.cursor.row < this.layerConfig.firstVisibleRow) {
- this.scrollToRow(this.cursor.row)
- }else {
- this.cursor.row > this.layerConfig.lastVisibleRow && this.scrollToRow(this.cursor.row)
- }
- };
- MockRenderer.prototype.scrollToRow = function(a) {
- a = Math.min(this.lines.length - this.visibleRowCount, Math.max(0, a));
- this.layerConfig.firstVisibleRow = a;
- this.layerConfig.lastVisibleRow = a + this.visibleRowCount
- };
- MockRenderer.prototype.getScrollTopRow = function() {
- return this.layerConfig.firstVisibleRow
- };
- MockRenderer.prototype.draw = function() {
- };
- MockRenderer.prototype.updateLines = function() {
- };
- MockRenderer.prototype.addMarker = function() {
- };
- MockRenderer.prototype.setBreakpoints = function() {
- };
- MockRenderer.prototype.updateFull = function() {
- };
- MockRenderer.prototype.updateText = function() {
- };
- MockRenderer.prototype.showCursor = function() {
- };
- MockRenderer.prototype.visualizeFocus = function() {
- };
- return MockRenderer
-});
\ No newline at end of file
diff --git a/build/ace/test/mode/css_test.js b/build/ace/test/mode/css_test.js
deleted file mode 100644
index 360fbf11..00000000
--- a/build/ace/test/mode/css_test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define(function(b, c, e) {
- var f = b("ace/document").Document, g = b("ace/mode/css").Mode, a = b("../assertions");
- c = {setUp:function() {
- this.mode = new g
- }, "test: toggle comment lines should not do anything":function() {
- var d = new f(" abc\ncde\nfg");
- this.mode.toggleCommentLines("start", d, 0, 1);
- a.equal(" abc\ncde\nfg", d.toString())
- }, "test: lines should keep indentation":function() {
- a.equal(" ", this.mode.getNextLineIndent("start", " abc", " "));
- a.equal("\t", this.mode.getNextLineIndent("start", "\tabc", " "))
- }, "test: new line after { should increase indent":function() {
- a.equal(" ", this.mode.getNextLineIndent("start", " abc{", " "));
- a.equal("\t ", this.mode.getNextLineIndent("start", "\tabc { ", " "))
- }, "test: no indent increase after { in a comment":function() {
- a.equal(" ", this.mode.getNextLineIndent("start", " /*{", " "));
- a.equal(" ", this.mode.getNextLineIndent("start", " /*{ ", " "))
- }};
- e.exports = b("async/test").testcase(c)
-});
-if(module === require.main) {
- require("../../../support/paths");
- exports.exec()
-};
\ No newline at end of file
diff --git a/build/ace/test/mode/css_tokenizer_test.js b/build/ace/test/mode/css_tokenizer_test.js
deleted file mode 100644
index e3ef4566..00000000
--- a/build/ace/test/mode/css_tokenizer_test.js
+++ /dev/null
@@ -1,33 +0,0 @@
-define(function(c, d, e) {
- var f = c("ace/mode/css").Mode, b = c("../assertions");
- d = {setUp:function() {
- this.tokenizer = (new f).getTokenizer()
- }, "test: tokenize pixel number":function() {
- var a = this.tokenizer.getLineTokens("-12px", "start").tokens;
- b.equal(1, a.length);
- b.equal("constant.numeric", a[0].type)
- }, "test: tokenize hex3 color":function() {
- var a = this.tokenizer.getLineTokens("#abc", "start").tokens;
- b.equal(1, a.length);
- b.equal("constant.numeric", a[0].type)
- }, "test: tokenize hex6 color":function() {
- var a = this.tokenizer.getLineTokens("#abc012", "start").tokens;
- b.equal(1, a.length);
- b.equal("constant.numeric", a[0].type)
- }, "test: tokenize parens":function() {
- var a = this.tokenizer.getLineTokens("{()}", "start").tokens;
- b.equal(3, a.length);
- b.equal("lparen", a[0].type);
- b.equal("text", a[1].type);
- b.equal("rparen", a[2].type)
- }, "test for last rule in ruleset to catch capturing group bugs":function() {
- var a = this.tokenizer.getLineTokens("top", "start").tokens;
- b.equal(1, a.length);
- b.equal("support.type", a[0].type)
- }};
- e.exports = c("async/test").testcase(d, "css tokenizer")
-});
-if(module === require.main) {
- require("../../../support/paths");
- exports.exec()
-};
\ No newline at end of file
diff --git a/build/ace/test/mode/html_test.js b/build/ace/test/mode/html_test.js
deleted file mode 100644
index 7c52107c..00000000
--- a/build/ace/test/mode/html_test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define(function(a, c, e) {
- var f = a("ace/document").Document, g = a("ace/range").Range, h = a("ace/mode/html").Mode, b = a("../assertions");
- c = {setUp:function() {
- this.mode = new h
- }, "test: toggle comment lines should not do anything":function() {
- var d = new f([" abc", "cde", "fg"]);
- new g(0, 3, 1, 1);
- this.mode.toggleCommentLines("start", d, 0, 1);
- b.equal(" abc\ncde\nfg", d.toString())
- }, "test: next line indent should be the same as the current line indent":function() {
- b.equal(" ", this.mode.getNextLineIndent("start", " abc"));
- b.equal("", this.mode.getNextLineIndent("start", "abc"));
- b.equal("\t", this.mode.getNextLineIndent("start", "\tabc"))
- }};
- e.exports = a("async/test").testcase(c)
-});
-if(module === require.main) {
- require("../../../support/paths");
- exports.exec()
-};
\ No newline at end of file
diff --git a/build/ace/test/mode/html_tokenizer_test.js b/build/ace/test/mode/html_tokenizer_test.js
deleted file mode 100644
index 12b5ed6a..00000000
--- a/build/ace/test/mode/html_tokenizer_test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define(function(c, d, e) {
- var f = c("ace/mode/html").Mode, a = c("../assertions");
- d = {setUp:function() {
- this.tokenizer = (new f).getTokenizer()
- }, "test: tokenize embedded script":function() {
- var b = this.tokenizer.getLineTokens("
+
+
+