From c0f9226078c4a8155fda9d4c8431cca17feb9a9c Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 13 Dec 2015 13:26:38 +0400 Subject: [PATCH] update ace --- node_modules/ace/lib/ace/autocomplete.js | 6 +- node_modules/ace/lib/ace/autocomplete/util.js | 15 ++ .../ace/lib/ace/ext/language_tools.js | 20 +- node_modules/ace/lib/ace/ext/modelist.js | 7 +- node_modules/ace/lib/ace/keyboard/vim.js | 33 ++-- node_modules/ace/lib/ace/keyboard/vim_test.js | 30 ++- .../ace/mode/_test/highlight_rules_test.js | 40 +++- .../lib/ace/mode/_test/text_javascript.txt | 6 +- .../ace/lib/ace/mode/_test/tokens_c_cpp.json | 5 +- .../lib/ace/mode/_test/tokens_javascript.json | 26 ++- .../lib/ace/mode/_test/tokens_objectivec.json | 9 +- .../ace/lib/ace/mode/c_cpp_highlight_rules.js | 50 +++-- .../lib/ace/mode/csharp_highlight_rules.js | 6 + node_modules/ace/lib/ace/mode/gobstones.js | 25 +++ .../lib/ace/mode/gobstones_highlight_rules.js | 112 ++++++++++++ .../lib/ace/mode/golang_highlight_rules.js | 2 +- .../ace/lib/ace/mode/html_completions.js | 4 +- .../ace/lib/ace/mode/jade_highlight_rules.js | 11 +- .../ace/mode/javascript_highlight_rules.js | 2 - node_modules/ace/lib/ace/mode/nsis.js | 57 ++++++ .../ace/lib/ace/mode/nsis_highlight_rules.js | 173 ++++++++++++++++++ node_modules/ace/lib/ace/mode/wollok.js | 25 +++ .../lib/ace/mode/wollok_highlight_rules.js | 97 ++++++++++ .../ace/lib/ace/snippets/gobstones.js | 7 + .../ace/lib/ace/snippets/gobstones.snippets | 34 ++++ .../ace/lib/ace/snippets/html_elixir.js | 7 + .../ace/lib/ace/snippets/html_elixir.snippets | 0 node_modules/ace/lib/ace/snippets/mask.js | 7 + .../ace/lib/ace/snippets/mask.snippets | 0 node_modules/ace/lib/ace/snippets/nsis.js | 7 + node_modules/ace/lib/ace/snippets/swift.js | 7 + .../ace/lib/ace/snippets/swift.snippets | 0 node_modules/ace/lib/ace/snippets/swig.js | 7 + .../ace/lib/ace/snippets/swig.snippets | 0 node_modules/ace/lib/ace/snippets/wollok.js | 7 + .../ace/lib/ace/snippets/wollok.snippets | 85 +++++++++ 36 files changed, 823 insertions(+), 106 deletions(-) create mode 100644 node_modules/ace/lib/ace/mode/gobstones.js create mode 100644 node_modules/ace/lib/ace/mode/gobstones_highlight_rules.js create mode 100644 node_modules/ace/lib/ace/mode/nsis.js create mode 100644 node_modules/ace/lib/ace/mode/nsis_highlight_rules.js create mode 100644 node_modules/ace/lib/ace/mode/wollok.js create mode 100644 node_modules/ace/lib/ace/mode/wollok_highlight_rules.js create mode 100644 node_modules/ace/lib/ace/snippets/gobstones.js create mode 100644 node_modules/ace/lib/ace/snippets/gobstones.snippets create mode 100644 node_modules/ace/lib/ace/snippets/html_elixir.js create mode 100644 node_modules/ace/lib/ace/snippets/html_elixir.snippets create mode 100644 node_modules/ace/lib/ace/snippets/mask.js create mode 100644 node_modules/ace/lib/ace/snippets/mask.snippets create mode 100644 node_modules/ace/lib/ace/snippets/nsis.js create mode 100644 node_modules/ace/lib/ace/snippets/swift.js create mode 100644 node_modules/ace/lib/ace/snippets/swift.snippets create mode 100644 node_modules/ace/lib/ace/snippets/swig.js create mode 100644 node_modules/ace/lib/ace/snippets/swig.snippets create mode 100644 node_modules/ace/lib/ace/snippets/wollok.js create mode 100644 node_modules/ace/lib/ace/snippets/wollok.snippets diff --git a/node_modules/ace/lib/ace/autocomplete.js b/node_modules/ace/lib/ace/autocomplete.js index bb3fe04b..092b76cf 100644 --- a/node_modules/ace/lib/ace/autocomplete.js +++ b/node_modules/ace/lib/ace/autocomplete.js @@ -226,7 +226,7 @@ var Autocomplete = function() { var pos = editor.getCursorPosition(); var line = session.getLine(pos.row); - var prefix = util.retrievePrecedingIdentifier(line, pos.column); + var prefix = util.getCompletionPrefix(editor); this.base = session.doc.createAnchor(pos.row, pos.column - prefix.length); this.base.$insertRight = true; @@ -235,13 +235,13 @@ var Autocomplete = function() { var total = editor.completers.length; editor.completers.forEach(function(completer, i) { completer.getCompletions(editor, session, pos, prefix, function(err, results) { - if (!err) + if (!err && results) matches = matches.concat(results); // Fetch prefix again, because they may have changed by now var pos = editor.getCursorPosition(); var line = session.getLine(pos.row); callback(null, { - prefix: util.retrievePrecedingIdentifier(line, pos.column, results[0] && results[0].identifierRegex), + prefix: prefix, matches: matches, finished: (--total === 0) }); diff --git a/node_modules/ace/lib/ace/autocomplete/util.js b/node_modules/ace/lib/ace/autocomplete/util.js index 767b983e..7e1d7f5e 100644 --- a/node_modules/ace/lib/ace/autocomplete/util.js +++ b/node_modules/ace/lib/ace/autocomplete/util.js @@ -71,4 +71,19 @@ exports.retrieveFollowingIdentifier = function(text, pos, regex) { return buf; }; +exports.getCompletionPrefix = function (editor) { + var pos = editor.getCursorPosition(); + var line = editor.session.getLine(pos.row); + var prefix; + editor.completers.forEach(function(completer) { + if (completer.identifierRegexps) { + completer.identifierRegexps.forEach(function(identifierRegex) { + if (!prefix && identifierRegex) + prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex); + }.bind(this)); + } + }.bind(this)); + return prefix || this.retrievePrecedingIdentifier(line, pos.column); +}; + }); diff --git a/node_modules/ace/lib/ace/ext/language_tools.js b/node_modules/ace/lib/ace/ext/language_tools.js index 563fe58a..c7239138 100644 --- a/node_modules/ace/lib/ace/ext/language_tools.js +++ b/node_modules/ace/lib/ace/ext/language_tools.js @@ -137,33 +137,17 @@ var loadSnippetFile = function(id) { }); }; -function getCompletionPrefix(editor) { - var pos = editor.getCursorPosition(); - var line = editor.session.getLine(pos.row); - var prefix; - // Try to find custom prefixes on the completers - editor.completers.forEach(function(completer) { - if (completer.identifierRegexps) { - completer.identifierRegexps.forEach(function(identifierRegex) { - if (!prefix && identifierRegex) - prefix = util.retrievePrecedingIdentifier(line, pos.column, identifierRegex); - }); - } - }); - return prefix || util.retrievePrecedingIdentifier(line, pos.column); -} - var doLiveAutocomplete = function(e) { var editor = e.editor; var hasCompleter = editor.completer && editor.completer.activated; // We don't want to autocomplete with no prefix if (e.command.name === "backspace") { - if (hasCompleter && !getCompletionPrefix(editor)) + if (hasCompleter && !util.getCompletionPrefix(editor)) editor.completer.detach(); } else if (e.command.name === "insertstring") { - var prefix = getCompletionPrefix(editor); + var prefix = util.getCompletionPrefix(editor); // Only autocomplete if there's a prefix that can be matched if (prefix && !hasCompleter) { if (!editor.completer) { diff --git a/node_modules/ace/lib/ace/ext/modelist.js b/node_modules/ace/lib/ace/ext/modelist.js index e147bd87..5eba862b 100644 --- a/node_modules/ace/lib/ace/ext/modelist.js +++ b/node_modules/ace/lib/ace/ext/modelist.js @@ -80,6 +80,7 @@ var supportedModes = { Gherkin: ["feature"], Gitignore: ["^.gitignore"], Glsl: ["glsl|frag|vert"], + Gobstones: ["gbs"], golang: ["go"], Groovy: ["groovy"], HAML: ["haml"], @@ -87,8 +88,8 @@ var supportedModes = { Haskell: ["hs"], haXe: ["hx"], HTML: ["html|htm|xhtml"], - HTML_Ruby: ["erb|rhtml|html.erb"], HTML_Elixir: ["eex|html.eex"], + HTML_Ruby: ["erb|rhtml|html.erb"], INI: ["ini|conf|cfg|prefs"], Io: ["io"], Jack: ["jack"], @@ -120,12 +121,13 @@ var supportedModes = { MUSHCode: ["mc|mush"], MySQL: ["mysql"], Nix: ["nix"], + NSIS: ["nsi|nsh"], ObjectiveC: ["m|mm"], OCaml: ["ml|mli"], Pascal: ["pas|p"], Perl: ["pl|pm"], pgSQL: ["pgsql"], - PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp"], + PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"], Powershell: ["ps1"], Praat: ["praat|praatscript|psc|proc"], Prolog: ["plg|prolog"], @@ -165,6 +167,7 @@ var supportedModes = { Velocity: ["vm"], Verilog: ["v|vh|sv|svh"], VHDL: ["vhd|vhdl"], + Wollok: ["wlk|wpgm|wtest"], XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"], XQuery: ["xq"], YAML: ["yaml|yml"], diff --git a/node_modules/ace/lib/ace/keyboard/vim.js b/node_modules/ace/lib/ace/keyboard/vim.js index b280545f..e0f512bb 100644 --- a/node_modules/ace/lib/ace/keyboard/vim.js +++ b/node_modules/ace/lib/ace/keyboard/vim.js @@ -1091,12 +1091,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ // Keypress character binding of format "'a'" return key.charAt(1); } - var pieces = key.split('-'); - if (/-$/.test(key)) { - // If the - key was typed, split will result in 2 extra empty strings - // in the array. Replace them with 1 '-'. - pieces.splice(-2, 2, '-'); - } + var pieces = key.split(/-(?!$)/); var lastPiece = pieces[pieces.length - 1]; if (pieces.length == 1 && pieces[0].length == 1) { // No-modifier bindings use literal character bindings above. Skip. @@ -2235,7 +2230,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ return; } if (motionArgs.toJumplist) { - if (!operator) + if (!operator && cm.ace.curOp != null) cm.ace.curOp.command.scrollIntoView = "center-animate"; // ace_patch var jumpList = vimGlobalState.jumpList; // if the current motion is # or *, use cachedCursor @@ -2787,13 +2782,21 @@ dom.importCssString(".normal-mode .ace_cursor{\ text = text.slice(0, - match[0].length); } } - var wasLastLine = head.line - 1 == cm.lastLine(); - cm.replaceRange('', anchor, head); - if (args.linewise && !wasLastLine) { + var prevLineEnd = new Pos(anchor.line - 1, Number.MAX_VALUE); + var wasLastLine = cm.firstLine() == cm.lastLine(); + if (head.line > cm.lastLine() && args.linewise && !wasLastLine) { + cm.replaceRange('', prevLineEnd, head); + } else { + cm.replaceRange('', anchor, head); + } + if (args.linewise) { // Push the next line back down, if there is a next line. - CodeMirror.commands.newlineAndIndent(cm); - // null ch so setCursor moves to end of line. - anchor.ch = null; + if (!wasLastLine) { + cm.setCursor(prevLineEnd); + CodeMirror.commands.newlineAndIndent(cm); + } + // make sure cursor ends up at the end of the line. + anchor.ch = Number.MAX_VALUE; } finalHead = anchor; } else { @@ -4037,7 +4040,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ return cur; } - /* + /** * Returns the boundaries of the next word. If the cursor in the middle of * the word, then returns the boundaries of the current word, starting at * the cursor. If the cursor is at the start/end of a word, and we are going @@ -5135,7 +5138,7 @@ dom.importCssString(".normal-mode .ace_cursor{\ if (decimal + hex + octal > 1) { return 'Invalid arguments'; } number = decimal && 'decimal' || hex && 'hex' || octal && 'octal'; } - if (args.eatSpace() && args.match(/\/.*\//)) { 'patterns not supported'; } + if (args.match(/\/.*\//)) { return 'patterns not supported'; } } } var err = parseArgs(); diff --git a/node_modules/ace/lib/ace/keyboard/vim_test.js b/node_modules/ace/lib/ace/keyboard/vim_test.js index 7db15db2..f0766688 100644 --- a/node_modules/ace/lib/ace/keyboard/vim_test.js +++ b/node_modules/ace/lib/ace/keyboard/vim_test.js @@ -480,7 +480,6 @@ testVim('%_skip_string', function(cm, vim, helpers) { helpers.doKeys(['%']); helpers.assertCursorAt(0,0); }, {value:'(")")'}); -(')') testVim('%_skip_comment', function(cm, vim, helpers) { cm.setCursor(0,0); helpers.doKeys(['%']); @@ -2239,9 +2238,18 @@ testVim('S_normal', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.doKeys('j', 'S'); helpers.doKeys(''); - helpers.assertCursorAt(1, 0); - eq('aa\n\ncc', cm.getValue()); -}, { value: 'aa\nbb\ncc'}); + helpers.assertCursorAt(1, 1); + eq('aa{\n \ncc', cm.getValue()); + helpers.doKeys('j', 'S'); + eq('aa{\n \n ', cm.getValue()); + helpers.assertCursorAt(2, 2); + helpers.doKeys(''); + helpers.doKeys('d', 'd', 'd', 'd'); + helpers.assertCursorAt(0, 0); + helpers.doKeys('S'); + is(vim.insertMode); + eq('', cm.getValue()); +}, { value: 'aa{\nbb\ncc'}); testVim('blockwise_paste', function(cm, vim, helpers) { cm.setCursor(0, 0); helpers.doKeys('', '3', 'j', 'l', 'y'); @@ -3219,8 +3227,7 @@ testVim('zt==z', function(cm, vim, helpers){ }); var moveTillCharacterSandbox = - 'The quick brown fox \n' - 'jumped over the lazy dog.' + 'The quick brown fox \n'; testVim('moveTillCharacter', function(cm, vim, helpers){ cm.setCursor(0, 0); // Search for the 'q'. @@ -3267,9 +3274,6 @@ testVim('searchForPipe', function(cm, vim, helpers){ var scrollMotionSandbox = - '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' - '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' - '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n' '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'; testVim('scrollMotion', function(cm, vim, helpers){ var prevCursor, prevScrollInfo; @@ -3490,6 +3494,14 @@ testVim('ex_sort_decimal_mixed_reverse', function(cm, vim, helpers) { helpers.doEx('sort! d'); eq('a3\nb2\nc1\nz\ny', cm.getValue()); }, { value: 'a3\nz\nc1\ny\nb2'}); +testVim('ex_sort_patterns_not_supported', function(cm, vim, helpers) { + var notified = false; + cm.openNotification = helpers.fakeOpenNotification(function(text) { + notified = /patterns not supported/.test(text); + }); + helpers.doEx('sort /abc/'); + is(notified, 'No notification.'); +}); // test for :global command testVim('ex_global', function(cm, vim, helpers) { cm.setCursor(0, 0); diff --git a/node_modules/ace/lib/ace/mode/_test/highlight_rules_test.js b/node_modules/ace/lib/ace/mode/_test/highlight_rules_test.js index 90e408f6..ccb1ec45 100644 --- a/node_modules/ace/lib/ace/mode/_test/highlight_rules_test.js +++ b/node_modules/ace/lib/ace/mode/_test/highlight_rules_test.js @@ -74,7 +74,7 @@ function checkModes() { } } -function generateTestData() { +function generateTestData(names, force) { var docRoot = root + "/demo/kitchen-sink/docs"; var docs = fs.readdirSync(docRoot); var specialDocs = fs.readdirSync(cwd); @@ -95,14 +95,32 @@ function generateTestData() { else modeName = {"txt": "text", cpp: "c_cpp"}[p[1]]; - var filePath = "text_" + modeName + ".txt"; - if (specialDocs.indexOf(filePath) == -1) { - filePath = docRoot + "/" + docName; - } else { - filePath = cwd + filePath; + if (names && names.length && names.indexOf(modeName) == -1) + return; + + var outputPath = cwd + "tokens_" + modeName + ".json"; + try { + var oldOutput = require(outputPath); + } catch(e) {} + if (oldOutput && !force) { + var oldText = oldOutput.map(function(x) { + if (x.length > 1 && typeof x[x.length - 1] == "string") + return x[x.length - 1]; + return x.slice(1).map(function(tok) { + return tok[1]; + }).join(""); + }).join("\n"); } - - var text = fs.readFileSync(filePath, "utf8"); + + var filePath = "text_" + modeName + ".txt"; + if (specialDocs.indexOf(filePath) !== -1) { + filePath = cwd + filePath; + } else { + filePath = docRoot + "/" + docName; + // oldText = ""; + } + var text = oldText ||fs.readFileSync(filePath, "utf8"); + try { var Mode = require("../" + modeName).Mode; } catch(e) { @@ -129,7 +147,11 @@ function generateTestData() { }); var jsonStr = "[[\n " + data.join("\n],[\n ") + "\n]]"; - fs.writeFileSync(cwd + "tokens_" + modeName + ".json", jsonStr, "utf8"); + + if (oldOutput && JSON.stringify(JSON.parse(jsonStr)) == JSON.stringify(oldOutput)) + return; + + fs.writeFileSync(outputPath, jsonStr, "utf8"); }); } diff --git a/node_modules/ace/lib/ace/mode/_test/text_javascript.txt b/node_modules/ace/lib/ace/mode/_test/text_javascript.txt index 7d087367..e91c5c60 100644 --- a/node_modules/ace/lib/ace/mode/_test/text_javascript.txt +++ b/node_modules/ace/lib/ace/mode/_test/text_javascript.txt @@ -87,9 +87,9 @@ foo.d =function(a, b) foo.d =function(a, /*****/ d"string"
+z=
{2} + }> 1 { ++x }
diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json b/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json index 13f42b13..2442a781 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json @@ -156,7 +156,10 @@ ["text"," "], ["identifier","prints"], ["paren.lparen","("], - ["string","\"trace message\""], + ["string.start","\""], + ["string","trace message"], + ["constant.language.escape","\\n"], + ["string.end","\""], ["paren.rparen",")"], ["punctuation.operator",";"] ],[ diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json b/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json index 24453d71..29098f5a 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json @@ -608,7 +608,7 @@ ["keyword.operator","<"], ["identifier","div"] ],[ - ["start","jsx_attr_qq","jsx_attr_qq","jsxAttributes","jsxAttributes","jsx",1], + ["start","jsxAttributes","jsxAttributes","jsx",1], ["identifier","z"], ["keyword.operator","="], ["meta.tag.punctuation.tag-open.xml","<"], @@ -633,17 +633,33 @@ ["text.tag-whitespace.xml"," "], ["entity.other.attribute-name.xml","y"], ["keyword.operator.attribute-equals.xml","="], - ["string.attribute-value.xml","\"z"], + ["string.attribute-value.xml","\"z{a}b"], + ["constant.language.escape.reference.xml","&"], + ["string.attribute-value.xml","\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","t"], + ["keyword.operator.attribute-equals.xml","="], ["paren.quasi.start","{"] ],[ - ["#tmp","no_regex","start","jsx_attr_qq","jsx_attr_qq","jsxAttributes","jsxAttributes","jsx",1], + ["start","jsxAttributes","jsxAttributes","jsx",1], ["text"," "], - ["constant.numeric","1"] + ["constant.numeric","1"], + ["text"," "], + ["keyword.operator","+"], + ["text"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","a"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["paren.quasi.start","{"], + ["constant.numeric","2"], + ["paren.quasi.end","}"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ ["jsx",1], ["text"," "], ["paren.quasi.end","}"], - ["string.attribute-value.xml","e\""], ["meta.tag.punctuation.tag-close.xml",">"] ],[ ["jsx",1], diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_objectivec.json b/node_modules/ace/lib/ace/mode/_test/tokens_objectivec.json index cdfd1196..9d86bf82 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_objectivec.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_objectivec.json @@ -412,7 +412,9 @@ ["text"," "], ["identifier","ProtocolFromString"], ["punctuation.operator",":"], - ["string","\"NSTableViewDelegate\""], + ["string.start","\""], + ["string","NSTableViewDelegate"], + ["string.end","\""], ["paren.rparen","))"] ],[ "start" @@ -469,7 +471,10 @@ ["support.function.C99.c","printf"], ["paren.lparen","("], ["text"," "], - ["string","\"hello world\\n\""], + ["string.start","\""], + ["string","hello world"], + ["constant.language.escape","\\n"], + ["string.end","\""], ["text"," "], ["paren.rparen",")"], ["punctuation.operator",";"] diff --git a/node_modules/ace/lib/ace/mode/c_cpp_highlight_rules.js b/node_modules/ace/lib/ace/mode/c_cpp_highlight_rules.js index 20abb3b3..ca817b4d 100644 --- a/node_modules/ace/lib/ace/mode/c_cpp_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/c_cpp_highlight_rules.js @@ -46,6 +46,7 @@ var c_cppHighlightRules = function() { }, "identifier"); var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; // regexp must not have capturing parentheses. Use (?:) instead. // regexps are ordered -> the first match is used @@ -67,19 +68,27 @@ var c_cppHighlightRules = function() { regex : "\\/\\*", next : "comment" }, { - token : "string", // single line - regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + token : "string", // character + regex : "'(?:" + escapeRe + "|.)'" }, { - token : "string", // multi line string start - regex : '["].*\\\\$', - next : "qqstring" + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] }, { - token : "string", // single line - regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" - }, { - token : "string", // multi line string start - regex : "['].*\\\\$", - next : "qstring" + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] }, { token : "constant.numeric", // hex regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" @@ -139,24 +148,6 @@ var c_cppHighlightRules = function() { defaultToken: "comment" } ], - "qqstring" : [ - { - token : "string", - regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', - next : "start" - }, { - defaultToken : "string" - } - ], - "qstring" : [ - { - token : "string", - regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", - next : "start" - }, { - defaultToken : "string" - } - ], "directive" : [ { token : "constant.other.multiline", @@ -192,6 +183,7 @@ var c_cppHighlightRules = function() { this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); }; oop.inherits(c_cppHighlightRules, TextHighlightRules); diff --git a/node_modules/ace/lib/ace/mode/csharp_highlight_rules.js b/node_modules/ace/lib/ace/mode/csharp_highlight_rules.js index 6e7ba5d4..f2a6da87 100644 --- a/node_modules/ace/lib/ace/mode/csharp_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/csharp_highlight_rules.js @@ -38,6 +38,12 @@ var CSharpHighlightRules = function() { token : "string", start : '@"', end : '"', next:[ {token: "constant.language.escape", regex: '""'} ] + }, { + token : "string", start : /\$"/, end : '"|$', next: [ + {token: "constant.language.escape", regex: /\\(:?$)|{{/}, + {token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/}, + {token: "invalid", regex: /\\./} + ] }, { token : "constant.numeric", // hex regex : "0[xX][0-9a-fA-F]+\\b" diff --git a/node_modules/ace/lib/ace/mode/gobstones.js b/node_modules/ace/lib/ace/mode/gobstones.js new file mode 100644 index 00000000..f337044b --- /dev/null +++ b/node_modules/ace/lib/ace/mode/gobstones.js @@ -0,0 +1,25 @@ +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var GobstonesHighlightRules = require("./gobstones_highlight_rules").GobstonesHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = GobstonesHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/gobstones"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + diff --git a/node_modules/ace/lib/ace/mode/gobstones_highlight_rules.js b/node_modules/ace/lib/ace/mode/gobstones_highlight_rules.js new file mode 100644 index 00000000..8e102ae1 --- /dev/null +++ b/node_modules/ace/lib/ace/mode/gobstones_highlight_rules.js @@ -0,0 +1,112 @@ +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GobstonesHighlightRules = function() { + + var keywords = ( + "program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return" + ); + + var buildinConstants = ( + "False|True" + ); + + + var langClasses = ( + "Poner|Sacar|Mover|IrAlBorde|VaciarTablero|" + + "nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|" + + "minDir|maxDir|minColor|maxColor" + ); + + var supportType = ( + "Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses, + "support.type": supportType + }, "identifier"); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", + regex : "\\-\\-.*$" + }, + { + token : "comment", + regex : "#.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:True|False)\\b" + }, { + token : "keyword.operator", + regex : ":=|\\.\\.|,|;|\\|\\||\\/\\/|\\+|\\-|\\^|\\*|>|<|>=|=>|==|&&" + }, { + token : keywordMapper, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(GobstonesHighlightRules, TextHighlightRules); + +exports.GobstonesHighlightRules = GobstonesHighlightRules; +}); diff --git a/node_modules/ace/lib/ace/mode/golang_highlight_rules.js b/node_modules/ace/lib/ace/mode/golang_highlight_rules.js index b8e4b3cb..c2dcef94 100644 --- a/node_modules/ace/lib/ace/mode/golang_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/golang_highlight_rules.js @@ -44,7 +44,7 @@ define(function(require, exports, module) { regex : /"(?:[^"\\]|\\.)*?"/ }, { token : "string", // raw - regex : '[`](?:[^`]*)$', + regex : '`', next : "bqstring" }, { token : "constant.numeric", // rune diff --git a/node_modules/ace/lib/ace/mode/html_completions.js b/node_modules/ace/lib/ace/mode/html_completions.js index 713f182b..df5d4fda 100644 --- a/node_modules/ace/lib/ace/mode/html_completions.js +++ b/node_modules/ace/lib/ace/mode/html_completions.js @@ -341,12 +341,12 @@ var HtmlCompletions = function() { }; this.getHTMLEntityCompletions = function(state, session, pos, prefix) { - var values = ['Á', 'á', 'Â', 'â', '´', 'Æ', 'æ', 'À', 'à', 'ℵ', 'Α', 'α', '&', '∧', '∠', 'Å', 'å', '≈', 'Ã', 'ã', 'Ä', 'ä', '„', 'Β', 'β', '¦', '•', '∩', 'Ç', 'ç', '¸', '¢', 'Χ', 'χ', 'ˆ', '♣', '≅', '©', '↵', '∪', '¤', '‡', '†', '⇓', '↓', '°', 'Δ', 'δ', '♦', '÷', 'É', 'é', 'Ê', 'ê', 'È', 'è', '∅', ' ', ' ', 'Ε', 'ε', '≡', 'Η', 'η', 'Ð', 'ð', 'Ë', 'ë', '€', '∃', 'ƒ', '∀', '½', '¼', '¾', '⁄', 'Γ', 'γ', '≥', '>', '⇔', '↔', '♥', '…', 'Í', 'í', 'Î', 'î', '¡', 'Ì', 'ì', 'ℑ', '∞', '∫', 'Ι', 'ι', '¿', '∈', 'Ï', 'ï', 'Κ', 'κ', 'Λ', 'λ', '⟨', '«', '⇐', '←', '⌈', '“', '≤', '⌊', '∗', '◊', '‎', '‹', '‘', '<', '¯', '—', 'µ', '·', '−', 'Μ', 'μ', '∇', ' ', '–', '≠', '∋', '¬', '∉', '⊄', 'Ñ', 'ñ', 'Ν', 'ν', 'Ó', 'ó', 'Ô', 'ô', 'Œ', 'œ', 'Ò', 'ò', '‾', 'Ω', 'ω', 'Ο', 'ο', '⊕', '∨', 'ª', 'º', 'Ø', 'ø', 'Õ', 'õ', '⊗', 'Ö', 'ö', '¶', '∂', '‰', '⊥', 'Φ', 'φ', 'Π', 'π', 'ϖ', '±', '£', '″', '′', '∏', '∝', 'Ψ', 'ψ', '"', '√', '⟩', '»', '⇒', '→', '⌉', '”', 'ℜ', '®', '⌋', 'Ρ', 'ρ', '‏', '›', '’', '‚', 'Š', 'š', '⋅', '§', '­', 'Σ', 'σ', 'ς', '∼', '♠', '⊂', '⊆', '∑', '⊃', '¹', '²', '³', '⊇', 'ß', 'Τ', 'τ', '∴', 'Θ', 'θ', 'ϑ', ' ', 'Þ', 'þ', '˜', '×', '™', 'Ú', 'ú', '⇑', '↑', 'Û', 'û', 'Ù', 'ù', '¨', 'ϒ', 'Υ', 'υ', 'Ü', 'ü', '℘', 'Ξ', 'ξ', 'Ý', 'ý', '¥', 'Ÿ', 'ÿ', 'Ζ', 'ζ', '‍', '‌']; + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; return values.map(function(value){ return { caption: value, - snippet: value.substr(1), + snippet: value, meta: "html entity", score: Number.MAX_VALUE }; diff --git a/node_modules/ace/lib/ace/mode/jade_highlight_rules.js b/node_modules/ace/lib/ace/mode/jade_highlight_rules.js index 5571070f..c170b29d 100644 --- a/node_modules/ace/lib/ace/mode/jade_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/jade_highlight_rules.js @@ -80,10 +80,6 @@ var JadeHighlightRules = function() { token: "keyword.other.doctype.jade", regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?" }, - { - token : "punctuation.section.comment", - regex : "^\\s*\/\/(?:\\s*[^-\\s]|\\s+\\S)(?:.*$)" - }, { onMatch: function(value, currentState, stack) { stack.unshift(this.next, value.length - 2, currentState); @@ -156,8 +152,13 @@ var JadeHighlightRules = function() { } ], "comment_block": [ - {regex: /^\s*/, onMatch: function(value, currentState, stack) { + {regex: /^\s*(?:\/\/)?/, onMatch: function(value, currentState, stack) { if (value.length <= stack[1]) { + if (value.slice(-1) == "/") { + stack[1] = value.length - 2; + this.next = ""; + return "comment"; + } stack.shift(); stack.shift(); this.next = stack.shift(); diff --git a/node_modules/ace/lib/ace/mode/javascript_highlight_rules.js b/node_modules/ace/lib/ace/mode/javascript_highlight_rules.js index d1a793a1..86855f9c 100644 --- a/node_modules/ace/lib/ace/mode/javascript_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/javascript_highlight_rules.js @@ -475,7 +475,6 @@ function JSX() { stateName : "jsx_attr_q", push : [ {token : "string.attribute-value.xml", regex: "'", next: "pop"}, - jsxJsRule, {include : "reference"}, {defaultToken : "string.attribute-value.xml"} ] @@ -484,7 +483,6 @@ function JSX() { regex : '"', stateName : "jsx_attr_qq", push : [ - jsxJsRule, {token : "string.attribute-value.xml", regex: '"', next: "pop"}, {include : "reference"}, {defaultToken : "string.attribute-value.xml"} diff --git a/node_modules/ace/lib/ace/mode/nsis.js b/node_modules/ace/lib/ace/mode/nsis.js new file mode 100644 index 00000000..8ec4a884 --- /dev/null +++ b/node_modules/ace/lib/ace/mode/nsis.js @@ -0,0 +1,57 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Distributed under the BSD license: + * + * Copyright (c) 2012, Ajax.org B.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Ajax.org B.V. nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ***** END LICENSE BLOCK ***** */ + +/* + THIS FILE WAS AUTOGENERATED BY mode.tmpl.js +*/ + +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var NSISHighlightRules = require("./nsis_highlight_rules").NSISHighlightRules; +// TODO: pick appropriate fold mode +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = NSISHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = [";", "#"]; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/nsis"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/nsis_highlight_rules.js b/node_modules/ace/lib/ace/mode/nsis_highlight_rules.js new file mode 100644 index 00000000..d10a5688 --- /dev/null +++ b/node_modules/ace/lib/ace/mode/nsis_highlight_rules.js @@ -0,0 +1,173 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Distributed under the BSD license: + * + * Copyright (c) 2012, Ajax.org B.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Ajax.org B.V. nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ***** END LICENSE BLOCK ***** */ + +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var NSISHighlightRules = function() { + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + start: [{ + token: "keyword.compiler.nsis", + regex: /(?:\b|^\s*)\!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\b/, + caseInsensitive: true + }, { + token: "keyword.command.nsis", + regex: /(?:\b|^\s*)(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetPluginUnload|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\b/, + caseInsensitive: true + }, { + token: "keyword.control.nsis", + regex: /(?:\b|^\s*)\!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\b/, + caseInsensitive: true + }, { + token: "keyword.plugin.nsis", + regex: /(?:\b|^\s*)\w+\:\:\w+/, + caseInsensitive: true + }, { + token: "keyword.operator.comparison.nsis", + regex: /[!<>]?=|<>|<|>/ + }, { + token: "support.function.nsis", + regex: /(?:\b|^\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|SubSection|SubSectionEnd|PageEx|PageExEnd)\b/, + caseInsensitive: true + }, { + token: "support.library.nsis", + regex: /\${[\w]+}/ + }, { + token: "constant.nsis", + regex: /(?:\b|^\s*)(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/, + caseInsensitive: true + }, { + token: "constant.library.nsis", + regex: /\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/ + }, { + token: "constant.language.boolean.true.nsis", + regex: /\b(?:true|on)\b/ + }, { + token: "constant.language.boolean.false.nsis", + regex: /\b(?:false|off)\b/ + }, { + token: "constant.language.option.nsis", + regex: /(?:\b|^\s*)(?:(?:un\.)?components|(?:un\.)?custom|(?:un\.)?directory|(?:un\.)?instfiles|(?:un\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\b/, + caseInsensitive: true + }, { + token: "constant.language.slash-option.nsis", + regex: /\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING\=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID\=|ITALIC|LANG\=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname\=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\b/, + caseInsensitive: true + }, { + token: "constant.numeric.nsis", + regex: /\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\.[0-9]+)?)\b/ + }, { + token: "entity.name.function.nsis", + regex: /\${[\w]+}/ + }, { + token: "storage.type.function.nsis", + regex: /\$[\w]+/ + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /`/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /`/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.back.nsis" + }] + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /"/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /"/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.double.nsis" + }] + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /'/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /'/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.single.nsis" + }] + }, { + token: [ + "punctuation.definition.comment.nsis", + "comment.line.nsis" + ], + regex: /(;|#)(.*$)/ + }, { + token: "punctuation.definition.comment.nsis", + regex: /\/\*/, + push: [{ + token: "punctuation.definition.comment.nsis", + regex: /\*\//, + next: "pop" + }, { + defaultToken: "comment.block.nsis" + }] + }, { + token: "text", + regex: /(?:\!include|\!insertmacro)\b/ + }] + }; + + this.normalizeRules(); +}; + +NSISHighlightRules.metaData = { + comment: "\n\ttodo: - highlight functions\n\t", + fileTypes: ["nsi", "nsh"], + name: "NSIS", + scopeName: "source.nsis" +}; + + +oop.inherits(NSISHighlightRules, TextHighlightRules); + +exports.NSISHighlightRules = NSISHighlightRules; +}); \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/wollok.js b/node_modules/ace/lib/ace/mode/wollok.js new file mode 100644 index 00000000..c9a33217 --- /dev/null +++ b/node_modules/ace/lib/ace/mode/wollok.js @@ -0,0 +1,25 @@ +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var WollokHighlightRules = require("./wollok_highlight_rules").WollokHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = WollokHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/wollok"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + diff --git a/node_modules/ace/lib/ace/mode/wollok_highlight_rules.js b/node_modules/ace/lib/ace/mode/wollok_highlight_rules.js new file mode 100644 index 00000000..73f18833 --- /dev/null +++ b/node_modules/ace/lib/ace/mode/wollok_highlight_rules.js @@ -0,0 +1,97 @@ +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var WollokHighlightRules = function() { + + // taken from http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html + var keywords = ( + "test|package|inherits|false|import|else|or|class|and|not|native|override|program|this|try|val|var|catch|object|super|throw|if|null|return|true|new|method" + ); + + var buildinConstants = ("null|assert|console"); + + + var langClasses = ( + "Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range" + + "|StackTraceElement" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses + }, "identifier"); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "===|&&|\\*=|\\.\\.|\\*\\*|#|!|%|\\*|\\?:|\\+|\\/|,|\\+=|\\-|\\.\\.<|!==|:|\\/=|\\?\\.|\\+\\+|>|=|<|>=|=>|==|\\]|\\[|\\-=|\\->|\\||\\-\\-|<>|!=|%=|\\|" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(WollokHighlightRules, TextHighlightRules); + +exports.WollokHighlightRules = WollokHighlightRules; +}); diff --git a/node_modules/ace/lib/ace/snippets/gobstones.js b/node_modules/ace/lib/ace/snippets/gobstones.js new file mode 100644 index 00000000..bf808de0 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/gobstones.js @@ -0,0 +1,7 @@ +define(function(require, exports, module) { +"use strict"; + +exports.snippetText = require("../requirejs/text!./gobstones.snippets"); +exports.scope = "gobstones"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/gobstones.snippets b/node_modules/ace/lib/ace/snippets/gobstones.snippets new file mode 100644 index 00000000..c837449b --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/gobstones.snippets @@ -0,0 +1,34 @@ +# Procedure +snippet proc + procedure ${1?:name}(${2:argument}) { + ${3:// body...} + } + +# Function +snippet fun + function ${1?:name}(${2:argument}) { + return ${3:// body...} + } + +# Repeat +snippet rep + repeat ${1?:times} { + ${2:// body...} + } + +# For +snippet for + foreach ${1?:e} in ${2?:list} { + ${3:// body...} + } + +# If +snippet if + if (${1?:condition}) { + ${3:// body...} + } + +# While + while (${1?:condition}) { + ${2:// body...} + } diff --git a/node_modules/ace/lib/ace/snippets/html_elixir.js b/node_modules/ace/lib/ace/snippets/html_elixir.js new file mode 100644 index 00000000..9902adbe --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/html_elixir.js @@ -0,0 +1,7 @@ +define(function(require, exports, module) { +"use strict"; + +exports.snippetText = require("../requirejs/text!./html_elixir.snippets"); +exports.scope = "html_elixir"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/html_elixir.snippets b/node_modules/ace/lib/ace/snippets/html_elixir.snippets new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/ace/lib/ace/snippets/mask.js b/node_modules/ace/lib/ace/snippets/mask.js new file mode 100644 index 00000000..1c0cdd98 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/mask.js @@ -0,0 +1,7 @@ +define(function (require, exports, module) { + "use strict"; + + exports.snippetText = require("../requirejs/text!./mask.snippets"); + exports.scope = "mask"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/mask.snippets b/node_modules/ace/lib/ace/snippets/mask.snippets new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/ace/lib/ace/snippets/nsis.js b/node_modules/ace/lib/ace/snippets/nsis.js new file mode 100644 index 00000000..359d9103 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/nsis.js @@ -0,0 +1,7 @@ +define(function(require, exports, module) { +"use strict"; + +exports.snippetText = require("../requirejs/text!./.snippets"); +exports.scope = ""; + +}); diff --git a/node_modules/ace/lib/ace/snippets/swift.js b/node_modules/ace/lib/ace/snippets/swift.js new file mode 100644 index 00000000..74f3f3f2 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/swift.js @@ -0,0 +1,7 @@ +define(function (require, exports, module) { + "use strict"; + + exports.snippetText = require("../requirejs/text!./swift.snippets"); + exports.scope = "swift"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/swift.snippets b/node_modules/ace/lib/ace/snippets/swift.snippets new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/ace/lib/ace/snippets/swig.js b/node_modules/ace/lib/ace/snippets/swig.js new file mode 100644 index 00000000..175d0141 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/swig.js @@ -0,0 +1,7 @@ +define(function (require, exports, module) { + "use strict"; + + exports.snippetText = require("../requirejs/text!./swig.snippets"); + exports.scope = "swig"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/swig.snippets b/node_modules/ace/lib/ace/snippets/swig.snippets new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/ace/lib/ace/snippets/wollok.js b/node_modules/ace/lib/ace/snippets/wollok.js new file mode 100644 index 00000000..4a52bf2d --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/wollok.js @@ -0,0 +1,7 @@ +define(function(require, exports, module) { +"use strict"; + +exports.snippetText = require("../requirejs/text!./wollok.snippets"); +exports.scope = "wollok"; + +}); diff --git a/node_modules/ace/lib/ace/snippets/wollok.snippets b/node_modules/ace/lib/ace/snippets/wollok.snippets new file mode 100644 index 00000000..f98f8587 --- /dev/null +++ b/node_modules/ace/lib/ace/snippets/wollok.snippets @@ -0,0 +1,85 @@ +## +## Basic Java packages and import +snippet im + import +snippet w.l + wollok.lang +snippet w.i + wollok.lib + +## Class and object +snippet cl + class ${1:`Filename("", "untitled")`} ${2} +snippet obj + object ${1:`Filename("", "untitled")`} ${2:inherits Parent}${3} +snippet te + test ${1:`Filename("", "untitled")`} + +## +## Enhancements +snippet inh + inherits + +## +## Comments +snippet /* + /* + * ${1} + */ + +## +## Control Statements +snippet el + else +snippet if + if (${1}) ${2} + +## +## Create a Method +snippet m + method ${1:method}(${2}) ${5} + +## +## Tests +snippet as + assert.equals(${1:expected}, ${2:actual}) + +## +## Exceptions +snippet ca + catch ${1:e} : (${2:Exception} ) ${3} +snippet thr + throw +snippet try + try { + ${3} + } catch ${1:e} : ${2:Exception} { + } + +## +## Javadocs +snippet /** + /** + * ${1} + */ + +## +## Print Methods +snippet print + console.println("${1:Message}") + +## +## Setter and Getter Methods +snippet set + method set${1:}(${2:}) { + $1 = $2 + } +snippet get + method get${1:}() { + return ${1:}; + } + +## +## Terminate Methods or Loops +snippet re + return \ No newline at end of file