ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

ScalaWorksheet

by inkytonik ST3

Sublime Text 3 的 Scala 工作表功能。

详情

安装

  • 总数 4K
  • Win 1K
  • Mac 2K
  • Linux 1K
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
bitbucket.org

ScalaWorksheet

ScalaWorksheet 是一个 Sublime Text 3 插件,为 Scala 提供工作表功能。您可以在视图中输入 Scala 代码,然后运行命令将视图中内容发送到 Scala REPL。如果代码合法,REPL 的输出将以方便查看代码与产生的输出之间对应关系的方式显示。如果存在错误,将显示完整的 REPL 输出,并提供方便的错误导航。

此插件受到 Scala IDE for Eclipse 工作表插件 的启发。

安装

插件可通过 Package Control 获取。最近在 macOS X 10.9 和 Sublime Text build 3054 上进行了测试。

设置

插件安装完成后,命令面板将包含 显示 Scala 工作表 命令,应在 Scala 视图中调用此命令。

您可能希望为此插件绑定一个快捷键,所以请将一个绑定添加到 show_scala_worksheet 命令到您的键映射中。我将“alt+w”键组合绑定如下,以确保它仅适用于显示 Scala 代码的视图。

{ "keys": ["alt+w"], "command": "show_scala_worksheet",
  "context": [
    { "key": "selector", "operator": "equal", "operand": "source.scala" }
  ]
}

该插件假定您已安装 Scala,并且可以使用 scala 壳命令运行 REPL。

如果您想将一些 JAR 文件添加到 REPL 的类路径,可以将 scala_worksheet_classpath 设置为文件路径列表。

"scala_worksheet_classpath": [
    "/my/great/library.jar",
    "/the/other/monad/lib.jar"
]

此外,如果您代码文件位于一个 SBT 项目内,该插件将添加 SBT 项目的 target/scala-version/classes 目录到类路径中,其中 version2.102.9.3 等。

使用方法

将一些 Scala 代码输入到文件中并保存。例如,在 temp.scala 中输入

1 + 2

通过您的快捷键运行show_scala_worksheet命令。您将看到一个新文件打开,命名为temp.scala (worksheet)。它将显示Scala REPL会话的评估结果。由于没有错误,一旦评估完成,工作表视图将仅显示相关的输出。

res0: Int = 3

您可能希望将您的会话设置至少两列,并将工作表视图移动到与代码不同的列,这样您就可以一次性查看它们。

您可以更新temp.scala,保存它,并重新运行命令来评估新的版本。

作为更复杂的示例,将以下内容输入到一个文件中。

val i = 99 * 666

var amount = {
    val x = 66
    42.5 * x
}

val x = for (a <- 1 to 20) { println (a) }

val len =
    23 + 66

println ("hello there, Tony!")

现在运行该命令。像之前一样,您将看到REPL会话的进度。但是,这次更明显的是,视图已调整,使代码与其输出的输出对齐。

您应该看到以下类似输出,其中左侧的视图是原始文件视图,右侧的视图是工作表。插件在需要时插入了空行以对齐段落。

Example file and worksheet

错误

如果您的代码包含错误,则插件的行为略有所不同。错误的位置将被设置为书签,并且选择将放置在第一个错误处。您可以使用F2键(next_bookmark命令)导航到后续错误。

至于正确的运行,错误输出将通过移除REPL欢迎消息、空白行等来进行净化。如果您想看到完整的错误输出,请使用以下设置

"scala_worksheet_sanitise_errors": false

视图同步

默认情况下,代码视图与其对应的工作表视图是同步的,以便如果其中一个视图中的选择发生更改,另一个视图如果需要也会进行调整,以保持两个视图对齐。

如果您不想有这样的行为,请使用以下设置

"scala_worksheet_sync_views": false

重要提示:当前实现仅在选择更改时同步视图。对视图的其他更改(更改了可见的内容)目前不会同步。例如,如果您用鼠标滚动视图,您需要点击某处才能让另一个视图赶上。我在调查修复这种不足的方法。

工作表位置

插件默认行为是确保工作表视图在输入代码视图的不同的文件组(列)中显示。这种布置确保您可以轻松地同时看到它们。

如果请求在只有一个列的窗口中工作表,将创建第二个列,并将工作表放入该列。如果工作表视图已经在窗口中显示在输入视图的同列中,它将被移动到输入视图右侧的列。如果工作表视图已经在窗口中显示在不同的列中,它将保持原位。

如果您不想让插件尝试为您定位工作表视图,请使用以下设置

"scala_worksheet_show_in_other_group": false