intellij-idea - Intellij IDEA 插件,用于在控制台的 IDE 编辑器中读取和打印内容
问题描述
我是使用 gradle 开发 Intellij Idea 插件的新手!我希望开发一个简单的插件来读取java类的内容并以实时方式在控制台(工具窗口)中打印它(即当我在java类中输入一个新单词时,它应该在控制台中打印工作,即使课程是否保存)
目前我指的是https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_components.html中的 Intellij 插件架构和组件。我遇到了诸如编辑器窗格之类的概念,但我不知道如何阅读 IDE 编辑器中的内容(当前的 java 文件)!我该怎么做?
解决方案
您可以获取编辑器窗口的原始文本:
Editor editor = anActionEvent.getRequiredData(CommonDataKeys.EDITOR);
editor.getDocument().getText();
如果您想从编辑器窗口的内容中获取一些结构,您可以使用PsiFile
API:
PsiFile psi = anActionEvent.getData(CommonDataKeys.PSI_FILE);
PsiFile
API 允许您以任何有意义的语言浏览文件。例如,对于 Java 文件,有一个PsiJavaFile
接口知道 Java 特定功能,如包名、导入等。
http://www.jetbrains.org/intellij/sdk/docs/basics/architectural_overview/psi_files.html
最后,要打印一条消息,您可以尝试正常System.out.print()
,也可以使用ConsoleView
该类来使用 IntelliJ 控制台工具视图:
TextConsoleBuilderFactory.getInstance()
.createBuilder(anActionEvent.getProject())
.getConsole()
.print("Hello", ConsoleViewContentType.NORMAL_OUTPUT);
注意:以上所有代码都假定您正在使用ActionEvent
. 您可能需要查看TypedActionHandler
界面以在编辑器文本更改时收到通知:
推荐阅读
- c - 为什么在 ELF 二进制文件中字节以两个为一组进行反转
- python-3.x - 使用 numpy 旋转图像(面试问题)
- javafx - 每次创建新的 javafx 项目时如何避免添加 vm 参数?
- python - 使用 m 和 n 整数生成围栏矩阵
- parsing - 用Java从字符串中打印IP地址和子网掩码
- python - 在文本框中排列文本
- reactjs - React-Native 动画视图进出
- javascript - 为什么节点文档在描述这个函数时会在逗号之前列出这个左括号?
- python-3.x - 支持的目标类型是:('binary', 'multiclass')。改为“连续”
- bash - 在 bash 中,我可以将进度表及其格式保存到 cURL 请求的变量中吗?