1. 程式人生 > >VS Code英漢詞典外掛v0.0.4-駝峰下劃線命名 2018-11-09

VS Code英漢詞典外掛v0.0.4-駝峰下劃線命名 2018-11-09

2018-11-09-vscode英漢詞典_演示_execPath

首先, 在兩天時間內安裝數破百, 多謝支援.

VS Code外掛市場地址: 英漢詞典 - Visual Studio Marketplace

開源庫地址同前文: Visual Studio Code外掛-英漢詞典初版釋出

查詢單詞功能基本不變, 在詳細資訊的開頭添加了原詞:
2018-11-09-vscode英漢詞典_演示_watch
如題圖, 支援駝峰命名查詢. 在詳細資訊中, 包含所有單詞的詳細釋義, 但為避免內容過多, 沒有詞形資訊. 另外還支援下劃線命名:
2018-11-09-vscode英漢詞典_演示_string_decoder
查無結果時提示:
2018-11-09-vscode英漢詞典_演示_args_無結果

注意! 比初版少了一個功能 – 查詢帶空格的短語, 如"as well as". 感覺自己很少查短語, 因此暫緩修復(更多原因見下).

初版中, 只截取了瀏覽器外掛-離線英漢詞典 0.0.7的載入詞典部分原始碼. 在這個版本中, 為了進行整命名翻譯, 又截取了不少線上程式碼離線翻譯Chrome外掛"一馬"v0.0.14的現成程式碼, 雖然當時有不少測試用例. 但此外掛仍做了不少改動, 添加了更復雜的介面/結構, 也欠了測試和重構/清理的債. 接下去考慮將現有JavaScript程式碼儘量轉為TypeScript, 並且補很多課(比如到處都用var之類), 以提高可維護性.

初步目標是在年前完成上述修改, 並根據期間的使用者反饋決定下一步改進. 另外還希望開始基於這個詞典資料的原始碼命名翻譯預覽專案: 批量程式碼漢化工具 · Issue #86 · program-in-chinese/overview

敬請期待!

遛原始碼時間

之前提到的略複雜結構是命名查詢的返回結果, 見下面的註釋部分:

// {"原欄位": 原欄位, "釋義": 翻譯, "各詞": [{"詞": 英文, "釋義": 單詞釋義, "詞形": [所有變形]}]};
function 顯示欄位資訊(查欄位結果) {
    // 長度必大於0
    if (查欄位結果.各詞.length == 1) {
        return 取單詞條資訊(查欄位結果.各詞[0], true);
    } else {
        var 翻譯 = "";
        for (單詞結果 of 查欄位結果.各詞) {
            翻譯 +=
取單詞條資訊(單詞結果, true, false); } } return 翻譯; } // {"詞": 英文, "釋義": 單詞釋義, "詞形": [所有變形]} function 取單詞條資訊(查詞結果, 顯示原詞 = false, 顯示詞形 = true) { var 顯示 = 顯示原詞 ? "【" + 查詞結果.+ "】" : ""; var 釋義 = 查詞結果.釋義; if (釋義) { 顯示 += " " + 釋義.split('\\n').join(" "); } var 詞形 = 查詞結果.詞形; if (顯示詞形 && 詞形.length > 0) { var 詞形顯示 = ""; for (var 某詞形 of 詞形) { 詞形顯示 += 某詞形.型別 + ": " + 某詞形.變化 + "; "; } 顯示 += " " + 詞形顯示; } return 顯示; }

暗黑的彩蛋

剛執行vsce publish提交0.0.3版時, 報錯:

Error: Item has already been added. Key in dictionary: ‘extension/???/???.js’ Key being added: ‘extension/???/???.js’

於是決定將"原始碼翻譯"目錄及檔名改為英文, 並刪除暫不需要的關鍵詞資料檔案之後, 0.0.4版提交成功. 開issue待研究: Error: Item has already been added. Key in dictionary · Issue #5 · program-in-chinese/vscode_english_chinese_dictionary

路漫漫其修遠兮