Hi Thomas, Thanks for the help. I am using version 3.1.1 (OOO310m19, Build: 9420). I have checked and on my PC the same issue happens also with "LanguageTool".
I'll find the time to take a look at gciterator.cxx to better understand the order of calls (hope it will help me understand some more issues that I still can't explain). Regards Guy Thomas Lange - Sun Germany - ham02 - Hamburg wrote: > > > Hi Guy, > > > guyatnabble wrote: >> Hi, >> >> I have found out that this will happen if you uncheck the "Check grammar >> as >> you type" check box in the options-writing aids dialog. >> >> Is this a bug (or am I missing something and this is the expected >> behavior?) >> ? >> > I would still expect that it is a problem on your side because there are > already at least three existing proofreaders without problems. Namely > CoGrOO <http://extensions.services.openoffice.org/project/cogroo> and > LanguageTool. > On the other hand those are probably implementing the sentence end > detection on their own. > > Actually I wanted to paste your code into an existing grammar checking > extension last Friday and see what happens. But other things came up. > If you like to check see more what happens and in what order calls are > made you get the 'linguistic' project and compile the file > gciterator.cxx with debug info. In that file all the calls to the > proofreader are done. > > Hope this helps for now. > > BTW: which Office version do you use? > Please update to OOo 3.1.1 if you are not using it already because of > issue 103936. > > > Regards, > Thomas > > >> >> guyatnabble wrote: >> > >> > Hi, >> > >> > I am trying to implement a Grammar Checker (C++) and I have >> implemented >> > XProofreader in my test module. >> > >> > I have 2 issues: >> > 1. After doProofreading() returns (grammar) errors its gets called >> always >> > with the same StartOfSentencePos and >> SuggestedBehindEndOfSentencePosition >> > parameters (pointing to the first sentence in the paragraph) even when >> I >> > click "Ignore Once" (I would have expect to be called with index of >> next >> > sentence). >> > When doProofreading() does not return a (grammar) error, next call will >> > provide, correctly, the indexes pointing to the next sentence. >> > >> > 2. I supply correction for 2 (grammar) errors but see in the UI only >> the >> > first. >> > >> > BTW, is there a documentation which explain the flow of the calls and >> > parameters in details? >> > >> > Below is my doProofreading() function. >> > >> > Thanks and Best Regards >> > Guy >> > >> > linguistic2::ProofreadingResult SAL_CALL >> > GrammarChecker::doProofreading(const OUString & aDocumentIdentifier, >> > const >> > OUString & aText, >> > const >> > lang::Locale & aLocale, >> > sal_Int32 >> > nStartOfSentencePos, >> > sal_Int32 >> > nSuggestedBehindEndOfSentencePosition, >> > const >> > uno::Sequence<beans::PropertyValue> & aProperties) >> > >> > throw (uno::RuntimeException, >> lang::IllegalArgumentException) >> > { >> > linguistic2::ProofreadingResult result; >> > result.aDocumentIdentifier = aDocumentIdentifier; >> > result.xFlatParagraph = 0; >> > result.aText = aText; >> > result.aLocale = aLocale; >> > result.nStartOfSentencePosition = nStartOfSentencePos; >> > result.nBehindEndOfSentencePosition = >> > nSuggestedBehindEndOfSentencePosition; >> > result.xProofreader = this; >> > OString text = ::rtl::OUStringToOString(aText, RTL_TEXTENCODING_UTF8); >> > sal_Int32 paraLen = text.getLength(); >> > if (paraLen <= 100) >> > return result; >> > >> > // DUMMY ERRORS (for the sake of the test) >> > uno::Sequence<linguistic2::SingleProofreadingError> spErrors(2); >> > spErrors[0].nErrorStart = result.nStartOfSentencePosition; >> > spErrors[0].nErrorLength = 3; >> > spErrors[0].nErrorType = text::TextMarkupType::PROOFREADING; >> > OUString comment (RTL_CONSTASCII_USTRINGPARAM("A grammer error") ); >> > OUString commentLong (RTL_CONSTASCII_USTRINGPARAM("A grammer error >> long >> > long") ); >> > spErrors[0].aShortComment = comment; >> > spErrors[0].aFullComment = commentLong; >> > uno::Sequence<OUString> suggSeq(1); >> > OString ostr = OString("Sugg"); >> > suggSeq[0] = OStringToOUString(ostr, RTL_TEXTENCODING_UTF8); >> > spErrors[0].aSuggestions = suggSeq; >> > spErrors[1].nErrorStart = result.nStartOfSentencePosition + 10; >> > spErrors[1].nErrorLength = 10; >> > spErrors[1].nErrorType = text::TextMarkupType::PROOFREADING; >> > OUString comment2 (RTL_CONSTASCII_USTRINGPARAM("Found a grammer error2 >> ") >> > ); >> > OUString commentLong2 (RTL_CONSTASCII_USTRINGPARAM("Found a grammer >> error >> > long long 2") ); >> > spErrors[1].aShortComment = comment2; >> > spErrors[1].aFullComment = commentLong2; >> > uno::Sequence<OUString> suggSeq2(1); >> > OString ostr2 = OString("Sugg2"); >> > suggSeq2[0] = OStringToOUString(ostr2, RTL_TEXTENCODING_UTF8); >> > spErrors[1].aSuggestions = suggSeq2; >> > >> > result.aErrors = spErrors; >> > result.nStartOfNextSentencePosition = >> > nSuggestedBehindEndOfSentencePosition; >> > return result; >> > } >> > >> > >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lingucomponent.openoffice.org > For additional commands, e-mail: dev-h...@lingucomponent.openoffice.org > > > -- View this message in context: http://www.nabble.com/Proofreading%3A-implementations-issues-tp25911140p25954905.html Sent from the openoffice - lingucomponent dev mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lingucomponent.openoffice.org For additional commands, e-mail: dev-h...@lingucomponent.openoffice.org