【问题标题】:Sublime Text Java-Scala Code Intelligence/Auto CompleteSublime Text Java-Scala 代码智能/自动完成
【发布时间】:2015-12-16 04:49:58
【问题描述】:
我一直在尝试寻找用于在 Sublime Text 3 中开发 scala/java 代码的 codeInt 插件,但没有成功,我不明白这是为什么。
似乎有一组很好的插件可用于sbt、ensime等辅助功能(这太粗略了,我'我仍在尝试为 scala 和插件(如 javatar for java
相反,对于 Python、PHP 和 JavaScript 等语言,这些插件是 already available 并且非常丰富,可以帮助您忘记更重、更笨重的 IDE,例如Eclipse、IntelliJ 等。
我的问题基本上归结为:是否有正当的潜在原因(由于 codeInt 导致开销增加?复杂性?有人不愿意开发这个插件?没有想法!) 像 Java 和 Scala 这样的语言被排除在外,还是 Sublime Text 只是为了成为(或一直是)脚本友好的 IDE?
【问题讨论】:
标签:
java
scala
autocomplete
sublimetext3
【解决方案1】:
是的,专注于脚本编写是有正当理由的。最重要的原因是由于脚本语言的性质:可以实时评估语句和代码块,可以确定变量的类型,并将适当的函数/方法/属性等呈现给用户。编译语言不一定提供这种能力,因为代码需要不断地重新编译才能运行和分析,而且有些代码不适合静态分析。
基本上,Sublime 的“代码智能”插件归结为移动解释器,它们可以评估当前代码并为您提供功能建议等。它们扫描已经导入的模块/库/你有什么并提供这些在适当的时候启动,以及无需导入的标准内置函数。他们跟踪变量的类型,给人一种“智能”的感觉。
但是,正如任何有中等经验的用户都会告诉你的那样,Sublime 不是 IDE。它不能进行真正的重构。调试很难甚至不可能,具体取决于语言。不能自动导入。
Sublime 的 API 在 Python 中公开,这解释了该语言的大量代码完成、linting 和分析工具。 Node.js 可以通过 Python 运行并负责 JavaScript 社区。 Ruby 与 Python 一样,被解释并具有类似的工具,虽然没有那么多,可能是因为它不那么流行。 PHP 也是被解释的,虽然我不知道为什么任何头脑正常的人会自愿使用该语言做任何事情,但显然人们仍然这样做,所以有一些工具。
JVM 和 CLR 语言是完全不同的野兽。市场上有很多针对它们的优秀 IDE,具有嵌入式 VM(或至少能够附加到各种 VM)和巨大的代码库,它们试图(并且经常成功)为您提供阳光下的所有功能。因此,它们的大小从数百兆字节到千兆字节不等。 Sublime Build 3095 x64 的最新 .deb 约为 6.5 MB,AFAIK 所有支持平台的所有安装程序都小于 10 MB。
Sublime 被设计成一个快速和可扩展 文本编辑器,而不是“成为所有人的一切” “笨重的 IDE。所有的配置文件、菜单定义、键鼠绑定等都是文本文件,而不是花哨的图形菜单。除非你像我一样安装了太多的插件,否则启动时间快如闪电(甚至我的启动时间不到一三秒),而且它的响应速度非常快。它真的很擅长它的功能,虽然 API 允许人们编写插件来创建新功能,但它永远不会是一个真正的 IDE。我喜欢这样,但我又不会用 Java 或 C# 编写代码。