IntelliJ 能否将 Java 文本块视为 SQL 或 XML 等语法来协助编辑/格式化?

问题描述 投票:0回答:2

Java 15为我们带来了新的JEP 378:文本块功能。这可以简化多行字符串的处理。

是否可以使 IntelliJ 将该块中的文本解析为某种语法?我有办法告诉 IntelliJ 文本块是 SQL 源代码还是 XML 数据吗?

如果是这样,IntelliJ 是否可以使用其代码编辑超能力来协助通过该文本块对嵌套在 Java 中的代码进行着色、编辑和格式化?

java intellij-idea formatting embedded-language java-text-blocks
2个回答
5
投票

是的,关于此功能,文本块的工作方式与 IntelliJ IDEA 中的常规字符串相同。因此,您可以输入 Alt+Enter,选择

Inject language or reference
并选择要注入的语言。在所有情况下,像正则表达式这样的语言会自动注入到正则字符串中,它们也会被注入到文本块中。

2 code blocks with injected sql and xml


0
投票

您可以使用语言注入功能。 例如:

// language=JSON
"""
{
   "field1": "text,
   "field2": 123.43,
   "field3": true
}
"""

Idea 应该将其解释为 JSON 并突出显示错误:

文档:https://www.jetbrains.com/help/idea/using-language-injections.html#use-language-injection-comments

© www.soinside.com 2019 - 2024. All rights reserved.