在Sublime Text下获取完整的JS自动完成功能


98

我刚安装的崇高文本在Windows Vista,甚至在之后给出的建议这篇文章,即明确设置View > Syntax > JavaScript > JavaScript,我只看到基于我以前已经输入的建议。我什至没有安装SublimeCodeIntel插件

据我了解,当我编写“ pars”时,应该像在Chrome开发人员工具中一样获得“ parseFloat”和“ parseInt”选项,对吗?

谢谢!


8
2015年:情况没有改善。开箱即用。8岁的编辑者最好能自动完成。
穆罕默德·乌默尔

请参阅下面的我的答案,@ MuhammadUmer。到目前为止,它仍然有效;开箱即用..又漂亮。
史蒂夫·梅斯纳

1
@SteveMeisner-在这里讨论您的答案meta.stackoverflow.com/q/341163/73226
Martin Smith,

1
我回答了一个主要是“仅链接”的答案,但它却被冻结了。但是,这是我为JS intellisense / autocompletion提供的绝佳软件包: github.com/pichillilorenzo/JavaScript-Completions
Steve Meisner,

以防万一像我这样的人处理这个问题。这就是我改用VS Code的原因。它具有这个出色的Intellisense功能,在跨JS模块自动完成时也能很好地工作。到目前为止,享受它。
Sergiy Ostrovsky

Answers:


77

建议(基本上)基于当前打开的文件中的文本以及您定义的所有摘要或完成内容(ref)。如果您需要更多文字建议,建议您:

作为附带说明,我真的建议安装Package控件,以充分利用Sublime社区。上面的某些选项使用程序包控制。我也强烈推荐tutsplus Sublime教程视频,其中包含有关提高使用Sublime效率的各种信息。


1
基于出色的Emmet工具包支持并接受!真是令人震惊。它不像Chrome Web检查器那样了解JS,但我想这并不是一件坏事。(毕竟,我想增强我的肌肉记忆力。)另一方面,Emmet为您所做的工作真是太神奇了!谢谢!
ezequiel-garzon

2
很高兴这很有帮助。我希望您最终能看完整个教程序列;那里有很多好东西。
dbn

1
但是它不是免费的:/也许是更早的。
Jeff P Chacko

3
我觉得那是tutsplus网站的广告。也许不是最初的原因,但我宁愿看到链接的答案不在付费墙后面。
dcmbrown '16

嘿,是的,当我看他们的时候,那些都是免费的。更新答案,请注意,这些都是在付费墙后面。
dbn

66

Ternjs是获得JS自动补全的新选择。http://ternjs.net/

Sublime插件

Sublime Text维护最完善的Tern插件称为“ tern_for_sublime”

还有一个名为'TernJS'的较旧插件。它是未维护的,并且包含一些与性能相关的错误,这些错误会导致Sublime Text崩溃,因此请避免这种情况。


2
崩溃ST3。项目未维护。
和弦

1
我还没有经历过,您使用的是哪个软件包?我正在使用github.com/marijnh/tern_for_sublime
Subhaze 2015年

2
我建议在答案和评论中提供的链接中使用一个。它仍然保持。
Subhaze 2015年

1
我真的不认为这是“咸味”,但我确实想指出您的评论是错误的,因为我链接的插件没有得到维护。由于它在github上有最新更新。
2015年

1
我已将评论更新为希望少/不咸:/,并且在阅读这些评论时,希望人们不会“转向”,而是朝着正确的方向前进。
2015年

41

如前所述,tern.js是一个新的有前途的项目,带有Sublime Text,Vim和Emacs插件。我使用TernJS for Sublime已有一段时间了,我得到的建议比标准建议要好得多:

在此处输入图片说明

Tern扫描项目中的所有.js文件。您可以通过在.sublime-project文件中添加“库”来获得对DOM,nodejs,jQuery等的支持:

"ternjs": {
    "exclude": ["wordpress/**", "node_modules/**"],
    "libs": ["browser", "jquery"],
    "plugins": {
        "requirejs": {
            "baseURL": "./js"
        }
    }
}

在此处输入图片说明


在上一个示例中,我没有得到“ src”建议-我刚刚安装(Sublime Text 3)并使用了您的项目设置。
符文耶普森

2
是否支持ES6(ES2015)样式的javascript?
Dan Esparza 2015年

1
是的,tern.js项目站点包含受支持的ES6功能列表
eosterberg,2015年

1
对于它的价值,您要说明您使用“ tern for sublime”,但它链接到ternJS插件... Tern for Sublime- > packagecontrol.io/packages/tern_for_sublime TernJS-> packagecontrol.io/packages/TernJS
subhaze

我很惊讶您获得了selectedIndex属性,因为createTag将返回一个img HTTP标签。另外,selectedIndex属于选择的HTTP标签,而不是img或其父元素。您会如何评论这两个建议?我相信是因为您已经在其他文件中使用了它们,而不是因为JsTern能够在运行时解决createElement调用。但是,建议selectedIndex毫无意义。
Alex


6

我开发了一个名为JavaScript Enhancements的新插件,您可以在Package Control上找到它。它在后台使用Flow(Facebook的javascript静态类型检查器)。

此外,它提供了智能的javascript自动完成功能(与我的其他插件JavaScript Completions相比),实时错误代码重构以及有关创建,开发和管理javascript项目的许多功能

请参阅Wiki以了解其提供的所有功能!

可以在此css-tricks.com文章中找到此插件的介绍:将Sublime Text 3转换为JavaScript IDE

只是一些快速截图:


1
嗨,洛伦佐。我对您的项目很好奇,但是我想在定制完成方面有哪些选择。基本上,我希望有诸如docu> documentdocument.que>之类的建议document.querySelector,但绝不要使用带有参数和多行的完整函数调用(如arr.forEa>)arr.forEach((object,index,array) => { /* newline */ });,如果有道理的话。我可以使用Javascript增强功能禁用它,而不必手动编辑所有完成文件吗?由于对结构有些执迷,因此我现在禁用了所有完工。
ViggoV


1

检查代码片段是否具有<tabTrigger>以特殊字符开头的属性。如果这样做,它们将不会显示在自动完成框中。当前,这是Windows上可用的jQuery插件的问题。

有关更多详细信息,请参见我对该线程的回答

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.