codemirror-rails 2.36 → 3.00
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/codemirror/rails/version.rb +2 -2
- data/vendor/assets/javascripts/codemirror.js +3727 -2345
- data/vendor/assets/javascripts/codemirror/keymaps/vim.js +2226 -825
- data/vendor/assets/javascripts/codemirror/modes/clike.js +23 -8
- data/vendor/assets/javascripts/codemirror/modes/clojure.js +4 -4
- data/vendor/assets/javascripts/codemirror/modes/coffeescript.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/commonlisp.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/css.js +20 -3
- data/vendor/assets/javascripts/codemirror/modes/diff.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/ecl.js +192 -203
- data/vendor/assets/javascripts/codemirror/modes/erlang.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/gfm.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/go.js +1 -6
- data/vendor/assets/javascripts/codemirror/modes/groovy.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/haskell.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/haxe.js +13 -13
- data/vendor/assets/javascripts/codemirror/modes/htmlembedded.js +3 -3
- data/vendor/assets/javascripts/codemirror/modes/htmlmixed.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/http.js +98 -0
- data/vendor/assets/javascripts/codemirror/modes/javascript.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/jinja2.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/markdown.js +7 -14
- data/vendor/assets/javascripts/codemirror/modes/mysql.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/ntriples.js +0 -2
- data/vendor/assets/javascripts/codemirror/modes/ocaml.js +1 -2
- data/vendor/assets/javascripts/codemirror/modes/pascal.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/perl.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/php.js +5 -4
- data/vendor/assets/javascripts/codemirror/modes/pig.js +3 -4
- data/vendor/assets/javascripts/codemirror/modes/plsql.js +3 -4
- data/vendor/assets/javascripts/codemirror/modes/python.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/r.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/rpm-changes.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/rpm-spec.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/rst.js +1 -13
- data/vendor/assets/javascripts/codemirror/modes/ruby.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/rust.js +3 -3
- data/vendor/assets/javascripts/codemirror/modes/scheme.js +4 -4
- data/vendor/assets/javascripts/codemirror/modes/shell.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/sieve.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/smalltalk.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/smarty.js +1 -1
- data/vendor/assets/javascripts/codemirror/modes/sparql.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/stex.js +6 -13
- data/vendor/assets/javascripts/codemirror/modes/tiddlywiki.js +6 -37
- data/vendor/assets/javascripts/codemirror/modes/tiki.js +3 -3
- data/vendor/assets/javascripts/codemirror/modes/vb.js +3 -3
- data/vendor/assets/javascripts/codemirror/modes/velocity.js +2 -4
- data/vendor/assets/javascripts/codemirror/modes/verilog.js +182 -194
- data/vendor/assets/javascripts/codemirror/modes/xml.js +9 -5
- data/vendor/assets/javascripts/codemirror/modes/xquery.js +3 -4
- data/vendor/assets/javascripts/codemirror/utils/closetag.js +85 -164
- data/vendor/assets/javascripts/codemirror/utils/colorize.js +29 -0
- data/vendor/assets/javascripts/codemirror/utils/continuecomment.js +1 -1
- data/vendor/assets/javascripts/codemirror/utils/continuelist.js +28 -0
- data/vendor/assets/javascripts/codemirror/utils/dialog.js +21 -16
- data/vendor/assets/javascripts/codemirror/utils/foldcode.js +59 -73
- data/vendor/assets/javascripts/codemirror/utils/formatting.js +43 -131
- data/vendor/assets/javascripts/codemirror/utils/javascript-hint.js +22 -19
- data/vendor/assets/javascripts/codemirror/utils/match-highlighter.js +5 -3
- data/vendor/assets/javascripts/codemirror/utils/matchbrackets.js +63 -0
- data/vendor/assets/javascripts/codemirror/utils/multiplex.js +18 -0
- data/vendor/assets/javascripts/codemirror/utils/pig-hint.js +3 -9
- data/vendor/assets/javascripts/codemirror/utils/runmode.js +19 -20
- data/vendor/assets/javascripts/codemirror/utils/search.js +6 -5
- data/vendor/assets/javascripts/codemirror/utils/searchcursor.js +1 -1
- data/vendor/assets/javascripts/codemirror/utils/simple-hint.js +10 -10
- data/vendor/assets/javascripts/codemirror/utils/xml-hint.js +2 -2
- data/vendor/assets/stylesheets/codemirror.css +169 -104
- data/vendor/assets/stylesheets/codemirror/themes/ambiance-mobile.css +1 -1
- data/vendor/assets/stylesheets/codemirror/themes/ambiance.css +7 -12
- data/vendor/assets/stylesheets/codemirror/themes/blackboard.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/cobalt.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/erlang-dark.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/lesser-dark.css +4 -4
- data/vendor/assets/stylesheets/codemirror/themes/monokai.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/night.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/rubyblue.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/solarized.css +207 -0
- data/vendor/assets/stylesheets/codemirror/themes/twilight.css +4 -4
- data/vendor/assets/stylesheets/codemirror/themes/vibrant-ink.css +3 -3
- data/vendor/assets/stylesheets/codemirror/themes/xq-dark.css +3 -3
- data/vendor/assets/stylesheets/codemirror/utils/dialog.css +12 -7
- metadata +16 -11
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
CodeMirror.defineMode("changes", function(
|
|
1
|
+
CodeMirror.defineMode("changes", function() {
|
|
2
2
|
var headerSeperator = /^-+$/;
|
|
3
3
|
var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;
|
|
4
4
|
var simpleEmail = /^[\w+.-]+@[\w.-]+/;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Quick and dirty spec file highlighting
|
|
2
2
|
|
|
3
|
-
CodeMirror.defineMode("spec", function(
|
|
3
|
+
CodeMirror.defineMode("spec", function() {
|
|
4
4
|
var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;
|
|
5
5
|
|
|
6
6
|
var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\(\w+\))?|Obsoletes|Conflicts|Recommends|Source\d*|Patch\d*|ExclusiveArch|NoSource|Supplements):/;
|
|
@@ -18,17 +18,7 @@ CodeMirror.defineMode('rst', function(config, options) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
function hasMode(mode) {
|
|
21
|
-
|
|
22
|
-
var modes = CodeMirror.listModes();
|
|
23
|
-
|
|
24
|
-
for (var i in modes) {
|
|
25
|
-
if (modes[i] == mode) {
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return false;
|
|
21
|
+
return mode && CodeMirror.modes.hasOwnProperty(mode);
|
|
32
22
|
}
|
|
33
23
|
|
|
34
24
|
function getMode(mode) {
|
|
@@ -53,8 +43,6 @@ CodeMirror.defineMode('rst', function(config, options) {
|
|
|
53
43
|
var reVerbatimMarker = /^::\s*$/;
|
|
54
44
|
var rePreInline = /^[-\s"([{</:]/;
|
|
55
45
|
var rePostInline = /^[-\s`'")\]}>/:.,;!?\\_]/;
|
|
56
|
-
var reEnumeratedList = /^\s*((\d+|[A-Za-z#])[.)]|\((\d+|[A-Z-a-z#])\))\s/;
|
|
57
|
-
var reBulletedList = /^\s*[-\+\*]\s/;
|
|
58
46
|
var reExamples = /^\s+(>>>|In \[\d+\]:)\s/;
|
|
59
47
|
|
|
60
48
|
function normal(stream, state) {
|
|
@@ -209,7 +209,7 @@ CodeMirror.defineMode("rust", function() {
|
|
|
209
209
|
if (type == "(" || type == "[") return matchBrackets(type, expression);
|
|
210
210
|
return pass();
|
|
211
211
|
}
|
|
212
|
-
function maybeprop(
|
|
212
|
+
function maybeprop() {
|
|
213
213
|
if (content.match(/^\w+$/)) {cx.marked = "variable"; return cont(maybeop);}
|
|
214
214
|
return pass(expression);
|
|
215
215
|
}
|
|
@@ -304,7 +304,7 @@ CodeMirror.defineMode("rust", function() {
|
|
|
304
304
|
if (type == "{") return cont(pushlex("}"), block, poplex);
|
|
305
305
|
return pass();
|
|
306
306
|
}
|
|
307
|
-
function typarams(
|
|
307
|
+
function typarams() {
|
|
308
308
|
if (content == ">") return cont();
|
|
309
309
|
if (content == ",") return cont(typarams);
|
|
310
310
|
if (content == ":") return cont(rtype, typarams);
|
|
@@ -324,7 +324,7 @@ CodeMirror.defineMode("rust", function() {
|
|
|
324
324
|
if (type == "{") return cont(pushlex("{"), record_of(rtype), poplex);
|
|
325
325
|
return matchBrackets(type, rtype);
|
|
326
326
|
}
|
|
327
|
-
function rtypemaybeparam(
|
|
327
|
+
function rtypemaybeparam() {
|
|
328
328
|
if (content == "<") return cont(typarams);
|
|
329
329
|
return pass();
|
|
330
330
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Author: Koh Zi Han, based on implementation by Koh Zi Chun
|
|
3
3
|
*/
|
|
4
|
-
CodeMirror.defineMode("scheme", function (
|
|
4
|
+
CodeMirror.defineMode("scheme", function () {
|
|
5
5
|
var BUILTIN = "builtin", COMMENT = "comment", STRING = "string",
|
|
6
|
-
ATOM = "atom", NUMBER = "number", BRACKET = "bracket"
|
|
7
|
-
var INDENT_WORD_SKIP = 2
|
|
6
|
+
ATOM = "atom", NUMBER = "number", BRACKET = "bracket";
|
|
7
|
+
var INDENT_WORD_SKIP = 2;
|
|
8
8
|
|
|
9
9
|
function makeKeywords(str) {
|
|
10
10
|
var obj = {}, words = str.split(" ");
|
|
@@ -220,7 +220,7 @@ CodeMirror.defineMode("scheme", function (config, mode) {
|
|
|
220
220
|
return (typeof state.sExprComment == "number") ? COMMENT : returnType;
|
|
221
221
|
},
|
|
222
222
|
|
|
223
|
-
indent: function (state
|
|
223
|
+
indent: function (state) {
|
|
224
224
|
if (state.indentStack == null) return state.indentation;
|
|
225
225
|
return state.indentStack.indent;
|
|
226
226
|
}
|
|
@@ -145,7 +145,7 @@ CodeMirror.defineMode("sieve", function(config) {
|
|
|
145
145
|
return (state.tokenize || tokenBase)(stream, state);;
|
|
146
146
|
},
|
|
147
147
|
|
|
148
|
-
indent: function(state,
|
|
148
|
+
indent: function(state, _textAfter) {
|
|
149
149
|
return state.baseIndent + state._indent * indentUnit;
|
|
150
150
|
},
|
|
151
151
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
CodeMirror.defineMode('smalltalk', function(config
|
|
1
|
+
CodeMirror.defineMode('smalltalk', function(config) {
|
|
2
2
|
|
|
3
3
|
var specialChars = /[+\-/\\*~<>=@%|&?!.:;^]/;
|
|
4
4
|
var keywords = /true|false|nil|self|super|thisContext/;
|
|
@@ -86,7 +86,7 @@ CodeMirror.defineMode('smalltalk', function(config, modeConfig) {
|
|
|
86
86
|
return new Token('string', stream.eat('\'') ? context.parent : context, false);
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
var nextTemporaries = function(stream, context
|
|
89
|
+
var nextTemporaries = function(stream, context) {
|
|
90
90
|
var token = new Token(null, context, false);
|
|
91
91
|
var aChar = stream.next();
|
|
92
92
|
|
|
@@ -49,7 +49,7 @@ CodeMirror.defineMode("sparql", function(config) {
|
|
|
49
49
|
stream.eatWhile(/[\w\d_\-]/);
|
|
50
50
|
return "atom";
|
|
51
51
|
}
|
|
52
|
-
var word = stream.current()
|
|
52
|
+
var word = stream.current();
|
|
53
53
|
if (ops.test(word))
|
|
54
54
|
return null;
|
|
55
55
|
else if (keywords.test(word))
|
|
@@ -82,7 +82,7 @@ CodeMirror.defineMode("sparql", function(config) {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
return {
|
|
85
|
-
startState: function(
|
|
85
|
+
startState: function() {
|
|
86
86
|
return {tokenize: tokenBase,
|
|
87
87
|
context: null,
|
|
88
88
|
indent: 0,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licence: MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
CodeMirror.defineMode("stex", function(
|
|
6
|
+
CodeMirror.defineMode("stex", function()
|
|
7
7
|
{
|
|
8
8
|
function pushCommand(state, command) {
|
|
9
9
|
state.cmdState.push(command);
|
|
@@ -42,18 +42,17 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg)
|
|
|
42
42
|
this.styles = styles;
|
|
43
43
|
this.brackets = brackets;
|
|
44
44
|
|
|
45
|
-
this.styleIdentifier = function(
|
|
45
|
+
this.styleIdentifier = function() {
|
|
46
46
|
if (this.bracketNo<=this.styles.length)
|
|
47
47
|
return this.styles[this.bracketNo-1];
|
|
48
48
|
else
|
|
49
49
|
return null;
|
|
50
50
|
};
|
|
51
|
-
this.openBracket = function(
|
|
51
|
+
this.openBracket = function() {
|
|
52
52
|
this.bracketNo++;
|
|
53
53
|
return "bracket";
|
|
54
54
|
};
|
|
55
|
-
this.closeBracket = function(
|
|
56
|
-
};
|
|
55
|
+
this.closeBracket = function() {};
|
|
57
56
|
};
|
|
58
57
|
}
|
|
59
58
|
|
|
@@ -69,12 +68,7 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg)
|
|
|
69
68
|
this.name="DEFAULT";
|
|
70
69
|
this.style="tag";
|
|
71
70
|
|
|
72
|
-
this.styleIdentifier = function(
|
|
73
|
-
};
|
|
74
|
-
this.openBracket = function(content) {
|
|
75
|
-
};
|
|
76
|
-
this.closeBracket = function(content) {
|
|
77
|
-
};
|
|
71
|
+
this.styleIdentifier = this.openBracket = this.closeBracket = function() {};
|
|
78
72
|
};
|
|
79
73
|
|
|
80
74
|
function setState(state, f) {
|
|
@@ -149,7 +143,7 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg)
|
|
|
149
143
|
var ch = source.peek();
|
|
150
144
|
if (ch == '{' || ch == '[') {
|
|
151
145
|
var lastPlug = peekCommand(state);
|
|
152
|
-
|
|
146
|
+
lastPlug.openBracket(ch);
|
|
153
147
|
source.eat(ch);
|
|
154
148
|
setState(state, normal);
|
|
155
149
|
return "bracket";
|
|
@@ -172,7 +166,6 @@ CodeMirror.defineMode("stex", function(cmCfg, modeCfg)
|
|
|
172
166
|
|
|
173
167
|
token: function(stream, state) {
|
|
174
168
|
var t = state.f(stream, state);
|
|
175
|
-
var w = stream.current();
|
|
176
169
|
return t;
|
|
177
170
|
}
|
|
178
171
|
};
|
|
@@ -14,19 +14,9 @@
|
|
|
14
14
|
CoreVersion parameter is needed for TiddlyWiki only!
|
|
15
15
|
***/
|
|
16
16
|
//{{{
|
|
17
|
-
CodeMirror.defineMode("tiddlywiki", function (
|
|
18
|
-
var indentUnit = config.indentUnit;
|
|
19
|
-
|
|
17
|
+
CodeMirror.defineMode("tiddlywiki", function () {
|
|
20
18
|
// Tokenizer
|
|
21
|
-
var textwords =
|
|
22
|
-
function kw(type) {
|
|
23
|
-
return {
|
|
24
|
-
type: type,
|
|
25
|
-
style: "text"
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
return {};
|
|
29
|
-
}();
|
|
19
|
+
var textwords = {};
|
|
30
20
|
|
|
31
21
|
var keywords = function () {
|
|
32
22
|
function kw(type) {
|
|
@@ -60,7 +50,6 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
60
50
|
reCodeBlockStart = /^\{\{\{$/, // {{{ TW text div block start
|
|
61
51
|
reCodeBlockStop = /^\}\}\}$/, // }}} TW text stop
|
|
62
52
|
|
|
63
|
-
reCodeStart = /\{\{\{/, // {{{ code span start
|
|
64
53
|
reUntilCodeStop = /.*?\}\}\}/;
|
|
65
54
|
|
|
66
55
|
function chain(stream, state, f) {
|
|
@@ -68,17 +57,6 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
68
57
|
return f(stream, state);
|
|
69
58
|
}
|
|
70
59
|
|
|
71
|
-
// used for strings
|
|
72
|
-
function nextUntilUnescaped(stream, end) {
|
|
73
|
-
var escaped = false,
|
|
74
|
-
next;
|
|
75
|
-
while ((next = stream.next()) != null) {
|
|
76
|
-
if (next == end && !escaped) return false;
|
|
77
|
-
escaped = !escaped && next == "\\";
|
|
78
|
-
}
|
|
79
|
-
return escaped;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
60
|
// Used as scratch variables to communicate multiple values without
|
|
83
61
|
// consing up tons of objects.
|
|
84
62
|
var type, content;
|
|
@@ -90,8 +68,7 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
90
68
|
}
|
|
91
69
|
|
|
92
70
|
function jsTokenBase(stream, state) {
|
|
93
|
-
var sol = stream.sol(),
|
|
94
|
-
ch, tch;
|
|
71
|
+
var sol = stream.sol(), ch;
|
|
95
72
|
|
|
96
73
|
state.block = false; // indicates the start of a code block.
|
|
97
74
|
|
|
@@ -226,13 +203,6 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
226
203
|
|
|
227
204
|
} // jsTokenBase()
|
|
228
205
|
|
|
229
|
-
function twTokenString(quote) {
|
|
230
|
-
return function (stream, state) {
|
|
231
|
-
if (!nextUntilUnescaped(stream, quote)) state.tokenize = jsTokenBase;
|
|
232
|
-
return ret("string", "string");
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
|
|
236
206
|
// tw invisible comment
|
|
237
207
|
function twTokenComment(stream, state) {
|
|
238
208
|
var maybeEnd = false,
|
|
@@ -314,8 +284,7 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
314
284
|
// tw strike through text looks ugly
|
|
315
285
|
// change CSS if needed
|
|
316
286
|
function twTokenStrike(stream, state) {
|
|
317
|
-
var maybeEnd = false,
|
|
318
|
-
ch, nr;
|
|
287
|
+
var maybeEnd = false, ch;
|
|
319
288
|
|
|
320
289
|
while (ch = stream.next()) {
|
|
321
290
|
if (ch == "-" && maybeEnd) {
|
|
@@ -329,7 +298,7 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
329
298
|
|
|
330
299
|
// macro
|
|
331
300
|
function twTokenMacro(stream, state) {
|
|
332
|
-
var ch,
|
|
301
|
+
var ch, word, known;
|
|
333
302
|
|
|
334
303
|
if (stream.current() == '<<') {
|
|
335
304
|
return ret('brace', 'macro');
|
|
@@ -362,7 +331,7 @@ CodeMirror.defineMode("tiddlywiki", function (config, parserConfig) {
|
|
|
362
331
|
|
|
363
332
|
// Interface
|
|
364
333
|
return {
|
|
365
|
-
startState: function (
|
|
334
|
+
startState: function () {
|
|
366
335
|
return {
|
|
367
336
|
tokenize: jsTokenBase,
|
|
368
337
|
indented: 0,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
CodeMirror.defineMode('tiki', function(config
|
|
1
|
+
CodeMirror.defineMode('tiki', function(config) {
|
|
2
2
|
function inBlock(style, terminator, returnTokenizer) {
|
|
3
3
|
return function(stream, state) {
|
|
4
4
|
while (!stream.eol()) {
|
|
@@ -15,7 +15,7 @@ CodeMirror.defineMode('tiki', function(config, parserConfig) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
function inLine(style
|
|
18
|
+
function inLine(style) {
|
|
19
19
|
return function(stream, state) {
|
|
20
20
|
while(!stream.eol()) {
|
|
21
21
|
stream.next();
|
|
@@ -37,7 +37,7 @@ CodeMirror.defineMode('tiki', function(config, parserConfig) {
|
|
|
37
37
|
//non start of line
|
|
38
38
|
switch (ch) { //switch is generally much faster than if, so it is used here
|
|
39
39
|
case "{": //plugin
|
|
40
|
-
|
|
40
|
+
stream.eat("/");
|
|
41
41
|
stream.eatSpace();
|
|
42
42
|
var tagName = "";
|
|
43
43
|
var c;
|
|
@@ -37,11 +37,11 @@ CodeMirror.defineMode("vb", function(conf, parserConf) {
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
function indent(
|
|
40
|
+
function indent(_stream, state) {
|
|
41
41
|
state.currentIndent++;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
function dedent(
|
|
44
|
+
function dedent(_stream, state) {
|
|
45
45
|
state.currentIndent--;
|
|
46
46
|
}
|
|
47
47
|
// tokenizers
|
|
@@ -218,7 +218,7 @@ CodeMirror.defineMode("vb", function(conf, parserConf) {
|
|
|
218
218
|
|
|
219
219
|
var external = {
|
|
220
220
|
electricChars:"dDpPtTfFeE ",
|
|
221
|
-
startState: function(
|
|
221
|
+
startState: function() {
|
|
222
222
|
return {
|
|
223
223
|
tokenize: tokenBase,
|
|
224
224
|
lastToken: null,
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
CodeMirror.defineMode("velocity", function(
|
|
1
|
+
CodeMirror.defineMode("velocity", function() {
|
|
2
2
|
function parseWords(str) {
|
|
3
3
|
var obj = {}, words = str.split(" ");
|
|
4
4
|
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
|
5
5
|
return obj;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
var indentUnit = config.indentUnit;
|
|
9
8
|
var keywords = parseWords("#end #else #break #stop #[[ #]] " +
|
|
10
9
|
"#{end} #{else} #{break} #{stop}");
|
|
11
10
|
var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " +
|
|
12
11
|
"#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}");
|
|
13
12
|
var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent $velocityCount");
|
|
14
13
|
var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
|
|
15
|
-
var multiLineStrings =true;
|
|
16
14
|
|
|
17
15
|
function chain(stream, state, f) {
|
|
18
16
|
state.tokenize = f;
|
|
@@ -128,7 +126,7 @@ CodeMirror.defineMode("velocity", function(config) {
|
|
|
128
126
|
// Interface
|
|
129
127
|
|
|
130
128
|
return {
|
|
131
|
-
startState: function(
|
|
129
|
+
startState: function() {
|
|
132
130
|
return {
|
|
133
131
|
tokenize: tokenBase,
|
|
134
132
|
beforeParams: false,
|
|
@@ -1,194 +1,182 @@
|
|
|
1
|
-
CodeMirror.defineMode("verilog", function(config, parserConfig) {
|
|
2
|
-
var indentUnit = config.indentUnit,
|
|
3
|
-
keywords = parserConfig.keywords || {},
|
|
4
|
-
blockKeywords = parserConfig.blockKeywords || {},
|
|
5
|
-
atoms = parserConfig.atoms || {},
|
|
6
|
-
hooks = parserConfig.hooks || {},
|
|
7
|
-
multiLineStrings = parserConfig.multiLineStrings;
|
|
8
|
-
var isOperatorChar = /[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;
|
|
9
|
-
|
|
10
|
-
var curPunc;
|
|
11
|
-
|
|
12
|
-
function tokenBase(stream, state) {
|
|
13
|
-
var ch = stream.next();
|
|
14
|
-
if (hooks[ch]) {
|
|
15
|
-
var result = hooks[ch](stream, state);
|
|
16
|
-
if (result !== false) return result;
|
|
17
|
-
}
|
|
18
|
-
if (ch == '"') {
|
|
19
|
-
state.tokenize = tokenString(ch);
|
|
20
|
-
return state.tokenize(stream, state);
|
|
21
|
-
}
|
|
22
|
-
if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
|
|
23
|
-
curPunc = ch;
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
if (/[\d']/.test(ch)) {
|
|
27
|
-
stream.eatWhile(/[\w\.']/);
|
|
28
|
-
return "number";
|
|
29
|
-
}
|
|
30
|
-
if (ch == "/") {
|
|
31
|
-
if (stream.eat("*")) {
|
|
32
|
-
state.tokenize = tokenComment;
|
|
33
|
-
return tokenComment(stream, state);
|
|
34
|
-
}
|
|
35
|
-
if (stream.eat("/")) {
|
|
36
|
-
stream.skipToEnd();
|
|
37
|
-
return "comment";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (isOperatorChar.test(ch)) {
|
|
41
|
-
stream.eatWhile(isOperatorChar);
|
|
42
|
-
return "operator";
|
|
43
|
-
}
|
|
44
|
-
stream.eatWhile(/[\w\$_]/);
|
|
45
|
-
var cur = stream.current();
|
|
46
|
-
if (keywords.propertyIsEnumerable(cur)) {
|
|
47
|
-
if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
|
|
48
|
-
return "keyword";
|
|
49
|
-
}
|
|
50
|
-
if (atoms.propertyIsEnumerable(cur)) return "atom";
|
|
51
|
-
return "variable";
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function tokenString(quote) {
|
|
55
|
-
return function(stream, state) {
|
|
56
|
-
var escaped = false, next, end = false;
|
|
57
|
-
while ((next = stream.next()) != null) {
|
|
58
|
-
if (next == quote && !escaped) {end = true; break;}
|
|
59
|
-
escaped = !escaped && next == "\\";
|
|
60
|
-
}
|
|
61
|
-
if (end || !(escaped || multiLineStrings))
|
|
62
|
-
state.tokenize = tokenBase;
|
|
63
|
-
return "string";
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function tokenComment(stream, state) {
|
|
68
|
-
var maybeEnd = false, ch;
|
|
69
|
-
while (ch = stream.next()) {
|
|
70
|
-
if (ch == "/" && maybeEnd) {
|
|
71
|
-
state.tokenize = tokenBase;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
maybeEnd = (ch == "*");
|
|
75
|
-
}
|
|
76
|
-
return "comment";
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function Context(indented, column, type, align, prev) {
|
|
80
|
-
this.indented = indented;
|
|
81
|
-
this.column = column;
|
|
82
|
-
this.type = type;
|
|
83
|
-
this.align = align;
|
|
84
|
-
this.prev = prev;
|
|
85
|
-
}
|
|
86
|
-
function pushContext(state, col, type) {
|
|
87
|
-
return state.context = new Context(state.indented, col, type, null, state.context);
|
|
88
|
-
}
|
|
89
|
-
function popContext(state) {
|
|
90
|
-
var t = state.context.type;
|
|
91
|
-
if (t == ")" || t == "]" || t == "}")
|
|
92
|
-
state.indented = state.context.indented;
|
|
93
|
-
return state.context = state.context.prev;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Interface
|
|
97
|
-
|
|
98
|
-
return {
|
|
99
|
-
startState: function(basecolumn) {
|
|
100
|
-
return {
|
|
101
|
-
tokenize: null,
|
|
102
|
-
context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
|
|
103
|
-
indented: 0,
|
|
104
|
-
startOfLine: true
|
|
105
|
-
};
|
|
106
|
-
},
|
|
107
|
-
|
|
108
|
-
token: function(stream, state) {
|
|
109
|
-
var ctx = state.context;
|
|
110
|
-
if (stream.sol()) {
|
|
111
|
-
if (ctx.align == null) ctx.align = false;
|
|
112
|
-
state.indented = stream.indentation();
|
|
113
|
-
state.startOfLine = true;
|
|
114
|
-
}
|
|
115
|
-
if (stream.eatSpace()) return null;
|
|
116
|
-
curPunc = null;
|
|
117
|
-
var style = (state.tokenize || tokenBase)(stream, state);
|
|
118
|
-
if (style == "comment" || style == "meta") return style;
|
|
119
|
-
if (ctx.align == null) ctx.align = true;
|
|
120
|
-
|
|
121
|
-
if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
|
|
122
|
-
else if (curPunc == "{") pushContext(state, stream.column(), "}");
|
|
123
|
-
else if (curPunc == "[") pushContext(state, stream.column(), "]");
|
|
124
|
-
else if (curPunc == "(") pushContext(state, stream.column(), ")");
|
|
125
|
-
else if (curPunc == "}") {
|
|
126
|
-
while (ctx.type == "statement") ctx = popContext(state);
|
|
127
|
-
if (ctx.type == "}") ctx = popContext(state);
|
|
128
|
-
while (ctx.type == "statement") ctx = popContext(state);
|
|
129
|
-
}
|
|
130
|
-
else if (curPunc == ctx.type) popContext(state);
|
|
131
|
-
else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
|
|
132
|
-
pushContext(state, stream.column(), "statement");
|
|
133
|
-
state.startOfLine = false;
|
|
134
|
-
return style;
|
|
135
|
-
},
|
|
136
|
-
|
|
137
|
-
indent: function(state, textAfter) {
|
|
138
|
-
if (state.tokenize != tokenBase && state.tokenize != null) return 0;
|
|
139
|
-
var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;
|
|
140
|
-
if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
|
|
141
|
-
else if (ctx.align) return ctx.column + (closing ? 0 : 1);
|
|
142
|
-
else return ctx.indented + (closing ? 0 : indentUnit);
|
|
143
|
-
},
|
|
144
|
-
|
|
145
|
-
electricChars: "{}"
|
|
146
|
-
};
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
(function() {
|
|
150
|
-
function words(str) {
|
|
151
|
-
var obj = {}, words = str.split(" ");
|
|
152
|
-
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
|
153
|
-
return obj;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
var verilogKeywords = "always and assign automatic begin buf bufif0 bufif1 case casex casez cell cmos config " +
|
|
157
|
-
"deassign default defparam design disable edge else end endcase endconfig endfunction endgenerate endmodule " +
|
|
158
|
-
"endprimitive endspecify endtable endtask event for force forever fork function generate genvar highz0 " +
|
|
159
|
-
"highz1 if ifnone incdir include initial inout input instance integer join large liblist library localparam " +
|
|
160
|
-
"macromodule medium module nand negedge nmos nor noshowcancelled not notif0 notif1 or output parameter pmos " +
|
|
161
|
-
"posedge primitive pull0 pull1 pulldown pullup pulsestyle_onevent pulsestyle_ondetect rcmos real realtime " +
|
|
162
|
-
"reg release repeat rnmos rpmos rtran rtranif0 rtranif1 scalared showcancelled signed small specify specparam " +
|
|
163
|
-
"strong0 strong1 supply0 supply1 table task time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg " +
|
|
164
|
-
"unsigned use vectored wait wand weak0 weak1 while wire wor xnor xor";
|
|
165
|
-
|
|
166
|
-
var verilogBlockKeywords = "begin bufif0 bufif1 case casex casez config else end endcase endconfig endfunction " +
|
|
167
|
-
"endgenerate endmodule endprimitive endspecify endtable endtask for forever function generate if ifnone " +
|
|
168
|
-
"macromodule module primitive repeat specify table task while";
|
|
169
|
-
|
|
170
|
-
function metaHook(stream
|
|
171
|
-
stream.eatWhile(/[\w\$_]/);
|
|
172
|
-
return "meta";
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
return "string";
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
CodeMirror.defineMIME("text/x-verilog", {
|
|
188
|
-
name: "verilog",
|
|
189
|
-
keywords: words(verilogKeywords),
|
|
190
|
-
blockKeywords: words(verilogBlockKeywords),
|
|
191
|
-
atoms: words("null"),
|
|
192
|
-
hooks: {"`": metaHook, "$": metaHook}
|
|
193
|
-
});
|
|
194
|
-
}());
|
|
1
|
+
CodeMirror.defineMode("verilog", function(config, parserConfig) {
|
|
2
|
+
var indentUnit = config.indentUnit,
|
|
3
|
+
keywords = parserConfig.keywords || {},
|
|
4
|
+
blockKeywords = parserConfig.blockKeywords || {},
|
|
5
|
+
atoms = parserConfig.atoms || {},
|
|
6
|
+
hooks = parserConfig.hooks || {},
|
|
7
|
+
multiLineStrings = parserConfig.multiLineStrings;
|
|
8
|
+
var isOperatorChar = /[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;
|
|
9
|
+
|
|
10
|
+
var curPunc;
|
|
11
|
+
|
|
12
|
+
function tokenBase(stream, state) {
|
|
13
|
+
var ch = stream.next();
|
|
14
|
+
if (hooks[ch]) {
|
|
15
|
+
var result = hooks[ch](stream, state);
|
|
16
|
+
if (result !== false) return result;
|
|
17
|
+
}
|
|
18
|
+
if (ch == '"') {
|
|
19
|
+
state.tokenize = tokenString(ch);
|
|
20
|
+
return state.tokenize(stream, state);
|
|
21
|
+
}
|
|
22
|
+
if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
|
|
23
|
+
curPunc = ch;
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
if (/[\d']/.test(ch)) {
|
|
27
|
+
stream.eatWhile(/[\w\.']/);
|
|
28
|
+
return "number";
|
|
29
|
+
}
|
|
30
|
+
if (ch == "/") {
|
|
31
|
+
if (stream.eat("*")) {
|
|
32
|
+
state.tokenize = tokenComment;
|
|
33
|
+
return tokenComment(stream, state);
|
|
34
|
+
}
|
|
35
|
+
if (stream.eat("/")) {
|
|
36
|
+
stream.skipToEnd();
|
|
37
|
+
return "comment";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (isOperatorChar.test(ch)) {
|
|
41
|
+
stream.eatWhile(isOperatorChar);
|
|
42
|
+
return "operator";
|
|
43
|
+
}
|
|
44
|
+
stream.eatWhile(/[\w\$_]/);
|
|
45
|
+
var cur = stream.current();
|
|
46
|
+
if (keywords.propertyIsEnumerable(cur)) {
|
|
47
|
+
if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement";
|
|
48
|
+
return "keyword";
|
|
49
|
+
}
|
|
50
|
+
if (atoms.propertyIsEnumerable(cur)) return "atom";
|
|
51
|
+
return "variable";
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function tokenString(quote) {
|
|
55
|
+
return function(stream, state) {
|
|
56
|
+
var escaped = false, next, end = false;
|
|
57
|
+
while ((next = stream.next()) != null) {
|
|
58
|
+
if (next == quote && !escaped) {end = true; break;}
|
|
59
|
+
escaped = !escaped && next == "\\";
|
|
60
|
+
}
|
|
61
|
+
if (end || !(escaped || multiLineStrings))
|
|
62
|
+
state.tokenize = tokenBase;
|
|
63
|
+
return "string";
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function tokenComment(stream, state) {
|
|
68
|
+
var maybeEnd = false, ch;
|
|
69
|
+
while (ch = stream.next()) {
|
|
70
|
+
if (ch == "/" && maybeEnd) {
|
|
71
|
+
state.tokenize = tokenBase;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
maybeEnd = (ch == "*");
|
|
75
|
+
}
|
|
76
|
+
return "comment";
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function Context(indented, column, type, align, prev) {
|
|
80
|
+
this.indented = indented;
|
|
81
|
+
this.column = column;
|
|
82
|
+
this.type = type;
|
|
83
|
+
this.align = align;
|
|
84
|
+
this.prev = prev;
|
|
85
|
+
}
|
|
86
|
+
function pushContext(state, col, type) {
|
|
87
|
+
return state.context = new Context(state.indented, col, type, null, state.context);
|
|
88
|
+
}
|
|
89
|
+
function popContext(state) {
|
|
90
|
+
var t = state.context.type;
|
|
91
|
+
if (t == ")" || t == "]" || t == "}")
|
|
92
|
+
state.indented = state.context.indented;
|
|
93
|
+
return state.context = state.context.prev;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Interface
|
|
97
|
+
|
|
98
|
+
return {
|
|
99
|
+
startState: function(basecolumn) {
|
|
100
|
+
return {
|
|
101
|
+
tokenize: null,
|
|
102
|
+
context: new Context((basecolumn || 0) - indentUnit, 0, "top", false),
|
|
103
|
+
indented: 0,
|
|
104
|
+
startOfLine: true
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
token: function(stream, state) {
|
|
109
|
+
var ctx = state.context;
|
|
110
|
+
if (stream.sol()) {
|
|
111
|
+
if (ctx.align == null) ctx.align = false;
|
|
112
|
+
state.indented = stream.indentation();
|
|
113
|
+
state.startOfLine = true;
|
|
114
|
+
}
|
|
115
|
+
if (stream.eatSpace()) return null;
|
|
116
|
+
curPunc = null;
|
|
117
|
+
var style = (state.tokenize || tokenBase)(stream, state);
|
|
118
|
+
if (style == "comment" || style == "meta") return style;
|
|
119
|
+
if (ctx.align == null) ctx.align = true;
|
|
120
|
+
|
|
121
|
+
if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state);
|
|
122
|
+
else if (curPunc == "{") pushContext(state, stream.column(), "}");
|
|
123
|
+
else if (curPunc == "[") pushContext(state, stream.column(), "]");
|
|
124
|
+
else if (curPunc == "(") pushContext(state, stream.column(), ")");
|
|
125
|
+
else if (curPunc == "}") {
|
|
126
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
127
|
+
if (ctx.type == "}") ctx = popContext(state);
|
|
128
|
+
while (ctx.type == "statement") ctx = popContext(state);
|
|
129
|
+
}
|
|
130
|
+
else if (curPunc == ctx.type) popContext(state);
|
|
131
|
+
else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement"))
|
|
132
|
+
pushContext(state, stream.column(), "statement");
|
|
133
|
+
state.startOfLine = false;
|
|
134
|
+
return style;
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
indent: function(state, textAfter) {
|
|
138
|
+
if (state.tokenize != tokenBase && state.tokenize != null) return 0;
|
|
139
|
+
var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type;
|
|
140
|
+
if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit);
|
|
141
|
+
else if (ctx.align) return ctx.column + (closing ? 0 : 1);
|
|
142
|
+
else return ctx.indented + (closing ? 0 : indentUnit);
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
electricChars: "{}"
|
|
146
|
+
};
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
(function() {
|
|
150
|
+
function words(str) {
|
|
151
|
+
var obj = {}, words = str.split(" ");
|
|
152
|
+
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
|
153
|
+
return obj;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
var verilogKeywords = "always and assign automatic begin buf bufif0 bufif1 case casex casez cell cmos config " +
|
|
157
|
+
"deassign default defparam design disable edge else end endcase endconfig endfunction endgenerate endmodule " +
|
|
158
|
+
"endprimitive endspecify endtable endtask event for force forever fork function generate genvar highz0 " +
|
|
159
|
+
"highz1 if ifnone incdir include initial inout input instance integer join large liblist library localparam " +
|
|
160
|
+
"macromodule medium module nand negedge nmos nor noshowcancelled not notif0 notif1 or output parameter pmos " +
|
|
161
|
+
"posedge primitive pull0 pull1 pulldown pullup pulsestyle_onevent pulsestyle_ondetect rcmos real realtime " +
|
|
162
|
+
"reg release repeat rnmos rpmos rtran rtranif0 rtranif1 scalared showcancelled signed small specify specparam " +
|
|
163
|
+
"strong0 strong1 supply0 supply1 table task time tran tranif0 tranif1 tri tri0 tri1 triand trior trireg " +
|
|
164
|
+
"unsigned use vectored wait wand weak0 weak1 while wire wor xnor xor";
|
|
165
|
+
|
|
166
|
+
var verilogBlockKeywords = "begin bufif0 bufif1 case casex casez config else end endcase endconfig endfunction " +
|
|
167
|
+
"endgenerate endmodule endprimitive endspecify endtable endtask for forever function generate if ifnone " +
|
|
168
|
+
"macromodule module primitive repeat specify table task while";
|
|
169
|
+
|
|
170
|
+
function metaHook(stream) {
|
|
171
|
+
stream.eatWhile(/[\w\$_]/);
|
|
172
|
+
return "meta";
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
CodeMirror.defineMIME("text/x-verilog", {
|
|
176
|
+
name: "verilog",
|
|
177
|
+
keywords: words(verilogKeywords),
|
|
178
|
+
blockKeywords: words(verilogBlockKeywords),
|
|
179
|
+
atoms: words("null"),
|
|
180
|
+
hooks: {"`": metaHook, "$": metaHook}
|
|
181
|
+
});
|
|
182
|
+
}());
|