8

如何使 intellij Idea 正确突出显示 Scala 脚本。

尝试 1 将文件名更改为'test.sc'。Intellij 不喜欢第一行,即它不是有效的 scala 注释语法

尝试 2 将文件名更改为'test.sh'。Intellij 认为所有的语法都是 bash 脚本。

文件名 = ./test.sh

#!/usr/bin/env amm
import ammonite.ops._ , ImplicitWd._

println("Stop script")
val x = 1 + 1
4

2 回答 2

20

如果您需要保留.sc扩展名,这里有一个小技巧

  • 将 shebang 更改#! /usr/bin/env amm为仍然是有效的 shebang

  • #!.scala在脚本旁边放置一个名为的文件,其内容为:

class CLZ {
  def /(that: CLZ): CLZ = this
  def amm: Unit = {}
}
object #! extends CLZ
object usr extends CLZ
object bin extends CLZ
object env extends CLZ

现在,您的脚本已正确突出显示

在此处输入图像描述

更新

JetBrains 发布了一篇关于支持 Ammonite的博客文章。

于 2017-03-30T10:49:24.617 回答
4

如果您有.scala扩展名,IDEA 会识别为有效的 Scala 脚本文件。甚至支持多行 shebang 行:

#!/bin/sh
  DIR=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)
  exec scala -classpath $DIR/scalaj-http_2.11-2.3.0.jar -savecompiled "$0" "$@"
!#
/* Scala code*/

确保:

  • 您使用的是相对较新的 IDEA 版本。
  • 安装了 Scala 插件。
  • 该脚本位于 Scala 模块中。

即使脚本位于声明的源文件夹之外,它也可以工作。我什至可以在我的项目之外编辑脚本。

于 2017-03-30T10:27:10.757 回答