In particular, Ben is referring to the automatic spelling correction that Sid is implementing. Off the top of my head, I can think of a few different ways this could fit in:
- We can implement Sid's auto-correction on top of native spellcheck, just like today it's implemented on top of Hunspell. - OS X will provide similar (though not identical) functionality, and we deem this good enough. - We decide native integration is more important than feature parity. As we add more smarts to the spellchecker, we'd need to keep re-evaluating. Thoughts? -Nick On Wed, Jun 10, 2009 at 2:38 PM, Ben Goodger (Google) <b...@chromium.org>wrote: > > For whoever is coordinating this effort, please sync up with Nick Baum > on spell checking. He has some additional considerations in mind we > should make sure we understand what's possible here. > > -Ben > > On Wed, Jun 10, 2009 at 2:36 PM, Mike Pinkerton<pinker...@chromium.org> > wrote: > > > > I think we're all on the same page. I pushed Paul to consider having > > both in his initial design since I forgot about the ability to add > > additional dictionaries. I'm glad others are in support of that as the > > way to get additional language support as opposed to trying to shim > > both implementations together. > > > > I agree with Jeremy, let's focus on the OSX spellchecker and ignore > > hunspell for now. Additionally, let's aim for the OS X spelling dialog > > if we can do it, regardless of whether or not win/linux can do it. > > > > On Wed, Jun 10, 2009 at 11:59 AM, Thomas Van > > Lenten<thoma...@chromium.org> wrote: > >> > >> > >> On Wed, Jun 10, 2009 at 2:38 PM, p_W <paulwoolcoc...@gmail.com> wrote: > >>> > >>> Forgive my (possibly) stupid concern here, but a few months ago there > >>> was some talk about this, and about how integrating with the OS's > >>> spellchecker was the preferred route as it allowed users to use their > >>> dictionary customizations over all their applications. Here is link > >>> to the discussion: > >>> > >>> > >>> > http://groups.google.com/group/chromium-dev/browse_thread/thread/31832b99aeb953d7/d722d0f183a0b35f?hl=en&lnk=gst&q=OSX+spell#d722d0f183a0b35f > >>> > >>> Any thoughts about this? > >> > >> Uh, that's what this thread is about, his project is to switch to using > the > >> os one instead. And Jeremy was commenting that he doesn't need to > support > >> both, just switch to the native. Or am I reading this differently? > >> TVL > >> > >>> > >>> On Jun 9, 9:00 pm, Jeremy Moskovich <jer...@chromium.org> wrote: > >>> > A couple more things: > >>> > > >>> > * I think ultimately we should support the grammar checker, but at > first > >>> > just getting spellchecking to work would be great! > >>> > * +1 for supporting the Cocoa gui for spellchecking paragraphs, see > the > >>> > 2nd > >>> > paragraph bellow for more thoughts on this. > >>> > > >>> > Matching Linux & Windows functionality is a non-goal IMHO, to > reiterate > >>> > we > >>> > want to behave like a native Cocoa application. > >>> > > >>> > WebKit/Safari already support these features so the issue is to get > the > >>> > plumbing working right in our multiprocess model (which may be > >>> > non-trivial). > >>> > IMHO the correct route here is to look at how this is done in WebKit > >>> > and > >>> > match the behavior there as much as possible, that's what I'm doing > with > >>> > the > >>> > keyboard events at the moment and it's proving pretty fruitful. > >>> > > >>> > It's really exciting you're working on this!! > >>> > > >>> > Best regards, > >>> > Jeremy > >>> > > >>> > On Tue, Jun 9, 2009 at 5:50 PM, Jeremy Moskovich > >>> > <jer...@chromium.org>wrote: > >>> > > >>> > > IMHO there is no need to maintain dual hunspell/OSX spellchecker > >>> > > backends. > >>> > > There are addon OSX spellcheckers for other languages e.g. > >>> > >http://www.mitzpettel.com/software/hspell.php > >>> > > . Writing additional spelling servers is pretty simple so I think > >>> > > the correct approach would be: > >>> > > >>> > > 1. Getting OSX spelling/grammar checking support working well. > >>> > > >>> > > 2. If the need arises, wrapping hunspell as an Apple Spelling > service > >>> > > and provide it as a separate project users can install. > >>> > > >>> > > Best regards, > >>> > > Jeremy > >>> > > >>> > > On Tue, Jun 9, 2009 at 5:32 PM, Paul Wicks <pwick...@gmail.com> > wrote: > >>> > > >>> > >> Crap, sorry to post an incomplete version of this post earlier. > >>> > >> Accidentally hit send before I finished it. Argh... > >>> > > >>> > >> Anyway, > >>> > > >>> > >> I've been looking at implementing support for the OS X > spellchecker > >>> > >> on the > >>> > >> Mac build as part of my SoC project and I thought I'd run some > >>> > >> thoughts I > >>> > >> had today by the list. > >>> > > >>> > >> For the basic design, both hunspell and the os x spellchecker need > to > >>> > >> be > >>> > >> usable, since hunspell supports more languages than OS X does. The > >>> > >> public > >>> > >> interface of the Spellchecker class is fairly small (mainly 2 > >>> > >> methods: > >>> > >> SpellCheckWord, AddWord). It seems that mapping these onto the OS > X > >>> > >> spellchecker shouldn't be too hard. I originally thought to do > >>> > >> something > >>> > >> more elaborate and create seperate spellchecker classes for each > >>> > >> platform, > >>> > >> but then realized that I could do it more simply as follows: > >>> > > >>> > >> -leave the majority of spellchecker.cc as is. It works and I don't > >>> > >> see any > >>> > >> reason to mess with what works. > >>> > >> -for SpellCheckWord, change the call to hunspell_->spell(...) to > call > >>> > >> a > >>> > >> (new) private method in the SpellChecker class. In this method, > add > >>> > >> some > >>> > >> code at the beginning that will check if we are on the mac and if > the > >>> > >> built-in spellchecker supports the current language and if so > checks > >>> > >> the > >>> > >> word using it, other wise using hunspell as before. This way, we > can > >>> > >> leave > >>> > >> the rest of the code alone and still use the > SpellCheckWordIterator > >>> > >> to grab > >>> > >> individual words out of the string. As for getting the suggestions > >>> > >> for a > >>> > >> word, it might make sense to do things a little differently, since > >>> > >> there is > >>> > >> no need to create and manage the char** suggestions variable to > pass > >>> > >> to > >>> > >> hunspell, as NSSpellChecker can give us an easy-to-iterate-through > >>> > >> NSArray. > >>> > >> Probably just an #if defined(OS_MACOSX) would suffice here, since > the > >>> > >> code here will be wholly different. > >>> > >> -for AddWord, their probably isn't as much of a need to abstract > the > >>> > >> hunspell specific code (it's all hunspell code), so just an #if > >>> > >> defined( > >>> > >> OS_MACOSX)+language support check would suffice. > >>> > >> -The other public methods all deal with language selection and > >>> > >> querying, > >>> > >> which should remain the same, since the OS X spellchecker only > >>> > >> supports a > >>> > >> subset of the languages supported by hunspell. (there may need to > be > >>> > >> a > >>> > >> little bit of code to translate between the codes for supported > >>> > >> languages so > >>> > >> that the built-in spellchecker always gets used when it should, > but > >>> > >> this > >>> > >> should be a relatively simple matter. > >>> > >> -The private method IsValidContraction could call the same new > >>> > >> private > >>> > >> method as defined above. > >>> > > >>> > >> -This way, the public interface stays the same and the mac folks > get > >>> > >> to > >>> > >> use their own dictionary. > >>> > >> -The newly added autocorrection code should work just the same as > >>> > >> before, > >>> > >> as it relies on SpellCheckWord. > >>> > >> -also, [NSApplication sharedApplication] needs to be called before > >>> > >> the the > >>> > >> built in spellchecker is used. I'm not sure of where the best > place > >>> > >> to put > >>> > >> this call is. > >>> > > >>> > >> The upside to doing it this way is that it should be relatively > easy > >>> > >> to > >>> > >> modify the spellchecking code for any one platform without > breaking > >>> > >> any > >>> > >> other. > >>> > >> The main downside that I can see for doing it this way is that for > >>> > >> languages that are supported by OS X, we will be keeping a > hunspell > >>> > >> object > >>> > >> around that we don't need, at least until the language changes to > >>> > >> something > >>> > >> hunspell supports and os x doesn't > >>> > > >>> > >> There are a few additional features that the OS X spellchecker > >>> > >> supports > >>> > >> that need some discussion. > >>> > >> 1. Grammar checker: I know I've seen some talk about adding this > to > >>> > >> chromium somewhere. The OS X spellchecker also has support for > >>> > >> checking the > >>> > >> grammar of a string (only in 10.5+), so that is something to keep > in > >>> > >> mind > >>> > >> when that stage is reached. > >>> > >> 2. Spelling Panel: The OS X spellchecker has support for a > "Spelling > >>> > >> Panel". Similar to spellchecking in most word processors, this > >>> > >> provides a > >>> > >> seperate GUI Panel that allows for checking a whole paragraph in > one > >>> > >> go. The > >>> > >> main problems here are that this is functionality that is in no > way > >>> > >> matched > >>> > >> by the Windows or Linux Builds. Additionally, it would require > some > >>> > >> way of > >>> > >> identifying the source of each word, since the spelling panel > allows > >>> > >> for the > >>> > >> creation of a list of ignored words, which are unique to a > document. > >>> > >> In the > >>> > >> case of chromium, a document would correspond to a given > textfield, > >>> > >> most > >>> > >> likely. The NSSpellChecker API provides a function > >>> > >> (uniqueSpellDocumentTag) > >>> > >> to generate tags for this purpose, but a way would have to be > found > >>> > >> to > >>> > >> generate and match these tags up, which could be complicated > >>> > >> (although I > >>> > >> admit that I've not spent a lot of time looking at the code that > >>> > >> would need > >>> > >> to be altered to make this aspect of the spelling panel function). > >>> > > >>> > >> Any thoughts would be great. Thanks, > >>> > > >>> > >> -Paul Wicks > >>> > >>> > >> > >> > >> > > >> > > > > > > > > -- > > Mike Pinkerton > > Mac Weenie > > pinker...@google.com > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---