codemirror-rails 0.3.2 → 2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,9 +3,9 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
3
3
  var Kludges = parserConfig.htmlMode ? {
4
4
  autoSelfClosers: {"br": true, "img": true, "hr": true, "link": true, "input": true,
5
5
  "meta": true, "col": true, "frame": true, "base": true, "area": true},
6
- doNotIndent: {"pre": true, "!cdata": true},
6
+ doNotIndent: {"pre": true},
7
7
  allowUnquoted: true
8
- } : {autoSelfClosers: {}, doNotIndent: {"!cdata": true}, allowUnquoted: false};
8
+ } : {autoSelfClosers: {}, doNotIndent: {}, allowUnquoted: false};
9
9
  var alignCDATA = parserConfig.alignCDATA;
10
10
 
11
11
  // Return variables for tokenizers
@@ -27,7 +27,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
27
27
  else if (stream.match("--")) return chain(inBlock("comment", "-->"));
28
28
  else if (stream.match("DOCTYPE", true, true)) {
29
29
  stream.eatWhile(/[\w\._\-]/);
30
- return chain(inBlock("meta", ">"));
30
+ return chain(doctype(1));
31
31
  }
32
32
  else return null;
33
33
  }
@@ -102,6 +102,26 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
102
102
  return style;
103
103
  };
104
104
  }
105
+ function doctype(depth) {
106
+ return function(stream, state) {
107
+ var ch;
108
+ while ((ch = stream.next()) != null) {
109
+ if (ch == "<") {
110
+ state.tokenize = doctype(depth + 1);
111
+ return state.tokenize(stream, state);
112
+ } else if (ch == ">") {
113
+ if (depth == 1) {
114
+ state.tokenize = inText;
115
+ break;
116
+ } else {
117
+ state.tokenize = doctype(depth - 1);
118
+ return state.tokenize(stream, state);
119
+ }
120
+ }
121
+ }
122
+ return "meta";
123
+ };
124
+ }
105
125
 
106
126
  var curState, setStyle;
107
127
  function pass() {
@@ -127,8 +147,10 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
127
147
  }
128
148
 
