codemirror-rails 3.24 → 4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/lib/codemirror/rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/codemirror.js +3001 -1798
  4. data/vendor/assets/javascripts/codemirror/addons/comment/comment.js +24 -4
  5. data/vendor/assets/javascripts/codemirror/addons/comment/continuecomment.js +47 -32
  6. data/vendor/assets/javascripts/codemirror/addons/dialog/dialog.js +9 -2
  7. data/vendor/assets/javascripts/codemirror/addons/display/fullscreen.js +9 -2
  8. data/vendor/assets/javascripts/codemirror/addons/display/placeholder.js +9 -2
  9. data/vendor/assets/javascripts/codemirror/addons/display/rulers.js +9 -2
  10. data/vendor/assets/javascripts/codemirror/addons/edit/closebrackets.js +76 -37
  11. data/vendor/assets/javascripts/codemirror/addons/edit/closetag.js +59 -37
  12. data/vendor/assets/javascripts/codemirror/addons/edit/continuelist.js +25 -17
  13. data/vendor/assets/javascripts/codemirror/addons/edit/matchbrackets.js +67 -46
  14. data/vendor/assets/javascripts/codemirror/addons/edit/matchtags.js +10 -3
  15. data/vendor/assets/javascripts/codemirror/addons/edit/trailingspace.js +23 -14
  16. data/vendor/assets/javascripts/codemirror/addons/fold/brace-fold.js +12 -3
  17. data/vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js +12 -0
  18. data/vendor/assets/javascripts/codemirror/addons/fold/foldcode.js +28 -3
  19. data/vendor/assets/javascripts/codemirror/addons/fold/foldgutter.js +9 -2
  20. data/vendor/assets/javascripts/codemirror/addons/fold/indent-fold.js +12 -1
  21. data/vendor/assets/javascripts/codemirror/addons/fold/markdown-fold.js +12 -0
  22. data/vendor/assets/javascripts/codemirror/addons/fold/xml-fold.js +9 -4
  23. data/vendor/assets/javascripts/codemirror/addons/hint/anyword-hint.js +9 -2
  24. data/vendor/assets/javascripts/codemirror/addons/hint/css-hint.js +10 -3
  25. data/vendor/assets/javascripts/codemirror/addons/hint/html-hint.js +11 -3
  26. data/vendor/assets/javascripts/codemirror/addons/hint/javascript-hint.js +9 -4
  27. data/vendor/assets/javascripts/codemirror/addons/hint/python-hint.js +11 -3
  28. data/vendor/assets/javascripts/codemirror/addons/hint/show-hint.js +10 -4
  29. data/vendor/assets/javascripts/codemirror/addons/hint/sql-hint.js +9 -2
  30. data/vendor/assets/javascripts/codemirror/addons/hint/xml-hint.js +22 -34
  31. data/vendor/assets/javascripts/codemirror/addons/lint/coffeescript-lint.js +12 -1
  32. data/vendor/assets/javascripts/codemirror/addons/lint/css-lint.js +12 -1
  33. data/vendor/assets/javascripts/codemirror/addons/lint/javascript-lint.js +9 -4
  34. data/vendor/assets/javascripts/codemirror/addons/lint/json-lint.js +12 -1
  35. data/vendor/assets/javascripts/codemirror/addons/lint/lint.js +12 -8
  36. data/vendor/assets/javascripts/codemirror/addons/lint/yaml-lint.js +12 -1
  37. data/vendor/assets/javascripts/codemirror/addons/merge/merge.js +18 -16
  38. data/vendor/assets/javascripts/codemirror/addons/mode/loadmode.js +9 -2
  39. data/vendor/assets/javascripts/codemirror/addons/mode/multiplex.js +12 -0
  40. data/vendor/assets/javascripts/codemirror/addons/mode/overlay.js +15 -10
  41. data/vendor/assets/javascripts/codemirror/addons/runmode/colorize.js +11 -3
  42. data/vendor/assets/javascripts/codemirror/addons/runmode/runmode-standalone.js +0 -2
  43. data/vendor/assets/javascripts/codemirror/addons/runmode/runmode.js +12 -0
  44. data/vendor/assets/javascripts/codemirror/addons/runmode/runmode.node.js +4 -0
  45. data/vendor/assets/javascripts/codemirror/addons/scroll/scrollpastend.js +9 -2
  46. data/vendor/assets/javascripts/codemirror/addons/search/match-highlighter.js +12 -3
  47. data/vendor/assets/javascripts/codemirror/addons/search/search.js +24 -16
  48. data/vendor/assets/javascripts/codemirror/addons/search/searchcursor.js +21 -2
  49. data/vendor/assets/javascripts/codemirror/addons/selection/active-line.js +38 -17
  50. data/vendor/assets/javascripts/codemirror/addons/selection/mark-selection.js +16 -9
  51. data/vendor/assets/javascripts/codemirror/addons/tern/tern.js +33 -5
  52. data/vendor/assets/javascripts/codemirror/addons/wrap/hardwrap.js +27 -2
  53. data/vendor/assets/javascripts/codemirror/keymaps/emacs.js +12 -5
  54. data/vendor/assets/javascripts/codemirror/keymaps/sublime.js +505 -0
  55. data/vendor/assets/javascripts/codemirror/keymaps/vim.js +138 -179
  56. data/vendor/assets/javascripts/codemirror/modes/apl.js +12 -0
  57. data/vendor/assets/javascripts/codemirror/modes/asterisk.js +12 -0
  58. data/vendor/assets/javascripts/codemirror/modes/clike.js +15 -4
  59. data/vendor/assets/javascripts/codemirror/modes/clojure.js +13 -0
  60. data/vendor/assets/javascripts/codemirror/modes/cobol.js +12 -0
  61. data/vendor/assets/javascripts/codemirror/modes/coffeescript.js +12 -0
  62. data/vendor/assets/javascripts/codemirror/modes/commonlisp.js +12 -0
  63. data/vendor/assets/javascripts/codemirror/modes/css.js +18 -27
  64. data/vendor/assets/javascripts/codemirror/modes/d.js +12 -2
  65. data/vendor/assets/javascripts/codemirror/modes/diff.js +12 -0
  66. data/vendor/assets/javascripts/codemirror/modes/dtd.js +12 -0
  67. data/vendor/assets/javascripts/codemirror/modes/ecl.js +12 -0
  68. data/vendor/assets/javascripts/codemirror/modes/eiffel.js +12 -0
  69. data/vendor/assets/javascripts/codemirror/modes/erlang.js +13 -1
  70. data/vendor/assets/javascripts/codemirror/modes/fortran.js +12 -0
  71. data/vendor/assets/javascripts/codemirror/modes/gas.js +12 -0
  72. data/vendor/assets/javascripts/codemirror/modes/gfm.js +12 -0
  73. data/vendor/assets/javascripts/codemirror/modes/gherkin.js +12 -0
  74. data/vendor/assets/javascripts/codemirror/modes/go.js +12 -1
  75. data/vendor/assets/javascripts/codemirror/modes/groovy.js +12 -0
  76. data/vendor/assets/javascripts/codemirror/modes/haml.js +12 -0
  77. data/vendor/assets/javascripts/codemirror/modes/haskell.js +12 -0
  78. data/vendor/assets/javascripts/codemirror/modes/haxe.js +18 -9
  79. data/vendor/assets/javascripts/codemirror/modes/htmlembedded.js +12 -0
  80. data/vendor/assets/javascripts/codemirror/modes/htmlmixed.js +12 -0
  81. data/vendor/assets/javascripts/codemirror/modes/http.js +12 -0
  82. data/vendor/assets/javascripts/codemirror/modes/jade.js +12 -0
  83. data/vendor/assets/javascripts/codemirror/modes/javascript.js +23 -16
  84. data/vendor/assets/javascripts/codemirror/modes/jinja2.js +53 -118
  85. data/vendor/assets/javascripts/codemirror/modes/julia.js +12 -0
  86. data/vendor/assets/javascripts/codemirror/modes/livescript.js +17 -4
  87. data/vendor/assets/javascripts/codemirror/modes/lua.js +12 -0
  88. data/vendor/assets/javascripts/codemirror/modes/markdown.js +12 -0
  89. data/vendor/assets/javascripts/codemirror/modes/mirc.js +13 -0
  90. data/vendor/assets/javascripts/codemirror/modes/mllike.js +12 -1
  91. data/vendor/assets/javascripts/codemirror/modes/nginx.js +12 -0
  92. data/vendor/assets/javascripts/codemirror/modes/ntriples.js +13 -0
  93. data/vendor/assets/javascripts/codemirror/modes/octave.js +12 -0
  94. data/vendor/assets/javascripts/codemirror/modes/pascal.js +12 -0
  95. data/vendor/assets/javascripts/codemirror/modes/pegjs.js +12 -0
  96. data/vendor/assets/javascripts/codemirror/modes/perl.js +84 -73
  97. data/vendor/assets/javascripts/codemirror/modes/php.js +20 -101
  98. data/vendor/assets/javascripts/codemirror/modes/pig.js +12 -0
  99. data/vendor/assets/javascripts/codemirror/modes/properties.js +12 -0
  100. data/vendor/assets/javascripts/codemirror/modes/puppet.js +13 -0
  101. data/vendor/assets/javascripts/codemirror/modes/python.js +21 -11
  102. data/vendor/assets/javascripts/codemirror/modes/q.js +12 -0
  103. data/vendor/assets/javascripts/codemirror/modes/r.js +13 -3
  104. data/vendor/assets/javascripts/codemirror/modes/{rpm-spec.js → rpm.js} +34 -2
  105. data/vendor/assets/javascripts/codemirror/modes/rst.js +12 -0
  106. data/vendor/assets/javascripts/codemirror/modes/ruby.js +11 -0
  107. data/vendor/assets/javascripts/codemirror/modes/rust.js +12 -0
  108. data/vendor/assets/javascripts/codemirror/modes/sass.js +12 -0
  109. data/vendor/assets/javascripts/codemirror/modes/scheme.js +13 -0
  110. data/vendor/assets/javascripts/codemirror/modes/shell.js +12 -0
  111. data/vendor/assets/javascripts/codemirror/modes/sieve.js +11 -4
  112. data/vendor/assets/javascripts/codemirror/modes/smalltalk.js +12 -0
  113. data/vendor/assets/javascripts/codemirror/modes/smarty.js +13 -0
  114. data/vendor/assets/javascripts/codemirror/modes/smartymixed.js +14 -2
  115. data/vendor/assets/javascripts/codemirror/modes/solr.js +12 -0
  116. data/vendor/assets/javascripts/codemirror/modes/sparql.js +12 -0
  117. data/vendor/assets/javascripts/codemirror/modes/sql.js +12 -0
  118. data/vendor/assets/javascripts/codemirror/modes/stex.js +12 -0
  119. data/vendor/assets/javascripts/codemirror/modes/tcl.js +13 -0
  120. data/vendor/assets/javascripts/codemirror/modes/tiddlywiki.js +13 -0
  121. data/vendor/assets/javascripts/codemirror/modes/tiki.js +12 -0
  122. data/vendor/assets/javascripts/codemirror/modes/toml.js +12 -0
  123. data/vendor/assets/javascripts/codemirror/modes/turtle.js +12 -0
  124. data/vendor/assets/javascripts/codemirror/modes/vb.js +12 -0
  125. data/vendor/assets/javascripts/codemirror/modes/vbscript.js +13 -0
  126. data/vendor/assets/javascripts/codemirror/modes/velocity.js +12 -0
  127. data/vendor/assets/javascripts/codemirror/modes/verilog.js +89 -236
  128. data/vendor/assets/javascripts/codemirror/modes/xml.js +41 -60
  129. data/vendor/assets/javascripts/codemirror/modes/xquery.js +12 -0
  130. data/vendor/assets/javascripts/codemirror/modes/yaml.js +12 -0
  131. data/vendor/assets/javascripts/codemirror/modes/z80.js +12 -0
  132. data/vendor/assets/stylesheets/codemirror.css +15 -10
  133. data/vendor/assets/stylesheets/codemirror/themes/ambiance.css +1 -0
  134. data/vendor/assets/stylesheets/codemirror/themes/lesser-dark.css +4 -0
  135. data/vendor/assets/stylesheets/codemirror/themes/mdn-like.css +1 -1
  136. data/vendor/assets/stylesheets/codemirror/themes/pastel-on-dark.css +1 -0
  137. data/vendor/assets/stylesheets/codemirror/themes/rubyblue.css +2 -0
  138. data/vendor/assets/stylesheets/codemirror/themes/solarized.css +17 -3
  139. metadata +20 -25
  140. data/vendor/assets/javascripts/codemirror/keymaps/extra.js +0 -43
  141. data/vendor/assets/javascripts/codemirror/modes/django.js +0 -55
  142. data/vendor/assets/javascripts/codemirror/modes/dylan.js +0 -284
  143. data/vendor/assets/javascripts/codemirror/modes/less.js +0 -347
  144. data/vendor/assets/javascripts/codemirror/modes/rpm-changes.js +0 -19
  145. data/vendor/assets/stylesheets/codemirror/modes/rpm-spec.css +0 -5
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode('shell', function() {
2
12
 
3
13
  var words = {};
@@ -116,3 +126,5 @@ CodeMirror.defineMode('shell', function() {
116
126
  });
117
127
 
118
128
  CodeMirror.defineMIME('text/x-sh', 'shell');
129
+
130
+ });
@@ -1,7 +1,12 @@
1
- /*
2
- * See LICENSE in this directory for the license under which this code
3
- * is released.
4
- */
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
5
10
 
