Grammalecte  Check-in [9cf5160fe4]

Overview
Comment:[lo] fix error positioning again
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | lo
Files: files | file ages | folders
SHA3-256: 9cf5160fe4122f5d5a903b9bcd268907a7a784ac561734f5db367dcac096afd3
User & Date: olr on 2021-03-12 10:47:53
Other Links: manifest | tags
Context
2021-03-12
10:50
[lo] remove print() check-in: a9a49dc937 user: olr tags: trunk, lo
10:47
[lo] fix error positioning again check-in: 9cf5160fe4 user: olr tags: trunk, lo
09:54
[fr] ajustements check-in: 4fb93aa07f user: olr tags: trunk, fr
Changes

Modified gc_core/py/oxt/Grammalecte.py from [0e97a1f7dd] to [6628657a47].

1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
20












-
+







# Grammalecte for Writer
# License: MPL 2
# A derivative work of Lightproof from László Németh (http://cgit.freedesktop.org/libreoffice/lightproof/)


import json
import re
import sys
import traceback

from collections import deque
from operator import itemgetter
from bisect import bisect_left
from bisect import bisect_left, bisect_right

import uno
import unohelper

from com.sun.star.linguistic2 import XProofreader, XSupportedLocales
from com.sun.star.linguistic2 import ProofreadingResult
from com.sun.star.lang import XServiceInfo, XServiceName, XServiceDisplayName
176
177
178
179
180
181
182
183

184
185
186

187
188
189

190
191




192

193

194
195
196


197

198
199
200
201
202
203
204
205
176
177
178
179
180
181
182

183
184
185
186
187
188
189
190
191


192
193
194
195
196
197
198
199
200


201
202
203
204
205
206
207
208
209
210
211
212







-
+



+



+
-
-
+
+
+
+

+

+

-
-
+
+

+









    def convertErrorsPosition (self, sText, aErrors):
        "change position of errors, returns offset"
        # last char position of the last error
        # To see if errors position is correct, try with:
        #   J'en ai mare, 𝐴𝐴𝐴𝐴𝐴, je vient, (𝑉ᵣ = 𝐴·𝑣H). C'est sa, mais oui... Je suis très fâchés.
        #   Qu'il sais, 𝐴𝐴𝐴, je vient, (𝑉ᵣ = 𝐴·𝑣H). Oui... Je suis fâchés

        #   C’est ça. Ça existe sur 𝐴               (activer option “ponctuation en fin de ligne”)
        nCheckEnd = 0
        for xErr in aErrors:
            nCheckEnd = max(xErr.nErrorStart + xErr.nErrorLength, nCheckEnd)
        nCheckEnd = min(nCheckEnd+10, len(sText))
        # list thresholds of offsets
        lThresholds = []
        for iCursor in range(nCheckEnd):
            try:
            if ord(sText[iCursor]) > 65535:         # \U00010000: each chars beyond this point has a length of 2
                lThresholds.append(iCursor + 1)     # +1 because only chars after are shifted
                if ord(sText[iCursor]) > 65535:         # \U00010000: each chars beyond this point has a length of 2
                    lThresholds.append(iCursor+1)     # +1 because only chars after are shifted
            except:
                traceback.print_exc()
        # modify errors position according to thresholds
        print(lThresholds)
        for xErr in aErrors:
            print(xErr.nErrorStart, xErr.nErrorLength, "->", end=" ")
            nErrorEnd = xErr.nErrorStart + xErr.nErrorLength
            xErr.nErrorStart += bisect_left(lThresholds, xErr.nErrorStart)
            nErrorEnd += bisect_left(lThresholds, nErrorEnd)
            xErr.nErrorStart += bisect_right(lThresholds, xErr.nErrorStart)
            nErrorEnd += bisect_right(lThresholds, nErrorEnd)
            xErr.nErrorLength = nErrorEnd - xErr.nErrorStart
            print(xErr.nErrorStart, xErr.nErrorLength)
        return len(lThresholds)


g_ImplementationHelper = unohelper.ImplementationHelper()
g_ImplementationHelper.addImplementation(Grammalecte, "org.openoffice.comp.pyuno.Lightproof."+gce.pkg, ("com.sun.star.linguistic2.Proofreader",),)

# g_ImplementationHelper.addImplementation( opt_handler.LightproofOptionsEventHandler, \
#     "org.openoffice.comp.pyuno.LightproofOptionsEventHandler." + gce.pkg, ("com.sun.star.awt.XContainerWindowEventHandler",),)