grid_min_cell( width ) adds the adaptive mode WrapGrid was missing: instead of a fixed column count, the count is derived at layout time from the available width so every cell is at least `width` wide (any Length, so a fluid threshold works; never fewer than one column), re-derived on every resize. Cells then share the width equally, and WrapGrid::max_columns( n ) caps the derived count so cells grow instead of multiplying on very wide surfaces — the cap only applies to the adaptive mode, grid( n ) keeps the fixed behaviour untouched. Four new layout tests cover width derivation, spacing accounting, the one-column floor and the cap; the row-wrap assertions check X positions rather than Y because zero-height spacer children produce zero-height rows. flex( child ) now distributes leftover height inside a Column, mirroring its leftover-width behaviour in a Row: flex children join the weight pool alongside weight-only spacers and y-scrolls, draw their child inside the allocated share at full inner width, and contribute zero to the column's natural height exactly like a row counts flex width. This closes the documented "vertical flex is not yet implemented" gap; the Flex rustdoc and the widgets.md entry now describe both axes. Add scripts/style-check.sh and a make stylecheck target, wired into CI: mechanical verification of the grep-checkable subset of code_style_guide.md — tab indentation and spaces inside attribute brackets — with comment lines skipped so prose may cite raw attribute syntax. To turn the check on green, the 82 unspaced attribute sites across 24 files (#[test], #[derive(...)], #[cfg(...)], #[allow(...)]) were normalized to the spaced form. CONTRIBUTING and the style guide reference the new target; brace placement and paren spacing remain review concerns.
31 lines
1.0 KiB
Bash
Executable File
31 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# Mechanical checks for the Modified Allman style (code_style_guide.md).
|
|
# Only rules grep can verify without false positives are enforced here —
|
|
# brace placement and paren spacing stay a review concern. Run via
|
|
# `make stylecheck`; CI runs it on every push.
|
|
set -u
|
|
fail=0
|
|
files=$( find src examples tests benches -name '*.rs' )
|
|
|
|
# 1. Tabs for indentation: no source line may start with a space.
|
|
hits=$( grep -nE '^ ' $files /dev/null )
|
|
if [ -n "$hits" ]
|
|
then
|
|
printf '%s\n' "$hits"
|
|
echo "style: space indentation found — this tree indents with tabs"
|
|
fail=1
|
|
fi
|
|
|
|
# 2. Spaces inside attribute brackets: #[ derive( Clone ) ], #[ test ],
|
|
# #![ deny( … ) ]. Comment lines are skipped so prose may mention raw
|
|
# attribute syntax like `#[doc(hidden)]`.
|
|
hits=$( grep -nE '#!?\[[a-zA-Z_]' $files /dev/null | grep -vE '^[^:]+:[0-9]+:[[:space:]]*(///|//!|//)' )
|
|
if [ -n "$hits" ]
|
|
then
|
|
printf '%s\n' "$hits"
|
|
echo "style: unspaced attribute brackets — write #[ derive( … ) ], #[ test ]"
|
|
fail=1
|
|
fi
|
|
|
|
exit $fail
|