in src/buildifier/buildifier_format_provider.ts [24:58]
public async provideDocumentFormattingEdits(
document: vscode.TextDocument,
options: vscode.FormattingOptions,
token: vscode.CancellationToken,
): Promise<vscode.TextEdit[]> {
const bazelConfig = vscode.workspace.getConfiguration("bazel");
const applyLintFixes = bazelConfig.get<boolean>("buildifierFixOnFormat");
const fileContent = document.getText();
const type = getBuildifierFileType(document.uri.fsPath);
try {
const formattedContent = await buildifierFormat(
fileContent,
type,
applyLintFixes,
);
if (formattedContent === fileContent) {
// If the file didn't change, return any empty array of edits.
return [];
}
const edits = [
new vscode.TextEdit(
new vscode.Range(
document.positionAt(0),
document.positionAt(fileContent.length),
),
formattedContent,
),
];
return edits;
} catch (err) {
vscode.window.showErrorMessage(`${err}`);
}
}