Skip to content

Commit fc66f22

Browse files
authored
Ignore non-swiftformat manifests (#47)
* Ignore non-swiftformat manifests * Change search string
1 parent 967e66c commit fc66f22

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/extension.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as vscode from "vscode";
44
import { SwiftFormatEditProvider } from "./SwiftFormatEditProvider";
55
import Current from "./Current";
66
import { promisify } from "util";
7+
import * as fs from 'fs';
78
import * as path from "path";
89
import { exec } from "child_process";
910

@@ -34,16 +35,30 @@ export function activate(context: vscode.ExtensionContext) {
3435
});
3536
}
3637

38+
// Find Package.swift file for swiftformat
39+
async function filterManifestsForSwiftformat(manifests: vscode.Uri[]): Promise<vscode.Uri[]> {
40+
const filteredManifests: vscode.Uri[] = [];
41+
for (const manifest of manifests) {
42+
const content = await fs.promises.readFile(manifest.fsPath, 'utf8');
43+
if (content.includes('SwiftFormat')) {
44+
filteredManifests.push(manifest);
45+
}
46+
}
47+
return filteredManifests;
48+
}
49+
3750
async function buildSwiftformatIfNeeded() {
3851
const manifests = await vscode.workspace.findFiles(
3952
"**/Package.swift",
4053
"**/.build/**",
4154
2,
4255
);
43-
if (manifests.length == 0) {
56+
const filteredManifests = await filterManifestsForSwiftformat(manifests);
57+
if (filteredManifests.length == 0) {
4458
return;
4559
}
46-
const buildOperations = manifests.map((manifest) => {
60+
61+
const buildOperations = filteredManifests.map((manifest) => {
4762
const manifestPath = manifest.fsPath;
4863
const manifestDir = path.dirname(manifestPath);
4964
return promisify(exec)("swift run -c release swiftformat --version", {

0 commit comments

Comments
 (0)