ace-rails-ap 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ace/rails/version.rb +1 -1
- data/vendor/assets/javascripts/ace/ace.js +210 -161
- data/vendor/assets/javascripts/ace/ext-beautify.js +0 -1
- data/vendor/assets/javascripts/ace/ext-chromevox.js +0 -1
- data/vendor/assets/javascripts/ace/ext-elastic_tabstops_lite.js +0 -1
- data/vendor/assets/javascripts/ace/ext-emmet.js +66 -48
- data/vendor/assets/javascripts/ace/ext-keybinding_menu.js +9 -19
- data/vendor/assets/javascripts/ace/ext-language_tools.js +108 -10
- data/vendor/assets/javascripts/ace/ext-linking.js +0 -1
- data/vendor/assets/javascripts/ace/ext-modelist.js +4 -1
- data/vendor/assets/javascripts/ace/ext-old_ie.js +23 -2
- data/vendor/assets/javascripts/ace/ext-searchbox.js +23 -2
- data/vendor/assets/javascripts/ace/ext-settings_menu.js +10 -1
- data/vendor/assets/javascripts/ace/ext-spellcheck.js +0 -1
- data/vendor/assets/javascripts/ace/ext-split.js +0 -1
- data/vendor/assets/javascripts/ace/ext-static_highlight.js +0 -1
- data/vendor/assets/javascripts/ace/ext-statusbar.js +2 -4
- data/vendor/assets/javascripts/ace/ext-textarea.js +0 -1
- data/vendor/assets/javascripts/ace/ext-themelist.js +0 -1
- data/vendor/assets/javascripts/ace/ext-whitespace.js +0 -1
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +159 -50
- data/vendor/assets/javascripts/ace/mode-autohotkey.js +1 -1
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +32 -14
- data/vendor/assets/javascripts/ace/mode-coffee.js +1 -1
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +62 -24
- data/vendor/assets/javascripts/ace/mode-csharp.js +14 -8
- data/vendor/assets/javascripts/ace/mode-css.js +2 -2
- data/vendor/assets/javascripts/ace/mode-curly.js +62 -24
- data/vendor/assets/javascripts/ace/mode-d.js +13 -7
- data/vendor/assets/javascripts/ace/mode-dart.js +32 -14
- data/vendor/assets/javascripts/ace/mode-django.js +62 -24
- data/vendor/assets/javascripts/ace/mode-dockerfile.js +3 -3
- data/vendor/assets/javascripts/ace/mode-dot.js +12 -6
- data/vendor/assets/javascripts/ace/mode-ejs.js +126 -27
- data/vendor/assets/javascripts/ace/mode-elixir.js +493 -0
- data/vendor/assets/javascripts/ace/mode-elm.js +248 -0
- data/vendor/assets/javascripts/ace/mode-forth.js +1 -1
- data/vendor/assets/javascripts/ace/mode-ftl.js +20 -10
- data/vendor/assets/javascripts/ace/mode-gitignore.js +1 -0
- data/vendor/assets/javascripts/ace/mode-glsl.js +32 -14
- data/vendor/assets/javascripts/ace/mode-golang.js +14 -8
- data/vendor/assets/javascripts/ace/mode-groovy.js +22 -12
- data/vendor/assets/javascripts/ace/mode-haml.js +64 -3
- data/vendor/assets/javascripts/ace/mode-handlebars.js +72 -34
- data/vendor/assets/javascripts/ace/mode-haxe.js +14 -8
- data/vendor/assets/javascripts/ace/mode-html.js +62 -24
- data/vendor/assets/javascripts/ace/mode-html_ruby.js +126 -27
- data/vendor/assets/javascripts/ace/mode-jack.js +2 -2
- data/vendor/assets/javascripts/ace/mode-jade.js +21 -11
- data/vendor/assets/javascripts/ace/mode-java.js +22 -12
- data/vendor/assets/javascripts/ace/mode-javascript.js +22 -12
- data/vendor/assets/javascripts/ace/mode-json.js +2 -2
- data/vendor/assets/javascripts/ace/mode-jsoniq.js +47 -1835
- data/vendor/assets/javascripts/ace/mode-jsp.js +22 -12
- data/vendor/assets/javascripts/ace/mode-jsx.js +14 -8
- data/vendor/assets/javascripts/ace/mode-less.js +2 -2
- data/vendor/assets/javascripts/ace/mode-liquid.js +20 -10
- data/vendor/assets/javascripts/ace/mode-logiql.js +2 -2
- data/vendor/assets/javascripts/ace/mode-lsl.js +2 -2
- data/vendor/assets/javascripts/ace/mode-luapage.js +62 -24
- data/vendor/assets/javascripts/ace/mode-markdown.js +62 -24
- data/vendor/assets/javascripts/ace/mode-mel.js +2 -2
- data/vendor/assets/javascripts/ace/mode-mysql.js +12 -6
- data/vendor/assets/javascripts/ace/mode-nix.js +32 -14
- data/vendor/assets/javascripts/ace/mode-objectivec.js +30 -12
- data/vendor/assets/javascripts/ace/mode-pgsql.js +20 -10
- data/vendor/assets/javascripts/ace/mode-php.js +1126 -40
- data/vendor/assets/javascripts/ace/mode-powershell.js +2 -2
- data/vendor/assets/javascripts/ace/mode-protobuf.js +32 -14
- data/vendor/assets/javascripts/ace/mode-rhtml.js +62 -24
- data/vendor/assets/javascripts/ace/mode-ruby.js +66 -5
- data/vendor/assets/javascripts/ace/mode-rust.js +36 -3
- data/vendor/assets/javascripts/ace/mode-scad.js +14 -8
- data/vendor/assets/javascripts/ace/mode-scala.js +22 -12
- data/vendor/assets/javascripts/ace/mode-scss.js +2 -2
- data/vendor/assets/javascripts/ace/mode-sh.js +2 -2
- data/vendor/assets/javascripts/ace/mode-sjs.js +22 -12
- data/vendor/assets/javascripts/ace/mode-smarty.js +62 -24
- data/vendor/assets/javascripts/ace/mode-soy_template.js +63 -25
- data/vendor/assets/javascripts/ace/mode-stylus.js +4 -1
- data/vendor/assets/javascripts/ace/mode-svg.js +62 -24
- data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-twig.js +62 -24
- data/vendor/assets/javascripts/ace/mode-typescript.js +22 -12
- data/vendor/assets/javascripts/ace/mode-vala.js +2 -2
- data/vendor/assets/javascripts/ace/mode-velocity.js +62 -24
- data/vendor/assets/javascripts/ace/mode-xml.js +40 -12
- data/vendor/assets/javascripts/ace/mode-xquery.js +47 -1835
- data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -1
- data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -1
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +2 -2
- data/vendor/assets/javascripts/ace/worker-coffee.js +15 -5
- data/vendor/assets/javascripts/ace/worker-css.js +15 -5
- data/vendor/assets/javascripts/ace/worker-html.js +15 -5
- data/vendor/assets/javascripts/ace/worker-javascript.js +15 -5
- data/vendor/assets/javascripts/ace/worker-json.js +17 -6
- data/vendor/assets/javascripts/ace/worker-lua.js +15 -5
- data/vendor/assets/javascripts/ace/worker-php.js +15 -5
- data/vendor/assets/javascripts/ace/worker-xquery.js +15 -5
- metadata +4 -2
@@ -102,11 +102,11 @@ var SAFE_INSERT_BEFORE_TOKENS =
|
|
102
102
|
["text", "paren.rparen", "punctuation.operator", "comment"];
|
103
103
|
|
104
104
|
var context;
|
105
|
-
var contextCache = {}
|
105
|
+
var contextCache = {};
|
106
106
|
var initContext = function(editor) {
|
107
107
|
var id = -1;
|
108
108
|
if (editor.multiSelect) {
|
109
|
-
id = editor.selection.
|
109
|
+
id = editor.selection.index;
|
110
110
|
if (contextCache.rangeCount != editor.multiSelect.rangeCount)
|
111
111
|
contextCache = {rangeCount: editor.multiSelect.rangeCount};
|
112
112
|
}
|
@@ -5,22 +5,28 @@ var oop = require("../lib/oop");
|
|
5
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
6
6
|
|
7
7
|
var DocCommentHighlightRules = function() {
|
8
|
-
|
9
8
|
this.$rules = {
|
10
9
|
"start" : [ {
|
11
10
|
token : "comment.doc.tag",
|
12
11
|
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
13
|
-
},
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
},
|
13
|
+
DocCommentHighlightRules.getTagRule(),
|
14
|
+
{
|
15
|
+
defaultToken : "comment.doc",
|
16
|
+
caseInsensitive: true
|
18
17
|
}]
|
19
18
|
};
|
20
19
|
};
|
21
20
|
|
22
21
|
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
23
22
|
|
23
|
+
DocCommentHighlightRules.getTagRule = function(start) {
|
24
|
+
return {
|
25
|
+
token : "comment.doc.tag.storage.type",
|
26
|
+
regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
|
27
|
+
};
|
28
|
+
}
|
29
|
+
|
24
30
|
DocCommentHighlightRules.getStartRule = function(start) {
|
25
31
|
return {
|
26
32
|
token : "comment.doc", // doc comment
|
@@ -5,22 +5,28 @@ var oop = require("../lib/oop");
|
|
5
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
6
6
|
|
7
7
|
var DocCommentHighlightRules = function() {
|
8
|
-
|
9
8
|
this.$rules = {
|
10
9
|
"start" : [ {
|
11
10
|
token : "comment.doc.tag",
|
12
11
|
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
13
|
-
},
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
},
|
13
|
+
DocCommentHighlightRules.getTagRule(),
|
14
|
+
{
|
15
|
+
defaultToken : "comment.doc",
|
16
|
+
caseInsensitive: true
|
18
17
|
}]
|
19
18
|
};
|
20
19
|
};
|
21
20
|
|
22
21
|
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
23
22
|
|
23
|
+
DocCommentHighlightRules.getTagRule = function(start) {
|
24
|
+
return {
|
25
|
+
token : "comment.doc.tag.storage.type",
|
26
|
+
regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
|
27
|
+
};
|
28
|
+
}
|
29
|
+
|
24
30
|
DocCommentHighlightRules.getStartRule = function(start) {
|
25
31
|
return {
|
26
32
|
token : "comment.doc", // doc comment
|
@@ -89,11 +95,12 @@ var c_cppHighlightRules = function() {
|
|
89
95
|
|
90
96
|
var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\d\\$_\u00a1-\uffff]*\\b";
|
91
97
|
|
92
|
-
this.$rules = {
|
98
|
+
this.$rules = {
|
93
99
|
"start" : [
|
94
100
|
{
|
95
101
|
token : "comment",
|
96
|
-
regex : "
|
102
|
+
regex : "//",
|
103
|
+
next : "singleLineComment"
|
97
104
|
},
|
98
105
|
DocCommentHighlightRules.getStartRule("doc-start"),
|
99
106
|
{
|
@@ -160,14 +167,26 @@ var c_cppHighlightRules = function() {
|
|
160
167
|
regex : ".+"
|
161
168
|
}
|
162
169
|
],
|
170
|
+
"singleLineComment" : [
|
171
|
+
{
|
172
|
+
token : "comment",
|
173
|
+
regex : /\\$/,
|
174
|
+
next : "singleLineComment"
|
175
|
+
}, {
|
176
|
+
token : "comment",
|
177
|
+
regex : /$/,
|
178
|
+
next : "start"
|
179
|
+
}, {
|
180
|
+
defaultToken: "comment"
|
181
|
+
}
|
182
|
+
],
|
163
183
|
"qqstring" : [
|
164
184
|
{
|
165
185
|
token : "string",
|
166
186
|
regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
|
167
187
|
next : "start"
|
168
188
|
}, {
|
169
|
-
|
170
|
-
regex : '.+'
|
189
|
+
defaultToken : "string"
|
171
190
|
}
|
172
191
|
],
|
173
192
|
"qstring" : [
|
@@ -176,8 +195,7 @@ var c_cppHighlightRules = function() {
|
|
176
195
|
regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
|
177
196
|
next : "start"
|
178
197
|
}, {
|
179
|
-
|
180
|
-
regex : '.+'
|
198
|
+
defaultToken : "string"
|
181
199
|
}
|
182
200
|
],
|
183
201
|
"directive" : [
|
@@ -275,11 +293,11 @@ var SAFE_INSERT_BEFORE_TOKENS =
|
|
275
293
|
["text", "paren.rparen", "punctuation.operator", "comment"];
|
276
294
|
|
277
295
|
var context;
|
278
|
-
var contextCache = {}
|
296
|
+
var contextCache = {};
|
279
297
|
var initContext = function(editor) {
|
280
298
|
var id = -1;
|
281
299
|
if (editor.multiSelect) {
|
282
|
-
id = editor.selection.
|
300
|
+
id = editor.selection.index;
|
283
301
|
if (contextCache.rangeCount != editor.multiSelect.rangeCount)
|
284
302
|
contextCache = {rangeCount: editor.multiSelect.rangeCount};
|
285
303
|
}
|
@@ -5,22 +5,28 @@ var oop = require("../lib/oop");
|
|
5
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
6
6
|
|
7
7
|
var DocCommentHighlightRules = function() {
|
8
|
-
|
9
8
|
this.$rules = {
|
10
9
|
"start" : [ {
|
11
10
|
token : "comment.doc.tag",
|
12
11
|
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
13
|
-
},
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
},
|
13
|
+
DocCommentHighlightRules.getTagRule(),
|
14
|
+
{
|
15
|
+
defaultToken : "comment.doc",
|
16
|
+
caseInsensitive: true
|
18
17
|
}]
|
19
18
|
};
|
20
19
|
};
|
21
20
|
|
22
21
|
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
23
22
|
|
23
|
+
DocCommentHighlightRules.getTagRule = function(start) {
|
24
|
+
return {
|
25
|
+
token : "comment.doc.tag.storage.type",
|
26
|
+
regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
|
27
|
+
};
|
28
|
+
}
|
29
|
+
|
24
30
|
DocCommentHighlightRules.getStartRule = function(start) {
|
25
31
|
return {
|
26
32
|
token : "comment.doc", // doc comment
|
@@ -89,11 +95,12 @@ var c_cppHighlightRules = function() {
|
|
89
95
|
|
90
96
|
var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\d\\$_\u00a1-\uffff]*\\b";
|
91
97
|
|
92
|
-
this.$rules = {
|
98
|
+
this.$rules = {
|
93
99
|
"start" : [
|
94
100
|
{
|
95
101
|
token : "comment",
|
96
|
-
regex : "
|
102
|
+
regex : "//",
|
103
|
+
next : "singleLineComment"
|
97
104
|
},
|
98
105
|
DocCommentHighlightRules.getStartRule("doc-start"),
|
99
106
|
{
|
@@ -160,14 +167,26 @@ var c_cppHighlightRules = function() {
|
|
160
167
|
regex : ".+"
|
161
168
|
}
|
162
169
|
],
|
170
|
+
"singleLineComment" : [
|
171
|
+
{
|
172
|
+
token : "comment",
|
173
|
+
regex : /\\$/,
|
174
|
+
next : "singleLineComment"
|
175
|
+
}, {
|
176
|
+
token : "comment",
|
177
|
+
regex : /$/,
|
178
|
+
next : "start"
|
179
|
+
}, {
|
180
|
+
defaultToken: "comment"
|
181
|
+
}
|
182
|
+
],
|
163
183
|
"qqstring" : [
|
164
184
|
{
|
165
185
|
token : "string",
|
166
186
|
regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
|
167
187
|
next : "start"
|
168
188
|
}, {
|
169
|
-
|
170
|
-
regex : '.+'
|
189
|
+
defaultToken : "string"
|
171
190
|
}
|
172
191
|
],
|
173
192
|
"qstring" : [
|
@@ -176,8 +195,7 @@ var c_cppHighlightRules = function() {
|
|
176
195
|
regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
|
177
196
|
next : "start"
|
178
197
|
}, {
|
179
|
-
|
180
|
-
regex : '.+'
|
198
|
+
defaultToken : "string"
|
181
199
|
}
|
182
200
|
],
|
183
201
|
"directive" : [
|
@@ -5,22 +5,28 @@ var oop = require("../lib/oop");
|
|
5
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
6
6
|
|
7
7
|
var DocCommentHighlightRules = function() {
|
8
|
-
|
9
8
|
this.$rules = {
|
10
9
|
"start" : [ {
|
11
10
|
token : "comment.doc.tag",
|
12
11
|
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
13
|
-
},
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
},
|
13
|
+
DocCommentHighlightRules.getTagRule(),
|
14
|
+
{
|
15
|
+
defaultToken : "comment.doc",
|
16
|
+
caseInsensitive: true
|
18
17
|
}]
|
19
18
|
};
|
20
19
|
};
|
21
20
|
|
22
21
|
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
23
22
|
|
23
|
+
DocCommentHighlightRules.getTagRule = function(start) {
|
24
|
+
return {
|
25
|
+
token : "comment.doc.tag.storage.type",
|
26
|
+
regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
|
27
|
+
};
|
28
|
+
}
|
29
|
+
|
24
30
|
DocCommentHighlightRules.getStartRule = function(start) {
|
25
31
|
return {
|
26
32
|
token : "comment.doc", // doc comment
|
@@ -649,20 +655,24 @@ var JavaScriptHighlightRules = function(options) {
|
|
649
655
|
}
|
650
656
|
],
|
651
657
|
"comment_regex_allowed" : [
|
658
|
+
DocCommentHighlightRules.getTagRule(),
|
652
659
|
{token : "comment", regex : "\\*\\/", next : "start"},
|
653
|
-
{defaultToken : "comment"}
|
660
|
+
{defaultToken : "comment", caseInsensitive: true}
|
654
661
|
],
|
655
662
|
"comment" : [
|
663
|
+
DocCommentHighlightRules.getTagRule(),
|
656
664
|
{token : "comment", regex : "\\*\\/", next : "no_regex"},
|
657
|
-
{defaultToken : "comment"}
|
665
|
+
{defaultToken : "comment", caseInsensitive: true}
|
658
666
|
],
|
659
667
|
"line_comment_regex_allowed" : [
|
668
|
+
DocCommentHighlightRules.getTagRule(),
|
660
669
|
{token : "comment", regex : "$|^", next : "start"},
|
661
|
-
{defaultToken : "comment"}
|
670
|
+
{defaultToken : "comment", caseInsensitive: true}
|
662
671
|
],
|
663
672
|
"line_comment" : [
|
673
|
+
DocCommentHighlightRules.getTagRule(),
|
664
674
|
{token : "comment", regex : "$|^", next : "no_regex"},
|
665
|
-
{defaultToken : "comment"}
|
675
|
+
{defaultToken : "comment", caseInsensitive: true}
|
666
676
|
],
|
667
677
|
"qqstring" : [
|
668
678
|
{
|
@@ -5,22 +5,28 @@ var oop = require("../lib/oop");
|
|
5
5
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
6
6
|
|
7
7
|
var DocCommentHighlightRules = function() {
|
8
|
-
|
9
8
|
this.$rules = {
|
10
9
|
"start" : [ {
|
11
10
|
token : "comment.doc.tag",
|
12
11
|
regex : "@[\\w\\d_]+" // TODO: fix email addresses
|
13
|
-
},
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
},
|
13
|
+
DocCommentHighlightRules.getTagRule(),
|
14
|
+
{
|
15
|
+
defaultToken : "comment.doc",
|
16
|
+
caseInsensitive: true
|
18
17
|
}]
|
19
18
|
};
|
20
19
|
};
|
21
20
|
|
22
21
|
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
|
23
22
|
|
23
|
+
DocCommentHighlightRules.getTagRule = function(start) {
|
24
|
+
return {
|
25
|
+
token : "comment.doc.tag.storage.type",
|
26
|
+
regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
|
27
|
+
};
|
28
|
+
}
|
29
|
+
|
24
30
|
DocCommentHighlightRules.getStartRule = function(start) {
|
25
31
|
return {
|
26
32
|
token : "comment.doc", // doc comment
|
@@ -436,20 +442,24 @@ var JavaScriptHighlightRules = function(options) {
|
|
436
442
|
}
|
437
443
|
],
|
438
444
|
"comment_regex_allowed" : [
|
445
|
+
DocCommentHighlightRules.getTagRule(),
|
439
446
|
{token : "comment", regex : "\\*\\/", next : "start"},
|
440
|
-
{defaultToken : "comment"}
|
447
|
+
{defaultToken : "comment", caseInsensitive: true}
|
441
448
|
],
|
442
449
|
"comment" : [
|
450
|
+
DocCommentHighlightRules.getTagRule(),
|
443
451
|
{token : "comment", regex : "\\*\\/", next : "no_regex"},
|
444
|
-
{defaultToken : "comment"}
|
452
|
+
{defaultToken : "comment", caseInsensitive: true}
|
445
453
|
],
|
446
454
|
"line_comment_regex_allowed" : [
|
455
|
+
DocCommentHighlightRules.getTagRule(),
|
447
456
|
{token : "comment", regex : "$|^", next : "start"},
|
448
|
-
{defaultToken : "comment"}
|
457
|
+
{defaultToken : "comment", caseInsensitive: true}
|
449
458
|
],
|
450
459
|
"line_comment" : [
|
460
|
+
DocCommentHighlightRules.getTagRule(),
|
451
461
|
{token : "comment", regex : "$|^", next : "no_regex"},
|
452
|
-
{defaultToken : "comment"}
|
462
|
+
{defaultToken : "comment", caseInsensitive: true}
|
453
463
|
],
|
454
464
|
"qqstring" : [
|
455
465
|
{
|
@@ -1925,11 +1935,11 @@ var SAFE_INSERT_BEFORE_TOKENS =
|
|
1925
1935
|
["text", "paren.rparen", "punctuation.operator", "comment"];
|
1926
1936
|
|
1927
1937
|
var context;
|
1928
|
-
var contextCache = {}
|
1938
|
+
var contextCache = {};
|
1929
1939
|
var initContext = function(editor) {
|
1930
1940
|
var id = -1;
|
1931
1941
|
if (editor.multiSelect) {
|
1932
|
-
id = editor.selection.
|
1942
|
+
id = editor.selection.index;
|
1933
1943
|
if (contextCache.rangeCount != editor.multiSelect.rangeCount)
|
1934
1944
|
contextCache = {rangeCount: editor.multiSelect.rangeCount};
|
1935
1945
|
}
|
@@ -2364,24 +2374,21 @@ oop.inherits(FoldMode, BaseFoldMode);
|
|
2364
2374
|
|
2365
2375
|
});
|
2366
2376
|
|
2367
|
-
define("ace/mode/
|
2377
|
+
define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
|
2368
2378
|
"use strict";
|
2369
2379
|
|
2370
2380
|
var oop = require("../lib/oop");
|
2371
2381
|
var TextMode = require("./text").Mode;
|
2372
|
-
var
|
2373
|
-
var PhpLangHighlightRules = require("./php_highlight_rules").PhpLangHighlightRules;
|
2382
|
+
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
|
2374
2383
|
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
2375
2384
|
var Range = require("../range").Range;
|
2376
2385
|
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
2377
2386
|
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
2378
2387
|
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
2379
|
-
var unicode = require("../unicode");
|
2380
2388
|
|
2381
|
-
var Mode = function(
|
2382
|
-
this.
|
2383
|
-
|
2384
|
-
this.HighlightRules = HighlightRules;
|
2389
|
+
var Mode = function() {
|
2390
|
+
this.HighlightRules = JavaScriptHighlightRules;
|
2391
|
+
|
2385
2392
|
this.$outdent = new MatchingBraceOutdent();
|
2386
2393
|
this.$behaviour = new CstyleBehaviour();
|
2387
2394
|
this.foldingRules = new CStyleFoldMode();
|
@@ -2390,22 +2397,7 @@ oop.inherits(Mode, TextMode);
|
|
2390
2397
|
|
2391
2398
|
(function() {
|
2392
2399
|
|
2393
|
-
this.
|
2394
|
-
+ unicode.packages.L
|
2395
|
-
+ unicode.packages.Mn + unicode.packages.Mc
|
2396
|
-
+ unicode.packages.Nd
|
2397
|
-
+ unicode.packages.Pc + "\_]+", "g"
|
2398
|
-
);
|
2399
|
-
|
2400
|
-
this.nonTokenRe = new RegExp("^(?:[^"
|
2401
|
-
+ unicode.packages.L
|
2402
|
-
+ unicode.packages.Mn + unicode.packages.Mc
|
2403
|
-
+ unicode.packages.Nd
|
2404
|
-
+ unicode.packages.Pc + "\_]|\s])+", "g"
|
2405
|
-
);
|
2406
|
-
|
2407
|
-
|
2408
|
-
this.lineCommentStart = ["//", "#"];
|
2400
|
+
this.lineCommentStart = "//";
|
2409
2401
|
this.blockComment = {start: "/*", end: "*/"};
|
2410
2402
|
|
2411
2403
|
this.getNextLineIndent = function(state, line, tab) {
|
@@ -2415,18 +2407,1074 @@ oop.inherits(Mode, TextMode);
|
|
2415
2407
|
var tokens = tokenizedLine.tokens;
|
2416
2408
|
var endState = tokenizedLine.state;
|
2417
2409
|
|
2410
|
+
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
2411
|
+
return indent;
|
2412
|
+
}
|
2413
|
+
|
2414
|
+
if (state == "start" || state == "no_regex") {
|
2415
|
+
var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);
|
2416
|
+
if (match) {
|
2417
|
+
indent += tab;
|
2418
|
+
}
|
2419
|
+
} else if (state == "doc-start") {
|
2420
|
+
if (endState == "start" || endState == "no_regex") {
|
2421
|
+
return "";
|
2422
|
+
}
|
2423
|
+
var match = line.match(/^\s*(\/?)\*/);
|
2424
|
+
if (match) {
|
2425
|
+
if (match[1]) {
|
2426
|
+
indent += " ";
|
2427
|
+
}
|
2428
|
+
indent += "* ";
|
2429
|
+
}
|
2430
|
+
}
|
2431
|
+
|
2432
|
+
return indent;
|
2433
|
+
};
|
2434
|
+
|
2435
|
+
this.checkOutdent = function(state, line, input) {
|
2436
|
+
return this.$outdent.checkOutdent(line, input);
|
2437
|
+
};
|
2438
|
+
|
2439
|
+
this.autoOutdent = function(state, doc, row) {
|
2440
|
+
this.$outdent.autoOutdent(doc, row);
|
2441
|
+
};
|
2442
|
+
|
2443
|
+
this.createWorker = function(session) {
|
2444
|
+
var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
|
2445
|
+
worker.attachToDocument(session.getDocument());
|
2446
|
+
|
2447
|
+
worker.on("jslint", function(results) {
|
2448
|
+
session.setAnnotations(results.data);
|
2449
|
+
});
|
2450
|
+
|
2451
|
+
worker.on("terminate", function() {
|
2452
|
+
session.clearAnnotations();
|
2453
|
+
});
|
2454
|
+
|
2455
|
+
return worker;
|
2456
|
+
};
|
2457
|
+
|
2458
|
+
this.$id = "ace/mode/javascript";
|
2459
|
+
}).call(Mode.prototype);
|
2460
|
+
|
2461
|
+
exports.Mode = Mode;
|
2462
|
+
});
|
2463
|
+
|
2464
|
+
define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) {
|
2465
|
+
"use strict";
|
2466
|
+
|
2467
|
+
var oop = require("../../lib/oop");
|
2468
|
+
var Behaviour = require("../behaviour").Behaviour;
|
2469
|
+
var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
|
2470
|
+
var TokenIterator = require("../../token_iterator").TokenIterator;
|
2471
|
+
|
2472
|
+
var CssBehaviour = function () {
|
2473
|
+
|
2474
|
+
this.inherit(CstyleBehaviour);
|
2475
|
+
|
2476
|
+
this.add("colon", "insertion", function (state, action, editor, session, text) {
|
2477
|
+
if (text === ':') {
|
2478
|
+
var cursor = editor.getCursorPosition();
|
2479
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
2480
|
+
var token = iterator.getCurrentToken();
|
2481
|
+
if (token && token.value.match(/\s+/)) {
|
2482
|
+
token = iterator.stepBackward();
|
2483
|
+
}
|
2484
|
+
if (token && token.type === 'support.type') {
|
2485
|
+
var line = session.doc.getLine(cursor.row);
|
2486
|
+
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
2487
|
+
if (rightChar === ':') {
|
2488
|
+
return {
|
2489
|
+
text: '',
|
2490
|
+
selection: [1, 1]
|
2491
|
+
}
|
2492
|
+
}
|
2493
|
+
if (!line.substring(cursor.column).match(/^\s*;/)) {
|
2494
|
+
return {
|
2495
|
+
text: ':;',
|
2496
|
+
selection: [1, 1]
|
2497
|
+
}
|
2498
|
+
}
|
2499
|
+
}
|
2500
|
+
}
|
2501
|
+
});
|
2502
|
+
|
2503
|
+
this.add("colon", "deletion", function (state, action, editor, session, range) {
|
2504
|
+
var selected = session.doc.getTextRange(range);
|
2505
|
+
if (!range.isMultiLine() && selected === ':') {
|
2506
|
+
var cursor = editor.getCursorPosition();
|
2507
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
2508
|
+
var token = iterator.getCurrentToken();
|
2509
|
+
if (token && token.value.match(/\s+/)) {
|
2510
|
+
token = iterator.stepBackward();
|
2511
|
+
}
|
2512
|
+
if (token && token.type === 'support.type') {
|
2513
|
+
var line = session.doc.getLine(range.start.row);
|
2514
|
+
var rightChar = line.substring(range.end.column, range.end.column + 1);
|
2515
|
+
if (rightChar === ';') {
|
2516
|
+
range.end.column ++;
|
2517
|
+
return range;
|
2518
|
+
}
|
2519
|
+
}
|
2520
|
+
}
|
2521
|
+
});
|
2522
|
+
|
2523
|
+
this.add("semicolon", "insertion", function (state, action, editor, session, text) {
|
2524
|
+
if (text === ';') {
|
2525
|
+
var cursor = editor.getCursorPosition();
|
2526
|
+
var line = session.doc.getLine(cursor.row);
|
2527
|
+
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
2528
|
+
if (rightChar === ';') {
|
2529
|
+
return {
|
2530
|
+
text: '',
|
2531
|
+
selection: [1, 1]
|
2532
|
+
}
|
2533
|
+
}
|
2534
|
+
}
|
2535
|
+
});
|
2418
2536
|
|
2537
|
+
}
|
2538
|
+
oop.inherits(CssBehaviour, CstyleBehaviour);
|
2539
|
+
|
2540
|
+
exports.CssBehaviour = CssBehaviour;
|
2541
|
+
});
|
2542
|
+
|
2543
|
+
define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) {
|
2544
|
+
"use strict";
|
2545
|
+
|
2546
|
+
var oop = require("../lib/oop");
|
2547
|
+
var TextMode = require("./text").Mode;
|
2548
|
+
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
|
2549
|
+
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
2550
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
2551
|
+
var CssBehaviour = require("./behaviour/css").CssBehaviour;
|
2552
|
+
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
2553
|
+
|
2554
|
+
var Mode = function() {
|
2555
|
+
this.HighlightRules = CssHighlightRules;
|
2556
|
+
this.$outdent = new MatchingBraceOutdent();
|
2557
|
+
this.$behaviour = new CssBehaviour();
|
2558
|
+
this.foldingRules = new CStyleFoldMode();
|
2559
|
+
};
|
2560
|
+
oop.inherits(Mode, TextMode);
|
2561
|
+
|
2562
|
+
(function() {
|
2563
|
+
|
2564
|
+
this.foldingRules = "cStyle";
|
2565
|
+
this.blockComment = {start: "/*", end: "*/"};
|
2566
|
+
|
2567
|
+
this.getNextLineIndent = function(state, line, tab) {
|
2568
|
+
var indent = this.$getIndent(line);
|
2569
|
+
var tokens = this.getTokenizer().getLineTokens(line, state).tokens;
|
2419
2570
|
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
2420
2571
|
return indent;
|
2421
2572
|
}
|
2422
2573
|
|
2423
|
-
|
2574
|
+
var match = line.match(/^.*\{\s*$/);
|
2575
|
+
if (match) {
|
2576
|
+
indent += tab;
|
2577
|
+
}
|
2578
|
+
|
2579
|
+
return indent;
|
2580
|
+
};
|
2581
|
+
|
2582
|
+
this.checkOutdent = function(state, line, input) {
|
2583
|
+
return this.$outdent.checkOutdent(line, input);
|
2584
|
+
};
|
2585
|
+
|
2586
|
+
this.autoOutdent = function(state, doc, row) {
|
2587
|
+
this.$outdent.autoOutdent(doc, row);
|
2588
|
+
};
|
2589
|
+
|
2590
|
+
this.createWorker = function(session) {
|
2591
|
+
var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
|
2592
|
+
worker.attachToDocument(session.getDocument());
|
2593
|
+
|
2594
|
+
worker.on("csslint", function(e) {
|
2595
|
+
session.setAnnotations(e.data);
|
2596
|
+
});
|
2597
|
+
|
2598
|
+
worker.on("terminate", function() {
|
2599
|
+
session.clearAnnotations();
|
2600
|
+
});
|
2601
|
+
|
2602
|
+
return worker;
|
2603
|
+
};
|
2604
|
+
|
2605
|
+
this.$id = "ace/mode/css";
|
2606
|
+
}).call(Mode.prototype);
|
2607
|
+
|
2608
|
+
exports.Mode = Mode;
|
2609
|
+
|
2610
|
+
});
|
2611
|
+
|
2612
|
+
define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) {
|
2613
|
+
"use strict";
|
2614
|
+
|
2615
|
+
var oop = require("../../lib/oop");
|
2616
|
+
var Behaviour = require("../behaviour").Behaviour;
|
2617
|
+
var TokenIterator = require("../../token_iterator").TokenIterator;
|
2618
|
+
var lang = require("../../lib/lang");
|
2619
|
+
|
2620
|
+
function is(token, type) {
|
2621
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
2622
|
+
}
|
2623
|
+
|
2624
|
+
var XmlBehaviour = function () {
|
2625
|
+
|
2626
|
+
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
|
2627
|
+
if (text == '"' || text == "'") {
|
2628
|
+
var quote = text;
|
2629
|
+
var selected = session.doc.getTextRange(editor.getSelectionRange());
|
2630
|
+
if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
|
2631
|
+
return {
|
2632
|
+
text: quote + selected + quote,
|
2633
|
+
selection: false
|
2634
|
+
};
|
2635
|
+
}
|
2636
|
+
|
2637
|
+
var cursor = editor.getCursorPosition();
|
2638
|
+
var line = session.doc.getLine(cursor.row);
|
2639
|
+
var rightChar = line.substring(cursor.column, cursor.column + 1);
|
2640
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
2641
|
+
var token = iterator.getCurrentToken();
|
2642
|
+
|
2643
|
+
if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) {
|
2644
|
+
return {
|
2645
|
+
text: "",
|
2646
|
+
selection: [1, 1]
|
2647
|
+
};
|
2648
|
+
}
|
2649
|
+
|
2650
|
+
if (!token)
|
2651
|
+
token = iterator.stepBackward();
|
2652
|
+
|
2653
|
+
if (!token)
|
2654
|
+
return;
|
2655
|
+
|
2656
|
+
while (is(token, "tag-whitespace") || is(token, "whitespace")) {
|
2657
|
+
token = iterator.stepBackward();
|
2658
|
+
}
|
2659
|
+
var rightSpace = !rightChar || rightChar.match(/\s/);
|
2660
|
+
if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) {
|
2661
|
+
return {
|
2662
|
+
text: quote + quote,
|
2663
|
+
selection: [1, 1]
|
2664
|
+
};
|
2665
|
+
}
|
2666
|
+
}
|
2667
|
+
});
|
2668
|
+
|
2669
|
+
this.add("string_dquotes", "deletion", function(state, action, editor, session, range) {
|
2670
|
+
var selected = session.doc.getTextRange(range);
|
2671
|
+
if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
|
2672
|
+
var line = session.doc.getLine(range.start.row);
|
2673
|
+
var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
|
2674
|
+
if (rightChar == selected) {
|
2675
|
+
range.end.column++;
|
2676
|
+
return range;
|
2677
|
+
}
|
2678
|
+
}
|
2679
|
+
});
|
2680
|
+
|
2681
|
+
this.add("autoclosing", "insertion", function (state, action, editor, session, text) {
|
2682
|
+
if (text == '>') {
|
2683
|
+
var position = editor.getCursorPosition();
|
2684
|
+
var iterator = new TokenIterator(session, position.row, position.column);
|
2685
|
+
var token = iterator.getCurrentToken() || iterator.stepBackward();
|
2686
|
+
if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value")))
|
2687
|
+
return;
|
2688
|
+
if (is(token, "reference.attribute-value"))
|
2689
|
+
return;
|
2690
|
+
if (is(token, "attribute-value")) {
|
2691
|
+
var firstChar = token.value.charAt(0);
|
2692
|
+
if (firstChar == '"' || firstChar == "'") {
|
2693
|
+
var lastChar = token.value.charAt(token.value.length - 1);
|
2694
|
+
var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;
|
2695
|
+
if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)
|
2696
|
+
return;
|
2697
|
+
}
|
2698
|
+
}
|
2699
|
+
while (!is(token, "tag-name")) {
|
2700
|
+
token = iterator.stepBackward();
|
2701
|
+
}
|
2702
|
+
|
2703
|
+
var tokenRow = iterator.getCurrentTokenRow();
|
2704
|
+
var tokenColumn = iterator.getCurrentTokenColumn();
|
2705
|
+
if (is(iterator.stepBackward(), "end-tag-open"))
|
2706
|
+
return;
|
2707
|
+
|
2708
|
+
var element = token.value;
|
2709
|
+
if (tokenRow == position.row)
|
2710
|
+
element = element.substring(0, position.column - tokenColumn);
|
2711
|
+
|
2712
|
+
if (this.voidElements.hasOwnProperty(element.toLowerCase()))
|
2713
|
+
return;
|
2714
|
+
|
2715
|
+
return {
|
2716
|
+
text: ">" + "</" + element + ">",
|
2717
|
+
selection: [1, 1]
|
2718
|
+
};
|
2719
|
+
}
|
2720
|
+
});
|
2721
|
+
|
2722
|
+
this.add("autoindent", "insertion", function (state, action, editor, session, text) {
|
2723
|
+
if (text == "\n") {
|
2724
|
+
var cursor = editor.getCursorPosition();
|
2725
|
+
var line = session.getLine(cursor.row);
|
2726
|
+
var iterator = new TokenIterator(session, cursor.row, cursor.column);
|
2727
|
+
var token = iterator.getCurrentToken();
|
2728
|
+
|
2729
|
+
if (token && token.type.indexOf("tag-close") !== -1) {
|
2730
|
+
while (token && token.type.indexOf("tag-name") === -1) {
|
2731
|
+
token = iterator.stepBackward();
|
2732
|
+
}
|
2733
|
+
|
2734
|
+
if (!token) {
|
2735
|
+
return;
|
2736
|
+
}
|
2737
|
+
|
2738
|
+
var tag = token.value;
|
2739
|
+
var row = iterator.getCurrentTokenRow();
|
2740
|
+
token = iterator.stepBackward();
|
2741
|
+
if (!token || token.type.indexOf("end-tag") !== -1) {
|
2742
|
+
return;
|
2743
|
+
}
|
2744
|
+
|
2745
|
+
if (this.voidElements && !this.voidElements[tag]) {
|
2746
|
+
var nextToken = session.getTokenAt(cursor.row, cursor.column+1);
|
2747
|
+
var line = session.getLine(row);
|
2748
|
+
var nextIndent = this.$getIndent(line);
|
2749
|
+
var indent = nextIndent + session.getTabString();
|
2750
|
+
|
2751
|
+
if (nextToken && nextToken.value === "</") {
|
2752
|
+
return {
|
2753
|
+
text: "\n" + indent + "\n" + nextIndent,
|
2754
|
+
selection: [1, indent.length, 1, indent.length]
|
2755
|
+
};
|
2756
|
+
} else {
|
2757
|
+
return {
|
2758
|
+
text: "\n" + indent
|
2759
|
+
};
|
2760
|
+
}
|
2761
|
+
}
|
2762
|
+
}
|
2763
|
+
}
|
2764
|
+
});
|
2765
|
+
|
2766
|
+
};
|
2767
|
+
|
2768
|
+
oop.inherits(XmlBehaviour, Behaviour);
|
2769
|
+
|
2770
|
+
exports.XmlBehaviour = XmlBehaviour;
|
2771
|
+
});
|
2772
|
+
|
2773
|
+
define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) {
|
2774
|
+
"use strict";
|
2775
|
+
|
2776
|
+
var oop = require("../../lib/oop");
|
2777
|
+
var BaseFoldMode = require("./fold_mode").FoldMode;
|
2778
|
+
|
2779
|
+
var FoldMode = exports.FoldMode = function(defaultMode, subModes) {
|
2780
|
+
this.defaultMode = defaultMode;
|
2781
|
+
this.subModes = subModes;
|
2782
|
+
};
|
2783
|
+
oop.inherits(FoldMode, BaseFoldMode);
|
2784
|
+
|
2785
|
+
(function() {
|
2786
|
+
|
2787
|
+
|
2788
|
+
this.$getMode = function(state) {
|
2789
|
+
if (typeof state != "string")
|
2790
|
+
state = state[0];
|
2791
|
+
for (var key in this.subModes) {
|
2792
|
+
if (state.indexOf(key) === 0)
|
2793
|
+
return this.subModes[key];
|
2794
|
+
}
|
2795
|
+
return null;
|
2796
|
+
};
|
2797
|
+
|
2798
|
+
this.$tryMode = function(state, session, foldStyle, row) {
|
2799
|
+
var mode = this.$getMode(state);
|
2800
|
+
return (mode ? mode.getFoldWidget(session, foldStyle, row) : "");
|
2801
|
+
};
|
2802
|
+
|
2803
|
+
this.getFoldWidget = function(session, foldStyle, row) {
|
2804
|
+
return (
|
2805
|
+
this.$tryMode(session.getState(row-1), session, foldStyle, row) ||
|
2806
|
+
this.$tryMode(session.getState(row), session, foldStyle, row) ||
|
2807
|
+
this.defaultMode.getFoldWidget(session, foldStyle, row)
|
2808
|
+
);
|
2809
|
+
};
|
2810
|
+
|
2811
|
+
this.getFoldWidgetRange = function(session, foldStyle, row) {
|
2812
|
+
var mode = this.$getMode(session.getState(row-1));
|
2813
|
+
|
2814
|
+
if (!mode || !mode.getFoldWidget(session, foldStyle, row))
|
2815
|
+
mode = this.$getMode(session.getState(row));
|
2816
|
+
|
2817
|
+
if (!mode || !mode.getFoldWidget(session, foldStyle, row))
|
2818
|
+
mode = this.defaultMode;
|
2819
|
+
|
2820
|
+
return mode.getFoldWidgetRange(session, foldStyle, row);
|
2821
|
+
};
|
2822
|
+
|
2823
|
+
}).call(FoldMode.prototype);
|
2824
|
+
|
2825
|
+
});
|
2826
|
+
|
2827
|
+
define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module) {
|
2828
|
+
"use strict";
|
2829
|
+
|
2830
|
+
var oop = require("../../lib/oop");
|
2831
|
+
var lang = require("../../lib/lang");
|
2832
|
+
var Range = require("../../range").Range;
|
2833
|
+
var BaseFoldMode = require("./fold_mode").FoldMode;
|
2834
|
+
var TokenIterator = require("../../token_iterator").TokenIterator;
|
2835
|
+
|
2836
|
+
var FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) {
|
2837
|
+
BaseFoldMode.call(this);
|
2838
|
+
this.voidElements = voidElements || {};
|
2839
|
+
this.optionalEndTags = oop.mixin({}, this.voidElements);
|
2840
|
+
if (optionalEndTags)
|
2841
|
+
oop.mixin(this.optionalEndTags, optionalEndTags);
|
2842
|
+
|
2843
|
+
};
|
2844
|
+
oop.inherits(FoldMode, BaseFoldMode);
|
2845
|
+
|
2846
|
+
var Tag = function() {
|
2847
|
+
this.tagName = "";
|
2848
|
+
this.closing = false;
|
2849
|
+
this.selfClosing = false;
|
2850
|
+
this.start = {row: 0, column: 0};
|
2851
|
+
this.end = {row: 0, column: 0};
|
2852
|
+
};
|
2853
|
+
|
2854
|
+
function is(token, type) {
|
2855
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
2856
|
+
}
|
2857
|
+
|
2858
|
+
(function() {
|
2859
|
+
|
2860
|
+
this.getFoldWidget = function(session, foldStyle, row) {
|
2861
|
+
var tag = this._getFirstTagInLine(session, row);
|
2862
|
+
|
2863
|
+
if (!tag)
|
2864
|
+
return "";
|
2865
|
+
|
2866
|
+
if (tag.closing || (!tag.tagName && tag.selfClosing))
|
2867
|
+
return foldStyle == "markbeginend" ? "end" : "";
|
2868
|
+
|
2869
|
+
if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))
|
2870
|
+
return "";
|
2871
|
+
|
2872
|
+
if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))
|
2873
|
+
return "";
|
2874
|
+
|
2875
|
+
return "start";
|
2876
|
+
};
|
2877
|
+
this._getFirstTagInLine = function(session, row) {
|
2878
|
+
var tokens = session.getTokens(row);
|
2879
|
+
var tag = new Tag();
|
2880
|
+
|
2881
|
+
for (var i = 0; i < tokens.length; i++) {
|
2882
|
+
var token = tokens[i];
|
2883
|
+
if (is(token, "tag-open")) {
|
2884
|
+
tag.end.column = tag.start.column + token.value.length;
|
2885
|
+
tag.closing = is(token, "end-tag-open");
|
2886
|
+
token = tokens[++i];
|
2887
|
+
if (!token)
|
2888
|
+
return null;
|
2889
|
+
tag.tagName = token.value;
|
2890
|
+
tag.end.column += token.value.length;
|
2891
|
+
for (i++; i < tokens.length; i++) {
|
2892
|
+
token = tokens[i];
|
2893
|
+
tag.end.column += token.value.length;
|
2894
|
+
if (is(token, "tag-close")) {
|
2895
|
+
tag.selfClosing = token.value == '/>';
|
2896
|
+
break;
|
2897
|
+
}
|
2898
|
+
}
|
2899
|
+
return tag;
|
2900
|
+
} else if (is(token, "tag-close")) {
|
2901
|
+
tag.selfClosing = token.value == '/>';
|
2902
|
+
return tag;
|
2903
|
+
}
|
2904
|
+
tag.start.column += token.value.length;
|
2905
|
+
}
|
2906
|
+
|
2907
|
+
return null;
|
2908
|
+
};
|
2909
|
+
|
2910
|
+
this._findEndTagInLine = function(session, row, tagName, startColumn) {
|
2911
|
+
var tokens = session.getTokens(row);
|
2912
|
+
var column = 0;
|
2913
|
+
for (var i = 0; i < tokens.length; i++) {
|
2914
|
+
var token = tokens[i];
|
2915
|
+
column += token.value.length;
|
2916
|
+
if (column < startColumn)
|
2917
|
+
continue;
|
2918
|
+
if (is(token, "end-tag-open")) {
|
2919
|
+
token = tokens[i + 1];
|
2920
|
+
if (token && token.value == tagName)
|
2921
|
+
return true;
|
2922
|
+
}
|
2923
|
+
}
|
2924
|
+
return false;
|
2925
|
+
};
|
2926
|
+
this._readTagForward = function(iterator) {
|
2927
|
+
var token = iterator.getCurrentToken();
|
2928
|
+
if (!token)
|
2929
|
+
return null;
|
2930
|
+
|
2931
|
+
var tag = new Tag();
|
2932
|
+
do {
|
2933
|
+
if (is(token, "tag-open")) {
|
2934
|
+
tag.closing = is(token, "end-tag-open");
|
2935
|
+
tag.start.row = iterator.getCurrentTokenRow();
|
2936
|
+
tag.start.column = iterator.getCurrentTokenColumn();
|
2937
|
+
} else if (is(token, "tag-name")) {
|
2938
|
+
tag.tagName = token.value;
|
2939
|
+
} else if (is(token, "tag-close")) {
|
2940
|
+
tag.selfClosing = token.value == "/>";
|
2941
|
+
tag.end.row = iterator.getCurrentTokenRow();
|
2942
|
+
tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;
|
2943
|
+
iterator.stepForward();
|
2944
|
+
return tag;
|
2945
|
+
}
|
2946
|
+
} while(token = iterator.stepForward());
|
2947
|
+
|
2948
|
+
return null;
|
2949
|
+
};
|
2950
|
+
|
2951
|
+
this._readTagBackward = function(iterator) {
|
2952
|
+
var token = iterator.getCurrentToken();
|
2953
|
+
if (!token)
|
2954
|
+
return null;
|
2955
|
+
|
2956
|
+
var tag = new Tag();
|
2957
|
+
do {
|
2958
|
+
if (is(token, "tag-open")) {
|
2959
|
+
tag.closing = is(token, "end-tag-open");
|
2960
|
+
tag.start.row = iterator.getCurrentTokenRow();
|
2961
|
+
tag.start.column = iterator.getCurrentTokenColumn();
|
2962
|
+
iterator.stepBackward();
|
2963
|
+
return tag;
|
2964
|
+
} else if (is(token, "tag-name")) {
|
2965
|
+
tag.tagName = token.value;
|
2966
|
+
} else if (is(token, "tag-close")) {
|
2967
|
+
tag.selfClosing = token.value == "/>";
|
2968
|
+
tag.end.row = iterator.getCurrentTokenRow();
|
2969
|
+
tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;
|
2970
|
+
}
|
2971
|
+
} while(token = iterator.stepBackward());
|
2972
|
+
|
2973
|
+
return null;
|
2974
|
+
};
|
2975
|
+
|
2976
|
+
this._pop = function(stack, tag) {
|
2977
|
+
while (stack.length) {
|
2978
|
+
|
2979
|
+
var top = stack[stack.length-1];
|
2980
|
+
if (!tag || top.tagName == tag.tagName) {
|
2981
|
+
return stack.pop();
|
2982
|
+
}
|
2983
|
+
else if (this.optionalEndTags.hasOwnProperty(tag.tagName)) {
|
2984
|
+
return;
|
2985
|
+
}
|
2986
|
+
else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {
|
2987
|
+
stack.pop();
|
2988
|
+
continue;
|
2989
|
+
} else {
|
2990
|
+
return null;
|
2991
|
+
}
|
2992
|
+
}
|
2993
|
+
};
|
2994
|
+
|
2995
|
+
this.getFoldWidgetRange = function(session, foldStyle, row) {
|
2996
|
+
var firstTag = this._getFirstTagInLine(session, row);
|
2997
|
+
|
2998
|
+
if (!firstTag)
|
2999
|
+
return null;
|
3000
|
+
|
3001
|
+
var isBackward = firstTag.closing || firstTag.selfClosing;
|
3002
|
+
var stack = [];
|
3003
|
+
var tag;
|
3004
|
+
|
3005
|
+
if (!isBackward) {
|
3006
|
+
var iterator = new TokenIterator(session, row, firstTag.start.column);
|
3007
|
+
var start = {
|
3008
|
+
row: row,
|
3009
|
+
column: firstTag.start.column + firstTag.tagName.length + 2
|
3010
|
+
};
|
3011
|
+
while (tag = this._readTagForward(iterator)) {
|
3012
|
+
if (tag.selfClosing) {
|
3013
|
+
if (!stack.length) {
|
3014
|
+
tag.start.column += tag.tagName.length + 2;
|
3015
|
+
tag.end.column -= 2;
|
3016
|
+
return Range.fromPoints(tag.start, tag.end);
|
3017
|
+
} else
|
3018
|
+
continue;
|
3019
|
+
}
|
3020
|
+
|
3021
|
+
if (tag.closing) {
|
3022
|
+
this._pop(stack, tag);
|
3023
|
+
if (stack.length == 0)
|
3024
|
+
return Range.fromPoints(start, tag.start);
|
3025
|
+
}
|
3026
|
+
else {
|
3027
|
+
stack.push(tag);
|
3028
|
+
}
|
3029
|
+
}
|
3030
|
+
}
|
3031
|
+
else {
|
3032
|
+
var iterator = new TokenIterator(session, row, firstTag.end.column);
|
3033
|
+
var end = {
|
3034
|
+
row: row,
|
3035
|
+
column: firstTag.start.column
|
3036
|
+
};
|
3037
|
+
|
3038
|
+
while (tag = this._readTagBackward(iterator)) {
|
3039
|
+
if (tag.selfClosing) {
|
3040
|
+
if (!stack.length) {
|
3041
|
+
tag.start.column += tag.tagName.length + 2;
|
3042
|
+
tag.end.column -= 2;
|
3043
|
+
return Range.fromPoints(tag.start, tag.end);
|
3044
|
+
} else
|
3045
|
+
continue;
|
3046
|
+
}
|
3047
|
+
|
3048
|
+
if (!tag.closing) {
|
3049
|
+
this._pop(stack, tag);
|
3050
|
+
if (stack.length == 0) {
|
3051
|
+
tag.start.column += tag.tagName.length + 2;
|
3052
|
+
return Range.fromPoints(tag.start, end);
|
3053
|
+
}
|
3054
|
+
}
|
3055
|
+
else {
|
3056
|
+
stack.push(tag);
|
3057
|
+
}
|
3058
|
+
}
|
3059
|
+
}
|
3060
|
+
|
3061
|
+
};
|
3062
|
+
|
3063
|
+
}).call(FoldMode.prototype);
|
3064
|
+
|
3065
|
+
});
|
3066
|
+
|
3067
|
+
define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) {
|
3068
|
+
"use strict";
|
3069
|
+
|
3070
|
+
var oop = require("../../lib/oop");
|
3071
|
+
var MixedFoldMode = require("./mixed").FoldMode;
|
3072
|
+
var XmlFoldMode = require("./xml").FoldMode;
|
3073
|
+
var CStyleFoldMode = require("./cstyle").FoldMode;
|
3074
|
+
|
3075
|
+
var FoldMode = exports.FoldMode = function(voidElements, optionalTags) {
|
3076
|
+
MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {
|
3077
|
+
"js-": new CStyleFoldMode(),
|
3078
|
+
"css-": new CStyleFoldMode()
|
3079
|
+
});
|
3080
|
+
};
|
3081
|
+
|
3082
|
+
oop.inherits(FoldMode, MixedFoldMode);
|
3083
|
+
|
3084
|
+
});
|
3085
|
+
|
3086
|
+
define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) {
|
3087
|
+
"use strict";
|
3088
|
+
|
3089
|
+
var TokenIterator = require("../token_iterator").TokenIterator;
|
3090
|
+
|
3091
|
+
var commonAttributes = [
|
3092
|
+
"accesskey",
|
3093
|
+
"class",
|
3094
|
+
"contenteditable",
|
3095
|
+
"contextmenu",
|
3096
|
+
"dir",
|
3097
|
+
"draggable",
|
3098
|
+
"dropzone",
|
3099
|
+
"hidden",
|
3100
|
+
"id",
|
3101
|
+
"inert",
|
3102
|
+
"itemid",
|
3103
|
+
"itemprop",
|
3104
|
+
"itemref",
|
3105
|
+
"itemscope",
|
3106
|
+
"itemtype",
|
3107
|
+
"lang",
|
3108
|
+
"spellcheck",
|
3109
|
+
"style",
|
3110
|
+
"tabindex",
|
3111
|
+
"title",
|
3112
|
+
"translate"
|
3113
|
+
];
|
3114
|
+
|
3115
|
+
var eventAttributes = [
|
3116
|
+
"onabort",
|
3117
|
+
"onblur",
|
3118
|
+
"oncancel",
|
3119
|
+
"oncanplay",
|
3120
|
+
"oncanplaythrough",
|
3121
|
+
"onchange",
|
3122
|
+
"onclick",
|
3123
|
+
"onclose",
|
3124
|
+
"oncontextmenu",
|
3125
|
+
"oncuechange",
|
3126
|
+
"ondblclick",
|
3127
|
+
"ondrag",
|
3128
|
+
"ondragend",
|
3129
|
+
"ondragenter",
|
3130
|
+
"ondragleave",
|
3131
|
+
"ondragover",
|
3132
|
+
"ondragstart",
|
3133
|
+
"ondrop",
|
3134
|
+
"ondurationchange",
|
3135
|
+
"onemptied",
|
3136
|
+
"onended",
|
3137
|
+
"onerror",
|
3138
|
+
"onfocus",
|
3139
|
+
"oninput",
|
3140
|
+
"oninvalid",
|
3141
|
+
"onkeydown",
|
3142
|
+
"onkeypress",
|
3143
|
+
"onkeyup",
|
3144
|
+
"onload",
|
3145
|
+
"onloadeddata",
|
3146
|
+
"onloadedmetadata",
|
3147
|
+
"onloadstart",
|
3148
|
+
"onmousedown",
|
3149
|
+
"onmousemove",
|
3150
|
+
"onmouseout",
|
3151
|
+
"onmouseover",
|
3152
|
+
"onmouseup",
|
3153
|
+
"onmousewheel",
|
3154
|
+
"onpause",
|
3155
|
+
"onplay",
|
3156
|
+
"onplaying",
|
3157
|
+
"onprogress",
|
3158
|
+
"onratechange",
|
3159
|
+
"onreset",
|
3160
|
+
"onscroll",
|
3161
|
+
"onseeked",
|
3162
|
+
"onseeking",
|
3163
|
+
"onselect",
|
3164
|
+
"onshow",
|
3165
|
+
"onstalled",
|
3166
|
+
"onsubmit",
|
3167
|
+
"onsuspend",
|
3168
|
+
"ontimeupdate",
|
3169
|
+
"onvolumechange",
|
3170
|
+
"onwaiting"
|
3171
|
+
];
|
3172
|
+
|
3173
|
+
var globalAttributes = commonAttributes.concat(eventAttributes);
|
3174
|
+
|
3175
|
+
var attributeMap = {
|
3176
|
+
"html": ["manifest"],
|
3177
|
+
"head": [],
|
3178
|
+
"title": [],
|
3179
|
+
"base": ["href", "target"],
|
3180
|
+
"link": ["href", "hreflang", "rel", "media", "type", "sizes"],
|
3181
|
+
"meta": ["http-equiv", "name", "content", "charset"],
|
3182
|
+
"style": ["type", "media", "scoped"],
|
3183
|
+
"script": ["charset", "type", "src", "defer", "async"],
|
3184
|
+
"noscript": ["href"],
|
3185
|
+
"body": ["onafterprint", "onbeforeprint", "onbeforeunload", "onhashchange", "onmessage", "onoffline", "onpopstate", "onredo", "onresize", "onstorage", "onundo", "onunload"],
|
3186
|
+
"section": [],
|
3187
|
+
"nav": [],
|
3188
|
+
"article": ["pubdate"],
|
3189
|
+
"aside": [],
|
3190
|
+
"h1": [],
|
3191
|
+
"h2": [],
|
3192
|
+
"h3": [],
|
3193
|
+
"h4": [],
|
3194
|
+
"h5": [],
|
3195
|
+
"h6": [],
|
3196
|
+
"header": [],
|
3197
|
+
"footer": [],
|
3198
|
+
"address": [],
|
3199
|
+
"main": [],
|
3200
|
+
"p": [],
|
3201
|
+
"hr": [],
|
3202
|
+
"pre": [],
|
3203
|
+
"blockquote": ["cite"],
|
3204
|
+
"ol": ["start", "reversed"],
|
3205
|
+
"ul": [],
|
3206
|
+
"li": ["value"],
|
3207
|
+
"dl": [],
|
3208
|
+
"dt": [],
|
3209
|
+
"dd": [],
|
3210
|
+
"figure": [],
|
3211
|
+
"figcaption": [],
|
3212
|
+
"div": [],
|
3213
|
+
"a": ["href", "target", "ping", "rel", "media", "hreflang", "type"],
|
3214
|
+
"em": [],
|
3215
|
+
"strong": [],
|
3216
|
+
"small": [],
|
3217
|
+
"s": [],
|
3218
|
+
"cite": [],
|
3219
|
+
"q": ["cite"],
|
3220
|
+
"dfn": [],
|
3221
|
+
"abbr": [],
|
3222
|
+
"data": [],
|
3223
|
+
"time": ["datetime"],
|
3224
|
+
"code": [],
|
3225
|
+
"var": [],
|
3226
|
+
"samp": [],
|
3227
|
+
"kbd": [],
|
3228
|
+
"sub": [],
|
3229
|
+
"sup": [],
|
3230
|
+
"i": [],
|
3231
|
+
"b": [],
|
3232
|
+
"u": [],
|
3233
|
+
"mark": [],
|
3234
|
+
"ruby": [],
|
3235
|
+
"rt": [],
|
3236
|
+
"rp": [],
|
3237
|
+
"bdi": [],
|
3238
|
+
"bdo": [],
|
3239
|
+
"span": [],
|
3240
|
+
"br": [],
|
3241
|
+
"wbr": [],
|
3242
|
+
"ins": ["cite", "datetime"],
|
3243
|
+
"del": ["cite", "datetime"],
|
3244
|
+
"img": ["alt", "src", "height", "width", "usemap", "ismap"],
|
3245
|
+
"iframe": ["name", "src", "height", "width", "sandbox", "seamless"],
|
3246
|
+
"embed": ["src", "height", "width", "type"],
|
3247
|
+
"object": ["param", "data", "type", "height" , "width", "usemap", "name", "form", "classid"],
|
3248
|
+
"param": ["name", "value"],
|
3249
|
+
"video": ["src", "autobuffer", "autoplay", "loop", "controls", "width", "height", "poster"],
|
3250
|
+
"audio": ["src", "autobuffer", "autoplay", "loop", "controls"],
|
3251
|
+
"source": ["src", "type", "media"],
|
3252
|
+
"track": ["kind", "src", "srclang", "label", "default"],
|
3253
|
+
"canvas": ["width", "height"],
|
3254
|
+
"map": ["name"],
|
3255
|
+
"area": ["shape", "coords", "href", "hreflang", "alt", "target", "media", "rel", "ping", "type"],
|
3256
|
+
"svg": [],
|
3257
|
+
"math": [],
|
3258
|
+
"table": ["summary"],
|
3259
|
+
"caption": [],
|
3260
|
+
"colgroup": ["span"],
|
3261
|
+
"col": ["span"],
|
3262
|
+
"tbody": [],
|
3263
|
+
"thead": [],
|
3264
|
+
"tfoot": [],
|
3265
|
+
"tr": [],
|
3266
|
+
"td": ["headers", "rowspan", "colspan"],
|
3267
|
+
"th": ["headers", "rowspan", "colspan", "scope"],
|
3268
|
+
"form": ["accept-charset", "action", "autocomplete", "enctype", "method", "name", "novalidate", "target"],
|
3269
|
+
"fieldset": ["disabled", "form", "name"],
|
3270
|
+
"legend": [],
|
3271
|
+
"label": ["form", "for"],
|
3272
|
+
"input": ["type", "accept", "alt", "autocomplete", "checked", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "height", "list", "max", "maxlength", "min", "multiple", "pattern", "placeholder", "readonly", "required", "size", "src", "step", "width", "files", "value"],
|
3273
|
+
"button": ["autofocus", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "value", "type"],
|
3274
|
+
"select": ["autofocus", "disabled", "form", "multiple", "name", "size"],
|
3275
|
+
"datalist": [],
|
3276
|
+
"optgroup": ["disabled", "label"],
|
3277
|
+
"option": ["disabled", "selected", "label", "value"],
|
3278
|
+
"textarea": ["autofocus", "disabled", "form", "maxlength", "name", "placeholder", "readonly", "required", "rows", "cols", "wrap"],
|
3279
|
+
"keygen": ["autofocus", "challenge", "disabled", "form", "keytype", "name"],
|
3280
|
+
"output": ["for", "form", "name"],
|
3281
|
+
"progress": ["value", "max"],
|
3282
|
+
"meter": ["value", "min", "max", "low", "high", "optimum"],
|
3283
|
+
"details": ["open"],
|
3284
|
+
"summary": [],
|
3285
|
+
"command": ["type", "label", "icon", "disabled", "checked", "radiogroup", "command"],
|
3286
|
+
"menu": ["type", "label"],
|
3287
|
+
"dialog": ["open"]
|
3288
|
+
};
|
3289
|
+
|
3290
|
+
var elements = Object.keys(attributeMap);
|
3291
|
+
|
3292
|
+
function is(token, type) {
|
3293
|
+
return token.type.lastIndexOf(type + ".xml") > -1;
|
3294
|
+
}
|
3295
|
+
|
3296
|
+
function findTagName(session, pos) {
|
3297
|
+
var iterator = new TokenIterator(session, pos.row, pos.column);
|
3298
|
+
var token = iterator.getCurrentToken();
|
3299
|
+
while (token && !is(token, "tag-name")){
|
3300
|
+
token = iterator.stepBackward();
|
3301
|
+
}
|
3302
|
+
if (token)
|
3303
|
+
return token.value;
|
3304
|
+
}
|
3305
|
+
|
3306
|
+
var HtmlCompletions = function() {
|
3307
|
+
|
3308
|
+
};
|
3309
|
+
|
3310
|
+
(function() {
|
3311
|
+
|
3312
|
+
this.getCompletions = function(state, session, pos, prefix) {
|
3313
|
+
var token = session.getTokenAt(pos.row, pos.column);
|
3314
|
+
|
3315
|
+
if (!token)
|
3316
|
+
return [];
|
3317
|
+
if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open"))
|
3318
|
+
return this.getTagCompletions(state, session, pos, prefix);
|
3319
|
+
if (is(token, "tag-whitespace") || is(token, "attribute-name"))
|
3320
|
+
return this.getAttributeCompetions(state, session, pos, prefix);
|
3321
|
+
|
3322
|
+
return [];
|
3323
|
+
};
|
3324
|
+
|
3325
|
+
this.getTagCompletions = function(state, session, pos, prefix) {
|
3326
|
+
return elements.map(function(element){
|
3327
|
+
return {
|
3328
|
+
value: element,
|
3329
|
+
meta: "tag",
|
3330
|
+
score: Number.MAX_VALUE
|
3331
|
+
};
|
3332
|
+
});
|
3333
|
+
};
|
3334
|
+
|
3335
|
+
this.getAttributeCompetions = function(state, session, pos, prefix) {
|
3336
|
+
var tagName = findTagName(session, pos);
|
3337
|
+
if (!tagName)
|
3338
|
+
return [];
|
3339
|
+
var attributes = globalAttributes;
|
3340
|
+
if (tagName in attributeMap) {
|
3341
|
+
attributes = attributes.concat(attributeMap[tagName]);
|
3342
|
+
}
|
3343
|
+
return attributes.map(function(attribute){
|
3344
|
+
return {
|
3345
|
+
caption: attribute,
|
3346
|
+
snippet: attribute + '="$0"',
|
3347
|
+
meta: "attribute",
|
3348
|
+
score: Number.MAX_VALUE
|
3349
|
+
};
|
3350
|
+
});
|
3351
|
+
};
|
3352
|
+
|
3353
|
+
}).call(HtmlCompletions.prototype);
|
3354
|
+
|
3355
|
+
exports.HtmlCompletions = HtmlCompletions;
|
3356
|
+
});
|
3357
|
+
|
3358
|
+
define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) {
|
3359
|
+
"use strict";
|
3360
|
+
|
3361
|
+
var oop = require("../lib/oop");
|
3362
|
+
var lang = require("../lib/lang");
|
3363
|
+
var TextMode = require("./text").Mode;
|
3364
|
+
var JavaScriptMode = require("./javascript").Mode;
|
3365
|
+
var CssMode = require("./css").Mode;
|
3366
|
+
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
|
3367
|
+
var XmlBehaviour = require("./behaviour/xml").XmlBehaviour;
|
3368
|
+
var HtmlFoldMode = require("./folding/html").FoldMode;
|
3369
|
+
var HtmlCompletions = require("./html_completions").HtmlCompletions;
|
3370
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
3371
|
+
var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"];
|
3372
|
+
var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"];
|
3373
|
+
|
3374
|
+
var Mode = function(options) {
|
3375
|
+
this.fragmentContext = options && options.fragmentContext;
|
3376
|
+
this.HighlightRules = HtmlHighlightRules;
|
3377
|
+
this.$behaviour = new XmlBehaviour();
|
3378
|
+
this.$completer = new HtmlCompletions();
|
3379
|
+
|
3380
|
+
this.createModeDelegates({
|
3381
|
+
"js-": JavaScriptMode,
|
3382
|
+
"css-": CssMode
|
3383
|
+
});
|
3384
|
+
|
3385
|
+
this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));
|
3386
|
+
};
|
3387
|
+
oop.inherits(Mode, TextMode);
|
3388
|
+
|
3389
|
+
(function() {
|
3390
|
+
|
3391
|
+
this.blockComment = {start: "<!--", end: "-->"};
|
3392
|
+
|
3393
|
+
this.voidElements = lang.arrayToMap(voidElements);
|
3394
|
+
|
3395
|
+
this.getNextLineIndent = function(state, line, tab) {
|
3396
|
+
return this.$getIndent(line);
|
3397
|
+
};
|
3398
|
+
|
3399
|
+
this.checkOutdent = function(state, line, input) {
|
3400
|
+
return false;
|
3401
|
+
};
|
3402
|
+
|
3403
|
+
this.getCompletions = function(state, session, pos, prefix) {
|
3404
|
+
return this.$completer.getCompletions(state, session, pos, prefix);
|
3405
|
+
};
|
3406
|
+
|
3407
|
+
this.createWorker = function(session) {
|
3408
|
+
if (this.constructor != Mode)
|
3409
|
+
return;
|
3410
|
+
var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker");
|
3411
|
+
worker.attachToDocument(session.getDocument());
|
3412
|
+
|
3413
|
+
if (this.fragmentContext)
|
3414
|
+
worker.call("setOptions", [{context: this.fragmentContext}]);
|
3415
|
+
|
3416
|
+
worker.on("error", function(e) {
|
3417
|
+
session.setAnnotations(e.data);
|
3418
|
+
});
|
3419
|
+
|
3420
|
+
worker.on("terminate", function() {
|
3421
|
+
session.clearAnnotations();
|
3422
|
+
});
|
3423
|
+
|
3424
|
+
return worker;
|
3425
|
+
};
|
3426
|
+
|
3427
|
+
this.$id = "ace/mode/html";
|
3428
|
+
}).call(Mode.prototype);
|
3429
|
+
|
3430
|
+
exports.Mode = Mode;
|
3431
|
+
});
|
3432
|
+
|
3433
|
+
define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/php_highlight_rules","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/unicode","ace/mode/html","ace/mode/javascript","ace/mode/css"], function(require, exports, module) {
|
3434
|
+
"use strict";
|
3435
|
+
|
3436
|
+
var oop = require("../lib/oop");
|
3437
|
+
var TextMode = require("./text").Mode;
|
3438
|
+
var PhpHighlightRules = require("./php_highlight_rules").PhpHighlightRules;
|
3439
|
+
var PhpLangHighlightRules = require("./php_highlight_rules").PhpLangHighlightRules;
|
3440
|
+
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
|
3441
|
+
var Range = require("../range").Range;
|
3442
|
+
var WorkerClient = require("../worker/worker_client").WorkerClient;
|
3443
|
+
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
|
3444
|
+
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
|
3445
|
+
var unicode = require("../unicode");
|
3446
|
+
var HtmlMode = require("./html").Mode;
|
3447
|
+
var JavaScriptMode = require("./javascript").Mode;
|
3448
|
+
var CssMode = require("./css").Mode;
|
3449
|
+
|
3450
|
+
var PhpMode = function(opts) {
|
3451
|
+
this.HighlightRules = PhpLangHighlightRules;
|
3452
|
+
this.$outdent = new MatchingBraceOutdent();
|
3453
|
+
this.$behaviour = new CstyleBehaviour();
|
3454
|
+
this.foldingRules = new CStyleFoldMode();
|
3455
|
+
};
|
3456
|
+
oop.inherits(PhpMode, TextMode);
|
3457
|
+
|
3458
|
+
(function() {
|
3459
|
+
|
3460
|
+
this.getNextLineIndent = function(state, line, tab) {
|
3461
|
+
var indent = this.$getIndent(line);
|
3462
|
+
|
3463
|
+
var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
|
3464
|
+
var tokens = tokenizedLine.tokens;
|
3465
|
+
var endState = tokenizedLine.state;
|
3466
|
+
|
3467
|
+
if (tokens.length && tokens[tokens.length-1].type == "comment") {
|
3468
|
+
return indent;
|
3469
|
+
}
|
3470
|
+
|
3471
|
+
if (state == "start") {
|
2424
3472
|
var match = line.match(/^.*[\{\(\[\:]\s*$/);
|
2425
3473
|
if (match) {
|
2426
3474
|
indent += tab;
|
2427
3475
|
}
|
2428
|
-
} else if (state == "
|
2429
|
-
if (endState != "
|
3476
|
+
} else if (state == "doc-start") {
|
3477
|
+
if (endState != "doc-start") {
|
2430
3478
|
return "";
|
2431
3479
|
}
|
2432
3480
|
var match = line.match(/^\s*(\/?)\*/);
|
@@ -2449,10 +3497,48 @@ oop.inherits(Mode, TextMode);
|
|
2449
3497
|
this.$outdent.autoOutdent(doc, row);
|
2450
3498
|
};
|
2451
3499
|
|
3500
|
+
this.$id = "ace/mode/php-inline";
|
3501
|
+
}).call(PhpMode.prototype);
|
3502
|
+
|
3503
|
+
var Mode = function(opts) {
|
3504
|
+
if (opts && opts.inline) {
|
3505
|
+
PhpMode.call(this);
|
3506
|
+
return;
|
3507
|
+
}
|
3508
|
+
HtmlMode.call(this);
|
3509
|
+
this.HighlightRules = PhpHighlightRules;
|
3510
|
+
this.createModeDelegates({
|
3511
|
+
"js-": JavaScriptMode,
|
3512
|
+
"css-": CssMode,
|
3513
|
+
"php-": PhpMode
|
3514
|
+
});
|
3515
|
+
};
|
3516
|
+
oop.inherits(Mode, HtmlMode);
|
3517
|
+
|
3518
|
+
(function() {
|
3519
|
+
|
3520
|
+
this.tokenRe = new RegExp("^["
|
3521
|
+
+ unicode.packages.L
|
3522
|
+
+ unicode.packages.Mn + unicode.packages.Mc
|
3523
|
+
+ unicode.packages.Nd
|
3524
|
+
+ unicode.packages.Pc + "\_]+", "g"
|
3525
|
+
);
|
3526
|
+
|
3527
|
+
this.nonTokenRe = new RegExp("^(?:[^"
|
3528
|
+
+ unicode.packages.L
|
3529
|
+
+ unicode.packages.Mn + unicode.packages.Mc
|
3530
|
+
+ unicode.packages.Nd
|
3531
|
+
+ unicode.packages.Pc + "\_]|\s])+", "g"
|
3532
|
+
);
|
3533
|
+
|
3534
|
+
|
3535
|
+
this.lineCommentStart = ["//", "#"];
|
3536
|
+
this.blockComment = {start: "/*", end: "*/"};
|
3537
|
+
|
2452
3538
|
this.createWorker = function(session) {
|
2453
3539
|
var worker = new WorkerClient(["ace"], "ace/mode/php_worker", "PhpWorker");
|
2454
3540
|
worker.attachToDocument(session.getDocument());
|
2455
|
-
|
3541
|
+
|
2456
3542
|
if (this.inlinePhp)
|
2457
3543
|
worker.call("setOptions", [{inline: true}]);
|
2458
3544
|
|