我正在构建生成包含某些内容的文件的 vscode 扩展。我想做的是强制vscode使用.editorconfig中定义的规则格式化那些新创建的文件。
我试图做以下事情:
fs.writeFile(file.name, file.content, (err) => {
if (err) { errors.push(err.message) }
let edit: vscode.WorkspaceEdit = new vscode.WorkspaceEdit();
const { activeTextEditor } = vscode.window;
const fileUri = vscode.Uri.file(file.name);
vscode.workspace.openTextDocument(fileUri).then((td) => {
vscode.commands.executeCommand('vscode.executeFormatDocumentProvider', fileUri, { tabSize: 50, insertSpaces: true, insertFinalNewline: true }).then((edits: vscode.TextEdit[]) => {
if (edits !== undefined) {
let formatEdit = new vscode.WorkspaceEdit();
formatEdit.set(fileUri, edits);
vscode.workspace.applyEdit(formatEdit);
vscode.workspace.saveAll();
}
},
error => console.error(error));
不幸的是,我遇到了两个问题:
- 我不知道如何检索 .editorconfig 属性,因为
vscode.workspace.getConfiguration('editor')
与 .editorconfig 文件中定义的属性不同 - 这种方法并不总是有效,有时格式根本不适用
有谁知道如何解决它?