浏览代码

Merge pull request #143 from nathanrreed/main

fix c++ comment continuation highlighting #2497
Alexandru Dima 4 年之前
父节点
当前提交
96183b6e44
共有 2 个文件被更改,包括 33 次插入0 次删除
  1. 25 0
      src/cpp/cpp.test.ts
  2. 8 0
      src/cpp/cpp.ts

+ 25 - 0
src/cpp/cpp.test.ts

@@ -950,5 +950,30 @@ testTokenization('cpp', [
 				{ startIndex: 22, type: 'keyword.directive.include.end.cpp' }
 			]
 		}
+	],
+
+	[
+		// microsoft/monaco-editor#2497 : comment continuation highlighting
+		{
+			line: '// this is a comment \\',
+			tokens: [{ startIndex: 0, type: 'comment.cpp' }]
+		},
+		{
+			line: 'this is still a comment',
+			tokens: [{ startIndex: 0, type: 'comment.cpp' }]
+		},
+		{
+			line: 'int x = 1;',
+			tokens: [
+				{ startIndex: 0, type: 'keyword.int.cpp' },
+				{ startIndex: 3, type: '' },
+				{ startIndex: 4, type: 'identifier.cpp' },
+				{ startIndex: 5, type: '' },
+				{ startIndex: 6, type: 'delimiter.cpp' },
+				{ startIndex: 7, type: '' },
+				{ startIndex: 8, type: 'number.cpp' },
+				{ startIndex: 9, type: 'delimiter.cpp' }
+			]
+		}
 	]
 ]);

+ 8 - 0
src/cpp/cpp.ts

@@ -347,6 +347,7 @@ export const language = <languages.IMonarchLanguage>{
 			[/[ \t\r\n]+/, ''],
 			[/\/\*\*(?!\/)/, 'comment.doc', '@doccomment'],
 			[/\/\*/, 'comment', '@comment'],
+			[/\/\/.*\\$/, 'comment', '@linecomment'],
 			[/\/\/.*$/, 'comment']
 		],
 
@@ -355,6 +356,13 @@ export const language = <languages.IMonarchLanguage>{
 			[/\*\//, 'comment', '@pop'],
 			[/[\/*]/, 'comment']
 		],
+		
+		//For use with continuous line comments
+		linecomment: [
+			[/.*[^\\]$/, 'comment', '@pop'],
+			[/[^]+/, 'comment']
+		],
+		
 		//Identical copy of comment above, except for the addition of .doc
 		doccomment: [
 			[/[^\/*]+/, 'comment.doc'],