Skip to content

Commit df16c16

Browse files
Smart markdown pasting does not occur in tilde code block (microsoft#189004)
smart paste checks ~~~ code block
1 parent b448b21 commit df16c16

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

extensions/markdown-language-features/src/languageFeatures/copyFiles/shared.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ const smartPasteRegexes = [
6666
{ regex: /\[.*\]\(.*\)/g, isMarkdownLink: true, isInline: true }, // Is a Markdown Link
6767
{ regex: /!\[.*\]\(.*\)/g, isMarkdownLink: true, isInline: true }, // Is a Markdown Image Link
6868
{ regex: /\[([^\]]*)\]\(([^)]*)\)/g, isMarkdownLink: false, isInline: true }, // In a Markdown link
69-
{ regex: /^```[\s\S]*?```$/gm, isMarkdownLink: false, isInline: false }, // In a fenced code block
69+
{ regex: /^```[\s\S]*?```$/gm, isMarkdownLink: false, isInline: false }, // In a backtick fenced code block
70+
{ regex: /^~~~[\s\S]*?~~~$/gm, isMarkdownLink: false, isInline: false }, // In a tildefenced code block
7071
{ regex: /^\$\$[\s\S]*?\$\$$/gm, isMarkdownLink: false, isInline: false }, // In a fenced math block
7172
{ regex: /`[^`]*`/g, isMarkdownLink: false, isInline: true }, // In inline code
7273
{ regex: /\$[^$]*\$/g, isMarkdownLink: false, isInline: true }, // In inline math

extensions/markdown-language-features/src/test/markdownLink.test.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,20 @@ suite('createEditAddingLinksForUriList', () => {
141141
assert.strictEqual(smartPaste.pasteAsMarkdownLink, true);
142142
});
143143

144-
test('Should evaluate pasteAsMarkdownLink as false for pasting within a code block', () => {
144+
test('Should evaluate pasteAsMarkdownLink as false for pasting within a backtick code block', () => {
145145
skinnyDocument.getText = function () { return '```\r\n\r\n```'; };
146146
const range = new vscode.Range(0, 5, 0, 5);
147147
const smartPaste = checkSmartPaste(skinnyDocument, range);
148148
assert.strictEqual(smartPaste.pasteAsMarkdownLink, false);
149149
});
150150

151+
test('Should evaluate pasteAsMarkdownLink as false for pasting within a tilde code block', () => {
152+
skinnyDocument.getText = function () { return '~~~\r\n\r\n~~~'; };
153+
const range = new vscode.Range(0, 5, 0, 5);
154+
const smartPaste = checkSmartPaste(skinnyDocument, range);
155+
assert.strictEqual(smartPaste.pasteAsMarkdownLink, false);
156+
});
157+
151158
test('Should evaluate pasteAsMarkdownLink as false for pasting within a math block', () => {
152159
skinnyDocument.getText = function () { return '$$$\r\n\r\n$$$'; };
153160
const range = new vscode.Range(0, 5, 0, 5);

0 commit comments

Comments
 (0)