【问题标题】:Autocompletion for multiple js files in Cloud9Cloud9中多个js文件的自动补全
【发布时间】:2015-05-20 05:14:13
【问题描述】:
我正在尝试将我的工作区移动到 c9,因为在我处理 NodeJS 项目时,Ace 编辑器的自动完成功能让我非常满意。
但现在我想在客户端处理 JS 文件。从这一点开始,自动完成就出错了。确实,在客户端JS里面的JS文件本身(除了使用一些插件之外)并没有什么诸如“require”命令来通知其他使用的源文件。
所以当我在我的一个 JS 文件中使用在另一个文件中定义的函数(甚至是库、框架:jquery 等)时,Ace 会通知我该函数未定义(因为它没有办法要知道该函数是在另一个文件中定义的,我猜)。
我们开始吧:我可以在我的代码中添加一些注释行,或者我可以设置一些 c9 配置来纠正这种行为吗?
【问题讨论】:
标签:
javascript
autocomplete
cloud9-ide
ace-editor
【解决方案1】:
要删除错误和警告,您只需在 javascript 文件顶部附近添加以下行:
/* globals jquery lodash someOtherLibrary */
但是,Cloud9 还没有对客户端库进行自动完成。
【解决方案2】:
滥用 C9 需要支持
当您使用var yourLibrary = require("./somefile.js"); 时,自动完成功能完美。
但是,正如您所说,require() 不存在,您也不希望将yourLibrary 设置为未定义。 (或者只是抛出一个错误)
事实证明,C9 并不那么聪明:
//Your library was defined in some other file
var yourLibrary; //"This does nothing other than making C9 happy
function require() {return 1;} //Define the require function
if(false) {
yourLibrary = require("yourLibraryFile.js");
}
现在,您可以使用自动完成功能(它甚至显示文档 cmets)!
注意:它并不总是有效。