如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试.

昨天得知vue.js 3.0会用TypeScript实现, 正好通过这个插件对TypeScript熟悉一下, 好为手工翻译Vue.js源码:尝试重命名标识符与文本转为对新版vue.js的源码翻译作准备.

源码暂时仍在分支未合并(现已合并): program-in-chinese/vscode_english_chinese_dictionary

改为TS实现参考了官方文档: Migrating from JavaScript, 比想象中的容易些(特别是改文件扩展名那一步), 主要修改是修正exports->export, require->import · program-in-chinese/vscode_english_chinese_dictionary@cf6a40b , 还有for(.. of ..)需添加var.

动态导入多个词典数据费了点功夫: 修正: not a module编译错误 · program-in-chinese/vscode_english_chinese_dictionary@470f81a

测试运行和调试感觉挺方便. 毕竟VS Code就是TS开发的. 基本覆盖了之前的手工测试. 有测试之后, 之后的重构(使用TS的非JS特性等等)和功能改进就方便多了.

遛测试源码:

import * as assert from 'assert'

import * as 查词 from '../src/查词'

suite("查词测试", () => {

  test("取释义", () => {
assert.deepEqual(
{
"原字段": "shipment",
"释义": "n. 装船, 出货\\n[经] 运送, 运送(寄出)货物, 装载",
"各词": [
{
"词": "shipment", "释义": "n. 装船, 出货\\n[经] 运送, 运送(寄出)货物, 装载",
"词形": [
{ "类型": "名词复数形式", "变化": "shipments" }
]
}
]
},
查词.取释义("shipment")
);
assert.deepEqual(
{
"原字段": "ACCOUNT",
"释义": "n. 报告, 解释, 估价, 理由, 利润, 算账, 帐目\\nvi. 报帐, 解释, 导致, 报偿, 占, 杀死\\nvt. 认为\\n[计] 帐户, 帐号",
"各词": [
{
"词": "account", "释义": "n. 报告, 解释, 估价, 理由, 利润, 算账, 帐目\\nvi. 报帐, 解释, 导致, 报偿, 占, 杀死\\nvt. 认为\\n[计] 帐户, 帐号",
"词形": [
{ "变化": "accounts", "类型": "名词复数形式" },
{ "变化": "accounted", "类型": "过去分词" },
{ "变化": "accounting", "类型": "现在分词" },
{ "变化": "accounts", "类型": "第三人称单数" },
{ "变化": "accounted", "类型": "过去式" }
]
}
]
},
查词.取释义("ACCOUNT")
);
assert.deepEqual(
{
"原字段": "seconds",
"释义": "n. 次级品, 二等品",
"各词": [
{
"词": "seconds", "释义": "n. 次级品, 二等品",
"词形": [
{
"变化": [
"名词复数形式",
"第三人称单数"
],
"类型": "原型变换形式"
},
{ "类型": "原型", "变化": "second" }
]
}
]
},
查词.取释义("seconds")
); assert.equal("执行路径", 查词.取释义("execPath").释义); assert.equal("字符串_译码器", 查词.取释义("string_decoder").释义);
assert.equal("帐户_数字", 查词.取释义("ACCOUNT_NUMBER").释义);
assert.equal("帐户数字", 查词.取释义("_ACCOUNT_NUMBER").释义); assert.equal("取得指令秒", 查词.取释义("getSeconds").释义);
assert.equal("使用颜色", 查词.取释义("useColors").释义); assert.equal("fs路径", 查词.取释义("fsPath").释义);
});
});

继续暗黑彩蛋:

发布0.0.6后立即安装试用, 结果傻眼, useColors仍然翻成"使用国旗". 从官网下载了vsix文件解压看了源码的确是更新了的. 压抑住了重新发布0.0.7的冲动, 重新安装后重启vscode, 结果正常. 难道哪里有缓存问题?

