!7 sclass RememberAllWords > DynPrintLog { new LinkedHashSet wordSet; int interval = 10000; void start { print("Got " + n2(l(wordSet), "word")); doEvery(interval, r doIt); if (syncEmpty(wordSet)) doIt(); } void doIt { temp enter(); please include function getText. new Set wordsOnScreen; for (Component c : allComponentsInWindows()) { S text = (S) callOpt(mc(), 'getText, c); // Reflection abuse! addAll(wordsOnScreen, words2_notNextToNumbers(text)); } Collection newWords = setMinusSet_syncOnLatter(wordsOnScreen, wordSet); newWords = onlyStringsShorterThan(100, newWords); if (nempty(newWords)) { syncAddAll(wordSet, newWords); print("Learned new words (now " + n2(wordSet) + "): " + shorten(joinWithComma(newWords), 200)); change(); } } }