【问题标题】: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)!

    注意:它并不总是有效。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2015-04-24
      • 2011-07-07
      相关资源
      最近更新 更多