问题
我目前正在尝试构建一个基于three.js的3D web应用程序。
我使用neovim作为我的开发环境,使用YouCompleteMe作为完成系统。
我安装了tern来完成JS,并添加了如下所示的.tern-project文件。
{
"libs": [
"browser",
"ecmascript",
],
"loadEagerly": [
],
"plugins": {
"threejs": {}
}
}我还将threejs.js和threejs.json复制到由tern-threejs生成的项目目录中。
然而,与tern-threejs's demo codemirror相比,YouCompleteMe并不显示语义补全
比较:
codemirror:

neovim:

注意:我根本看不到任何补全。
什么地方出问题了?
发布于 2017-08-04 16:50:08
threejs.js是tern 插件文件,threejs.json是tern 库文件。插件文件需要复制到tern/plugin目录,库文件需要放在tern/defs目录下。这两个目录存在于tern目录中。
在安装'YouCompleteMe‘的情况下,这个目录路径是:~/.vim/YouCompleteMe/third_party/ycmd/third_party/tern-runtime/node_modules/tern。您只需要复制上述文件中的一个。插件文件或库文件;并相应地更新您的.tern-project文件。所以:
cd ~/.vim/bundle/YouCompleteMe./install.py --tern-completer
有关如何在其他environments.
threejs.js,然后导航到~/.vim/YouCompleteMe/third_party/ycmd/third_party/tern-runtime/node_modules/tern/plugin/
并按如下方式对项目的.tern-project文件执行paste.
{ "libs":"browser","ecmascript",,"plugins":{ "es_modules":{},"threejs":{}
请注意,当您使用ES6模块模式系统时,我还包含了es_modules插件(这是tern本身附带的插件)。
https://stackoverflow.com/questions/45498747
复制相似问题