Difference between revisions of "Spellcheck Extension for Arbitrary Web Pages"
m (→IRC log of conversation about this extension:) |
(→IRC log of conversation about this extension:) |
||
Line 2: | Line 2: | ||
<pre> | <pre> | ||
− | 12:14 <@dave> how hard would it be to add Tools > Spell-Check? | + | 12:14 <@dave> how hard would it be to add Tools > Spell-Check? <br /> |
− | 12:14 <@dave> i.e., for an arbitrary page vs. textbox | + | 12:14 <@dave> i.e., for an arbitrary page vs. textbox <br /> |
− | 12:14 < shaver> good question | + | 12:14 < shaver> good question <br /> |
− | 12:15 <@dave> or probably what I mean is Tools > Highlight Spelling Mistakes | + | 12:15 <@dave> or probably what I mean is Tools > Highlight Spelling Mistakes <br /> |
− | 12:19 < shaver> you'd want a presentation like the findbar? | + | 12:19 < shaver> you'd want a presentation like the findbar? <br /> |
− | 12:19 <@dave> depends on use case, but that's one good one, yeah | + | 12:19 <@dave> depends on use case, but that's one good one, yeah <br /> |
− | 12:19 <@dave> I'm thinking of being able to just underline all mispelled words on the page | + | 12:19 <@dave> I'm thinking of being able to just underline all mispelled words on the page <br /> |
− | 12:23 < mfinkle> look into http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/public/nsIInlineSpellChecker.idl | + | 12:23 < mfinkle> look into http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/public/nsIInlineSpellChecker.idl <br /> |
− | 12:23 < mfinkle> it is keyed to use an editor | + | 12:23 < mfinkle> it is keyed to use an editor <br /> |
− | 12:23 < mfinkle> but the code inside could be useful | + | 12:23 < mfinkle> but the code inside could be useful <br /> |
− | 12:23 <@dave> I should talk to enn I guess | + | 12:23 <@dave> I should talk to enn I guess <br /> |
− | 12:24 < mfinkle> the red squiggle is done using a special kind of selection type | + | 12:24 < mfinkle> the red squiggle is done using a special kind of selection type <br /> |
− | 12:25 <@dave> mfinkle: yeah, I've seen that code before. | + | 12:25 <@dave> mfinkle: yeah, I've seen that code before. <br /> |
− | 12:25 <@dave> the selection | + | 12:25 <@dave> the selection <br /> |
− | 12:25 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp | + | 12:25 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp <br /> |
− | 12:25 <@dave> but this idl looks interesting | + | 12:25 <@dave> but this idl looks interesting <br /> |
− | 12:25 < mfinkle> is an inline spellcheck implementation for editors | + | 12:25 < mfinkle> is an inline spellcheck implementation for editors <br /> |
− | 12:26 < mfinkle> DoSpellCheck does some heavy lifting http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp#1223 | + | 12:26 < mfinkle> DoSpellCheck does some heavy lifting <br />http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp#1223 <br /> |
− | 12:27 < mfinkle> whoops, down a few lines | + | 12:27 < mfinkle> whoops, down a few lines <br /> |
− | 12:28 <@dave> 1278 if (! editor) | + | 12:28 <@dave> 1278 if (! editor) <br /> |
− | 12:28 <@dave> 1279 return NS_ERROR_FAILURE; | + | 12:28 <@dave> 1279 return NS_ERROR_FAILURE; <br /> |
− | 12:28 <@dave> hm | + | 12:28 <@dave> hm <br /> |
− | 12:28 < mfinkle> yeah, but it seems to use ranges, so swapping in a document shouldn't be impossible | + | 12:28 < mfinkle> yeah, but it seems to use ranges, so swapping in a document shouldn't be impossible <br /> |
− | 12:29 < mfinkle> and notice that mSpellCheck is an instance of the real spellcheck engine | + | 12:29 < mfinkle> and notice that mSpellCheck is an instance of the real spellcheck engine <br /> |
− | 12:29 <@dave> yeah | + | 12:29 <@dave> yeah <br /> |
− | 12:29 <@dave> I'm trying to find uses of editor, and it's thin | + | 12:29 <@dave> I'm trying to find uses of editor, and it's thin <br /> |
− | 12:31 < mfinkle> well mSpellCheck is a nsIEditorSpellCheck | + | 12:31 < mfinkle> well mSpellCheck is a nsIEditorSpellCheck <br /> |
− | 12:31 < mfinkle> must go deeper | + | 12:31 < mfinkle> must go deeper <br /> |
− | 12:33 < mfinkle> crap, nsISpellCheck is not public - wtf | + | 12:33 < mfinkle> crap, nsISpellCheck is not public - wtf <br /> |
− | 12:33 <@dave> weird | + | 12:33 <@dave> weird <br /> |
− | 12:33 < shaver> fixable, I bet | + | 12:33 < shaver> fixable, I bet <br /> |
− | 12:34 < mfinkle> I suppose building directly against the tree (instead of the sdk) is doable | + | 12:34 < mfinkle> I suppose building directly against the tree (instead of the sdk) is doable <br /> |
− | 12:34 <@dave> so this is a tree exercise vs. an ext | + | 12:34 <@dave> so this is a tree exercise vs. an ext <br /> |
− | 12:34 < mfinkle> kinda like vlad's canvas3d | + | 12:34 < mfinkle> kinda like vlad's canvas3d <br /> |
− | 12:34 < mfinkle> right | + | 12:34 < mfinkle> right <br /> |
− | 12:34 < shaver> no, it's an extension | + | 12:34 < shaver> no, it's an extension <br /> |
− | 12:34 < mfinkle> well, it can be an extension | + | 12:34 < mfinkle> well, it can be an extension <br /> |
− | 12:34 < shaver> it's just not one that can use only frozen APIs | + | 12:34 < shaver> it's just not one that can use only frozen APIs <br /> |
− | 12:34 < mfinkle> but it needs the tree | + | 12:34 < mfinkle> but it needs the tree <br /> |
− | 12:34 < shaver> like basically any useful extension | + | 12:34 < shaver> like basically any useful extension <br /> |
− | 12:34 <@dave> :) | + | 12:34 <@dave> :) <br /> |
− | 12:34 < mfinkle> sadly | + | 12:34 < mfinkle> sadly <br /> |
− | 12:35 < mfinkle> but anyway - onward | + | 12:35 < mfinkle> but anyway - onward <br /> |
− | 12:35 <@dave> I think I'll take some notes here and craft a project for future | + | 12:35 <@dave> I think I'll take some notes here and craft a project for future <br /> |
− | 12:35 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozSpellChecker.cpp | + | 12:35 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozSpellChecker.cpp <br /> |
− | 12:35 < mfinkle> implements the nsISpellCheck interface | + | 12:35 < mfinkle> implements the nsISpellCheck interface <br /> |
− | 12:36 < mfinkle> takes an nsITextServicesDocument | + | 12:36 < mfinkle> takes an nsITextServicesDocument <br /> |
− | 12:36 <@dave> how generic is that? | + | 12:36 <@dave> how generic is that? <br /> |
− | 12:38 < mfinkle> can be initialized with a document! http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/src/nsTextServicesDocument.cpp#175 | + | 12:38 < mfinkle> can be initialized with a document! http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/src/nsTextServicesDocument.cpp#175 <br /> |
− | 12:38 < mfinkle> promising | + | 12:38 < mfinkle> promising <br /> |
</pre> | </pre> | ||
Revision as of 11:51, 12 October 2007
IRC log of conversation about this extension:
12:14 <@dave> how hard would it be to add Tools > Spell-Check? <br /> 12:14 <@dave> i.e., for an arbitrary page vs. textbox <br /> 12:14 < shaver> good question <br /> 12:15 <@dave> or probably what I mean is Tools > Highlight Spelling Mistakes <br /> 12:19 < shaver> you'd want a presentation like the findbar? <br /> 12:19 <@dave> depends on use case, but that's one good one, yeah <br /> 12:19 <@dave> I'm thinking of being able to just underline all mispelled words on the page <br /> 12:23 < mfinkle> look into http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/public/nsIInlineSpellChecker.idl <br /> 12:23 < mfinkle> it is keyed to use an editor <br /> 12:23 < mfinkle> but the code inside could be useful <br /> 12:23 <@dave> I should talk to enn I guess <br /> 12:24 < mfinkle> the red squiggle is done using a special kind of selection type <br /> 12:25 <@dave> mfinkle: yeah, I've seen that code before. <br /> 12:25 <@dave> the selection <br /> 12:25 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp <br /> 12:25 <@dave> but this idl looks interesting <br /> 12:25 < mfinkle> is an inline spellcheck implementation for editors <br /> 12:26 < mfinkle> DoSpellCheck does some heavy lifting <br />http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp#1223 <br /> 12:27 < mfinkle> whoops, down a few lines <br /> 12:28 <@dave> 1278 if (! editor) <br /> 12:28 <@dave> 1279 return NS_ERROR_FAILURE; <br /> 12:28 <@dave> hm <br /> 12:28 < mfinkle> yeah, but it seems to use ranges, so swapping in a document shouldn't be impossible <br /> 12:29 < mfinkle> and notice that mSpellCheck is an instance of the real spellcheck engine <br /> 12:29 <@dave> yeah <br /> 12:29 <@dave> I'm trying to find uses of editor, and it's thin <br /> 12:31 < mfinkle> well mSpellCheck is a nsIEditorSpellCheck <br /> 12:31 < mfinkle> must go deeper <br /> 12:33 < mfinkle> crap, nsISpellCheck is not public - wtf <br /> 12:33 <@dave> weird <br /> 12:33 < shaver> fixable, I bet <br /> 12:34 < mfinkle> I suppose building directly against the tree (instead of the sdk) is doable <br /> 12:34 <@dave> so this is a tree exercise vs. an ext <br /> 12:34 < mfinkle> kinda like vlad's canvas3d <br /> 12:34 < mfinkle> right <br /> 12:34 < shaver> no, it's an extension <br /> 12:34 < mfinkle> well, it can be an extension <br /> 12:34 < shaver> it's just not one that can use only frozen APIs <br /> 12:34 < mfinkle> but it needs the tree <br /> 12:34 < shaver> like basically any useful extension <br /> 12:34 <@dave> :) <br /> 12:34 < mfinkle> sadly <br /> 12:35 < mfinkle> but anyway - onward <br /> 12:35 <@dave> I think I'll take some notes here and craft a project for future <br /> 12:35 < mfinkle> http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozSpellChecker.cpp <br /> 12:35 < mfinkle> implements the nsISpellCheck interface <br /> 12:36 < mfinkle> takes an nsITextServicesDocument <br /> 12:36 <@dave> how generic is that? <br /> 12:38 < mfinkle> can be initialized with a document! http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/src/nsTextServicesDocument.cpp#175 <br /> 12:38 < mfinkle> promising <br />
Relevant Links
- http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/public/nsIInlineSpellChecker.idl
- http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozInlineSpellChecker.cpp
- http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozSpellChecker.cpp
- nsISpellCheck interface
- nsITextServicesDocument
- http://mxr.mozilla.org/seamonkey/source/editor/txtsvc/src/nsTextServicesDocument.cpp#175