Skip to content

Commit 6a4599a

Browse files
dinhtam2cbobbrow
authored andcommitted
Fix custom comment continuation for multiple follow-up lines (#14074)
1 parent 9ccb63f commit 6a4599a

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

Extension/src/LanguageServer/languageConfig.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ function getMLSplitAfterPattern(): string {
5555

5656
function getMLPreviousLinePattern(insert: string): string | undefined {
5757
if (insert.startsWith("/*")) {
58-
return `(?=^(\\s*(\\/\\*\\*|\\*)).*)(?=(?!(\\s*\\*\\/)))`;
58+
const match: string = escape(insert);
59+
return `(?=^(\\s*(${match}|\\*)).*)(?=(?!(\\s*\\*\\/)))`;
5960
}
6061
return undefined;
6162
}
@@ -238,8 +239,9 @@ export function getLanguageConfig(languageId: string): vscode.LanguageConfigurat
238239
}
239240

240241
export function getLanguageConfigFromPatterns(languageId: string, patterns?: (string | CommentPattern)[]): vscode.LanguageConfiguration {
241-
const beginPatterns: string[] = []; // avoid duplicate rules
242-
const continuePatterns: string[] = []; // avoid duplicate rules
242+
const beginPatterns: string[] = []; // avoid duplicate begin rules
243+
const continuePatterns: string[] = []; // avoid duplicate continue rules
244+
const endPatterns: string[] = []; // avoid duplicate end rules
243245
let duplicates: boolean = false;
244246
let beginRules: vscode.OnEnterRule[] = [];
245247
let continueRules: vscode.OnEnterRule[] = [];
@@ -258,14 +260,17 @@ export function getLanguageConfigFromPatterns(languageId: string, patterns?: (st
258260
} else {
259261
duplicates = true;
260262
}
261-
if (continuePatterns.indexOf(c.continue) < 0) {
263+
if (continuePatterns.indexOf(`${c.begin}\0${c.continue}`) < 0) {
262264
if (r.continue && r.continue.length > 0) {
263265
continueRules = continueRules.concat(r.continue);
264266
}
267+
continuePatterns.push(`${c.begin}\0${c.continue}`);
268+
}
269+
if (endPatterns.indexOf(c.continue) < 0) {
265270
if (r.end && r.end.length > 0) {
266271
endRules = endRules.concat(r.end);
267272
}
268-
continuePatterns.push(c.continue);
273+
endPatterns.push(c.continue);
269274
}
270275
});
271276
if (duplicates) {

0 commit comments

Comments
 (0)