Skip to content

Commit

Permalink
Temporarily disable incomplete markdown patching on list items (micro…
Browse files Browse the repository at this point in the history
  • Loading branch information
roblourens authored Apr 7, 2023
1 parent b290701 commit 735aff6
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 28 deletions.
52 changes: 26 additions & 26 deletions src/vs/base/browser/markdownRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -583,25 +583,25 @@ function completeSingleLinePattern(token: marked.Tokens.ListItem | marked.Tokens
return undefined;
}

function completeListItemPattern(token: marked.Tokens.List): marked.Tokens.List | undefined {
// Patch up this one list item
const lastItem = token.items[token.items.length - 1];

const newList = completeSingleLinePattern(lastItem);
if (!newList || newList.type !== 'list') {
// Nothing to fix, or not a pattern we were expecting
return;
}

// Re-parse the whole list with the last item replaced
const completeList = marked.lexer(mergeRawTokenText(token.items.slice(0, token.items.length - 1)) + newList.items[0].raw);
if (completeList.length === 1 && completeList[0].type === 'list') {
return completeList[0];
}

// Not a pattern we were expecting
return undefined;
}
// function completeListItemPattern(token: marked.Tokens.List): marked.Tokens.List | undefined {
// // Patch up this one list item
// const lastItem = token.items[token.items.length - 1];

// const newList = completeSingleLinePattern(lastItem);
// if (!newList || newList.type !== 'list') {
// // Nothing to fix, or not a pattern we were expecting
// return;
// }

// // Re-parse the whole list with the last item replaced
// const completeList = marked.lexer(mergeRawTokenText(token.items.slice(0, token.items.length - 1)) + newList.items[0].raw);
// if (completeList.length === 1 && completeList[0].type === 'list') {
// return completeList[0];
// }

// // Not a pattern we were expecting
// return undefined;
// }

export function fillInIncompleteTokens(tokens: marked.TokensList): marked.TokensList {
let i: number;
Expand All @@ -619,13 +619,13 @@ export function fillInIncompleteTokens(tokens: marked.TokensList): marked.Tokens
break;
}

if (i === tokens.length - 1 && token.type === 'list') {
const newListToken = completeListItemPattern(token);
if (newListToken) {
newTokens = [newListToken];
break;
}
}
// if (i === tokens.length - 1 && token.type === 'list') {
// const newListToken = completeListItemPattern(token);
// if (newListToken) {
// newTokens = [newListToken];
// break;
// }
// }

if (i === tokens.length - 1 && token.type === 'paragraph') {
// Only operates on a single token, because any newline that follows this should break these patterns
Expand Down
12 changes: 10 additions & 2 deletions src/vs/base/test/browser/markdownRenderer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,14 @@ suite('MarkdownRenderer', () => {
assert.deepStrictEqual(newTokens, completeTokens);
});

test(`complete ${name}`, () => {
const text = `leading text ${delimiter}code${delimiter} trailing text`;
const tokens = marked.lexer(text);
const newTokens = fillInIncompleteTokens(tokens);

assert.deepStrictEqual(newTokens, tokens);
});

test(`${name} with leading text`, () => {
const incomplete = `some text and ${delimiter}some code`;
const tokens = marked.lexer(incomplete);
Expand All @@ -547,7 +555,7 @@ suite('MarkdownRenderer', () => {
assert.deepStrictEqual(newTokens, completeTokens);
});

test(`incomplete ${name} in list`, () => {
test.skip(`incomplete ${name} in list`, () => {
const text = `- list item one\n- list item two and ${delimiter}text`;
const tokens = marked.lexer(text);
const newTokens = fillInIncompleteTokens(tokens);
Expand Down Expand Up @@ -648,7 +656,7 @@ suite('MarkdownRenderer', () => {
assert.deepStrictEqual(newTokens, completeTokens);
});

test('incomplete link in list', () => {
test.skip('incomplete link in list', () => {
const incomplete = '- [text';
const tokens = marked.lexer(incomplete);
const newTokens = fillInIncompleteTokens(tokens);
Expand Down

0 comments on commit 735aff6

Please sign in to comment.