问题标签 [structural-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
98 浏览

java - 对于扩展 C 的类,将 A 类型的构造函数变量替换为 B 类型

我有大约 100 个看起来像这样的课程。

现在,我想在扩展MyBaseClass的类中替换所有类型为 OldType 的构造函数变量,这些具有相同的变量名,但类型为NewType。所以它看起来像这样:

变量的数量和名称会有所不同。

我已经让 IDEA 找到所有MyBaseClass使用结构替换扩展的类,但是我要从那里去吗?

0 投票
1 回答
658 浏览

java - 显示使用自定义注释注释的方法/构造函数的警告?

我有一个使用 ORM 解决方案的应用程序,该解决方案要求将默认构造函数保留在类中。为了防止我意外使用这个默认构造函数,我想用警告强调它的任何用法。

我目前正在使用“@DoNotUse”之类的自定义注释对其进行注释,但我无法弄清楚如何让 Intellij 用警告标记其用法。

我不相信结构搜索检查可以解决这个问题。

我现在唯一的希望是插件吗?

编辑:由于有人显然没有读过这个问题,我不是在寻找@Deprecated导致我的代码中的语句被标记为警告的原因,我正在寻找一种方法来使用其他自定义注释来复制这种效果。

0 投票
1 回答
165 浏览

intellij-idea - 如何在没有特定参数集的情况下找到使用特定注释注释的方法?

例子 :

我想要所有的实例:

但不是

0 投票
1 回答
485 浏览

javascript - Intellij Javascript 多行结构搜索和替换

在我们的项目中,许多角度单元测试包含以下语法:

在测试中,列出具有字符串值的依赖项的数组已过时,因为这仅在使用缩小时才有用。因此,我们发布了一个编码约定,将这种语法更改为:

现在,当我遇到它们时,我已经在现有代码中替换了其中的一些,但我已经厌倦了手动执行此操作。所以我试图通过使用结构搜索和替换在 IntelliJ 中解决这个问题。到目前为止,这是我的搜索模板:

出现:

  • $injection$: 1 到无限
  • $argument$: 1 到无限
  • $statement$: 1 到无限

替换模板定义如下:

这不适用于我在开头定义的示例,但是它仅匹配并正确替换函数主体中的单行语句,因此以下示例被正确替换:

我错过了什么吗?当我在Jetbrains 网站上查看简单的 if-else 示例时,我觉得这应该可以工作。

我尝试删除 $statement$ 变量后面的分号,这与多行不匹配,导致分号在替换后被删除。我也尝试将正则表达式应用于 $statement$ 变量,但这些也无济于事。

不匹配,可能是因为分号在执行实际正则表达式匹配之前被 IntelliJ 结构搜索过滤掉了。

匹配,但它替换为与没有正则表达式相同的行为。

0 投票
2 回答
134 浏览

java - 在 IntelliJ 中,是否可以找到具有特定类型的类型化方法的用法?

假设我有一个类型化的方法:

在 Intellij 中,我可以只搜索特定类型的方法用法吗?说,只有String?

0 投票
2 回答
491 浏览

intellij-idea - 将链式方法调用与结构搜索匹配

0 投票
1 回答
2193 浏览

intellij-idea - 使用 IntelliJ 查找具有特定参数类型的所有方法调用

我有这个相当大的代码库(+/- 500k 行)。我正在查看它以查找使用单个参数并且该参数是特定类型的所有方法调用。

这意味着,我希望能够找到如下方法调用:

由于两者doer.doSomethingFoo(anObject)doer.doSomethingObject(anObject)被调用,因此搜索应该返回这两个语句。同样,doer.doSomethingObject(bar)不返回。当然,我不知道它doer存在。

我正在尝试使用 IntelliJ 的结构搜索来做到这一点。我使用了以下模板$Instance$.$Method$($Parameter$),并带有以下参数:

这将返回具有名为foo(显然不区分大小写)的参数的所有内容。所以我可能在这里做错了什么。但是什么?如何获得对唯一参数类型为任何方法的所有调用Foo

0 投票
1 回答
613 浏览

java - Intellij 结构搜索:如何找到空的 try catch 块?

我怎样才能找到空的 try catch 块?

使用复制现有模板...我找到了 try catch 的结构搜索:

我想增强它,以便它只找到带有空 catch 块的 try catch

它应该找到:

或者

或者

然而不是:

现在它显然发现了两者,因为它们之间没有区别。我怎样才能添加这个额外的检查?

0 投票
2 回答
348 浏览

intellij-idea - 使用正则表达式搜索 - 有没有办法找到在其任何方法中没有特定注释的类?

我想查看某个目录并在其所有子目录中找到从 X 派生且没有注释 Y 的所有类。

如果这不可能,我可以管理所有不包含注释 Y 的类。

正则表达式搜索有可能吗?

0 投票
1 回答
363 浏览

intellij-idea - 有什么方法可以在 Intellij 中结构性地搜索 scala 或 python 源?

在 IJ 版本2016.2 上会出现以下对话框:

在此处输入图像描述

它包括衍生语言java以及html少量其他语言。但是pythonscala明显不见了。是否有任何解决方法来获得这样的功能?