Skip to content

Commit f5ebcd9

Browse files
authored
Merge pull request #2513 from rtsuk/master
Restore cargo fmt behavior in workspaces
2 parents bcaeab7 + a1f9796 commit f5ebcd9

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ log = "0.4"
4545
env_logger = "0.5"
4646
getopts = "0.2"
4747
derive-new = "0.5"
48-
cargo_metadata = "0.5"
48+
cargo_metadata = "0.5.1"
4949
rustc-ap-syntax = "60.0.0"
5050
rustc-ap-rustc_errors = "60.0.0"
5151

src/cargo-fmt/main.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,16 @@ fn get_targets(strategy: &CargoFmtStrategy) -> Result<HashSet<Target>, io::Error
249249

250250
fn get_targets_root_only(targets: &mut HashSet<Target>) -> Result<(), io::Error> {
251251
let metadata = get_cargo_metadata(None)?;
252+
let current_dir = env::current_dir()?.canonicalize()?;
253+
let current_dir_manifest = current_dir.join("Cargo.toml");
254+
let workspace_root_path = PathBuf::from(&metadata.workspace_root).canonicalize()?;
255+
let in_workspace_root = workspace_root_path == current_dir;
252256

253257
for package in metadata.packages {
254-
for target in package.targets {
255-
targets.insert(Target::from_target(&target));
258+
if in_workspace_root || PathBuf::from(&package.manifest_path) == current_dir_manifest {
259+
for target in package.targets {
260+
targets.insert(Target::from_target(&target));
261+
}
256262
}
257263
}
258264

0 commit comments

Comments
 (0)