补全依赖_VIM JavaScript补全(2019)
2019了,距离上次写《VIM JavaScript补全》已经过去4年了。
VIM的JavaScript补全 | EFE Techefe.baidu.com
这几年,JavaScript社区发生很多变化,当年JS的模块化系统主要还是AMD、CommonJS、CMD等,如今遍地都是ES Module;当年JS的类型系统也几乎是一片空白,如今TS、Flow大行其道!
当年VIM的semantic completer并没有太多选择,只有TernJS。
现在有如日中天的ts,再加上TernJS基本不怎么维护了,所以VIM基于TSServer的completion插件就几乎成了唯一选择。
当然也有基于flow的completion插件
TSServer作为一个language service,可以向vim、vscode、sublime等客户端提供服务。
本文以YouCompleteMe为例,演示一下vim配合TsServer的效果。
YouCompleteMe安装ts completer比较简单:
cd ~/.vim/plugged/YouCompleteMe
./install.py --ts-completer
目前YouCompleteMe内置的ts版本是3.3.3333,硬编码在ycmd中:
https://github.com/Valloric/ycmd/blob/master/build.py#L96github.com
这里有点坑,后面我会提到。
我们拿一个RN仓库来演示。
react-native init rn48 --version 0.48.0
TSServer需要一个`jsconfig.json`或者`tsconfig.json` 配置才能工作,tsc
生成一个就ok了:
cd ./rn48
tsc --init
打开tsconfig中的`allowJs`选项:
{"compilerOptions": {"allowJs": true}
}
编辑一下试试:
糟糕!好像不太对啊,输入`.`之后没有语义提示啊,只有一些identifier、snip,什么鬼!
vscode可是一切正常的:
要是干不过vscode,可就没什么牛逼可吹了!^_^
经过一番探索,发现原来是因为没有找到类型定义文件!
vscode会自动分析依赖,然后把类型定义文件安装到`~/Library/Caches/TypeScript/<version>` 文件夹下:
而YouCompleteMe内置的ts版本是3.3.3333,刚好不在Caches目录中,vim也不会自动提取安装类型定义文件,所以就挂了!
所以对于VIM,我们需要手动安装类型定义文件:
npm i @types/react-native --save-dev
再试一下:
终于可以愉快地玩耍了,提示同vscode一致!
补全依赖_VIM JavaScript补全(2019)相关推荐
- 解决IDEA中,maven依赖不自动补全的问题
解决IDEA中,maven依赖不自动补全的问题 参考文章: (1)解决IDEA中,maven依赖不自动补全的问题 (2)https://www.cnblogs.com/flypig666/p/1179 ...
- Sublime text代码补全插件(支持Javascript、JQuery、Bootstrap框架)
Sublime text代码补全插件(支持Javascript.JQuery.Bootstrap框架) 插件名称:javascript-API-Completions 支持Javascript.J ...
- php 0补全,PHP给数字或字符串补零0或自动补全其他符号
PHP给数字或字符串补零0或自动补全其他符号 2014-04-10 在php中有两个函数--至少有两个是否有其他的我还不知道,能够实现数字补零,str_pad(),sprintf()详细如下 一.st ...
- 狂补dp Atcoder Educational DP Contest(全)
狂补dp Atcoder Educational DP Contest(全) 注意 为了减少篇幅,本博客代码部分只放主代码部分,其余省略快读.快输.头文件等代码,即把代码看做伪代码更佳 A - Fro ...
- JavaScript补齐指定位数
开发过程中,我们会经常遇到日期或者数值显示指定位数,例如: "2016-8-3"显示为"2016-08-03" 一.通常解决方案 function dataLe ...
- JavaScript补环境及AST实战
强烈推荐,适合爬虫,js逆向,js逆向小白.爬虫工程师.反爬工程师等等. -----AST入门实战+零基础JavaScript补环境 1. 目录 AST入门实战+零基础JavaScript补环境一.J ...
- JavaScript 入门·JavaScript 具有全范围的运算符
复合赋值运算符 运算符 符号 加法 += 按位与 &= 按位或 |= 按位异或 ^= 除法 /= 左移 <<= 取模 %= 乘法 *= 右移 >>= 减法 -= 无符号 ...
- AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页
参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...
- 全栈必备 JavaScript基础
JavaScript 来了 喔家ArchiSelf 1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业.在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaSc ...
最新文章
- python初学者代码-Python-为什么Python是初学者的完美选择?
- 从用户的视角看待网页设计(一)
- python join函数_一行 Python 代码能实现这么多丧心病狂的功能?
- 红米3国际稳定版刷机+完美ROOT
- RegExp()方法参数含义和使用方法
- 记录并分析一些软件,以便以后换电脑重新安装(不定时更新)
- JavaScript变量,js定义变量
- Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文翻译
- OpenGL学习之颜色
- 伊对和连信交友相亲聊天平台靠谱吗?
- padbineditor.php,《智龙迷城》padBinEditor修改器教学
- 最先进的Git分布式仓库系统——是如何提升编程效率的?
- vi vim 快速跳到文件末尾 GA 在最后一行下方新增一行 (光标换行,文字不换行) GO
- 如何给apk文件签名(一)
- SAS卡,RAID卡,HBA卡区别与联系
- python list除以_每日一课 | python判断奇数和偶数
- 安卓商店应用商城申请需要资料
- 设置goland里的行间距
- 期刊勘误、关注和撤稿:科研作者该知道的信息(转载)
- 想体验.NET7又不想安装体验版,Windows沙盒了解一下
热门文章
- 微信小程序如何使用iconfont阿里巴巴图标库?
- Get 了滤镜、动画、AR 特效,速来炫出你的短视频开发特技!
- serv-u 15 设置非21端口外网FTP访问以及更改被动模式端口、防火墙映射
- ECS 备份数据到NAS(一):使用Windows Server Backup工具
- CENTOS php 7.0 +nginx 环境下 安装yaf框架
- Gitlab用户权限管理
- [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
- 集成服务入门(实验9)日志记录和邮件通知
- MySQL Replace INTO的使用
- iwebshop商户手机模板_认证小红书企业号手机端最详细的认证流程!认证之前看这篇!...