!7 cmodule WordAutoSplitter { S typingText, text, html = jlabel_textAsHTML_center(""); enhanceFrame { minFrameSize(f, 300, 300); } visualize { ret northAndCenterWithMargins(dm_bigInputAndSubmit('typingText, "Split", rThread { setText(typingText) }), fontSizePlus(5, dm_label('html))); } void setText(S text) enter { setField(+text); NavigableSet words = asCISet((LS) dm_call(dm_actualWordsCRUD(), 'actualWords)); new LS out; S s = text; for (S part : prefixesInCISet(words, s)) { out.add(part); } setField(html := jlabel_textAsHTML_center(lines_rtrim(out)); } }