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

测试方法参考: Testing Visual Studio Code Extensions, 调试也支持. 觉得虽然启动测试有一定开销(似乎必需启动一个vscode个例), 但还可以接受. 在重构过程中测试用例起了保驾作用.

借助TypeScript特性, 为所有的接口添加了类型, 比如:

export interface 词形变化 {
类型: string;
变化: string;
} export interface 单词条 {
词: string;
释义: string;
词形: 词形变化[];
} export interface 字段释义 {
原字段: string;
释义: string;
各词: 单词条[];
}

尝试形容词+名词搭配优先:

export function 选取释义(所有词条: 模型.单词条[], 所有词: string[]): string[] {
let 所有释义 = []; // TODO: 重构
if (所有词条.length == 2) {
let 词1释义 = 所有词条[0].释义;
let 词2释义 = 所有词条[1].释义;
if (词1释义 && 取按词性释义(词1释义).has(词典常量.词性_形容词)
&& 词2释义 && 取按词性释义(词2释义).has(词典常量.词性_名词)) {
所有释义.push(首选(词1释义, 词典常量.词性_形容词));
所有释义.push(首选(词2释义, 词典常量.词性_名词));
return (所有释义);
}
} for (let i = 0; i < 所有词条.length; i++) {
let 词条 = 所有词条[i];
所有释义.push(词条.释义 ? 首选(词条.释义, 词典常量.词性_计算机) : 所有词[i]);
}
return 所有释义;
}

下面的打算:

改进命名: 常用命名/缩写的手工翻译 · Issue #16 · program-in-chinese/vscode_english_chinese_dictionary

添加并列编辑器形式的源码翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview

2018-12-03 VS Code英汉词典插件v0.0.7-尝试词性搭配的更多相关文章

  1. 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试

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

  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. 《http权威指南》读书笔记17

    概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...

  2. document.getElementById 和 document.getElementsByClassName获取DOM元素的区别

    想必小伙伴们对于 JS 获取DOM的几种方法早已烂熟于心,了然于胸,   尤其是 document.getElementById 和 document.getElementsByClassName, ...

  3. SVM算法简单应用

    第一部分:线性可分 通俗解释:可以用一条直线将两类分隔开来 一个简单的例子,直角坐标系中有三个点,A,B点为0类,C点为1类: from sklearn import svm # 三个点 x = [[ ...

  4. JavaScript百宝箱

    Js的外部引用 外部文件中不用添加<script>标签,引用书写位置需在使用之前 <script type="text/javascript" src=" ...

  5. Spring Cloud微服务中网关服务是如何实现的?(Zuul篇)

    导读 我们知道在基于Spring Cloud的微服务体系中,各个微服务除了在内部提供服务外,有些服务接口还需要直接提供给客户端,如Andirod.IOS.H5等等. 而一个很尴尬的境地是,如果直接将提 ...

  6. js对象按某个字段排序

    var arr = [ {name:'zopp',age:0}, {name:'gpp',age:18}, {name:'yjj',age:8} ]; function compare(propert ...

  7. RocketMQ

    http://rocketmq.apache.org/docs/quick-start/ 解压后添加启动脚本 nohup sh bin/mqnamesrv >> logs/namesrv. ...

  8. Spring系列之IOC的原理及手动实现

    目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 导语 Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.也是几乎所有J ...

  9. Chrome 浏览器最牛插件之一 Vimium

    导航当页: ? 显示help,查询vimium的所有使用方法 h 向左滚动 j 向下滚动 k 向上滚动 l 向右滚动 gg 滚动到顶部 G 滚动到底部 d 向下滚动半页 u 向上滚动半页面 f 显示链 ...

  10. 第一册:lesson thirty seven。

    原文: Making a bookcase. A:You are working hard,George. What are you doing . B:I am making a bookcase. ...