Intellij 通过自定义插件以编程方式打开和布局文件

Intellij open and lay out file programmatically through custom plugin

我最近开始参加 HackerRank 比赛,我想实施一个 intellij 插件来优化我的编码环境,以迎接即将到来的比赛。我需要的很简单:当我的解决方案未能通过测试用例时,以编程方式打开 3 个自定义文件(输入、预期和实际)。

为了更好地了解上下文,这是我面临的确切情况:

  1. 我尽快为给定的问题编写解决方案并将其提交到 HackerRank 平台
  2. 如果我的提交被拒绝,我会在 "input" 目录下生成数百个随机的小测试用例。
  3. 我编写了一个强力算法来解决每个生成的输入,并将每个生成的测试用例的预期输出保存在 "expected" 目录下。
  4. 我 运行 一个预先编写的正确性测试用例,它自动为每个输入文件调用我的有效解决方案(被拒绝)并将输出文件写入 "actual" 目录下。当实际与任何给定生成的测试用例的预期不匹配时,测试失败。

上面的问题是,每当测试失败时,我都必须手动查找并打开输入、预期和实际输入,然后使用垂直拆分将它们并排放置在代码旁边,这样我就可以方便地进行调试(请参阅下)

理想情况下,只要检测到故障,我就会以编程方式打开我预先编写的测试用例中的所有 3 个文件,并让它们 laid-out 如上面的屏幕截图所示。使用自定义编写的插件可以实现这样的事情吗,IntelliJ 是否允许以编程方式打开文件?

我做过类似的东西。一个控制台过滤器,它添加了用于打开 Diff window 的超链接,我在其中将来自控制台的 xml/json 与文件进行了比较。

https://github.com/krasa/ProjectCommandLauncher/blob/master/src/krasa/console/RequestComparatorFilter.java

自定义它以制作 3 向差异应该很容易,甚至可以自动打开它而不是使用控制台超链接。

或者如果你真的想打开编辑器,然后在intellij-community中找到OpenFileDescriptor的用法并查看以下插件:https://github.com/dkandalov/tab-shifter