ace-rails-ap 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1 -1
  3. data/lib/ace/rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/ace/ace.js +6911 -5290
  5. data/vendor/assets/javascripts/ace/ext-chromevox.js +537 -0
  6. data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +301 -0
  7. data/vendor/assets/javascripts/ace/ext-emmet.js +1109 -0
  8. data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +207 -0
  9. data/vendor/assets/javascripts/ace/ext-language_tools.js +1665 -0
  10. data/vendor/assets/javascripts/ace/ext-modelist.js +168 -0
  11. data/vendor/assets/javascripts/ace/ext-old_ie.js +500 -0
  12. data/vendor/assets/javascripts/ace/ext-options.js +252 -0
  13. data/vendor/assets/javascripts/ace/ext-searchbox.js +421 -0
  14. data/vendor/assets/javascripts/ace/ext-settings_menu.js +632 -0
  15. data/vendor/assets/javascripts/ace/ext-spellcheck.js +68 -0
  16. data/vendor/assets/javascripts/ace/ext-split.js +271 -0
  17. data/vendor/assets/javascripts/ace/ext-static_highlight.js +178 -0
  18. data/vendor/assets/javascripts/ace/ext-statusbar.js +47 -0
  19. data/vendor/assets/javascripts/ace/ext-textarea.js +478 -0
  20. data/vendor/assets/javascripts/ace/ext-themelist.js +86 -0
  21. data/vendor/assets/javascripts/ace/ext-whitespace.js +206 -0
  22. data/vendor/assets/javascripts/ace/keybinding-emacs.js +822 -131
  23. data/vendor/assets/javascripts/ace/keybinding-vim.js +382 -258
  24. data/vendor/assets/javascripts/ace/mode-abap.js +261 -0
  25. data/vendor/assets/javascripts/ace/mode-actionscript.js +257 -0
  26. data/vendor/assets/javascripts/ace/mode-ada.js +118 -0
  27. data/vendor/assets/javascripts/ace/mode-asciidoc.js +373 -0
  28. data/vendor/assets/javascripts/ace/mode-assembly_x86.js +217 -0
  29. data/vendor/assets/javascripts/ace/mode-autohotkey.js +225 -0
  30. data/vendor/assets/javascripts/ace/mode-batchfile.js +213 -0
  31. data/vendor/assets/javascripts/ace/mode-c9search.js +144 -124
  32. data/vendor/assets/javascripts/ace/mode-c_cpp.js +296 -254
  33. data/vendor/assets/javascripts/ace/mode-clojure.js +113 -177
  34. data/vendor/assets/javascripts/ace/mode-cobol.js +125 -0
  35. data/vendor/assets/javascripts/ace/mode-coffee.js +152 -235
  36. data/vendor/assets/javascripts/ace/mode-coldfusion.js +823 -835
  37. data/vendor/assets/javascripts/ace/mode-csharp.js +325 -187
  38. data/vendor/assets/javascripts/ace/mode-css.js +583 -297
  39. data/vendor/assets/javascripts/ace/mode-curly.js +2423 -0
  40. data/vendor/assets/javascripts/ace/mode-d.js +492 -0
  41. data/vendor/assets/javascripts/ace/mode-dart.js +993 -0
  42. data/vendor/assets/javascripts/ace/mode-diff.js +124 -204
  43. data/vendor/assets/javascripts/ace/mode-django.js +2448 -0
  44. data/vendor/assets/javascripts/ace/mode-dot.js +361 -0
  45. data/vendor/assets/javascripts/ace/mode-ejs.js +2817 -0
  46. data/vendor/assets/javascripts/ace/mode-erlang.js +987 -0
  47. data/vendor/assets/javascripts/ace/mode-forth.js +280 -0
  48. data/vendor/assets/javascripts/ace/mode-ftl.js +1061 -0
  49. data/vendor/assets/javascripts/ace/mode-glsl.js +313 -275
  50. data/vendor/assets/javascripts/ace/mode-golang.js +268 -275
  51. data/vendor/assets/javascripts/ace/mode-groovy.js +347 -492
  52. data/vendor/assets/javascripts/ace/mode-haml.js +498 -0
  53. data/vendor/assets/javascripts/ace/mode-handlebars.js +2433 -0
  54. data/vendor/assets/javascripts/ace/mode-haskell.js +362 -0
  55. data/vendor/assets/javascripts/ace/mode-haxe.js +226 -202
  56. data/vendor/assets/javascripts/ace/mode-html.js +1099 -802
  57. data/vendor/assets/javascripts/ace/mode-html_completions.js +309 -0
  58. data/vendor/assets/javascripts/ace/mode-html_ruby.js +2822 -0
  59. data/vendor/assets/javascripts/ace/mode-ini.js +185 -0
  60. data/vendor/assets/javascripts/ace/mode-jack.js +653 -0
  61. data/vendor/assets/javascripts/ace/mode-jade.js +2081 -0
  62. data/vendor/assets/javascripts/ace/mode-java.js +339 -488
  63. data/vendor/assets/javascripts/ace/mode-javascript.js +342 -478
  64. data/vendor/assets/javascripts/ace/mode-json.js +215 -178
  65. data/vendor/assets/javascripts/ace/mode-jsoniq.js +2761 -0
  66. data/vendor/assets/javascripts/ace/mode-jsp.js +1553 -0
  67. data/vendor/assets/javascripts/ace/mode-jsx.js +325 -289
  68. data/vendor/assets/javascripts/ace/mode-julia.js +286 -0
  69. data/vendor/assets/javascripts/ace/mode-latex.js +141 -46
  70. data/vendor/assets/javascripts/ace/mode-less.js +493 -151
  71. data/vendor/assets/javascripts/ace/mode-liquid.js +594 -656
  72. data/vendor/assets/javascripts/ace/mode-lisp.js +137 -0
  73. data/vendor/assets/javascripts/ace/mode-livescript.js +288 -0
  74. data/vendor/assets/javascripts/ace/mode-logiql.js +669 -0
  75. data/vendor/assets/javascripts/ace/mode-lsl.js +890 -0
  76. data/vendor/assets/javascripts/ace/mode-lua.js +274 -368
  77. data/vendor/assets/javascripts/ace/mode-luapage.js +1331 -1107
  78. data/vendor/assets/javascripts/ace/mode-lucene.js +64 -0
  79. data/vendor/assets/javascripts/ace/mode-makefile.js +332 -0
  80. data/vendor/assets/javascripts/ace/mode-markdown.js +1303 -948
  81. data/vendor/assets/javascripts/ace/mode-matlab.js +230 -0
  82. data/vendor/assets/javascripts/ace/mode-mushcode.js +705 -0
  83. data/vendor/assets/javascripts/ace/mode-mushcode_high_rules.js +569 -0
  84. data/vendor/assets/javascripts/ace/mode-mysql.js +185 -0
  85. data/vendor/assets/javascripts/ace/mode-nix.js +935 -0
  86. data/vendor/assets/javascripts/ace/mode-objectivec.js +699 -0
  87. data/vendor/assets/javascripts/ace/mode-ocaml.js +44 -63
  88. data/vendor/assets/javascripts/ace/mode-pascal.js +233 -0
  89. data/vendor/assets/javascripts/ace/mode-perl.js +116 -189
  90. data/vendor/assets/javascripts/ace/mode-pgsql.js +886 -500
  91. data/vendor/assets/javascripts/ace/mode-php.js +1158 -380
  92. data/vendor/assets/javascripts/ace/mode-plain_text.js +56 -0
  93. data/vendor/assets/javascripts/ace/mode-powershell.js +222 -167
  94. data/vendor/assets/javascripts/ace/mode-prolog.js +354 -0
  95. data/vendor/assets/javascripts/ace/mode-properties.js +100 -0
  96. data/vendor/assets/javascripts/ace/mode-protobuf.js +885 -0
  97. data/vendor/assets/javascripts/ace/mode-python.js +99 -201
  98. data/vendor/assets/javascripts/ace/mode-r.js +337 -0
  99. data/vendor/assets/javascripts/ace/mode-rdoc.js +210 -0
  100. data/vendor/assets/javascripts/ace/mode-rhtml.js +2663 -0
  101. data/vendor/assets/javascripts/ace/mode-ruby.js +262 -136
  102. data/vendor/assets/javascripts/ace/mode-rust.js +245 -0
  103. data/vendor/assets/javascripts/ace/mode-sass.js +443 -0
  104. data/vendor/assets/javascripts/ace/mode-scad.js +225 -240
  105. data/vendor/assets/javascripts/ace/mode-scala.js +340 -494
  106. data/vendor/assets/javascripts/ace/mode-scheme.js +143 -0
  107. data/vendor/assets/javascripts/ace/mode-scss.js +499 -157
  108. data/vendor/assets/javascripts/ace/mode-sh.js +180 -110
  109. data/vendor/assets/javascripts/ace/mode-sjs.js +1154 -0
  110. data/vendor/assets/javascripts/ace/mode-snippets.js +198 -0
  111. data/vendor/assets/javascripts/ace/mode-soy_template.js +2707 -0
  112. data/vendor/assets/javascripts/ace/mode-space.js +160 -0
  113. data/vendor/assets/javascripts/ace/mode-sql.js +48 -69
  114. data/vendor/assets/javascripts/ace/mode-stylus.js +447 -0
  115. data/vendor/assets/javascripts/ace/mode-svg.js +552 -605
  116. data/vendor/assets/javascripts/ace/mode-tcl.js +139 -98
  117. data/vendor/assets/javascripts/ace/mode-tex.js +187 -0
  118. data/vendor/assets/javascripts/ace/mode-textile.js +29 -40
  119. data/vendor/assets/javascripts/ace/mode-tmsnippet.js +200 -0
  120. data/vendor/assets/javascripts/ace/mode-toml.js +177 -0
  121. data/vendor/assets/javascripts/ace/mode-twig.js +2228 -0
  122. data/vendor/assets/javascripts/ace/mode-typescript.js +1018 -0
  123. data/vendor/assets/javascripts/ace/mode-vbscript.js +250 -0
  124. data/vendor/assets/javascripts/ace/mode-velocity.js +1621 -0
  125. data/vendor/assets/javascripts/ace/mode-verilog.js +127 -0
  126. data/vendor/assets/javascripts/ace/mode-vhdl.js +139 -0
  127. data/vendor/assets/javascripts/ace/mode-xml.js +350 -242
  128. data/vendor/assets/javascripts/ace/mode-xquery.js +2490 -300
  129. data/vendor/assets/javascripts/ace/mode-yaml.js +146 -45
  130. data/vendor/assets/javascripts/ace/theme-ambiance.js +202 -0
  131. data/vendor/assets/javascripts/ace/theme-chaos.js +179 -0
  132. data/vendor/assets/javascripts/ace/theme-chrome.js +97 -153
  133. data/vendor/assets/javascripts/ace/theme-clouds.js +78 -119
  134. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +79 -120
  135. data/vendor/assets/javascripts/ace/theme-cobalt.js +89 -140
  136. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +93 -145
  137. data/vendor/assets/javascripts/ace/theme-dawn.js +84 -143
  138. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +99 -162
  139. data/vendor/assets/javascripts/ace/theme-eclipse.js +78 -111
  140. data/vendor/assets/javascripts/ace/theme-github.js +70 -121
  141. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +75 -134
  142. data/vendor/assets/javascripts/ace/theme-kr.js +135 -0
  143. data/vendor/assets/javascripts/ace/theme-merbivore.js +80 -143
  144. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +81 -149
  145. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +87 -146
  146. data/vendor/assets/javascripts/ace/theme-monokai.js +88 -146
  147. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +82 -142
  148. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +83 -144
  149. data/vendor/assets/javascripts/ace/theme-solarized_light.js +76 -133
  150. data/vendor/assets/javascripts/ace/theme-terminal.js +145 -0
  151. data/vendor/assets/javascripts/ace/theme-textmate.js +101 -158
  152. data/vendor/assets/javascripts/ace/theme-tomorrow.js +89 -163
  153. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +89 -163
  154. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +89 -165
  155. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +101 -162
  156. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +90 -160
  157. data/vendor/assets/javascripts/ace/theme-twilight.js +87 -158
  158. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +75 -140
  159. data/vendor/assets/javascripts/ace/theme-xcode.js +120 -0
  160. data/vendor/assets/javascripts/ace/worker-coffee.js +3049 -2665
  161. data/vendor/assets/javascripts/ace/worker-css.js +1779 -4376
  162. data/vendor/assets/javascripts/ace/worker-javascript.js +8701 -9008
  163. data/vendor/assets/javascripts/ace/worker-json.js +709 -1340
  164. data/vendor/assets/javascripts/ace/worker-lua.js +3525 -0
  165. data/vendor/assets/javascripts/ace/worker-php.js +6893 -0
  166. data/vendor/assets/javascripts/ace/worker-xquery.js +19924 -64507
  167. metadata +100 -17
