Links are not automatically pasted as Markdown link if nothing is selected (#189338)

update automatic pasting
This commit is contained in:
Meghan Kulkarni 2023-07-31 11:30:03 -07:00 committed by GitHub
parent b670d63e6b
commit f7d59ef171
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 1 deletions

View file

@ -151,6 +151,9 @@ export async function createEditAddingLinksForUriList(
export function checkSmartPaste(document: SkinnyTextDocument, selectedRange: vscode.Range): SmartPaste {
const SmartPaste: SmartPaste = { pasteAsMarkdownLink: true, updateTitle: false };
if (selectedRange.isEmpty || /^[\s\n]*$/.test(document.getText(selectedRange))) {
return { pasteAsMarkdownLink: false, updateTitle: false };
}
for (const regex of smartPasteRegexes) {
const matches = [...document.getText().matchAll(regex.regex)];
for (const match of matches) {

View file

@ -148,11 +148,24 @@ suite('createEditAddingLinksForUriList', () => {
};
test('Should evaluate pasteAsMarkdownLink as true for selected plain text', () => {
const range = new vscode.Range(0, 5, 0, 5);
const range = new vscode.Range(0, 0, 0, 12);
const smartPaste = checkSmartPaste(skinnyDocument, range);
assert.strictEqual(smartPaste.pasteAsMarkdownLink, true);
});
test('Should evaluate pasteAsMarkdownLink as false for no selection', () => {
const range = new vscode.Range(0, 0, 0, 0);
const smartPaste = checkSmartPaste(skinnyDocument, range);
assert.strictEqual(smartPaste.pasteAsMarkdownLink, false);
});
test('Should evaluate pasteAsMarkdownLink as false for selected whitespace and new lines', () => {
skinnyDocument.getText = function () { return ' \r\n\r\n'; };
const range = new vscode.Range(0, 0, 0, 7);
const smartPaste = checkSmartPaste(skinnyDocument, range);
assert.strictEqual(smartPaste.pasteAsMarkdownLink, false);
});
test('Should evaluate pasteAsMarkdownLink as false for pasting within a backtick code block', () => {
skinnyDocument.getText = function () { return '```\r\n\r\n```'; };
const range = new vscode.Range(0, 5, 0, 5);