2

我正在构建生成包含某些内容的文件的 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));

不幸的是,我遇到了两个问题:

  1. 我不知道如何检索 .editorconfig 属性,因为vscode.workspace.getConfiguration('editor')与 .editorconfig 文件中定义的属性不同
  2. 这种方法并不总是有效,有时格式根本不适用

有谁知道如何解决它?

4

0 回答 0