如何从基于 class 的 ToolWindowFactory 访问当前源代码
How to get access from ToolWindowFactory based class to current source code
我正在为 IntelliJ 编写检查插件。对于这个插件,我需要从基于 class 的 ToolWindowFactory 访问当前源代码(光标位置等)。有一种方法可以跨越 PSIManager,但仅限于 AnAction 派生的 classes,不适用于 ToolWindowFactory 派生的 classes。有什么想法吗?
也许 com.intellij.openapi.editor.event.CaretListener 行得通?您可以按如下方式注册以接收所有打开的编辑器的事件。
com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(myCaretListener);
CaretListener listener = new CaretAdapter() {
@Override
public void caretPositionChanged(CaretEvent e) {
System.out.println(e.getNewPosition());
}
};
com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(listener);
我正在为 IntelliJ 编写检查插件。对于这个插件,我需要从基于 class 的 ToolWindowFactory 访问当前源代码(光标位置等)。有一种方法可以跨越 PSIManager,但仅限于 AnAction 派生的 classes,不适用于 ToolWindowFactory 派生的 classes。有什么想法吗?
也许 com.intellij.openapi.editor.event.CaretListener 行得通?您可以按如下方式注册以接收所有打开的编辑器的事件。
com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(myCaretListener);
CaretListener listener = new CaretAdapter() {
@Override
public void caretPositionChanged(CaretEvent e) {
System.out.println(e.getNewPosition());
}
};
com.intellij.openapi.editor.EditorFactory.getInstance().getEventMulticaster().addCaretListener(listener);