add diff with selection

This commit is contained in:
bobo.yang 2023-05-05 16:52:25 +08:00
parent 1802b2c085
commit 2c86cbbb4e

View File

@ -56,6 +56,8 @@ export async function diffView(code: string) {
return; return;
} }
const selectedText = editor.document.getText(editor.selection);
const curFile = editor.document.fileName; const curFile = editor.document.fileName;
// get file name from fileSelected // get file name from fileSelected
@ -68,6 +70,18 @@ export async function diffView(code: string) {
// save code to temp file // save code to temp file
await vscode.workspace.fs.writeFile(vscode.Uri.file(tempFile), Buffer.from(code)); await vscode.workspace.fs.writeFile(vscode.Uri.file(tempFile), Buffer.from(code));
// open diff view if (selectedText) {
vscode.commands.executeCommand('vscode.diff', vscode.Uri.file(curFile), vscode.Uri.file(tempFile), 'Diff View'); // create temp directory and file
const tempDir = await createTempSubdirectory('devchat/context');
const tempSelectCodeFile = path.join(tempDir, fileName);
// save code to temp file
await vscode.workspace.fs.writeFile(vscode.Uri.file(tempSelectCodeFile), Buffer.from(selectedText));
// open diff view
vscode.commands.executeCommand('vscode.diff', vscode.Uri.file(tempSelectCodeFile), vscode.Uri.file(tempFile), 'Diff View');
} else {
// open diff view
vscode.commands.executeCommand('vscode.diff', vscode.Uri.file(curFile), vscode.Uri.file(tempFile), 'Diff View');
}
} }