Scala 功能
IntelliJ IDEA 允许您使用不同的 Scala 意图操作、检查以及快速修复,同时还可以将代码从 Java 转换为 Scala,并在 IntelliJ IDEA 中使用不同的 Scala 模板。 要了解更多关于如何使用 IntelliJ IDEA 的编辑器,请参阅 使用代码编辑器。
在 Scala 中处理字符串
IntelliJ IDEA 带有 Scala 插件,提供了许多工具来帮助处理 Scala 编程中的字符串操作。本页重点介绍了一些非常受欢迎的操作和快捷键。
三引号字符串
如果您想在普通字符串中包含引号字符 ('"' ),则需要在字符前面加上反斜杠来转义 ('\"')。 如果字符串中有许多引号字符,这将非常繁琐,也可能导致难以发现的拼写错误。 相反,您可以将普通字符串转换为三引号字符串。 要执行此操作,请输入您的字符串,按 Alt+Enter ,然后从意图列表中选择 转换为带三双引号的字符串。
多行字符串
您可以使用相同的 转换为带三双引号的字符串 意图将带有转义换行符的常规字符串 ('\n') 转换为多行字符串。 按 Alt+Enter 打开意图列表。 请选择 转换为带双引号的字符串 并按下 Enter。 您可以再次使用相同的意图将其还原。
在编辑器中从头输入多行字符串,请键入三个引号。 如果您按下 Enter ,它将自动调用 stripMargin 方法。 stripMargin 方法删除多行字符串中指定分隔符之前的左侧部分。 空白符也被保留。
多行字符串设置
在 Scala 设置中使用 多行字符串 选项卡设置多行字符串选项的不同格式,例如 边距字符 缩进或禁用多行字符串支持。
按 Ctrl+Alt+S 打开设置,然后选择 。 然后,在 Scala 页面上,选择 多行字符串 选项卡。 编辑设置并点击 OK。

将简单字符串转换为插值字符串,并添加变量引用。
使用 + + 进行连接
在 Scala 中包含计算结果的惯用方式是使用插值。 如果出于某种原因,您决定将字符串拆分为两部分并用计算结果和 '+'号连接起来,将光标移动到您想要拆分字符串的位置,然后从意图列表中选择 插入间隙与连接:(" + + ")。
替换 '\r' 意图
此意图让您在多行字符串的下一行保持文本光标在正确的位置,而不论您当前使用的是什么操作系统。 输入多行字符串,按 Alt+Enter 并从列表中选择合适的意图。

注入语言/参考
请使用 注入语言/参考 意图将语言或引用插入到您的多行字符串字面值中。 有关更多信息,请参阅 Language Injections。
按 Ctrl+Alt+S 打开设置,然后选择 。
在 Scala 页面上,选择 多行字符串 标签。

编辑设置并点击 OK。
隐式提示
IntelliJ IDEA 允许您启用、展开和折叠有关隐式转换和参数的编辑器提示。 这些所谓的隐式提示提供了关于 Scala 编译器在代码中给定位置所需隐式信息的视觉提示。 该功能在不实际更改代码库的情况下增强代码可读性和调试能力。
在主菜单中,前往 (或按 Ctrl+Alt+Shift += )。 在编辑器中,右键点击提示,从弹出菜单中选择适当的操作来展开现有提示、禁用模式或查看 implicit arguments。

或者,您也可以在编辑器中按 Ctrl+Alt+Shift+ + 启用隐式提示。 如果您再次按下相同的快捷键,IntelliJ IDEA 会扩展隐式提示以显示更详细的信息。 按 Ctrl+Alt+Shift+ - 以隐藏提示。
嵌入提示
本节讨论了在Scala插件和Scala编程语言的上下文中使用的嵌入提示。 更一般的概述,请参阅 Inlay Hints。
在 IntelliJ IDEA 中的内嵌提示是直接放置在编辑器代码中的视觉提示。 它们提供上下文信息,使代码在不修改实际源代码的情况下更具可读性和可理解性。 这些提示非常有价值,尤其是在像 Scala 这样的语言中,其类型推断系统可能会导致代码简洁,但有时难以一目了然地解读。
在 设置 对话框(Ctrl+Alt+S )中,前往 。

