codemirror-rails 3.15 → 3.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/lib/codemirror/rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/codemirror.js +59 -29
  4. data/vendor/assets/javascripts/codemirror/addons/comment/continuecomment.js +44 -0
  5. data/vendor/assets/javascripts/codemirror/addons/display/fullscreen.js +30 -0
  6. data/vendor/assets/javascripts/codemirror/addons/edit/continuecomment.js +1 -1
  7. data/vendor/assets/javascripts/codemirror/addons/fold/brace-fold.js +3 -3
  8. data/vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js +40 -0
  9. data/vendor/assets/javascripts/codemirror/addons/hint/show-hint.js +7 -10
  10. data/vendor/assets/javascripts/codemirror/addons/scroll/scrollpastend.js +34 -0
  11. data/vendor/assets/javascripts/codemirror/addons/search/match-highlighter.js +4 -1
  12. data/vendor/assets/javascripts/codemirror/keymaps/vim.js +5 -0
  13. data/vendor/assets/javascripts/codemirror/modes/css.js +21 -19
  14. data/vendor/assets/javascripts/codemirror/modes/erlang.js +122 -102
  15. data/vendor/assets/javascripts/codemirror/modes/javascript.js +3 -2
  16. data/vendor/assets/javascripts/codemirror/modes/python.js +12 -4
  17. data/vendor/assets/javascripts/codemirror/modes/rst.js +20 -21
  18. data/vendor/assets/javascripts/codemirror/modes/velocity.js +54 -12
  19. data/vendor/assets/javascripts/codemirror/modes/xml.js +1 -1
  20. data/vendor/assets/javascripts/codemirror/modes/xquery.js +5 -1
  21. data/vendor/assets/javascripts/codemirror/modes/yaml.js +8 -8
  22. data/vendor/assets/stylesheets/codemirror.css +1 -0
  23. data/vendor/assets/stylesheets/codemirror/addons/display/fullscreen.css +6 -0
  24. data/vendor/assets/stylesheets/codemirror/themes/3024-day.css +1 -0
  25. data/vendor/assets/stylesheets/codemirror/themes/3024-night.css +1 -0
  26. data/vendor/assets/stylesheets/codemirror/themes/ambiance.css +1 -1
  27. data/vendor/assets/stylesheets/codemirror/themes/base16-dark.css +1 -0
  28. data/vendor/assets/stylesheets/codemirror/themes/base16-light.css +1 -0
  29. data/vendor/assets/stylesheets/codemirror/themes/blackboard.css +3 -0
  30. data/vendor/assets/stylesheets/codemirror/themes/cobalt.css +3 -0
  31. data/vendor/assets/stylesheets/codemirror/themes/eclipse.css +2 -4
  32. data/vendor/assets/stylesheets/codemirror/themes/elegant.css +3 -0
  33. data/vendor/assets/stylesheets/codemirror/themes/erlang-dark.css +11 -2
  34. data/vendor/assets/stylesheets/codemirror/themes/lesser-dark.css +3 -0
  35. data/vendor/assets/stylesheets/codemirror/themes/midnight.css +2 -2
  36. data/vendor/assets/stylesheets/codemirror/themes/monokai.css +1 -0
  37. data/vendor/assets/stylesheets/codemirror/themes/neat.css +3 -0
  38. data/vendor/assets/stylesheets/codemirror/themes/night.css +3 -0
  39. data/vendor/assets/stylesheets/codemirror/themes/paraiso-dark.css +34 -0
  40. data/vendor/assets/stylesheets/codemirror/themes/paraiso-light.css +34 -0
  41. data/vendor/assets/stylesheets/codemirror/themes/rubyblue.css +2 -0
  42. data/vendor/assets/stylesheets/codemirror/themes/solarized.css +2 -7
  43. data/vendor/assets/stylesheets/codemirror/themes/the-matrix.css +26 -0
  44. data/vendor/assets/stylesheets/codemirror/themes/tomorrow-night-eighties.css +1 -0
  45. data/vendor/assets/stylesheets/codemirror/themes/twilight.css +2 -0
  46. data/vendor/assets/stylesheets/codemirror/themes/vibrant-ink.css +3 -0
  47. data/vendor/assets/stylesheets/codemirror/themes/xq-dark.css +4 -1
  48. data/vendor/assets/stylesheets/codemirror/themes/xq-light.css +1 -1
  49. metadata +10 -2
