问题标签 [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 投票
2 回答
255 浏览

regex - 重构 - 替换所有以“_”开头的字段名

我即将重构我的项目,我想替换所有以“_”开头的变量名,例如private final String _name; -> private final String name;

我的 FIND the Variables 模板很简单:

我为变量名设置了这个正则表达式:

好吧,但这只会返回一个以“_”开头的变量列表,我如何去掉 _ 然后设置新的变量名?

编辑:我编辑了这个主题,所以也许 Eclipse 用户可以告诉我如何用Eclipse解决这个问题。

0 投票
1 回答
164 浏览

intellij-idea - IntelliJ 中某些对象初始化的结构搜索

我正在尝试使用 IntelliJ 中的结构搜索来查找具有任意数组元素的对象数组初始化的所有出现,但我似乎无法正确理解:

我正在使用的非常简单的搜索模板是:

它没有发现我正在寻找的事件。事实上,它通常会发现完全意想不到的情况,如下所示:

我期望找到类似于以下的行(有趣的是新的 Object[] - 部分):

带有以下“要查找的文本”的简单“在路径中查找”可以正常工作:

我一定在这里做错了什么。有谁知道为什么我没有得到预期的结果?

最好的问候,本

PS 作为感兴趣的读者的旁注:我这样做是因为我想升级我们项目中的 slf4j - 框架,并且我想使用一个对象数组替换所有出现的多个日志参数以前需要的语法:

例如log.debug("Some log statement param1[{}], param2[{}], param3[{}]", new Object[] { param1, param2, param3 });

使用可变参数列表使用以下代码:

log.debug("Some log statement param1[{}], param2[{}], param3[{}]", param1, param2, param3 );

0 投票
2 回答
897 浏览

c# - 如何使用 Resharper 结构查找和替换将 C# 对象初始值设定项转换为使用构造函数

我想使用 Resharper 结构搜索和替换模板来自动替换以下示例:

new Fruit { Name = "Apple", IsTasty = true }

有了这个:

new Fruit("Apple", true)

(注意,需要的构造函数已经存在)

我尝试了各种这样的组合:

new $type$ { Name = $name$, IsTasty = $isTasty$ };

...使用各种不同的占位符类型,但 R# 在我的代码中找不到任何示例。有没有人这样做过?

0 投票
1 回答
133 浏览

regex - 正则表达式查找具有特定返回和行为的方法

我想要类似于this的东西,但在方法的范围内。

给定一个项目,我想找到所有具有返回特定对象并使用另一种特定方法的方法的文件。

目前我只有这个:MyObject(.)*\((.)*\)[\w\W]*?return它选择具有我期望返回的方法,但我如何指定其中的行为?

随意使用另一种更简单的模式,我不知道我创建的模式是否足够好。

请解释一下正则表达式,因为我不是它的专家,也为了将来的目的。

0 投票
1 回答
179 浏览

java - IDEA 结构搜索 - 方法末尾的匹配代码

我试图找到这样的方法:

目标是删除mockery.assertIsSatisfied(). 我不能只删除对它的所有调用,因为有时它位于方法中间或循环结束时,这似乎是合理的。当然,我们使用 JUnit@Rule来自动调用它,所以在每次测试结束时使用它是多余的。

我认为这将是正确的模板:

这与该方法的 400 多种用法中的大约 2 种方法相匹配。随机选择该方法的其他一些用法,我发现其他人也应该匹配该模式。(我不知道匹配的块之间有什么共同点。它们都是尝试块,但一些不匹配的块也是如此。)

那么这样做的正确方法是什么?

编辑:我刚刚注意到我已经将 a 硬编码throws Exception到这个上,所以我在没有它的情况下重新执行了搜索,结果为 0。万一有人想知道。

0 投票
2 回答
1571 浏览

java - IntelliJ/结构搜索:删除只调用超级方法的无用方法

在我的一个 Android 项目中(但不一定与 Android 相关联),我有很多方法调用,它们实际上什么都不做,只会破坏代码并且可以自动删除。例子:

我找不到任何可以帮助我自动删除这些表达式的检查,所以我尝试了结构搜索。到目前为止我的尝试:我复制了“注释方法”的模板并进行了 2 处小改动。

  1. $Annotation$ 更改为发生=1,文本=覆盖
  2. 添加了一个 $Statement$ 变量,其发生=1

模板代码:

到目前为止,一切都很好 - 它只在正文中找到具有单行的方法。但现在我想明确搜索调用超级方法的确切语句(有点像对 $MethodName$ 的反向引用),但它也返回超级值(当不是 void 时)。有任何想法吗?

我相信这将是一个非常有用的检查,也可以集成到主要的 IntelliJ 代码库中。:-)

0 投票
2 回答
135 浏览

intellij-idea - Intellij,重构派生类以扩展不同的类

我有一个基类的面向对象结构,大约有 10 个类派生自该基类。我希望对其进行专门化,并且需要更改这 10 个类扩展的类。

所以我有:

我需要将其更改为:

Intellij 是否具有重构功能,而不是手动遍历这些类,它允许我将所有从 B 派生的类更改为从 B2 派生?

0 投票
1 回答
844 浏览

java - 如何批量注释构造函数参数?

我有一个问题,我想通过杰克逊在我们的项目中制作很多类可反序列化。问题是大多数类看起来像这样:

所以我发现在杰克逊你可以做这样的事情:

这很好用。问题是我无法在 intellij 中进行结构替换来为我工作。当我尝试: 在此处输入图像描述

我所有的比赛都在“未分类的比赛”部分。此外,当我尝试替换时,Intellij 只是从类中删除了一个构造函数。

关于我做错了什么的任何想法,或者它是 intellij 中的一个已知错误?

即使是一个过于复杂的正则表达式也可以帮助我替换它(对于单参数构造函数,我可以自己创建它;问题是我们在这些类中的构造函数具有多参数构造函数)。

0 投票
1 回答
400 浏览

java - 如何在 IntelliJ IDEA 中查找顶级未注释类

动机:每个类/接口/注释/枚举都必须由@SomeAnnotation 注释。但是我们希望这个注释只在顶层类而不是内部类。

目标是创建一个结构检查,警告开发人员他们忘记注释类。如何指定结构搜索/替换以查找所有缺少@SomeAnnotation 的顶级结构?

0 投票
2 回答
580 浏览

java - 查找所有未使用“@Test”注释的“公共无效”方法

我想对我的测试执行结构搜索,以检测所有看起来像测试但没有用@Test.

我尝试使用这种模式没有成功(没有找到匹配的代码):

我究竟做错了什么?