类型提示
IntelliJ IDEA 可以显示值的推断类型作为内嵌提示。 这对于具有复杂类型的值或使用泛型函数时特别有用。

类型不匹配提示
如果表达式的结果类型与预计将保存结果的值的声明类型不一致,则会显示这些内嵌提示。
方法链
Scala 集合提供多种方法来转换数据。 这些方法可以链接在一起,有时形成相当长的转换序列,这个序列会逐步更改集合的类型及其内部的数据类型。 您可以使用内嵌提示来跟踪该过程。

从上下文菜单启用和禁用内嵌提示
在上下文菜单中,您可以启用或禁用不同类型的内嵌提示:右键点击提示并选择选项。

X-Ray 模式
使用 X-Ray,您可以保持嵌入提示和所有其他附加信息禁用或只部分启用到您感到舒适的程度,然后按两次 Ctrl 并按住 – 所有其他提示将出现并且只会在您按住 Ctrl 的时间内显示。

您可以在设置中打开和关闭每种类型的提示。 按 Ctrl+Alt+S 打开设置,然后选择 。 请注意,每一个都可以在 中永久开启,并在 中开启方法分隔符和缩进指南。 如果某种类型的附加信息被永久打开,无论您的 X-Ray 设置如何,它将始终显示。
X-Ray 模式也是另外两个操作的替代方案: ( Ctrl+Alt+Shift+= )和 显示类型信息 (Ctrl+Shift+P)。 在这两种情况下,您可以按 Ctrl ,而不是记住相应操作的快捷键。 除此之外,提示中显示的类型是可导航的——当按下 Ctrl 时,您可以将光标悬停在它们上面并点击以转到类型声明。
查找隐式元素的用法
您可以使用 查找用法(U) 操作从 implicits 定义导航到它们的用法。 在编辑器中,选择 implicits 定义,然后从上下文菜单中选择 查找用法(U) Alt+F7。
此功能依赖于字节码索引,还可以用于定位以下在源代码中不可见的隐藏元素:
apply/unapply方法调用单一抽象方法 (SAM)类型实例化
foreach/map/flatMap/filter/withFilter调用通过 for-comprehension

隐式转换自动导入
IntelliJ IDEA 支持未解析隐式转换的自动导入。 请在编辑器中输入您的代码。 将文本光标放在未解析的表达式处,按 Alt+Enter ,然后从建议选项列表中选择转换为 import。 因此,IntelliJ IDEA 会添加必要的导入语句。
隐式转换
IntelliJ IDEA 允许您调用隐式转换方法和参数。
列出隐式转换
选择一个表达式并按 Ctrl+Shift+Q (在 macOS 上为 Ctrl+Q )以调用适用的隐式转换列表。 列表显示了常规范围在顶部,扩展范围在列表底部。
如果需要,请将隐式转换方法显式化。 按 Alt+Enter 并选择 明确 或 显式导入方法。

如果您选择 明确 ,IntelliJ IDEA 将返回带有类名的方法调用。 如果您需要确保编译器导入了您最初想要的特定隐式转换方法,这可能会有所帮助:

如果您选择 显式导入方法 ,该方法将被静态导入,IntelliJ IDEA 返回的仅是其调用而没有类名。 此外,下次打开有用的隐式转换列表时,您将在常规范围内看到此方法:

列出隐式参数
将文本光标放在使用隐式转换的方法上,然后按 Ctrl+Shift+P 以调用隐式参数。 当您想查看特定调用传递了哪些隐式参数时,这可能对代码分析有帮助。 它还让您查看递归隐式参数。

如果 IntelliJ IDEA 无法找到传递隐式参数的方法调用,它会显示一个弹出消息:

类型信息动作
IntelliJ IDEA 允许您使用 Scala 显示类型信息 操作处理类型推断。
要在编辑器中调用 显示类型信息 操作,请导航到该值并按 Ctrl+Shift+P。

您还可以在值定义上查看类型信息。 将文本光标放置在值定义处并按 Ctrl+Shift+P:

