我目前正在尝试根据three.js
制作3D网络应用。
我使用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:
注意:我根本看不到任何完成。
什么似乎是问题?
答案 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
文件。这样:
首先确保您已在YouCompleteMe上启用了Tern完成符。例如,在我的Mac上,我必须执行以下操作:
cd ~/.vim/bundle/YouCompleteMe
./install.py --tern-completer
有关如何在其他环境中执行此操作的详细信息,请参阅YouCompleteMe installation guide。
复制threejs.js
,然后导航至
~/.vim/YouCompleteMe/third_party/ycmd/third_party/tern-runtime/node_modules/tern/plugin/
并粘贴。
更新项目的.tern-project
文件,如下所示:
{
"libs": [
"browser",
"ecmascript",
],
"plugins": {
"es_modules": {},
"threejs": {}
}
}
注意,当您使用ES6模块模式系统时,我还包含了es_modules
插件(这是一个随附tern的插件)。