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