From 88a819792950717b3e5c20a60a44d99c69265fb3 Mon Sep 17 00:00:00 2001 From: Edison Hanchell Date: Sun, 29 Mar 2020 20:01:13 -0400 Subject: [PATCH 1/3] Added automatic naming of snapshots if the reference file is not untitled --- src/extension.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/extension.js b/src/extension.js index 93d6698..3826d10 100644 --- a/src/extension.js +++ b/src/extension.js @@ -16,7 +16,8 @@ const P_TITLE = 'Polacode 📸' function activate(context) { const htmlPath = path.resolve(context.extensionPath, 'webview/index.html') - let lastUsedImageUri = vscode.Uri.file(path.resolve(homedir(), 'Desktop/code.png')) + let lastUsedImageUri + let lastFile let panel vscode.window.registerWebviewPanelSerializer('polacode', { @@ -74,7 +75,7 @@ function activate(context) { case 'shoot': vscode.window .showSaveDialog({ - defaultUri: lastUsedImageUri, + defaultUri: getFileName(), filters: { Images: ['png'] } @@ -119,9 +120,28 @@ function activate(context) { }) } + function getFileName() { + let fileName = 'code.png' + if (!lastFile.isUntitled) { + const file = lastFile.uri.path.replace(/.*\/(\w+[\.\w+]*\.\w+)$/, '$1') + const dateString = () => { + const date = new Date() + return date.toLocaleString() + .replace(/\//g, '-') + .replace(/,/, ' at') + .replace(/:/g, '.') + .replace(/(\d+)-(\d+)-(\d+)/, '$3-$1-$2') + } + fileName = `code - ${file} ${dateString()}.png` + } + lastUsedImageUri = vscode.Uri.file(path.resolve(homedir(), 'Desktop', fileName)) + return lastUsedImageUri + } + function setupSelectionSync() { return vscode.window.onDidChangeTextEditorSelection(e => { if (e.selections[0] && !e.selections[0].isEmpty) { + lastFile = e.textEditor.document vscode.commands.executeCommand('editor.action.clipboardCopyWithSyntaxHighlightingAction') panel.postMessage({ type: 'update' From b51a32aa97870b0f17fd8008db901d0644f81503 Mon Sep 17 00:00:00 2001 From: Edison Hanchell Date: Sun, 29 Mar 2020 20:53:54 -0400 Subject: [PATCH 2/3] Updated to account for files without extensions and dotfiles --- src/extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension.js b/src/extension.js index 3826d10..ca34fd2 100644 --- a/src/extension.js +++ b/src/extension.js @@ -123,7 +123,7 @@ function activate(context) { function getFileName() { let fileName = 'code.png' if (!lastFile.isUntitled) { - const file = lastFile.uri.path.replace(/.*\/(\w+[\.\w+]*\.\w+)$/, '$1') + const file = lastFile.uri.path.replace(/.*\/(\w+[\.\w+]*)?(\.\w+)?$/, '$1$2') const dateString = () => { const date = new Date() return date.toLocaleString() From cae34a80b7cafe63ac610ea58e4fb79cb686b806 Mon Sep 17 00:00:00 2001 From: Edison Hanchell Date: Mon, 30 Mar 2020 01:27:53 -0400 Subject: [PATCH 3/3] Modified regex to include additional special characters in filename --- src/extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension.js b/src/extension.js index ca34fd2..85b2f93 100644 --- a/src/extension.js +++ b/src/extension.js @@ -123,7 +123,7 @@ function activate(context) { function getFileName() { let fileName = 'code.png' if (!lastFile.isUntitled) { - const file = lastFile.uri.path.replace(/.*\/(\w+[\.\w+]*)?(\.\w+)?$/, '$1$2') + const file = lastFile.uri.path.replace(/.*\/(.+[\..+]*)?(\..+)?$/, '$1$2') const dateString = () => { const date = new Date() return date.toLocaleString()