codemirror-rails 3.13 → 3.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/codemirror/rails/version.rb +2 -2
- data/vendor/assets/javascripts/codemirror.js +328 -250
- data/vendor/assets/javascripts/codemirror/addons/comment/comment.js +7 -6
- data/vendor/assets/javascripts/codemirror/addons/edit/closebrackets.js +33 -7
- data/vendor/assets/javascripts/codemirror/addons/edit/matchbrackets.js +14 -10
- data/vendor/assets/javascripts/codemirror/addons/edit/trailingspace.js +15 -0
- data/vendor/assets/javascripts/codemirror/addons/fold/brace-fold.js +70 -17
- data/vendor/assets/javascripts/codemirror/addons/fold/foldcode.js +56 -20
- data/vendor/assets/javascripts/codemirror/addons/fold/xml-fold.js +135 -39
- data/vendor/assets/javascripts/codemirror/addons/hint/html-hint.js +324 -571
- data/vendor/assets/javascripts/codemirror/addons/hint/show-hint.js +199 -109
- data/vendor/assets/javascripts/codemirror/addons/hint/xml-hint.js +60 -113
- data/vendor/assets/javascripts/codemirror/addons/lint/coffeescript-lint.js +24 -0
- data/vendor/assets/javascripts/codemirror/addons/merge/merge.js +431 -0
- data/vendor/assets/javascripts/codemirror/addons/mode/multiplex.js +7 -1
- data/vendor/assets/javascripts/codemirror/addons/search/match-highlighter.js +46 -20
- data/vendor/assets/javascripts/codemirror/addons/search/search.js +1 -1
- data/vendor/assets/javascripts/codemirror/keymaps/emacs.js +370 -13
- data/vendor/assets/javascripts/codemirror/keymaps/extra.js +43 -0
- data/vendor/assets/javascripts/codemirror/keymaps/vim.js +535 -214
- data/vendor/assets/javascripts/codemirror/modes/clike.js +56 -0
- data/vendor/assets/javascripts/codemirror/modes/javascript.js +19 -14
- data/vendor/assets/javascripts/codemirror/modes/markdown.js +2 -2
- data/vendor/assets/javascripts/codemirror/modes/ruby.js +67 -16
- data/vendor/assets/javascripts/codemirror/modes/smarty.js +167 -110
- data/vendor/assets/javascripts/codemirror/modes/sql.js +97 -15
- data/vendor/assets/javascripts/codemirror/modes/xml.js +14 -18
- data/vendor/assets/stylesheets/codemirror.css +0 -1
- data/vendor/assets/stylesheets/codemirror/addons/merge/merge.css +82 -0
- metadata +7 -2
@@ -19,43 +19,64 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
19
19
|
if (result !== false) return result;
|
20
20
|
}
|
21
21
|
|
22
|
-
if (
|
23
|
-
|
22
|
+
if (support.hexNumber == true &&
|
23
|
+
((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/))
|
24
|
+
|| (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) {
|
24
25
|
// hex
|
26
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html
|
25
27
|
return "number";
|
26
|
-
} else if (
|
27
|
-
||
|
28
|
+
} else if (support.binaryNumber == true &&
|
29
|
+
(((ch == "b" || ch == "B") && stream.match(/^'[01]+'/))
|
30
|
+
|| (ch == "0" && stream.match(/^b[01]+/)))) {
|
28
31
|
// bitstring
|
32
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html
|
29
33
|
return "number";
|
30
34
|
} else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {
|
31
35
|
// numbers
|
32
|
-
|
36
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html
|
37
|
+
stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/);
|
38
|
+
support.decimallessFloat == true && stream.eat('.');
|
33
39
|
return "number";
|
34
40
|
} else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) {
|
35
41
|
// placeholders
|
36
42
|
return "variable-3";
|
37
|
-
} else if (ch == '"
|
43
|
+
} else if (ch == "'" || (ch == '"' && support.doubleQuote)) {
|
38
44
|
// strings
|
45
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
|
39
46
|
state.tokenize = tokenLiteral(ch);
|
40
47
|
return state.tokenize(stream, state);
|
48
|
+
} else if ((((support.nCharCast == true && (ch == "n" || ch == "N"))
|
49
|
+
|| (support.charsetCast == true && ch == "_" && stream.match(/[a-z][a-z0-9]*/i)))
|
50
|
+
&& (stream.peek() == "'" || stream.peek() == '"'))) {
|
51
|
+
// charset casting: _utf8'str', N'str', n'str'
|
52
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html
|
53
|
+
return "keyword";
|
41
54
|
} else if (/^[\(\),\;\[\]]/.test(ch)) {
|
42
55
|
// no highlightning
|
43
56
|
return null;
|
44
|
-
} else if (
|
57
|
+
} else if (support.commentSlashSlash && ch == "/" && stream.eat("/")) {
|
58
|
+
// 1-line comment
|
59
|
+
stream.skipToEnd();
|
60
|
+
return "comment";
|
61
|
+
} else if ((support.commentHash && ch == "#")
|
62
|
+
|| (ch == "-" && stream.eat("-") && (!support.commentSpaceRequired || stream.eat(" ")))) {
|
45
63
|
// 1-line comments
|
64
|
+
// ref: https://kb.askmonty.org/en/comment-syntax/
|
46
65
|
stream.skipToEnd();
|
47
66
|
return "comment";
|
48
67
|
} else if (ch == "/" && stream.eat("*")) {
|
49
68
|
// multi-line comments
|
69
|
+
// ref: https://kb.askmonty.org/en/comment-syntax/
|
50
70
|
state.tokenize = tokenComment;
|
51
71
|
return state.tokenize(stream, state);
|
52
72
|
} else if (ch == ".") {
|
53
73
|
// .1 for 0.1
|
54
|
-
if (support.zerolessFloat == true && stream.match(/^(?:\d+(?:e
|
74
|
+
if (support.zerolessFloat == true && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i)) {
|
55
75
|
return "number";
|
56
76
|
}
|
57
77
|
// .table_name (ODBC)
|
58
|
-
|
78
|
+
// // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
|
79
|
+
if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) {
|
59
80
|
return "variable-2";
|
60
81
|
}
|
61
82
|
} else if (operatorChars.test(ch)) {
|
@@ -65,11 +86,13 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
65
86
|
} else if (ch == '{' &&
|
66
87
|
(stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) {
|
67
88
|
// dates (weird ODBC syntax)
|
89
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
|
68
90
|
return "number";
|
69
91
|
} else {
|
70
92
|
stream.eatWhile(/^[_\w\d]/);
|
71
93
|
var word = stream.current().toLowerCase();
|
72
94
|
// dates (standard SQL syntax)
|
95
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html
|
73
96
|
if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/)))
|
74
97
|
return "number";
|
75
98
|
if (atoms.hasOwnProperty(word)) return "atom";
|
@@ -166,6 +189,8 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
166
189
|
|
167
190
|
// `identifier`
|
168
191
|
function hookIdentifier(stream) {
|
192
|
+
// MySQL/MariaDB identifiers
|
193
|
+
// ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html
|
169
194
|
var ch;
|
170
195
|
while ((ch = stream.next()) != null) {
|
171
196
|
if (ch == "`" && !stream.eat("`")) return "variable-2";
|
@@ -176,7 +201,9 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
176
201
|
// variable token
|
177
202
|
function hookVar(stream) {
|
178
203
|
// variables
|
179
|
-
// @@
|
204
|
+
// @@prefix.varName @varName
|
205
|
+
// varName can be quoted with ` or ' or "
|
206
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html
|
180
207
|
if (stream.eat("@")) {
|
181
208
|
stream.match(/^session\./);
|
182
209
|
stream.match(/^local\./);
|
@@ -200,18 +227,27 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
200
227
|
|
201
228
|
// short client keyword token
|
202
229
|
function hookClient(stream) {
|
230
|
+
// \N means NULL
|
231
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html
|
232
|
+
if (stream.eat("N")) {
|
233
|
+
return "atom";
|
234
|
+
}
|
203
235
|
// \g, etc
|
204
|
-
|
236
|
+
// ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html
|
237
|
+
return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null;
|
205
238
|
}
|
206
239
|
|
240
|
+
// these keywords are used by all SQL dialects (however, a mode can still overwrite it)
|
207
241
|
var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where ";
|
208
242
|
|
243
|
+
// turn a space-separated list into an array
|
209
244
|
function set(str) {
|
210
245
|
var obj = {}, words = str.split(" ");
|
211
246
|
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
|
212
247
|
return obj;
|
213
248
|
}
|
214
249
|
|
250
|
+
// A generic SQL Mode. It's not a standard, it just try to support what is generally supported
|
215
251
|
CodeMirror.defineMIME("text/x-sql", {
|
216
252
|
name: "sql",
|
217
253
|
keywords: set(sqlKeywords + "begin"),
|
@@ -219,7 +255,7 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
219
255
|
atoms: set("false true null unknown"),
|
220
256
|
operatorChars: /^[*+\-%<>!=]/,
|
221
257
|
dateSQL: set("date time timestamp"),
|
222
|
-
support: set("ODBCdotTable")
|
258
|
+
support: set("ODBCdotTable doubleQuote binaryNumber hexNumber")
|
223
259
|
});
|
224
260
|
|
225
261
|
CodeMirror.defineMIME("text/x-mysql", {
|
@@ -230,7 +266,7 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
230
266
|
atoms: set("false true null unknown"),
|
231
267
|
operatorChars: /^[*+\-%<>!=&|^]/,
|
232
268
|
dateSQL: set("date time timestamp"),
|
233
|
-
support: set("ODBCdotTable zerolessFloat"),
|
269
|
+
support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
|
234
270
|
hooks: {
|
235
271
|
"@": hookVar,
|
236
272
|
"`": hookIdentifier,
|
@@ -246,7 +282,7 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
246
282
|
atoms: set("false true null unknown"),
|
247
283
|
operatorChars: /^[*+\-%<>!=&|^]/,
|
248
284
|
dateSQL: set("date time timestamp"),
|
249
|
-
support: set("ODBCdotTable zerolessFloat"),
|
285
|
+
support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),
|
250
286
|
hooks: {
|
251
287
|
"@": hookVar,
|
252
288
|
"`": hookIdentifier,
|
@@ -254,6 +290,20 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
254
290
|
}
|
255
291
|
});
|
256
292
|
|
293
|
+
// the query language used by Apache Cassandra is called CQL, but this mime type
|
294
|
+
// is called Cassandra to avoid confusion with Contextual Query Language
|
295
|
+
CodeMirror.defineMIME("text/x-cassandra", {
|
296
|
+
name: "sql",
|
297
|
+
client: { },
|
298
|
+
keywords: set("use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum"),
|
299
|
+
builtin: set("ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint"),
|
300
|
+
atoms: set("false true"),
|
301
|
+
operatorChars: /^[<>=]/,
|
302
|
+
dateSQL: { },
|
303
|
+
support: set("commentSlashSlash decimallessFloat"),
|
304
|
+
hooks: { }
|
305
|
+
});
|
306
|
+
|
257
307
|
// this is based on Peter Raganitsch's 'plsql' mode
|
258
308
|
CodeMirror.defineMIME("text/x-plsql", {
|
259
309
|
name: "sql",
|
@@ -262,6 +312,38 @@ CodeMirror.defineMode("sql", function(config, parserConfig) {
|
|
262
312
|
functions: set("abs acos add_months ascii asin atan atan2 average bfilename ceil chartorowid chr concat convert cos cosh count decode deref dual dump dup_val_on_index empty error exp false floor found glb greatest hextoraw initcap instr instrb isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mod months_between new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null nvl others power rawtohex reftohex round rowcount rowidtochar rpad rtrim sign sin sinh soundex sqlcode sqlerrm sqrt stddev substr substrb sum sysdate tan tanh to_char to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid upper user userenv variance vsize"),
|
263
313
|
builtin: set("bfile blob character clob dec float int integer mlslabel natural naturaln nchar nclob number numeric nvarchar2 real rowtype signtype smallint string varchar varchar2"),
|
264
314
|
operatorChars: /^[*+\-%<>!=~]/,
|
265
|
-
dateSQL: set("date time timestamp")
|
315
|
+
dateSQL: set("date time timestamp"),
|
316
|
+
support: set("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")
|
266
317
|
});
|
267
318
|
}());
|
319
|
+
|
320
|
+
/*
|
321
|
+
How Properties of Mime Types are used by SQL Mode
|
322
|
+
=================================================
|
323
|
+
|
324
|
+
keywords:
|
325
|
+
A list of keywords you want to be highlighted.
|
326
|
+
functions:
|
327
|
+
A list of function names you want to be highlighted.
|
328
|
+
builtin:
|
329
|
+
A list of builtin types you want to be highlighted (if you want types to be of class "builtin" instead of "keyword").
|
330
|
+
operatorChars:
|
331
|
+
All characters that must be handled as operators.
|
332
|
+
client:
|
333
|
+
Commands parsed and executed by the client (not the server).
|
334
|
+
support:
|
335
|
+
A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.
|
336
|
+
* ODBCdotTable: .tableName
|
337
|
+
* zerolessFloat: .1
|
338
|
+
* doubleQuote
|
339
|
+
* nCharCast: N'string'
|
340
|
+
* charsetCast: _utf8'string'
|
341
|
+
* commentHash: use # char for comments
|
342
|
+
* commentSlashSlash: use // for comments
|
343
|
+
* commentSpaceRequired: require a space after -- for comments
|
344
|
+
atoms:
|
345
|
+
Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:
|
346
|
+
UNKNOWN, INFINITY, UNDERFLOW, NaN...
|
347
|
+
dateSQL:
|
348
|
+
Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.
|
349
|
+
*/
|
@@ -58,20 +58,19 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
|
|
58
58
|
if (stream.eat("[")) {
|
59
59
|
if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
|
60
60
|
else return null;
|
61
|
-
}
|
62
|
-
|
63
|
-
else if (stream.match("DOCTYPE", true, true)) {
|
61
|
+
} else if (stream.match("--")) {
|
62
|
+
return chain(inBlock("comment", "-->"));
|
63
|
+
} else if (stream.match("DOCTYPE", true, true)) {
|
64
64
|
stream.eatWhile(/[\w\._\-]/);
|
65
65
|
return chain(doctype(1));
|
66
|
+
} else {
|
67
|
+
return null;
|
66
68
|
}
|
67
|
-
|
68
|
-
}
|
69
|
-
else if (stream.eat("?")) {
|
69
|
+
} else if (stream.eat("?")) {
|
70
70
|
stream.eatWhile(/[\w\._\-]/);
|
71
71
|
state.tokenize = inBlock("meta", "?>");
|
72
72
|
return "meta";
|
73
|
-
}
|
74
|
-
else {
|
73
|
+
} else {
|
75
74
|
var isClose = stream.eat("/");
|
76
75
|
tagName = "";
|
77
76
|
var c;
|
@@ -81,8 +80,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
|
|
81
80
|
state.tokenize = inTag;
|
82
81
|
return "tag";
|
83
82
|
}
|
84
|
-
}
|
85
|
-
else if (ch == "&") {
|
83
|
+
} else if (ch == "&") {
|
86
84
|
var ok;
|
87
85
|
if (stream.eat("#")) {
|
88
86
|
if (stream.eat("x")) {
|
@@ -94,8 +92,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
|
|
94
92
|
ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";");
|
95
93
|
}
|
96
94
|
return ok ? "atom" : "error";
|
97
|
-
}
|
98
|
-
else {
|
95
|
+
} else {
|
99
96
|
stream.eatWhile(/[^&<]/);
|
100
97
|
return null;
|
101
98
|
}
|
@@ -107,16 +104,15 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
|
|
107
104
|
state.tokenize = inText;
|
108
105
|
type = ch == ">" ? "endTag" : "selfcloseTag";
|
109
106
|
return "tag";
|
110
|
-
}
|
111
|
-
else if (ch == "=") {
|
107
|
+
} else if (ch == "=") {
|
112
108
|
type = "equals";
|
113
109
|
return null;
|
114
|
-
}
|
115
|
-
|
110
|
+
} else if (ch == "<") {
|
111
|
+
return "error";
|
112
|
+
} else if (/[\'\"]/.test(ch)) {
|
116
113
|
state.tokenize = inAttribute(ch);
|
117
114
|
return state.tokenize(stream, state);
|
118
|
-
}
|
119
|
-
else {
|
115
|
+
} else {
|
120
116
|
stream.eatWhile(/[^\s\u00a0=<>\"\']/);
|
121
117
|
return "word";
|
122
118
|
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
.CodeMirror-diff {
|
2
|
+
position: relative;
|
3
|
+
border: 1px solid #ddd;
|
4
|
+
}
|
5
|
+
|
6
|
+
.CodeMirror-diff, .CodeMirror-diff .CodeMirror {
|
7
|
+
height: 350px;
|
8
|
+
}
|
9
|
+
|
10
|
+
.CodeMirror-diff-2pane .CodeMirror-diff-pane { width: 47%; }
|
11
|
+
.CodeMirror-diff-2pane .CodeMirror-diff-gap { width: 6%; }
|
12
|
+
.CodeMirror-diff-3pane .CodeMirror-diff-pane { width: 31%; }
|
13
|
+
.CodeMirror-diff-3pane .CodeMirror-diff-gap { width: 3.5%; }
|
14
|
+
|
15
|
+
.CodeMirror-diff-pane {
|
16
|
+
float: left;
|
17
|
+
}
|
18
|
+
|
19
|
+
.CodeMirror-diff-gap {
|
20
|
+
float: left;
|
21
|
+
height: 100%;
|
22
|
+
box-sizing: border-box;
|
23
|
+
overflow: hidden;
|
24
|
+
border-left: 1px solid #ddd;
|
25
|
+
border-right: 1px solid #ddd;
|
26
|
+
position: relative;
|
27
|
+
background: #f8f8f8;
|
28
|
+
}
|
29
|
+
|
30
|
+
.CodeMirror-diff-scrolllock-wrap {
|
31
|
+
position: absolute;
|
32
|
+
bottom: 0; left: 50%;
|
33
|
+
}
|
34
|
+
.CodeMirror-diff-scrolllock {
|
35
|
+
position: relative;
|
36
|
+
left: -50%;
|
37
|
+
cursor: pointer;
|
38
|
+
color: #555;
|
39
|
+
line-height: 1;
|
40
|
+
}
|
41
|
+
|
42
|
+
.CodeMirror-diff-copybuttons-left, .CodeMirror-diff-copybuttons-right {
|
43
|
+
position: absolute;
|
44
|
+
left: 0; top: 0;
|
45
|
+
right: 0; bottom: 0;
|
46
|
+
line-height: 1;
|
47
|
+
}
|
48
|
+
|
49
|
+
.CodeMirror-diff-copy {
|
50
|
+
position: absolute;
|
51
|
+
cursor: pointer;
|
52
|
+
color: #44c;
|
53
|
+
}
|
54
|
+
|
55
|
+
.CodeMirror-diff-copybuttons-left .CodeMirror-diff-copy { left: 2px; }
|
56
|
+
.CodeMirror-diff-copybuttons-right .CodeMirror-diff-copy { right: 2px; }
|
57
|
+
|
58
|
+
.CodeMirror-diff-r-inserted, .CodeMirror-diff-l-inserted {
|
59
|
+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);
|
60
|
+
background-position: bottom left;
|
61
|
+
background-repeat: repeat-x;
|
62
|
+
}
|
63
|
+
|
64
|
+
.CodeMirror-diff-r-deleted, .CodeMirror-diff-l-deleted {
|
65
|
+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);
|
66
|
+
background-position: bottom left;
|
67
|
+
background-repeat: repeat-x;
|
68
|
+
}
|
69
|
+
|
70
|
+
.CodeMirror-diff-r-chunk { background: #ffffe0; }
|
71
|
+
.CodeMirror-diff-r-chunk-start { border-top: 1px solid #ee8; }
|
72
|
+
.CodeMirror-diff-r-chunk-end { border-bottom: 1px solid #ee8; }
|
73
|
+
.CodeMirror-diff-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }
|
74
|
+
|
75
|
+
.CodeMirror-diff-l-chunk { background: #eef; }
|
76
|
+
.CodeMirror-diff-l-chunk-start { border-top: 1px solid #88e; }
|
77
|
+
.CodeMirror-diff-l-chunk-end { border-bottom: 1px solid #88e; }
|
78
|
+
.CodeMirror-diff-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }
|
79
|
+
|
80
|
+
.CodeMirror-diff-l-chunk.CodeMirror-diff-r-chunk { background: #dfd; }
|
81
|
+
.CodeMirror-diff-l-chunk-start.CodeMirror-diff-r-chunk-start { border-top: 1px solid #4e4; }
|
82
|
+
.CodeMirror-diff-l-chunk-end.CodeMirror-diff-r-chunk-end { border-bottom: 1px solid #4e4; }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codemirror-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '3.
|
4
|
+
version: '3.14'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Fixler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- vendor/assets/javascripts/codemirror/addons/edit/continuecomment.js
|
156
156
|
- vendor/assets/javascripts/codemirror/addons/edit/continuelist.js
|
157
157
|
- vendor/assets/javascripts/codemirror/addons/edit/matchbrackets.js
|
158
|
+
- vendor/assets/javascripts/codemirror/addons/edit/trailingspace.js
|
158
159
|
- vendor/assets/javascripts/codemirror/addons/fold/brace-fold.js
|
159
160
|
- vendor/assets/javascripts/codemirror/addons/fold/foldcode.js
|
160
161
|
- vendor/assets/javascripts/codemirror/addons/fold/indent-fold.js
|
@@ -165,9 +166,11 @@ files:
|
|
165
166
|
- vendor/assets/javascripts/codemirror/addons/hint/python-hint.js
|
166
167
|
- vendor/assets/javascripts/codemirror/addons/hint/show-hint.js
|
167
168
|
- vendor/assets/javascripts/codemirror/addons/hint/xml-hint.js
|
169
|
+
- vendor/assets/javascripts/codemirror/addons/lint/coffeescript-lint.js
|
168
170
|
- vendor/assets/javascripts/codemirror/addons/lint/javascript-lint.js
|
169
171
|
- vendor/assets/javascripts/codemirror/addons/lint/json-lint.js
|
170
172
|
- vendor/assets/javascripts/codemirror/addons/lint/lint.js
|
173
|
+
- vendor/assets/javascripts/codemirror/addons/merge/merge.js
|
171
174
|
- vendor/assets/javascripts/codemirror/addons/mode/loadmode.js
|
172
175
|
- vendor/assets/javascripts/codemirror/addons/mode/multiplex.js
|
173
176
|
- vendor/assets/javascripts/codemirror/addons/mode/overlay.js
|
@@ -181,6 +184,7 @@ files:
|
|
181
184
|
- vendor/assets/javascripts/codemirror/addons/selection/active-line.js
|
182
185
|
- vendor/assets/javascripts/codemirror/addons/selection/mark-selection.js
|
183
186
|
- vendor/assets/javascripts/codemirror/keymaps/emacs.js
|
187
|
+
- vendor/assets/javascripts/codemirror/keymaps/extra.js
|
184
188
|
- vendor/assets/javascripts/codemirror/keymaps/vim.js
|
185
189
|
- vendor/assets/javascripts/codemirror/modes/apl.js
|
186
190
|
- vendor/assets/javascripts/codemirror/modes/asterisk.js
|
@@ -252,6 +256,7 @@ files:
|
|
252
256
|
- vendor/assets/stylesheets/codemirror/addons/dialog/dialog.css
|
253
257
|
- vendor/assets/stylesheets/codemirror/addons/hint/show-hint.css
|
254
258
|
- vendor/assets/stylesheets/codemirror/addons/lint/lint.css
|
259
|
+
- vendor/assets/stylesheets/codemirror/addons/merge/merge.css
|
255
260
|
- vendor/assets/stylesheets/codemirror/modes/rpm-spec.css
|
256
261
|
- vendor/assets/stylesheets/codemirror/modes/tiddlywiki.css
|
257
262
|
- vendor/assets/stylesheets/codemirror/modes/tiki.css
|