【问题标题】:Intellij open and lay out file programmatically through custom pluginIntellij 通过自定义插件以编程方式打开和布局文件
【发布时间】:2017-03-22 05:01:55
【问题描述】:

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

为了获得更好的上下文,这是我所面临的确切情况:

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

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

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

【问题讨论】:

    标签: intellij-idea intellij-plugin


    【解决方案1】:

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

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

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

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

    【讨论】:

    • Tab-shifter 看起来很完美,会尝试一下......虽然经过重新考虑,我认为我不再需要插件了。只需将所有失败的案例详细信息放入 3 个预定义的调试文件中,我就可以完美地实现我所描述的内容,我基本上将其视为 3 个附加控制台。我会从一开始就将它们打开并正确布局。不过谢谢 :) 肯定会给 tab-shifter 一个机会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多