问题标签 [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.
c# - Resharper 搜索模式以检测返回未使用值的方法
如果可能的话,我想要一个更清晰的模式来检测未处理的 IDisposables。如果我有方法
并在不分配和使用 IDisposable 的情况下调用它,我想被告知它。我尝试了以下模式
哪里expr
是类型IDisposable
。发生以下情况。
第一个被正确检测到,但第二个是错误,因为对现有变量的简单赋值也是 C# 中的表达式,而使用赋值var
不是。是否可以检测到返回值是通过结构搜索分配的?
我注意到 resharper 具有以下代码质量选项
但我猜它们是用比结构搜索解析器更复杂的东西构建的。
visual-studio - 有没有办法通过 Resharper 中的评论禁用自定义模式
在 Resharper 中,普通提示可以通过评论禁用
按下时上下文菜单上的选项<ctrl-enter>
使用自定义结构搜索模式
http://blog.jetbrains.com/dotnet/2010/08/19/highlighting-custom-patterns-with-resharper/
我找不到办法做到这一点。上下文菜单上没有禁用提示的选项。
是否可以使用注释禁用自定义模式?
intellij-idea - Intellij - 如何防止结构化搜索/替换丢弃注释?
我使用以下搜索字符串创建了结构化搜索和替换:
这个替换字符串:
例如,替换这个:
和:
然而,结果是这样的:
也就是说,注释消失了。我该如何避免这种情况?代码库有许多带有各种注释的受保护字段,我想让它们保持不变。
java - 如何将@Deprecated 添加到每个类和每个类的每个构造函数/方法?
我有一些遗留代码,我想标记所有它们和它们的所有方法@Deprecated
,这样当我们去触摸它们时,我们可以删除这些注释,这样我们就可以跟踪哪些已经现代化,哪些仍然是坏的。
我正在尝试使用Structural Search/Replace
并且似乎无法获得正确的模板。
搜索模板
替换模板
但这会删除课程中的所有其他内容。
这会剥离所有匹配的类的可见性修饰符和最终修饰符。
我如何替换这些东西并保留其余代码?
java - 针对 IntelliJ 13 中带注释方法的返回类型的结构搜索
根据主题,我试图在结构上搜索使用特定注释和特定返回类型注释的所有方法。
更清楚地说,如果我有如下方法:
和
我想找到一种在 IntelliJ 中制定结构搜索的方法,以查找例如“所有带有注释@MyAnnotation
和返回类型的方法String
”,并且这样的搜索只会返回myMethod1()
.
我正在使用 IntelliJ 13 Ultimate。
谢谢。
intellij-idea - 使用 IntelliJ 结构搜索和替换将 getter 替换为属性
由于我正在使用的库中的更改,getter 被替换为对属性的直接访问。例如:
已经成为
因此,我想使用 IntelliJ 的 SSR 将 getter 调用替换为 Bean 属性。但是,我一直坚持如何使用正则表达式捕获组进行替换。如果有另一个 IntelliJ 快捷方式来做我想做的事,我很乐意使用它。
以下 SSR 搜索参数找到了 getter,但我似乎无法$property$
在替换中使用捕获组。我试过\1
了(在 IntelliJ 中使用反向\$1
引用)$1
我还尝试将搜索更改为$instance$.get$property$()
(清除约束,$property$
但搜索未返回任何结果。
- 如何访问捕获组 (
$1
) - 是否可以在替换之前执行任何处理
$1
(修复案例)
我注意到Script text
接受 Groovy 代码的选项,但是我找不到有关此功能的任何文档。
resharper - Resharper 格式标识符中的结构查找/替换
使用 R# 结构查找/替换时,是否可以更改/修改令牌的输出?
例如,如果我捕获一个标识符,我可以在输出中使用正则表达式重新格式化它吗?我想改变这个:
[Fact]
public void SomeMethodName()
和:
[Fact(DisplayName = "Some method name"]
public void SomeMethodName()
可能的?
string - 使用 IntelliJ IDEA 结构替换连接字符串文字
我正在尝试搜索字符串的静态连接并使用Structural Search Replace将它们组合成单个字符串。
例如,我想搜索替换"String1"+"String2"+"String3"
并替换为"String1String2String3"
。但它不应该替换注释中的字符串。
如果我搜索
它导致上述字符串出现 1 次但是
与上面的字符串不匹配
结构搜索替换如何工作?如何引用在中找到的Search string
变量Replace String
intellij-idea - 有没有办法在 IntelliJ IDEA 中将一个注释的所有用法替换为另一个注释?
我们目前正在使用 JCIP 注释进行并发检查,并希望尝试切换到 JSR 305 注释以实现相同目的。稍后我们将做同样的事情,从 JetBrains 注释切换到 JSR 305 等价物,这将是一项更大的任务,因为它们被更多地使用。
我已经尝试了多种方法来做到这一点。
如果我使用简单的文本替换进行查找和替换,则导入语句最终会出现乱序。在几乎所有情况下,由于导入顺序,这会破坏代码样式。在某些情况下,IDEA 似乎无法看到它们出现故障并且不会让我修复它,所以我必须手动检查所有文件,在这种情况下我不妨完成整个工作手动。
我尝试了结构替换,发现整个功能和往常一样无法使用。它甚至似乎无法找到注释。
我最终尝试从我正在搜索的内容中删除 @ 并且它找到了注释(有点讽刺的是,即使这个功能的目的是在结构上找到东西,当你真正尝试找到一些结构时,它突然赢了'找不到任何东西。)然后它用新注释的完全限定版本替换它们,即使我告诉它缩短名称。更糟糕的是,它不会将这些名称检测为不必要的完全限定,因此它没有为此提供自动修复,这意味着我不能自动在所有文件上运行它。(它还将新注释显示为语法错误,我只能认为这是一个错误。)
我还尝试了 Migrate 功能,将所有旧的和类名添加进去并告诉它迁移。我发现这与结构上的替换具有相同的效果 - 它没有导入导入,让我手动修复所有这些。
也许还有另一种方法可以做到这一点?
intellij-idea - Intellij 结构替换更改方法签名
我想更改具有特定签名的方法:
对此:
-> 我想替换返回类型。我用 SSR 试过这个:
复制现有模板“类的方法”。这产生了模板:
类 $Class$ { $ReturnType$ $MethodName$($ParameterType$ $Parameter$); }
我首先尝试分别替换 $ReturnType$ OldType 和 NewType:
搜索模板:
替换模板:
这给了我所有的方法,但是如果我替换它,该方法就会被删除。
然后我尝试通过以下方式更改模式:
搜索模板:
并指定 $OldType$ 应该是搜索的目标。我还为这个变量指定了一个 RegEx 模式:OldType。
替换模板:
这也会找到所有方法,但如果我替换它们会被删除。我尝试了非常不同的方法,但总是得到相同的结果:如果我替换匹配项,该方法将被删除。我如何必须指定搜索/替换模板才能在签名中将 OldType 替换为 NewType。