Skip to content

Commit 72dccec

Browse files
author
Angelo Ross
committed
Display only feature list or summarized on cargo add
1 parent c25bee1 commit 72dccec

File tree

16 files changed

+44
-121
lines changed

16 files changed

+44
-121
lines changed

src/cargo/ops/cargo_add/mod.rs

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -943,56 +943,49 @@ fn print_dep_table_msg(shell: &mut Shell, dep: &DependencyUI) -> CargoResult<()>
943943
if matches!(shell.verbosity(), crate::core::shell::Verbosity::Quiet) {
944944
return Ok(());
945945
}
946+
946947
let (activated, deactivated) = dep.features();
947948
if !activated.is_empty() || !deactivated.is_empty() {
948949
let prefix = format!("{:>13}", " ");
949-
let suffix = format_feature_version_suffix(&dep);
950-
951-
shell.write_stderr(format_args!("{}Features{}:\n", prefix, suffix), &style::NOP)?;
950+
let suffix = format_features_version_suffix(&dep);
952951

953-
const MAX_FEATURE_PRINTS: usize = 50;
952+
shell.write_stderr(format_args!("{prefix}Features{suffix}:\n"), &style::NOP)?;
954953

955-
let mut activated_printed = 0;
954+
const MAX_FEATURE_PRINTS: usize = 30;
956955
let total_activated = activated.len();
957-
for feat in activated {
958-
if activated_printed >= MAX_FEATURE_PRINTS {
959-
let remaining = total_activated - activated_printed;
960-
shell.write_stderr(
961-
format_args!("{prefix}... {remaining} more activated features\n"),
962-
&style::NOP,
963-
)?;
964-
break;
965-
}
956+
let total_deactivated = deactivated.len();
966957

967-
shell.write_stderr(&prefix, &style::NOP)?;
968-
shell.write_stderr('+', &style::GOOD)?;
969-
shell.write_stderr(format_args!(" {}\n", feat), &style::NOP)?;
970-
activated_printed += 1;
958+
if total_activated <= MAX_FEATURE_PRINTS {
959+
for feat in activated {
960+
shell.write_stderr(&prefix, &style::NOP)?;
961+
shell.write_stderr('+', &style::GOOD)?;
962+
shell.write_stderr(format_args!(" {feat}\n"), &style::NOP)?;
963+
}
964+
} else {
965+
shell.write_stderr(
966+
format_args!("{prefix}{total_activated} activated features\n"),
967+
&style::NOP,
968+
)?;
971969
}
972970

973-
let mut deactivated_printed = 0;
974-
let total_deactivated = deactivated.len();
975-
for feat in deactivated {
976-
if activated_printed + deactivated_printed >= MAX_FEATURE_PRINTS {
977-
let remaining = total_deactivated - deactivated_printed;
978-
shell.write_stderr(
979-
format_args!("{prefix}... {remaining} more deactivated features\n"),
980-
&style::NOP,
981-
)?;
982-
break;
971+
if total_activated + total_deactivated <= MAX_FEATURE_PRINTS {
972+
for feat in deactivated {
973+
shell.write_stderr(&prefix, &style::NOP)?;
974+
shell.write_stderr('-', &style::ERROR)?;
975+
shell.write_stderr(format_args!(" {feat}\n"), &style::NOP)?;
983976
}
984-
985-
shell.write_stderr(&prefix, &style::NOP)?;
986-
shell.write_stderr('-', &style::ERROR)?;
987-
shell.write_stderr(format_args!(" {}\n", feat), &style::NOP)?;
988-
deactivated_printed += 1;
977+
} else {
978+
shell.write_stderr(
979+
format_args!("{prefix}{total_deactivated} deactivated features\n"),
980+
&style::NOP,
981+
)?;
989982
}
990983
}
991984

992985
Ok(())
993986
}
994987

995-
fn format_feature_version_suffix(dep: &DependencyUI) -> String {
988+
fn format_features_version_suffix(dep: &DependencyUI) -> String {
996989
if let Some(version) = &dep.available_version {
997990
let mut version = version.clone();
998991
version.build = Default::default();
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Updating `dummy-registry` index
2+
Adding your-face v99999.0.0 to dependencies.
3+
Features:
4+
100 activated features
5+
100 deactivated features

tests/testsuite/cargo_add/features_too_many_few_activated/mod.rs renamed to tests/testsuite/cargo_add/features_deactivated_over_limit/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use cargo_test_support::curr_dir;
88
#[cargo_test]
99
fn case() {
1010
const MANY_FEATURES_COUNT: usize = 200;
11-
const ACTIVATED_FEATURES_COUNT: usize = 10;
11+
const ACTIVATED_FEATURES_COUNT: usize = 30;
1212

1313
cargo_test_support::registry::init();
1414
let mut test_package =

0 commit comments

Comments
 (0)