要添加类型注解,请突出显示该值,按 Shift+Enter ,然后从上下文菜单中选择 为值定义添加类型注解。 因此,添加了类型注解。
要删除类型注释,请按 Shift+Enter 并选择 从值定义中移除类型注解。
包装和取消包装表达式
您可以在编写 Scala 代码时自动包装或取消包装表达式。 在您想要包装的表达式前添加一个开括号,IntelliJ IDEA将在表达式末自动添加一个闭括号。 要展开表达式,请删除开括号。 IntelliJ IDEA 将自动删除右花括号。
代码补全
您可以使用代码补全来执行以下操作:
要导入类,请按 Shift+Enter 在代码上,选择 导入类。 然而,IntelliJ IDEA 通常能识别您需要导入的内容并显示建议列表。
基于名称的参数类型建议。 IntelliJ IDEA 允许您在实际添加类型引用之前自动完成名称和类型。

调用 转换为插值字符串 意图。
您可以在
$后使用代码补全将常规字符串轻松转换为插值字符串。或者,在字符串中选择一个带有连接的值,按 Alt+Enter ,然后选择 转换为插值字符串。
如果您有带子类型的密封类型或 Scala 3 枚举,您可以生成穷尽匹配检查。 请注意,自动完成功能可用。 因此,编译器会检查封闭类型所有可能成员的模式匹配。
您不仅可以在 case 条款内完成代码,还可以完成整个 case 条款。
根据用例创建
IntelliJ IDEA 允许您在不先声明它们的情况下创建新的代码元素。 要执行此操作,请输入新代码元素的名称,然后按 Alt+Enter。 然后,从意图列表中选择您需要的那个。

结构视图
IntelliJ IDEA 允许您查看代码结构。 打开 结构 工具窗口,并按下 Alt+7。

要从 结构 工具窗口导航到编辑器中的代码项,请按 F4。
要高亮代码,请按 Ctrl+Enter。
代码生成
使用 Alt+Insert 来生成诸如重写、委托或实现方法等操作。

例如,选择 重写方法 操作。 IntelliJ IDEA 显示了一个对话框,列出了可以重写的方法。 请选择您所需的并点击 OK。

相应的补全会在您输入 override 关键字时工作。

实时模板
若要使用预定义的 Scala 模板,请按 Ctrl+J ,IntelliJ IDEA 将显示可用的 Scala 实时模板 列表。 请选择您需要的并按 Enter。
您还可以定义一个新模板或编辑现有的模板。 选择 ,然后从右侧的选项中打开 Scala 模板列表。

如果您想添加一个新模板,请点击 。
如果您想编辑现有模板,请选择所需的模板并更改默认定义。
后缀补全
您可以根据点后输入的后缀,将已经输入的表达式转换为另一种表达式。
要启用或禁用 postfix completion 或查看特定于后缀的预定义模板、其描述和代码示例列表,请打开位于 后缀补全 页面的 。
检查
您可以在 检查 页面上的 Ctrl+Alt+S 中查看可用的 Scala 检查。 由于 IntelliJ IDEA 也支持 Akka 和 Play,因此也有几个可供使用的检查。

随处搜索
正如许多其他由 IntelliJ IDEA 支持的编程语言一样, 随处搜索 是一项强大的功能,使 Scala 开发人员能够快速浏览他们的代码。 在主菜单中打开它: ,但我们建议您转到 ,在操作列表中找到 随处搜索 ,并将其绑定到您选择的简单快捷键上。

默认情况下, 随处搜索 在弹出窗口中打开,允许您通过类名(包括特征和对象)、文件名、代码中使用的所有符号名(字段、方法、变量等)以及所有这些名称一次性搜索您的代码库。 您还可以在 IntelliJ IDEA 的操作中进行搜索——那里有很多操作,这是了解 IntelliJ IDEA 能为您做什么的一个好方法。
此列表可以通过插件扩展。 例如, Git 插件增加了搜索 Git 引用的功能。 点击弹出窗口右上角的图标,您可以将 随处搜索 移动到屏幕底部,您还可以查看搜索的符号在代码中的样子。

基于机器学习的代码补全
除了适用于 Scala 代码的常规代码补全功能,您还可以启用基于机器学习的 Scala 代码补全。 它应用从收集的数据中学到的规则,从而提供更好的建议。
按 Ctrl+Alt+S 打开设置,然后选择 。 从右侧的选项中,在 机器学习辅助补全 部分下,选择 基于机器学习排序自动完成建议 | Scala。
如有需要,请配置排序选项以查看机器学习如何影响元素的顺序。 但是,由于此功能是实验性的,排序结果可能不会有明显变化。
