使 IntelliJ 突出显示 Groovy/Grails 语法错误
Posted
技术标签:
【中文标题】使 IntelliJ 突出显示 Groovy/Grails 语法错误【英文标题】:Make IntelliJ prominently display Groovy/Grails syntax errors 【发布时间】:2013-12-27 17:13:43 【问题描述】:我正在使用 IntelliJ IDEA 13 来编辑我的 Grails 应用程序,虽然它在某些方面非常聪明,但它并不能很好地显示语法错误。
例如,我可能拼错了属性或方法名称,但 IntelliJ 在代码中显示了一个柔和的几乎不明显的黑色下划线,悬停弹出窗口显示Cannot resolve symbol 'foobar'
。
如果我进入View -> Tool Windows -> Messages
,那么它甚至不会显示这个问题,即使在Build -> Rebuild project
之后也是如此(尽管它在 3rd 方插件代码中显示了一些无用的弃用消息)。
如何找到显示所有这些潜在问题的视图以便我可以查看它们?
编辑 - @lukelazarovic 是完全正确的,我修正了一个关于 Groovy/Grails 如何工作的重大误解。问题也被部分覆盖:
Will groovy (grails) give you compile time checking like java?
【问题讨论】:
Groovy 在调用方法名时如果拼写错误不会引发编译错误。这同样适用于属性。这是因为它是一种动态语言,并且它的某些部分(如 GORM)严重依赖于在运行时动态添加方法。见groovy.codehaus.org/Runtime+vs+Compile+time,+Static+vs+Dynamic。所以我想知道你是如何在从命令行运行时获得编译时错误的。你能把错误和发生的代码贴在哪里吗? 你完全正确,我记错了,这些消息只在运行时出现。尽管如此,IntelliJ 可以在一个地方显示所有这些潜在问题,而不是在整个代码中隐藏为小下划线,所以我冒昧地重新表述了这个问题。或者,如果您将您的评论作为答案重新发布,我可以接受它,并以更准确的解释重新打开问题。 恕我直言,无需重新发布问题,稍后我们可以对其进行更精确的编辑。我知道您想要实现什么,并希望有一个解决方案,很快就会将其作为答案发布 【参考方案1】:这是我到目前为止所得到的:
想法检查应该是一种方法。您可以通过右键单击项目 -> 分析 -> 检查代码来设置它们...并且有检查配置文件选择打开检查窗口。
您可以在此处选择要对代码库运行的检查以及每次检查的严重性。
转到 Groovy -> 可能的错误 -> 访问未解决的表达式检查并将严重性设置为错误。
现在您应该看到拼写错误的属性或方法名称,不是带有几乎不明显的黑色下划线,而是带有红色,表示错误。
但是让我生气的是,如果您对整个项目运行分析,我不能强迫 Idea 在结果中显示这些错误。它显示所有其他检查错误,但不显示这个。
【讨论】:
谢谢,这很有帮助。【参考方案2】:首先是一些背景信息... IDEA 仅在项目工具窗口和问题视图中显示编译错误。您可以open a feature request 询问非编译错误也显示在这些视图中。
通过“检查”发现和显示非编译问题。通过“意图”(也称为“快速修复”)修复失败的检查。 IDEA 使用检查配置文件,您可以在其中设置哪些检查处于活动状态以及显示该检查失败的严重性级别。如果需要,您可以定义多个配置文件。这些配置文件之一被设置为要在编辑器中使用的配置文件(F*ile > Settings > [Project Settings] > Inspections*)。然后,您可以(如您所见)通过分析 > 检查代码运行检查配置文件(编辑器中使用的相同或不同的)。您还可以通过 Analyze > Run Inspection by name 运行单个检查。
IntelliJ 在代码中显示出柔和的几乎不明显的黑色下划线
如果您认为问题不够突出,您有三个选择(其中一些您已经部分发现):
-
更改报告问题的检查的严重性级别,包括创建新的自定义级别。不同的严重级别使用不同的突出显示样式来显示
修改 IDEA 显示严重性级别的格式(即颜色和样式)
1 和 2 的组合
步骤:
-
将光标放在突出显示的问题上。
键入 Alt+Enter (⌥⏎) 以“显示意图操作”
弹出窗口中将显示报告问题的检查名称或一个或多个解决问题的意图。选择一个并通过右箭头 → 打开侧面菜单
选择“编辑检查配置文件设置”
这将打开检查设置对话框并选择相关检查
您也可以通过“文件”>“设置”>“检查”进入此对话框
更改检查的严重级别,和/或单击省略号 ... 按钮以创建自定义设置或修改严重级别的颜色和样式
严重级别的颜色和样式设置也可以通过 File > Settings > [IDE Settings] > Editor > Color & Fonts > General 然后在列表中选择严重性(例如“错误”或“信息”)打开
修改严重性级别的颜色和样式会影响设置为该严重性级别的所有检查。
您可以在此处选择要对代码库运行的检查以及每次检查的严重性。
为了澄清,严重性将决定检查在编辑器中的显示方式,然后配置文件用于编辑器的检查配置文件。在进行代码分析时,严重性的主要目的是在输出工具窗口中对检查进行分组和过滤。一般来说,当您想要手动运行代码检查时,最容易使用预定义的配置文件。当然,您可以使用您定义的要在编辑器中使用的相同配置文件。
但是让我生气的是,如果您对整个项目运行分析,我不能强迫 Idea 在结果中显示这些错误。它显示所有其他检查错误,但不显示这个。
应显示已执行配置文件中定义(即活动)的所有检查。 Groovy“访问未解析的表达式”检查是一个明显的错误。我推荐opening a bug report。
【讨论】:
谢谢,这很有帮助。以上是关于使 IntelliJ 突出显示 Groovy/Grails 语法错误的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ:如何在 Eclipse 中自动突出显示变量
IntelliJ IDEA 在 JPQL 中用“无法解析符号”突出显示 @Entity 类名