@@ -1,91 +1,59 @@
1
1
  /* ***** BEGIN LICENSE BLOCK *****
2
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2
+ * Distributed under the BSD license:
3
3
  *
4
- * The contents of this file are subject to the Mozilla Public License Version
5
- * 1.1 (the "License"); you may not use this file except in compliance with
6
- * the License. You may obtain a copy of the License at
7
- * http://www.mozilla.org/MPL/
8
- *
9
- * Software distributed under the License is distributed on an "AS IS" basis,
10
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11
- * for the specific language governing rights and limitations under the
12
- * License.
13
- *
14
- * The Original Code is Ajax.org Code Editor (ACE).
15
- *
16
- * The Initial Developer of the Original Code is
17
- * Ajax.org B.V.
18
- * Portions created by the Initial Developer are Copyright (C) 2010
19
- * the Initial Developer. All Rights Reserved.
20
- *
21
- * Contributor(s):
22
- * Fabian Jakobs <fabian AT ajax DOT org>
23
- * Shlomo Zalman Heigh <shlomozalmanheigh AT gmail DOT com>
24
- *
25
- * Alternatively, the contents of this file may be used under the terms of
26
- * either the GNU General Public License Version 2 or later (the "GPL"), or
27
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
- * in which case the provisions of the GPL or the LGPL are applicable instead
29
- * of those above. If you wish to allow use of your version of this file only
30
- * under the terms of either the GPL or the LGPL, and not to allow others to
31
- * use your version of this file under the terms of the MPL, indicate your
32
- * decision by deleting the provisions above and replace them with the notice
33
- * and other provisions required by the GPL or the LGPL. If you do not delete
34
- * the provisions above, a recipient may use your version of this file under
35
- * the terms of any one of the MPL, the GPL or the LGPL.
4
+ * Copyright (c) 2010, Ajax.org B.V.
5
+ * All rights reserved.
6
+ *
7
+ * Redistribution and use in source and binary forms, with or without
8
+ * modification, are permitted provided that the following conditions are met:
9
+ * * Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * * Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ * * Neither the name of Ajax.org B.V. nor the
15
+ * names of its contributors may be used to endorse or promote products
16
+ * derived from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
22
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
28
  *
37
29
  * ***** END LICENSE BLOCK ***** */