2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试的更多相关文章

  1. 2018-12-03 VS Code英汉词典插件v0.0.7-尝试词性搭配

    续上文VS Code英汉词典插件v0.0.6-改为TS实现, 加测试后, 继续重构(提取常量, 避免var, 添加类型等等), 并完善测试. 测试方法参考: Testing Visual Studio ...

  2. 2018-11-09 VS Code英汉词典插件v0.0.4-驼峰下划线命名

    首先, 在两天时间内安装数破百, 多谢支持. VS Code插件市场地址: 英汉词典 - Visual Studio Marketplace 开源库地址同前文: Visual Studio Code插 ...

  3. 2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名

    续VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview ...

  4. 2018-12-25 VS Code英汉词典v0.0.8: 批量翻译文件部分命名

    续前文: VS Code英汉词典进化效果演示: 翻译文件所有命名 vscode"英汉词典"插件地址: 官方链接 现在实现的效果比之前的演示差很多, 因为executeDocumen ...

  5. 2018-11-06 Visual Studio Code插件-英汉词典初版发布

    VS插件市场地址: 英汉词典 - Visual Studio Marketplace 开源在: program-in-chinese/vscode_english_chinese_dictionary ...

  6. 2018-09-06 Java实现英汉词典API初版发布在Maven

    在打算批量代码汉化工具 · Issue #86 · program-in-chinese/overview时, 发现没有现成的Java库实现英汉查询功能. 于是开此项目. 源码库: program-i ...

  7. 吴裕雄--天生自然python学习笔记:python 用firebase实现英汉词典进阶版

    用 post 方法创建的数据会自动产生一个 id (Key ),但有时也常常为了取得这个 id 而让程序难以处理 . 以英汉词典标准版来说,它的数据结构如下: 如果将每条数据都改为{eword:cwo ...

  8. linux 英汉词典程序shell+postgresql版

    在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create databas ...

  9. 用java实现的英汉词典

    import java.io.*; import java.util.*; public class MyDictionary { static private Map<String, Stri ...

随机推荐

  1. 使用Java面向对象单词必备

    第一章 class   班级,用声明类 object     目标,整个程序集对大 static  静态的 final  不可更改的,用声明常量 private  私有的,用访问权限 public  ...

  2. 边学边做,简单的 GraphQL 实例

    项目中有功能要调用 API,对方 API 用的是 GraphQL 实现,就简单学了下,感叹技术进步真快,Facebook 发明的这玩意儿咋这么牛逼,使前端开发人员变得主动起来,想要什么接口.返回什么结 ...

  3. 第八篇: 服务链路追踪(Spring Cloud Sleuth)

    一.简介 一个分布式系统由若干分布式服务构成,每一个请求会经过多个业务系统并留下足迹,但是这些分散的数据对于问题排查,或是流程优化都很有限.   要能做到追踪每个请求的完整链路调用,收集链路调用上每个 ...

  4. 实现文件上传 你get了吗???

    实现文件上传: 1.jar包 需要用到两个jar包: commons-io.jar commons-fileupload.jar 下载地址:https://mvnrepository.com/ 2.f ...

  5. AI - 框架(Frameworks)

    1 - Scikit-Learn Sklearn(scikit-learn: machine learning in Python):https://scikit-learn.org/ 文档丰富而又详 ...

  6. 工欲善其事,必先利其器-Python编辑器选择(2)

    前言:工欲善其事.必先利其器 一款顺手的好的编辑器可以让程序员写代码更得心应手,效率也会更高,但是编辑器本身没有好坏,只有使用者使用起来是否顺手而已,这里简单给大家介绍几款常用的可以编辑Python的 ...

  7. ASP.NET Core微服务+Tabler前端框架搭建个人博客1--开始前想说的话

    写在前面 本人为在读研究生,特别喜欢.NET,觉得.NET的编程方式.语法都特别友好,学习.NET Core已经差不多有一年半了,从一开始不知道如何入门到现在终于可以编写一些小的应用程序,想一想还是非 ...

  8. 使用.NET Hardware Intrinsics API加速机器学习场景

    ML.NET 0.6版本刚刚发布不久,我们知道ML.NET代码已经依赖于使用本机代码库的性能矢量化.这是一个重新实现托管代码中现有代码库的机会,使用.NET Hardware Intrinsics进行 ...

  9. JavaEE 要懂的小事:一、图解Http协议

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

  10. ES搜索结果调优

    访问我的博客 自从使用 ElasticSearch 重构了主站的搜索项目之后,之后又陆续接入了其他两个项目,目前使用 SpringBoot 方式跑了一个伪集群,主站使用的时候,比较稳定,没有人反馈说有 ...