Prechádzať zdrojové kódy

More tweaks for optimal colorization

Alex Dima 8 rokov pred
rodič
commit
6882a78485
13 zmenil súbory, kde vykonal 176 pridanie a 188 odobranie
  1. 2 1
      src/css.ts
  2. 2 2
      src/handlebars.ts
  3. 2 2
      src/html.ts
  4. 2 4
      src/markdown.ts
  5. 2 2
      src/php.ts
  6. 2 2
      src/razor.ts
  7. 3 3
      src/sql.ts
  8. 13 13
      src/xml.ts
  9. 1 1
      test/handlebars.test.ts
  10. 3 3
      test/html.test.ts
  11. 4 4
      test/php.test.ts
  12. 6 17
      test/sql.test.ts
  13. 134 134
      test/xml.test.ts

+ 2 - 1
src/css.ts

@@ -138,7 +138,8 @@ export var language = <IMonarchLanguage> {
 
 		comment: [
 			['\\*\\/', 'comment', '@pop'],
-			[/[^*/]+/, 'comment']
+			[/[^*/]+/, 'comment'],
+			[/./, 'comment'],
 		],
 
 		name: [

+ 2 - 2
src/handlebars.ts

@@ -57,8 +57,8 @@ export var conf:IRichLanguageConfiguration = {
 }
 
 export const htmlTokenTypes = {
-	DELIM_START: 'start.delimiter.tag.html',
-	DELIM_END: 'end.delimiter.tag.html',
+	DELIM_START: 'delimiter.html',
+	DELIM_END: 'delimiter.html',
 	DELIM_COMMENT: 'comment.html',
 	COMMENT: 'comment.content.html',
 	getTag: (name: string) => {

+ 2 - 2
src/html.ts

@@ -56,8 +56,8 @@ export var conf:IRichLanguageConfiguration = {
 };
 
 export const htmlTokenTypes = {
-	DELIM_START: 'start.delimiter.tag',
-	DELIM_END: 'end.delimiter.tag',
+	DELIM_START: 'delimiter',
+	DELIM_END: 'delimiter',
 	DELIM_COMMENT: 'comment',
 	getTag: (name: string) => {
 		return 'tag';

+ 2 - 4
src/markdown.ts

@@ -17,14 +17,12 @@ const TOKEN_LIST = 'keyword';
 const TOKEN_BLOCK = 'string';
 const TOKEN_BLOCK_CODE = 'variable.source';
 
-const DELIM_ASSIGN = 'meta.tag.assign.html';
+const DELIM_ASSIGN = 'delimiter.html';
 const ATTRIB_NAME = 'attribute.name.html';
 const ATTRIB_VALUE = 'string.html';
 
-const TAG_PREFIX = 'entity.name.tag.tag-';
-
 function getTag(name: string) {
-    return TAG_PREFIX + name;
+    return 'tag';
 }
 
 export var conf: IRichLanguageConfiguration = {

+ 2 - 2
src/php.ts

@@ -32,8 +32,8 @@ export var conf:IRichLanguageConfiguration = {
 };
 
 export const htmlTokenTypes = {
-	DELIM_START: 'start.delimiter.tag.html',
-	DELIM_END: 'end.delimiter.tag.html',
+	DELIM_START: 'delimiter.html',
+	DELIM_END: 'delimiter.html',
 	DELIM_COMMENT: 'comment.html',
 	COMMENT: 'comment.content.html',
 	getTag: (name: string) => {

+ 2 - 2
src/razor.ts

@@ -56,8 +56,8 @@ export var conf:IRichLanguageConfiguration = {
 };
 
 export const htmlTokenTypes = {
-	DELIM_START: 'start.delimiter.tag.html',
-	DELIM_END: 'end.delimiter.tag.html',
+	DELIM_START: 'delimiter.html',
+	DELIM_END: 'delimiter.html',
 	DELIM_COMMENT: 'comment.html',
 	COMMENT: 'comment.content.html',
 	getTag: (name: string) => {

+ 3 - 3
src/sql.ts

@@ -1095,13 +1095,13 @@ export var language = <ILanguage> {
 			[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, 'number']
 		],
 		strings: [
-			[/N'/, { token: 'string.quote', next: '@string' }],
-			[/'/, { token: 'string.quote', next: '@string' }]
+			[/N'/, { token: 'string', next: '@string' }],
+			[/'/, { token: 'string', next: '@string' }]
 		],
 		string: [
 			[/[^']+/, 'string'],
 			[/''/, 'string'],
-			[/'/, { token: 'string.quote', next: '@pop' }]
+			[/'/, { token: 'string', next: '@pop' }]
 		],
 		complexIdentifiers: [
 			[/\[/, { token: 'identifier.quote', next: '@bracketedIdentifier' }],

+ 13 - 13
src/xml.ts

@@ -44,25 +44,25 @@ export var language = <ILanguage> {
 
 			// Standard opening tag
 			[/(<)(@qualifiedName)/, [
-				{ token: 'delimiter.start' },
-				{ token: 'tag.tag-$2', next: '@tag.$2' }]],
+				{ token: 'delimiter' },
+				{ token: 'tag', next: '@tag' }]],
 
 			// Standard closing tag
 			[/(<\/)(@qualifiedName)(\s*)(>)/, [
-				{ token: 'delimiter.end' },
-				{ token: 'tag.tag-$2' },
+				{ token: 'delimiter' },
+				{ token: 'tag' },
 				'',
-				{ token: 'delimiter.end' }]],
+				{ token: 'delimiter' }]],
 
 			// Meta tags - instruction
 			[/(<\?)(@qualifiedName)/, [
-				{ token: 'delimiter.start' },
-				{ token: 'metatag.instruction', next: '@tag' }]],
+				{ token: 'delimiter' },
+				{ token: 'metatag', next: '@tag' }]],
 
 			// Meta tags - declaration
 			[/(<\!)(@qualifiedName)/, [
-				{ token: 'delimiter.start' },
-				{ token: 'metatag.declaration', next: '@tag' }]],
+				{ token: 'delimiter' },
+				{ token: 'metatag', next: '@tag' }]],
 
 			// CDATA
 			[/<\!\[CDATA\[/, { token: 'delimiter.cdata', next: '@cdata' }],
@@ -82,11 +82,11 @@ export var language = <ILanguage> {
 			[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/, ['attribute.name', '', 'attribute.value']],
 			[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/, ['attribute.name', '', 'attribute.value']],
 			[/@qualifiedName/, 'attribute.name'],
-			[/\?>/, { token: 'delimiter.start', next: '@pop' }],
+			[/\?>/, { token: 'delimiter', next: '@pop' }],
 			[/(\/)(>)/, [
-				{ token: 'tag.tag-$S2' },
-				{ token: 'delimiter.start', next: '@pop' }]],
-			[/>/, { token: 'delimiter.start', next: '@pop' }],
+				{ token: 'tag' },
+				{ token: 'delimiter', next: '@pop' }]],
+			[/>/, { token: 'delimiter', next: '@pop' }],
 		],
 
 		whitespace: [

+ 1 - 1
test/handlebars.test.ts

@@ -245,7 +245,7 @@ testTokenization(['handlebars', 'css'], [
 			{ startIndex:7, type: HTML_DELIM_START },
 			{ startIndex:8, type: getTag('script') },
 			{ startIndex:14, type: HTML_DELIM_END },
-			{ startIndex:15, type: HTML_DELIM_START },
+			// { startIndex:15, type: HTML_DELIM_START },
 			{ startIndex:17, type: getTag('script') },
 			{ startIndex:23, type: HTML_DELIM_END },
 			{ startIndex:24, type: handlebarsTokenTypes.EMBED },

+ 3 - 3
test/html.test.ts

@@ -274,7 +274,7 @@ testTokenization(['html', 'css'], [
 			{ startIndex:9, type: DELIM_START },
 			{ startIndex:11, type: getTag('script') },
 			{ startIndex:17, type: DELIM_END },
-			{ startIndex:18, type: DELIM_START },
+			// { startIndex:18, type: DELIM_START },
 			{ startIndex:19, type: getTag('script') },
 			{ startIndex:25, type: DELIM_END },
 			{ startIndex:26, type: '' },
@@ -295,7 +295,7 @@ testTokenization(['html', 'css'], [
 			{ startIndex:12, type: DELIM_ASSIGN },
 			{ startIndex:13, type: ATTRIB_VALUE },
 			{ startIndex:30, type: DELIM_END },
-			{ startIndex:31, type: DELIM_START },
+			// { startIndex:31, type: DELIM_START },
 			{ startIndex:33, type: getTag('script') },
 			{ startIndex:39, type: DELIM_END }
 		]
@@ -330,7 +330,7 @@ testTokenization(['html', 'css'], [
 			{ startIndex:34, type: DELIM_ASSIGN },
 			{ startIndex:35, type: ATTRIB_VALUE },
 			{ startIndex:44, type: DELIM_END },
-			{ startIndex:45, type: DELIM_START },
+			// { startIndex:45, type: DELIM_START },
 			{ startIndex:47, type: getTag('script') },
 			{ startIndex:53, type: DELIM_END }
 		]

+ 4 - 4
test/php.test.ts

@@ -1707,7 +1707,7 @@ testTokenization(['php', 'css'], [
 		{ startIndex:0, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:1, type: htmlTokenTypes.getTag('abc') },
 		{ startIndex:4, type: htmlTokenTypes.DELIM_END },
-		{ startIndex:5, type: htmlTokenTypes.DELIM_START },
+		// { startIndex:5, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:6, type: htmlTokenTypes.getTag('script') },
 		{ startIndex:12, type: htmlTokenTypes.DELIM_END },
 		{ startIndex:13, type: '' },
@@ -1731,7 +1731,7 @@ testTokenization(['php', 'css'], [
 		{ startIndex:0, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:1, type: htmlTokenTypes.getTag('abc') },
 		{ startIndex:4, type: htmlTokenTypes.DELIM_END },
-		{ startIndex:5, type: htmlTokenTypes.DELIM_START },
+		// { startIndex:5, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:6, type: htmlTokenTypes.getTag('script') },
 		{ startIndex:12, type: htmlTokenTypes.DELIM_END },
 		{ startIndex:13, type: '' },
@@ -1787,7 +1787,7 @@ testTokenization(['php', 'css'], [
 		{ startIndex:0, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:1, type: htmlTokenTypes.getTag('html') },
 		{ startIndex:5, type: htmlTokenTypes.DELIM_END },
-		{ startIndex:6, type: htmlTokenTypes.DELIM_START },
+		// { startIndex:6, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:7, type: htmlTokenTypes.getTag('style') },
 		{ startIndex:12, type: htmlTokenTypes.DELIM_END },
 		{ startIndex:13, type: 'metatag.php' },
@@ -1821,7 +1821,7 @@ testTokenization(['php', 'css'], [
 		{ startIndex:137, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:139, type: htmlTokenTypes.getTag('script') },
 		{ startIndex:145, type: htmlTokenTypes.DELIM_END },
-		{ startIndex:146, type: htmlTokenTypes.DELIM_START },
+		// { startIndex:146, type: htmlTokenTypes.DELIM_START },
 		{ startIndex:148, type: htmlTokenTypes.getTag('html') },
 		{ startIndex:152, type: htmlTokenTypes.DELIM_END },
 		{ startIndex:153, type: 'metatag.php' },

+ 6 - 17
test/sql.test.ts

@@ -421,49 +421,38 @@ testTokenization('sql', [
 		{ startIndex: 7, type: 'white.sql' },
 		{ startIndex: 8, type: 'identifier.sql' },
 		{ startIndex: 10, type: 'operator.sql' },
-		{ startIndex: 11, type: 'string.quote.sql' },
-		{ startIndex: 12, type: 'string.sql' },
-		{ startIndex: 20, type: 'string.quote.sql' },
+		{ startIndex: 11, type: 'string.sql' },
 		{ startIndex: 21, type: 'delimiter.sql' }
 	]}],
 
 	[{
 	line: '\'a \'\' string with quotes\'',
 	tokens: [
-		{ startIndex: 0, type: 'string.quote.sql' },
-		{ startIndex: 1, type: 'string.sql' },
-		{ startIndex: 24, type: 'string.quote.sql' }
+		{ startIndex: 0, type: 'string.sql' },
 	]}],
 
 	[{
 	line: '\'a " string with quotes\'',
 	tokens: [
-		{ startIndex: 0, type: 'string.quote.sql' },
-		{ startIndex: 1, type: 'string.sql' },
-		{ startIndex: 23, type: 'string.quote.sql' }
+		{ startIndex: 0, type: 'string.sql' },
 	]}],
 
 	[{
 	line: '\'a -- string with comment\'',
 	tokens: [
-		{ startIndex: 0, type: 'string.quote.sql' },
-		{ startIndex: 1, type: 'string.sql' },
-		{ startIndex: 25, type: 'string.quote.sql' }
+		{ startIndex: 0, type: 'string.sql' },
 	]}],
 
 	[{
 	line: 'N\'a unicode string\'',
 	tokens: [
-		{ startIndex: 0, type: 'string.quote.sql' },
-		{ startIndex: 2, type: 'string.sql' },
-		{ startIndex: 18, type: 'string.quote.sql' }
+		{ startIndex: 0, type: 'string.sql' },
 	]}],
 
 	[{
 	line: '\'a endless string',
 	tokens: [
-		{ startIndex: 0, type: 'string.quote.sql' },
-		{ startIndex: 1, type: 'string.sql' }
+		{ startIndex: 0, type: 'string.sql' },
 	]}],
 
 	// Operators

+ 134 - 134
test/xml.test.ts

@@ -12,36 +12,36 @@ testTokenization('xml', [
 	[{
 	line: '<person>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-person.xml' },
-		{ startIndex: 7, type: 'delimiter.start.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
+		{ startIndex: 7, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<person/>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-person.xml' },
-		{ startIndex: 8, type: 'delimiter.start.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
+		{ startIndex: 8, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<person >',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-person.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 7, type: '' },
-		{ startIndex: 8, type: 'delimiter.start.xml' }
+		{ startIndex: 8, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<person />',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-person.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 7, type: '' },
-		{ startIndex: 8, type: 'tag.tag-person.xml' },
-		{ startIndex: 9, type: 'delimiter.start.xml' }
+		{ startIndex: 8, type: 'tag.xml' },
+		{ startIndex: 9, type: 'delimiter.xml' }
 	]}],
 
 	// Incomplete Start Tag
@@ -54,15 +54,15 @@ testTokenization('xml', [
 	[{
 	line: '<person',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-person.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' }
 	]}],
 
 	[{
 	line: '<input',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-input.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' }
 	]}],
 
 	// Invalid Open Start Tag
@@ -82,8 +82,8 @@ testTokenization('xml', [
 	line: 'i <person;',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 2, type: 'delimiter.start.xml' },
-		{ startIndex: 3, type: 'tag.tag-person.xml' },
+		{ startIndex: 2, type: 'delimiter.xml' },
+		{ startIndex: 3, type: 'tag.xml' },
 		{ startIndex: 9, type: '' }
 	]}],
 
@@ -91,45 +91,45 @@ testTokenization('xml', [
 	[{
 	line: '<tool name="">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.value.xml' },
-		{ startIndex: 13, type: 'delimiter.start.xml' }
+		{ startIndex: 13, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<tool name="Monaco">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.value.xml' },
-		{ startIndex: 19, type: 'delimiter.start.xml' }
+		{ startIndex: 19, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<tool name=\'Monaco\'>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.value.xml' },
-		{ startIndex: 19, type: 'delimiter.start.xml' }
+		{ startIndex: 19, type: 'delimiter.xml' }
 	]}],
 
 	// Tag with Attributes
 	[{
 	line: '<tool name="Monaco" version="1.0">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
@@ -138,101 +138,101 @@ testTokenization('xml', [
 		{ startIndex: 20, type: 'attribute.name.xml' },
 		{ startIndex: 27, type: '' },
 		{ startIndex: 28, type: 'attribute.value.xml' },
-		{ startIndex: 33, type: 'delimiter.start.xml' }
+		{ startIndex: 33, type: 'delimiter.xml' }
 	]}],
 
 	// Tag with Name-Only-Attribute
 	[{
 	line: '<tool name>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
-		{ startIndex: 10, type: 'delimiter.start.xml' }
+		{ startIndex: 10, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<tool name version>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.name.xml' },
-		{ startIndex: 18, type: 'delimiter.start.xml' }
+		{ startIndex: 18, type: 'delimiter.xml' }
 	]}],
 
 	// Tag with Attribute And Whitespace
 	[{
 	line: '<tool name=  "monaco">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 13, type: 'attribute.value.xml' },
-		{ startIndex: 21, type: 'delimiter.start.xml' }
+		{ startIndex: 21, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<tool name = "monaco">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 13, type: 'attribute.value.xml' },
-		{ startIndex: 21, type: 'delimiter.start.xml' }
+		{ startIndex: 21, type: 'delimiter.xml' }
 	]}],
 
 	// Tag with Invalid Attribute Name
 	[{
 	line: '<tool name!@#="bar">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 15, type: 'attribute.name.xml' },
 		{ startIndex: 18, type: '' },
-		{ startIndex: 19, type: 'delimiter.start.xml' }
+		{ startIndex: 19, type: 'delimiter.xml' }
 	]}],
 
 	// Tag with Invalid Attribute Value
 	[{
 	line: '<tool name=">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tool.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.value.xml' },
-		{ startIndex: 12, type: 'delimiter.start.xml' }
+		{ startIndex: 12, type: 'delimiter.xml' }
 	]}],
 
 	// Complete End Tag
 	[{
 	line: '</person>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.end.xml' },
-		{ startIndex: 2, type: 'tag.tag-person.xml' },
-		{ startIndex: 8, type: 'delimiter.end.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
+		{ startIndex: 8, type: 'delimiter.xml' }
 	]}],
 
 	// Complete End Tag with Whitespace
 	[{
 	line: '</person  >',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.end.xml' },
-		{ startIndex: 2, type: 'tag.tag-person.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 8, type: '' },
-		{ startIndex: 10, type: 'delimiter.end.xml' }
+		{ startIndex: 10, type: 'delimiter.xml' }
 	]}],
 
 	// Incomplete End Tag
@@ -279,23 +279,23 @@ testTokenization('xml', [
 	[{
 	line: '<tools><![CDATA[<person/>]]></tools>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tools.xml' },
-		{ startIndex: 6, type: 'delimiter.start.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
+		{ startIndex: 6, type: 'delimiter.xml' },
 		{ startIndex: 7, type: 'delimiter.cdata.xml' },
 		{ startIndex: 16, type: '' },
 		{ startIndex: 25, type: 'delimiter.cdata.xml' },
-		{ startIndex: 28, type: 'delimiter.end.xml' },
-		{ startIndex: 30, type: 'tag.tag-tools.xml' },
-		{ startIndex: 35, type: 'delimiter.end.xml' }
+		{ startIndex: 28, type: 'delimiter.xml' },
+		{ startIndex: 30, type: 'tag.xml' },
+		{ startIndex: 35, type: 'delimiter.xml' }
 	]}],
 
 	[{
 	line: '<tools>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-tools.xml' },
-		{ startIndex: 6, type: 'delimiter.start.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
+		{ startIndex: 6, type: 'delimiter.xml' }
 	]},{
 	line: '\t<![CDATA[',
 	tokens: [
@@ -313,45 +313,45 @@ testTokenization('xml', [
 	]},{
 	line: '</tools>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.end.xml' },
-		{ startIndex: 2, type: 'tag.tag-tools.xml' },
-		{ startIndex: 7, type: 'delimiter.end.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
+		{ startIndex: 7, type: 'delimiter.xml' }
 	]}],
 
 	// Generated from sample
 	[{
 	line: '<?xml version="1.0"?>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'metatag.instruction.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'metatag.xml' },
 		{ startIndex: 5, type: '' },
 		{ startIndex: 6, type: 'attribute.name.xml' },
 		{ startIndex: 13, type: '' },
 		{ startIndex: 14, type: 'attribute.value.xml' },
-		{ startIndex: 19, type: 'delimiter.start.xml' }
+		{ startIndex: 19, type: 'delimiter.xml' }
 	]}, {
 	line: '<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.start.xml' },
-		{ startIndex: 1, type: 'tag.tag-configuration.xml' },
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 1, type: 'tag.xml' },
 		{ startIndex: 14, type: '' },
 		{ startIndex: 15, type: 'attribute.name.xml' },
 		{ startIndex: 24, type: '' },
 		{ startIndex: 25, type: 'attribute.value.xml' },
-		{ startIndex: 78, type: 'delimiter.start.xml' }
+		{ startIndex: 78, type: 'delimiter.xml' }
 	]}, {
 	line: '  <connectionStrings>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 2, type: 'delimiter.start.xml' },
-		{ startIndex: 3, type: 'tag.tag-connectionstrings.xml' },
-		{ startIndex: 20, type: 'delimiter.start.xml' }
+		{ startIndex: 2, type: 'delimiter.xml' },
+		{ startIndex: 3, type: 'tag.xml' },
+		{ startIndex: 20, type: 'delimiter.xml' }
 	]}, {
 	line: '    <add name="MyDB" ',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 4, type: 'delimiter.start.xml' },
-		{ startIndex: 5, type: 'tag.tag-add.xml' },
+		{ startIndex: 4, type: 'delimiter.xml' },
+		{ startIndex: 5, type: 'tag.xml' },
 		{ startIndex: 8, type: '' },
 		{ startIndex: 9, type: 'attribute.name.xml' },
 		{ startIndex: 13, type: '' },
@@ -376,28 +376,28 @@ testTokenization('xml', [
 		{ startIndex: 36, type: 'attribute.name.xml' },
 		{ startIndex: 47, type: '' },
 		{ startIndex: 48, type: 'attribute.value.xml' },
-		{ startIndex: 61, type: 'tag.tag-add.xml' },
-		{ startIndex: 62, type: 'delimiter.start.xml' }
+		{ startIndex: 61, type: 'tag.xml' },
+		{ startIndex: 62, type: 'delimiter.xml' }
 	]}, {
 	line: '  </connectionStrings>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 2, type: 'delimiter.end.xml' },
-		{ startIndex: 4, type: 'tag.tag-connectionstrings.xml' },
-		{ startIndex: 21, type: 'delimiter.end.xml' }
+		{ startIndex: 2, type: 'delimiter.xml' },
+		{ startIndex: 4, type: 'tag.xml' },
+		{ startIndex: 21, type: 'delimiter.xml' }
 	]}, {
 	line: '  <system.web>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 2, type: 'delimiter.start.xml' },
-		{ startIndex: 3, type: 'tag.tag-system.web.xml' },
-		{ startIndex: 13, type: 'delimiter.start.xml' }
+		{ startIndex: 2, type: 'delimiter.xml' },
+		{ startIndex: 3, type: 'tag.xml' },
+		{ startIndex: 13, type: 'delimiter.xml' }
 	]}, {
 	line: '    <customErrors defaultRedirect="GenericError.htm"',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 4, type: 'delimiter.start.xml' },
-		{ startIndex: 5, type: 'tag.tag-customerrors.xml' },
+		{ startIndex: 4, type: 'delimiter.xml' },
+		{ startIndex: 5, type: 'tag.xml' },
 		{ startIndex: 17, type: '' },
 		{ startIndex: 18, type: 'attribute.name.xml' },
 		{ startIndex: 33, type: '' },
@@ -413,13 +413,13 @@ testTokenization('xml', [
 		{ startIndex: 24, type: 'attribute.name.xml' },
 		{ startIndex: 37, type: '' },
 		{ startIndex: 38, type: 'attribute.value.xml' },
-		{ startIndex: 47, type: 'delimiter.start.xml' }
+		{ startIndex: 47, type: 'delimiter.xml' }
 	]}, {
 	line: '      <error statusCode="500" redirect="InternalError.htm"/>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 6, type: 'delimiter.start.xml' },
-		{ startIndex: 7, type: 'tag.tag-error.xml' },
+		{ startIndex: 6, type: 'delimiter.xml' },
+		{ startIndex: 7, type: 'tag.xml' },
 		{ startIndex: 12, type: '' },
 		{ startIndex: 13, type: 'attribute.name.xml' },
 		{ startIndex: 23, type: '' },
@@ -428,22 +428,22 @@ testTokenization('xml', [
 		{ startIndex: 30, type: 'attribute.name.xml' },
 		{ startIndex: 38, type: '' },
 		{ startIndex: 39, type: 'attribute.value.xml' },
-		{ startIndex: 58, type: 'tag.tag-error.xml' },
-		{ startIndex: 59, type: 'delimiter.start.xml' }
+		{ startIndex: 58, type: 'tag.xml' },
+		{ startIndex: 59, type: 'delimiter.xml' }
 	]}, {
 	line: '    </customErrors>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 4, type: 'delimiter.end.xml' },
-		{ startIndex: 6, type: 'tag.tag-customerrors.xml' },
-		{ startIndex: 18, type: 'delimiter.end.xml' }
+		{ startIndex: 4, type: 'delimiter.xml' },
+		{ startIndex: 6, type: 'tag.xml' },
+		{ startIndex: 18, type: 'delimiter.xml' }
 	]}, {
 	line: '  </system.web>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 2, type: 'delimiter.end.xml' },
-		{ startIndex: 4, type: 'tag.tag-system.web.xml' },
-		{ startIndex: 14, type: 'delimiter.end.xml' }
+		{ startIndex: 2, type: 'delimiter.xml' },
+		{ startIndex: 4, type: 'tag.xml' },
+		{ startIndex: 14, type: 'delimiter.xml' }
 	]}, {
 	line: '	',
 	tokens: [
@@ -474,100 +474,100 @@ testTokenization('xml', [
 	line: '	<!DOCTYPE another meta tag>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 3, type: 'metatag.declaration.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 3, type: 'metatag.xml' },
 		{ startIndex: 10, type: '' },
 		{ startIndex: 11, type: 'attribute.name.xml' },
 		{ startIndex: 18, type: '' },
 		{ startIndex: 19, type: 'attribute.name.xml' },
 		{ startIndex: 23, type: '' },
 		{ startIndex: 24, type: 'attribute.name.xml' },
-		{ startIndex: 27, type: 'delimiter.start.xml' }
+		{ startIndex: 27, type: 'delimiter.xml' }
 	]}, {
 	line: '	<tools><![CDATA[Some text and tags <person/>]]></tools>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-tools.xml' },
-		{ startIndex: 7, type: 'delimiter.start.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
+		{ startIndex: 7, type: 'delimiter.xml' },
 		{ startIndex: 8, type: 'delimiter.cdata.xml' },
 		{ startIndex: 17, type: '' },
 		{ startIndex: 45, type: 'delimiter.cdata.xml' },
-		{ startIndex: 48, type: 'delimiter.end.xml' },
-		{ startIndex: 50, type: 'tag.tag-tools.xml' },
-		{ startIndex: 55, type: 'delimiter.end.xml' }
+		{ startIndex: 48, type: 'delimiter.xml' },
+		{ startIndex: 50, type: 'tag.xml' },
+		{ startIndex: 55, type: 'delimiter.xml' }
 	]}, {
 	line: '	<aSelfClosingTag with="attribute" />',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-aselfclosingtag.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 17, type: '' },
 		{ startIndex: 18, type: 'attribute.name.xml' },
 		{ startIndex: 22, type: '' },
 		{ startIndex: 23, type: 'attribute.value.xml' },
 		{ startIndex: 34, type: '' },
-		{ startIndex: 35, type: 'tag.tag-aselfclosingtag.xml' },
-		{ startIndex: 36, type: 'delimiter.start.xml' }
+		{ startIndex: 35, type: 'tag.xml' },
+		{ startIndex: 36, type: 'delimiter.xml' }
 	]}, {
 	line: '	<aSelfClosingTag with="attribute"/>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-aselfclosingtag.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 17, type: '' },
 		{ startIndex: 18, type: 'attribute.name.xml' },
 		{ startIndex: 22, type: '' },
 		{ startIndex: 23, type: 'attribute.value.xml' },
-		{ startIndex: 34, type: 'tag.tag-aselfclosingtag.xml' },
-		{ startIndex: 35, type: 'delimiter.start.xml' }
+		{ startIndex: 34, type: 'tag.xml' },
+		{ startIndex: 35, type: 'delimiter.xml' }
 	]}, {
 	line: '	<namespace:aSelfClosingTag otherspace:with="attribute"/>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-namespace:aselfclosingtag.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 27, type: '' },
 		{ startIndex: 28, type: 'attribute.name.xml' },
 		{ startIndex: 43, type: '' },
 		{ startIndex: 44, type: 'attribute.value.xml' },
-		{ startIndex: 55, type: 'tag.tag-namespace:aselfclosingtag.xml' },
-		{ startIndex: 56, type: 'delimiter.start.xml' }
+		{ startIndex: 55, type: 'tag.xml' },
+		{ startIndex: 56, type: 'delimiter.xml' }
 	]}, {
 	line: '	<valid-name also_valid this.one=\'too is valid\'/>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-valid-name.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 12, type: '' },
 		{ startIndex: 13, type: 'attribute.name.xml' },
 		{ startIndex: 23, type: '' },
 		{ startIndex: 24, type: 'attribute.name.xml' },
 		{ startIndex: 32, type: '' },
 		{ startIndex: 33, type: 'attribute.value.xml' },
-		{ startIndex: 47, type: 'tag.tag-valid-name.xml' },
-		{ startIndex: 48, type: 'delimiter.start.xml' }
+		{ startIndex: 47, type: 'tag.xml' },
+		{ startIndex: 48, type: 'delimiter.xml' }
 	]}, {
 	line: '	<aSimpleSelfClosingTag />',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-asimpleselfclosingtag.xml' },
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
 		{ startIndex: 23, type: '' },
-		{ startIndex: 24, type: 'tag.tag-asimpleselfclosingtag.xml' },
-		{ startIndex: 25, type: 'delimiter.start.xml' }
+		{ startIndex: 24, type: 'tag.xml' },
+		{ startIndex: 25, type: 'delimiter.xml' }
 	]}, {
 	line: '	<aSimpleSelfClosingTag/>',
 	tokens: [
 		{ startIndex: 0, type: '' },
-		{ startIndex: 1, type: 'delimiter.start.xml' },
-		{ startIndex: 2, type: 'tag.tag-asimpleselfclosingtag.xml' },
-		{ startIndex: 24, type: 'delimiter.start.xml' }
+		{ startIndex: 1, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
+		{ startIndex: 24, type: 'delimiter.xml' }
 	]}, {
 	line: '</configuration>',
 	tokens: [
-		{ startIndex: 0, type: 'delimiter.end.xml' },
-		{ startIndex: 2, type: 'tag.tag-configuration.xml' },
-		{ startIndex: 15, type: 'delimiter.end.xml' }
+		{ startIndex: 0, type: 'delimiter.xml' },
+		{ startIndex: 2, type: 'tag.xml' },
+		{ startIndex: 15, type: 'delimiter.xml' }
 	]}]
 ]);