Przeglądaj źródła

Fix incorrect key:value detection

yuri1969 2 lat temu
rodzic
commit
30a786cf5f

+ 50 - 0
src/basic-languages/yaml/yaml.test.ts

@@ -473,5 +473,55 @@ testTokenization('yaml', [
 				{ startIndex: 10, type: 'comment.yaml' }
 				{ startIndex: 10, type: 'comment.yaml' }
 			]
 			]
 		}
 		}
+	],
+
+	// ': ' in double-quoted Value
+	[
+		{
+			line: 'key: "va: lue"',
+			tokens: [
+				{
+					startIndex: 0,
+					type: 'type.yaml'
+				},
+				{
+					startIndex: 3,
+					type: 'operators.yaml'
+				},
+				{
+					startIndex: 4,
+					type: 'white.yaml'
+				},
+				{
+					startIndex: 5,
+					type: 'string.yaml'
+				}
+			]
+		}
+	],
+
+	// ': ' in single-quoted Value
+	[
+		{
+			line: "key: 'va: lue'",
+			tokens: [
+				{
+					startIndex: 0,
+					type: 'type.yaml'
+				},
+				{
+					startIndex: 3,
+					type: 'operators.yaml'
+				},
+				{
+					startIndex: 4,
+					type: 'white.yaml'
+				},
+				{
+					startIndex: 5,
+					type: 'string.yaml'
+				}
+			]
+		}
 	]
 	]
 ]);
 ]);

+ 1 - 1
src/basic-languages/yaml/yaml.ts

@@ -86,7 +86,7 @@ export const language = <languages.IMonarchLanguage>{
 			[/@numberDate(?![ \t]*\S+)/, 'number.date'],
 			[/@numberDate(?![ \t]*\S+)/, 'number.date'],
 
 
 			// Key:Value pair
 			// Key:Value pair
-			[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ['type', 'white', 'operators', 'white']],
+			[/(".*?"|'.*?'|[^'"]*?)([ \t]*)(:)( |$)/, ['type', 'white', 'operators', 'white']],
 
 
 			{ include: '@flowScalars' },
 			{ include: '@flowScalars' },