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

sum*_*ulu 8 linux scala syntax-highlighting intellij-idea 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
Run Code Online (Sandbox Code Playgroud)

Ser*_*rCe 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
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

更新

JetBrains发表了一篇关于支持Ammonite 的博客文章.


dav*_*rez 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*/
Run Code Online (Sandbox Code Playgroud)

确保:

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

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