【问题标题】:Find string under the caret in Eclipse default editor在 Eclipse 默认编辑器的插入符号下查找字符串
【发布时间】:2019-08-23 04:09:38
【问题描述】:

我想在 Eclipse 中以编程方式在插入符号位置下获取字符串。

我已经看过这个链接:How to get cursor position in an eclipse TextEditor 但在这个链接中,必须选择这个词(我想得到)。在我的问题中,它没有被选中。 例如源代码为:

class HelloWorld 
{ 
   public static void main(String args[]) 
   { 
       System.out.println("Hello, World"); 
   } 
} 

想象一下插入符号位于此方法中的任何单词的中间。我使用| 符号而不是插入符号来解释自己。

Syst|em.out.println("Hello, World"); 

对于这个例子,我必须得到“系统”这个词。

有没有办法得到这个?

【问题讨论】:

    标签: java eclipse eclipse-plugin editor eclipse-rcp


    【解决方案1】:

    您可以使用以下方法获取文本编辑器部分使用的StyledText 控件:

    StyledText styledText = (StyledText)editorPart.getAdapter(Control.class);
    

    StyledText 有一个getCaretOffset 方法:

    int offset = styledText.getCaretOffset();
    

    【讨论】:

    • 感谢您的回答。不幸的是,这不是我真正想要的。看来我无法正确解释自己。我已经编辑了问题,你会再看一遍吗?
    • 那么“单词”是什么意思?如果插入符号在“Hello, World”字符串中怎么办?如果您想要当前的编程语言元素,这是一个更复杂的问题。
    • 如果插入符号位于 Hello, World 中的某个位置,我必须再次获取“Hello”或“World”。实际上我想找到单词(我的意思是任何单词,一些字符串或语句,源代码中的任何内容)来查找插入符号是否在任何方法中。当我在方法中找到插入符号时,我想调用一个动作。我在 Visual Studio 中为我的插件做了一个动作。现在,我想将该操作添加到我的 Eclipse 插件中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多