codemirror-rails 2.3 → 2.21

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.
Files changed (71) hide show
  1. data/README.md +0 -16
  2. data/codemirror-rails.gemspec +1 -1
  3. data/lib/codemirror/rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/codemirror.js +323 -687
  5. data/vendor/assets/javascripts/codemirror/modes/clike.js +3 -40
  6. data/vendor/assets/javascripts/codemirror/modes/clojure.js +14 -14
  7. data/vendor/assets/javascripts/codemirror/modes/coffeescript.js +0 -6
  8. data/vendor/assets/javascripts/codemirror/modes/css.js +1 -1
  9. data/vendor/assets/javascripts/codemirror/modes/diff.js +5 -24
  10. data/vendor/assets/javascripts/codemirror/modes/gfm.js +4 -40
  11. data/vendor/assets/javascripts/codemirror/modes/go.js +22 -20
  12. data/vendor/assets/javascripts/codemirror/modes/htmlembedded.js +1 -1
  13. data/vendor/assets/javascripts/codemirror/modes/htmlmixed.js +2 -4
  14. data/vendor/assets/javascripts/codemirror/modes/javascript.js +7 -8
  15. data/vendor/assets/javascripts/codemirror/modes/less.js +54 -100
  16. data/vendor/assets/javascripts/codemirror/modes/markdown.js +49 -52
  17. data/vendor/assets/javascripts/codemirror/modes/pascal.js +46 -2
  18. data/vendor/assets/javascripts/codemirror/modes/perl.js +1 -1
  19. data/vendor/assets/javascripts/codemirror/modes/php.js +25 -54
  20. data/vendor/assets/javascripts/codemirror/modes/python.js +16 -14
  21. data/vendor/assets/javascripts/codemirror/modes/rpm-spec.js +1 -1
  22. data/vendor/assets/javascripts/codemirror/modes/rst.js +1 -1
  23. data/vendor/assets/javascripts/codemirror/modes/ruby.js +9 -4
  24. data/vendor/assets/javascripts/codemirror/modes/scheme.js +46 -74
  25. data/vendor/assets/javascripts/codemirror/modes/smalltalk.js +16 -16
  26. data/vendor/assets/javascripts/codemirror/modes/stex.js +6 -21
  27. data/vendor/assets/javascripts/codemirror/modes/tiddlywiki.js +45 -55
  28. data/vendor/assets/javascripts/codemirror/modes/xml.js +14 -79
  29. data/vendor/assets/javascripts/codemirror/{utils/overlay.js → overlay.js} +2 -3
  30. data/vendor/assets/javascripts/codemirror/runmode.js +27 -0
  31. data/vendor/assets/stylesheets/codemirror.css +2 -63
  32. data/vendor/assets/stylesheets/codemirror/modes/tiddlywiki.css +21 -14
  33. data/vendor/assets/stylesheets/codemirror/themes/eclipse.css +1 -1
  34. data/vendor/assets/stylesheets/codemirror/themes/elegant.css +2 -2
  35. data/vendor/assets/stylesheets/codemirror/themes/neat.css +3 -3
  36. data/vendor/assets/stylesheets/codemirror/themes/night.css +1 -1
  37. data/vendor/assets/stylesheets/codemirror/themes/rubyblue.css +2 -2
  38. metadata +6 -39
  39. data/vendor/assets/javascripts/codemirror/keymaps/emacs.js +0 -29
  40. data/vendor/assets/javascripts/codemirror/keymaps/vim.js +0 -766
  41. data/vendor/assets/javascripts/codemirror/modes/ecl.js +0 -203
  42. data/vendor/assets/javascripts/codemirror/modes/erlang.js +0 -251
  43. data/vendor/assets/javascripts/codemirror/modes/pig.js +0 -172
  44. data/vendor/assets/javascripts/codemirror/modes/properties.js +0 -63
  45. data/vendor/assets/javascripts/codemirror/modes/shell.js +0 -103
  46. data/vendor/assets/javascripts/codemirror/modes/smarty.js +0 -148
  47. data/vendor/assets/javascripts/codemirror/modes/tiki.js +0 -316
  48. data/vendor/assets/javascripts/codemirror/modes/vbscript.js +0 -26
  49. data/vendor/assets/javascripts/codemirror/modes/xquery.js +0 -448
  50. data/vendor/assets/javascripts/codemirror/utils/closetag.js +0 -146
  51. data/vendor/assets/javascripts/codemirror/utils/dialog.js +0 -63
  52. data/vendor/assets/javascripts/codemirror/utils/foldcode.js +0 -196
  53. data/vendor/assets/javascripts/codemirror/utils/formatting.js +0 -297
  54. data/vendor/assets/javascripts/codemirror/utils/javascript-hint.js +0 -134
  55. data/vendor/assets/javascripts/codemirror/utils/loadmode.js +0 -51
  56. data/vendor/assets/javascripts/codemirror/utils/match-highlighter.js +0 -44
  57. data/vendor/assets/javascripts/codemirror/utils/multiplex.js +0 -72
  58. data/vendor/assets/javascripts/codemirror/utils/pig-hint.js +0 -123
  59. data/vendor/assets/javascripts/codemirror/utils/runmode.js +0 -49
  60. data/vendor/assets/javascripts/codemirror/utils/search.js +0 -118
  61. data/vendor/assets/javascripts/codemirror/utils/searchcursor.js +0 -117
  62. data/vendor/assets/javascripts/codemirror/utils/simple-hint.js +0 -72
  63. data/vendor/assets/stylesheets/codemirror/modes/tiki.css +0 -26
  64. data/vendor/assets/stylesheets/codemirror/themes/ambiance.css +0 -81
  65. data/vendor/assets/stylesheets/codemirror/themes/blackboard.css +0 -25
  66. data/vendor/assets/stylesheets/codemirror/themes/erlang-dark.css +0 -21
  67. data/vendor/assets/stylesheets/codemirror/themes/lesser-dark.css +0 -44
  68. data/vendor/assets/stylesheets/codemirror/themes/vibrant-ink.css +0 -27
  69. data/vendor/assets/stylesheets/codemirror/themes/xq-dark.css +0 -46
  70. data/vendor/assets/stylesheets/codemirror/utils/dialog.css +0 -23
  71. data/vendor/assets/stylesheets/codemirror/utils/simple-hint.css +0 -16
