From 1f72461adafeb5cafe08bec2e3e7ee3d2b4c05c1 Mon Sep 17 00:00:00 2001 From: DanyaPostfactum Date: Sun, 16 Mar 2014 00:33:09 +1000 Subject: [PATCH] Modify xml highlight rules (add "xml" suffix to tokens) --- lib/ace/mode/_test/tokens_coldfusion.json | 30 +- lib/ace/mode/_test/tokens_curly.json | 66 +- lib/ace/mode/_test/tokens_ejs.json | 318 +++++----- lib/ace/mode/_test/tokens_ftl.json | 228 +++---- lib/ace/mode/_test/tokens_handlebars.json | 76 +-- lib/ace/mode/_test/tokens_html.json | 70 +-- lib/ace/mode/_test/tokens_html_ruby.json | 220 +++---- lib/ace/mode/_test/tokens_jsp.json | 344 +++++----- lib/ace/mode/_test/tokens_liquid.json | 326 +++++----- lib/ace/mode/_test/tokens_luapage.json | 662 ++++++++++---------- lib/ace/mode/_test/tokens_markdown.json | 36 +- lib/ace/mode/_test/tokens_rhtml.json | 94 +-- lib/ace/mode/_test/tokens_soy_template.json | 52 +- lib/ace/mode/_test/tokens_svg.json | 394 ++++++------ lib/ace/mode/_test/tokens_twig.json | 176 +++--- lib/ace/mode/_test/tokens_velocity.json | 62 +- lib/ace/mode/_test/tokens_xml.json | 60 +- lib/ace/mode/behaviour/coldfusion.js | 95 --- lib/ace/mode/behaviour/html.js | 48 +- lib/ace/mode/behaviour/xml.js | 124 +++- lib/ace/mode/coldfusion.js | 21 +- lib/ace/mode/folding/html.js | 35 +- lib/ace/mode/folding/xml.js | 188 +++--- lib/ace/mode/html.js | 13 +- lib/ace/mode/html_completions.js | 44 +- lib/ace/mode/html_highlight_rules.js | 36 +- lib/ace/mode/luapage.js | 2 +- lib/ace/mode/rhtml.js | 1 + lib/ace/mode/smarty.js | 6 - lib/ace/mode/smarty_highlight_rules.js | 6 +- lib/ace/mode/svg.js | 2 +- lib/ace/mode/twig.js | 18 +- lib/ace/mode/velocity.js | 7 +- lib/ace/mode/xml.js | 5 +- lib/ace/mode/xml_highlight_rules.js | 187 +++--- lib/ace/mode/xml_test.js | 2 +- 36 files changed, 1987 insertions(+), 2067 deletions(-) delete mode 100644 lib/ace/mode/behaviour/coldfusion.js diff --git a/lib/ace/mode/_test/tokens_coldfusion.json b/lib/ace/mode/_test/tokens_coldfusion.json index 02f2c3f7..804e647d 100644 --- a/lib/ace/mode/_test/tokens_coldfusion.json +++ b/lib/ace/mode/_test/tokens_coldfusion.json @@ -1,26 +1,26 @@ [[ "start", - ["comment",""] + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","cfset"], - ["text"," "], - ["entity.other.attribute-name","welcome"], - ["keyword.operator.separator","="], - ["string","\"Hello World!\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","cfset"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","welcome"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"Hello World!\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","cfoutput"], - ["meta.tag.punctuation.end",">"], - ["text","#welcome#"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","cfoutput"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","#welcome#"], + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_curly.json b/lib/ace/mode/_test/tokens_curly.json index 110574b6..d87a627a 100644 --- a/lib/ace/mode/_test/tokens_curly.json +++ b/lib/ace/mode/_test/tokens_curly.json @@ -1,56 +1,56 @@ [[ "start", - ["text","tokenize Curly template"], + ["text.xml","tokenize Curly template"], ["variable","{{"], ["text","test"], ["variable","}}"] ],[ "start", - ["text","tokenize embedded script"] + ["text.xml","tokenize embedded script"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.script","script"], - ["text"," "], - ["entity.other.attribute-name","a"], - ["keyword.operator.separator","="], - ["string","'a'"], - ["meta.tag.punctuation.end",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.script.tag-name.xml","script"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","a"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","'a'"], + ["meta.tag.punctuation.tag-close.xml",">"], ["storage.type","var"], - ["meta.tag.punctuation.begin",""], - ["text","'123'"] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml","'123'"] ],[ "start", - ["text","tokenize multiline attribute value with double quotes"] + ["text.xml","tokenize multiline attribute value with double quotes"] ],[ - ["qqstring_inner","start_tag_stuff"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\"abc{{xyz}}"] + ["string.attribute-value.xml0","tag_stuff"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"abc{{xyz}}"] ],[ "start", - ["string","def\""], - ["meta.tag.punctuation.end",">"] + ["string.attribute-value.xml","def\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","tokenize multiline attribute value with single quotes"] + ["text.xml","tokenize multiline attribute value with single quotes"] ],[ - ["qstring_inner","start_tag_stuff"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","'abc"] + ["string.attribute-value.xml","tag_stuff"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","'abc"] ],[ "start", - ["string","def\\\"'"], - ["meta.tag.punctuation.end",">"] + ["string.attribute-value.xml","def\\\"'"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_ejs.json b/lib/ace/mode/_test/tokens_ejs.json index ee0be491..7e54af91 100644 --- a/lib/ace/mode/_test/tokens_ejs.json +++ b/lib/ace/mode/_test/tokens_ejs.json @@ -1,90 +1,90 @@ [[ "start", - ["punctuation.doctype.begin",""] + ["xml-pe.doctype.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","head"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","head"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], - ["text","Cloud9 Rocks!"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Cloud9 Rocks!"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","table"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"table\""], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","table"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"table\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["text","Name"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Name"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["text","Size"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Size"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["markup.list.meta.tag","<%"], ["text"," "], ["keyword","if"], @@ -99,51 +99,51 @@ ["markup.list.meta.tag","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\"..\""], - ["meta.tag.punctuation.end",">"], - ["text",".."], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"..\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml",".."], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["markup.list.meta.tag","<%"], ["text"," "], ["paren.rparen","}"], @@ -151,7 +151,7 @@ ["markup.list.meta.tag","%>"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["markup.list.meta.tag","<%"], ["text"," "], ["identifier","entries"], @@ -168,25 +168,25 @@ ["markup.list.meta.tag","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","span"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"glyphicon "], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","span"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"glyphicon "], ["markup.list.meta.tag","<%="], ["text"," "], ["identifier","entry"], @@ -204,20 +204,20 @@ ["text"," "], ["string","'file'"], ["markup.list.meta.tag","%>"], - ["string","\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\""], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\""], ["markup.list.meta.tag","<%="], ["text"," "], ["identifier","entry"], @@ -225,8 +225,8 @@ ["identifier","name"], ["text"," "], ["markup.list.meta.tag","%>"], - ["string","\""], - ["meta.tag.punctuation.end",">"], + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["markup.list.meta.tag","<%="], ["text"," "], ["identifier","entry"], @@ -234,21 +234,21 @@ ["identifier","name"], ["text"," "], ["markup.list.meta.tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["markup.list.meta.tag","<%="], ["text"," "], ["identifier","entry"], @@ -256,18 +256,18 @@ ["identifier","size"], ["text"," "], ["markup.list.meta.tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["markup.list.meta.tag","<%"], ["text"," "], ["paren.rparen","})"], @@ -275,22 +275,22 @@ ["markup.list.meta.tag","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_ftl.json b/lib/ace/mode/_test/tokens_ftl.json index eb81f1fb..75e7a6f1 100644 --- a/lib/ace/mode/_test/tokens_ftl.json +++ b/lib/ace/mode/_test/tokens_ftl.json @@ -43,110 +43,110 @@ "start" ],[ "start", - ["punctuation.doctype.begin",""] + ["xml-pe.doctype.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["text"," "], - ["entity.other.attribute-name","lang"], - ["keyword.operator.separator","="], - ["string","\"en-us\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","lang"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"en-us\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","head"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","head"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","meta"], - ["text"," "], - ["entity.other.attribute-name","charset"], - ["keyword.operator.separator","="], - ["string","\"utf-8\""], - ["text"," "], - ["meta.tag.punctuation.end","/>"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","meta"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","charset"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"utf-8\""], + ["text.tag-whitespace.xml"," "], + ["meta.tag.punctuation.tag-close.xml","/>"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], ["string.interpolated","${"], ["variable","title"], ["keyword.operator","!"], ["string","\"FreeMarker\""], ["string.interpolated","}"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h1"], - ["meta.tag.punctuation.end",">"], - ["text","Hello "], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h1"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Hello "], ["string.interpolated","${"], ["variable","name"], ["keyword.operator","!"], ["string","\"\""], ["string.interpolated","}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","Today is: "], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Today is: "], ["string.interpolated","${"], ["language.variable",".now"], ["support.function","?date"], ["string.interpolated","}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#assign"], ["text"," "], ["variable","x"], @@ -157,7 +157,7 @@ ["keyword",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#if"], ["text"," "], ["variable","x"], @@ -174,7 +174,7 @@ ["text"," "], ["constant.numeric","14"], ["keyword",">"], - ["text","x equals 13: "], + ["text.xml","x equals 13: "], ["string.interpolated","${"], ["variable","x"], ["string.interpolated","}"], @@ -182,16 +182,16 @@ ["keyword",">"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","ul"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","ul"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#list"], ["text"," "], ["variable","items"], @@ -202,14 +202,14 @@ ["keyword",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","li"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","li"], + ["meta.tag.punctuation.tag-close.xml",">"], ["string.interpolated","${"], ["variable","item_index"], ["string.interpolated","}"], - ["text",": "], + ["text.xml",": "], ["string.interpolated","${"], ["variable","item.name"], ["keyword.operator","!"], @@ -223,26 +223,26 @@ ["constant.numeric","0"], ["paren.rparen","]"], ["string.interpolated","}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," User directive: "], + ["text.xml"," User directive: "], ["keyword.other","<@lib.function"], ["text"," "], ["variable","attr1"], @@ -257,21 +257,21 @@ ["keyword.operator","="], ["constant.numeric","-42.12"], ["keyword",">"], - ["text","Test"], + ["text.xml","Test"], ["keyword.other",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.other","<@anotherOne"], ["text"," "], ["keyword","/>"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#if"], ["text"," "], ["variable","variable"], @@ -279,10 +279,10 @@ ["keyword",">"] ],[ "start", - ["text"," Deprecated"] + ["text.xml"," Deprecated"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#elseif"], ["text"," "], ["variable","variable"], @@ -290,52 +290,52 @@ ["keyword",">"] ],[ "start", - ["text"," Better"] + ["text.xml"," Better"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function","<#else"], ["keyword",">"] ],[ "start", - ["text"," Default"] + ["text.xml"," Default"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["keyword.function",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.image","img"], - ["text"," "], - ["entity.other.attribute-name","src"], - ["keyword.operator.separator","="], - ["string","\"images/"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.image.tag-name.xml","img"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","src"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"images/"], ["string.interpolated","${"], ["variable","user.id"], ["string.interpolated","}"], - ["string",".png\""], - ["text"," "], - ["meta.tag.punctuation.end","/>"] + ["string.attribute-value.xml",".png\""], + ["text.tag-whitespace.xml"," "], + ["meta.tag.punctuation.tag-close.xml","/>"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_handlebars.json b/lib/ace/mode/_test/tokens_handlebars.json index babcd88b..ef8cb82a 100644 --- a/lib/ace/mode/_test/tokens_handlebars.json +++ b/lib/ace/mode/_test/tokens_handlebars.json @@ -7,16 +7,16 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"comments\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"comments\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["storage.type.start","{{#"], ["variable.parameter","each"], ["text"," "], @@ -24,58 +24,58 @@ ["storage.type.end","}}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\"/posts/"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"/posts/"], ["storage.type.start","{{"], ["text","../"], ["variable.parameter","permalink"], ["storage.type.end","}}"], - ["string","#"], + ["string.attribute-value.xml","#"], ["storage.type.start","{{"], ["variable.parameter","id"], ["storage.type.end","}}"], - ["string","\""], - ["meta.tag.punctuation.end",">"], + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["storage.type.start","{{"], ["variable.parameter","title"], ["storage.type.end","}}"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["meta.tag.punctuation.tag-close.xml",">"], ["storage.type.start","{{"], ["variable.parameter","body"], ["storage.type.end","}}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["storage.type.start","{{/"], ["variable.parameter","each"], ["storage.type.end","}}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_html.json b/lib/ace/mode/_test/tokens_html.json index 794ba26d..d45ae52b 100644 --- a/lib/ace/mode/_test/tokens_html.json +++ b/lib/ace/mode/_test/tokens_html.json @@ -1,51 +1,51 @@ [[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.script","script"], - ["text"," "], - ["entity.other.attribute-name","a"], - ["keyword.operator.separator","="], - ["string","'a'"], - ["meta.tag.punctuation.end",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.script.tag-name.xml","script"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","a"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","'a'"], + ["meta.tag.punctuation.tag-close.xml",">"], ["storage.type","var"], - ["meta.tag.punctuation.begin",""], - ["text","'123'"] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml","'123'"] ],[ - ["qqstring_inner","start_tag_stuff"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\"abc"] + ["string.attribute-value.xml0","tag_stuff"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"abc"] ],[ "start", - ["string"," def\""], - ["meta.tag.punctuation.end",">"] + ["string.attribute-value.xml"," def\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ - ["qstring_inner","start_tag_stuff"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","'abc"] + ["string.attribute-value.xml","tag_stuff"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","'abc"] ],[ "start", - ["string","def\\'"], - ["meta.tag.punctuation.end",">"] + ["string.attribute-value.xml","def\\'"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_html_ruby.json b/lib/ace/mode/_test/tokens_html_ruby.json index 619fb5dc..2c74ba56 100644 --- a/lib/ace/mode/_test/tokens_html_ruby.json +++ b/lib/ace/mode/_test/tokens_html_ruby.json @@ -1,82 +1,82 @@ [[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h1"], - ["meta.tag.punctuation.end",">"], - ["text","Listing Books"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h1"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Listing Books"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","table"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","table"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["text","Title"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Title"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["text","Summary"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Summary"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","th"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","th"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", ["support.ruby_tag","<%"], @@ -92,22 +92,22 @@ ["support.ruby_tag","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["comment.start.erb","<%#"], ["comment"," comment "], ["comment.end.erb","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["support.ruby_tag","<%="], ["text"," "], ["identifier","book"], @@ -115,15 +115,15 @@ ["identifier","title"], ["text"," "], ["support.ruby_tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["support.ruby_tag","<%="], ["text"," "], ["identifier","book"], @@ -131,15 +131,15 @@ ["identifier","content"], ["text"," "], ["support.ruby_tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["support.ruby_tag","<%="], ["text"," "], ["support.function","link_to"], @@ -149,15 +149,15 @@ ["identifier","book"], ["text"," "], ["support.ruby_tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["support.ruby_tag","<%="], ["text"," "], ["support.function","link_to"], @@ -170,15 +170,15 @@ ["paren.rparen",")"], ["text"," "], ["support.ruby_tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["meta.tag.punctuation.tag-close.xml",">"], ["support.ruby_tag","<%="], ["text"," "], ["support.function","link_to"], @@ -200,15 +200,15 @@ ["constant.other.symbol.ruby",":delete"], ["text"," "], ["support.ruby_tag","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["support.ruby_tag","<%"], @@ -218,21 +218,21 @@ ["support.ruby_tag","%>"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","br"], - ["text"," "], - ["meta.tag.punctuation.end","/>"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","br"], + ["text.tag-whitespace.xml"," "], + ["meta.tag.punctuation.tag-close.xml","/>"] ],[ "start", - ["text"," "] + ["text.xml"," "] ],[ "start", ["support.ruby_tag","<%="], diff --git a/lib/ace/mode/_test/tokens_jsp.json b/lib/ace/mode/_test/tokens_jsp.json index cd556e46..25d3af4d 100644 --- a/lib/ace/mode/_test/tokens_jsp.json +++ b/lib/ace/mode/_test/tokens_jsp.json @@ -1,19 +1,19 @@ [[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "js-start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.script","script"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.script.tag-name.xml","script"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "js-start", ["text"," "], @@ -40,15 +40,15 @@ ],[ "start", ["text"," "], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "css-start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.style","style"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.style.tag-name.xml","style"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ ["css-ruleset","css-start"], ["text"," "], @@ -69,20 +69,20 @@ ],[ "start", ["text"," "], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," Today's date: "], + ["text.xml"," Today's date: "], ["meta.tag","<%"], ["keyword.operator","="], ["text"," "], @@ -103,13 +103,13 @@ ["meta.tag","%>"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag","<%"], ["keyword.operator","!"], ["text"," "], @@ -124,7 +124,7 @@ ["meta.tag","%>"] ],[ "jsp-start", - ["text"," "], + ["text.xml"," "], ["meta.tag",""] ],[ "jsp-start", @@ -145,11 +145,11 @@ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["comment","<%-- This is JSP comment --%>"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag","<%@"], ["text"," "], ["identifier","directive"], @@ -163,161 +163,161 @@ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Select Languages:"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Select Languages:"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","form"], - ["text"," "], - ["entity.other.attribute-name","ACTION"], - ["keyword.operator.separator","="], - ["string","\"jspCheckBox.jsp\""], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","form"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","ACTION"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"jspCheckBox.jsp\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"checkbox\""], - ["text"," "], - ["entity.other.attribute-name","name"], - ["keyword.operator.separator","="], - ["string","\"id\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\"Java\""], - ["meta.tag.punctuation.end",">"], - ["text"," Java"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","BR"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"checkbox\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","name"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"id\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"Java\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," Java"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","BR"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"checkbox\""], - ["text"," "], - ["entity.other.attribute-name","name"], - ["keyword.operator.separator","="], - ["string","\"id\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\".NET\""], - ["meta.tag.punctuation.end",">"], - ["text"," .NET"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","BR"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"checkbox\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","name"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"id\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\".NET\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," .NET"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","BR"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"checkbox\""], - ["text"," "], - ["entity.other.attribute-name","name"], - ["keyword.operator.separator","="], - ["string","\"id\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\"PHP\""], - ["meta.tag.punctuation.end",">"], - ["text"," PHP"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","BR"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"checkbox\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","name"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"id\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"PHP\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," PHP"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","BR"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"checkbox\""], - ["text"," "], - ["entity.other.attribute-name","name"], - ["keyword.operator.separator","="], - ["string","\"id\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\"C/C++\""], - ["meta.tag.punctuation.end",">"], - ["text"," C/C++"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","BR"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"checkbox\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","name"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"id\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"C/C++\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," C/C++"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","BR"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"checkbox\""], - ["text"," "], - ["entity.other.attribute-name","name"], - ["keyword.operator.separator","="], - ["string","\"id\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\"PERL\""], - ["meta.tag.punctuation.end",">"], - ["text"," PERL "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","BR"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"checkbox\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","name"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"id\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"PERL\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," PERL "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","BR"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.form","input"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"submit\""], - ["text"," "], - ["entity.other.attribute-name","value"], - ["keyword.operator.separator","="], - ["string","\"Submit\""], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.form.tag-name.xml","input"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"submit\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","value"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"Submit\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "jsp-start", - ["text"," "], + ["text.xml"," "], ["meta.tag","<%"] ],[ "jsp-start", @@ -424,12 +424,12 @@ ["meta.tag","%>"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_liquid.json b/lib/ace/mode/_test/tokens_liquid.json index a87c051d..30d003cb 100644 --- a/lib/ace/mode/_test/tokens_liquid.json +++ b/lib/ace/mode/_test/tokens_liquid.json @@ -1,56 +1,56 @@ [[ "start", - ["text","The following examples can be found in full at http://liquidmarkup.org/"] + ["text.xml","The following examples can be found in full at http://liquidmarkup.org/"] ],[ "start" ],[ "start", - ["text","Liquid is an extraction from the e-commerce system Shopify."] + ["text.xml","Liquid is an extraction from the e-commerce system Shopify."] ],[ "start", - ["text","Shopify powers many thousands of e-commerce stores which all call for unique designs."] + ["text.xml","Shopify powers many thousands of e-commerce stores which all call for unique designs."] ],[ "start", - ["text","For this we developed Liquid which allows our customers complete design freedom while"] + ["text.xml","For this we developed Liquid which allows our customers complete design freedom while"] ],[ "start", - ["text","maintaining the integrity of our servers."] + ["text.xml","maintaining the integrity of our servers."] ],[ "start" ],[ "start", - ["text","Liquid has been in production use since June 2006 and is now used by many other"] + ["text.xml","Liquid has been in production use since June 2006 and is now used by many other"] ],[ "start", - ["text","hosted web applications."] + ["text.xml","hosted web applications."] ],[ "start" ],[ "start", - ["text","It was developed for usage in Ruby on Rails web applications and integrates seamlessly"] + ["text.xml","It was developed for usage in Ruby on Rails web applications and integrates seamlessly"] ],[ "start", - ["text","as a plugin but it also works excellently as a stand alone library."] + ["text.xml","as a plugin but it also works excellently as a stand alone library."] ],[ "start" ],[ "start", - ["text","Here's what it looks like:"] + ["text.xml","Here's what it looks like:"] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","ul"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"products\""], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","ul"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"products\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","for"], @@ -64,16 +64,16 @@ ["variable","%}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","li"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","li"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], ["variable","{{"], ["text"," "], ["identifier","product"], @@ -81,12 +81,12 @@ ["identifier","title"], ["text"," "], ["variable","}}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," Only "], + ["text.xml"," Only "], ["variable","{{"], ["text"," "], ["identifier","product"], @@ -100,10 +100,10 @@ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], ["variable","{{"], ["text"," "], ["identifier","product"], @@ -117,20 +117,20 @@ ["constant.numeric","200"], ["text"," "], ["variable","}}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endfor"], @@ -138,34 +138,34 @@ ["variable","%}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start" ],[ "start", - ["text","Some more features include:"] + ["text.xml","Some more features include:"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Filters"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Filters"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text"," The word \"tobi\" in uppercase: "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml"," The word \"tobi\" in uppercase: "], ["variable","{{"], ["text"," "], ["string","'tobi'"], @@ -173,16 +173,16 @@ ["support.function","upcase"], ["text"," "], ["variable","}}"], - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","The word \"tobi\" has "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","The word \"tobi\" has "], ["variable","{{"], ["text"," "], ["string","'tobi'"], @@ -190,16 +190,16 @@ ["support.function","size"], ["text"," "], ["variable","}}"], - ["text"," letters! "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," letters! "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","Change \"Hello world\" to \"Hi world\": "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Change \"Hello world\" to \"Hi world\": "], ["variable","{{"], ["text"," "], ["string","'Hello world'"], @@ -211,16 +211,16 @@ ["string","'Hi'"], ["text"," "], ["variable","}}"], - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","The date today is "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","The date today is "], ["variable","{{"], ["text"," "], ["string","'now'"], @@ -230,31 +230,31 @@ ["string","\"%Y %b %d\""], ["text"," "], ["variable","}}"], - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","If"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","If"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","if"], @@ -278,13 +278,13 @@ ["string","'marc'"], ["text"," "], ["variable","%}"], - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," hi marc or tobi"] + ["text.xml"," hi marc or tobi"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endif"], @@ -292,30 +292,30 @@ ["variable","%}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Case"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Case"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","case"], @@ -325,7 +325,7 @@ ["variable","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","when"], @@ -335,10 +335,10 @@ ["variable","%}"] ],[ "start", - ["text"," Welcome"] + ["text.xml"," Welcome"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","when"], @@ -348,7 +348,7 @@ ["variable","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{{"], ["text"," "], ["identifier","product"], @@ -358,7 +358,7 @@ ["identifier","link_to_vendor"], ["text"," "], ["variable","}}"], - ["text"," / "], + ["text.xml"," / "], ["variable","{{"], ["text"," "], ["identifier","product"], @@ -368,7 +368,7 @@ ["variable","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","else"], @@ -376,7 +376,7 @@ ["variable","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{{"], ["text"," "], ["identifier","page_title"], @@ -384,7 +384,7 @@ ["variable","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endcase"], @@ -392,30 +392,30 @@ ["variable","%}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","For Loops"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","For Loops"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","for"], @@ -427,10 +427,10 @@ ["identifier","array"], ["text"," "], ["variable","%}"], - ["text"," "] + ["text.xml"," "] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{{"], ["text"," "], ["identifier","item"], @@ -438,7 +438,7 @@ ["variable","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endfor"], @@ -446,30 +446,30 @@ ["variable","%}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Tables"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Tables"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","tablerow"], @@ -487,7 +487,7 @@ ["variable","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","if"], @@ -499,7 +499,7 @@ ["variable","%}"] ],[ "start", - ["text"," First column: "], + ["text.xml"," First column: "], ["variable","{{"], ["text"," "], ["identifier","item"], @@ -509,7 +509,7 @@ ["variable","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","else"], @@ -517,7 +517,7 @@ ["variable","%}"] ],[ "start", - ["text"," Different column: "], + ["text.xml"," Different column: "], ["variable","{{"], ["text"," "], ["identifier","item"], @@ -527,7 +527,7 @@ ["variable","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endif"], @@ -535,7 +535,7 @@ ["variable","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable","{%"], ["text"," "], ["keyword","endtablerow"], @@ -543,9 +543,9 @@ ["variable","%}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_luapage.json b/lib/ace/mode/_test/tokens_luapage.json index 3cee0815..1fa765dd 100644 --- a/lib/ace/mode/_test/tokens_luapage.json +++ b/lib/ace/mode/_test/tokens_luapage.json @@ -1,24 +1,24 @@ [[ "doctype", - ["text",""], - ["punctuation.doctype.begin",""] + ["text.whitespace.xml"," "], + ["string.xml","\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\""], + ["xml-pe.doctype.xml",">"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ ["lua-bracketedComment",2,"lua-start"], ["keyword","<%"], @@ -37,32 +37,32 @@ ["keyword","%>"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","head"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","head"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], - ["text","Reference"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Reference"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","link"], - ["text"," "], - ["entity.other.attribute-name","rel"], - ["keyword.operator.separator","="], - ["string","\"stylesheet\""], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\""], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","link"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","rel"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"stylesheet\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\""], ["keyword","<%="], ["identifier","luadoc"], ["text","."], @@ -75,129 +75,129 @@ ["string","\"luadoc.css\""], ["paren.rparen",")"], ["keyword","%>"], - ["string","\""], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"text/css\""], - ["text"," "], - ["meta.tag.punctuation.end","/>"] + ["string.attribute-value.xml","\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","type"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"text/css\""], + ["text.tag-whitespace.xml"," "], + ["meta.tag.punctuation.tag-close.xml","/>"] ],[ "start", - ["text","\t"], - ["comment",""] + ["text.xml","\t"], + ["comment.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"container\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"container\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"product\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"product\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"product_logo\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"product_logo\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"product_name\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","big"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","b"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"product_name\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","big"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","b"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"product_description\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"product_description\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"main\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"main\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"navigation\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"navigation\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", ["keyword","<%="], @@ -223,22 +223,22 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"content\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"content\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ @@ -267,25 +267,25 @@ ["keyword","then%>"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Modules"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Modules"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","table"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"module_list\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","table"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"module_list\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["comment",""] + ["comment.xml",""] ],[ "start", ["keyword","<%for"], @@ -306,26 +306,26 @@ ["keyword","do%>"] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","\t\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"name\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\""], + ["text.xml","\t\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"name\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\""], ["keyword","<%="], ["identifier","luadoc"], ["text","."], @@ -340,27 +340,27 @@ ["identifier","doc"], ["paren.rparen",")"], ["keyword","%>"], - ["string","\""], - ["meta.tag.punctuation.end",">"], + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["keyword","<%="], ["identifier","modulename"], ["keyword","%>"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"summary\""], - ["meta.tag.punctuation.end",">"], + ["text.xml","\t\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"summary\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["keyword","<%="], ["identifier","doc"], ["text","."], @@ -371,23 +371,23 @@ ["text","."], ["identifier","summary"], ["keyword","%>"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["keyword","<%end%>"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["keyword","<%end%>"] @@ -421,25 +421,25 @@ ["keyword","then%>"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h2"], - ["meta.tag.punctuation.end",">"], - ["text","Files"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h2"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Files"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","table"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"file_list\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","table"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"file_list\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["comment",""] + ["comment.xml",""] ],[ "start", ["keyword","<%for"], @@ -460,26 +460,26 @@ ["keyword","do%>"] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","tr"], - ["meta.tag.punctuation.end",">"] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","tr"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","\t\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"name\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\""], + ["text.xml","\t\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"name\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\""], ["keyword","<%="], ["identifier","luadoc"], ["text","."], @@ -492,44 +492,44 @@ ["identifier","filepath"], ["paren.rparen",")"], ["keyword","%>"], - ["string","\""], - ["meta.tag.punctuation.end",">"], + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["keyword","<%="], ["identifier","filepath"], ["keyword","%>"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.table","td"], - ["text"," "], - ["entity.other.attribute-name","class"], - ["keyword.operator.separator","="], - ["string","\"summary\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.table.tag-name.xml","td"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","class"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"summary\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["keyword","<%end%>"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["keyword","<%end%>"] @@ -537,97 +537,97 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","div"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"about\""], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"about\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","\t"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\"http://validator.w3.org/check?uri=referer\""], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.image","img"], - ["text"," "], - ["entity.other.attribute-name","src"], - ["keyword.operator.separator","="], - ["string","\"http://www.w3.org/Icons/valid-xhtml10\""], - ["text"," "], - ["entity.other.attribute-name","alt"], - ["keyword.operator.separator","="], - ["string","\"Valid XHTML 1.0!\""], - ["text"," "], - ["entity.other.attribute-name","height"], - ["keyword.operator.separator","="], - ["string","\"31\""], - ["text"," "], - ["entity.other.attribute-name","width"], - ["keyword.operator.separator","="], - ["string","\"88\""], - ["text"," "], - ["meta.tag.punctuation.end","/>"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["text.xml","\t"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"http://validator.w3.org/check?uri=referer\""], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.image.tag-name.xml","img"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","src"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"http://www.w3.org/Icons/valid-xhtml10\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","alt"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"Valid XHTML 1.0!\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","height"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"31\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","width"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"88\""], + ["text.tag-whitespace.xml"," "], + ["meta.tag.punctuation.tag-close.xml","/>"], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin",""], - ["text"," "], - ["comment",""], - ["text","\t"] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," "], + ["comment.xml",""], + ["text.xml","\t"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_markdown.json b/lib/ace/mode/_test/tokens_markdown.json index 05804dca..29e878b2 100644 --- a/lib/ace/mode/_test/tokens_markdown.json +++ b/lib/ace/mode/_test/tokens_markdown.json @@ -1,49 +1,49 @@ [[ "start", - ["text","test: header 1 "] + ["text.xml","test: header 1 "] ],[ "start", ["markup.heading.1","#"], ["heading","f"] ],[ "start", - ["text","test: header 2"] + ["text.xml","test: header 2"] ],[ "start", ["markup.heading.2","##"], ["heading"," foo"] ],[ "start", - ["text","test: header ends with ' #'"] + ["text.xml","test: header ends with ' #'"] ],[ "start", ["markup.heading.1","#"], ["heading"," # # "] ],[ "start", - ["text","test: header ends with '#'"] + ["text.xml","test: header ends with '#'"] ],[ "start", ["markup.heading.1","#"], ["heading","foo# "] ],[ "start", - ["text","test: 6+ #s is not a valid header"] + ["text.xml","test: 6+ #s is not a valid header"] ],[ "start", - ["text","####### foo"] + ["text.xml","####### foo"] ],[ "start", - ["text","test: # followed be only space is not a valid header"] + ["text.xml","test: # followed be only space is not a valid header"] ],[ "start", - ["text","# "] + ["text.xml","# "] ],[ "start", - ["text","test: only space between #s is not a valid header"] + ["text.xml","test: only space between #s is not a valid header"] ],[ "start", - ["text","# #"] + ["text.xml","# #"] ],[ "allowBlock" ],[ @@ -99,14 +99,14 @@ "start" ],[ "start", - ["text","in plain text "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","b"], - ["meta.tag.punctuation.end",">"], - ["text","http://ace.ajaxorg.com"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","b"], - ["meta.tag.punctuation.end",">"] + ["text.xml","in plain text "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","b"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","http://ace.ajaxorg.com"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","b"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "allowBlock" ],[ diff --git a/lib/ace/mode/_test/tokens_rhtml.json b/lib/ace/mode/_test/tokens_rhtml.json index 6dca1c51..a536f851 100644 --- a/lib/ace/mode/_test/tokens_rhtml.json +++ b/lib/ace/mode/_test/tokens_rhtml.json @@ -1,55 +1,55 @@ [[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","head"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","head"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], - ["text","Title"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Title"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","This is an R HTML document. When you click the "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","b"], - ["meta.tag.punctuation.end",">"], - ["text","Knit HTML"], - ["meta.tag.punctuation.begin",""], - ["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.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","This is an R HTML document. When you click the "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","b"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Knit HTML"], + ["meta.tag.punctuation.end-tag-open.xml",""], + ["text.xml"," 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.punctuation.end-tag-open.xml",""] ],[ "start" ],[ @@ -68,13 +68,13 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","p"], - ["meta.tag.punctuation.end",">"], - ["text","You can also embed plots, for example:"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","p"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","You can also embed plots, for example:"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ @@ -93,14 +93,14 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_soy_template.json b/lib/ace/mode/_test/tokens_soy_template.json index f100dd6b..46ea77fa 100644 --- a/lib/ace/mode/_test/tokens_soy_template.json +++ b/lib/ace/mode/_test/tokens_soy_template.json @@ -32,7 +32,7 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","if"], ["meta.tag.if.soy"," "], @@ -42,31 +42,31 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," Hello "], + ["text.xml"," Hello "], ["punctuation.definition.tag.begin.soy","{"], ["variable.other.soy","$name"], ["punctuation.definition.tag.end.soy","}"], - ["text","!"] + ["text.xml","!"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["text","else"], ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["variable.other.soy","$greetingWord"], ["punctuation.definition.tag.end.soy","}"], - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["variable.other.soy","$name"], ["punctuation.definition.tag.end.soy","}"], - ["text","!"] + ["text.xml","!"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{/"], ["entity.name.tag.soy","if"], ["punctuation.definition.tag.end.soy","}"] @@ -115,7 +115,7 @@ ["comment.line.double-slash.soy"," Greet the person."] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","call"], ["variable.parameter.soy"," .helloName"], @@ -125,9 +125,9 @@ ["string.quoted.double","\"all\""], ["meta.tag.call.soy"," /"], ["punctuation.definition.tag.end.soy","}"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","br"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","br"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", ["comment.line.double-slash.soy"," "], @@ -135,7 +135,7 @@ ["comment.line.double-slash.soy"," Greet the additional people."] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","foreach"], ["meta.tag.foreach.soy"," "], @@ -147,14 +147,14 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","call"], ["variable.parameter.soy"," .helloName"], ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","param"], ["text"," "], @@ -167,13 +167,13 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{/"], ["meta.tag.call.soy","call"], ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["entity.name.tag.soy","if"], ["meta.tag.if.soy"," "], @@ -186,31 +186,31 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","br"], - ["meta.tag.punctuation.end",">"], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","br"], + ["meta.tag.punctuation.tag-close.xml",">"], ["comment.line.double-slash.soy"," "], ["punctuation.definition.comment.soy","//"], ["comment.line.double-slash.soy"," break after every line except the last"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{/"], ["entity.name.tag.soy","if"], ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{"], ["text","ifempty"], ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," No additional people to greet."] + ["text.xml"," No additional people to greet."] ],[ "start", - ["text"," "], + ["text.xml"," "], ["punctuation.definition.tag.begin.soy","{/"], ["entity.name.tag.soy","foreach"], ["punctuation.definition.tag.end.soy","}"] @@ -275,7 +275,7 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["text"," foo is "], + ["text.xml"," foo is "], ["punctuation.definition.tag.begin.soy","{"], ["variable.other.soy","$ij.foo"], ["punctuation.definition.tag.end.soy","}"] diff --git a/lib/ace/mode/_test/tokens_svg.json b/lib/ace/mode/_test/tokens_svg.json index f92fbbb6..66ebae75 100644 --- a/lib/ace/mode/_test/tokens_svg.json +++ b/lib/ace/mode/_test/tokens_svg.json @@ -1,65 +1,65 @@ [[ - "meta.tag.punctuation.begin0", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","svg"] + "meta.tag.punctuation.tag-open.xml1", + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","svg"] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","width"], - ["keyword.operator.separator","="], - ["string","\"800\""], - ["text"," "], - ["entity.other.attribute-name","height"], - ["keyword.operator.separator","="], - ["string","\"600\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","width"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"800\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","height"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"600\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","xmlns"], - ["keyword.operator.separator","="], - ["string","\"http://www.w3.org/2000/svg\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","xmlns"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"http://www.w3.org/2000/svg\""] ],[ "start", - ["text"," "], - ["entity.other.attribute-name","onload"], - ["keyword.operator.separator","="], - ["string","\"StartAnimation(evt)\""], - ["meta.tag.punctuation.end",">"] + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","onload"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"StartAnimation(evt)\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start" ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], - ["text","Test Tube Progress Bar"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Test Tube Progress Bar"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","desc"], - ["meta.tag.punctuation.end",">"], - ["text","Created for the Web Directions SVG competition"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","desc"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","Created for the Web Directions SVG competition"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "js-no_regex", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.script","script"], - ["text"," "], - ["entity.other.attribute-name","type"], - ["keyword.operator.separator","="], - ["string","\"text/ecmascript\""], - ["meta.tag.punctuation.end",">"], - ["string.begin",""], + ["string.cdata.xml",""], - ["meta.tag.punctuation.begin",""] + ["string.cdata.xml","]]>"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","rect"] + "meta.tag.punctuation.tag-open.xml1", + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","rect"] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","fill"], - ["keyword.operator.separator","="], - ["string","\"#2e3436\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","fill"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"#2e3436\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","fill-rule"], - ["keyword.operator.separator","="], - ["string","\"nonzero\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","fill-rule"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"nonzero\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","stroke-width"], - ["keyword.operator.separator","="], - ["string","\"3\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","stroke-width"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"3\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","y"], - ["keyword.operator.separator","="], - ["string","\"0\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","y"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"0\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","x"], - ["keyword.operator.separator","="], - ["string","\"0\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","x"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"0\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","height"], - ["keyword.operator.separator","="], - ["string","\"600\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","height"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"600\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","width"], - ["keyword.operator.separator","="], - ["string","\"800\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","width"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"800\""] ],[ "start", - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"rect3590\""], - ["meta.tag.punctuation.end","/>"] + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"rect3590\""], + ["meta.tag.punctuation.tag-close.xml","/>"] ],[ "start" ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","text"] + "meta.tag.punctuation.tag-open.xml1", + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","text"] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","style"], - ["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\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","style"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"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\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","x"], - ["keyword.operator.separator","="], - ["string","\"50\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","x"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"50\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","y"], - ["keyword.operator.separator","="], - ["string","\"350\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","y"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"350\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"hickory\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"hickory\""] ],[ "start", - ["text"," "], - ["entity.other.attribute-name","display"], - ["keyword.operator.separator","="], - ["string","\"none\""], - ["meta.tag.punctuation.end",">"] + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","display"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"none\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," Hickory,"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," Hickory,"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","text"] + "meta.tag.punctuation.tag-open.xml1", + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","text"] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","style"], - ["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\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","style"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"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\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","x"], - ["keyword.operator.separator","="], - ["string","\"50\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","x"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"50\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","y"], - ["keyword.operator.separator","="], - ["string","\"350\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","y"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"350\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"dickory\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"dickory\""] ],[ "start", - ["text"," "], - ["entity.other.attribute-name","display"], - ["keyword.operator.separator","="], - ["string","\"none\""], - ["meta.tag.punctuation.end",">"] + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","display"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"none\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," dickory,"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," dickory,"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","text"] + "meta.tag.punctuation.tag-open.xml1", + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","text"] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","style"], - ["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\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","style"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"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\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","x"], - ["keyword.operator.separator","="], - ["string","\"50\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","x"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"50\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","y"], - ["keyword.operator.separator","="], - ["string","\"350\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","y"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"350\""] ],[ - "meta.tag.punctuation.begin0", - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"dock\""] + "meta.tag.punctuation.tag-open.xml1", + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"dock\""] ],[ "start", - ["text"," "], - ["entity.other.attribute-name","display"], - ["keyword.operator.separator","="], - ["string","\"none\""], - ["meta.tag.punctuation.end",">"] + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","display"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"none\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," dock!"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," dock!"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_twig.json b/lib/ace/mode/_test/tokens_twig.json index c4101ded..ada8b4a7 100644 --- a/lib/ace/mode/_test/tokens_twig.json +++ b/lib/ace/mode/_test/tokens_twig.json @@ -1,56 +1,56 @@ [[ "start", - ["punctuation.doctype.begin",""] + ["xml-pe.doctype.xml",""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","html"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","html"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","head"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","head"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","title"], - ["meta.tag.punctuation.end",">"], - ["text","My Webpage"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","title"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","My Webpage"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","body"], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","body"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","ul"], - ["text"," "], - ["entity.other.attribute-name","id"], - ["keyword.operator.separator","="], - ["string","\"navigation\""], - ["meta.tag.punctuation.end",">"] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","ul"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","id"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"navigation\""], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","for"], @@ -64,16 +64,16 @@ ["meta.tag.twig","%}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","li"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.anchor","a"], - ["text"," "], - ["entity.other.attribute-name","href"], - ["keyword.operator.separator","="], - ["string","\""], + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","li"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.anchor.tag-name.xml","a"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","href"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\""], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","item"], @@ -83,8 +83,8 @@ ["support.function.twig","escape"], ["text"," "], ["variable.other.readwrite.local.twig","}}"], - ["string","\""], - ["meta.tag.punctuation.end",">"], + ["string.attribute-value.xml","\""], + ["meta.tag.punctuation.tag-close.xml",">"], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","item"], @@ -92,15 +92,15 @@ ["identifier","caption"], ["text"," "], ["variable.other.readwrite.local.twig","}}"], - ["meta.tag.punctuation.begin",""], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","endfor"], @@ -108,15 +108,15 @@ ["meta.tag.twig","%}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","if"], @@ -142,11 +142,11 @@ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["comment.block.twig","{# is equivalent to #}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","if"], @@ -173,7 +173,7 @@ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","autoescape"], @@ -183,7 +183,7 @@ ["meta.tag.twig","%}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","var"], @@ -191,7 +191,7 @@ ["variable.other.readwrite.local.twig","}}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","var"], @@ -199,11 +199,11 @@ ["support.function.twig","raw"], ["text"," "], ["variable.other.readwrite.local.twig","}}"], - ["text"," "], + ["text.xml"," "], ["comment.block.twig","{# var won't be escaped #}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","var"], @@ -211,11 +211,11 @@ ["support.function.twig","escape"], ["text"," "], ["variable.other.readwrite.local.twig","}}"], - ["text"," "], + ["text.xml"," "], ["comment.block.twig","{# var won't be doubled-escaped #}"] ],[ "start", - ["text"," "], + ["text.xml"," "], ["meta.tag.twig","{%"], ["text"," "], ["keyword.control.twig","endautoescape"], @@ -225,7 +225,7 @@ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["keyword.control.twig","include"], @@ -245,7 +245,7 @@ "start" ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["string","\"string "], ["constant.language.escape","#{with}"], @@ -258,17 +258,17 @@ ["variable.other.readwrite.local.twig","}}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","h1"], - ["meta.tag.punctuation.end",">"], - ["text","My Webpage"], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","h1"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","My Webpage"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text"," "], + ["text.xml"," "], ["variable.other.readwrite.local.twig","{{"], ["text"," "], ["identifier","a_variable"], @@ -276,13 +276,13 @@ ["variable.other.readwrite.local.twig","}}"] ],[ "start", - ["text"," "], - ["meta.tag.punctuation.begin",""] + ["text.xml"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_velocity.json b/lib/ace/mode/_test/tokens_velocity.json index 3eb7a9ab..ee40761c 100644 --- a/lib/ace/mode/_test/tokens_velocity.json +++ b/lib/ace/mode/_test/tokens_velocity.json @@ -26,15 +26,15 @@ ],[ "start", ["text"," "], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","li"], - ["meta.tag.punctuation.end",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","li"], + ["meta.tag.punctuation.tag-close.xml",">"], ["variable","${"], ["identifier","item"], ["variable","}"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", ["keyword","#end"] @@ -55,11 +55,14 @@ ["text"," "], ["lparen","["], ["constant.numeric","1"], - ["text",", "], + ["text.xml",","], + ["text"," "], ["constant.numeric","2"], - ["text",", "], + ["text.xml",","], + ["text"," "], ["constant.numeric","3"], - ["text",", "], + ["text.xml",","], + ["text"," "], ["constant.numeric","4"], ["rparen","]"], ["text"," "], @@ -68,9 +71,9 @@ "start" ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","ul"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","ul"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", ["text"," "], @@ -97,11 +100,12 @@ ["lparen","("], ["text"," "], ["support.function","$_MathTool"], - ["text","."], + ["text.xml","."], ["identifier","mod"], ["lparen","("], ["variable","$item"], - ["text",", "], + ["text.xml",","], + ["text"," "], ["constant.numeric","2"], ["rparen",")"], ["text"," "], @@ -128,16 +132,16 @@ ["keyword","#end"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "js-start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.script","script"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.script.tag-name.xml","script"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "js-comment_regex_allowed", ["text"," "], @@ -216,16 +220,16 @@ ["paren.rparen","}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start" ],[ "css-start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name.style","style"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.style.tag-name.xml","style"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ ["css-comment","css-start"], ["text"," "], @@ -275,7 +279,7 @@ ["paren.rparen","}"] ],[ "start", - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_xml.json b/lib/ace/mode/_test/tokens_xml.json index 70f73093..728be4db 100644 --- a/lib/ace/mode/_test/tokens_xml.json +++ b/lib/ace/mode/_test/tokens_xml.json @@ -1,43 +1,43 @@ [[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","Juhu"], - ["meta.tag.punctuation.end",">"], - ["text","//Juhu Kinners"], - ["meta.tag.punctuation.begin",""] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","Juhu"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["text.xml","//Juhu Kinners"], + ["meta.tag.punctuation.end-tag-open.xml",""] ],[ "start", - ["text","test: two tags in the same lines should be in separate tokens\""] + ["text.xml","test: two tags in the same lines should be in separate tokens\""] ],[ "start", - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","Juhu"], - ["meta.tag.punctuation.end",">"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","Kinners"], - ["meta.tag.punctuation.end",">"] + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","Juhu"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","Kinners"], + ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["text","test: multiline attributes\""] + ["text.xml","test: multiline attributes\""] ],[ - ["qqstring_inner","meta.tag.punctuation.begin"], - ["meta.tag.punctuation.begin","<"], - ["meta.tag.name","copy"], - ["text"," "], - ["entity.other.attribute-name","set"], - ["keyword.operator.separator","="], - ["string","\"{"] + ["string.attribute-value.xml0","meta.tag.punctuation.tag-open.xml"], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","copy"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","set"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"{"] ],[ - ["qqstring_inner","meta.tag.punctuation.begin"], - ["string","}\""], - ["text"," "], - ["entity.other.attribute-name","undo"], - ["keyword.operator.separator","="], - ["string","\"{"] + ["string.attribute-value.xml0","meta.tag.punctuation.tag-open.xml"], + ["string.attribute-value.xml","}\""], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","undo"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"{"] ],[ "start", - ["string","}\""], - ["meta.tag.punctuation.end","/>"] + ["string.attribute-value.xml","}\""], + ["meta.tag.punctuation.tag-close.xml","/>"] ]] \ No newline at end of file diff --git a/lib/ace/mode/behaviour/coldfusion.js b/lib/ace/mode/behaviour/coldfusion.js deleted file mode 100644 index d692e20e..00000000 --- a/lib/ace/mode/behaviour/coldfusion.js +++ /dev/null @@ -1,95 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Distributed under the BSD license: - * - * Copyright (c) 2010, Ajax.org B.V. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Ajax.org B.V. nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ***** END LICENSE BLOCK ***** */ - -define(function(require, exports, module) { -"use strict"; - -var oop = require("../../lib/oop"); -var XmlBehaviour = require("../behaviour/xml").XmlBehaviour; -var CstyleBehaviour = require("./cstyle").CstyleBehaviour; -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; - } - }); - return hasType; -} - -var CfmlBehaviour = function () { - - this.inherit(XmlBehaviour); // Get xml behaviour - - this.add("autoclosing", "insertion", function (state, action, editor, session, text) { - if (text == '>') { - var position = editor.getCursorPosition(); - var iterator = new TokenIterator(session, position.row, position.column); - var token = iterator.getCurrentToken(); - - if (token && hasType(token, 'meta.tag.name') && /^cf+(abort|application|argument|associate|break|cache|collection|cookie|dbinfo|directory|dump|else|elseif|error|exchangecalendar|exchangeconnection|exchangecontact|exchangefilter|exchangetask|exit|feed|file|flush|ftp|header|htmlhead|httpparam|image|import|include|index|insert|invokeargument|location|log|mailparam|NTauthenticate|object|objectcache|param|pdfformparam|print|procparam|procresult|property|queryparam|registry|reportparam|rethrow|return|schedule|search|set|setting|throw|zipparam)$/gi.test(token.value)) - return; - if (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 { - token = iterator.stepBackward(); - } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); - } else { - atCursor = true; - } - if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) { - return - } - var element = token.value; - if (atCursor){ - var element = element.substring(0, position.column - token.start); - } - if (voidElements.indexOf(element) !== -1){ - return; - } - return { - text: '>' + '', - selection: [1, 1] - } - } - }); -} -oop.inherits(CfmlBehaviour, XmlBehaviour); - -exports.CfmlBehaviour = CfmlBehaviour; -}); diff --git a/lib/ace/mode/behaviour/html.js b/lib/ace/mode/behaviour/html.js index 1d500e0f..181655c0 100644 --- a/lib/ace/mode/behaviour/html.js +++ b/lib/ace/mode/behaviour/html.js @@ -33,55 +33,13 @@ define(function(require, exports, module) { var oop = require("../../lib/oop"); var XmlBehaviour = require("../behaviour/xml").XmlBehaviour; -var CstyleBehaviour = require("./cstyle").CstyleBehaviour; -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 tokenTypes = token.type.split('.'); - return type.split('.').every(function(type){ - return (tokenTypes.indexOf(type) !== -1); - }); - return hasType; -} var HtmlBehaviour = function () { - this.inherit(XmlBehaviour); // Get xml behaviour - - this.add("autoclosing", "insertion", function (state, action, editor, session, text) { - if (text == '>') { - var position = editor.getCursorPosition(); - var iterator = new TokenIterator(session, position.row, position.column); - var token = iterator.getCurrentToken(); + XmlBehaviour.call(this); + +}; - 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 { - token = iterator.stepBackward(); - } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); - } else { - atCursor = true; - } - if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) { - return; - } - var element = token.value; - if (atCursor){ - var element = element.substring(0, position.column - token.start); - } - if (voidElements.indexOf(element) !== -1){ - return; - } - return { - text: '>' + '', - selection: [1, 1] - } - } - }); -} oop.inherits(HtmlBehaviour, XmlBehaviour); exports.HtmlBehaviour = HtmlBehaviour; diff --git a/lib/ace/mode/behaviour/xml.js b/lib/ace/mode/behaviour/xml.js index 47261306..bd0574c6 100644 --- a/lib/ace/mode/behaviour/xml.js +++ b/lib/ace/mode/behaviour/xml.js @@ -33,49 +33,116 @@ define(function(require, exports, module) { var oop = require("../../lib/oop"); var Behaviour = require("../behaviour").Behaviour; -var CstyleBehaviour = require("./cstyle").CstyleBehaviour; var TokenIterator = require("../../token_iterator").TokenIterator; -function hasType(token, type) { - var tokenTypes = token.type.split('.'); - return type.split('.').every(function(type){ - return (tokenTypes.indexOf(type) !== -1); - }); - return hasType; +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; } var XmlBehaviour = function () { - - this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour - + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + // Ignore input and move right one if we're typing over the closing quote. + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { if (text == '>') { var position = editor.getCursorPosition(); var iterator = new TokenIterator(session, position.row, position.column); - var token = iterator.getCurrentToken(); + var token = iterator.getCurrentToken() || iterator.stepBackward(); - if (token && hasType(token, 'string') && iterator.getCurrentTokenColumn() + token.value.length > position.column) + // exit if we're not in a tag + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) return; - var atCursor = false; - if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){ - do { - token = iterator.stepBackward(); - } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); - } else { - atCursor = true; - } - if (!token || !hasType(token, 'meta.tag.name') || iterator.stepBackward().value.match('/')) { + + // exit if we're inside of a quoted attribute value + if (is(token, "reference.attribute-value")) return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } } - var tag = token.value; - if (atCursor){ - var tag = tag.substring(0, position.column - token.start); + + // find tag name + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); } + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + + // exit if the tag is ending + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + return { - text: '>' + '', + text: '>' + '', selection: [1, 1] - } + }; } }); @@ -91,12 +158,13 @@ var XmlBehaviour = function () { return { text: '\n' + indent + '\n' + next_indent, selection: [1, indent.length, 1, indent.length] - } + }; } } }); -} +}; + oop.inherits(XmlBehaviour, Behaviour); exports.XmlBehaviour = XmlBehaviour; diff --git a/lib/ace/mode/coldfusion.js b/lib/ace/mode/coldfusion.js index 16527f26..bc8656a4 100644 --- a/lib/ace/mode/coldfusion.js +++ b/lib/ace/mode/coldfusion.js @@ -32,28 +32,25 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); -var XmlMode = require("./xml").Mode; -var JavaScriptMode = require("./javascript").Mode; -var CssMode = require("./css").Mode; +var lang = require("../lib/lang"); +var HtmlMode = require("./html").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var ColdfusionHighlightRules = require("./coldfusion_highlight_rules").ColdfusionHighlightRules; -var CfmlBehaviour = require("./behaviour/coldfusion").CfmlBehaviour; + +var voidElements = "cfabort|cfapplication|cfargument|cfassociate|cfbreak|cfcache|cfcollection|cfcookie|cfdbinfo|cfdirectory|cfdump|cfelse|cfelseif|cferror|cfexchangecalendar|cfexchangeconnection|cfexchangecontact|cfexchangefilter|cfexchangetask|cfexit|cffeed|cffile|cfflush|cfftp|cfheader|cfhtmlhead|cfhttpparam|cfimage|cfimport|cfinclude|cfindex|cfinsert|cfinvokeargument|cflocation|cflog|cfmailparam|cfNTauthenticate|cfobject|cfobjectcache|cfparam|cfpdfformparam|cfprint|cfprocparam|cfprocresult|cfproperty|cfqueryparam|cfregistry|cfreportparam|cfrethrow|cfreturn|cfschedule|cfsearch|cfset|cfsetting|cfthrow|cfzipparam)".split("|"); var Mode = function() { - XmlMode.call(this); + HtmlMode.call(this); this.HighlightRules = ColdfusionHighlightRules; - this.$behaviour = new CfmlBehaviour(); - - this.createModeDelegates({ - "js-": JavaScriptMode, - "css-": CssMode - }); }; -oop.inherits(Mode, XmlMode); +oop.inherits(Mode, HtmlMode); (function() { + // mix with html void elements + this.voidElements = oop.mixin(lang.arrayToMap(voidElements), this.voidElements); + this.getNextLineIndent = function(state, line, tab) { return this.$getIndent(line); }; diff --git a/lib/ace/mode/folding/html.js b/lib/ace/mode/folding/html.js index fbfa1e9e..5edbe0b8 100644 --- a/lib/ace/mode/folding/html.js +++ b/lib/ace/mode/folding/html.js @@ -36,39 +36,8 @@ var MixedFoldMode = require("./mixed").FoldMode; var XmlFoldMode = require("./xml").FoldMode; var CStyleFoldMode = require("./cstyle").FoldMode; -var FoldMode = exports.FoldMode = function() { - MixedFoldMode.call(this, new XmlFoldMode({ - // void elements - "area": 1, - "base": 1, - "br": 1, - "col": 1, - "command": 1, - "embed": 1, - "hr": 1, - "img": 1, - "input": 1, - "keygen": 1, - "link": 1, - "meta": 1, - "param": 1, - "source": 1, - "track": 1, - "wbr": 1, - - // optional tags - "li": 1, - "dt": 1, - "dd": 1, - "p": 1, - "rt": 1, - "rp": 1, - "optgroup": 1, - "option": 1, - "colgroup": 1, - "td": 1, - "th": 1 - }), { +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { "js-": new CStyleFoldMode(), "css-": new CStyleFoldMode() }); diff --git a/lib/ace/mode/folding/xml.js b/lib/ace/mode/folding/xml.js index 5e8e4b9a..93c40572 100644 --- a/lib/ace/mode/folding/xml.js +++ b/lib/ace/mode/folding/xml.js @@ -37,62 +37,98 @@ var Range = require("../../range").Range; var BaseFoldMode = require("./fold_mode").FoldMode; var TokenIterator = require("../../token_iterator").TokenIterator; -var FoldMode = exports.FoldMode = function(voidElements) { +var FoldMode = exports.FoldMode = function(voidElements, optionalEndTags) { BaseFoldMode.call(this); - this.voidElements = voidElements || {}; + // TODO folding support for optional end tags + this.voidElements = oop.mixin(voidElements || {}, optionalEndTags || {}); }; oop.inherits(FoldMode, BaseFoldMode); +var Tag = function() { + this.tagName = ""; + this.closing = false; + this.selfClosing = false; + this.start = {row: 0, column: 0}; + this.end = {row: 0, column: 0}; +}; + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + (function() { this.getFoldWidget = function(session, foldStyle, row) { var tag = this._getFirstTagInLine(session, row); - if (tag.closing) + if (!tag) + return ""; + + if (tag.closing || (!tag.tagName && tag.selfClosing)) return foldStyle == "markbeginend" ? "end" : ""; - if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()]) + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) return ""; - if (tag.selfClosing) - return ""; - - if (tag.value.indexOf("/" + tag.tagName) !== -1) + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) return ""; return "start"; }; - + + /* + * returns a first tag (or a fragment) in a line + */ this._getFirstTagInLine = function(session, row) { var tokens = session.getTokens(row); - var value = ""; + var tag = new Tag(); + for (var i = 0; i < tokens.length; i++) { var token = tokens[i]; - if (token.type.lastIndexOf("meta.tag", 0) === 0) - value += token.value; - else - value += lang.stringRepeat(" ", token.value.length); + if (is(token, "tag-open")) { + tag.end.column = tag.start.column + token.value.length; + tag.closing = is(token, "end-tag-open"); + token = tokens[++i]; + if (!token) + return null; + tag.tagName = token.value; + tag.end.column += token.value.length; + for (i++; i < tokens.length; i++) { + token = tokens[i]; + tag.end.column += token.value.length; + if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; } - - return this._parseTag(value); + + return null; }; - this.tagRe = /^(\s*)(?)/; - this._parseTag = function(tag) { - - var match = tag.match(this.tagRe); + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); var column = 0; - - return { - value: tag, - match: match ? match[2] : "", - closing: match ? !!match[3] : false, - selfClosing: match ? !!match[5] || match[2] == "/>" : false, - tagName: match ? match[4] : "", - column: match[1] ? column + match[1].length : column - }; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; }; - + /* * reads a full tag and places the iterator after the tag */ @@ -100,32 +136,24 @@ oop.inherits(FoldMode, BaseFoldMode); var token = iterator.getCurrentToken(); if (!token) return null; - - var value = ""; - var start; - + + var tag = new Tag(); do { - if (token.type.lastIndexOf("meta.tag", 0) === 0) { - if (!start) { - var start = { - row: iterator.getCurrentTokenRow(), - column: iterator.getCurrentTokenColumn() - }; - } - value += token.value; - if (value.indexOf(">") !== -1) { - var tag = this._parseTag(value); - tag.start = start; - tag.end = { - row: iterator.getCurrentTokenRow(), - column: iterator.getCurrentTokenColumn() + token.value.length - }; - iterator.stepForward(); - return tag; - } + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; } } while(token = iterator.stepForward()); - + return null; }; @@ -133,32 +161,24 @@ oop.inherits(FoldMode, BaseFoldMode); var token = iterator.getCurrentToken(); if (!token) return null; - - var value = ""; - var end; + var tag = new Tag(); do { - if (token.type.lastIndexOf("meta.tag", 0) === 0) { - if (!end) { - end = { - row: iterator.getCurrentTokenRow(), - column: iterator.getCurrentTokenColumn() + token.value.length - }; - } - value = token.value + value; - if (value.indexOf("<") !== -1) { - var tag = this._parseTag(value); - tag.end = end; - tag.start = { - row: iterator.getCurrentTokenRow(), - column: iterator.getCurrentTokenColumn() - }; - iterator.stepBackward(); - return tag; - } + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; } } while(token = iterator.stepBackward()); - + return null; }; @@ -169,10 +189,10 @@ oop.inherits(FoldMode, BaseFoldMode); if (!tag || top.tagName == tag.tagName) { return stack.pop(); } - else if (this.voidElements[tag.tagName]) { + else if (this.voidElements.hasOwnProperty(tag.tagName)) { return; } - else if (this.voidElements[top.tagName]) { + else if (this.voidElements.hasOwnProperty(top.tagName)) { stack.pop(); continue; } else { @@ -184,7 +204,7 @@ oop.inherits(FoldMode, BaseFoldMode); this.getFoldWidgetRange = function(session, foldStyle, row) { var firstTag = this._getFirstTagInLine(session, row); - if (!firstTag.match) + if (!firstTag) return null; var isBackward = firstTag.closing || firstTag.selfClosing; @@ -192,10 +212,10 @@ oop.inherits(FoldMode, BaseFoldMode); var tag; if (!isBackward) { - var iterator = new TokenIterator(session, row, firstTag.column); + var iterator = new TokenIterator(session, row, firstTag.start.column); var start = { row: row, - column: firstTag.column + firstTag.tagName.length + 2 + column: firstTag.start.column + firstTag.tagName.length + 2 }; while (tag = this._readTagForward(iterator)) { if (tag.selfClosing) { @@ -213,15 +233,15 @@ oop.inherits(FoldMode, BaseFoldMode); return Range.fromPoints(start, tag.start); } else { - stack.push(tag) + stack.push(tag); } } } else { - var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var iterator = new TokenIterator(session, row, firstTag.end.column); var end = { row: row, - column: firstTag.column + column: firstTag.start.column }; while (tag = this._readTagBackward(iterator)) { @@ -242,7 +262,7 @@ oop.inherits(FoldMode, BaseFoldMode); } } else { - stack.push(tag) + stack.push(tag); } } } diff --git a/lib/ace/mode/html.js b/lib/ace/mode/html.js index bc85dd5e..ab202a70 100644 --- a/lib/ace/mode/html.js +++ b/lib/ace/mode/html.js @@ -32,20 +32,25 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); +var lang = require("../lib/lang"); var TextMode = require("./text").Mode; var JavaScriptMode = require("./javascript").Mode; var CssMode = require("./css").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; -var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; var HtmlFoldMode = require("./folding/html").FoldMode; var HtmlCompletions = require("./html_completions").HtmlCompletions; var WorkerClient = require("../worker/worker_client").WorkerClient; +// http://www.w3.org/TR/html5/syntax.html#void-elements +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + var Mode = function(options) { this.fragmentContext = options && options.fragmentContext; this.HighlightRules = HtmlHighlightRules; - this.$behaviour = new HtmlBehaviour(); + this.$behaviour = new XmlBehaviour(); this.$completer = new HtmlCompletions(); this.createModeDelegates({ @@ -53,7 +58,7 @@ var Mode = function(options) { "css-": CssMode }); - this.foldingRules = new HtmlFoldMode(); + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); }; oop.inherits(Mode, TextMode); @@ -61,6 +66,8 @@ oop.inherits(Mode, TextMode); this.blockComment = {start: ""}; + this.voidElements = lang.arrayToMap(voidElements); + this.getNextLineIndent = function(state, line, tab) { return this.$getIndent(line); }; diff --git a/lib/ace/mode/html_completions.js b/lib/ace/mode/html_completions.js index 283b7137..12adb320 100644 --- a/lib/ace/mode/html_completions.js +++ b/lib/ace/mode/html_completions.js @@ -43,6 +43,12 @@ var commonAttributes = [ "dropzone", "hidden", "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", "lang", "spellcheck", "style", @@ -226,24 +232,19 @@ var attributeMap = { "dialog": ["open"] }; -var allElements = Object.keys(attributeMap); +var elements = Object.keys(attributeMap); -function hasType(token, type) { - var tokenTypes = token.type.split('.'); - return type.split('.').every(function(type){ - return (tokenTypes.indexOf(type) !== -1); - }); +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; } function findTagName(session, pos) { var iterator = new TokenIterator(session, pos.row, pos.column); var token = iterator.getCurrentToken(); - if (!token || !hasType(token, 'tag') && !(hasType(token, 'text') && token.value.match('/'))){ - do { - token = iterator.stepBackward(); - } while (token && (hasType(token, 'string') || hasType(token, 'operator') || hasType(token, 'attribute-name') || hasType(token, 'text'))); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); } - if (token && hasType(token, 'tag-name') && !iterator.stepBackward().value.match('/')) + if (token) return token.value; } @@ -260,27 +261,22 @@ var HtmlCompletions = function() { return []; // tag name - if (hasType(token, "tag-name") || (token.value == '<' && hasType(token, "text"))) + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) return this.getTagCompletions(state, session, pos, prefix); // tag attribute - if (hasType(token, 'text') || hasType(token, 'attribute-name')) + if (is(token, "tag-whitespace") || is(token, "attribute-name")) return this.getAttributeCompetions(state, session, pos, prefix); return []; }; this.getTagCompletions = function(state, session, pos, prefix) { - var elements = allElements; - if (prefix) { - elements = elements.filter(function(element){ - return element.indexOf(prefix) === 0; - }); - } return elements.map(function(element){ return { value: element, - meta: "tag" + meta: "tag", + score: Number.MAX_VALUE }; }); }; @@ -293,16 +289,12 @@ var HtmlCompletions = function() { if (tagName in attributeMap) { attributes = attributes.concat(attributeMap[tagName]); } - if (prefix) { - attributes = attributes.filter(function(attribute){ - return attribute.indexOf(prefix) === 0; - }); - } return attributes.map(function(attribute){ return { caption: attribute, snippet: attribute + '="$0"', - meta: "attribute" + meta: "attribute", + score: Number.MAX_VALUE }; }); }; diff --git a/lib/ace/mode/html_highlight_rules.js b/lib/ace/mode/html_highlight_rules.js index ec631873..9c9cc36f 100644 --- a/lib/ace/mode/html_highlight_rules.js +++ b/lib/ace/mode/html_highlight_rules.js @@ -62,17 +62,17 @@ var HtmlHighlightRules = function() { this.addRules({ attributes: [{ - include : "space" + include : "tag_whitespace" }, { - token : "entity.other.attribute-name", + token : "entity.other.attribute-name.xml", regex : "[-_a-zA-Z0-9:]+" }, { - token : "keyword.operator.separator", + token : "keyword.operator.attribute-equals.xml", regex : "=", push : [{ - include: "space" + include: "tag_whitespace" }, { - token : "string", + token : "string.unquoted.attribute-value.html", regex : "[^<>='\"`\\s]+", next : "pop" }, { @@ -81,33 +81,21 @@ var HtmlHighlightRules = function() { next : "pop" }] }, { - include : "string" + include : "attribute_value" }], tag: [{ token : function(start, tag) { var group = tagMap[tag]; - return ["meta.tag.punctuation.begin", - "meta.tag.name" + (group ? "." + group : "")]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; }, - regex : "(<)([-_a-zA-Z0-9:]+)", - next: "start_tag_stuff" - }, { - token : function(start, tag) { - var group = tagMap[tag]; - return ["meta.tag.punctuation.begin", - "meta.tag.name" + (group ? "." + group : "")]; - }, - regex : "(", next : "start"} + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"} ], - end_tag_stuff: [ - {include : "space"}, - {token : "meta.tag.punctuation.end", regex : ">", next : "start"} - ] }); this.embedTagRules(CssHighlightRules, "css-", "style"); diff --git a/lib/ace/mode/luapage.js b/lib/ace/mode/luapage.js index 93c1ff56..19f5d04f 100644 --- a/lib/ace/mode/luapage.js +++ b/lib/ace/mode/luapage.js @@ -8,7 +8,7 @@ var Tokenizer = require("../tokenizer").Tokenizer; var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules; var Mode = function() { - this.HighlightRules = LuaPageHighlightRules; + HtmlMode.call(this); this.HighlightRules = LuaPageHighlightRules; this.createModeDelegates({ diff --git a/lib/ace/mode/rhtml.js b/lib/ace/mode/rhtml.js index 84af5312..878f7699 100644 --- a/lib/ace/mode/rhtml.js +++ b/lib/ace/mode/rhtml.js @@ -49,6 +49,7 @@ var RCodeModel = require("mode/r_code_model").RCodeModel; */ var Mode = function(doc, session) { + HtmlMode.call(this); this.$session = session; this.HighlightRules = RHtmlHighlightRules; diff --git a/lib/ace/mode/smarty.js b/lib/ace/mode/smarty.js index af0a33ed..c4e445c2 100644 --- a/lib/ace/mode/smarty.js +++ b/lib/ace/mode/smarty.js @@ -35,16 +35,10 @@ var oop = require("../lib/oop"); var HtmlMode = require("./html").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var SmartyHighlightRules = require("./smarty_highlight_rules").SmartyHighlightRules; -var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour; -var HtmlFoldMode = require("./folding/html").FoldMode; var Mode = function() { HtmlMode.call(this); this.HighlightRules = SmartyHighlightRules; - this.$behaviour = new HtmlBehaviour(); - - - this.foldingRules = new HtmlFoldMode(); }; oop.inherits(Mode, HtmlMode); diff --git a/lib/ace/mode/smarty_highlight_rules.js b/lib/ace/mode/smarty_highlight_rules.js index dfc1f593..80c6069f 100644 --- a/lib/ace/mode/smarty_highlight_rules.js +++ b/lib/ace/mode/smarty_highlight_rules.js @@ -114,9 +114,9 @@ var SmartyHighlightRules = function() { var smartyStart = smartyRules.start; - ["start", "qqstring_inner", "qstring_inner", "attributes", "cdata"].forEach(function(x) { - this.$rules[x].unshift.apply(this.$rules[x], smartyStart); - }, this); + for (var rule in this.$rules) { + this.$rules[rule].unshift.apply(this.$rules[rule], smartyStart); + } Object.keys(smartyRules).forEach(function(x) { if (!this.$rules[x]) diff --git a/lib/ace/mode/svg.js b/lib/ace/mode/svg.js index d9892f9f..aede9c0a 100644 --- a/lib/ace/mode/svg.js +++ b/lib/ace/mode/svg.js @@ -49,7 +49,7 @@ var Mode = function() { "js-": JavaScriptMode }); - this.foldingRules = new MixedFoldMode(new XmlFoldMode({}), { + this.foldingRules = new MixedFoldMode(new XmlFoldMode(), { "js-": new CStyleFoldMode() }); }; diff --git a/lib/ace/mode/twig.js b/lib/ace/mode/twig.js index 1a07f7a5..e8920b9e 100644 --- a/lib/ace/mode/twig.js +++ b/lib/ace/mode/twig.js @@ -32,28 +32,16 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); -var TextMode = require("./text").Mode; -var JavaScriptMode = require("./javascript").Mode; -var CssMode = require("./css").Mode; -var Tokenizer = require("../tokenizer").Tokenizer; +var HtmlMode = require("./html").Mode; var TwigHighlightRules = require("./twig_highlight_rules").TwigHighlightRules; -var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour; -var HtmlFoldMode = require("./folding/html").FoldMode; var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; var Mode = function() { + HtmlMode.call(this); this.HighlightRules = TwigHighlightRules; this.$outdent = new MatchingBraceOutdent(); - this.$behaviour = new HtmlBehaviour(); - - this.createModeDelegates({ - "js-": JavaScriptMode, - "css-": CssMode - }); - - this.foldingRules = new HtmlFoldMode(); }; -oop.inherits(Mode, TextMode); +oop.inherits(Mode, HtmlMode); (function() { this.blockComment = {start: "{#", end: "#}"}; diff --git a/lib/ace/mode/velocity.js b/lib/ace/mode/velocity.js index 30dc59dc..ca572a21 100644 --- a/lib/ace/mode/velocity.js +++ b/lib/ace/mode/velocity.js @@ -37,18 +37,17 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); -var TextMode = require("./text").Mode; +var HtmlMode = require("./html").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var VelocityHighlightRules = require("./velocity_highlight_rules").VelocityHighlightRules; var FoldMode = require("./folding/velocity").FoldMode; -var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour; var Mode = function() { + HtmlMode.call(this); this.HighlightRules = VelocityHighlightRules; this.foldingRules = new FoldMode(); - this.$behaviour = new HtmlBehaviour(); }; -oop.inherits(Mode, TextMode); +oop.inherits(Mode, HtmlMode); (function() { this.lineCommentStart = "##"; diff --git a/lib/ace/mode/xml.js b/lib/ace/mode/xml.js index 171a01cf..fe714d7c 100644 --- a/lib/ace/mode/xml.js +++ b/lib/ace/mode/xml.js @@ -32,6 +32,7 @@ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); +var lang = require("../lib/lang"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; @@ -47,7 +48,9 @@ var Mode = function() { oop.inherits(Mode, TextMode); (function() { - + + this.voidElements = lang.arrayToMap([]); + this.blockComment = {start: ""}; this.$id = "ace/mode/xml"; diff --git a/lib/ace/mode/xml_highlight_rules.js b/lib/ace/mode/xml_highlight_rules.js index ee6ef8cd..54c7db9f 100644 --- a/lib/ace/mode/xml_highlight_rules.js +++ b/lib/ace/mode/xml_highlight_rules.js @@ -38,57 +38,72 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var XmlHighlightRules = function(normalize) { this.$rules = { start : [ - {token : "punctuation.string.begin", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, { - token : ["punctuation.instruction.begin", "keyword.instruction"], - regex : "(<\\?)(xml)(?=[\\s])", next : "xml_declaration" + token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"], + regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true }, { - token : ["punctuation.instruction.begin", "keyword.instruction"], - regex : "(<\\?)([-_a-zA-Z0-9]+)", next : "instruction" + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)([-_a-zA-Z0-9]+)", next : "processing_instruction", }, - {token : "comment", regex : "<\\!--", next : "comment"}, + {token : "comment.xml", regex : "<\\!--", next : "comment"}, { - token : ["punctuation.doctype.begin", "meta.tag.doctype"], - regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype" + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true }, {include : "tag"}, - {include : "reference"} + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], - instruction : [ - {token : "punctuation.instruction.end", regex : "\\?>", next : "start"} + processing_instruction : [ + {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"}, + {defaultToken : "instruction.xml"} ], doctype : [ - {include : "space"}, + {include : "whitespace"}, {include : "string"}, - {token : "punctuation.doctype.end", regex : ">", next : "start"}, - {token : "xml-pe", regex : "[-_a-zA-Z0-9:]+"}, - {token : "punctuation.begin", regex : "\\[", push : "declarations"} + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} ], - declarations : [{ - token : "text", + int_subset : [{ + token : "text.xml", regex : "\\s+" }, { - token: "punctuation.end", + token: "punctuation.int-subset.xml", regex: "]", next: "pop" }, { - token : ["punctuation.begin", "keyword"], + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], regex : "(<\\!)([-_a-zA-Z0-9]+)", push : [{ token : "text", regex : "\\s+" }, { - token : "punctuation.end", + token : "punctuation.markup-decl.xml", regex : ">", next : "pop" }, @@ -96,75 +111,88 @@ var XmlHighlightRules = function(normalize) { }], cdata : [ - {token : "string.end", regex : "\\]\\]>", next : "start"}, - {token : "text", regex : "\\s+"}, - {token : "text", regex : "(?:[^\\]]|\\](?!\\]>))+"} + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} ], comment : [ - {token : "comment", regex : "-->", next : "start"}, - {defaultToken : "comment"} - ], - - tag : [{ - token : ["meta.tag.punctuation.begin", "meta.tag.name"], - regex : "(<)((?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+)", - next: [ - {include : "attributes"}, - {token : "meta.tag.punctuation.end", regex : "/?>", next : "start"} - ] - }, { - token : ["meta.tag.punctuation.begin", "meta.tag.name"], - regex : "(", next : "start"} - ] - }], - - space : [ - {token : "text", regex : "\\s+"} + {token : "comment.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} ], reference : [{ - token : "constant.language.escape", + token : "constant.language.escape.reference.xml", regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" - }, { - token : "text", regex : "&" }], + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + // for doctype and processing instructions + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + + // for doctype and processing instructions string: [{ - token : "string", + token : "string.xml", regex : "'", - push : "qstring_inner" + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] }, { - token : "string", + token : "string.xml", regex : '"', - push : "qqstring_inner" + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] }], - 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", + token : "entity.other.attribute-name.xml", regex : "(?:[-_a-zA-Z0-9]+:)?[-_a-zA-Z0-9]+" }, { - token : "keyword.operator.separator", + token : "keyword.operator.attribute-equals.xml", regex : "=" }, { - include : "space" + include: "tag_whitespace" }, { - include : "string" + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] }] }; @@ -177,18 +205,17 @@ var XmlHighlightRules = function(normalize) { this.embedTagRules = function(HighlightRules, prefix, tag){ this.$rules.tag.unshift({ - token : ["meta.tag.punctuation.begin", "meta.tag.name." + tag], + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], regex : "(<)(" + tag + ")", next: [ - {include : "space"}, {include : "attributes"}, - {token : "meta.tag.punctuation.end", regex : "/?>", next : prefix + "start"} + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} ] }); this.$rules[tag + "-end"] = [ - {include : "space"}, - {token : "meta.tag.punctuation.end", regex : ">", next: "start", + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", onMatch : function(value, currentState, stack) { stack.splice(0); return this.token; @@ -196,14 +223,14 @@ var XmlHighlightRules = function(normalize) { ] this.embedRules(HighlightRules, prefix, [{ - token: ["meta.tag.punctuation.begin", "meta.tag.name." + tag], + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], regex : "(" }]); }; diff --git a/lib/ace/mode/xml_test.js b/lib/ace/mode/xml_test.js index 39edf633..160537b0 100644 --- a/lib/ace/mode/xml_test.js +++ b/lib/ace/mode/xml_test.js @@ -51,7 +51,7 @@ module.exports = { assert.ok(tokenizer instanceof Tokenizer); var tokens = tokenizer.getLineTokens("", "start").tokens; - assert.equal("meta.tag.punctuation.begin", tokens[0].type); + assert.equal("meta.tag.punctuation.tag-open.xml", tokens[0].type); }, "test: toggle comment lines should not do anything" : function() {