129
149
  function element(type) {
130
- if (type == "openTag") {curState.tagName = tagName; return cont(attributes, endtag(curState.startOfLine));}
131
- else if (type == "closeTag") {
150
+ if (type == "openTag") {
151
+ curState.tagName = tagName;
152
+ return cont(attributes, endtag(curState.startOfLine));
153
+ } else if (type == "closeTag") {
132
154
  var err = false;
133
155
  if (curState.context) {
134
156
  err = curState.context.tagName != tagName;
@@ -138,12 +160,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
138
160
  if (err) setStyle = "error";
139
161
  return cont(endclosetag(err));
140
162
  }
141
- else if (type == "string") {
142
- if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata");
143
- if (curState.tokenize == inText) popContext();
144
- return cont();
145
- }
146
- else return cont();
163
+ return cont();
147
164
  }
148
165
  function endtag(startOfLine) {
149
166
  return function(type) {
@@ -205,9 +222,11 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
205
222
  return setStyle || style;
206
223
  },
207
224
 
208
- indent: function(state, textAfter) {
225
+ indent: function(state, textAfter, fullLine) {
209
226
  var context = state.context;
210
- if (context && context.noIndent) return 0;
227
+ if ((state.tokenize != inTag && state.tokenize != inText) ||
228
+ context && context.noIndent)
229
+ return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
211
230
  if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
212
231
  if (context && /^<\//.test(textAfter))
213
232
  context = context.prev;
@@ -412,7 +412,7 @@ CodeMirror.defineMode("xmlpure", function(config, parserConfig) {
412
412
  ///////////////////////////////////////////////////////////////////////////
413
413
  // returned object
414
414
  return {
415
- electricChars: "/",
415
+ electricChars: "/[",
416
416
 
417
417
  startState: function() {
418
418
  return {
@@ -458,9 +458,13 @@ CodeMirror.defineMode("xmlpure", function(config, parserConfig) {
458
458
  return;
459
459
  }
460
460
  if(textAfter.match(/^<\/.*/)) {
461
- // eng-tag - indent back to last context
461
+ // end-tag - indent back to last context
462
462
  return state.context.indent;
463
463
  }
464
+ if(textAfter.match(/^<!\[CDATA\[/)) {
465
+ // a stand-alone CDATA start-tag - indent back to column 0
466
+ return 0;
467
+ }
464
468
  // indent to last context + regular indent unit
465
469
  return state.context.indent + indentUnit;
466
470
  }
@@ -51,27 +51,54 @@
51
51
  }
52
52
 
53
53
  .CodeMirror textarea {
54
- font-family: inherit !important;
55
- font-size: inherit !important;
54
+ outline: none !important;
56
55
  }
57
56
 
58
- .CodeMirror-cursor {
57
+ .CodeMirror pre.CodeMirror-cursor {
59
58
  z-index: 10;
60
59
  position: absolute;
61
60
  visibility: hidden;
62
- border-left: 1px solid black !important;
61
+ border-left: 1px solid black;
63
62
  }
64
- .CodeMirror-focused .CodeMirror-cursor {
63
+ .CodeMirror-focused pre.CodeMirror-cursor {
65
64
  visibility: visible;
66
65
  }
67
66
 
68
- span.CodeMirror-selected {
69
- background: #ccc !important;
70
- color: HighlightText !important;
71
- }
72
- .CodeMirror-focused span.CodeMirror-selected {
73
- background: Highlight !important;
74
- }
67
+ span.CodeMirror-selected { background: #d9d9d9; }
68
+ .CodeMirror-focused span.CodeMirror-selected { background: #d2dcf8; }
69
+
70
+ .CodeMirror-searching {background: #ffa;}
71
+
72
+ /* Default theme */
73
+
74
+ .cm-s-default span.cm-keyword {color: #708;}
75
+ .cm-s-default span.cm-atom {color: #219;}
76
+ .cm-s-default span.cm-number {color: #164;}
77
+ .cm-s-default span.cm-def {color: #00f;}
78
+ .cm-s-default span.cm-variable {color: black;}
79
+ .cm-s-default span.cm-variable-2 {color: #05a;}
80
+ .cm-s-default span.cm-variable-3 {color: #085;}
81
+ .cm-s-default span.cm-property {color: black;}
82
+ .cm-s-default span.cm-operator {color: black;}
83
+ .cm-s-default span.cm-comment {color: #a50;}
84
+ .cm-s-default span.cm-string {color: #a11;}
85
+ .cm-s-default span.cm-string-2 {color: #f50;}
86
+ .cm-s-default span.cm-meta {color: #555;}
87
+ .cm-s-default span.cm-error {color: #f00;}
88
+ .cm-s-default span.cm-qualifier {color: #555;}
89
+ .cm-s-default span.cm-builtin {color: #30a;}
90
+ .cm-s-default span.cm-bracket {color: #cc7;}
91
+ .cm-s-default span.cm-tag {color: #170;}
92
+ .cm-s-default span.cm-attribute {color: #00c;}
93
+ .cm-s-default span.cm-header {color: #a0a;}
94
+ .cm-s-default span.cm-quote {color: #090;}
95
+ .cm-s-default span.cm-hr {color: #999;}
96
+ .cm-s-default span.cm-link {color: #00c;}
97
+
98
+ span.cm-header, span.cm-strong {font-weight: bold;}
99
+ span.cm-em {font-style: italic;}
100
+ span.cm-emstrong {font-style: italic; font-weight: bold;}
101
+ span.cm-link {text-decoration: underline;}
75
102
 
76
- .CodeMirror-matchingbracket {color: #0f0 !important;}
77
- .CodeMirror-nonmatchingbracket {color: #f22 !important;}
103
+ div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
104
+ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
@@ -1,3 +1,3 @@
1
- .cm-s-default span.cm-rangeinfo {color: #a0b;}
2
- .cm-s-default span.cm-minus {color: #a22;}
3
- .cm-s-default span.cm-plus {color: #2b2;}
1
+ span.cm-rangeinfo {color: #a0b;}
2
+ span.cm-minus {color: red;}
3
+ span.cm-plus {color: #2b2;}
@@ -15,3 +15,4 @@
15
15
  .cm-s-cobalt span.cm-error { color: #9d1e15; }
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
+ .cm-s-cobalt span.cm-link { color: #845dc4; }
@@ -17,8 +17,9 @@
17
17
  .cm-s-eclipse span.cm-bracket {color: #cc7;}
18
18
  .cm-s-eclipse span.cm-tag {color: #170;}
19
19
  .cm-s-eclipse span.cm-attribute {color: #00c;}
20
+ .cm-s-eclipse span.cm-link {color: #219;}
20
21
 
21
- .CodeMirror-matchingbracket{
22
+ .cm-s-eclipse .CodeMirror-matchingbracket {
22
23
  border:1px solid grey;
23
24
  color:black !important;;
24
- }
25
+ }
@@ -7,3 +7,4 @@
7
7
  .cm-s-elegant span.cm-keyword {color: #730;}
8
8
  .cm-s-elegant span.cm-builtin {color: #30a;}
9
9
  .cm-s-elegant span.cm-error {background-color: #fdd;}
10
+ .cm-s-elegant span.cm-link {color: #762;}
@@ -1,27 +1,28 @@
1
1
  /* Based on Sublime Text's Monokai theme */
2
2
 
3
- .cm-s-monokai { background: #272822; color: #F8F8F2; }
4
- .cm-s-monokai span.CodeMirror-selected { background: #FFE792 !important; }
5
- .cm-s-monokai .CodeMirror-gutter { background: #272822; border-right: 0px; }
6
- .cm-s-monokai .CodeMirror-gutter-text { color: #d0d0d0; }
7
- .cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #F8F8F0 !important; }
3
+ .cm-s-monokai {background: #272822; color: #f8f8f2;}
4
+ .cm-s-monokai span.CodeMirror-selected {background: #ffe792 !important;}
5
+ .cm-s-monokai .CodeMirror-gutter {background: #272822; border-right: 0px;}
6
+ .cm-s-monokai .CodeMirror-gutter-text {color: #d0d0d0;}
7
+ .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}
8
8
 
9
- .cm-s-monokai span.cm-comment { color: #75715E; }
10
- .cm-s-monokai span.cm-atom { color: #AE81FF; }
11
- .cm-s-monokai span.cm-number { color: #AE81FF; }
9
+ .cm-s-monokai span.cm-comment {color: #75715e;}
10
+ .cm-s-monokai span.cm-atom {color: #ae81ff;}
11
+ .cm-s-monokai span.cm-number {color: #ae81ff;}
12
12
 
13
- .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #A6E22E;}
14
- .cm-s-monokai span.cm-keyword { color: #F92672; }
15
- .cm-s-monokai span.cm-string { color: #E6DB74; }
13
+ .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}
14
+ .cm-s-monokai span.cm-keyword {color: #f92672;}
15
+ .cm-s-monokai span.cm-string {color: #e6db74;}
16
16
 
17
- .cm-s-monokai span.cm-variable {color: #A6E22E;}
18
- .cm-s-monokai span.cm-variable-2 { color: #9effff; }
19
- .cm-s-monokai span.cm-def { color: #FD971F; }
20
- .cm-s-monokai span.cm-error { background: #F92672; color: #F8F8F0; }
21
- .cm-s-monokai span.cm-bracket { color: #f8F8F2; }
22
- .cm-s-monokai span.cm-tag {color: #F92672;}
17
+ .cm-s-monokai span.cm-variable {color: #a6e22e;}
18
+ .cm-s-monokai span.cm-variable-2 {color: #9effff;}
19
+ .cm-s-monokai span.cm-def {color: #fd971f;}
20
+ .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
21
+ .cm-s-monokai span.cm-bracket {color: #f8f8f2;}
22
+ .cm-s-monokai span.cm-tag {color: #f92672;}
23
+ .cm-s-monokai span.cm-link {color: #ae81ff;}
23
24
 
24
- .CodeMirror-matchingbracket{
25
- text-decoration: underline;
26
- color: white !important;
27
- }
25
+ .cm-s-monokai .CodeMirror-matchingbracket {
26
+ text-decoration: underline;
27
+ color: white !important;
28
+ }
@@ -6,3 +6,4 @@
6
6
  .cm-s-neat span.cm-variable { color: black; }
7
7
  .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
8
8
  .cm-s-neat span.cm-meta {color: #555;}
9
+ .cm-s-neat span.cm-link { color: #3a3; }
@@ -18,3 +18,4 @@
18
18
  .cm-s-night span.cm-bracket { color: #8da6ce; }
19
19
  .cm-s-night span.cm-comment { color: #6900a1; }
20
20
  .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
21
+ .cm-s-night span.cm-link { color: #845dc4; }
@@ -16,5 +16,6 @@
16
16
  .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
17
17
  .cm-s-rubyblue span.cm-error { color: #AF2018; }
18
18
  .cm-s-rubyblue span.cm-bracket { color: #F0F; }
19
+ .cm-s-rubyblue span.cm-link { color: #F4C20B; }
19
20
  .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
20
21
  .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codemirror-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: '2.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-02 00:00:00.000000000Z
12
+ date: 2012-01-12 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: &2161682920 !ruby/object:Gem::Requirement
16
+ requirement: &2164530160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161682920
24
+ version_requirements: *2164530160
25
25
  description: This gem provides CodeMirror assets for your Rails 3 application.
26
26
  email: nathan@fixler.org
27
27
  executables: []
@@ -49,6 +49,7 @@ files:
49
49
  - vendor/assets/javascripts/codemirror/modes/gfm.js
50
50
  - vendor/assets/javascripts/codemirror/modes/groovy.js
51
51
  - vendor/assets/javascripts/codemirror/modes/haskell.js
52
+ - vendor/assets/javascripts/codemirror/modes/htmlembedded.js
52
53
  - vendor/assets/javascripts/codemirror/modes/htmlmixed.js
53
54
  - vendor/assets/javascripts/codemirror/modes/javascript.js
54
55
  - vendor/assets/javascripts/codemirror/modes/jinja2.js