【问题标题】:Writing Intelli-J inspections?编写 Intelli-J 检查?
【发布时间】:2010-07-19 20:06:14
【问题描述】:

我将如何编写自己的 Intelli-J 检查?我正在寻找一些通用指南或资源。

我想在每次手动实例化集合类时显示检查提示,而不是按照团队范围的标准通过 Guava (List.newArrayList()/Maps.newHashMap()) 等。

我会很感激任何方向。

【问题讨论】:

    标签: intellij-idea code-hinting inspections


    【解决方案1】:

    对于此类检查,您无需编写插件,而是使用Structural Search and Replace (SSR) 功能,该功能允许创建具有快速修复的自定义检查。

    有关此功能,另请参阅 Creating your own inspections 部分和 documentation

    请注意,它仅在 Ultimate 版本中可用。

    【讨论】:

    • 有没有简单的方法来捕获类型?我似乎不能做一些基本的事情,比如并排使用变量表达式,比如 $mapType$$mapEnd$ 来做一个简单的替换。这可能有什么原因吗?也就是说,如果我有一个表达式,比如 .*\s*.*abc,然后我将它分成两个变量,.*\s* 和 .*abc,则表达式不匹配任何文本。可能出了什么问题?
    • SSR 匹配每个变量的一种或多种语言结构,它不会将多个变量 ($mapType$$mapEnd$) 捕获到类型引用中。如果我理解正确,您需要匹配 List $variable$ = new $ListType$() 并相应地替换它。
    • 本主题有更详细的主题stackoverflow.com/questions/3302233/…
    • 如何为自定义 SSR 检查提供自定义描述?
    【解决方案2】:

    我将不得不让您失望,但几乎没有关于插件和 IntelliJ 的所有内容的书面指南、资源或文档 :(。 (这是许多 IntelliJ 粉丝没有为他们最喜欢的工具开发插件的主要原因)。

    这家公司生产出色的产品,但在为开发人员(而非用户)提供文档、书籍和指南时 - 嗯,它们实际上并不存在 :(。

    您唯一的选择是查看实际 IntelliJ 插件的来源(其中一些在这里:http://git.jetbrains.org/)并在 IntelliJ plug-in list 上提出非常具体的问题,因为开发团队通常会很乐意回答您几分钟。

    【讨论】:

    • 这是我遇到过的最悲伤的回应。我不知道我是否愿意跳下兔子洞。
    • 不是不可能。 IntelliJ 已经有非常好的插件。只是那些开发人员非常熟练(与我相比)并且能够在没有文档的情况下进行编码(我不是:()。也许他们也喜欢编码难题 - 这非常接近它。这也不是我太糟糕了(我希望如此 :)),因为我能够非常轻松地为 Netbeans 和 Eclipse 编写插件,但是有很好的文档可用。
    【解决方案3】:

    游戏迟到了,但这个问题仍然出现在谷歌搜索中,所以请参阅:

    http://confluence.jetbrains.com/display/IDEADEV/Inspection+of+Code+Source

    【讨论】:

    • 永远不会太晚。你刚刚帮我解决了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2018-12-16
    相关资源
    最近更新 更多