38
30
 
39
- define('ace/mode/tcl', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/tcl_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) {
31
+ define('ace/mode/tcl', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/folding/cstyle', 'ace/mode/tcl_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) {
40
32
 
41
33
 
42
34
  var oop = require("../lib/oop");
43
35
  var TextMode = require("./text").Mode;
44
36
  var Tokenizer = require("../tokenizer").Tokenizer;
37
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
45
38
  var TclHighlightRules = require("./tcl_highlight_rules").TclHighlightRules;
46
39
  var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
47
40
  var Range = require("../range").Range;
48
41
 
49
42
  var Mode = function() {
50
- this.$tokenizer = new Tokenizer(new TclHighlightRules().getRules());
43
+ this.HighlightRules = TclHighlightRules;
51
44
  this.$outdent = new MatchingBraceOutdent();
45
+ this.foldingRules = new CStyleFoldMode();
52
46
  };
53
47
  oop.inherits(Mode, TextMode);
54
48
 
55
49
  (function() {
56
50
 
57
- this.toggleCommentLines = function(state, doc, startRow, endRow) {
58
- var outdent = true;
59
- var re = /^(\s*)#/;
60
-
61
- for (var i=startRow; i<= endRow; i++) {
62
- if (!re.test(doc.getLine(i))) {
63
- outdent = false;
64
- break;
65
- }
66
- }
67
-
68
- if (outdent) {
69
- var deleteRange = new Range(0, 0, 0, 0);
70
- for (var i=startRow; i<= endRow; i++)
71
- {
72
- var line = doc.getLine(i);
73
- var m = line.match(re);
74
- deleteRange.start.row = i;
75
- deleteRange.end.row = i;
76
- deleteRange.end.column = m[0].length;
77
- doc.replace(deleteRange, m[1]);
78
- }
79
- }
80
- else {
81
- doc.indentRows(startRow, endRow, "#");
82
- }
83
- };
51
+ this.lineCommentStart = "#";
84
52
 
85
53
  this.getNextLineIndent = function(state, line, tab) {
86
54
  var indent = this.$getIndent(line);
87
55
 
88
- var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
56
+ var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
89
57
  var tokens = tokenizedLine.tokens;
90
58
 
91
59
  if (tokens.length && tokens[tokens.length-1].type == "comment") {
@@ -110,29 +78,119 @@ oop.inherits(Mode, TextMode);
110
78
  this.$outdent.autoOutdent(doc, row);
111
79
  };
112
80
 
81
+ this.$id = "ace/mode/tcl";
113
82
  }).call(Mode.prototype);
114
83
 
115
84
  exports.Mode = Mode;
116
85
  });
117
86
 
118
- define('ace/mode/tcl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
87
+ define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
88
+
89
+
90
+ var oop = require("../../lib/oop");
91
+ var Range = require("../../range").Range;
92
+ var BaseFoldMode = require("./fold_mode").FoldMode;
93
+
94
+ var FoldMode = exports.FoldMode = function(commentRegex) {
95
+ if (commentRegex) {
96
+ this.foldingStartMarker = new RegExp(
97
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
98
+ );
99
+ this.foldingStopMarker = new RegExp(
100
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
101
+ );
102
+ }
103
+ };
104
+ oop.inherits(FoldMode, BaseFoldMode);
105
+
106
+ (function() {
107
+
108
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
109
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
110
+
111
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
112
+ var line = session.getLine(row);
113
+ var match = line.match(this.foldingStartMarker);
114
+ if (match) {
115
+ var i = match.index;
116
+
117
+ if (match[1])
118
+ return this.openingBracketBlock(session, match[1], row, i);
119
+
120
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
121
+
122
+ if (range && !range.isMultiLine()) {
123
+ if (forceMultiline) {
124
+ range = this.getSectionRange(session, row);
125
+ } else if (foldStyle != "all")
126
+ range = null;
127
+ }
128
+
129
+ return range;
130
+ }
131
+
132
+ if (foldStyle === "markbegin")
133
+ return;
134
+
135
+ var match = line.match(this.foldingStopMarker);
136
+ if (match) {
137
+ var i = match.index + match[0].length;
138
+
139
+ if (match[1])
140
+ return this.closingBracketBlock(session, match[1], row, i);
141
+
142
+ return session.getCommentFoldRange(row, i, -1);
143
+ }
144
+ };
145
+
146
+ this.getSectionRange = function(session, row) {
147
+ var line = session.getLine(row);
148
+ var startIndent = line.search(/\S/);
149
+ var startRow = row;
150
+ var startColumn = line.length;
151
+ row = row + 1;
152
+ var endRow = row;
153
+ var maxRow = session.getLength();
154
+ while (++row < maxRow) {
155
+ line = session.getLine(row);
156
+ var indent = line.search(/\S/);
157
+ if (indent === -1)
158
+ continue;
159
+ if (startIndent > indent)
160
+ break;
161
+ var subRange = this.getFoldWidgetRange(session, "all", row);
162
+
163
+ if (subRange) {
164
+ if (subRange.start.row <= startRow) {
165
+ break;
166
+ } else if (subRange.isMultiLine()) {
167
+ row = subRange.end.row;
168
+ } else if (startIndent == indent) {
169
+ break;
170
+ }
171
+ }
172
+ endRow = row;
173
+ }
174
+
175
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
176
+ };
177
+
178
+ }).call(FoldMode.prototype);
179
+
180
+ });
181
+
182
+ define('ace/mode/tcl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
119
183
 
120
184
 
121
185
  var oop = require("../lib/oop");
122
- var lang = require("../lib/lang");
123
186
  var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
124
187
 
125
188
  var TclHighlightRules = function() {
126
189
 
127
- var builtinFunctions = lang.arrayToMap(
128
- ("").split("|")
129
-
130
- );
131
190
  this.$rules = {
132
191
  "start" : [
133
192
  {
134
193
  token : "comment",
135
- merge : true,
136
194
  regex : "#.*\\\\$",
137
195
  next : "commentfollow"
138
196
  }, {
@@ -154,24 +212,17 @@ var TclHighlightRules = function() {
154
212
  regex : '[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
155
213
  }, {
156
214
  token : "string", // multi line """ string start
157
- merge : true,
158
215
  regex : '[ ]*["]',
159
216
  next : "qqstring"
160
217
  }, {
161
- token : "variable.instancce", // variable xotcl with braces
162
- merge : true,
218
+ token : "variable.instance",
163
219
  regex : "[$]",
164
220
  next : "variable"
165
221
  }, {
166
222
  token : "support.function",
167
223
  regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"
168
224
  }, {
169
- token : function(value) {
170
- if (builtinFunctions.hasOwnProperty(value))
171
- return "keyword";
172
- else
173
- return "identifier";
174
- },
225
+ token : "identifier",
175
226
  regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
176
227
  }, {
177
228
  token : "paren.lparen",
@@ -191,7 +242,6 @@ var TclHighlightRules = function() {
191
242
  "commandItem" : [
192
243
  {
193
244
  token : "comment",
194
- merge : true,
195
245
  regex : "#.*\\\\$",
196
246
  next : "commentfollow"
197
247
  }, {
@@ -202,8 +252,7 @@ var TclHighlightRules = function() {
202
252
  token : "string", // single line
203
253
  regex : '[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
204
254
  }, {
205
- token : "variable.instancce", // variable xotcl with braces
206
- merge : true,
255
+ token : "variable.instance",
207
256
  regex : "[$]",
208
257
  next : "variable"
209
258
  }, {
@@ -218,6 +267,9 @@ var TclHighlightRules = function() {
218
267
  token : "support.function",
219
268
  regex : "(?:[:][:])",
220
269
  next : "commandItem"
270
+ }, {
271
+ token : "paren.rparen",
272
+ regex : "[\\])}]"
221
273
  }, {
222
274
  token : "support.function",
223
275
  regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::"
@@ -233,7 +285,6 @@ var TclHighlightRules = function() {
233
285
  next : "commentfollow"
234
286
  }, {
235
287
  token : "comment",
236
- merge : true,
237
288
  regex : '.+',
238
289
  next : "start"
239
290
  } ],
@@ -245,16 +296,12 @@ var TclHighlightRules = function() {
245
296
  }],
246
297
  "variable" : [
247
298
  {
248
- token : "variable.instancce", // variable xotcl with braces
249
- regex : "(?:[:][:])?(?:[a-zA-Z_]|\d)+(?:(?:[:][:])?(?:[a-zA-Z_]|\d)+)?(?:[(](?:[a-zA-Z_]|\d)+[)])?",
250
- next : "start"
251
- }, {
252
- token : "variable.instancce", // variable tcl
253
- regex : "(?:[a-zA-Z_]|\d)+(?:[(](?:[a-zA-Z_]|\d)+[)])?",
299
+ token : "variable.instance", // variable tcl
300
+ regex : "[a-zA-Z_\\d]+(?:[(][a-zA-Z_\\d]+[)])?",
254
301
  next : "start"
255
302
  }, {
256
- token : "variable.instancce", // variable tcl with braces
257
- regex : "{?(?:[a-zA-Z_]|\d)+}?",
303
+ token : "variable.instance", // variable tcl with braces
304
+ regex : "{?[a-zA-Z_\\d]+}?",
258
305
  next : "start"
259
306
  }],
260
307
  "qqstring" : [ {
@@ -263,7 +310,6 @@ var TclHighlightRules = function() {
263
310
  next : "start"
264
311
  }, {
265
312
  token : "string",
266
- merge : true,
267
313
  regex : '.+'
268
314
  } ]
269
315
  };
@@ -306,12 +352,7 @@ var MatchingBraceOutdent = function() {};
306
352
  };
307
353
 
308
354
  this.$getIndent = function(line) {
309
- var match = line.match(/^(\s+)/);
310
- if (match) {
311
- return match[1];
312
- }
313
-
314
- return "";
355
+ return line.match(/^\s*/)[0];
315
356
  };
316
357
 
317
358
  }).call(MatchingBraceOutdent.prototype);
@@ -0,0 +1,187 @@
1
+ /*
2
+ * tex.js
3
+ *
4
+ * Copyright (C) 2009-11 by RStudio, Inc.
5
+ *
6
+ * The Initial Developer of the Original Code is
7
+ * Ajax.org B.V.
8
+ * Portions created by the Initial Developer are Copyright (C) 2010
9
+ * the Initial Developer. All Rights Reserved.
10
+ *
11
+ * Distributed under the BSD license:
12
+ *
13
+ * Copyright (c) 2010, Ajax.org B.V.
14
+ * All rights reserved.
15
+ *
16
+ * Redistribution and use in source and binary forms, with or without
17
+ * modification, are permitted provided that the following conditions are met:
18
+ * * Redistributions of source code must retain the above copyright
19
+ * notice, this list of conditions and the following disclaimer.
20
+ * * Redistributions in binary form must reproduce the above copyright
21
+ * notice, this list of conditions and the following disclaimer in the
22
+ * documentation and/or other materials provided with the distribution.
23
+ * * Neither the name of Ajax.org B.V. nor the
24
+ * names of its contributors may be used to endorse or promote products
25
+ * derived from this software without specific prior written permission.
26
+ *
27
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
28
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
30
+ * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
31
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
32
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
33
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
34
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
36
+ *
37
+ */
38
+ define('ace/mode/tex', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/text_highlight_rules', 'ace/mode/tex_highlight_rules', 'ace/mode/matching_brace_outdent'], function(require, exports, module) {
39
+
40
+
41
+ var oop = require("../lib/oop");
42
+ var TextMode = require("./text").Mode;
43
+ var Tokenizer = require("../tokenizer").Tokenizer;
44
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
45
+ var TexHighlightRules = require("./tex_highlight_rules").TexHighlightRules;
46
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
47
+
48
+ var Mode = function(suppressHighlighting) {
49
+ if (suppressHighlighting)
50
+ this.HighlightRules = TextHighlightRules;
51
+ else
52
+ this.HighlightRules = TexHighlightRules;
53
+ this.$outdent = new MatchingBraceOutdent();
54
+ };
55
+ oop.inherits(Mode, TextMode);
56
+
57
+ (function() {
58
+ this.getNextLineIndent = function(state, line, tab) {
59
+ return this.$getIndent(line);
60
+ };
61
+
62
+ this.allowAutoInsert = function() {
63
+ return false;
64
+ };
65
+ this.$id = "ace/mode/tex";
66
+ }).call(Mode.prototype);
67
+
68
+ exports.Mode = Mode;
69
+ });
70
+ define('ace/mode/tex_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
71
+
72
+
73
+ var oop = require("../lib/oop");
74
+ var lang = require("../lib/lang");
75
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
76
+
77
+ var TexHighlightRules = function(textClass) {
78
+
79
+ if (!textClass)
80
+ textClass = "text";
81
+
82
+ this.$rules = {
83
+ "start" : [
84
+ {
85
+ token : "comment",
86
+ regex : "%.*$"
87
+ }, {
88
+ token : textClass, // non-command
89
+ regex : "\\\\[$&%#\\{\\}]"
90
+ }, {
91
+ token : "keyword", // command
92
+ regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b",
93
+ next : "nospell"
94
+ }, {
95
+ token : "keyword", // command
96
+ regex : "\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"
97
+ }, {
98
+ token : "paren.keyword.operator",
99
+ regex : "[[({]"
100
+ }, {
101
+ token : "paren.keyword.operator",
102
+ regex : "[\\])}]"
103
+ }, {
104
+ token : textClass,
105
+ regex : "\\s+"
106
+ }
107
+ ],
108
+ "nospell" : [
109
+ {
110
+ token : "comment",
111
+ regex : "%.*$",
112
+ next : "start"
113
+ }, {
114
+ token : "nospell." + textClass, // non-command
115
+ regex : "\\\\[$&%#\\{\\}]"
116
+ }, {
117
+ token : "keyword", // command
118
+ regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b"
119
+ }, {
120
+ token : "keyword", // command
121
+ regex : "\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",
122
+ next : "start"
123
+ }, {
124
+ token : "paren.keyword.operator",
125
+ regex : "[[({]"
126
+ }, {
127
+ token : "paren.keyword.operator",
128
+ regex : "[\\])]"
129
+ }, {
130
+ token : "paren.keyword.operator",
131
+ regex : "}",
132
+ next : "start"
133
+ }, {
134
+ token : "nospell." + textClass,
135
+ regex : "\\s+"
136
+ }, {
137
+ token : "nospell." + textClass,
138
+ regex : "\\w+"
139
+ }
140
+ ]
141
+ };
142
+ };
143
+
144
+ oop.inherits(TexHighlightRules, TextHighlightRules);
145
+
146
+ exports.TexHighlightRules = TexHighlightRules;
147
+ });
148
+
149
+ define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
150
+
151
+
152
+ var Range = require("../range").Range;
153
+
154
+ var MatchingBraceOutdent = function() {};
155
+
156
+ (function() {
157
+
158
+ this.checkOutdent = function(line, input) {
159
+ if (! /^\s+$/.test(line))
160
+ return false;
161
+
162
+ return /^\s*\}/.test(input);
163
+ };
164
+
165
+ this.autoOutdent = function(doc, row) {
166
+ var line = doc.getLine(row);
167
+ var match = line.match(/^(\s*\})/);
168
+
169
+ if (!match) return 0;
170
+
171
+ var column = match[1].length;
172
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
173
+
174
+ if (!openBracePos || openBracePos.row == row) return 0;
175
+
176
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
177
+ doc.replace(new Range(row, 0, row, column-1), indent);
178
+ };
179
+
180
+ this.$getIndent = function(line) {
181
+ return line.match(/^\s*/)[0];
182
+ };
183
+
184
+ }).call(MatchingBraceOutdent.prototype);
185
+
186
+ exports.MatchingBraceOutdent = MatchingBraceOutdent;
187
+ });