语言与引用注入
语言注入使您可以处理与文件主语言不同的编程语言的代码片段。
WebStorm 提供全面的语言支持,用于编辑 HTML、CSS、XML、JSON、RegExp 以及字符串和模板字面量中的其他代码片段,以及 XML 类语言中的标签和属性。
除了语言注入外, IDE 还支持引用注入,将字符串字面量视为对其他实体(例如类或文件)的引用。
添加语言注入
添加临时语言注入
将光标放在您希望注入语言的字符串、模板字面量、标签或属性中,然后按 Alt+Enter (或使用 意图操作 图标
)。
选择 注入语言或引用 ,然后选择您要注入的语言。

添加持久语言注入
使用语言注入注释(注解)来添加持久的已注入语言片段。
当您注入一种语言时,WebStorm 会建议添加注解。 按 Alt+Enter 接受建议。
在目标字符串文本前添加一个空行,并输入以下注释:
language=<language_ID>对于注释,请使用您想要插入的语言的语法。 语言 ID 通常很直观,例如,SQL、RegExp、XML、HTML。
您还可以在设置中了解 language ID。 按下 Ctrl+Alt+S 打开设置,然后选择 。 双击某语言的注入规则;语言 ID 已指定在 ID 字段。
(可选)在注释中包含前缀或后缀。
// language=<language_ID> prefix=<prefix> suffix=<suffix>在以下情况下需要:
该字符串是不完整/部分的 SQL 语句
该字符串未直接用于我们支持的调用之一(例如
select /where)
编辑已注入的语言片段
WebStorm 允许您在专用编辑器中编辑注入的语言片段。
打开片段编辑器
将插入符置于注入的代码片段内,然后按 Alt+Enter (或使用 意图操作 图标
)。
请选择 编辑 <language ID> 片段。
WebStorm 将打开一个专用编辑器区域,用于编辑注入语言的代码。 此编辑器提供完整的编码辅助功能,包括代码补全、检查、 意图操作s 和代码风格操作。
注入引用
引用注入将字符串文字解释为指向其他文件的链接。
例如,任意字符串文字中的文件路径可以被视为对文件的引用。
添加临时引用注入
将文本光标置于您要注入引用的字符串或模板文字内,然后按 Alt+Enter (或使用 意图操作 图标
)。
选择 注入语言或引用 ,并选择一个选项,例如:
文件引用 :向指定文件添加引用。
根据您安装的插件,可能还会提供其他引用选项。
添加持久引用注入
使用注释添加持久引用注入。
在目标字符串字面量之前添加一个空行,并输入带有所需值的
// language=注释。// language=file-reference会向文件添加引用。
取消注入
将光标放在代码片段上,按 Alt+Enter ,然后从列表中选择 。

或者,只需删除注入注释即可。
禁用意图操作灯泡图标
请执行以下操作以隐藏编辑器中的意图操作图标 :
按下 Ctrl+Alt+S 打开设置,然后选择 。
清除 显示意图灯泡 复选框。
应用更改并关闭对话框。
配置自动注入规则
在 WebStorm 中,有一组预定义规则,根据这些规则,IDE 会在您的代码中的某些位置自动注入语言。
您可以在 Editor | Language Injections 设置页面  Ctrl+Alt+S 上配置语言注入规则。
所有预定义的注入规则都配置为 内置 作用域。 换句话说,它们是全局的(因此在所有 WebStorm 项目中都可用)。 自定义规则可以配置为适用于 IDE,或仅适用于单个项目。 要更改自定义注入的作用域,请使用 。
要通过 VCS 共享自定义规则,请使用工具栏上的相应选项将其移动到 项目 作用域。 通过这样做,您将在 .idea 目录中创建一个名为 IntelliLang.xml 的新文件,其中包含您可以置于版本控制下的自定义规则。

如果您不使用 VCS,您可以通过将规则导出到 XML 文件(点击工具栏上的 )然后将其导入到另一个项目来分享您的规则。
要配置自定义注入规则,请点击 以添加新规则,或复制预定义规则并更改其设置。
配置自定义注入规则
请执行以下操作之一:
要创建新规则,请点击工具栏上的
,然后选择要应用规则的上下文。

要编辑现有规则,请选中它并点击工具栏上的
。

要基于已有规则创建新规则,请选择基础规则,点击工具栏上的
,选择复制项后,再点击工具栏上的
。

语言注入设置。 对话框将打开。 对话框中的控件取决于所选注入类型。
指定要注入语言的 ID 或名称。
可选,指定前缀和后缀,也就是在注入前后要添加的字符序列。 可能需要用它来包裹不完整的片段。 假设有以下代码段:
const query = "SELECT * FROM users WHERE id = ?";可以将
选择作为前缀、;作为后缀进行注入。 或者,如果选择JSON作为注入语言,可以指定一对大括号{}作为前缀和后缀。在 位置模式 或 模板标签 字段中,根据规则类型,输入定义上下文规则,使 WebStorm 能将字面量识别为注入内容。 规则可以针对函数实参、变量初始值、对象属性、JSX 特性等。
示例 1 - 任意 JavaScript 字符串实参
psiParameter().withName("query")示例 2 - 标记模板
psiElement(JSStringTemplateExpression)这些规则由 程序结构接口 (PSI) 模式 构建而成,实际上是内部 WebStorm 语言的方法的链式调用。 程序结构接口 (PSI) 按 WebStorm 的处理方式显示文件的结构。
如果您正在编辑预定义的注入规则,模式已预先指定。 它们可确保高效与易用。 建议您依赖这些配置,而不是创建新的配置。
可选:
在 高级 区域中,指定其他设置以收窄注入规则适用的上下文,从而对注入过程进行更细粒度的控制。
在 值模式 字段中,输入确定将语言注入至何处上下文的正则表达式。 通过将模式的第一个捕获组用作注入目标,您可以将该过程配置为仅将语言注入匹配某一模式的值,或注入匹配该模式的多个部分。
例如,
^javascript:(.*)匹配可用于在超链接 href 中执行 JavaScript 代码的javascript协议。单个文件 - 如果此选项关闭,与值模式匹配的片段将被单独处理,视为不同的“文件”——例如,从片段编辑器的视角来看。
如果该选项开启,相应的片段将全部合并在一起,形成一个单元,或 "file"。
鉴于此数值模式
xxx (.+) yyy (.+) zzz以及片段
xxx select * yyy from family zzz,如果该选项关闭,
select *和from family将被视为两个独立的片段(或 "文件")。 如果该选项开启,select * from family将被视为一个单元,或 "文件"。
关于 XML 标记 和 XML 特性注入规则,请参见 语言注入设置对话框:XML 标签注入 和 语言注入设置对话框:XML 属性注入。