2

问题

我目前正在尝试构建一个基于three.js.

neovim用作我的开发环境和YouCompleteMe完成系统。

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

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

threejs.js我还将和复制到由tern-threejsthreejs.json生成的项目目录中。

但是,与tern-threejs 的演示 codemirror相比,YouCompleteMe 没有显示语义完成

比较:

代码镜像:

代码镜像

新维姆:

新病毒

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

似乎是什么问题?

4

1 回答 1

0

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

安装了“YouCompleteMe”后,此目录路径为:~/.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安装指南。

  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 本身附带的插件)。

于 2017-08-04T08:50:08.457 回答