parent help_node
object help_index

var root name 'help_index
var help_index inited 0
var help_index index 0

eval
.initialize();
.

method init
(> pass() <);
if (!inited) {
  index = #[];
  inited = 1;
}
.

method index
return index;
.

method set_index
arg new;

if (!.is_owned_by(sender()))
  throw( ~perm, "Sender isn't an owner.");
index = new;
.

method text
return [@pass(), "", @$list.columnize( $list.map( dict_keys( index), 'name), 4)];
.

method match_menu
arg string;

catch ~keynf {
  return index[string];
}
return pass(string);
.