
IDE
Jtag特工
代码和人工智能老兵
展开
-
vscode插件快餐教程(10) - 设置
vscode插件快餐教程(10) - 设置在插件中,根据用户的环境和个性化的不同,需要增加一些配置项。读写配置项可以通过vscode.workspace.getConfiguration()方法来获取所有的设置项。let config: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration();设置项可以分类...原创 2020-01-04 18:24:39 · 2748 阅读 · 0 评论 -
vscode插件快餐教程(1) - 从写命令开始
vscode插件快餐教程(1) - 从写命令开始大致从2017年开始,vscode就越来越流行。vscode能够流行起来,除了功能强大、微软不断升级给力之外,优秀的插件机制也是非常重要的一环。vscode中相当多的功能也是通过自身的插件机制实现的。比起使用coffeescript为主要开发语言的atom IDE,vscode使用越来越有王者气质的typescript做为主要的开发语言,这也为v...原创 2019-04-11 20:32:00 · 2307 阅读 · 0 评论 -
vscode插件快餐教程(4) - 语言服务器协议lsp
vscode插件快餐教程(4) - 语言服务器协议lsp语言服务器协议lsp是vscode为了解决语言扩展中的痛点来实现的一套协议。如下图所示:总体说来,在有lsp之前,存在三个主要问题:一是语言相关的扩展都是用该语言母语写的,不容易集成到插件中去。毕竟现在大量的语言都带有运行时。二是语言扫描相关的工作都比较占用CPU资源,运行在vscode内部不如放在独立进程,甚至远程服务器上更好。...原创 2019-05-20 13:38:16 · 5798 阅读 · 1 评论 -
vscode插件快餐教程(5) - 代码补全
vscode插件快餐教程(5) - 代码补全上节我们介绍了lsp的基本框架和协议的三次握手。下面我们先学习一个最简单的功能协议:给vscode发送一条通知。LSP窗口消息在LSP协议中,跟窗口相关的协议有三条:window/ShowMessage Notificationwindow/showMessage Requestwindow/logMessage Notification...原创 2019-05-26 18:25:27 · 6586 阅读 · 0 评论 -
代码补全漫谈(2) - Miltos Allamanis
代码补全漫谈(2) - Miltos Allamanis上一回我们从火到爆表的TabNine说起,介绍了OoV问题引发的论战。在进入细节之前,我们再八卦程序语言处理领域的一个重要研究者,微软研究院的Miltos Allamanis。Allamanis的博士论文就是以《Learning Natural Coding Conventions》为题,是这个领域的专业研究人员。上次我们介绍的重要su...原创 2019-09-16 20:52:06 · 1339 阅读 · 1 评论 -
Javascript类型推断(1) - 获取token和类型
Javascript类型推断(1) - 获取token和类型js类型推断的三种思路第一种思路是用传统的编译类的方法,推断是没啥好办法,但是可以用来验证。第二种思路是利用对象的属性或方法的调用来推断,JSNice就是这样做的。第三种思路比较先进,充分利用到越来越流行的Typescript,通过学习Typescript生成的javascript进行监督学习。这种思路是Vincent J. He...原创 2019-09-20 22:10:29 · 890 阅读 · 0 评论 -
Javascript类型推断(2) - 开始训练吧
Javascript类型推断(2)准备训练数据下面我们将上一节获取的类型数据信息进行预处理,转化为可以训练的数据。代码在GetTypes.js中,会创建三个相关目录:let root = "data/Repos-cleaned";let outputDirGold = "data/outputs-gold/";let outputDirAll = "data/outputs-all/"...原创 2019-09-23 19:38:52 · 670 阅读 · 1 评论 -
Javascript类型推断(3) - 算法模型解析
Javascript类型推断(3) - 算法模型解析构建训练模型上一节我们介绍了生成训练集,测试集,验证集的方法,以及生成词表的方法。这5个文件构成了训练的基本素材:files = { 'train': { 'file': 'data/train.ctf', 'location': 0 }, 'valid': { 'file': 'data/valid.ctf', 'location'...原创 2019-09-24 17:30:13 · 365 阅读 · 0 评论 -
Javascript类型推断(4) - 隐藏层的更新
Javascript类型推断(4) - enhance_data解析熟悉了整个流程之后,我们可以关注更多的细节。前面讲训练过程时,没有讲enhance_data的细节。这一部分的主要功能是更新隐藏层。它的调用点在:def train(): train_reader = create_reader(files['train']['file'], is_training=True) step...原创 2019-10-10 17:30:56 · 345 阅读 · 0 评论