commands property

  1. @override
NatrixBlock get commands
override

commands is a section that lists applicable sub-NatrixCommands.

Implementation

@override
NatrixBlock get commands {
  if (!context.cmd.hasChildren()) {
    return NatrixBlock.empty();
  }

  final List<NatrixText> lines = [];
  context.cmd.children.forEach((cmd) {
    final String name = cmd.id + " " * (maxCmdLength - cmd.id.length);
    final List<NatrixText> tooltip = NatrixText(
      cmd.tooltip,
    ).wrap(lineLength - name.length - 1);

    bool first = true;
    tooltip.forEach((tip) {
      if (first) {
        lines.add(NatrixText(name + tip.text));
        first = false;
        return;
      }
      lines.add(NatrixText(NatrixChar(' ') * (name.length) + tip.text));
    });
  });
  return NatrixBlock(
    heading: NatrixText("Commands:", style: NatrixStyle.bold),
    content: NatrixStructure(
      spacePrefix: 1,
      sections: [NatrixColumn(lines: lines.toList())],
    ),
  );
}