suite rule и suite list

- suite rule дописывает правило: номер берётся следующим за наибольшим, блоки
  раскладываются в порядке норма, ПОЧЕМУ, ПРИМЕРЫ, --after ставит правило рядом
  с тем, которое оно уточняет
- ступень называется категорией (requirement, prohibition, ...), а не словом
  языка, поэтому вызывающему не нужно знать, на каком языке записан набор
- suite list показывает темы со слоями, а с осью — что возьмёт компонент; отбор
  слоёв вынесен в suite.Assemble, откуда его возьмут проектные команды
- слои темы теперь всегда возвращаются базовым вперёд
This commit is contained in:
av
2026-07-27 11:36:19 +03:00
parent 5321fba89d
commit 8331aa1ca5
8 changed files with 706 additions and 6 deletions
+8 -4
View File
@@ -107,13 +107,17 @@ func validate(f Field, value string) error {
if value == "" {
return nil
}
// Options are what the dialogue offers; a check, where there is one, is
// what decides. A field may well accept more than it suggests — naming a
// step by its category is the suggestion, naming it by the word of the
// suite is accepted all the same.
if f.Check != nil {
return f.Check(value)
}
if len(f.Options) > 0 && !slices.Contains(f.Options, value) {
return fmt.Errorf("one of: %s", strings.Join(f.Options, ", "))
}
if f.Check == nil {
return nil
}
return f.Check(value)
return nil
}
// resolve settles the fields in automatic mode: what came on the command line