2

一部のコンテンツを含むファイルを生成するvscode拡張機能を構築しています。私がやろうとしているのは、.editorconfig で定義されたルールを使用して、新しく作成されたファイルを vscode に強制的にフォーマットさせることです。

私は次のことをしようとしました:

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));

残念ながら、私は2つの問題に直面しました:

  1. vscode.workspace.getConfiguration('editor').editorconfig ファイルで定義されているものと同じではないため、.editorconfig プロパティを取得する方法がわかりません
  2. このアプローチは常に機能するとは限りません。フォーマットがまったく適用されない場合があります。

誰もそれを解決する方法を知っていますか?

4

0 に答える 0