并不总是跟随到词尾

go to end of word is not always followed

我有这个宏可以按预期工作。我输入任何垃圾词,例如 testd 在新的一行上,将光标放在单词的开头和 运行 宏。这个词被添加到标准 dic 中。我可以验证 Tools - Spellings - options - standard dic - edit

Sub wort_einfuegen()
V_Cursor = ThisComponent.GetCurrentController.ViewCursor
T_Cursor = ThisComponent.text.createtextcursor()
T_Cursor.gotoRange(V_Cursor,false)

With T_Cursor
    .gotoEndofWord(True)
    re_text = .String
End with

dl = createUnoService ("com.sun.star.linguistic2.DictionaryList")
wb = dl.GetDictionaryByName("standard.dic")
wb.Add(re_text, False, "")

End sub

问题是 - 如果我输入这个词:

testी 

字典文件中添加了一个空行。这是错误还是预期行为?


更新:

我认为这一定是一个错误,因为我输入了这两个词:

भारत
इंडिया

将光标放在每个单词的开头和运行相同的宏。 第一个词被添加到标准 dic 但第二个词没有。

出于某种原因,gotoEndOfWord() 似乎不如按 Ctrl+右箭头 可靠得多。看起来以非初始梵文元音结尾的单词不起作用。这些确实有效:

इंडिय
इंडियात
testय
testओ

总之,关键是这种方式不是很好。一些罗马文字也有问题。

那么为什么不用调度器来代替,这类似于按键。这是正确选择इंडिया的示例。

Sub wort_einfuegen()
    frame = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(frame, ".uno:WordRightSel", "", 0, Array())
    V_Cursor = ThisComponent.GetCurrentController.ViewCursor
    re_text = V_Cursor.String
    MsgBox """" & re_text & """"
End Sub