@@ -78,18 +78,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
78
78
  type = tp; content = cont;
79
79
  return style;
80
80
  }
81
-
82
81
  function jsTokenBase(stream, state) {
83
82
  var ch = stream.next();
84
83
  if (ch == '"' || ch == "'")
85
84
  return chain(stream, state, jsTokenString(ch));
85
+ else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/))
86
+ return ret("number", "number");
86
87
  else if (/[\[\]{}\(\),;\:\.]/.test(ch))
87
88
  return ret(ch);
88
89
  else if (ch == "0" && stream.eat(/x/i)) {
89
90
  stream.eatWhile(/[\da-f]/i);
90
91
  return ret("number", "number");
91
92
  }
92
- else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) {
93
+ else if (/\d/.test(ch)) {
93
94
  stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
94
95
  return ret("number", "number");
95
96
  }
@@ -151,6 +151,9 @@ CodeMirror.defineMode("python", function(conf, parserConf) {
151
151
  }
152
152
 
153
153
  if (stream.match(identifiers)) {
154
+ if (state.lastToken == 'def' || state.lastToken == 'class') {
155
+ return 'def';
156
+ }
154
157
  return 'variable';
155
158
  }
156
159
 
@@ -258,7 +261,7 @@ CodeMirror.defineMode("python", function(conf, parserConf) {
258
261
  // Handle '.' connected identifiers
259
262
  if (current === '.') {
260
263
  style = stream.match(identifiers, false) ? null : ERRORCLASS;
261
- if (style === null && state.lastToken === 'meta') {
264
+ if (style === null && state.lastStyle === 'meta') {
262
265
  // Apply 'meta' style to '.' connected identifiers when
263
266
  // appropriate.
264
267
  style = 'meta';
@@ -272,7 +275,7 @@ CodeMirror.defineMode("python", function(conf, parserConf) {
272
275
  }
273
276
 
274
277
  if ((style === 'variable' || style === 'builtin')
275
- && state.lastToken === 'meta') {
278
+ && state.lastStyle === 'meta') {
276
279
  style = 'meta';
277
280
  }
278
281
 
@@ -313,6 +316,7 @@ CodeMirror.defineMode("python", function(conf, parserConf) {
313
316
  return {
314
317
  tokenize: tokenBase,
315
318
  scopes: [{offset:basecolumn || 0, type:'py'}],
319
+ lastStyle: null,
316
320
  lastToken: null,
317
321
  lambda: false,
318
322
  dedent: 0
@@ -322,12 +326,16 @@ CodeMirror.defineMode("python", function(conf, parserConf) {
322
326
  token: function(stream, state) {
323
327
  var style = tokenLexer(stream, state);
324
328
 
325
- state.lastToken = style;
329
+ state.lastStyle = style;
330
+
331
+ var current = stream.current();
332
+ if (current && style) {
333
+ state.lastToken = current;
334
+ }
326
335
 
327
336
  if (stream.eol() && state.lambda) {
328
337
  state.lambda = false;
329
338
  }
330
-
331
339
  return style;
332
340
  },
333
341
 
@@ -124,9 +124,7 @@ CodeMirror.defineMode('rst-base', function (config) {
124
124
  token = 'keyword';
125
125
 
126
126
  if (stream.current().match(/^(?:math|latex)/)) {
127
- state.tmp = {
128
- mode: mode_stex, local: mode_stex.startState()
129
- };
127
+ state.tmp_stex = true;
130
128
  }
131
129
  break;
132
130
  case 2:
@@ -135,6 +133,12 @@ CodeMirror.defineMode('rst-base', function (config) {
135
133
  token = 'meta';
136
134
  break;
137
135
  case 3:
136
+ if (state.tmp_stex) {
137
+ state.tmp_stex = undefined; state.tmp = {
138
+ mode: mode_stex, local: mode_stex.startState()
139
+ };
140
+ }
141
+
138
142
  if (state.tmp) {
139
143
  if (stream.peek() == '`') {
140
144
  change(state, to_normal, context(rx_role_pre, 4));
@@ -345,24 +349,24 @@ CodeMirror.defineMode('rst-base', function (config) {
345
349
  change(state, to_explicit, context(rx_directive, 2));
346
350
  assert(stream.match(rx_directive_tail));
347
351
  token = 'meta';
348
- break;
349
- default:
352
+
350
353
  if (stream.match(/^latex\s*$/) || state.tmp_stex) {
351
- state.tmp_stex = undefined;
352
- change(state, to_mode, {
354
+ state.tmp_stex = undefined; change(state, to_mode, {
353
355
  mode: mode_stex, local: mode_stex.startState()
354
356
  });
355
- } else if (stream.match(/^python\s*$/) || state.tmp_py) {
356
- state.tmp_py = undefined;
357
- change(state, to_mode, {
357
+ }
358
+ break;
359
+ case 2:
360
+ change(state, to_explicit, context(rx_directive, 3));
361
+ if (stream.match(/^python\s*$/) || state.tmp_py) {
362
+ state.tmp_py = undefined; change(state, to_mode, {
358
363
  mode: mode_python, local: mode_python.startState()
359
364
  });
360
365
  }
361
-
362
- else {
363
- change(state, to_normal);
364
- assert(stream.current() == '');
365
- }
366
+ break;
367
+ default:
368
+ change(state, to_normal);
369
+ assert(stream.current() == '');
366
370
  }
367
371
  } else if (phase(state) == rx_link || stream.match(rx_link, false)) {
368
372
 
@@ -437,12 +441,7 @@ CodeMirror.defineMode('rst-base', function (config) {
437
441
  return null;
438
442
  }
439
443
 
440
- try {
441
- return state.ctx.mode.token(stream, state.ctx.local);
442
- } catch (ex) {
443
- change(state, to_normal);
444
- return null;
445
- }
444
+ return state.ctx.mode.token(stream, state.ctx.local);
446
445
  }
447
446
 
448
447
  change(state, to_normal);
@@ -9,7 +9,7 @@ CodeMirror.defineMode("velocity", function() {
9
9
  "#{end} #{else} #{break} #{stop}");
10
10
  var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " +
11
11
  "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}");
12
- var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent $velocityCount");
12
+ var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent");
13
13
  var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
14
14
 
15
15
  function chain(stream, state, f) {
@@ -20,30 +20,50 @@ CodeMirror.defineMode("velocity", function() {
20
20
  var beforeParams = state.beforeParams;
21
21
  state.beforeParams = false;
22
22
  var ch = stream.next();
23
- // start of string?
24
- if ((ch == '"' || ch == "'") && state.inParams)
23
+ // start of unparsed string?
24
+ if ((ch == "'") && state.inParams) {
25
+ state.lastTokenWasBuiltin = false;
25
26
  return chain(stream, state, tokenString(ch));
27
+ }
28
+ // start of parsed string?
29
+ else if ((ch == '"')) {
30
+ state.lastTokenWasBuiltin = false;
31
+ if (state.inString) {
32
+ state.inString = false;
33
+ return "string";
34
+ }
35
+ else if (state.inParams)
36
+ return chain(stream, state, tokenString(ch));
37
+ }
26
38
  // is it one of the special signs []{}().,;? Seperator?
27
39
  else if (/[\[\]{}\(\),;\.]/.test(ch)) {
28
- if (ch == "(" && beforeParams) state.inParams = true;
29
- else if (ch == ")") state.inParams = false;
40
+ if (ch == "(" && beforeParams)
41
+ state.inParams = true;
42
+ else if (ch == ")") {
43
+ state.inParams = false;
44
+ state.lastTokenWasBuiltin = true;
45
+ }
30
46
  return null;
31
47
  }
32
48
  // start of a number value?
33
49
  else if (/\d/.test(ch)) {
50
+ state.lastTokenWasBuiltin = false;
34
51
  stream.eatWhile(/[\w\.]/);
35
52
  return "number";
36
53
  }
37
54
  // multi line comment?
38
55
  else if (ch == "#" && stream.eat("*")) {
56
+ state.lastTokenWasBuiltin = false;
39
57
  return chain(stream, state, tokenComment);
40
58
  }
41
59
  // unparsed content?
42
60
  else if (ch == "#" && stream.match(/ *\[ *\[/)) {
61
+ state.lastTokenWasBuiltin = false;
43
62
  return chain(stream, state, tokenUnparsed);
44
63
  }
45
64
  // single line comment?
46
65
  else if (ch == "#" && stream.eat("#")) {
66
+ state.lastTokenWasBuiltin = false;
47
67
  stream.skipToEnd();
48
68
  return "comment";
49
69
  }
@@ -51,33 +71,44 @@ CodeMirror.defineMode("velocity", function() {
51
71
  else if (ch == "$") {
52
72
  stream.eatWhile(/[\w\d\$_\.{}]/);
53
73
  // is it one of the specials?
54
- if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {
74
+ if (specials && specials.propertyIsEnumerable(stream.current())) {
55
75
  return "keyword";
56
76
  }
57
77
  else {
78
+ state.lastTokenWasBuiltin = true;
58
79
  state.beforeParams = true;
59
80
  return "builtin";
60
81
  }
61
82
  }
62
83
  // is it a operator?
63
84
  else if (isOperatorChar.test(ch)) {
85
+ state.lastTokenWasBuiltin = false;
64
86
  stream.eatWhile(isOperatorChar);
65
87
  return "operator";
66
88
  }
67
89
  else {
68
90
  // get the whole word
69
- stream.eatWhile(/[\w\$_{}]/);
70
- var word = stream.current().toLowerCase();
91
+ stream.eatWhile(/[\w\$_{}@]/);
92
+ var word = stream.current();
71
93
  // is it one of the listed keywords?
72
94
  if (keywords && keywords.propertyIsEnumerable(word))
73
95
  return "keyword";
74
96
  // is it one of the listed functions?
75
97
  if (functions && functions.propertyIsEnumerable(word) ||
76
- stream.current().match(/^#[a-z0-9_]+ *$/i) && stream.peek()=="(") {
98
+ (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()=="(") &&
99
+ !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {
77
100
  state.beforeParams = true;
101
+ state.lastTokenWasBuiltin = false;
78
102
  return "keyword";
79
103
  }
104
+ if (state.inString) {
105
+ state.lastTokenWasBuiltin = false;
106
+ return "string";
107
+ }
108
+ if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)=="." && state.lastTokenWasBuiltin)
109
+ return "builtin";
80
110
  // default: just a "word"
111
+ state.lastTokenWasBuiltin = false;
81
112
  return null;
82
113
  }
83
114
  }
@@ -86,7 +117,12 @@ CodeMirror.defineMode("velocity", function() {
86
117
  return function(stream, state) {
87
118
  var escaped = false, next, end = false;
88
119
  while ((next = stream.next()) != null) {
89
- if (next == quote && !escaped) {
120
+ if ((next == quote) && !escaped) {
121
+ end = true;
122
+ break;
123
+ }
124
+ if (quote=='"' && stream.peek() == '$' && !escaped) {
125
+ state.inString = true;
90
126
  end = true;
91
127
  break;
92
128
  }
@@ -130,14 +166,20 @@ CodeMirror.defineMode("velocity", function() {
130
166
  return {
131
167
  tokenize: tokenBase,
132
168
  beforeParams: false,
133
- inParams: false
169
+ inParams: false,
170
+ inString: false,
171
+ lastTokenWasBuiltin: false
134
172
  };
135
173
  },
136
174
 
137
175
  token: function(stream, state) {
138
176
  if (stream.eatSpace()) return null;
139
177
  return state.tokenize(stream, state);
140
- }
178
+ },
179
+ blockCommentStart: "#*",
180
+ blockCommentEnd: "*#",
181
+ lineComment: "##",
182
+ fold: "velocity"
141
183
  };
142
184
  });
143
185
 
@@ -261,7 +261,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
261
261
  function attribute(type) {
262
262
  if (type == "equals") return cont(attvalue, attributes);
263
263
  if (!Kludges.allowMissing) setStyle = "error";
264
- else if (type == "word") setStyle = "attribute";
264
+ else if (type == "word") {setStyle = "attribute"; return cont(attribute, attributes);}
265
265
  return (type == "endTag" || type == "selfcloseTag") ? pass() : cont();
266
266
  }
267
267
  function attvalue(type) {
@@ -442,7 +442,11 @@ CodeMirror.defineMode("xquery", function() {
442
442
  if (stream.eatSpace()) return null;
443
443
  var style = state.tokenize(stream, state);
444
444
  return style;
445
- }
445
+ },
446
+
447
+ blockCommentStart: "(:",
448
+ blockCommentEnd: ":)"
449
+
446
450
  };
447
451
 
448
452
  });
@@ -26,14 +26,6 @@ CodeMirror.defineMode("yaml", function() {
26
26
  /* array list item */
27
27
  if (stream.match(/\s*-\s+/)) { return 'meta'; }
28
28
  }
29
- /* pairs (associative arrays) -> key */
30
- if (!state.pair && stream.match(/^\s*([a-z0-9\._-])+(?=\s*:)/i)) {
31
- state.pair = true;
32
- state.keyCol = stream.indentation();
33
- return "atom";
34
- }
35
- if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; }
36
-
37
29
  /* inline pairs/lists */
38
30
  if (stream.match(/^(\{|\}|\[|\])/)) {
39
31
  if (ch == '{')
@@ -74,6 +66,14 @@ CodeMirror.defineMode("yaml", function() {
74
66
  if (stream.match(keywordRegex)) { return 'keyword'; }
75
67
  }
76
68
 
69
+ /* pairs (associative arrays) -> key */
70
+ if (!state.pair && stream.match(/^\s*\S+(?=\s*:($|\s))/i)) {
71
+ state.pair = true;
72
+ state.keyCol = stream.indentation();
73
+ return "atom";
74
+ }
75
+ if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; }
76
+
77
77
  /* nothing found, continue */
78
78
  state.pairStart = false;
79
79
  state.escaped = (ch == '\\');
@@ -95,6 +95,7 @@
95
95
 
96
96
  div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
97
97
  div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
98
+ .CodeMirror-activeline-background {background: #e8f2ff;}
98
99
 
99
100
  /* STOP */
100
101
 
@@ -0,0 +1,6 @@
1
+ .CodeMirror-fullscreen {
2
+ position: fixed;
3
+ top: 0; left: 0; right: 0; bottom: 0;
4
+ height: auto;
5
+ z-index: 9999;
6
+ }
@@ -30,4 +30,5 @@
30
30
  .cm-s-3024-day span.cm-tag {color: #db2d20;}
31
31
  .cm-s-3024-day span.cm-link {color: #a16a94;}
32
32
 
33
+ .cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;}
33
34
  .cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
@@ -30,4 +30,5 @@
30
30
  .cm-s-3024-night span.cm-tag {color: #db2d20;}
31
31
  .cm-s-3024-night span.cm-link {color: #a16a94;}
32
32
 
33
+ .cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;}
33
34
  .cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
@@ -65,7 +65,7 @@
65
65
  border-left: 1px solid #7991E8;
66
66
  }
67
67
 
68
- .cm-s-ambiance .activeline {
68
+ .cm-s-ambiance .CodeMirror-activeline-background {
69
69
  background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
70
70
  }
71
71
 
@@ -30,4 +30,5 @@
30
30
  .cm-s-base16-dark span.cm-tag {color: #ac4142;}
31
31
  .cm-s-base16-dark span.cm-link {color: #aa759f;}
32
32
 
33
+ .cm-s-base16-dark .CodeMirror-activeline-background {background: #2F2F2F !important;}
33
34
  .cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
@@ -30,4 +30,5 @@
30
30
  .cm-s-base16-light span.cm-tag {color: #ac4142;}
31
31
  .cm-s-base16-light span.cm-link {color: #aa759f;}
32
32
 
33
+ .cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;}
33
34
  .cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
@@ -23,3 +23,6 @@
23
23
  .cm-s-blackboard .cm-header { color: #FF6400; }
24
24
  .cm-s-blackboard .cm-hr { color: #AEAEAE; }
25
25
  .cm-s-blackboard .cm-link { color: #8DA6CE; }
26
+
27
+ .cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}
28
+ .cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
@@ -16,3 +16,6 @@
16
16
  .cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
17
17
  .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
18
18
  .cm-s-cobalt span.cm-link { color: #845dc4; }
19
+
20
+ .cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;}
21
+ .cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
@@ -19,7 +19,5 @@
19
19
  .cm-s-eclipse span.cm-attribute {color: #00c;}
20
20
  .cm-s-eclipse span.cm-link {color: #219;}
21
21
 
22
- .cm-s-eclipse .CodeMirror-matchingbracket {
23
- outline:1px solid grey;
24
- color:black !important;
25
- }
22
+ .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}
23
+ .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
@@ -8,3 +8,6 @@
8
8
  .cm-s-elegant span.cm-builtin {color: #30a;}
9
9
  .cm-s-elegant span.cm-error {background-color: #fdd;}
10
10
  .cm-s-elegant span.cm-link {color: #762;}
11
+
12
+ .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}
13
+ .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
@@ -4,7 +4,7 @@
4
4
  .cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
5
5
  .cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
6
6
 
7
- .cm-s-erlang-dark span.cm-atom { color: #845dc4; }
7
+ .cm-s-erlang-dark span.cm-atom { color: #f133f1; }
8
8
  .cm-s-erlang-dark span.cm-attribute { color: #ff80e1; }
9
9
  .cm-s-erlang-dark span.cm-bracket { color: #ff9d00; }
10
10
  .cm-s-erlang-dark span.cm-builtin { color: #eaa; }
@@ -14,8 +14,17 @@
14
14
  .cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
15
15
  .cm-s-erlang-dark span.cm-meta { color: #50fefe; }
16
16
  .cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
17
- .cm-s-erlang-dark span.cm-operator { color: #d11; }
17
+ .cm-s-erlang-dark span.cm-operator { color: #d55; }
18
+ .cm-s-erlang-dark span.cm-property { color: #ccc; }
19
+ .cm-s-erlang-dark span.cm-qualifier { color: #ccc; }
20
+ .cm-s-erlang-dark span.cm-quote { color: #ccc; }
21
+ .cm-s-erlang-dark span.cm-special { color: #ffbbbb; }
18
22
  .cm-s-erlang-dark span.cm-string { color: #3ad900; }
23
+ .cm-s-erlang-dark span.cm-string-2 { color: #ccc; }
19
24
  .cm-s-erlang-dark span.cm-tag { color: #9effff; }
20
25
  .cm-s-erlang-dark span.cm-variable { color: #50fe50; }
21
26
  .cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
27
+ .cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }
28
+
29
+ .cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;}
30
+ .cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}