-*- mode: org -*-
- [X] Mark suggested words with the “recommended” class when the word forms a valid word both across and down for words that intersect at the current square.
- [X] Mark suggested words with the “highly-recommended” class when the word forms a valid word both across and down for all words that intersect the word.
- [X] Modify the algorithm to mark “highly-recommended” words to this: mark suggested words with the “highly-recommended” class when the word forms a valid word both across and down for all highly-recommended words that intersect the word. Words that are harmonious, but not harmonious with a highly-recommended word should be marked as “moderately-recommended” instead of “highly-recommended”.
- [X] Implement an “undo” function that sets the state of the puzzle back to before the last pick of a suggested word.
- [X] Show where the symmetric square is in the puzzle. Perhaps bind this to “,” which, when pressed, highlights the symmetric square to aid users before they actually black out a square.
- [X] Allow black/unblack square operations to be undone. (Also clear tiles?)
- [X] If we are showing only “highly-recommended” words yet there are none, show all (including recommended and non recommended) a. [X] But if we are showing all, ensure that the recommended are styled
- [X] Experiment: include suggests even if there are no letters filled in (void). Is it a performance thing? Yes; I tried it and there are way too many matches; the UI takes forever to update.
- [X] Autosave after each set number of changes
- [X] Support regular expressions in the puzzle. Suggestion: allow digits 0-9 in the puzzle, which refer to one of ten regular expressions. For instance, regex 1 might be any vowel (i.e., [aeiou]) and regex 3 might refer to whatever matched in regex 1 (i.e., \1). So we could specify something like “B 1 3 K” which would match “book” but not “beak”.
- [X] Surround regex by a pair of parentheses.
- [X] Add a toolbar widget to turn regular expressions off/on. When off, don’t display and don’t interpret digits as regex.
- [X] Investigate why when regex patterns is on, response time is a bit poky. Answer: This is because we can have a word which is essentially empty. Perhaps the regular expressions limits the letter to one of 5 or 10 choices, but that’s still an enormous number of candidates.
- [X] Support “redo”.
- [X] Suggest words even if all letters are provided in the case that one of the “letters” is a digit. (e.g., make suggestions even if the word is filled in with something like “BA3”)
- [X] Show a dictionary lookup of a clue on hover.