保姆级VSCode 插件开发
第一章 VSCode 插件开发入门之语音转文字记录
文章目录
前言
本篇文章主要介绍开发一个VSCode插件实现语音转文字记录笔记的功能。之前听到一个比较好课,想看逐字稿,就想着找个实时语音转文字的工具。在浏览器插件中搜了一下,没有好用的。还特意买了一个印象笔记的语音转文字笔。这次刚好发现VSCode官方提供了一个VS Code Speech的插件,可以实现实时语音转文字的功能。可以将创建文件和调用API结合起来,实现语音转文字记笔记的功能。本节先实现新文件的创建。下一节加入语音转文字功能的API调用。
一、创建新笔记文件
1.生成新项目框架
yo code
2. 创建新笔记文件
-
生成唯一文件名: 使用
new Date().toISOString().replace(/[-:.]/g, '')
生成一个基于当前时间的唯一字符串,并将其作为文件名的一部分。 -
使用
preview: false
参数: 在vscode.window.showTextDocument(document, { preview: false })
中使用preview: false
参数,确保新文件不会覆盖之前打开的文件,而是作为一个新的标签页打开。 -
代码:extension.ts
import * as vscode from 'vscode';
import * as path from 'path';
export function activate(context: vscode.ExtensionContext) {
console.log('Congratulations, your extension "noteCreator" is now active!');
let disposable = vscode.commands.registerCommand('noteCreator.createNote', async () => {
// 检查工作区文件夹
const workspaceFolders = vscode.workspace.workspaceFolders;
if (!workspaceFolders) {
vscode.window.showErrorMessage('No workspace folder is open');
return;
}
// 获取第一个工作区文件夹的路径
const workspaceFolder = workspaceFolders[0].uri.fsPath;
// 生成唯一文件名
let timestamp = new Date().toISOString().replace(/[-:.]/g, '');
timestamp = timestamp.replace(/[A-Za-z]/g, ''); // 去掉字母,仅保留数字
const fileName = `note_${timestamp}.txt`;
// 定义新笔记文件的路径
const noteUri = vscode.Uri.file(path.join(workspaceFolder, fileName));
// 创建新笔记文件的内容
const writeData = Buffer.from("This is your new note. Start writing here...", 'utf8');
// 将内容写入新笔记文件
await vscode.workspace.fs.writeFile(noteUri, writeData);
// 打开新笔记文件进行编辑
const document = await vscode.workspace.openTextDocument(noteUri);
await vscode.window.showTextDocument(document, { preview: false });
});
context.subscriptions.push(disposable);
}
export function deactivate() {}
3. package.json
注册命令
4. 效果展示
如下图所示。
总结
今天的主要内容是实现笔记文件的创建,下一次完善语音输入功能。
标签:文件,插件,const,VSCode,笔记,vscode,保姆 From: https://blog.csdn.net/XWWW668899/article/details/141870258