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

SublimeLinter-contrib-scalac

Josh Hagins ST3

使用 scalac 的 SublimeLinter 3 插件,用于 Scala

详细信息

安装次数

  • 总次数 2K
  • Win 771
  • Mac 964
  • Linux 564
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 1 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 1 1 0 0 0 0 0 0 1 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

读我

源代码
raw.​githubusercontent.​com

SublimeLinter-contrib-scalac

Build Status

此拼写检查插件为 SublimeLinter 提供了访问 scalac 的接口。它将用于具有“scala”语法的文件。

重要提醒!

请注意,由于 scalac 需要完整的目录上下文才能运行,因此此拼写检查插件目前只有在文件被保存时才会对文件进行拼写检查。一旦您修改了文件,所有的拼写检查标记都会被清除。

安装

必须安装 SublimeLinter 3 才能使用此插件。如果未安装,请按照此处的说明进行。

拼写检查器安装

在使用此插件之前,您必须确保系统已安装 scalacscalacscala 开发者 SDK 的一部分,可以从此处下载。

注意:此插件需要 Scala 2.9.1 或更高版本。

拼写检查器配置

为了使 SublimeLinter 能够执行 scalac,您必须确保其路径对 SublimeLinter 可用。在继续之前,请阅读并遵循文档中的“寻找拼写检查器可执行文件”部分,教程中的“验证您的 PATH”步骤。

安装和配置 scalac 后,您可以安装 SublimeLinter-contrib-scalac 插件(如果尚未安装)。

插件安装

请使用Package Control 来安装拼写检查器插件。这可以确保插件在可用新版本时更新。如果您想从源代码安装以修改源代码,那么您可能已经知道了该怎么做,所以我们不会在此处介绍。

要通过 Package Control 安装,请按照以下步骤操作

  1. 在Sublime Text中,打开命令面板,并输入install。在命令中你应该看到Package Control: Install Package。如果该命令没有高亮显示,请使用键盘或鼠标选择它。在Package Control获取可用插件列表的过程中可能会有几秒钟的暂停。

  2. 当插件列表出现时,输入scalac。在条目中你应该看到SublimeLinter-contrib-scalac。如果该条目没有高亮显示,请使用键盘或鼠标选择它。

设置

有关SublimeLinter如何与设置协同工作的信息,请参阅设置。有关通用linter设置的信息,请参阅Linter 设置

除了标准的SublimeLinter设置之外,SublimeLinter-contrib-scalac还提供了自己的设置。标记为“行内设置”或“行内覆盖”的也可以行内使用

设置 类型 描述 行内设置 行内覆盖
lint str\ list 要应用的应用规则列表,以逗号分隔。
classpath str\ list 以冒号分隔的classpath条目列表。
classpath_filename str 包含冒号分隔的classpath的文件名。
target_directory str 在此放置由scalac生成的class文件。

lint

lint选项的有效规则取决于所安装的Scala版本。默认列中有检查标记的选项默认启用

规则 描述 Scala 版本 默认
check-null 在选择可空引用时发出警告。 2.9.1-2.10.4
dead-code 当识别到死代码时发出警告。 >= 2.9.1 2.9.1-2.9.3
value-discard 当非Unit表达式结果未使用时发出警告。 >= 2.9.1
numeric-widen 当数值变宽时发出警告。 >= 2.9.1
nullary-unit 当nullary方法返回Unit时发出警告。 >= 2.9.1
inaccessible 警告有关方法签名中的不可访问类型。 >= 2.9.1
nullary-override 当非nullary def f() 覆盖nullary def f 时发出警告。 >= 2.9.1
adapted-args 当修改参数列表以匹配接受者时发出警告。 >= 2.10.0
infer-any 当类型参数推断为Any时发出警告。 >= 2.11.0
unused 当局部和私有值、变量、匿名函数和类型未使用时发出警告。 >= 2.11.0
unused-import 当导入未使用时发出警告。 >= 2.11.0
missing-interpolator 字符串字面值似乎缺少插值器ID。 >= 2.11.2
doc-detached ScalaDoc注释看起来与元素分离。 >= 2.11.2
private-shadow 私有字段(或类参数)掩盖了超类字段。 >= 2.11.2
poly-implicit-overload 参数化重载的隐式方法不能作为视图界限可见。 >= 2.11.2
option-implicit 使用隐式视图的Option.apply。 >= 2.11.2
delayedinit-select 选择DelayedInit的成员。 >= 2.11.2
by-name-right-associative 右结合操作符的按名称参数。 >= 2.11.2
package-object-classes 在包对象中定义的类或对象。 >= 2.11.2
unsound-match 模式匹配可能不会是类型安全的。 >= 2.11.2
deprecation 对于废弃的API使用发出警告和位置。 >= 2.9.1
unchecked 在依赖假设的生成代码中启用额外的警告。 >= 2.9.1
fatal-warnings 如果存在任何警告,则编译失败。 >= 2.9.1
nowarn 不生成任何警告。 >= 2.9.1
feature 对于应该显式导入的功能的使用,发出警告和位置。 >= 2.10.0

例如,要启用numeric-widendeprecation,请将其添加到linter设置中

"scalac": {
    "lint": "numeric-widen,deprecation"
}

或作为一个列表

"scalac": {
    "lint": [
        "numeric-widen",
        "deprecation"
    ]
}

要启用feature并禁用doc-detached但保留其余设置,请在文件的第一行或第二行上放置此注释

// [SublimeLinter scalac-lint:+feature,+-doc-detached]

classpath

如果您指定了 classpath,则代码检查插件会使用这些条目作为输入运行 scalac -classpath

对于 sbt 项目,您可以运行以下命令以获取完整的类路径

sbt 'export fullClasspath'

您也可以将 classpath 指定为字符串

"scalac": {
    "classpath": "${project}/target/scala-2.11/classes:${project}/lib/lib.jar"
}

或作为一个列表

"scalac": {
    "classpath": [
        "${project}/target/scala-2.11/classes",
        "${project}/lib/lib.jar"
    ]
}

classpath_filename

如果您指定了 classpath_filename,则代码检查插件将搜索项目目录及其父目录中具有该名称的文件。如果找到,则将使用文件的文件内容与 scalac -classpath 一起进行代码检查。

如果同时指定了 classpathclasspath_filename,它们的值将合并。

文件内容必须是 JVM 在编译期间要搜索的以冒号分隔的路径列表。例如

/path/to/project/classes:/path/to/project/libs/lib.jar

您还可以在类路径条目之间添加空格以提高可读性

:/path/to/project/classes
:/path/to/project/libs/lib.jar

target_directory

此设置告知 scalac 生成类文件的位置。如果没有已存在的目录,则插件将创建该目录。

例如

"scalac": {
    "target_directory": "${project}/target/scala-2.11/classes"
}

如果 target_directory 没有设置,则类文件会放在与其源文件相同的目录中。

贡献

如果您希望贡献改进或修复,请按照以下步骤操作

  1. 从插件仓库进行分支。
  2. 从最新的 develop 创建一个单独的主题分支进行开发。
  3. 提交并推送主题分支。
  4. 创建一个拉取请求。
  5. 请耐心等待。:-)

请注意,修改应遵循以下编码规范

  • 缩进为 4 个空格。
  • 代码应通过 flake8 和 pep257 代码检查。
  • 垂直空白有助于可读性,不要害怕使用它。
  • 请使用描述性的变量名,除非缩写非常知名,否则不要使用缩写。
重要提醒!

请注意,此存储库使用 overcommit 作为验证工具。在进行任何更改之前,请在本地存储库中安装 overcommit

感谢您的帮助!