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

简介: 实现VS code插件, 基于本地词典数据, 提供英汉翻译功能, 从JavaScript改为TypeScript实现. Rewrite the vscode extension to translate English word or phrase to Chinese from JavaScript to TypeScript.

如前文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

相关文章
|
3月前
|
人工智能 自然语言处理 JavaScript
专为 Claude Code 设计的基于 YAML 的 Playwright MCP 自动化测试
YAML配置结合Claude Code与Playwright MCP,将自动化测试变得人人可用。通过简洁的YAML语法替代复杂的JavaScript代码,解决传统测试中冗长、硬编码和复用性差等问题。自然语言描述测试步骤,AI解析执行,支持多环境切换与智能报告生成,极大降低技术门槛,提升团队协作效率。无论是开发、QA还是产品经理,都能轻松参与测试流程,真正实现可读、易维护的自动化测试新范式。
|
10月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1478 1
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
|
5月前
|
存储 前端开发 数据可视化
Postman vs. Apifox 用于 API 测试全面对比
寻找一款可靠的 API 测试工具?这份对比分析将深入探讨 Postman 和 Apifox 的功能和特性。了解哪款工具最适合您的 API 测试需求。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
|
7月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
309 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
5月前
|
JavaScript 前端开发 程序员
甚至用不了五分钟就能学会vscode插件开发
本文介绍了VSCode插件的开发流程,从创建项目到最终发布。首先通过安装`yo`和`generator-code`脚手架工具初始化项目,选择JavaScript语言配置基础信息。接着,在`extension.js`中实现业务逻辑,例如将中文“变量”替换为“var”。通过F5进入调试模式验证功能。完成后使用`vsce`工具进行打包,解决可能遇到的版本不兼容或README文档问题。最后生成`.vsix`文件,可通过VSCode的“从VSIX安装”加载插件,实现开发闭环。进一步可将插件发布至官方市场供更多开发者使用。
|
7月前
|
人工智能 自然语言处理 前端开发
通义灵码插件在VSCode中的运用
借助通义灵码插件在VSCode构建新闻网,实现效率与智能的融合。VSCode作为前端开发的“瑞士军刀”,提供实时预览、智能辅助和高效管理功能;通义灵码插件通过自然语言交互生成代码,简化复杂任务并优化代码质量。两者结合形成从设计到部署的高效闭环,大幅减少基础编码时间,降低开发门槛,助力开发者聚焦业务逻辑与创新。
|
7月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
575 8
|
JSON JavaScript 小程序
使用VSCode搭建UniApp + TS + Vue3 + Vite项目
`uniapp` 是一个基于 Vue.js 的框架,支持一次开发多端部署,深受前端开发者喜爱。本文详细介绍如何使用 `VSCode` 搭建 `uniapp` 项目,包括安装 `node` 和 `pnpm`、创建项目、安装扩展组件、配置 `Json` 文件注释及安装相关插件。通过这些步骤,你可以高效地使用 `VSCode` 开发 `uniapp` 项目,并享受代码提示和自动补全功能,提高开发效率。
830 24
使用VSCode搭建UniApp + TS + Vue3 + Vite项目
|
10月前
|
开发工具 C++ git
利用VS Code提升开发效率的五大插件推荐
本文推荐了五款能显著提升开发效率的VS Code插件:ESLint用于代码质量和风格检查;Prettier自动格式化代码;GitLens增强Git功能;Live Server提供前端实时预览;Docker支持容器管理。