llms.txt: machine-readable documentation index. Markdown version of this page is also available.

IntelliJ IDEA 2026.3 Help

语言和引用受限标识符

语言注入使您可以处理与文件主语言不同的编程语言的代码片段。

当您将一种语言(如 HTML、CSS、XML、RegExp 等)注入字符串字面量时,即使它不是您的项目的主要语言,您也可以获得针对注入代码的全面编码支持。

除了语言受限标识符,IDE 还支持引用受限标识符,它们会将字符串文字视为对其他实体的引用,例如类或文件。

添加语言注入

添加临时语言受限标识符

  1. 将文本光标置于要 inject 语言的字符串文字、标记或特性内,然后按 Alt+Enter (或使用 意图操作 图标 意图操作图标)。

  2. 选择 inject 语言或引用 ,然后选择要 inject 的语言。

添加持久语言受限标识符

使用语言受限标识符注释(注解)添加已 inject 的语言的持久片段。

  • 在目标字符串文本前添加一个空行,并输入以下注释:

    // language=<language_ID>

    例如:

    public class LanguageInjections { // language=HTML String s = "<body><h1>Language injections in IntelliJ IDEA</h1></body>"; }

    另一个示例:

    public static String jsonInjection( // language=JSON String json ){ return json = "{\"data\":\"value\"}"; }

    请使用添加注释所在文件的注释语法来编写注释,而不是使用要 inject 的语言的注释语法。 语言 ID 可能与 IntelliJ IDEA 显示的语言名称不同,例如可注入语言列表中显示的名称。

    要查找语言 ID,请将文本光标放在注释中的 language= 之后,然后按 Ctrl+Space。 补全列表会显示所有可注入语言的 ID,并在圆括号中显示语言名称。

    您还可以在设置中了解 language ID。 按 Ctrl+Alt+S 打开设置,然后选择 编辑器 | 语言注入。 双击某语言的注入规则;语言 ID 已指定在 ID 字段。

  • (可选)在注释中包含前缀或后缀。

    // language=<language_ID> prefix=<prefix> suffix=<suffix>

    在以下情况下需要这样做:

    • 该字符串是不完整/部分 SQL 语句

    • 该字符串未直接用于我们支持的调用之一(例如 select /where)

为语言注入添加注解

您可以使用来自 JetBrains Annotations 库的 @Language 注解,将代码元素(如成员和参数)标记为语言注入。 这将为您在 IDE 中提供正确的高亮、导航和搜索功能。

例如,您可以将一个注解参数标记为引用某个 Java 方法:

import org.intellij.lang.annotations.Language; // you can use @Language as a meta-annotation @Language("jvm-method-name") @interface MethodName {} @interface ComponentProperties { @MethodName String waitForMethod() default ""; } class MainComponent { @ComponentProperties(waitForMethod = "waitForExampleComponent") public ExampleComponent exampleComponent; private void waitForExampleComponent() { } }

IntelliJ IDEA 会将带注解的字符串识别为方法名,并允许您对该元素使用 Rename重构以及其他功能。

“重命名”弹出窗口会同时重命名目标方法和带注解的字符串

编辑已 inject 的语言片段

IntelliJ IDEA 允许您在专用编辑器中编辑注入的语言片段。

打开片段编辑器

  1. 将文本光标置于已 inject 的代码片段内,然后按 Alt+Enter (或使用 意图操作 图标 意图操作图标)。

  2. 选择 编辑 <language ID> 片段。

    IntelliJ IDEA 将打开一个专用编辑器区域,用于编辑带有已 inject 语言的代码。 此编辑器提供完整的编码辅助,包括代码补全、检查、意图操作s 和代码样式操作。

    在专用编辑器中编辑注入的代码片段

inject 引用

引用注入将字符串字面量解释为指向其他实体(例如类、方法、字段或文件)的链接。

例如,类似 com.example.MyClass 的字符串可以解析为对 Java 类的引用,而 resources/config.json 可以视为对文件的引用。

添加临时引用受限标识符

  1. 将文本光标置于要 inject 引用的字符串文字内,然后按 Alt+Enter (或使用 意图操作 图标 意图操作图标)。

  2. 选择 inject 语言或引用 并选择一个选项,例如:

    • 文件引用 :添加对指定文件的引用。

    • JVM 类名 :添加对指定类的引用。

    • JVM 字段名称 :添加对字段的引用。

    • JVM 方法名 :添加对方法的引用。

    根据安装的插件,可能还会有其他引用选项可用。 例如,您可能可以注入 HTTP 方法、标头或 URL 引用。

    注入文件引用

添加持久引用受限标识符

使用注释添加持久引用受限标识符。

  • 在目标字符串文字前添加一个空行,并输入包含必要值的 // language= 注释。

    • // language=file-reference 会添加对文件的引用。

    • // language=jvm-class-name 会添加对类的引用。

    • // language=jvm-filed-name 会添加对字段的引用。

    • // language=jvm-method-name 会添加对方法的引用。

    示例:

    public class FileReference { public static void main(String[] args) { // language=file-reference printFilePath("src/main/resources/config.properties"); } }

    或

    public class ClassReference { public static void main(String[] args) { //language=jvm-class-name String className = "java.util.ArrayList"; } }

取消注入

取消持久语言受限标识符

要取消语言受限标识符,请删除用于引入它的注释(注解)。

    取消临时语言受限标识符

    1. 将文本光标置于代码段处,然后按 Alt+Enter (或使用 意图操作 图标 意图操作按钮)。

    2. 选择 取消注入语言或引用。

    禁用意图操作灯泡图标

    请执行以下操作以隐藏编辑器中的意图操作图标 意图操作图标:

    1. 按 Ctrl+Alt+S 打开设置,然后选择 编辑器 | 常规 | 外观。

    2. 清除 显示意图灯泡 复选框。

    3. 应用更改并关闭对话框。

    配置自动注入规则

    在 IntelliJ IDEA 中,有一组预定义规则,根据这些规则,IDE 会在您的代码中的某些位置自动注入语言。

    您可以在 编辑器 | 语言注入 设置页面 Ctrl+Alt+S 配置语言受限标识符规则。

    语言注入设置

    所有预定义的受限标识符规则都配置为 内置 作用域。 换句话说,它们是全局的(因此在所有 IntelliJ IDEA 项目中都可用)。 自定义规则可以配置为适用于 IDE,或仅适用于一个项目。 要更改自定义受限标识符的作用域,请使用 “移动到 Project/IDE 作用域”按钮。

    要通过 VCS 共享自定义规则,请使用工具栏上的相应选项将其移动到 项目 作用域。 通过这样做,您将在 .idea 目录中创建一个名为 IntelliLang.xml 的新文件,其中包含您可以置于版本控制下的自定义规则。

    如果不使用 VCS,可以通过将规则导出到 XML 文件(点击工具栏上的 导出 ),再将其导入另一个项目来共享规则。

    要配置自定义注入规则,请点击 "添加"按钮 以添加新规则,或复制预定义规则并更改其设置。

    2026年 11月 3日