如何从基于 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);