6
11
  CodeMirror.defineMode("sieve", function(config) {
7
12
  function words(str) {
@@ -181,3 +186,5 @@ CodeMirror.defineMode("sieve", function(config) {
181
186
  });
182
187
 
183
188
  CodeMirror.defineMIME("application/sieve", "sieve");
189
+
190
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode('smalltalk', function(config) {
2
12
 
3
13
  var specialChars = /[+\-\/\\*~<>=@%|&?!.,:;^]/;
@@ -151,3 +161,5 @@ CodeMirror.defineMode('smalltalk', function(config) {
151
161
  });
152
162
 
153
163
  CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});
164
+
165
+ });
@@ -1,6 +1,17 @@
1
1
  /**
2
2
  * Smarty 2 and 3 mode.
3
3
  */
4
+
5
+ (function(mod) {
6
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
7
+ mod(require("../../lib/codemirror"));
8
+ else if (typeof define == "function" && define.amd) // AMD
9
+ define(["../../lib/codemirror"], mod);
10
+ else // Plain browser env
11
+ mod(CodeMirror);
12
+ })(function(CodeMirror) {
13
+ "use strict";
14
+
4
15
  CodeMirror.defineMode("smarty", function(config) {
5
16
  "use strict";
6
17
 
@@ -203,3 +214,5 @@ CodeMirror.defineMode("smarty", function(config) {
203
214
  });
204
215
 
205
216
  CodeMirror.defineMIME("text/x-smarty", "smarty");
217
+
218
+ });
@@ -5,6 +5,17 @@
5
5
  * @version 3.0
6
6
  * @date 05.07.2013
7
7
  */
8
+
9
+ (function(mod) {
10
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
11
+ mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../smarty/smarty"));
12
+ else if (typeof define == "function" && define.amd) // AMD
13
+ define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../smarty/smarty"], mod);
14
+ else // Plain browser env
15
+ mod(CodeMirror);
16
+ })(function(CodeMirror) {
17
+ "use strict";
18
+
8
19
  CodeMirror.defineMode("smartymixed", function(config) {
9
20
  var settings, regs, helpers, parsers,
10
21
  htmlMixedMode = CodeMirror.getMode(config, "htmlmixed"),
@@ -166,8 +177,9 @@ CodeMirror.defineMode("smartymixed", function(config) {
166
177
  };
167
178
  }
168
179
  };
169
- },
170
- "htmlmixed");
180
+ }, "htmlmixed", "smarty");
171
181
 
172
182
  CodeMirror.defineMIME("text/x-smarty", "smartymixed");
173
183
  // vim: et ts=2 sts=2 sw=2
184
+
185
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("solr", function() {
2
12
  "use strict";
3
13
 
@@ -87,3 +97,5 @@ CodeMirror.defineMode("solr", function() {
87
97
  });
88
98
 
89
99
  CodeMirror.defineMIME("text/x-solr", "solr");
100
+
101
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("sparql", function(config) {
2
12
  var indentUnit = config.indentUnit;
3
13
  var curPunc;
@@ -143,3 +153,5 @@ CodeMirror.defineMode("sparql", function(config) {
143
153
  });
144
154
 
145
155
  CodeMirror.defineMIME("application/x-sparql-query", "sparql");
156
+
157
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("sql", function(config, parserConfig) {
2
12
  "use strict";
3
13
 
@@ -345,6 +355,8 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
345
355
  });
346
356
  }());
347
357
 
358
+ });
359
+
348
360
  /*
349
361
  How Properties of Mime Types are used by SQL Mode
350
362
  =================================================
@@ -3,6 +3,16 @@
3
3
  * Licence: MIT
4
4
  */
5
5
 
6
+ (function(mod) {
7
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
8
+ mod(require("../../lib/codemirror"));
9
+ else if (typeof define == "function" && define.amd) // AMD
10
+ define(["../../lib/codemirror"], mod);
11
+ else // Plain browser env
12
+ mod(CodeMirror);
13
+ })(function(CodeMirror) {
14
+ "use strict";
15
+
6
16
  CodeMirror.defineMode("stex", function() {
7
17
  "use strict";
8
18
 
@@ -244,3 +254,5 @@ CodeMirror.defineMode("stex", function() {
244
254
 
245
255
  CodeMirror.defineMIME("text/x-stex", "stex");
246
256
  CodeMirror.defineMIME("text/x-latex", "stex");
257
+
258
+ });
@@ -1,4 +1,15 @@
1
1
  //tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara
2
+
3
+ (function(mod) {
4
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
5
+ mod(require("../../lib/codemirror"));
6
+ else if (typeof define == "function" && define.amd) // AMD
7
+ define(["../../lib/codemirror"], mod);
8
+ else // Plain browser env
9
+ mod(CodeMirror);
10
+ })(function(CodeMirror) {
11
+ "use strict";
12
+
2
13
  CodeMirror.defineMode("tcl", function() {
3
14
  function parseWords(str) {
4
15
  var obj = {}, words = str.split(" ");
@@ -129,3 +140,5 @@ CodeMirror.defineMode("tcl", function() {
129
140
  };
130
141
  });
131
142
  CodeMirror.defineMIME("text/x-tcl", "tcl");
143
+
144
+ });
@@ -14,6 +14,17 @@
14
14
  CoreVersion parameter is needed for TiddlyWiki only!
15
15
  ***/
16
16
  //{{{
17
+
18
+ (function(mod) {
19
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
20
+ mod(require("../../lib/codemirror"));
21
+ else if (typeof define == "function" && define.amd) // AMD
22
+ define(["../../lib/codemirror"], mod);
23
+ else // Plain browser env
24
+ mod(CodeMirror);
25
+ })(function(CodeMirror) {
26
+ "use strict";
27
+
17
28
  CodeMirror.defineMode("tiddlywiki", function () {
18
29
  // Tokenizer
19
30
  var textwords = {};
@@ -350,4 +361,6 @@ CodeMirror.defineMode("tiddlywiki", function () {
350
361
  });
351
362
 
352
363
  CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki");
364
+ });
365
+
353
366
  //}}}
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode('tiki', function(config) {
2
12
  function inBlock(style, terminator, returnTokenizer) {
3
13
  return function(stream, state) {
@@ -306,3 +316,5 @@ return {
306
316
  });
307
317
 
308
318
  CodeMirror.defineMIME("text/tiki", "tiki");
319
+
320
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("toml", function () {
2
12
  return {
3
13
  startState: function () {
@@ -71,3 +81,5 @@ CodeMirror.defineMode("toml", function () {
71
81
  });
72
82
 
73
83
  CodeMirror.defineMIME('text/x-toml', 'toml');
84
+
85
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("turtle", function(config) {
2
12
  var indentUnit = config.indentUnit;
3
13
  var curPunc;
@@ -143,3 +153,5 @@ CodeMirror.defineMode("turtle", function(config) {
143
153
  });
144
154
 
145
155
  CodeMirror.defineMIME("text/turtle", "turtle");
156
+
157
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("vb", function(conf, parserConf) {
2
12
  var ERRORCLASS = 'error';
3
13
 
@@ -257,3 +267,5 @@ CodeMirror.defineMode("vb", function(conf, parserConf) {
257
267
  });
258
268
 
259
269
  CodeMirror.defineMIME("text/x-vb", "vb");
270
+
271
+ });
@@ -8,6 +8,17 @@ E.G.:
8
8
  isASP: true
9
9
  });
10
10
  */
11
+
12
+ (function(mod) {
13
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
14
+ mod(require("../../lib/codemirror"));
15
+ else if (typeof define == "function" && define.amd) // AMD
16
+ define(["../../lib/codemirror"], mod);
17
+ else // Plain browser env
18
+ mod(CodeMirror);
19
+ })(function(CodeMirror) {
20
+ "use strict";
21
+
11
22
  CodeMirror.defineMode("vbscript", function(conf, parserConf) {
12
23
  var ERRORCLASS = 'error';
13
24
 
@@ -332,3 +343,5 @@ CodeMirror.defineMode("vbscript", function(conf, parserConf) {
332
343
  });
333
344
 
334
345
  CodeMirror.defineMIME("text/vbscript", "vbscript");
346
+
347
+ });
@@ -1,3 +1,13 @@
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
10
+
1
11
  CodeMirror.defineMode("velocity", function() {
2
12
  function parseWords(str) {
3
13
  var obj = {}, words = str.split(" ");
@@ -184,3 +194,5 @@ CodeMirror.defineMode("velocity", function() {
184
194
  });
185
195
 
186
196
  CodeMirror.defineMIME("text/velocity", "velocity");
197
+
198
+ });
@@ -1,139 +1,43 @@
1
- CodeMirror.defineMode("verilog", function(config, parserConfig) {
1
+ (function(mod) {
2
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
3
+ mod(require("../../lib/codemirror"));
4
+ else if (typeof define == "function" && define.amd) // AMD
5
+ define(["../../lib/codemirror"], mod);
6
+ else // Plain browser env
7
+ mod(CodeMirror);
8
+ })(function(CodeMirror) {
9
+ "use strict";
2
10
 
11
+ CodeMirror.defineMode("verilog", function(config, parserConfig) {
3
12
  var indentUnit = config.indentUnit,
4
- statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
5
- dontAlignCalls = parserConfig.dontAlignCalls,
6
- noIndentKeywords = parserConfig.noIndentKeywords || [],
13
+ keywords = parserConfig.keywords || {},
14
+ blockKeywords = parserConfig.blockKeywords || {},
15
+ atoms = parserConfig.atoms || {},
16
+ hooks = parserConfig.hooks || {},
7
17
  multiLineStrings = parserConfig.multiLineStrings;
8
-
9
- function words(str) {
10
- var obj = {}, words = str.split(" ");
11
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
12
- return obj;
13
- }
14
-
15
- /**
16
- * Keywords from IEEE 1800-2012
17
- */
18
- var keywords = words(
19
- "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " +
20
- "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " +
21
- "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " +
22
- "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " +
23
- "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " +
24
- "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " +
25
- "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " +
26
- "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " +
27
- "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " +
28
- "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " +
29
- "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " +
30
- "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " +
31
- "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " +
32
- "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " +
33
- "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " +
34
- "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " +
35
- "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " +
36
- "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");
37
-
38
- /** Operators from IEEE 1800-2012
39
- unary_operator ::=
40
- + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
41
- binary_operator ::=
42
- + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **
43
- | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<
44
- | -> | <->
45
- inc_or_dec_operator ::= ++ | --
46
- unary_module_path_operator ::=
47
- ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
48
- binary_module_path_operator ::=
49
- == | != | && | || | & | | | ^ | ^~ | ~^
50
- */
51
- var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/;
52
- var isBracketChar = /[\[\]{}()]/;
53
-
54
- var unsignedNumber = /\d[0-9_]*/;
55
- var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i;
56
- var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i;
57
- var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;
58
- var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;
59
- var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;
60
-
61
- var closingBracketOrWord = /^((\w+)|[)}\]])/;
62
- var closingBracket = /[)}\]]/;
18
+ var isOperatorChar = /[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;
63
19
 
64
20
  var curPunc;
65
- var curKeyword;
66
-
67
- // Block openings which are closed by a matching keyword in the form of ("end" + keyword)
68
- // E.g. "task" => "endtask"
69
- var blockKeywords = words(
70
- "case checker class clocking config function generate group interface module package" +
71
- "primitive program property specify sequence table task"
72
- );
73
-
74
- // Opening/closing pairs
75
- var openClose = {};
76
- for (var keyword in blockKeywords) {
77
- openClose[keyword] = "end" + keyword;
78
- }
79
- openClose["begin"] = "end";
80
- openClose["casex"] = "endcase";
81
- openClose["casez"] = "endcase";
82
- openClose["do" ] = "while";
83
- openClose["fork" ] = "join;join_any;join_none";
84
-
85
- for (var i in noIndentKeywords) {
86
- var keyword = noIndentKeywords[i];
87
- if (openClose[keyword]) {
88
- openClose[keyword] = undefined;
89
- }
90
- }
91
-
92
- var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else for foreach forever if initial repeat while");
93
21
 
94
22
  function tokenBase(stream, state) {
95
- var ch = stream.peek();
96
- if (/[,;:\.]/.test(ch)) {
97
- curPunc = stream.next();
98
- return null;
99
- }
100
- if (isBracketChar.test(ch)) {
101
- curPunc = stream.next();
102
- return "bracket";
103
- }
104
- // Macros (tick-defines)
105
- if (ch == '`') {
106
- stream.next();
107
- if (stream.eatWhile(/[\w\$_]/)) {
108
- return "def";
109
- } else {
110
- return null;
111
- }
112
- }
113
- // System calls
114
- if (ch == '$') {
115
- stream.next();
116
- if (stream.eatWhile(/[\w\$_]/)) {
117
- return "meta";
118
- } else {
119
- return null;
120
- }
121
- }
122
- // Time literals
123
- if (ch == '#') {
124
- stream.next();
125
- stream.eatWhile(/[\d_.]/);
126
- return "def";
23
+ var ch = stream.next();
24
+ if (hooks[ch]) {
25
+ var result = hooks[ch](stream, state);
26
+ if (result !== false) return result;
127
27
  }
128
- // Strings
129
28
  if (ch == '"') {
130
- stream.next();
131
29
  state.tokenize = tokenString(ch);
132
30
  return state.tokenize(stream, state);
133
31
  }
134
- // Comments
32
+ if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
33
+ curPunc = ch;
34
+ return null;
35
+ }
36
+ if (/[\d']/.test(ch)) {
37
+ stream.eatWhile(/[\w\.']/);
38
+ return "number";
39
+ }
135
40
  if (ch == "/") {
136
- stream.next();
137
41
  if (stream.eat("*")) {
138
42
  state.tokenize = tokenComment;
139
43
  return tokenComment(stream, state);
@@ -142,43 +46,19 @@ CodeMirror.defineMode("verilog", function(config, parserConfig) {
142
46
  stream.skipToEnd();
143
47
  return "comment";
144
48
  }
145
- stream.backUp(1);
146
49
  }
147
-
148
- // Numeric literals
149
- if (stream.match(realLiteral) ||
150
- stream.match(decimalLiteral) ||
151
- stream.match(binaryLiteral) ||
152
- stream.match(octLiteral) ||
153
- stream.match(hexLiteral) ||
154
- stream.match(unsignedNumber) ||
155
- stream.match(realLiteral)) {
156
- return "number";
50
+ if (isOperatorChar.test(ch)) {
51
+ stream.eatWhile(isOperatorChar);
52
+ return "operator";
157
53
  }
158
-
159
- // Operators
160
- if (stream.eatWhile(isOperatorChar)) {
161
- return "meta";
162
- }
163
-
164
- // Keywords / plain variables
165
- if (stream.eatWhile(/[\w\$_]/)) {
166
- var cur = stream.current();
167
- if (keywords[cur]) {
168
- if (openClose[cur]) {
169
- curPunc = "newblock";
170
- }
171
- if (statementKeywords[cur]) {
172
- curPunc = "newstatement";
173
- }
174
- curKeyword = cur;
175
- return "keyword";
176
- }
177
- return "variable";
54
+ stream.eatWhile(/[\w\$_]/);
55
+ var cur = stream.current();
56
+ if (keywords.propertyIsEnumerable(cur)) {
57
+ if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
58
+ return "keyword";
178
59
  }
179
-
180
- stream.next();
181
- return null;
60
+ if (atoms.propertyIsEnumerable(cur)) return "atom";
61
+ return "variable";
182
62
  }
183
63
 
184
64
  function tokenString(quote) {
@@ -214,56 +94,18 @@ CodeMirror.defineMode("verilog", function(config, parserConfig) {
214
94
  this.prev = prev;
215
95
  }
216
96
  function pushContext(state, col, type) {
217
- var indent = state.indented;
218
- var c = new Context(indent, col, type, null, state.context);
219
- return state.context = c;
97
+ return state.context = new Context(state.indented, col, type, null, state.context);
220
98
  }
221
99
  function popContext(state) {
222
100
  var t = state.context.type;
223
- if (t == ")" || t == "]" || t == "}") {
101
+ if (t == ")" || t == "]" || t == "}")
224
102
  state.indented = state.context.indented;
225
- }
226
103
  return state.context = state.context.prev;
227
104
  }
228
105
 
229
- function isClosing(text, contextClosing) {
230
- if (text == contextClosing) {
231
- return true;
232
- } else {
233
- // contextClosing may be mulitple keywords separated by ;
234
- var closingKeywords = contextClosing.split(";");
235
- for (var i in closingKeywords) {
236
- if (text == closingKeywords[i]) {
237
- return true;
238
- }
239
- }
240
- return false;
241
- }
242
- }
243
-
244
- function buildElectricInputRegEx() {
245
- // Reindentation should occur on any bracket char: {}()[]
246
- // or on a match of any of the block closing keywords, at
247
- // the end of a line
248
- var allClosings = [];
249
- for (var i in openClose) {
250
- if (openClose[i]) {
251
- var closings = openClose[i].split(";");
252
- for (var j in closings) {
253
- allClosings.push(closings[j]);
254
- }
255
- }
256
- }
257
- var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$");
258
- return re;
259
- }
260
-
261
106
  // Interface
262
- return {
263
-
264
- // Regex to force current line to reindent
265
- electricInput: buildElectricInputRegEx(),
266
107
 
108
+ return {
267
109
  startState: function(basecolumn) {
268
110
  return {
269
111
  tokenize: null,
@@ -282,58 +124,69 @@ CodeMirror.defineMode("verilog", function(config, parserConfig) {
282
124
  }
283
125
  if (stream.eatSpace()) return null;
284
126
  curPunc = null;
285
- curKeyword = null;
286
127
  var style = (state.tokenize || tokenBase)(stream, state);
287
- if (style == "comment" || style == "meta" || style == "variable") return style;
128
+ if (style == "comment" || style == "meta") return style;
288
129
  if (ctx.align == null) ctx.align = true;
289
130
 
290
- if (curPunc == ctx.type) {
291
- popContext(state);
292
- }
293
- else if ((curPunc == ";" && ctx.type == "statement") ||
294
- (ctx.type && isClosing(curKeyword, ctx.type))) {
295
- ctx = popContext(state);
296
- while (ctx && ctx.type == "statement") ctx = popContext(state);
131
+ if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
132
+ else if (curPunc == "{") pushContext(state, stream.column(), "}");
133
+ else if (curPunc == "[") pushContext(state, stream.column(), "]");
134
+ else if (curPunc == "(") pushContext(state, stream.column(), ")");
135
+ else if (curPunc == "}") {
136
+ while (ctx.type == "statement") ctx = popContext(state);
137
+ if (ctx.type == "}") ctx = popContext(state);
138
+ while (ctx.type == "statement") ctx = popContext(state);
297
139
  }
298
- else if (curPunc == "{") { pushContext(state, stream.column(), "}"); }
299
- else if (curPunc == "[") { pushContext(state, stream.column(), "]"); }
300
- else if (curPunc == "(") { pushContext(state, stream.column(), ")"); }
301
- else if (ctx && ctx.type == "endcase" && curPunc == ":") { pushContext(state, stream.column(), "statement"); }
302
- else if (curPunc == "newstatement") {
140
+ else if (curPunc == ctx.type) popContext(state);
141
+ else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
303
142
  pushContext(state, stream.column(), "statement");
304
- } else if (curPunc == "newblock") {
305
- var close = openClose[curKeyword];
306
- pushContext(state, stream.column(), close);
307
- }
308
-
309
143
  state.startOfLine = false;
310
144
  return style;
311
145
  },
312
146
 
313
147
  indent: function(state, textAfter) {
314
- if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;
315
- var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
316
- if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
317
- var closing = false;
318
- var possibleClosing = textAfter.match(closingBracketOrWord);
319
- if (possibleClosing) {
320
- closing = isClosing(possibleClosing[0], ctx.type);
321
- }
322
- if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
323
- else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);
324
- else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit;
148
+ if (state.tokenize != tokenBase && state.tokenize != null) return 0;
149
+ var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;
150
+ if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
151
+ else if (ctx.align) return ctx.column + (closing ? 0 : 1);
325
152
  else return ctx.indented + (closing ? 0 : indentUnit);
326
153
  },
327
154
 
328
- blockCommentStart: "/*",
329
- blockCommentEnd: "*/",
330
- lineComment: "//"
155
+ electricChars: "{}"
331
156
  };
332
157
  });
333
158
 
334
- CodeMirror.defineMIME("text/x-verilog", {
335
- name: "verilog"
336
- });
337
- CodeMirror.defineMIME("text/x-systemverilog", {
338
- name: "systemverilog"
159
+ function words(str) {
160
+ var obj = {}, words = str.split(" ");
161
+ for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
162
+ return obj;
163
+ }
164
+
165
+ var verilogKeywords = "always and assign automatic begin buf bufif0 bufif1 case casex casez cell cmos config " +
166
+ "deassign default defparam design disable edge else end endcase endconfig endfunction endgenerate endmodule " +
167
+ "endprimitive endspecify endtable endtask event for force forever fork function generate genvar highz0 " +
168
+ "highz1 if ifnone incdir include initial inout input instance integer join large liblist library localparam " +
169
+ "macromodule medium module nand negedge nmos nor noshowcancelled not notif0 notif1 or output parameter pmos " +
170
+ "posedge primitive pull0 pull1 pulldown pullup pulsestyle_onevent pulsestyle_ondetect rcmos real realtime " +
171
+ "reg release repeat rnmos rpmos rtran rtranif0 rtranif1 scalared showcancelled signed small specify specparam " +
172
+ "strong0 strong1 supply0 supply1 table task time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg " +
173
+ "unsigned use vectored wait wand weak0 weak1 while wire wor xnor xor";
174
+
175
+ var verilogBlockKeywords = "begin bufif0 bufif1 case casex casez config else end endcase endconfig endfunction " +
176
+ "endgenerate endmodule endprimitive endspecify endtable endtask for forever function generate if ifnone " +
177
+ "macromodule module primitive repeat specify table task while";
178
+
179
+ function metaHook(stream) {
180
+ stream.eatWhile(/[\w\$_]/);
181
+ return "meta";
182
+ }
183
+
184
+ CodeMirror.defineMIME("text/x-verilog", {
185
+ name: "verilog",
186
+ keywords: words(verilogKeywords),
187
+ blockKeywords: words(verilogBlockKeywords),
188
+ atoms: words("null"),
189
+ hooks: {"`": metaHook, "$": metaHook}
190
+ });
191
+
339
192
  });