@@ -1,172 +0,0 @@
1
- /*
2
- * Pig Latin Mode for CodeMirror 2
3
- * @author Prasanth Jayachandran
4
- * @link https://github.com/prasanthj/pig-codemirror-2
5
- * This implementation is adapted from PL/SQL mode in CodeMirror 2.
6
- */
7
- CodeMirror.defineMode("pig", function(config, parserConfig) {
8
- var indentUnit = config.indentUnit,
9
- keywords = parserConfig.keywords,
10
- builtins = parserConfig.builtins,
11
- types = parserConfig.types,
12
- multiLineStrings = parserConfig.multiLineStrings;
13
-
14
- var isOperatorChar = /[*+\-%<>=&?:\/!|]/;
15
-
16
- function chain(stream, state, f) {
17
- state.tokenize = f;
18
- return f(stream, state);
19
- }
20
-
21
- var type;
22
- function ret(tp, style) {
23
- type = tp;
24
- return style;
25
- }
26
-
27
- function tokenComment(stream, state) {
28
- var isEnd = false;
29
- var ch;
30
- while(ch = stream.next()) {
31
- if(ch == "/" && isEnd) {
32
- state.tokenize = tokenBase;
33
- break;
34
- }
35
- isEnd = (ch == "*");
36
- }
37
- return ret("comment", "comment");
38
- }
39
-
40
- function tokenString(quote) {
41
- return function(stream, state) {
42
- var escaped = false, next, end = false;
43
- while((next = stream.next()) != null) {
44
- if (next == quote && !escaped) {
45
- end = true; break;
46
- }
47
- escaped = !escaped && next == "\\";
48
- }
49
- if (end || !(escaped || multiLineStrings))
50
- state.tokenize = tokenBase;
51
- return ret("string", "error");
52
- };
53
- }
54
-
55
- function tokenBase(stream, state) {
56
- var ch = stream.next();
57
-
58
- // is a start of string?
59
- if (ch == '"' || ch == "'")
60
- return chain(stream, state, tokenString(ch));
61
- // is it one of the special chars
62
- else if(/[\[\]{}\(\),;\.]/.test(ch))
63
- return ret(ch);
64
- // is it a number?
65
- else if(/\d/.test(ch)) {
66
- stream.eatWhile(/[\w\.]/);
67
- return ret("number", "number");
68
- }
69
- // multi line comment or operator
70
- else if (ch == "/") {
71
- if (stream.eat("*")) {
72
- return chain(stream, state, tokenComment);
73
- }
74
- else {
75
- stream.eatWhile(isOperatorChar);
76
- return ret("operator", "operator");
77
- }
78
- }
79
- // single line comment or operator
80
- else if (ch=="-") {
81
- if(stream.eat("-")){
82
- stream.skipToEnd();
83
- return ret("comment", "comment");
84
- }
85
- else {
86
- stream.eatWhile(isOperatorChar);
87
- return ret("operator", "operator");
88
- }
89
- }
90
- // is it an operator
91
- else if (isOperatorChar.test(ch)) {
92
- stream.eatWhile(isOperatorChar);
93
- return ret("operator", "operator");
94
- }
95
- else {
96
- // get the while word
97
- stream.eatWhile(/[\w\$_]/);
98
- // is it one of the listed keywords?
99
- if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {
100
- if (stream.eat(")") || stream.eat(".")) {
101
- //keywords can be used as variables like flatten(group), group.$0 etc..
102
- }
103
- else {
104
- return ("keyword", "keyword");
105
- }
106
- }
107
- // is it one of the builtin functions?
108
- if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))
109
- {
110
- return ("keyword", "variable-2")
111
- }
112
- // is it one of the listed types?
113
- if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))
114
- return ("keyword", "variable-3")
115
- // default is a 'word'
116
- return ret("word", "pig-word");
117
- }
118
- }
119
-
120
- // Interface
121
- return {
122
- startState: function(basecolumn) {
123
- return {
124
- tokenize: tokenBase,
125
- startOfLine: true
126
- };
127
- },
128
-
129
- token: function(stream, state) {
130
- if(stream.eatSpace()) return null;
131
- var style = state.tokenize(stream, state);
132
- return style;
133
- }
134
- };
135
- });
136
-
137
- (function() {
138
- function keywords(str) {
139
- var obj = {}, words = str.split(" ");
140
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
141
- return obj;
142
- }
143
-
144
- // builtin funcs taken from trunk revision 1303237
145
- var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL "
146
- + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS "
147
- + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG "
148
- + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN "
149
- + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER "
150
- + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS "
151
- + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA "
152
- + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE "
153
- + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG "
154
- + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ";
155
-
156
- // taken from QueryLexer.g
157
- var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP "
158
- + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL "
159
- + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE "
160
- + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE "
161
- + "NEQ MATCHES TRUE FALSE ";
162
-
163
- // data types
164
- var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP "
165
-
166
- CodeMirror.defineMIME("text/x-pig", {
167
- name: "pig",
168
- builtins: keywords(pBuiltins),
169
- keywords: keywords(pKeywords),
170
- types: keywords(pTypes)
171
- });
172
- }());
@@ -1,63 +0,0 @@
1
- CodeMirror.defineMode("properties", function() {
2
- return {
3
- token: function(stream, state) {
4
- var sol = stream.sol() || state.afterSection;
5
- var eol = stream.eol();
6
-
7
- state.afterSection = false;
8
-
9
- if (sol) {
10
- if (state.nextMultiline) {
11
- state.inMultiline = true;
12
- state.nextMultiline = false;
13
- } else {
14
- state.position = "def";
15
- }
16
- }
17
-
18
- if (eol && ! state.nextMultiline) {
19
- state.inMultiline = false;
20
- state.position = "def";
21
- }
22
-
23
- if (sol) {
24
- while(stream.eatSpace());
25
- }
26
-
27
- var ch = stream.next();
28
-
29
- if (sol && (ch === "#" || ch === "!" || ch === ";")) {
30
- state.position = "comment";
31
- stream.skipToEnd();
32
- return "comment";
33
- } else if (sol && ch === "[") {
34
- state.afterSection = true;
35
- stream.skipTo("]"); stream.eat("]");
36
- return "header";
37
- } else if (ch === "=" || ch === ":") {
38
- state.position = "quote";
39
- return null;
40
- } else if (ch === "\\" && state.position === "quote") {
41
- if (stream.next() !== "u") { // u = Unicode sequence \u1234
42
- // Multiline value
43
- state.nextMultiline = true;
44
- }
45
- }
46
-
47
- return state.position;
48
- },
49
-
50
- startState: function() {
51
- return {
52
- position : "def", // Current position, "def", "quote" or "comment"
53
- nextMultiline : false, // Is the next line multiline value
54
- inMultiline : false, // Is the current line a multiline value
55
- afterSection : false // Did we just open a section
56
- };
57
- }
58
-
59
- };
60
- });
61
-
62
- CodeMirror.defineMIME("text/x-properties", "properties");
63
- CodeMirror.defineMIME("text/x-ini", "properties");
@@ -1,103 +0,0 @@
1
- CodeMirror.defineMode('shell', function(config) {
2
-
3
- var atoms = ['true','false'],
4
- keywords = ['if','then','do','else','elif','while','until','for','in','esac','fi','fin','fil','done','exit','set','unset','export','function'],
5
- commands = ['ab','awk','bash','beep','cat','cc','cd','chown','chmod','chroot','clear','cp','curl','cut','diff','echo','find','gawk','gcc','get','git','grep','kill','killall','ls','make','mkdir','openssl','mv','nc','node','npm','ping','ps','restart','rm','rmdir','sed','service','sh','shopt','shred','source','sort','sleep','ssh','start','stop','su','sudo','tee','telnet','top','touch','vi','vim','wall','wc','wget','who','write','yes','zsh'];
6
-
7
- function tokenBase(stream, state) {
8
-
9
- var sol = stream.sol();
10
- var ch = stream.next();
11
-
12
- if (ch === '\'' || ch === '"' || ch === '`') {
13
- state.tokens.unshift(tokenString(ch));
14
- return tokenize(stream, state);
15
- }
16
- if (ch === '#') {
17
- if (sol && stream.eat('!')) {
18
- stream.skipToEnd();
19
- return 'meta'; // 'comment'?
20
- }
21
- stream.skipToEnd();
22
- return 'comment';
23
- }
24
- if (ch === '$') {
25
- state.tokens.unshift(tokenDollar);
26
- return tokenize(stream, state);
27
- }
28
- if (ch === '+' || ch === '=') {
29
- return 'operator';
30
- }
31
- if (ch === '-') {
32
- stream.eat('-');
33
- stream.eatWhile(/\w/);
34
- return 'attribute';
35
- }
36
- if (/\d/.test(ch)) {
37
- stream.eatWhile(/\d/);
38
- if(!/\w/.test(stream.peek())) {
39
- return 'number';
40
- }
41
- }
42
- stream.eatWhile(/\w/);
43
- var cur = stream.current();
44
- if (stream.peek() === '=' && /\w+/.test(cur)) return 'def';
45
- if (atoms.indexOf(cur) !== -1) return 'atom';
46
- if (commands.indexOf(cur) !== -1) return 'builtin';
47
- if (keywords.indexOf(cur) !== -1) return 'keyword';
48
- return 'word';
49
- }
50
-
51
- function tokenString(quote) {
52
- return function(stream, state) {
53
- var next, end = false, escaped = false;
54
- while ((next = stream.next()) != null) {
55
- if (next === quote && !escaped) {
56
- end = true;
57
- break;
58
- }
59
- if (next === '$' && !escaped && quote !== '\'') {
60
- escaped = true;
61
- stream.backUp(1);
62
- state.tokens.unshift(tokenDollar);
63
- break;
64
- }
65
- escaped = !escaped && next === '\\';
66
- }
67
- if (end || !escaped) {
68
- state.tokens.shift();
69
- }
70
- return (quote === '`' || quote === ')' ? 'quote' : 'string');
71
- };
72
- };
73
-
74
- var tokenDollar = function(stream, state) {
75
- if (state.tokens.length > 1) stream.eat('$');
76
- var ch = stream.next(), hungry = /\w/;
77
- if (ch === '{') hungry = /[^}]/;
78
- if (ch === '(') {
79
- state.tokens[0] = tokenString(')');
80
- return tokenize(stream, state);
81
- }
82
- if (!/\d/.test(ch)) {
83
- stream.eatWhile(hungry);
84
- stream.eat('}');
85
- }
86
- state.tokens.shift();
87
- return 'def';
88
- };
89
-
90
- function tokenize(stream, state) {
91
- return (state.tokens[0] || tokenBase) (stream, state);
92
- };
93
-
94
- return {
95
- startState: function() {return {tokens:[]}},
96
- token: function(stream, state) {
97
- if (stream.eatSpace()) return null;
98
- return tokenize(stream, state);
99
- }
100
- };
101
- });
102
-
103
- CodeMirror.defineMIME('text/x-sh', 'shell');
@@ -1,148 +0,0 @@
1
- CodeMirror.defineMode("smarty", function(config, parserConfig) {
2
- var keyFuncs = ["debug", "extends", "function", "include", "literal"];
3
- var last;
4
- var regs = {
5
- operatorChars: /[+\-*&%=<>!?]/,
6
- validIdentifier: /[a-zA-Z0-9\_]/,
7
- stringChar: /[\'\"]/
8
- }
9
- var leftDelim = (typeof config.mode.leftDelimiter != 'undefined') ? config.mode.leftDelimiter : "{";
10
- var rightDelim = (typeof config.mode.rightDelimiter != 'undefined') ? config.mode.rightDelimiter : "}";
11
- function ret(style, lst) { last = lst; return style; }
12
-
13
-
14
- function tokenizer(stream, state) {
15
- function chain(parser) {
16
- state.tokenize = parser;
17
- return parser(stream, state);
18
- }
19
-
20
- if (stream.match(leftDelim, true)) {
21
- if (stream.eat("*")) {
22
- return chain(inBlock("comment", "*" + rightDelim));
23
- }
24
- else {
25
- state.tokenize = inSmarty;
26
- return "tag";
27
- }
28
- }
29
- else {
30
- // I'd like to do an eatWhile() here, but I can't get it to eat only up to the rightDelim string/char
31
- stream.next();
32
- return null;
33
- }
34
- }
35
-
36
- function inSmarty(stream, state) {
37
- if (stream.match(rightDelim, true)) {
38
- state.tokenize = tokenizer;
39
- return ret("tag", null);
40
- }
41
-
42
- var ch = stream.next();
43
- if (ch == "$") {
44
- stream.eatWhile(regs.validIdentifier);
45
- return ret("variable-2", "variable");
46
- }
47
- else if (ch == ".") {
48
- return ret("operator", "property");
49
- }
50
- else if (regs.stringChar.test(ch)) {
51
- state.tokenize = inAttribute(ch);
52
- return ret("string", "string");
53
- }
54
- else if (regs.operatorChars.test(ch)) {
55
- stream.eatWhile(regs.operatorChars);
56
- return ret("operator", "operator");
57
- }
58
- else if (ch == "[" || ch == "]") {
59
- return ret("bracket", "bracket");
60
- }
61
- else if (/\d/.test(ch)) {
62
- stream.eatWhile(/\d/);
63
- return ret("number", "number");
64
- }
65
- else {
66
- if (state.last == "variable") {
67
- if (ch == "@") {
68
- stream.eatWhile(regs.validIdentifier);
69
- return ret("property", "property");
70
- }
71
- else if (ch == "|") {
72
- stream.eatWhile(regs.validIdentifier);
73
- return ret("qualifier", "modifier");
74
- }
75
- }
76
- else if (state.last == "whitespace") {
77
- stream.eatWhile(regs.validIdentifier);
78
- return ret("attribute", "modifier");
79
- }
80
- else if (state.last == "property") {
81
- stream.eatWhile(regs.validIdentifier);
82
- return ret("property", null);
83
- }
84
- else if (/\s/.test(ch)) {
85
- last = "whitespace";
86
- return null;
87
- }
88
-
89
- var str = "";
90
- if (ch != "/") {
91
- str += ch;
92
- }
93
- var c = "";
94
- while ((c = stream.eat(regs.validIdentifier))) {
95
- str += c;
96
- }
97
- var i, j;
98
- for (i=0, j=keyFuncs.length; i<j; i++) {
99
- if (keyFuncs[i] == str) {
100
- return ret("keyword", "keyword");
101
- }
102
- }
103
- if (/\s/.test(ch)) {
104
- return null;
105
- }
106
- return ret("tag", "tag");
107
- }
108
- }
109
-
110
- function inAttribute(quote) {
111
- return function(stream, state) {
112
- while (!stream.eol()) {
113
- if (stream.next() == quote) {
114
- state.tokenize = inSmarty;
115
- break;
116
- }
117
- }
118
- return "string";
119
- };
120
- }
121
-
122
- function inBlock(style, terminator) {
123
- return function(stream, state) {
124
- while (!stream.eol()) {
125
- if (stream.match(terminator)) {
126
- state.tokenize = tokenizer;
127
- break;
128
- }
129
- stream.next();
130
- }
131
- return style;
132
- };
133
- }
134
-
135
- return {
136
- startState: function() {
137
- return { tokenize: tokenizer, mode: "smarty", last: null };
138
- },
139
- token: function(stream, state) {
140
- var style = state.tokenize(stream, state);
141
- state.last = last;
142
- return style;
143
- },
144
- electricChars: ""
145
- }
146
- });
147
-
148
- CodeMirror.defineMIME("text/x-smarty", "smarty");