Merge pull request #1501 from RooVetGit/strip_all_boms

Strip all BOMs
This commit is contained in:
Matt Rubens 2025-03-08 18:48:47 -05:00 committed by GitHub
commit 10fca7b404
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -105,7 +105,7 @@ export class DiffViewProvider {
const edit = new vscode.WorkspaceEdit()
const rangeToReplace = new vscode.Range(0, 0, endLine + 1, 0)
const contentToReplace = accumulatedLines.slice(0, endLine + 1).join("\n") + "\n"
edit.replace(document.uri, rangeToReplace, stripBom(stripBom(contentToReplace)))
edit.replace(document.uri, rangeToReplace, this.stripAllBOMs(contentToReplace))
await vscode.workspace.applyEdit(edit)
// Update decorations
this.activeLineController.setActiveLine(endLine)
@ -132,7 +132,7 @@ export class DiffViewProvider {
finalEdit.replace(
document.uri,
new vscode.Range(0, 0, document.lineCount, 0),
stripBom(stripBom(accumulatedContent)),
this.stripAllBOMs(accumulatedContent),
)
await vscode.workspace.applyEdit(finalEdit)
// Clear all decorations at the end (after applying final edit)
@ -341,6 +341,16 @@ export class DiffViewProvider {
}
}
private stripAllBOMs(input: string): string {
let result = input
let previous
do {
previous = result
result = stripBom(result)
} while (result !== previous)
return result
}
// close editor if open?
async reset() {
this.editType = undefined