diff --git a/src/cpp/cpp.test.ts b/src/cpp/cpp.test.ts index ddd7b865..b776103f 100644 --- a/src/cpp/cpp.test.ts +++ b/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' } + ] + } ] ]); diff --git a/src/cpp/cpp.ts b/src/cpp/cpp.ts index 525b2551..77beaa09 100644 --- a/src/cpp/cpp.ts +++ b/src/cpp/cpp.ts @@ -347,6 +347,7 @@ export const language = { [/[ \t\r\n]+/, ''], [/\/\*\*(?!\/)/, 'comment.doc', '@doccomment'], [/\/\*/, 'comment', '@comment'], + [/\/\/.*\\$/, 'comment', '@linecomment'], [/\/\/.*$/, 'comment'] ], @@ -355,6 +356,13 @@ export const language = { [/\*\//, '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'],