如何使用#来正确地突出显示Scala脚本? (家当)

时间:2017-03-16 10:36:00

标签: linux scala intellij-idea syntax-highlighting ammonite

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

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

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

filenName = ./test.sh

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

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

2 个答案:

答案 0 :(得分:20)

如果你需要保留.sc扩展,这是一个小技巧

  • 将shebang更改为#! /usr/bin/env amm仍为valid 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

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

enter image description here

更新

JetBrains发布了关于支持Ammonite的blog article

答案 1 :(得分:3)

如果您有.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模块中。

即使脚本位于声明的源文件夹之外,它仍然有效。 我甚至可以编辑项目之外的脚本。