mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 21:09:43 +00:00
Links are not automatically pasted as Markdown link if nothing is selected (#189338)
update automatic pasting
This commit is contained in:
parent
b670d63e6b
commit
f7d59ef171
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue