Merge branch 'highlighting/xmlrefactor' into master

Conflicts:
	lib/ace/ext/modelist.js
	lib/ace/mode/_test/tokens_luapage.json
This commit is contained in:
nightwing 2013-07-14 06:23:24 +04:00
commit 386f1ecade
40 changed files with 1779 additions and 1632 deletions

View file

@ -1,3 +1,4 @@
<!DOCTYPE html>
<html>
<head>

View file

@ -1,9 +1,30 @@
{% autoescape true %}
{{ var }}
{{ var|raw }} {# var won't be escaped #}
{{ var|escape }} {# var won't be doubled-escaped #}
{% endautoescape %}
<!DOCTYPE html>
<html>
<head>
<title>My Webpage</title>
</head>
<body>
<ul id="navigation">
{% for item in navigation %}
<li><a href="{{ item.href|escape }}">{{ item.caption }}</a></li>
{% endfor %}
</ul>
{{ include('twig.html', sandboxed = true) }}
{% if 1 not in [1, 2, 3] %}
{{"string #{with} \" escapes" 'another#one' }}
{# is equivalent to #}
{% if not (1 in [1, 2, 3]) %}
{% autoescape true %}
{{ var }}
{{ var|raw }} {# var won't be escaped #}
{{ var|escape }} {# var won't be doubled-escaped #}
{% endautoescape %}
{{ include('twig.html', sandboxed = true) }}
{{"string #{with} \" escapes" 'another#one' }}
<h1>My Webpage</h1>
{{ a_variable }}
</body>
</html>

View file

@ -65,7 +65,7 @@ var supportedModes = {
Erlang: ["erl|hrl"],
EJS: ["ejs"],
Forth: ["frt|fs|ldr"],
ftl: ["ftl"],
FTL: ["ftl"],
Glsl: ["glsl|frag|vert"],
golang: ["go"],
Groovy: ["groovy"],
@ -144,7 +144,7 @@ var nameOverrides = {
C_Cpp: "C/C++",
coffee: "CoffeeScript",
HTML_Ruby: "HTML (Ruby)",
ftl: "FreeMarker"
FTL: "FreeMarker"
};
var modesByName = {};
for (var name in supportedModes) {

View file

@ -5,22 +5,22 @@
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","cfset"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","cfset"],
["text"," "],
["entity.other.attribute-name","welcome"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"Hello World!\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","cfoutput"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","cfoutput"],
["punctuation.meta.tag.end",">"],
["text","#welcome#"],
["meta.tag","</"],
["meta.tag.tag-name","cfoutput"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","cfoutput"],
["punctuation.meta.tag.end",">"]
]]

View file

@ -76,13 +76,13 @@
"media",
["string","@keyframes blink {"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["constant","0"],
["text","% "],
["paren.lparen","{"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["support.type","opacity"],
["text",": "],
@ -93,13 +93,13 @@
["text"," "],
["paren.rparen","}"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["constant","40"],
["text","% "],
["paren.lparen","{"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["support.type","opacity"],
["text",": "],
@ -110,14 +110,14 @@
["text"," "],
["paren.rparen","}"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["constant","40"],
["variable",".5"],
["text","% "],
["paren.lparen","{"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["support.type","opacity"],
["text",": "],
@ -127,13 +127,13 @@
["text"," "],
["paren.rparen","}"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["constant","100"],
["text","% "],
["paren.lparen","{"]
],[
"media_ruleset",
["ruleset","media"],
["text"," "],
["support.type","opacity"],
["text",": "],

View file

@ -9,48 +9,48 @@
["text","tokenize embedded script"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name.script","script"],
["punctuation.meta.tag.begin.script","<"],
["meta.tag.name.script","script"],
["text"," "],
["entity.other.attribute-name","a"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","'a'"],
["meta.tag.r",">"],
["punctuation.meta.tag.end.script",">"],
["storage.type","var"],
["meta.tag","</"],
["meta.tag.tag-name.script","script"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin.script","</"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"],
["text","'123'"]
],[
"start",
["text","tokenize multiline attribute value with double quotes"]
],[
"tag_qqstring",
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["qqstring_inner","start_tag_stuff"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"abc{{xyz}}"]
],[
"start",
["string","def\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text","tokenize multiline attribute value with single quotes"]
],[
"tag_qstring",
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["qstring_inner","start_tag_stuff"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","'abc"]
],[
"start",
["string","def\\\"'"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
]]

View file

@ -28,13 +28,13 @@
["text"," "],
["keyword","/>"]
],[
"comment",
"ftl-dcomment",
["comment","<#--"]
],[
"comment",
"ftl-dcomment",
["comment"," FreeMarker comment"]
],[
"comment",
"ftl-dcomment",
["comment"," ${abc} <#assign a=12 />"]
],[
"start",
@ -43,100 +43,103 @@
"start"
],[
"start",
["xml-pe","<!DOCTYPE html>"]
["punctuation.doctype.begin","<!"],
["keyword.doctype","DOCTYPE"],
["text"," html"],
["punctuation.doctype.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","html"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["text"," "],
["entity.other.attribute-name","lang"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"en-us\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","meta"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","meta"],
["text"," "],
["entity.other.attribute-name","charset"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"utf-8\""],
["text"," "],
["meta.tag.r","/>"]
["punctuation.meta.tag.end","/>"]
],[
"start",
["text"," "]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"],
["string.interpolated","${"],
["variable","title"],
["keyword.operator","!"],
["string","\"FreeMarker\""],
["string.interpolated","}"],
["meta.tag","<"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","h1"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"],
["text","Hello "],
["string.interpolated","${"],
["variable","name"],
["keyword.operator","!"],
["string","\"\""],
["string.interpolated","}"],
["meta.tag","</"],
["meta.tag.tag-name","h1"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","Today is: "],
["string.interpolated","${"],
["language.variable",".now"],
["support.function","?date"],
["string.interpolated","}"],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
@ -182,9 +185,9 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","ul"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -199,9 +202,9 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"],
["string.interpolated","${"],
["variable","item_index"],
["string.interpolated","}"],
@ -219,9 +222,9 @@
["constant.numeric","0"],
["paren.rparen","]"],
["string.interpolated","}"],
["meta.tag","</"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -230,9 +233,9 @@
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","ul"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
@ -306,32 +309,32 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.image","img"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.image","img"],
["text"," "],
["entity.other.attribute-name","src"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"images/"],
["string.interpolated","${"],
["variable","user.id"],
["string.interpolated","}"],
["string",".png\""],
["text"," "],
["meta.tag.r","/>"]
["punctuation.meta.tag.end","/>"]
],[
"start",
["text"," "]
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start"
]]

View file

@ -1,51 +1,51 @@
[[
"start",
["meta.tag","<"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name.script","script"],
["punctuation.meta.tag.begin.script","<"],
["meta.tag.name.script","script"],
["text"," "],
["entity.other.attribute-name","a"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","'a'"],
["meta.tag.r",">"],
["punctuation.meta.tag.end.script",">"],
["storage.type","var"],
["meta.tag","</"],
["meta.tag.tag-name.script","script"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin.script","</"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"],
["text","'123'"]
],[
"tag_qqstring",
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["qqstring_inner","start_tag_stuff"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"abc"]
],[
"start",
["string"," def\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"tag_qstring",
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["qstring_inner","start_tag_stuff"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","'abc"]
],[
"start",
["string","def\\'"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
]]

View file

@ -1,79 +1,79 @@
[[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h1"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"],
["text","Listing Books"],
["meta.tag","</"],
["meta.tag.tag-name","h1"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name.table","table"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","table"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"],
["text","Title"],
["meta.tag","</"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"],
["text","Summary"],
["meta.tag","</"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","th"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","th"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
@ -93,15 +93,15 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"],
["support.ruby_tag","<%="],
["text"," "],
["identifier","book"],
@ -109,15 +109,15 @@
["identifier","title"],
["text"," "],
["support.ruby_tag","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"],
["support.ruby_tag","<%="],
["text"," "],
["identifier","book"],
@ -125,15 +125,15 @@
["identifier","content"],
["text"," "],
["support.ruby_tag","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"],
["support.ruby_tag","<%="],
["text"," "],
["support.function","link_to"],
@ -143,15 +143,15 @@
["identifier","book"],
["text"," "],
["support.ruby_tag","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"],
["support.ruby_tag","<%="],
["text"," "],
["support.function","link_to"],
@ -164,15 +164,15 @@
["paren.rparen",")"],
["text"," "],
["support.ruby_tag","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"],
["support.ruby_tag","<%="],
["text"," "],
["support.function","link_to"],
@ -194,15 +194,15 @@
["constant.other.symbol.ruby",":delete"],
["text"," "],
["support.ruby_tag","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["support.ruby_tag","<%"],
@ -212,18 +212,18 @@
["support.ruby_tag","%>"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name.table","table"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","table"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","br"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","br"],
["text"," "],
["meta.tag.r","/>"]
["punctuation.meta.tag.end","/>"]
],[
"start",
["text"," "]

View file

@ -1,19 +1,19 @@
[[
"start",
["meta.tag","<"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"js-start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.script","script"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.script","<"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"]
],[
"js-start",
["text"," "],
@ -40,23 +40,23 @@
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name.script","script"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.script","</"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"]
],[
"css-start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.style","style"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.style","<"],
["meta.tag.name.style","style"],
["punctuation.meta.tag.end.style",">"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["variable",".class"],
["text"," "],
["paren.lparen","{"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["support.type","background"],
["text",": "],
@ -69,17 +69,17 @@
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name.style","style"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.style","</"],
["meta.tag.name.style","style"],
["punctuation.meta.tag.end.style",">"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," Today's date: "],
@ -104,9 +104,9 @@
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -164,155 +164,155 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Select Languages:"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","form"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","form"],
["text"," "],
["entity.other.attribute-name","ACTION"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"jspCheckBox.jsp\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"checkbox\""],
["text"," "],
["entity.other.attribute-name","name"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"id\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"Java\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["text"," Java"],
["meta.tag","<"],
["meta.tag.tag-name","BR"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","BR"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"checkbox\""],
["text"," "],
["entity.other.attribute-name","name"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"id\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\".NET\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["text"," .NET"],
["meta.tag","<"],
["meta.tag.tag-name","BR"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","BR"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"checkbox\""],
["text"," "],
["entity.other.attribute-name","name"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"id\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"PHP\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["text"," PHP"],
["meta.tag","<"],
["meta.tag.tag-name","BR"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","BR"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"checkbox\""],
["text"," "],
["entity.other.attribute-name","name"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"id\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"C/C++\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["text"," C/C++"],
["meta.tag","<"],
["meta.tag.tag-name","BR"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","BR"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"checkbox\""],
["text"," "],
["entity.other.attribute-name","name"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"id\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"PERL\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["text"," PERL "],
["meta.tag","<"],
["meta.tag.tag-name","BR"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","BR"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name.form","input"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.form","input"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"submit\""],
["text"," "],
["entity.other.attribute-name","value"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"Submit\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name.form","form"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.form","form"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
@ -424,12 +424,12 @@
["meta.tag","%>"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
]]

View file

@ -41,13 +41,13 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","ul"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","ul"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"products\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -65,15 +65,15 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["variable","{{"],
["text"," "],
["identifier","product"],
@ -81,9 +81,9 @@
["identifier","title"],
["text"," "],
["variable","}}"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," Only "],
@ -101,9 +101,9 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["variable","{{"],
["text"," "],
["identifier","product"],
@ -117,17 +117,17 @@
["constant.numeric","200"],
["text"," "],
["variable","}}"],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -139,9 +139,9 @@
],[
"start",
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","ul"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
@ -153,18 +153,18 @@
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Filters"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text"," The word \"tobi\" in uppercase: "],
["variable","{{"],
["text"," "],
@ -174,14 +174,14 @@
["text"," "],
["variable","}}"],
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","The word \"tobi\" has "],
["variable","{{"],
["text"," "],
@ -191,14 +191,14 @@
["text"," "],
["variable","}}"],
["text"," letters! "],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","Change \"Hello world\" to \"Hi world\": "],
["variable","{{"],
["text"," "],
@ -212,14 +212,14 @@
["text"," "],
["variable","}}"],
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","The date today is "],
["variable","{{"],
["text"," "],
@ -231,27 +231,27 @@
["text"," "],
["variable","}}"],
["text"," "],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","If"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -292,27 +292,27 @@
["variable","%}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Case"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -392,27 +392,27 @@
["variable","%}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","For Loops"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -446,27 +446,27 @@
["variable","%}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Tables"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -543,9 +543,9 @@
["variable","%}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
]]

View file

@ -1,25 +1,20 @@
[[
"tag_embed_attribute_list",
"doctype",
["text",""],
["meta.tag","<"],
["text","!"],
["entity.other.attribute-name","DOCTYPE"],
["text"," "],
["entity.other.attribute-name","html"],
["text"," "],
["entity.other.attribute-name","PUBLIC"],
["text"," "],
["punctuation.doctype.begin","<!"],
["keyword.doctype","DOCTYPE"],
["text"," html PUBLIC "],
["string","\"-//W3C//DTD XHTML 1.0 Strict//EN\""]
],[
"start",
["text"," "],
["string","\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\""],
["meta.tag.r",">"]
["punctuation.doctype.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
["lua-bracketedComment",2,"lua-start"],
["keyword","<%"],
@ -38,31 +33,31 @@
["keyword","%>"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"],
["text","Reference"],
["meta.tag","</"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","link"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","link"],
["text"," "],
["entity.other.attribute-name","rel"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"stylesheet\""],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\""],
["keyword","<%="],
["identifier","luadoc"],
@ -76,123 +71,129 @@
["string","\"luadoc.css\""],
["paren.rparen",")"],
["keyword","%>"],
["text","\" type=\"text/css\" />"]
["string","\""],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator.separator","="],
["string","\"text/css\""],
["text"," "],
["punctuation.meta.tag.end","/>"]
],[
"start",
["text","\t"],
["comment","<!--meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/-->"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"container\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"product\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"product_logo\""],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"product_name\""],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name","big"],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","big"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","big"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","big"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"product_description\""],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"product\" -->"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"main\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"navigation\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","<%="],
@ -218,22 +219,22 @@
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"navigation\" -->"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"content\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
@ -262,22 +263,22 @@
["keyword","then%>"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Modules"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name.table","table"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","table"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"module_list\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["comment","<!--<tr><td colspan=\"2\">Modules</td></tr>-->"]
@ -302,24 +303,24 @@
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"name\""],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\""],
["keyword","<%="],
["identifier","luadoc"],
@ -335,26 +336,27 @@
["identifier","doc"],
["paren.rparen",")"],
["keyword","%>"],
["text","\">"],
["string","\""],
["punctuation.meta.tag.end",">"],
["keyword","<%="],
["identifier","modulename"],
["keyword","%>"],
["meta.tag","</"],
["meta.tag.tag-name.anchor","a"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"summary\""],
["meta.tag.r",">"],
["punctuation.meta.tag.end",">"],
["keyword","<%="],
["identifier","doc"],
["text","."],
@ -365,23 +367,23 @@
["text","."],
["identifier","summary"],
["keyword","%>"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","</"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","<%end%>"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name.table","table"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","table"],
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","<%end%>"]
@ -415,22 +417,22 @@
["keyword","then%>"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"],
["text","Files"],
["meta.tag","</"],
["meta.tag.tag-name","h2"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h2"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name.table","table"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","table"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"file_list\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["comment","<!--<tr><td colspan=\"2\">Files</td></tr>-->"]
@ -455,24 +457,24 @@
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"name\""],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\""],
["keyword","<%="],
["identifier","luadoc"],
@ -486,43 +488,44 @@
["identifier","filepath"],
["paren.rparen",")"],
["keyword","%>"],
["text","\">"],
["string","\""],
["punctuation.meta.tag.end",">"],
["keyword","<%="],
["identifier","filepath"],
["keyword","%>"],
["meta.tag","</"],
["meta.tag.tag-name.anchor","a"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t\t"],
["meta.tag","<"],
["meta.tag.tag-name.table","td"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.table","td"],
["text"," "],
["entity.other.attribute-name","class"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"summary\""],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name.table","td"],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","td"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","</"],
["meta.tag.tag-name.table","tr"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","tr"],
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","<%end%>"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name.table","table"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name.table","table"],
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","<%end%>"]
@ -530,97 +533,97 @@
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"content\" -->"]
],[
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"main\" -->"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","div"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","div"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"about\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text","\t"],
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name.anchor","a"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"http://validator.w3.org/check?uri=referer\""],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name.image","img"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.image","img"],
["text"," "],
["entity.other.attribute-name","src"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"http://www.w3.org/Icons/valid-xhtml10\""],
["text"," "],
["entity.other.attribute-name","alt"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"Valid XHTML 1.0!\""],
["text"," "],
["entity.other.attribute-name","height"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"31\""],
["text"," "],
["entity.other.attribute-name","width"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"88\""],
["text"," "],
["meta.tag.r","/>"],
["meta.tag","</"],
["meta.tag.tag-name.anchor","a"],
["meta.tag.r",">"],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.end","/>"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"about\" -->"]
],[
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","div"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","div"],
["punctuation.meta.tag.end",">"],
["text"," "],
["comment","<!-- id=\"container\" -->"],
["text","\t"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start"
]]

View file

@ -81,13 +81,13 @@
],[
"start",
["text","in plain text "],
["meta.tag","<"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"],
["text","http://ace.ajaxorg.com"],
["meta.tag","<"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"]
],[
"allowBlock"
],[

View file

@ -1,55 +1,55 @@
[[
"start",
["meta.tag","<"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"],
["text","Title"],
["meta.tag","</"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","head"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","This is an R HTML document. When you click the "],
["meta.tag","<"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"],
["text","Knit HTML"],
["meta.tag","</"],
["meta.tag.tag-name","b"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","b"],
["punctuation.meta.tag.end",">"],
["text"," button a web page will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:"],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
@ -68,13 +68,13 @@
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"],
["text","You can also embed plots, for example:"],
["meta.tag","</"],
["meta.tag.tag-name","p"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","p"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
@ -93,14 +93,14 @@
"start"
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","body"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","html"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start"
]]

View file

@ -1,68 +1,65 @@
[[
"tag_embed_attribute_list",
["meta.tag","<"],
["meta.tag.tag-name","svg"]
"punctuation.meta.tag.begin",
["punctuation.meta.tag.begin","<"],
["meta.tag.name","svg"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","width"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"800\""],
["text"," "],
["entity.other.attribute-name","height"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"600\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","xmlns"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"http://www.w3.org/2000/svg\""]
],[
"start",
["text"," "],
["entity.other.attribute-name","onload"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"StartAnimation(evt)\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"],
["text","Test Tube Progress Bar"],
["meta.tag","</"],
["meta.tag.tag-name","title"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","desc"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","desc"],
["punctuation.meta.tag.end",">"],
["text","Created for the Web Directions SVG competition"],
["meta.tag","</"],
["meta.tag.tag-name","desc"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","desc"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"js-start",
"js-no_regex",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","script"],
["punctuation.meta.tag.begin.script","<"],
["meta.tag.name.script","script"],
["text"," "],
["entity.other.attribute-name","type"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"text/ecmascript\""],
["meta.tag.r",">"],
["keyword.operator","<!"],
["paren.lparen","["],
["identifier","CDATA"],
["paren.lparen","["]
["punctuation.meta.tag.end.script",">"],
["string.begin","<![CDATA["]
],[
"js-start",
["text"," "],
@ -491,198 +488,197 @@
],[
"start",
["text"," "],
["paren.rparen","]]"],
["keyword.operator",">"],
["meta.tag","</"],
["meta.tag.tag-name","script"],
["meta.tag.r",">"]
["string.end","]]>"],
["punctuation.meta.tag.begin.script","</"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"]
],[
"start"
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","rect"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","rect"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","fill"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"#2e3436\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","fill-rule"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"nonzero\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","stroke-width"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"3\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","y"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"0\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","x"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"0\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","height"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"600\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","width"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"800\""]
],[
"start",
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"rect3590\""],
["meta.tag.r","/>"]
["punctuation.meta.tag.end","/>"]
],[
"start"
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","text"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","text"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","style"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"font-size:144px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","x"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"50\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","y"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"350\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"hickory\""]
],[
"start",
["text"," "],
["entity.other.attribute-name","display"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"none\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," Hickory,"],
["meta.tag","</"],
["meta.tag.tag-name","text"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","text"],
["punctuation.meta.tag.end",">"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","text"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","text"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","style"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"font-size:144px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","x"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"50\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","y"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"350\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"dickory\""]
],[
"start",
["text"," "],
["entity.other.attribute-name","display"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"none\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," dickory,"],
["meta.tag","</"],
["meta.tag.tag-name","text"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","text"],
["punctuation.meta.tag.end",">"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","text"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","text"]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","style"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"font-size:144px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans Bold\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","x"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"50\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","y"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"350\""]
],[
"tag_embed_attribute_list",
"punctuation.meta.tag.begin",
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"dock\""]
],[
"start",
["text"," "],
["entity.other.attribute-name","display"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"none\""],
["meta.tag.r",">"]
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," dock!"],
["meta.tag","</"],
["meta.tag.tag-name","text"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","text"],
["punctuation.meta.tag.end",">"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","svg"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","svg"],
["punctuation.meta.tag.end",">"]
]]

View file

@ -1,5 +1,178 @@
[[
"start",
["punctuation.doctype.begin","<!"],
["keyword.doctype","DOCTYPE"],
["text"," html"],
["punctuation.doctype.end",">"]
],[
"start",
["punctuation.meta.tag.begin","<"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"],
["text","My Webpage"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","title"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","head"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","ul"],
["text"," "],
["entity.other.attribute-name","id"],
["keyword.operator.separator","="],
["string","\"navigation\""],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","for"],
["text"," "],
["identifier","item"],
["text"," "],
["keyword.operator.twig","in"],
["text"," "],
["identifier","navigation"],
["text"," "],
["meta.tag.twig","%}"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name.anchor","a"],
["text"," "],
["entity.other.attribute-name","href"],
["keyword.operator.separator","="],
["string","\""],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","item"],
["punctuation.operator","."],
["identifier","href"],
["keyword.operator.other","|"],
["support.function.twig","escape"],
["text"," "],
["variable.other.readwrite.local.twig","}}"],
["string","\""],
["punctuation.meta.tag.end",">"],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","item"],
["punctuation.operator","."],
["identifier","caption"],
["text"," "],
["variable.other.readwrite.local.twig","}}"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name.anchor","a"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","endfor"],
["text"," "],
["meta.tag.twig","%}"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","if"],
["text"," "],
["constant.numeric","1"],
["text"," "],
["keyword.operator.twig","not"],
["text"," "],
["keyword.operator.twig","in"],
["text"," "],
["paren.lparen","["],
["constant.numeric","1"],
["punctuation.operator",","],
["text"," "],
["constant.numeric","2"],
["punctuation.operator",","],
["text"," "],
["constant.numeric","3"],
["paren.rparen","]"],
["text"," "],
["meta.tag.twig","%}"]
],[
"start"
],[
"start",
["text"," "],
["comment.block.twig","{# is equivalent to #}"]
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","if"],
["text"," "],
["keyword.operator.twig","not"],
["text"," "],
["paren.lparen","("],
["constant.numeric","1"],
["text"," "],
["keyword.operator.twig","in"],
["text"," "],
["paren.lparen","["],
["constant.numeric","1"],
["punctuation.operator",","],
["text"," "],
["constant.numeric","2"],
["punctuation.operator",","],
["text"," "],
["constant.numeric","3"],
["paren.rparen","])"],
["text"," "],
["meta.tag.twig","%}"]
],[
"start"
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","autoescape"],
@ -9,7 +182,7 @@
["meta.tag.twig","%}"]
],[
"start",
["text"," "],
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","var"],
@ -17,7 +190,7 @@
["variable.other.readwrite.local.twig","}}"]
],[
"start",
["text"," "],
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","var"],
@ -29,7 +202,7 @@
["comment.block.twig","{# var won't be escaped #}"]
],[
"start",
["text"," "],
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","var"],
@ -41,6 +214,7 @@
["comment.block.twig","{# var won't be doubled-escaped #}"]
],[
"start",
["text"," "],
["meta.tag.twig","{%"],
["text"," "],
["keyword.control.twig","endautoescape"],
@ -50,6 +224,7 @@
"start"
],[
"start",
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["keyword.control.twig","include"],
@ -69,6 +244,7 @@
"start"
],[
"start",
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["string","\"string "],
["constant.language.escape","#{with}"],
@ -79,4 +255,33 @@
["string","'another#one'"],
["text"," "],
["variable.other.readwrite.local.twig","}}"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"],
["text","My Webpage"],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","h1"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
["variable.other.readwrite.local.twig","{{"],
["text"," "],
["identifier","a_variable"],
["text"," "],
["variable.other.readwrite.local.twig","}}"]
],[
"start",
["text"," "],
["punctuation.meta.tag.begin","</"],
["meta.tag.name","body"],
["punctuation.meta.tag.end",">"]
],[
"start",
["punctuation.meta.tag.begin","</"],
["meta.tag.name","html"],
["punctuation.meta.tag.end",">"]
]]

View file

@ -1,11 +1,11 @@
[[
"comment",
"vm_comment",
["comment.block","#*"]
],[
"comment",
"vm_comment",
["comment"," This is a sample comment block that"]
],[
"comment",
"vm_comment",
["comment"," spans multiple lines."]
],[
"start",
@ -26,15 +26,15 @@
],[
"start",
["text"," "],
["meta.tag","<"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"],
["variable","${"],
["identifier","item"],
["variable","}"],
["meta.tag","</"],
["meta.tag.tag-name","li"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","li"],
["punctuation.meta.tag.end",">"]
],[
"start",
["keyword","#end"]
@ -68,9 +68,9 @@
"start"
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","ul"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text"," "],
@ -128,16 +128,16 @@
["keyword","#end"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","ul"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","ul"],
["punctuation.meta.tag.end",">"]
],[
"start"
],[
"js-start",
["meta.tag","<"],
["meta.tag.tag-name","script"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.script","<"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"]
],[
"js-comment_regex_allowed",
["text"," "],
@ -216,37 +216,37 @@
["paren.rparen","}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","script"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.script","</"],
["meta.tag.name.script","script"],
["punctuation.meta.tag.end.script",">"]
],[
"start"
],[
"css-start",
["meta.tag","<"],
["meta.tag.tag-name","style"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.style","<"],
["meta.tag.name.style","style"],
["punctuation.meta.tag.end.style",">"]
],[
"css-comment",
["css-comment","css-start"],
["text"," "],
["comment","/*"]
],[
"css-comment",
["css-comment","css-start"],
["comment"," A sample style to decomstrate"]
],[
"css-comment",
["css-comment","css-start"],
["comment"," CSS highlighting and folding."]
],[
"css-start",
["comment"," */"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["variable",".class"],
["text"," "],
["paren.lparen","{"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["support.type","font-family"],
["text",": Monaco, "],
@ -255,7 +255,7 @@
["support.constant.fonts","monospace"],
["text",";"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["support.type","font-size"],
["text",": "],
@ -263,7 +263,7 @@
["keyword","px"],
["text",";"]
],[
"css-ruleset",
["css-ruleset","css-start"],
["text"," "],
["support.type","cursor"],
["text",": "],
@ -275,7 +275,7 @@
["paren.rparen","}"]
],[
"start",
["meta.tag","</"],
["meta.tag.tag-name","style"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin.style","</"],
["meta.tag.name.style","style"],
["punctuation.meta.tag.end.style",">"]
]]

View file

@ -1,43 +1,43 @@
[[
"start",
["meta.tag","<"],
["meta.tag.tag-name","Juhu"],
["meta.tag.r",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","Juhu"],
["punctuation.meta.tag.end",">"],
["text","//Juhu Kinners"],
["meta.tag","</"],
["meta.tag.tag-name","Kinners"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","</"],
["meta.tag.name","Kinners"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","test: two tags in the same lines should be in separate tokens\""]
],[
"start",
["meta.tag","<"],
["meta.tag.tag-name","Juhu"],
["meta.tag.r",">"],
["meta.tag","<"],
["meta.tag.tag-name","Kinners"],
["meta.tag.r",">"]
["punctuation.meta.tag.begin","<"],
["meta.tag.name","Juhu"],
["punctuation.meta.tag.end",">"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","Kinners"],
["punctuation.meta.tag.end",">"]
],[
"start",
["text","test: multiline attributes\""]
],[
"tag_qqstring",
["meta.tag","<"],
["meta.tag.tag-name","copy"],
["qqstring_inner","punctuation.meta.tag.begin"],
["punctuation.meta.tag.begin","<"],
["meta.tag.name","copy"],
["text"," "],
["entity.other.attribute-name","set"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"{"]
],[
"tag_qqstring",
["qqstring_inner","punctuation.meta.tag.begin"],
["string","}\""],
["text"," "],
["entity.other.attribute-name","undo"],
["keyword.operator","="],
["keyword.operator.separator","="],
["string","\"{"]
],[
"start",
["string","}\""],
["meta.tag.r","/>"]
["punctuation.meta.tag.end","/>"]
]]

View file

@ -38,14 +38,9 @@ var TokenIterator = require("../../token_iterator").TokenIterator;
var voidElements = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
function hasType(token, type) {
var hasType = true;
var typeList = token.type.split('.');
var needleList = type.split('.');
needleList.forEach(function(needle){
if (typeList.indexOf(needle) == -1) {
hasType = false;
return false;
}
var tokenTypes = token.type.split('.');
return type.split('.').every(function(type){
return (tokenTypes.indexOf(type) !== -1);
});
return hasType;
}
@ -60,7 +55,7 @@ var HtmlBehaviour = function () {
var iterator = new TokenIterator(session, position.row, position.column);
var token = iterator.getCurrentToken();
if (hasType(token, 'string') && iterator.getCurrentTokenColumn() + token.value.length > position.column)
if (token && hasType(token, 'string') && iterator.getCurrentTokenColumn() + token.value.length > position.column)
return;
var atCursor = false;
if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){
@ -70,8 +65,8 @@ var HtmlBehaviour = function () {
} else {
atCursor = true;
}
if (!token || !hasType(token, 'meta.tag-name') || iterator.stepBackward().value.match('/')) {
return
if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) {
return;
}
var element = token.value;
if (atCursor){

View file

@ -37,14 +37,9 @@ var CstyleBehaviour = require("./cstyle").CstyleBehaviour;
var TokenIterator = require("../../token_iterator").TokenIterator;
function hasType(token, type) {
var hasType = true;
var typeList = token.type.split('.');
var needleList = type.split('.');
needleList.forEach(function(needle){
if (typeList.indexOf(needle) == -1) {
hasType = false;
return false;
}
var tokenTypes = token.type.split('.');
return type.split('.').every(function(type){
return (tokenTypes.indexOf(type) !== -1);
});
return hasType;
}
@ -58,6 +53,9 @@ var XmlBehaviour = function () {
var position = editor.getCursorPosition();
var iterator = new TokenIterator(session, position.row, position.column);
var token = iterator.getCurrentToken();
if (token && hasType(token, 'string') && iterator.getCurrentTokenColumn() + token.value.length > position.column)
return;
var atCursor = false;
if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){
do {
@ -66,8 +64,8 @@ var XmlBehaviour = function () {
} else {
atCursor = true;
}
if (!token || !hasType(token, 'meta.tag-name') || iterator.stepBackward().value.match('/')) {
return
if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) {
return;
}
var tag = token.value;
if (atCursor){

View file

@ -32,92 +32,18 @@ define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var xml_util = require("./xml_util");
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var ColdfusionHighlightRules = function() {
HtmlHighlightRules.call(this);
// regexp must not have capturing parentheses
// regexps are ordered -> the first match is used
this.embedTagRules(JavaScriptHighlightRules, "cfjs-", "cfscript");
this.$rules = {
start : [ {
token : "text",
regex : "<\\!\\[CDATA\\[",
next : "cdata"
}, {
token : "xml-pe",
regex : "<\\?.*?\\?>"
}, {
token : "comment",
regex : "<\\!--",
next : "comment"
}, {
token : "meta.tag",
regex : "<(?=script)",
next : "script"
}, {
token : "meta.tag",
regex : "<(?=cfscript)",
next : "cfscript"
}, {
token : "meta.tag",
regex : "<(?=style)",
next : "style"
}, {
token : "meta.tag", // opening tag
regex : "<\\/?",
next : "tag"
} ],
cdata : [ {
token : "text",
regex : "\\]\\]>",
next : "start"
} ],
comment : [ {
token : "comment",
regex : ".*?-->",
next : "start"
}, {
defaultToken : "comment"
} ]
};
xml_util.tag(this.$rules, "tag", "start");
xml_util.tag(this.$rules, "style", "css-start");
xml_util.tag(this.$rules, "script", "js-start");
xml_util.tag(this.$rules, "cfscript", "js-start");
this.embedRules(JavaScriptHighlightRules, "js-", [{
token: "comment",
regex: "\\/\\/.*(?=<\\/script>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=script)",
next: "tag"
}, {
token: "comment",
regex: "\\/\\/.*(?=<\\/cfscript>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=cfscript)",
next: "tag"
}]);
this.embedRules(CssHighlightRules, "css-", [{
token: "meta.tag",
regex: "<\\/(?=style)",
next: "tag"
}]);
this.normalizeRules();
};
oop.inherits(ColdfusionHighlightRules, TextHighlightRules);
oop.inherits(ColdfusionHighlightRules, HtmlHighlightRules);
exports.ColdfusionHighlightRules = ColdfusionHighlightRules;
});

View file

@ -60,11 +60,80 @@ var CssHighlightRules = function() {
// regexp must not have capturing parentheses. Use (?:) instead.
// regexps are ordered -> the first match is used
var base_ruleset = [
{
this.$rules = {
"start" : [{
token : "comment", // multi line comment
regex : "\\/\\*",
next : "ruleset_comment"
push : "comment"
}, {
token: "paren.lparen",
regex: "\\{",
push: "ruleset"
}, {
token: "string",
regex: "@.*?{",
push: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
"media" : [{
token : "comment", // multi line comment
regex : "\\/\\*",
push : "comment"
}, {
token: "paren.lparen",
regex: "\\{",
push: "ruleset"
}, {
token: "string",
regex: "\\}",
next: "pop"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
"comment" : [{
token : "comment",
regex : "\\*\\/",
next : "pop"
}, {
defaultToken : "comment"
}],
"ruleset" : [
{
token : "paren.rparen",
regex : "\\}",
next: "pop"
}, {
token : "comment", // multi line comment
regex : "\\/\\*",
push : "comment"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
@ -97,114 +166,10 @@ var CssHighlightRules = function() {
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
}
];
var ruleset = lang.copyArray(base_ruleset);
ruleset.unshift({
token : "paren.rparen",
regex : "\\}",
next: "start"
});
var media_ruleset = lang.copyArray( base_ruleset );
media_ruleset.unshift({
token : "paren.rparen",
regex : "\\}",
next: "media"
});
var base_comment = [{
token : "comment", // comment spanning whole line
regex : ".+"
}];
var comment = lang.copyArray(base_comment);
comment.unshift({
token : "comment", // closing comment
regex : ".*?\\*\\/",
next : "start"
});
var media_comment = lang.copyArray(base_comment);
media_comment.unshift({
token : "comment", // closing comment
regex : ".*?\\*\\/",
next : "media"
});
var ruleset_comment = lang.copyArray(base_comment);
ruleset_comment.unshift({
token : "comment", // closing comment
regex : ".*?\\*\\/",
next : "ruleset"
});
this.$rules = {
"start" : [{
token : "comment", // multi line comment
regex : "\\/\\*",
next : "comment"
}, {
token: "paren.lparen",
regex: "\\{",
next: "ruleset"
}, {
token: "string",
regex: "@.*?{",
next: "media"
},{
token: "keyword",
regex: "#[a-z0-9-_]+"
},{
token: "variable",
regex: "\\.[a-z0-9-_]+"
},{
token: "string",
regex: ":[a-z0-9-_]+"
},{
token: "constant",
regex: "[a-z0-9-_]+"
},{
caseInsensitive: true
}],
"media" : [ {
token : "comment", // multi line comment
regex : "\\/\\*",
next : "media_comment"
}, {
token: "paren.lparen",
regex: "\\{",
next: "media_ruleset"
},{
token: "string",
regex: "\\}",
next: "start"
},{
token: "keyword",
regex: "#[a-z0-9-_]+"
},{
token: "variable",
regex: "\\.[a-z0-9-_]+"
},{
token: "string",
regex: ":[a-z0-9-_]+"
},{
token: "constant",
regex: "[a-z0-9-_]+"
},{
caseInsensitive: true
}],
"comment" : comment,
"ruleset" : ruleset,
"ruleset_comment" : ruleset_comment,
"media_ruleset" : media_ruleset,
"media_comment" : media_comment
}]
};
this.normalizeRules();
};
oop.inherits(CssHighlightRules, TextHighlightRules);

View file

@ -42,34 +42,21 @@ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var CurlyHighlightRules = function() {
var CurlyRules = {
"start" : [
{
token: "variable",
regex: "{{",
next: "curly_mode"
}
],
HtmlHighlightRules.call(this);
"curly_mode" : [
{
token: "variable",
regex: "}}",
next: "start"
}
]
};
this.$rules["start"].unshift({
token: "variable",
regex: "{{",
push: "curly-start"
});
var htmlRules = new HtmlHighlightRules().getRules();
this.$rules["curly-start"] = [{
token: "variable",
regex: "}}",
next: "pop"
}];
// Inject Curly start array into HTML rules
htmlRules.start = CurlyRules.start.concat(htmlRules.start);
// Inject Mustach mode array into HTML rules
htmlRules.curly_mode = CurlyRules.curly_mode;
// Return the augmented HTML rules
this.$rules = htmlRules;
this.normalizeRules();
};
oop.inherits(CurlyHighlightRules, HtmlHighlightRules);

View file

@ -68,7 +68,7 @@ oop.inherits(FoldMode, BaseFoldMode);
var value = "";
for (var i = 0; i < tokens.length; i++) {
var token = tokens[i];
if (token.type.indexOf("meta.tag") === 0)
if (token.type.indexOf("meta.tag") !== -1)
value += token.value;
else
value += lang.stringRepeat(" ", token.value.length);
@ -105,7 +105,7 @@ oop.inherits(FoldMode, BaseFoldMode);
var start;
do {
if (token.type.indexOf("meta.tag") === 0) {
if (token.type.indexOf("meta.tag") !== -1) {
if (!start) {
var start = {
row: iterator.getCurrentTokenRow(),
@ -138,7 +138,7 @@ oop.inherits(FoldMode, BaseFoldMode);
var end;
do {
if (token.type.indexOf("meta.tag") === 0) {
if (token.type.indexOf("meta.tag") !== -1) {
if (!end) {
end = {
row: iterator.getCurrentTokenRow(),

View file

@ -131,14 +131,18 @@ var FtlLangHighlightRules = function () {
oop.inherits(FtlLangHighlightRules, TextHighlightRules);
var FtlHighlightRules = function() {
HtmlHighlightRules.call(this);
var directives = "assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|"
+ "ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|"
+ "setting|stop|switch|t|visit";
HtmlHighlightRules.call(this);
for (var i in this.$rules) {
this.$rules[i].unshift({
var startRules = [
{
token : "comment",
regex : "<#--",
next : "ftl-dcomment"
}, {
token : "string.interpolated",
regex : "\\${",
push : "ftl-start"
@ -150,34 +154,35 @@ var FtlHighlightRules = function() {
token : "keyword.other",
regex : "</?@[a-zA-Z\\.]+",
push : "ftl-start"
});
}
}
];
this.embedRules(FtlLangHighlightRules, "ftl-");
var endRules = [
{
token : "keyword",
regex : "/?>",
next : "pop"
}, {
token : "string.interpolated",
regex : "}",
next : "pop"
}
];
this.$rules["ftl-start"].unshift({
token : "keyword",
regex : "/?>",
next : "pop"
}, {
token : "string.interpolated",
regex : "}",
next : "pop"
});
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.$rules.start.unshift({
token : "comment",
regex : "<#--",
next : "comment"
});
this.embedRules(FtlLangHighlightRules, "ftl-", endRules, ["start"]);
this.$rules.comment.unshift({
token : "comment",
regex : ".*?-->",
next : "start"
}, {
token : "comment",
regex : ".+"
this.addRules({
"ftl-dcomment" : [{
token : "comment",
regex : ".*?-->",
next : "pop"
}, {
token : "comment",
regex : ".+"
}]
});
this.normalizeRules();

View file

@ -35,8 +35,7 @@ var oop = require("../lib/oop");
var lang = require("../lib/lang");
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var xmlUtil = require("./xml_util");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;
var tagMap = lang.createMap({
a : 'anchor',
@ -58,81 +57,66 @@ var tagMap = lang.createMap({
});
var HtmlHighlightRules = function() {
XmlHighlightRules.call(this);
// regexp must not have capturing parentheses
// regexps are ordered -> the first match is used
this.$rules = {
start : [{
token : "text",
regex : "<\\!\\[CDATA\\[",
next : "cdata"
this.addRules({
attributes: [{
include : "space"
}, {
token : "xml-pe",
regex : "<\\?.*?\\?>"
token : "entity.other.attribute-name",
regex : "[-_a-zA-Z0-9:]+"
}, {
token : "comment",
regex : "<\\!--",
next : "comment"
token : "keyword.operator.separator",
regex : "=",
push : [{
include: "space",
}, {
token : "string",
regex : "[^<>='\"`\\s]+",
next : "pop"
}, {
token : "empty",
regex : "",
next : "pop"
}]
}, {
token : "xml-pe",
regex : "<\\!.*?>"
}, {
token : "meta.tag",
regex : "<(?=script\\b)",
next : "script"
}, {
token : "meta.tag",
regex : "<(?=style\\b)",
next : "style"
}, {
token : "meta.tag", // opening tag
regex : "<\\/?(?=\\S)",
next : "tag"
}, {
token : "text",
regex : "\\s+"
}, {
token : "constant.character.entity",
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
include : "string"
}],
cdata : [ {
token : "text",
regex : "\\]\\]>",
next : "start"
} ],
comment : [ {
token : "comment",
regex : ".*?-->",
next : "start"
tag: [{
token : function(start, tag) {
var group = tagMap[tag];
return ["punctuation.meta.tag.begin",
"meta.tag.name" + (group ? "." + group : "")];
},
regex : "(<)([-_a-zA-Z0-9:]+)",
next: "start_tag_stuff"
}, {
defaultToken : "comment"
} ]
};
xmlUtil.tag(this.$rules, "tag", "start", tagMap);
xmlUtil.tag(this.$rules, "style", "css-start", tagMap);
xmlUtil.tag(this.$rules, "script", "js-start", tagMap);
this.embedRules(JavaScriptHighlightRules, "js-", [{
token: "comment",
regex: "\\/\\/.*(?=<\\/script>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=script)",
next: "tag"
}]);
this.embedRules(CssHighlightRules, "css-", [{
token: "meta.tag",
regex: "<\\/(?=style)",
next: "tag"
}]);
token : function(start, tag) {
var group = tagMap[tag];
return ["punctuation.meta.tag.begin",
"meta.tag.name" + (group ? "." + group : "")];
},
regex : "(</)([-_a-zA-Z0-9:]+)",
next: "end_tag_stuff"
}],
start_tag_stuff: [
{include : "attributes"},
{token : "punctuation.meta.tag.end", regex : "/?>", next : "start"}
],
end_tag_stuff: [
{include : "space"},
{token : "punctuation.meta.tag.end", regex : ">", next : "start"}
]
});
this.embedTagRules(CssHighlightRules, "css-", "style");
this.embedTagRules(JavaScriptHighlightRules, "js-", "script");
if (this.constructor === HtmlHighlightRules)
this.normalizeRules();
};
oop.inherits(HtmlHighlightRules, TextHighlightRules);
oop.inherits(HtmlHighlightRules, XmlHighlightRules);
exports.HtmlHighlightRules = HtmlHighlightRules;
});

View file

@ -37,32 +37,37 @@ define(function(require, exports, module) {
var HtmlRubyHighlightRules = function() {
HtmlHighlightRules.call(this);
for (var i in this.$rules) {
this.$rules[i].unshift({
var startRules = [
{
regex: "<%%|%%>",
token: "constant.language.escape"
}, {
token : "comment.start.erb",
token : "comment.start.erb",
regex : "<%#",
push : [{regex: "%>", next: "pop"}]
}, {
token : "support.ruby_tag",
regex : "<%+(?!>)[-=]?",
push : "ruby-start"
});
}
this.embedRules(RubyHighlightRules, "ruby-");
this.$rules["ruby-start"].unshift({
token : "support.ruby_tag",
regex : "%>",
next : "pop"
}, {
token: "comment",
regex: /#(?:[^%]|%[^>])*/
});
}
];
var endRules = [
{
token : "support.ruby_tag",
regex : "%>",
next : "pop"
}, {
token: "comment",
regex: "#(?:[^%]|%[^>])*"
}
];
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.embedRules(RubyHighlightRules, "ruby-", endRules, ["start"]);
this.normalizeRules();
};

View file

@ -86,7 +86,8 @@ var JavaScriptHighlightRules = function() {
"no_regex" : [
{
token : "comment",
regex : /\/\/.*$/
regex : "\\/\\/",
next : "line_comment"
},
DocCommentHighlightRules.getStartRule("doc-start"),
{
@ -215,8 +216,8 @@ var JavaScriptHighlightRules = function() {
next : "comment_regex_allowed"
}, {
token : "comment",
regex : "\\/\\/.*$",
next : "start"
regex : "\\/\\/",
next : "line_comment_regex_allowed"
}, {
token: "string.regexp",
regex: "\\/",
@ -309,6 +310,14 @@ var JavaScriptHighlightRules = function() {
{token : "comment", regex : "\\*\\/", next : "no_regex"},
{defaultToken : "comment"}
],
"line_comment_regex_allowed" : [
{token : "comment", regex : "$|^", next : "start"},
{defaultToken : "comment"}
],
"line_comment" : [
{token : "comment", regex : "$|^", next : "no_regex"},
{defaultToken : "comment"}
],
"qqstring" : [
{
token : "constant.language.escape",

View file

@ -37,45 +37,52 @@ var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules;
var JspHighlightRules = function() {
HtmlHighlightRules.call(this);
for (var i in this.$rules) {
this.$rules[i].unshift({
token : "meta.tag", // jsp open tag
regex : "<%@?|<%=?|<jsp:[^>]+>",
next : "jsp-start"
});
}
var builtinVariables = 'request|response|out|session|' +
'application|config|pageContext|page|Exception';
var keywords = 'page|include|taglib';
this.embedRules(JavaHighlightRules, "jsp-");
var startRules = [
{
token : "comment",
regex : "<%--",
push : "jsp-dcomment"
}, {
token : "meta.tag", // jsp open tag
regex : "<%@?|<%=?|<jsp:[^>]+>",
push : "jsp-start"
}
];
this.$rules["start"].unshift({
token : "comment",
regex : "<%--",
next : "comment"
var endRules = [
{
token : "meta.tag", // jsp close tag
regex : "%>|<\\/jsp:[^>]+>",
next : "pop"
}, {
token: "variable.language",
regex : builtinVariables
}, {
token: "keyword",
regex : keywords
}
];
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.embedRules(JavaHighlightRules, "jsp-", endRules, ["start"]);
this.addRules({
"jsp-dcomment" : [{
token : "comment",
regex : ".*?--%>",
next : "pop"
}]
});
this.$rules["jsp-start"].unshift({
token : "meta.tag", // jsp close tag
regex : "%>|<\\/jsp:[^>]+>",
next : "start"
},
{
token: "variable.language",
regex : builtinVariables
}, {
token: "keyword",
regex : keywords
});
this.$rules.comment.unshift({
token : "comment",
regex : ".*?--%>",
next : "start"
});
this.normalizeRules();
};
oop.inherits(JspHighlightRules, HtmlHighlightRules);

View file

@ -32,12 +32,11 @@ define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var xmlUtil = require("./xml_util");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var LiquidHighlightRules = function() {
HtmlHighlightRules.call(this);
// see: https://developer.mozilla.org/en/Liquid/Reference/Global_Objects
var functions = (
@ -69,65 +68,28 @@ var LiquidHighlightRules = function() {
"keyword.definition": definitions
}, "identifier");
// regexp must not have capturing parentheses. Use (?:) instead.
// regexps are ordered -> the first match is used
this.$rules = {
start : [{
// add liquid start tags to the HTML start tags
for (var rule in this.$rules) {
this.$rules[rule].unshift({
token : "variable",
regex : "{%",
next : "liquid_start"
push : "liquid-start"
}, {
token : "variable",
regex : "{{",
next : "liquid_start"
}, {
token : "meta.tag",
regex : "<\\!\\[CDATA\\[",
next : "cdata"
}, {
token : "xml-pe",
regex : "<\\?.*?\\?>"
}, {
token : "comment",
regex : "<\\!--",
next : "comment"
}, {
token : "meta.tag",
regex : "<(?=\\s*script\\b)",
next : "script"
}, {
token : "meta.tag",
regex : "<(?=\\s*style\\b)",
next : "style"
}, {
token : "meta.tag", // opening tag
regex : "<\\/?",
next : "tag"
} ],
push : "liquid-start"
});
}
cdata : [ {
token : "text",
regex : "\\]\\]>",
next : "start"
} ],
comment : [ {
token : "comment",
regex : ".*?-->",
next : "start"
}, {
defaultToken : "comment"
} ] ,
liquid_start : [{
this.addRules({
"liquid-start" : [{
token: "variable",
regex: "}}",
next: "start"
next: "pop"
}, {
token: "variable",
regex: "%}",
next: "start"
next: "pop"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
@ -159,27 +121,9 @@ var LiquidHighlightRules = function() {
token : "text",
regex : "\\s+"
}]
};
});
xmlUtil.tag(this.$rules, "tag", "start");
xmlUtil.tag(this.$rules, "style", "css-start");
xmlUtil.tag(this.$rules, "script", "js-start");
this.embedRules(JavaScriptHighlightRules, "js-", [{
token: "comment",
regex: "\\/\\/.*(?=<\\/script>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=script)",
next: "tag"
}]);
this.embedRules(CssHighlightRules, "css-", [{
token: "meta.tag",
regex: "<\\/(?=style)",
next: "tag"
}]);
this.normalizeRules();
};
oop.inherits(LiquidHighlightRules, TextHighlightRules);

View file

@ -8,31 +8,38 @@ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
var LuaPageHighlightRules = function() {
this.$rules = new HtmlHighlightRules().getRules();
for (var i in this.$rules) {
this.$rules[i].unshift({
HtmlHighlightRules.call(this);
var startRules = [
{
token: "keyword",
regex: "<\\%\\=?",
next: "lua-start"
push: "lua-start"
}, {
token: "keyword",
regex: "<\\?lua\\=?",
next: "lua-start"
});
}
this.embedRules(LuaHighlightRules, "lua-", [
push: "lua-start"
}
];
var endRules = [
{
token: "keyword",
regex: "\\%>",
next: "start"
},
{
next: "pop"
}, {
token: "keyword",
regex: "\\?>",
next: "start"
next: "pop"
}
]);
];
this.embedRules(LuaHighlightRules, "lua-", endRules, ["start"]);
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.normalizeRules();
};
oop.inherits(LuaPageHighlightRules, HtmlHighlightRules);

View file

@ -42,16 +42,57 @@ function github_embed(tag, prefix) {
return { // Github style block
token : "support.function",
regex : "^```" + tag + "\\s*$",
next : prefix + "start"
push : prefix + "start"
};
}
var MarkdownHighlightRules = function() {
HtmlHighlightRules.call(this);
// regexp must not have capturing parentheses
// regexps are ordered -> the first match is used
this.$rules = {
this.$rules["start"].unshift({
token : "empty_line",
regex : '^$',
next: "allowBlock"
}, { // h1
token: "markup.heading.1",
regex: "^=+(?=\\s*$)"
}, { // h2
token: "markup.heading.2",
regex: "^\\-+(?=\\s*$)"
}, {
token : function(value) {
return "markup.heading." + value.length;
},
regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/,
next : "header"
},
github_embed("(?:javascript|js)", "jscode-"),
github_embed("xml", "xmlcode-"),
github_embed("html", "htmlcode-"),
github_embed("css", "csscode-"),
{ // Github style block
token : "support.function",
regex : "^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",
next : "githubblock"
}, { // block quote
token : "string",
regex : "^>[ ].+$",
next : "blockquote"
}, { // HR * - _
token : "constant",
regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",
next: "allowBlock"
}, { // list
token : "markup.list",
regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next : "listblock-start"
}, {
include : "basic"
});
this.addRules({
"basic" : [{
token : "constant.language.escape",
regex : /\\[\\`*_{}\[\]()#+\-.!]/
@ -93,47 +134,6 @@ var MarkdownHighlightRules = function() {
{token : "empty", regex : "", next : "start"}
],
"start" : [{
token : "empty_line",
regex : '^$',
next: "allowBlock"
}, { // h1
token: "markup.heading.1",
regex: "^=+(?=\\s*$)"
}, { // h2
token: "markup.heading.2",
regex: "^\\-+(?=\\s*$)"
}, {
token : function(value) {
return "markup.heading." + value.length;
},
regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/,
next : "header"
},
github_embed("(?:javascript|js)", "js-"),
github_embed("xml", "xml-"),
github_embed("html", "html-"),
github_embed("css", "css-"),
{ // Github style block
token : "support.function",
regex : "^```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$",
next : "githubblock"
}, { // block quote
token : "string",
regex : "^>[ ].+$",
next : "blockquote"
}, { // HR * - _
token : "constant",
regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$",
next: "allowBlock"
}, { // list
token : "markup.list",
regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next : "listblock-start"
}, {
include : "basic"
}],
"header" : [{
regex: "$",
next : "start"
@ -180,40 +180,32 @@ var MarkdownHighlightRules = function() {
token : "support.function",
regex : ".+"
} ]
};
});
this.embedRules(JavaScriptHighlightRules, "js-", [{
this.embedRules(JavaScriptHighlightRules, "jscode-", [{
token : "support.function",
regex : "^```",
next : "start"
next : "pop"
}]);
this.embedRules(HtmlHighlightRules, "html-", [{
this.embedRules(HtmlHighlightRules, "htmlcode-", [{
token : "support.function",
regex : "^```",
next : "start"
next : "pop"
}]);
this.embedRules(CssHighlightRules, "css-", [{
this.embedRules(CssHighlightRules, "csscode-", [{
token : "support.function",
regex : "^```",
next : "start"
next : "pop"
}]);
this.embedRules(XmlHighlightRules, "xml-", [{
this.embedRules(XmlHighlightRules, "xmlcode-", [{
token : "support.function",
regex : "^```",
next : "start"
next : "pop"
}]);
var html = new HtmlHighlightRules().getRules();
for (var i in html) {
if (this.$rules[i])
this.$rules[i] = this.$rules[i].concat(html[i]);
else
this.$rules[i] = html[i];
}
this.normalizeRules();
};
oop.inherits(MarkdownHighlightRules, TextHighlightRules);

View file

@ -1057,21 +1057,27 @@ oop.inherits(PhpLangHighlightRules, TextHighlightRules);
var PhpHighlightRules = function() {
HtmlHighlightRules.call(this);
for (var i in this.$rules) {
this.$rules[i].unshift({
var startRules = [
{
token : "support.php_tag", // php open tag
regex : "<\\?(?:php|=)?",
push : "php-start"
});
}
}
];
this.embedRules(PhpLangHighlightRules, "php-");
var endRules = [
{
token : "support.php_tag", // php close tag
regex : "\\?>",
next : "pop"
}
];
for (var key in this.$rules)
this.$rules[key].unshift.apply(this.$rules[key], startRules);
this.embedRules(PhpLangHighlightRules, "php-", endRules, ["start"]);
this.$rules["php-start"].unshift({
token : "support.php_tag", // php close tag
regex : "\\?>",
next : "pop"
});
this.normalizeRules();
};

View file

@ -24,24 +24,21 @@ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var RHtmlHighlightRules = function() {
HtmlHighlightRules.call(this);
// regexp must not have capturing parentheses
// regexps are ordered -> the first match is used
this.$rules = new HtmlHighlightRules().getRules();
this.$rules["start"].unshift({
token: "support.function.codebegin",
regex: "^<" + "!--\\s*begin.rcode\\s*(?:.*)",
next: "r-start"
});
var rRules = new RHighlightRules().getRules();
this.addRules(rRules, "r-");
this.$rules["r-start"].unshift({
this.embedRules(RHighlightRules, "r-", [{
token: "support.function.codeend",
regex: "^\\s*end.rcode\\s*-->",
next: "start"
});
}], ["start"]);
this.normalizeRules();
};
oop.inherits(RHtmlHighlightRules, TextHighlightRules);

View file

@ -34,28 +34,13 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;
var xmlUtil = require("./xml_util");
var SvgHighlightRules = function() {
XmlHighlightRules.call(this);
this.$rules.start.splice(3, 0, {
token : "meta.tag",
regex : "<(?=script)",
next : "script"
});
xmlUtil.tag(this.$rules, "script", "js-start");
this.embedRules(JavaScriptHighlightRules, "js-", [{
token: "comment",
regex: "\\/\\/.*(?=<\\/script>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=script)",
next: "tag"
}]);
this.embedTagRules(JavaScriptHighlightRules, "js-", "script");
this.normalizeRules();
};
oop.inherits(SvgHighlightRules, XmlHighlightRules);

View file

@ -51,15 +51,23 @@ var TextHighlightRules = function() {
(function() {
this.addRules = function(rules, prefix) {
if (!prefix) {
for (var key in rules)
this.$rules[key] = rules[key];
return;
}
for (var key in rules) {
var state = rules[key];
for (var i = 0; i < state.length; i++) {
var rule = state[i];
if (rule.next) {
if (typeof rule.next != "string")
rule.nextState = prefix + rule.nextState;
else
rule.next = prefix + rule.next;
if (typeof rule.next != "string") {
if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)
rule.nextState = prefix + rule.nextState;
} else {
if (rule.next.indexOf(prefix) !== 0)
rule.next = prefix + rule.next;
}
}
}
@ -93,7 +101,7 @@ var TextHighlightRules = function() {
if (!this.$embeds)
this.$embeds = [];
this.$embeds.push(prefix);
}
};
this.getEmbeds = function() {
return this.$embeds;

View file

@ -56,35 +56,37 @@ var TwigHighlightRules = function() {
}, "identifier");
// add twig start tags to the HTML start tags
this.$rules.start.unshift({
token : "variable.other.readwrite.local.twig",
regex : "\\{\\{-?",
next : "twig-start"
}, {
token : "meta.tag.twig",
regex : "\\{%-?",
next : "twig-start"
}, {
token : "comment.block.twig",
regex : "\\{#-?",
next : "comment"
});
for (var rule in this.$rules) {
this.$rules[rule].unshift({
token : "variable.other.readwrite.local.twig",
regex : "\\{\\{-?",
push : "twig-start"
}, {
token : "meta.tag.twig",
regex : "\\{%-?",
push : "twig-start"
}, {
token : "comment.block.twig",
regex : "\\{#-?",
push : "twig-comment"
});
}
// add twig closing comment to HTML comments
this.$rules.comment.unshift({
this.$rules["twig-comment"] = [{
token : "comment.block.twig",
regex : ".*-?#\\}",
next : "start"
});
next : "pop"
}];
this.$rules["twig-start"] = [{
token : "variable.other.readwrite.local.twig",
regex : "-?\\}\\}",
next : "start"
next : "pop"
}, {
token : "meta.tag.twig",
regex : "-?%\\}",
next : "start"
next : "pop"
}, {
token : "string",
regex : "'",
@ -131,8 +133,6 @@ var TwigHighlightRules = function() {
regex : "\\s+"
} ];
this.$rules["twig-qqstring"] = [{
token : "constant.language.escape",
regex : /\\[\\"$#ntr]|#{[^"}]*}/
@ -156,6 +156,8 @@ var TwigHighlightRules = function() {
defaultToken : "string"
}
];
this.normalizeRules();
};
oop.inherits(TwigHighlightRules, TextHighlightRules);

View file

@ -3,12 +3,12 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var lang = require("../lib/lang");
var xmlUtil = require("./xml_util");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var VelocityHighlightRules = function() {
HtmlHighlightRules.call(this);
var builtinConstants = lang.arrayToMap(
('true|false|null').split('|')
);
@ -31,198 +31,144 @@ var VelocityHighlightRules = function() {
// regexp must not have capturing parentheses. Use (?:) instead.
// regexps are ordered -> the first match is used
this.$rules = {
"start" : [
{
token : "meta.tag",
regex : "<\\!\\[CDATA\\[",
next : "cdata"
}, {
token : "xml-pe",
regex : "<\\?.*?\\?>"
}, {
token : "comment",
regex : "<\\!--",
next : "comment"
}, {
token : "meta.tag",
regex : "<(?=\\s*script\\b)",
next : "script"
}, {
token : "meta.tag",
regex : "<(?=\\s*style\\b)",
next : "style"
}, {
token : "meta.tag", // opening tag
regex : "<\\/?(?=[a-z])",
next : "tag"
}, {
token : "comment",
regex : "##.*$"
},{
token : "comment.block", // multi line comment
regex : "#\\*",
next : "comment"
}, {
token : "string.regexp",
regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, {
token : "string", // single line
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
token : "constant.numeric", // hex
regex : "0[xX][0-9a-fA-F]+\\b"
}, {
token : "constant.numeric", // float
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
}, {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
token : function(value) {
if (keywords.hasOwnProperty(value))
return "keyword";
else if (builtinConstants.hasOwnProperty(value))
return "constant.language";
else if (builtinVariables.hasOwnProperty(value))
return "variable.language";
else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))
return "support.function";
else if (value == "debugger")
return "invalid.deprecated";
else
if(value.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*)$/))
return "variable";
return "identifier";
},
// TODO: Unicode escape sequences
// TODO: Unicode identifiers
regex : "[a-zA-Z$#][a-zA-Z0-9_]*\\b"
}, {
token : "keyword.operator",
regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"
}, {
token : "lparen",
regex : "[[({]"
}, {
token : "rparen",
regex : "[\\])}]"
}, {
token : "text",
regex : "\\s+"
}
],
"cdata" : [
{
token : "text",
regex : "\\]\\]>",
next : "start"
}, {
token : "text",
regex : "\\s+"
}, {
token : "text",
regex : ".+"
}
],
"comment" : [
{
token : "comment", // closing comment
regex : "\\*#|-->",
next : "start"
}, {
defaultToken: "comment"
}
],
"vm_start" : [
{
token: "variable",
regex: "}",
next: "start"
}, {
token : "string.regexp",
regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, {
token : "string", // single line
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
token : "constant.numeric", // hex
regex : "0[xX][0-9a-fA-F]+\\b"
}, {
token : "constant.numeric", // float
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
}, {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
token : function(value) {
if (keywords.hasOwnProperty(value))
return "keyword";
else if (builtinConstants.hasOwnProperty(value))
return "constant.language";
else if (builtinVariables.hasOwnProperty(value))
return "variable.language";
else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))
return "support.function";
else if (value == "debugger")
return "invalid.deprecated";
else
if(value.match(/^(\$[a-zA-Z_$][a-zA-Z0-9_]*)$/))
return "variable";
return "identifier";
},
// TODO: Unicode escape sequences
// TODO: Unicode identifiers
regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
}, {
token : "keyword.operator",
regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"
}, {
token : "lparen",
regex : "[[({]"
}, {
token : "rparen",
regex : "[\\])}]"
}, {
token : "text",
regex : "\\s+"
}
]
};
this.$rules.start.push(
{
token : "comment",
regex : "##.*$"
},{
token : "comment.block", // multi line comment
regex : "#\\*",
next : "vm_comment"
}, {
token : "string.regexp",
regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, {
token : "string", // single line
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
token : "constant.numeric", // hex
regex : "0[xX][0-9a-fA-F]+\\b"
}, {
token : "constant.numeric", // float
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
}, {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
token : function(value) {
if (keywords.hasOwnProperty(value))
return "keyword";
else if (builtinConstants.hasOwnProperty(value))
return "constant.language";
else if (builtinVariables.hasOwnProperty(value))
return "variable.language";
else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))
return "support.function";
else if (value == "debugger")
return "invalid.deprecated";
else
if(value.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*)$/))
return "variable";
return "identifier";
},
// TODO: Unicode escape sequences
// TODO: Unicode identifiers
regex : "[a-zA-Z$#][a-zA-Z0-9_]*\\b"
}, {
token : "keyword.operator",
regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"
}, {
token : "lparen",
regex : "[[({]"
}, {
token : "rparen",
regex : "[\\])}]"
}, {
token : "text",
regex : "\\s+"
}
);
xmlUtil.tag(this.$rules, "tag", "start");
xmlUtil.tag(this.$rules, "style", "css-start");
xmlUtil.tag(this.$rules, "script", "js-start");
this.$rules["vm_comment"] = [
{
token : "comment", // closing comment
regex : "\\*#|-->",
next : "start"
}, {
defaultToken: "comment"
}
];
this.embedRules(JavaScriptHighlightRules, "js-", [{
token: "comment",
regex: "\\/\\/.*(?=<\\/script>)",
next: "tag"
}, {
token: "meta.tag",
regex: "<\\/(?=script)",
next: "tag"
}]);
this.embedRules(CssHighlightRules, "css-", [{
token: "meta.tag",
regex: "<\\/(?=style)",
next: "tag"
}]);
this.$rules["vm_start"] = [
{
token: "variable",
regex: "}",
next: "pop"
}, {
token : "string.regexp",
regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
}, {
token : "string", // single line
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, {
token : "string", // single line
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
token : "constant.numeric", // hex
regex : "0[xX][0-9a-fA-F]+\\b"
}, {
token : "constant.numeric", // float
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
}, {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
token : function(value) {
if (keywords.hasOwnProperty(value))
return "keyword";
else if (builtinConstants.hasOwnProperty(value))
return "constant.language";
else if (builtinVariables.hasOwnProperty(value))
return "variable.language";
else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1)))
return "support.function";
else if (value == "debugger")
return "invalid.deprecated";
else
if(value.match(/^(\$[a-zA-Z_$][a-zA-Z0-9_]*)$/))
return "variable";
return "identifier";
},
// TODO: Unicode escape sequences
// TODO: Unicode identifiers
regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
}, {
token : "keyword.operator",
regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|"
}, {
token : "lparen",
regex : "[[({]"
}, {
token : "rparen",
regex : "[\\])}]"
}, {
token : "text",
regex : "\\s+"
}
];
for (var i in this.$rules) {
this.$rules[i].unshift({
token: "variable",
regex: "\\${",
next: "vm_start"
push: "vm_start"
});
}
this.normalizeRules();
};
oop.inherits(VelocityHighlightRules, TextHighlightRules);

View file

@ -35,36 +35,181 @@ var oop = require("../lib/oop");
var xmlUtil = require("./xml_util");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var XmlHighlightRules = function() {
var XmlHighlightRules = function(normalize) {
this.$rules = {
start : [
{token : "text", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{token : "xml-pe", regex : "<\\?.*?\\?>"},
{token : "comment", regex : "<\\!--", next : "comment"},
{token : "xml-pe", regex : "<\\!.*?>"},
{token : "meta.tag", regex : "<\\/?", next : "tag"},
{token : "text", regex : "\\s+"},
{token : "punctuation.string.begin", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
token : "constant.character.entity",
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
}
token : ["punctuation.instruction.begin", "keyword.instruction"],
regex : "(<\\?)(xml)(?=[\\s])", next : "xml_declaration"
},
{
token : ["punctuation.instruction.begin", "keyword.instruction"],
regex : "(<\\?)([-_a-zA-Z0-9]+)", next : "instruction"
},
{token : "comment", regex : "<\\!--", next : "comment"},
{
token : ["punctuation.doctype.begin", "keyword.doctype"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype"
},
{include : "tag"},
{include : "reference"}
],
xml_declaration : [
{include : "attributes"},
{include : "instruction"}
],
instruction : [
{token : "punctuation.instruction.end", regex : "\\?>", next : "start"}
],
doctype : [
{include : "space"},
{include : "string"},
{token : "punctuation.doctype.end", regex : ">", next : "start"},
{token : "text", regex : "[-_a-zA-Z0-9:]+"},
{token : "punctuation.begin", regex : "\\[", push : "declarations"}
],
declarations : [{
token : "text",
regex : "\\s+"
}, {
token: "punctuation.end",
regex: "]",
next: "pop"
}, {
token : ["punctuation.begin", "keyword"],
regex : "(<\\!)([-_a-zA-Z0-9]+)",
push : [{
token : "text",
regex : "\\s+"
},
{
token : "punctuation.end",
regex : ">",
next : "pop"
},
{include : "string"}]
}],
cdata : [
{token : "text", regex : "\\]\\]>", next : "start"},
{token : "string.end", regex : "\\]\\]>", next : "start"},
{token : "text", regex : "\\s+"},
{token : "text", regex : "(?:[^\\]]|\\](?!\\]>))+"}
],
comment : [
{token : "comment", regex : ".*?-->", next : "start"},
{token : "comment", regex : ".+"}
]
{token : "comment", regex : "-->", next : "start"},
{defaultToken : "comment"}
],
tag : [{
token : ["punctuation.meta.tag.begin", "meta.tag.name"],
regex : "(<)((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)",
next: [
{include : "attributes"},
{token : "punctuation.meta.tag.end", regex : "/?>", next : "start"}
]
}, {
token : ["punctuation.meta.tag.begin", "meta.tag.name"],
regex : "(</)((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)",
next: [
{include : "space"},
{token : "punctuation.meta.tag.end", regex : ">", next : "start"}
]
}],
space : [
{token : "text", regex : "\\s+"}
],
reference : [{
token : "constant.language.escape",
regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
}, {
token : "invalid.illegal", regex : "&"
}],
string: [{
token : "string",
regex : "'",
push : "qstring_inner"
}, {
token : "string",
regex : '"',
push : "qqstring_inner"
}],
qstring_inner: [
{token : "string", regex: "'", next: "pop"},
{include : "reference"},
{defaultToken : "string"}
],
qqstring_inner: [
{token : "string", regex: '"', next: "pop"},
{include : "reference"},
{defaultToken : "string"}
],
attributes: [{
token : "entity.other.attribute-name",
regex : "(?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+"
}, {
token : "keyword.operator.separator",
regex : "="
}, {
include : "space"
}, {
include : "string"
}]
};
xmlUtil.tag(this.$rules, "tag", "start");
if (this.constructor === XmlHighlightRules)
this.normalizeRules();
};
(function() {
this.embedTagRules = function(HighlightRules, prefix, tag){
this.$rules.tag.unshift({
token : ["punctuation.meta.tag.begin." + tag, "meta.tag.name." + tag],
regex : "(<)(" + tag + ")",
next: [
{include : "space"},
{include : "attributes"},
{token : "punctuation.meta.tag.end." + tag, regex : "/?>", next : prefix + "start"}
]
});
this.$rules[tag + "-end"] = [
{include : "space"},
{token : "punctuation.meta.tag.end." + tag, regex : ">", next: "start",
onMatch : function(value, currentState, stack) {
stack.splice(0);
return this.token;
}}
]
this.embedRules(HighlightRules, prefix, [{
token: ["punctuation.meta.tag.begin." + tag, "meta.tag.name." + tag],
regex : "(</)(" + tag + ")",
next: tag + "-end"
}, {
token: "string.begin",
regex : "<\\!\\[CDATA\\["
}, {
token: "string.end",
regex : "\\]\\]>"
}]);
};
}).call(TextHighlightRules.prototype);
oop.inherits(XmlHighlightRules, TextHighlightRules);
exports.XmlHighlightRules = XmlHighlightRules;

View file

@ -63,6 +63,11 @@
color: #F92672
}
.ace-monokai .ace_punctuation,
.ace-monokai .ace_punctuation.ace_tag {
color: #fff
}
.ace-monokai .ace_constant.ace_character,
.ace-monokai .ace_constant.ace_language,
.ace-monokai .ace_constant.ace_numeric,