KB wrote:I did some testing myself and found odd results. At first, everything worked fine. Then I used "Learn '[misspelled word]'" on a word, and after that I received no suggestions for "therpist". When I quit and restarted Scrivener, the suggestions reappeared. I tried this several times and both "Learn" and "Unlearn" seemed to break things. However, then things started working again, randomly - even using learn and unlearn didn't break things and my suggestions worked fine every time. So I booted into a clean account, and this time everything worked without any problems.
Curious is right. I've done some poking too, since reading your reply. The file here called dynamic-counts.dat got updated when I exited Scriv. TextEdit apparently can open it, but only shows what looks like a hash. However, when I open in in TextWrangler, I see a properly-formatted dict plist, with key and integer pairs, all of which appear to refer to nothing but different language dictionaries. (de, en, en_US, etc).
The write date/time on the file called "en" hasn't changed, nor has "LocalDictionary".
I created my own test account, and when I went to its ~/Library/Spelling folder, found no documents in it at all. Not even a LocalDictionary, en, or dynamic-counts document. So going back to my own library/spelling folder, I began poking around more.
The file called dynamic-text.dat shows a mod date of 8 July, which is some old-ish stuff. Inside it, I found a collection of misspelled words, words which I've mistyped myself (typically transposed keystrokes), and it's clearly based on words I've written. There are, for instance, mistyped character names from stories in there.
dynamic-text-tmp.dat is like that too, but a much shorter collection. Same creation and modification date and time as dynamic-text.dat.
LocalDictionary is showing no updates since three days ago, even after I've added new words to the spelling dictionary.
en is showing a mod date of yesterday, which is consistent with when I added new words. But "en" wouldn't be my spelling pref; it should be "en_US", I'd think. Maybe not.
So I figured why not, duplicated the contents of my user Spelling folder to my desktop, and nuked the documents in ~/Library/Spelling. I reloaded Scriv, told it to learn the word "therpist" (there were no suggestions in the popup), and a new "en" document was created, with that one word in it. When I told Scriv to unlearn the word, "therpist" got entered a second time in "en".
When I exited Scriv, there were no other new documents in ~/Library/Spelling, and "en" still contained both entries of "therpist".
There is no new "Spelling" folder being kept on the system level (in the top-level /Library folder, for instance). It's still only local user storage.
I wondered if copy/pasting the contents of LocalDictionary to en would preserve all the words I told this machine to learn, down through the years. (There are more than 2500 entries.) So I did that. I re-tried the "therpist" gambit, and when I added it to the dictionary, it appeared in the "en" list, along with the other 2500+ entries. This time when I told Scriv to forget it (there were still no suggestions in the popup, though they're appearing elsewhere), the misspelled word was deleted from the "en" dictionary file.
So … has Apple changed the nomenclature for user spelling dictionaries from LocalDictionary to [language]? And, if so, is Scriv's code looking for the correct file now? Or is it still looking for the old "LocalDictionary" file? Might that be doing something to prevent suggestions from appearing in the popup?