Scuggest
Sublime Text 用于最小化 Scala 导入的插件
详细信息
安装次数
- 总计 557
- Win 440
- Mac 45
- Linux 72
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 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 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 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
自述文件
Scuggest
Scsuggest(发音为"Suggest")是一个 Sublime Text 插件,用于自动向 Scala 文件中添加导入语句。它通过扫描提供的 jar 文件和类目录来解决导入。
Scsuggest 初始基于 JavaImports,但现在采用完全不同的方式工作。
安装
以下是一些在您的系统上安装 Scsuggest 的方法。
直接通过 包管理器 安装。
将 Scsuggest 仓库克隆到您的 Packages 目录中
git clone [email protected]:ssanj/Scuggest.git
下载最新发布的源代码并将其提取到 Packages 目录中。
_packets 目录位于
- OS X: ~/Library/Application Support/Sublime Text 3/Packages
- Linux: ~/.config/sublime-text-3/Packages
- Windows: %APPDATA%\Sublime Text 3\Packages
配置
使用 SBT
运行 sbt-scuggest 以生成所有基本配置并更新(或生成)您的项目文件。
手动
要使用 Scsuggest,您需要为 Scala 项目创建一个项目文件(.sublime-project)。您可以通过点击 项目 > 另存为项目… 菜单项执行此操作,并将项目保存到 Scala 项目目录的根目录(通常是 build.sbt 文件所在的目录)。
创建项目后,使用以下设置元素,并自定义 scuggest_import_path 和 scuggest_filtered_path 以满足您的需求。
"settings": {
"scuggest_import_path":
[
"/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/rt.jar",
"/Users/sanj/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.8.jar",
"/Volumes/Work/projects/code/scala/toy/dabble/target/scala-2.11/classes",
"/Users/sanj/.ivy2/cache/com.lihaoyi/ammonite-ops_2.11/jars/ammonite-ops_2.11-0.5.7.jar",
"/Users/sanj/.ivy2/cache/com.github.scopt/scopt_2.11/jars/scopt_2.11-3.4.0.jar",
"/Users/sanj/.ivy2/cache/org.scalaz/scalaz-core_2.11/jars/scalaz-core_2.11-7.2.2.jar"
],
"scuggest_filtered_path":
[
"com/sun",
"sun",
"javax/swing",
"org/omg",
"com/apple",
"java/awt"
]
}
scuggest_import_path 列出了 Scsuggest 搜索类的 jar 文件。这可以包括 Java 或 Scala jar 文件。一些常见的 jar 文件包括 Java rt.jar 文件和 scala-library-scala-version.jar 文件。您可以在此处添加任何想要搜索的库。
scsuggest_filtered_path列出了在扫描目标类时跳过的前缀路径。一个典型的例子可能是com/sun包下的任何内容。注意,这些是文件路径,而不是包(或点分隔)路径。
用法
您可以使用以下方式使用Scuggest
- 点击您想要将其导入Scala源文件中的类名,并按下CMD + ALT + I。这将选中光标下的单词并尝试显示任何匹配的类。
- 如果您在空白行上按下CMD + ALT + I,则将显示一个搜索框,允许您输入类名或通配符以进行匹配。
- 如果您在任何位置(甚至是选择中)按下SHIFT+CMD + ALT + I,则会显示一个搜索框,允许您输入类名或通配符以进行匹配。
导入源类
Scuggest通过检查您的scuggest_import_path中的jar文件和您的target目录中的类文件来工作。这意味着为了使Scuggest能够与您的源类一起工作,它们必须已经被编译。一个推荐的流程是使用带上文编译的SBT,以确保所有源都已被编译并且可以通过Scuggest访问。
sbt ~test:compile
选择匹配器
Scuggest使用各种匹配策略来查找所选的类。
1. 类名
这是尝试对选择使用的第一个匹配器。它试图找到以提供的搜索词结尾的类。注意 选择被转换为搜索词。实际匹配是针对搜索词进行的。
# example class: net.ssanj.dabble.ResolverParser
# search term: ResolverParser
# matched: true
# example class: net.ssanj.dabble.DabbleWorkPath
# search term: ResolverParser
# matched: false
# example class: net.ssanj.dabble.ResolverParser
# search term: ResolverPars
# matched: false
2. 对象名
这与类名匹配器类似,但仅匹配以提供的搜索词结尾的对象。对象类名以$结尾。
# example: net.ssanj.dabble.DabblePathTypes$DabbleWorkPath$
# search term: DabbleWorkPath
# match: true
3. 具有子型的对象
匹配搜索词与定义其他类型(类、特质或其他对象)的对象
# example: net.ssanj.dabble.DabblePathTypes.DabbleWorkPath.NestedDabbleWorkPath.MoreNestedDabbleWorkPath
# search term: DabbleWorkPath
# matches:
# net.ssanj.dabble.DabblePathTypes.DabbleWorkPath
# net.ssanj.dabble.DabblePathTypes.DabbleWorkPath.NestedDabbleWorkPath
# net.ssanj.dabble.DabblePathTypes.DabbleWorkPath.NestedDabbleWorkPath.MoreNestedDabbleWorkPath
# net.ssanj.dabble.DabblePathTypes.DabbleWorkPath._
通配符匹配
这些匹配器通常通过搜索框使用。
1. 通过前缀
匹配以给定搜索词开头的类名。搜索词应以*结尾。
# search term: Future*
# matches:
# java.util.concurrent.Future
# java.util.concurrent.FutureTask
# scala.concurrent.Future
# scala.concurrent.FutureTaskRunner
2. 通过后缀
匹配以给定搜索词结尾的类名。搜索词应以*结尾。
# search *DateTime
# matches:
# java.time.LocalDateTime
# java.time.OffsetDateTime
# java.time.ZonedDateTime
# java.time.chrono.ChroLocalDateTime
# java.time.chrono.ChroZonedDateTime
# java.util.Formatter.DateTime
3. 任何位置
匹配搜索词在类名中的任何位置。搜索词应开始和结束于*。
# search: *Work*
# matches:
# java.util.concurrent.ForkJoinWorkerThread
# java.util.concurrent.ForkJoinPool.WorkQueue
# java.util.concurrent.ForkJoinPool.InnocuousForkJoinWorkerThreadFactory
# java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory
# java.util.concurrent.ForkJoinPool.DefaultForkJoinWorkerThreadFactory
缓存
Scuggest试图尽可能不干扰地缓存您的文件。在scsuggest_import_path中指定的任何jar文件的内容都会被缓存,直到scsuggest_import_path通过添加、删除或修改jar路径被修改。在scsuggest_import_path中指定的目录路径每次都会被读取,以便索引可能添加的新文件。
您可以通过运行命令面板中的“Scuggest: Show Cache”命令来显示缓存(CMD + P)。这将输出项目位置以及为该项目缓存的类数量到控制台(CTRL + )。
Scuggest cache:
/Volumes/Work/projects/code/scala/toy/dabble/dabble.sublime-project : 9992
您还可以通过从命令面板运行“Scuggest: Clear Cache”命令来清除所有项目的完整缓存。这意味着下次导入调用时必须重建缓存。