浏览代码

Fixes microsoft/monaco-editor#1607: Add support for nested comments

Alexandru Dima 5 年之前
父节点
当前提交
c50642f89b
共有 2 个文件被更改,包括 16 次插入11 次删除
  1. 14 10
      src/kotlin/kotlin.test.ts
  2. 2 1
      src/kotlin/kotlin.ts

+ 14 - 10
src/kotlin/kotlin.test.ts

@@ -62,16 +62,6 @@ testTokenization('kotlin', [
 		]
 	}],
 
-	// Broken nested tokens due to invalid comment tokenization
-	[{
-		line: '/* //*/ a',
-		tokens: [
-			{ startIndex: 0, type: 'comment.kt' },
-			{ startIndex: 7, type: '' },
-			{ startIndex: 8, type: 'identifier.kt' }
-		]
-	}],
-
 	[{
 		line: '// a comment',
 		tokens: [
@@ -666,6 +656,20 @@ testTokenization('kotlin', [
 			{ startIndex: 28, type: '' },
 			{ startIndex: 29, type: 'keyword.private.kt' }
 		]
+	}],
+
+	[{
+		line: 'fun /* /* */ */ main() {',
+		tokens: [
+			{ startIndex: 0, type: 'keyword.fun.kt' },
+			{ startIndex: 3, type: '' },
+			{ startIndex: 4, type: 'comment.kt' },
+			{ startIndex: 15, type: '' },
+			{ startIndex: 16, type: 'identifier.kt' },
+			{ startIndex: 20, type: 'delimiter.parenthesis.kt' },
+			{ startIndex: 22, type: '' },
+			{ startIndex: 23, type: 'delimiter.curly.kt' },
+		]
 	}]
 ]);
 

+ 2 - 1
src/kotlin/kotlin.ts

@@ -136,13 +136,14 @@ export const language = <ILanguage>{
 
 		comment: [
 			[/[^\/*]+/, 'comment'],
+			[/\/\*/, 'comment', '@comment'],
 			[/\*\//, 'comment', '@pop'],
 			[/[\/*]/, 'comment']
 		],
 		//Identical copy of comment above, except for the addition of .doc
 		javadoc: [
 			[/[^\/*]+/, 'comment.doc'],
-			// [/\/\*/, 'comment.doc', '@push' ],    // nested comment not allowed :-(
+			[/\/\*/, 'comment.doc', '@push' ],
 			[/\/\*/, 'comment.doc.invalid'],
 			[/\*\//, 'comment.doc', '@pop'],
 			[/[\/*]/, 'comment.doc']