tern.js没有加载three.js插件

时间:2017-08-04 05:17:33

标签: javascript three.js neovim youcompleteme tern

问题

我目前正在尝试根据three.js制作3D网络应用。

我使用neovim作为我的开发环境,YouCompleteMe作为完成系统。

我安装了tern来完成JS,我添加了.tern-project这样的文件。

{
    "libs": [
        "browser",
        "ecmascript",
    ],
    "loadEagerly": [
    ],
    "plugins": {
        "threejs": {}
    }
}

我还将threejs.jsthreejs.json复制到tern-threejs生成的项目目录中。

但是,与tern-threejs's demo codemirror相比,YouCompleteMe没有显示语义完成

比较

codemirror:

codemirror

neovim:

neovim

注意:我根本看不到任何完成。

什么似乎是问题?

1 个答案:

答案 0 :(得分:0)

threejs.js是一个燕鸥插件文件,threejs.json是一个燕鸥文件。插件文件应复制到tern/plugin目录中,库文件需要放在tern/defs目录中。这两个目录存在于tern目录中。

使用' YouCompleteMe'安装此dir路径为:~/.vim/YouCompleteMe/third_party/ycmd/third_party/tern-runtime/node‌​_modules/tern。您只需要复制上述文件之一。插件文件或lib文件;并相应地更新您的.tern-project文件。这样:

  1. 首先确保您已在YouCompleteMe上启用了Tern完成符。例如,在我的Mac上,我必须执行以下操作:

    cd ~/.vim/bundle/YouCompleteMe
    ./install.py --tern-completer
    

    有关如何在其他环境中执行此操作的详细信息,请参阅YouCompleteMe installation guide

  2. 复制threejs.js,然后导航至

    ~/.vim/YouCompleteMe/third_party/ycmd/third_party/tern-runtime/node‌​_modules/tern/plugin/
    

    并粘贴。

  3. 更新项目的.tern-project文件,如下所示:

    {
        "libs": [
            "browser",
            "ecmascript",
        ],
        "plugins": {
            "es_modules": {},
            "threejs": {}
        }
    }
    

    注意,当您使用ES6模块模式系统时,我还包含了es_modules插件(这是一个随附tern的插件)。