在 JFace TextViewer 中设置插入符位置

发布于 2024-12-03 19:32:19 字数 363 浏览 1 评论 0原文

我想在 TextViewer 中创建一些宏功能。所以我附加了一个 TextListener。在其 textChanged-Method 中,我检查宏热键。每当遇到此热键时,TextListener 就会分析之前的单词,然后将其替换为宏内容(通过 TextViewer#getDocument().replace())。这有效。

现在,在用其内容替换宏名称后,我想将插入符号放置在宏内容之后的位置。这是行不通的。我尝试调用 TextViewer.setSelectedRange(offset,0) 并尝试 ((StyledText)TextViewer.getControl()).setCaretOffset(offset)。但插入符号始终保持在输入热键的位置。

有什么想法吗?

I want to create some Macro abilities in a TextViewer. So I attached a TextListener. In its textChanged-Method I check for a Macro-Hotkey. Whenever it encounters this hotkey, the TextListener analyzes the word just before and then replaces it against the macro contents (via TextViewer#getDocument().replace()). This works.

Now just after replacing the macro name with its contents, I would like to place the caret to a position just after the macro contents. This doesn't work. I tried to call TextViewer.setSelectedRange(offset,0) and I tried ((StyledText)TextViewer.getControl()).setCaretOffset(offset). But the Caret remains always at the position where the hotkey was entered.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文