diff --git a/Makefile.dryice.js b/Makefile.dryice.js index 4f73c87a..48e90961 100755 --- a/Makefile.dryice.js +++ b/Makefile.dryice.js @@ -41,6 +41,9 @@ var ACE_HOME = __dirname; var BUILD_DIR = ACE_HOME + "/build"; function main(args) { + if (args.indexOf("updateModes") !== -1) { + return updateModes(); + } var type = "minimal"; args = args.map(function(x) { if (x[0] == "-" && x[1] != "-") @@ -258,10 +261,13 @@ function jsFileList(path, filter) { } function workers(path) { - return jsFileList(path).map(function(x) { - if (x.slice(-7) == "_worker") - return x.slice(0, -7); - }).filter(function(x) { return !!x; }); + return jsFileList(path).map(function(x) { + if (x.slice(-7) == "_worker") + return x.slice(0, -7); + }).filter(function(x) { return !!x; }); +} +function modeList() { + return jsFileList("lib/ace/mode", /_highlight_rules|_test|_worker|xml_util|_outdent|behaviour|completions/) } function addSuffix(options) { @@ -317,7 +323,7 @@ var buildAce = function(options) { noconflict: false, suffix: null, name: "ace", - modes: jsFileList("lib/ace/mode", /_highlight_rules|_test|_worker|xml_util|_outdent|behaviour|completions/), + modes: modeList(), themes: jsFileList("lib/ace/theme"), extensions: jsFileList("lib/ace/ext"), workers: workers("lib/ace/mode"), @@ -545,22 +551,25 @@ function generateThemesModule(themes) { } function inlineTextModules(text) { - var lastDep = ""; - return text.replace(/, *['"]ace\/requirejs\/text!(.*?)['"]|= *require\(['"](?:ace|[.\/]+)\/requirejs\/text!(.*?)['"]\)/g, function(_, dep, call) { + var deps = []; + return text.replace(/, *['"]ace\/requirejs\/text!(.*?)['"]| require\(['"](?:ace|[.\/]+)\/requirejs\/text!(.*?)['"]\)/g, function(_, dep, call) { if (dep) { - if (!lastDep) { - lastDep = dep; - return ""; - } + deps.push(dep); + return ""; } else if (call) { - call = textModules[lastDep]; - delete textModules[lastDep]; - lastDep = ""; + deps.some(function(d) { + if (d.split("/").pop() == call.split("/").pop()) { + dep = d; + return true; + } + }); + + call = textModules[dep]; + // if (deps.length > 1) + // console.log(call.length) if (call) - return "= " + call; + return " " + call; } - console.log(dep, lastDep, call); - throw "inlining of multiple text modules is not supported"; }); } @@ -657,6 +666,18 @@ function exportAce(ns, module, requireBase) { }; } +function updateModes() { + modeList().forEach(function(m) { + var filepath = __dirname + "/lib/ace/mode/" + m + ".js" + var source = fs.readFileSync(filepath, "utf8"); + if (!/this.\$id\s*=\s*"/.test(source)) + source = source.replace(/\n([ \t]*)(\}\).call\(\w*Mode.prototype\))/, '\n$1 this.$id = "";\n$1$2'); + + source = source.replace(/(this.\$id\s*=\s*)"[^"]*"/, '$1"ace/mode/' + m + '"'); + fs.writeFileSync(filepath, source, "utf8") + }) +} + if (!module.parent) main(process.argv); else diff --git a/lib/ace/ext/language_tools.js b/lib/ace/ext/language_tools.js index e5cd8bb4..e0ed0ec7 100644 --- a/lib/ace/ext/language_tools.js +++ b/lib/ace/ext/language_tools.js @@ -46,10 +46,9 @@ var keyWordCompleter = { var snippetCompleter = { getCompletions: function(editor, session, pos, prefix, callback) { - var scope = snippetManager.$getScope(editor); var snippetMap = snippetManager.snippetMap; var completions = []; - [scope, "_"].forEach(function(scope) { + snippetManager.getActiveScopes(editor).forEach(function(scope) { var snippets = snippetMap[scope] || []; for (var i = snippets.length; i--;) { var s = snippets[i]; @@ -80,22 +79,39 @@ var expandSnippet = { editor.execCommand("indent"); }, bindKey: "tab" -} +}; var onChangeMode = function(e, editor) { - var mode = editor.session.$mode; - var id = mode.$id - if (!snippetManager.files) snippetManager.files = {}; - if (id && !snippetManager.files[id]) { - var snippetFilePath = id.replace("mode", "snippets"); - config.loadModule(snippetFilePath, function(m) { - if (m) { - snippetManager.files[id] = m; - m.snippets = snippetManager.parseSnippetFile(m.snippetText); - snippetManager.register(m.snippets, m.scope); + loadSnippetsForMode(editor.session.$mode); +}; + +var loadSnippetsForMode = function(mode) { + var id = mode.$id; + if (!snippetManager.files) + snippetManager.files = {}; + loadSnippetFile(id); + if (mode.modes) + mode.modes.forEach(loadSnippetsForMode); +}; + +var loadSnippetFile = function(id) { + if (!id || snippetManager.files[id]) + return; + var snippetFilePath = id.replace("mode", "snippets"); + snippetManager.files[id] = {}; + config.loadModule(snippetFilePath, function(m) { + if (m) { + snippetManager.files[id] = m; + m.snippets = snippetManager.parseSnippetFile(m.snippetText); + snippetManager.register(m.snippets, m.scope); + if (m.includeScopes) { + snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes; + m.includeScopes.forEach(function(x) { + loadSnippetFile("ace/mode/" + x); + }); } - }); - } + } + }); }; var Editor = require("../editor").Editor; @@ -103,7 +119,7 @@ require("../config").defineOptions(Editor.prototype, "editor", { enableBasicAutocompletion: { set: function(val) { if (val) { - this.completers = completers + this.completers = completers; this.commands.addCommand(Autocomplete.startCommand); } else { this.commands.removeCommand(Autocomplete.startCommand); @@ -116,7 +132,7 @@ require("../config").defineOptions(Editor.prototype, "editor", { if (val) { this.commands.addCommand(expandSnippet); this.on("changeMode", onChangeMode); - onChangeMode(null, this) + onChangeMode(null, this); } else { this.commands.removeCommand(expandSnippet); this.off("changeMode", onChangeMode); diff --git a/lib/ace/mode/abap.js b/lib/ace/mode/abap.js index 6ec54c07..020837a2 100644 --- a/lib/ace/mode/abap.js +++ b/lib/ace/mode/abap.js @@ -70,6 +70,7 @@ oop.inherits(Mode, TextMode); } }; + this.$id = "ace/mode/abap"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/actionscript.js b/lib/ace/mode/actionscript.js index 47b9345d..081fa284 100644 --- a/lib/ace/mode/actionscript.js +++ b/lib/ace/mode/actionscript.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/actionscript"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ada.js b/lib/ace/mode/ada.js index d368bfdd..a50d5f61 100644 --- a/lib/ace/mode/ada.js +++ b/lib/ace/mode/ada.js @@ -46,6 +46,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "--"; + this.$id = "ace/mode/ada"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/asciidoc.js b/lib/ace/mode/asciidoc.js index 02979f54..45027c8b 100644 --- a/lib/ace/mode/asciidoc.js +++ b/lib/ace/mode/asciidoc.js @@ -58,6 +58,7 @@ oop.inherits(Mode, TextMode); return this.$getIndent(line); } }; + this.$id = "ace/mode/asciidoc"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/assembly_x86.js b/lib/ace/mode/assembly_x86.js index 26989198..e6055183 100644 --- a/lib/ace/mode/assembly_x86.js +++ b/lib/ace/mode/assembly_x86.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = ";"; + this.$id = "ace/mode/assembly_x86"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/autohotkey.js b/lib/ace/mode/autohotkey.js index 2a9ecee5..4402469e 100644 --- a/lib/ace/mode/autohotkey.js +++ b/lib/ace/mode/autohotkey.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "/\\*"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/autohotkey"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/batchfile.js b/lib/ace/mode/batchfile.js index 2f10957f..72d157e8 100644 --- a/lib/ace/mode/batchfile.js +++ b/lib/ace/mode/batchfile.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "::"; this.blockComment = ""; + this.$id = "ace/mode/batchfile"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/c9search.js b/lib/ace/mode/c9search.js index 18cfdd40..10c3ade2 100644 --- a/lib/ace/mode/c9search.js +++ b/lib/ace/mode/c9search.js @@ -60,6 +60,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/c9search"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/c_cpp.js b/lib/ace/mode/c_cpp.js index 08ccf0bb..faf4731d 100644 --- a/lib/ace/mode/c_cpp.js +++ b/lib/ace/mode/c_cpp.js @@ -95,6 +95,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/c_cpp"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/clojure.js b/lib/ace/mode/clojure.js index 71f842e7..4fadb5ec 100644 --- a/lib/ace/mode/clojure.js +++ b/lib/ace/mode/clojure.js @@ -80,6 +80,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/clojure"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/cobol.js b/lib/ace/mode/cobol.js index a705d9bd..1502993a 100644 --- a/lib/ace/mode/cobol.js +++ b/lib/ace/mode/cobol.js @@ -46,6 +46,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "*"; + this.$id = "ace/mode/cobol"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/coffee.js b/lib/ace/mode/coffee.js index 72ed0960..de331204 100644 --- a/lib/ace/mode/coffee.js +++ b/lib/ace/mode/coffee.js @@ -107,6 +107,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/coffee"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/coldfusion.js b/lib/ace/mode/coldfusion.js index 25a2b17a..b188ae54 100644 --- a/lib/ace/mode/coldfusion.js +++ b/lib/ace/mode/coldfusion.js @@ -56,6 +56,7 @@ oop.inherits(Mode, XmlMode); return this.$getIndent(line); }; + this.$id = "ace/mode/coldfusion"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/csharp.js b/lib/ace/mode/csharp.js index 95846a4c..4b0709ef 100644 --- a/lib/ace/mode/csharp.js +++ b/lib/ace/mode/csharp.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); return null; }; + this.$id = "ace/mode/csharp"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/css.js b/lib/ace/mode/css.js index 9a4234c6..6ef2dfdd 100644 --- a/lib/ace/mode/css.js +++ b/lib/ace/mode/css.js @@ -93,6 +93,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/css"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/curly.js b/lib/ace/mode/curly.js index c98ab2e9..60246dad 100644 --- a/lib/ace/mode/curly.js +++ b/lib/ace/mode/curly.js @@ -57,6 +57,7 @@ var Mode = function() { oop.inherits(Mode, HtmlMode); (function() { + this.$id = "ace/mode/curly"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/d.js b/lib/ace/mode/d.js index 26803662..7c1551d9 100644 --- a/lib/ace/mode/d.js +++ b/lib/ace/mode/d.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "/\\+"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/d"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/dart.js b/lib/ace/mode/dart.js index a94e33cd..0df4ca99 100644 --- a/lib/ace/mode/dart.js +++ b/lib/ace/mode/dart.js @@ -56,6 +56,7 @@ oop.inherits(Mode, CMode); (function() { this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/dart"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/diff.js b/lib/ace/mode/diff.js index 24e156e3..18cb0dbd 100644 --- a/lib/ace/mode/diff.js +++ b/lib/ace/mode/diff.js @@ -45,6 +45,7 @@ oop.inherits(Mode, TextMode); (function() { + this.$id = "ace/mode/diff"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/dot.js b/lib/ace/mode/dot.js index 116b2d27..67fd0a79 100644 --- a/lib/ace/mode/dot.js +++ b/lib/ace/mode/dot.js @@ -49,6 +49,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/dot"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ejs.js b/lib/ace/mode/ejs.js index 50293e90..34ee8701 100644 --- a/lib/ace/mode/ejs.js +++ b/lib/ace/mode/ejs.js @@ -103,6 +103,7 @@ oop.inherits(Mode, HtmlMode); (function() { + this.$id = "ace/mode/ejs"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/erlang.js b/lib/ace/mode/erlang.js index d3d2e42e..b9203cd3 100644 --- a/lib/ace/mode/erlang.js +++ b/lib/ace/mode/erlang.js @@ -51,6 +51,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "%"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/erlang"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/forth.js b/lib/ace/mode/forth.js index 1ee65e20..53b5b491 100644 --- a/lib/ace/mode/forth.js +++ b/lib/ace/mode/forth.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "(?<=^|\\s)\\.?\\( [^)]*\\)"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/forth"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ftl.js b/lib/ace/mode/ftl.js index a07dcaac..c326423a 100644 --- a/lib/ace/mode/ftl.js +++ b/lib/ace/mode/ftl.js @@ -43,6 +43,7 @@ oop.inherits(Mode, TextMode); (function() { + this.$id = "ace/mode/ftl"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/golang.js b/lib/ace/mode/golang.js index 62b68755..9b2c646d 100644 --- a/lib/ace/mode/golang.js +++ b/lib/ace/mode/golang.js @@ -49,6 +49,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/golang"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/groovy.js b/lib/ace/mode/groovy.js index 91d88e08..b2becde8 100644 --- a/lib/ace/mode/groovy.js +++ b/lib/ace/mode/groovy.js @@ -18,6 +18,7 @@ oop.inherits(Mode, JavaScriptMode); return null; }; + this.$id = "ace/mode/groovy"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/haml.js b/lib/ace/mode/haml.js index 23ea9e69..7625b038 100644 --- a/lib/ace/mode/haml.js +++ b/lib/ace/mode/haml.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = ["//", "#"]; + this.$id = "ace/mode/haml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/handlebars.js b/lib/ace/mode/handlebars.js index 55af534c..2346d5e2 100644 --- a/lib/ace/mode/handlebars.js +++ b/lib/ace/mode/handlebars.js @@ -23,6 +23,7 @@ oop.inherits(Mode, HtmlMode); (function() { + this.$id = "ace/mode/handlebars"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/haskell.js b/lib/ace/mode/haskell.js index 5b36905c..f817c777 100644 --- a/lib/ace/mode/haskell.js +++ b/lib/ace/mode/haskell.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "--"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/haskell"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/haxe.js b/lib/ace/mode/haxe.js index 138df420..aefdcd1b 100644 --- a/lib/ace/mode/haxe.js +++ b/lib/ace/mode/haxe.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/haxe"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/html.js b/lib/ace/mode/html.js index 90854002..cd6807c1 100644 --- a/lib/ace/mode/html.js +++ b/lib/ace/mode/html.js @@ -71,6 +71,7 @@ oop.inherits(Mode, TextMode); return this.$completer.getCompletions(state, session, pos, prefix); }; + this.$id = "ace/mode/html"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/html_ruby.js b/lib/ace/mode/html_ruby.js index 876f3671..dc25293a 100644 --- a/lib/ace/mode/html_ruby.js +++ b/lib/ace/mode/html_ruby.js @@ -53,6 +53,7 @@ oop.inherits(Mode, HtmlMode); (function() { + this.$id = "ace/mode/html_ruby"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ini.js b/lib/ace/mode/ini.js index f5eae3a3..6a353dc7 100644 --- a/lib/ace/mode/ini.js +++ b/lib/ace/mode/ini.js @@ -47,6 +47,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = ";"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/ini"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/jack.js b/lib/ace/mode/jack.js index 1ea02c24..ea0fd72a 100644 --- a/lib/ace/mode/jack.js +++ b/lib/ace/mode/jack.js @@ -73,6 +73,7 @@ oop.inherits(Mode, TextMode); }; + this.$id = "ace/mode/jack"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/jade.js b/lib/ace/mode/jade.js index 74025633..3ce53d14 100644 --- a/lib/ace/mode/jade.js +++ b/lib/ace/mode/jade.js @@ -51,6 +51,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "//"; + this.$id = "ace/mode/jade"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/java.js b/lib/ace/mode/java.js index 8d37e00e..4034a88a 100644 --- a/lib/ace/mode/java.js +++ b/lib/ace/mode/java.js @@ -18,6 +18,7 @@ oop.inherits(Mode, JavaScriptMode); return null; }; + this.$id = "ace/mode/java"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/javascript.js b/lib/ace/mode/javascript.js index 7bfce443..ed2616e8 100644 --- a/lib/ace/mode/javascript.js +++ b/lib/ace/mode/javascript.js @@ -110,6 +110,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/javascript"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/json.js b/lib/ace/mode/json.js index 1f92c56d..c1a64ec6 100644 --- a/lib/ace/mode/json.js +++ b/lib/ace/mode/json.js @@ -87,6 +87,7 @@ oop.inherits(Mode, TextMode); }; + this.$id = "ace/mode/json"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/jsoniq.js b/lib/ace/mode/jsoniq.js index f269da1e..99f3e520 100644 --- a/lib/ace/mode/jsoniq.js +++ b/lib/ace/mode/jsoniq.js @@ -100,6 +100,7 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + this.$id = "ace/mode/jsoniq"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/jsp.js b/lib/ace/mode/jsp.js index 03df8d3c..bf560eee 100644 --- a/lib/ace/mode/jsp.js +++ b/lib/ace/mode/jsp.js @@ -49,6 +49,7 @@ oop.inherits(Mode, TextMode); (function() { + this.$id = "ace/mode/jsp"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/jsx.js b/lib/ace/mode/jsx.js index 999a9777..89c91e6e 100644 --- a/lib/ace/mode/jsx.js +++ b/lib/ace/mode/jsx.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/jsx"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/julia.js b/lib/ace/mode/julia.js index a85ba2f0..ebf60504 100644 --- a/lib/ace/mode/julia.js +++ b/lib/ace/mode/julia.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "#"; this.blockComment = ""; + this.$id = "ace/mode/julia"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/latex.js b/lib/ace/mode/latex.js index 6d932a6a..743105b3 100644 --- a/lib/ace/mode/latex.js +++ b/lib/ace/mode/latex.js @@ -17,6 +17,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "%"; + this.$id = "ace/mode/latex"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/less.js b/lib/ace/mode/less.js index ac40a0a6..aaa9ab78 100644 --- a/lib/ace/mode/less.js +++ b/lib/ace/mode/less.js @@ -77,6 +77,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/less"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/liquid.js b/lib/ace/mode/liquid.js index 490be895..c8383fdb 100644 --- a/lib/ace/mode/liquid.js +++ b/lib/ace/mode/liquid.js @@ -76,6 +76,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/liquid"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/lisp.js b/lib/ace/mode/lisp.js index 3762c171..59f3bf31 100644 --- a/lib/ace/mode/lisp.js +++ b/lib/ace/mode/lisp.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = ";"; + this.$id = "ace/mode/lisp"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/logiql.js b/lib/ace/mode/logiql.js index 5abf7c83..b65358d1 100644 --- a/lib/ace/mode/logiql.js +++ b/lib/ace/mode/logiql.js @@ -133,6 +133,7 @@ oop.inherits(Mode, TextMode); var row = it.getCurrentTokenRow(); return new Range(row, col, row, col + tok.value.length); }; + this.$id = "ace/mode/logiql"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/lsl.js b/lib/ace/mode/lsl.js index 49ecd534..82fa5223 100644 --- a/lib/ace/mode/lsl.js +++ b/lib/ace/mode/lsl.js @@ -86,6 +86,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/lsl"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/lua.js b/lib/ace/mode/lua.js index 92468242..fa870ffd 100644 --- a/lib/ace/mode/lua.js +++ b/lib/ace/mode/lua.js @@ -160,6 +160,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/lua"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/makefile.js b/lib/ace/mode/makefile.js index bd53cc32..4b95d630 100644 --- a/lib/ace/mode/makefile.js +++ b/lib/ace/mode/makefile.js @@ -57,6 +57,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "#"; this.$indentWithTabs = true; + this.$id = "ace/mode/makefile"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/markdown.js b/lib/ace/mode/markdown.js index f2371229..e7d38ff1 100644 --- a/lib/ace/mode/markdown.js +++ b/lib/ace/mode/markdown.js @@ -70,6 +70,7 @@ oop.inherits(Mode, TextMode); return this.$getIndent(line); } }; + this.$id = "ace/mode/markdown"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/matlab.js b/lib/ace/mode/matlab.js index ca56b44a..ca1d3e97 100644 --- a/lib/ace/mode/matlab.js +++ b/lib/ace/mode/matlab.js @@ -47,6 +47,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "%"; this.blockComment = {start: "%{", end: "%}"}; + this.$id = "ace/mode/matlab"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/mushcode.js b/lib/ace/mode/mushcode.js index bdaeeb4e..42e85040 100644 --- a/lib/ace/mode/mushcode.js +++ b/lib/ace/mode/mushcode.js @@ -107,6 +107,7 @@ oop.inherits(Mode, TextMode); doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); }; + this.$id = "ace/mode/mushcode"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/mysql.js b/lib/ace/mode/mysql.js index 2f9754a3..567541f5 100644 --- a/lib/ace/mode/mysql.js +++ b/lib/ace/mode/mysql.js @@ -45,6 +45,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = ["--", "#"]; // todo space this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/mysql"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/nix.js b/lib/ace/mode/nix.js index a745aca3..b7583af6 100644 --- a/lib/ace/mode/nix.js +++ b/lib/ace/mode/nix.js @@ -56,6 +56,7 @@ oop.inherits(Mode, CMode); (function() { this.lineCommentStart = "#"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/nix"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/objectivec.js b/lib/ace/mode/objectivec.js index 76fdf143..e982c9ae 100644 --- a/lib/ace/mode/objectivec.js +++ b/lib/ace/mode/objectivec.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/objectivec"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ocaml.js b/lib/ace/mode/ocaml.js index 1f69977a..189f0f60 100644 --- a/lib/ace/mode/ocaml.js +++ b/lib/ace/mode/ocaml.js @@ -90,6 +90,7 @@ var indenter = /(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/; this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/ocaml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/pascal.js b/lib/ace/mode/pascal.js index cabdb0dc..a40b8156 100644 --- a/lib/ace/mode/pascal.js +++ b/lib/ace/mode/pascal.js @@ -61,6 +61,7 @@ oop.inherits(Mode, TextMode); {start: "{", end: "}"} ]; + this.$id = "ace/mode/pascal"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/perl.js b/lib/ace/mode/perl.js index e8d930bc..7cb54e74 100644 --- a/lib/ace/mode/perl.js +++ b/lib/ace/mode/perl.js @@ -84,6 +84,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/perl"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/pgsql.js b/lib/ace/mode/pgsql.js index cdcf109a..36e9531c 100755 --- a/lib/ace/mode/pgsql.js +++ b/lib/ace/mode/pgsql.js @@ -53,6 +53,7 @@ oop.inherits(Mode, TextMode); } } + this.$id = "ace/mode/pgsql"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/php.js b/lib/ace/mode/php.js index 18aecb66..d516422f 100644 --- a/lib/ace/mode/php.js +++ b/lib/ace/mode/php.js @@ -129,6 +129,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/php"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/plain_text.js b/lib/ace/mode/plain_text.js index f8e61c66..8ac3c4c0 100644 --- a/lib/ace/mode/plain_text.js +++ b/lib/ace/mode/plain_text.js @@ -49,6 +49,7 @@ oop.inherits(Mode, TextMode); this.getNextLineIndent = function(state, line, tab) { return ''; }; + this.$id = "ace/mode/plain_text"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/powershell.js b/lib/ace/mode/powershell.js index 8cc55684..3177c19a 100644 --- a/lib/ace/mode/powershell.js +++ b/lib/ace/mode/powershell.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); return null; }; + this.$id = "ace/mode/powershell"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/prolog.js b/lib/ace/mode/prolog.js index 010057d9..5a054baa 100644 --- a/lib/ace/mode/prolog.js +++ b/lib/ace/mode/prolog.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "%"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/prolog"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/protobuf.js b/lib/ace/mode/protobuf.js index a3660bd0..997c4f68 100644 --- a/lib/ace/mode/protobuf.js +++ b/lib/ace/mode/protobuf.js @@ -60,6 +60,7 @@ oop.inherits(Mode, CMode); // Extra logic goes here. this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/protobuf"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/python.js b/lib/ace/mode/python.js index d561c084..fa4ea2b0 100644 --- a/lib/ace/mode/python.js +++ b/lib/ace/mode/python.js @@ -107,6 +107,7 @@ oop.inherits(Mode, TextMode); doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); }; + this.$id = "ace/mode/python"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/r.js b/lib/ace/mode/r.js index c21a16e7..dfb326aa 100644 --- a/lib/ace/mode/r.js +++ b/lib/ace/mode/r.js @@ -149,6 +149,7 @@ define(function(require, exports, module) { } return false; };*/ + this.$id = "ace/mode/r"; }).call(Mode.prototype); exports.Mode = Mode; }); diff --git a/lib/ace/mode/rdoc.js b/lib/ace/mode/rdoc.js index 8d3e90a6..13e9ff21 100644 --- a/lib/ace/mode/rdoc.js +++ b/lib/ace/mode/rdoc.js @@ -55,6 +55,7 @@ oop.inherits(Mode, TextMode); this.getNextLineIndent = function(state, line, tab) { return this.$getIndent(line); }; + this.$id = "ace/mode/rdoc"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/rhtml.js b/lib/ace/mode/rhtml.js index a111f934..84af5312 100644 --- a/lib/ace/mode/rhtml.js +++ b/lib/ace/mode/rhtml.js @@ -80,6 +80,7 @@ oop.inherits(Mode, HtmlMode); return this.codeModel.getNextLineIndent(row, line, state, tab, tabSize); }; */ + this.$id = "ace/mode/rhtml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/ruby.js b/lib/ace/mode/ruby.js index 7d14bb57..c10ca247 100644 --- a/lib/ace/mode/ruby.js +++ b/lib/ace/mode/ruby.js @@ -85,6 +85,7 @@ oop.inherits(Mode, TextMode); doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); }; + this.$id = "ace/mode/ruby"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/rust.js b/lib/ace/mode/rust.js index 2a468568..de1bd417 100644 --- a/lib/ace/mode/rust.js +++ b/lib/ace/mode/rust.js @@ -56,6 +56,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "/\\*"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/rust"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/sass.js b/lib/ace/mode/sass.js index de78c71b..883be140 100644 --- a/lib/ace/mode/sass.js +++ b/lib/ace/mode/sass.js @@ -45,6 +45,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "//"; + this.$id = "ace/mode/sass"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/scad.js b/lib/ace/mode/scad.js index ca8dc959..0a79f63e 100644 --- a/lib/ace/mode/scad.js +++ b/lib/ace/mode/scad.js @@ -93,6 +93,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/scad"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/scala.js b/lib/ace/mode/scala.js index 5253cec9..7788c1a9 100644 --- a/lib/ace/mode/scala.js +++ b/lib/ace/mode/scala.js @@ -19,6 +19,7 @@ oop.inherits(Mode, JavaScriptMode); return null; }; + this.$id = "ace/mode/scala"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/scheme.js b/lib/ace/mode/scheme.js index 4accf238..96814452 100644 --- a/lib/ace/mode/scheme.js +++ b/lib/ace/mode/scheme.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = ";"; + this.$id = "ace/mode/scheme"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/scss.js b/lib/ace/mode/scss.js index 111f71aa..70c8ed69 100644 --- a/lib/ace/mode/scss.js +++ b/lib/ace/mode/scss.js @@ -77,6 +77,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/scss"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/sh.js b/lib/ace/mode/sh.js index 7620deee..7b20109d 100644 --- a/lib/ace/mode/sh.js +++ b/lib/ace/mode/sh.js @@ -108,6 +108,7 @@ oop.inherits(Mode, TextMode); doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); }; + this.$id = "ace/mode/sh"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/sjs.js b/lib/ace/mode/sjs.js index e075d60b..e73b62fc 100644 --- a/lib/ace/mode/sjs.js +++ b/lib/ace/mode/sjs.js @@ -53,6 +53,7 @@ oop.inherits(Mode, JSMode); this.createWorker = function(session) { return null; } + this.$id = "ace/mode/sjs"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/snippets.js b/lib/ace/mode/snippets.js index 865e0b3a..faf2000a 100644 --- a/lib/ace/mode/snippets.js +++ b/lib/ace/mode/snippets.js @@ -105,6 +105,7 @@ oop.inherits(Mode, TextMode); (function() { this.$indentWithTabs = true; + this.$id = "ace/mode/snippets"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/soy_template.js b/lib/ace/mode/soy_template.js index 493c49ce..95290e9d 100644 --- a/lib/ace/mode/soy_template.js +++ b/lib/ace/mode/soy_template.js @@ -54,6 +54,7 @@ oop.inherits(Mode, HtmlMode); (function() { this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/soy_template"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/space.js b/lib/ace/mode/space.js index 3210298c..c82b3ccd 100644 --- a/lib/ace/mode/space.js +++ b/lib/ace/mode/space.js @@ -16,6 +16,7 @@ var Mode = function() { oop.inherits(Mode, TextMode); (function() { + this.$id = "ace/mode/space"; }).call(Mode.prototype); exports.Mode = Mode; }); diff --git a/lib/ace/mode/sql.js b/lib/ace/mode/sql.js index d10a4727..100f539b 100644 --- a/lib/ace/mode/sql.js +++ b/lib/ace/mode/sql.js @@ -46,6 +46,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "--"; + this.$id = "ace/mode/sql"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/stylus.js b/lib/ace/mode/stylus.js index e33220b5..677a095c 100644 --- a/lib/ace/mode/stylus.js +++ b/lib/ace/mode/stylus.js @@ -53,6 +53,7 @@ var Mode = function() { oop.inherits(Mode, TextMode); (function() { + this.$id = "ace/mode/stylus"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/svg.js b/lib/ace/mode/svg.js index 0ca57e10..d9892f9f 100644 --- a/lib/ace/mode/svg.js +++ b/lib/ace/mode/svg.js @@ -63,6 +63,7 @@ oop.inherits(Mode, XmlMode); }; + this.$id = "ace/mode/svg"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/tcl.js b/lib/ace/mode/tcl.js index c8e7c436..b1618a4a 100644 --- a/lib/ace/mode/tcl.js +++ b/lib/ace/mode/tcl.js @@ -78,6 +78,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/tcl"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/tex.js b/lib/ace/mode/tex.js index cf7b7373..eebb1b4d 100644 --- a/lib/ace/mode/tex.js +++ b/lib/ace/mode/tex.js @@ -62,6 +62,7 @@ oop.inherits(Mode, TextMode); this.allowAutoInsert = function() { return false; }; + this.$id = "ace/mode/tex"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/text.js b/lib/ace/mode/text.js index b853c52d..d04fed78 100644 --- a/lib/ace/mode/text.js +++ b/lib/ace/mode/text.js @@ -378,6 +378,7 @@ var Mode = function() { }); }; + this.$id = "ace/mode/text"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/textile.js b/lib/ace/mode/textile.js index 0c9a86bb..94f769df 100644 --- a/lib/ace/mode/textile.js +++ b/lib/ace/mode/textile.js @@ -59,6 +59,7 @@ oop.inherits(Mode, TextMode); this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/textile"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/toml.js b/lib/ace/mode/toml.js index c277b84d..704c5929 100644 --- a/lib/ace/mode/toml.js +++ b/lib/ace/mode/toml.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "#"; + this.$id = "ace/mode/toml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/twig.js b/lib/ace/mode/twig.js index 06e4faa1..1a07f7a5 100644 --- a/lib/ace/mode/twig.js +++ b/lib/ace/mode/twig.js @@ -86,6 +86,7 @@ oop.inherits(Mode, TextMode); this.autoOutdent = function(state, doc, row) { this.$outdent.autoOutdent(doc, row); }; + this.$id = "ace/mode/twig"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/typescript.js b/lib/ace/mode/typescript.js index 32d24c31..54bd71b2 100644 --- a/lib/ace/mode/typescript.js +++ b/lib/ace/mode/typescript.js @@ -56,6 +56,7 @@ oop.inherits(Mode, jsMode); this.createWorker = function(session) { return null; }; + this.$id = "ace/mode/typescript"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/vbscript.js b/lib/ace/mode/vbscript.js index 8060445d..89b16613 100644 --- a/lib/ace/mode/vbscript.js +++ b/lib/ace/mode/vbscript.js @@ -54,6 +54,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = ["'", "REM"]; + this.$id = "ace/mode/vbscript"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/velocity.js b/lib/ace/mode/velocity.js index c76859f5..30dc59dc 100644 --- a/lib/ace/mode/velocity.js +++ b/lib/ace/mode/velocity.js @@ -53,6 +53,7 @@ oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "##"; this.blockComment = {start: "#*", end: "*#"}; + this.$id = "ace/mode/velocity"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/verilog.js b/lib/ace/mode/verilog.js index 67e9049e..bc08331d 100644 --- a/lib/ace/mode/verilog.js +++ b/lib/ace/mode/verilog.js @@ -47,6 +47,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "//"; this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/verilog"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/vhdl.js b/lib/ace/mode/vhdl.js index 13245e0c..7c2c25ef 100644 --- a/lib/ace/mode/vhdl.js +++ b/lib/ace/mode/vhdl.js @@ -45,6 +45,7 @@ oop.inherits(Mode, TextMode); this.lineCommentStart = "--"; + this.$id = "ace/mode/vhdl"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/xml.js b/lib/ace/mode/xml.js index c6e18fc6..171a01cf 100644 --- a/lib/ace/mode/xml.js +++ b/lib/ace/mode/xml.js @@ -50,6 +50,7 @@ oop.inherits(Mode, TextMode); this.blockComment = {start: ""}; + this.$id = "ace/mode/xml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/xquery.js b/lib/ace/mode/xquery.js index f316b901..7512b95e 100644 --- a/lib/ace/mode/xquery.js +++ b/lib/ace/mode/xquery.js @@ -133,6 +133,7 @@ oop.inherits(Mode, TextMode); return worker; }; + this.$id = "ace/mode/xquery"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/yaml.js b/lib/ace/mode/yaml.js index ec0628ae..f81971fe 100644 --- a/lib/ace/mode/yaml.js +++ b/lib/ace/mode/yaml.js @@ -71,6 +71,7 @@ oop.inherits(Mode, TextMode); }; + this.$id = "ace/mode/yaml"; }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/snippets.js b/lib/ace/snippets.js index 50c32383..ee1a5498 100644 --- a/lib/ace/snippets.js +++ b/lib/ace/snippets.js @@ -396,16 +396,26 @@ var SnippetManager = function() { return scope; }; + this.getActiveScopes = function(editor) { + var scope = this.$getScope(editor); + var scopes = [scope]; + var snippetMap = this.snippetMap; + if (snippetMap[scope] && snippetMap[scope].includeScopes) { + scopes.push.apply(scopes, snippetMap[scope].includeScopes); + } + scopes.push("_"); + return scopes; + }; + this.expandWithTab = function(editor) { var cursor = editor.getCursorPosition(); var line = editor.session.getLine(cursor.row); var before = line.substring(0, cursor.column); var after = line.substr(cursor.column); - var scope = this.$getScope(editor); var snippetMap = this.snippetMap; var snippet; - [scope, "_"].some(function(scope) { + this.getActiveScopes(editor).some(function(scope) { var snippets = snippetMap[scope]; if (snippets) snippet = this.findMatchingSnippet(snippets, before, after); @@ -562,10 +572,9 @@ var SnippetManager = function() { return list; }; this.getSnippetByName = function(name, editor) { - var scope = editor && this.$getScope(editor); var snippetMap = this.snippetNameMap; var snippet; - [scope, "_"].some(function(scope) { + this.getActiveScopes(editor).some(function(scope) { var snippets = snippetMap[scope]; if (snippets) snippet = snippets[name]; @@ -800,6 +809,10 @@ var TabstopManager = function(editor) { this.keyboardHandler = new HashHandler(); this.keyboardHandler.bindKeys({ "Tab": function(ed) { + if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) { + return; + } + ed.tabstopManager.tabNext(1); }, "Shift-Tab": function(ed) { diff --git a/lib/ace/snippets/javascript.js b/lib/ace/snippets/javascript.js index bf59ba85..ed832d74 100644 --- a/lib/ace/snippets/javascript.js +++ b/lib/ace/snippets/javascript.js @@ -1,7 +1,9 @@ define(function(require, exports, module) { "use strict"; -exports.snippetText = require("../requirejs/text!./javascript.snippets"); +exports.snippetText = require("../requirejs/text!./javascript-jquery.snippets") + + "\n" + + require("../requirejs/text!./javascript.snippets"); exports.scope = "javascript"; }); diff --git a/lib/ace/snippets/velocity.js b/lib/ace/snippets/velocity.js index ef59f621..ba522dd2 100644 --- a/lib/ace/snippets/velocity.js +++ b/lib/ace/snippets/velocity.js @@ -3,5 +3,6 @@ define(function(require, exports, module) { exports.snippetText = require("../requirejs/text!./velocity.snippets"); exports.scope = "velocity"; +exports.includeScopes = ["html", "javascript", "css"]; });