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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ysoserial-0.0.6-snapshot-all.jar 是一个Java库,用于生成和利用Java反序列化漏洞。 Java反序列化漏洞是一种常见的安全漏洞,攻击者可以通过构造恶意的序列化数据来执行远程代码。ysoserial是一个工具集合,用于生成可用于利用这些漏洞的恶意序列化数据。 ysoserial-0.0.6-snapshot-all.jar 包含了多个可用于利用不同类型反序列化漏洞的Payloads(负载)。这些Payloads可以根据目标应用程序的特定环境进行选择和使用。 ysoserial提供了简单的命令行界面,使得它易于集成到漏洞扫描工具和安全测试框架中。它可以帮助安全研究人员和开发人员在应用程序中发现并修复反序列化漏洞,以提高应用程序的安全性。 在使用ysoserial时,需要注意以下几点: 1. 仅在授权范围内使用ysoserial,并遵守法律和道德规范。 2. ysoserial生成的Payload是可执行的代码,使用时必须非常小心,确保在受信任的环境中使用,并妥善保护生成的Payload,以防止恶意使用。 3.ysoserial只是一个辅助工具,不能替代其他安全测试方法和工具。在使用ysoserial进行漏洞测试时,还应结合其他漏洞扫描工具和手动审计来进行全面的安全评估。 总之,ysoserial-0.0.6-snapshot-all.jar提供了一个方便的方式来生成和利用Java反序列化漏洞的Payloads,帮助安全研究人员和开发人员发现和修复这些常见的安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值