Releases: vChewing/vChewing-OSX-Legacy
0.5.23
注意:本次更新說明內任何提到磁帶模組的更新都只是程式碼同步而已。磁帶模式迄今為止無法針對 macOS 10.9 - 10.12 系統直接提供的原因是這些版本的系統的固有 BUG 或現狀:一、沒有人會想在藉由一款輸入法開啟檔案選擇視窗時看到整個桌面都失去響應,這樣一來使用者也就沒法選擇指定磁帶檔案;二、沙箱機制在舊版系統下沒有 bookmark 機制,無法記憶使用者所授權存取過的目錄。如果有辦法繞開或應對這些難題的話,磁帶模式會針對這些舊版系統重新開放。
- 修正:天權星引擎升級至 v2.7.1,修復了「在組字器內刪掉最後一個讀音的時候,因為 walkedNodes 沒被清空的原因,導致內文組字區在某些功能模式下的內容顯示失常」的故障。從現在起:當你在嘗試用 Shift+BackSpace 析構掉組字區內唯一一個漢字的讀音的時候,內文組字區將會正常顯示這個漢字的去掉聲調的讀音、而不顯示額外的不該顯示的漢字內容殘留。
- 修正:針對 BackSpace 鍵做了一系列功能補充升級改進,以應對磁帶模式的簡碼選字功能的需求。從現在起,當你逐字刪掉組筆區當中的某個最新輸入的字根的時候,簡碼選字窗不會再消失,除非當前組筆區為空、或當前的字根組合沒有對應的簡碼資料。
- 體驗:從這一版開始,針對聯想詞模式的「Enter 鍵確認漢字」的開關的預設值被改為「關閉」。另新增 Shift+Enter 備用組合鍵、可以在聯想詞模式當中始终確認當前高亮的聯想字詞。
- 體驗:在簡碼選字狀態更新時,選字窗不再「僅根據組筆區內字根數量的多寡變化,來調整自身的視窗座標位置」。
- 體驗:對整個輸入法的 IMK 選字窗行為處理流程做了徹底重構。現在起,IMK 選字窗也支援 CIN2 磁帶的簡碼選字特性。然而,因為 IMK 選字窗的固有缺陷與限制,威注音輸入法的 IMK 選字窗在使用 CIN2 簡碼選字功能時,有下述限制(可能會挑戰到行列輸入法的傳統使用者群體的既有習慣):
- 簡碼選字鍵只有「123456789」且無法變更:用以自訂 IMK 選字窗選字鍵的 API 全都是廢掉的。
- IMK 選字窗不允許在單個候選字陣列內出現雷同重複的候選字詞,否則會出現介面操作紊亂的情況(該特性倒是看上去完全符合常理就是了)。雖然有保守治療方案,但這會導致簡碼選字窗無法一次性顯示盡可能多的簡碼候選字。於是威注音輸入法只得在 IMK 簡碼選字窗當中剔除掉所有的空碼、且去除重複的簡碼候選字。這樣改出來的體驗對行列輸入法的新手而言完全沒問題,但卻與行列輸入法的傳統使用者群體幾十年來的肌肉記憶水火不容……他們比較適合使用威注音預設的田所選字窗,可以滿足他們的習慣特性需求。
- IMK 選字窗的 Annotation 功能是空實作(也就是相關的 API 啥也不幹),於是在原理上暫無可實現反查顯示功能之手段(macOS 內建的五筆輸入法倒是有反查特性就是了)。為了方便使用者區分「是不是簡碼選字模式」,在使用 IMK 選字窗的橫版陣列佈局的時候,簡碼選字窗會顯示為橫版單列佈局。
- 與之前一樣的是,因為 IMK 選字窗的 API 功能限制,在 macOS 10.13 High Sierra 系統下的 IMK 選字窗橫版佈局僅有單列佈局可用(因為這一版系統內的 IMK 選字窗多列佈局完全不支援選字鍵)。
- 註:筆者有將上文提到的某些個別故障專門在 WWDC 2023 找 Apple 的專員討論過,但對方不是輸入法組員、所知情報有限,只是傳達意見說 Apple 輸入法團隊「現階段無權給出任何答覆」。
- 體驗:新增了一個功能,允許在逐字選字模式下以空格鍵遞交當前選字窗內被高亮選中的候選字。該功能預設啟用,可能會挑戰到威注音輸入法舊版使用者們的行為偏好,屆時可以藉由輸入法偏好設定來停用該功能特性。
- 體驗:現在開始可以在磁帶模式內藉由花牌鍵敲出花牌鍵原始對應的字元;與「花牌鍵不可用作首碼」有關的警告訊息挪到螢幕右上角、以飄雲通知視窗呈現。花牌鍵原始對應的字元資料將由威注音輸入法的注音輸入模式的原廠語彙資料辭典來提供。
- 體驗:CIN2 磁帶格式標準支援升級至 CIN v2.2:
- 新增了對「%symboldef」章節的支援。該章節的內容不會被統計為「%chardef」的內容,哪怕其坐落於「%chardef」章節的內部。
- 磁帶模組會自動判斷當前讀入的磁帶檔案的簡碼選字鍵是否「得同時摁住 Shift 才能起作用」:只要當前生效的簡碼選字鍵與「%chardef」當中用到的字根鍵有任何重合,則磁帶模組就會認定「當前磁帶的全部的有效簡碼選字鍵均得同時摁住 Shift 才能起作用」。
- 威注音輸入法的磁帶模組會檢查當前磁帶規定的「%selkey」在去除重複內容之後是否符合輸入法對選字鍵設定資料值的條件要求,且在發現不合規的情況下直接強制指派「1234567890」為簡碼選字鍵(是否需要摁住 Shift 則另論,上文有提及)。
- 如果因為當前的簡碼選字行為所用到的擊鍵順序「反而會觸發『%symboldef』章節當中的符號輸入」的話,則此時會臨時自動要求「摁住 Shift 鍵,簡碼選字鍵才會生效」。典型例子是「行列30」輸入法在摁「w」鍵之後的簡碼候選字,此時就得用「Shift+1」選「女」,因為「W → 1」會觸發符號選單「W1」。
- 行為:對 IMK 選字窗在 activateServer() 時的顯示狀態保護策略將僅在 activateServer() 函式呼叫開始的 800 毫秒內才會被呼叫。這可以有效避免一些與逐字選字模式有關的相容性故障。
- 行為:從現在起,只要沒有啟用 IMK 選字窗,則與 IMK 選字窗有關的函式一個都不會被呼叫到。
- 辭典:例行語彙資料更新+原神/星穹鐵道語料更新。
安裝包 SHA256: 3c509a89ff78dcaa40ddad168c9e6e7314fcebf0fafbd4bfcac96d6fdb7d3d96
0.5.22 SP2
注意:本次更新說明內任何提到磁帶模組的更新都只是程式碼同步而已。磁帶模式迄今為止無法針對 macOS 10.9 - 10.12 系統直接提供的原因是這些版本的系統的固有 BUG 或現狀:一、沒有人會想在藉由一款輸入法開啟檔案選擇視窗時看到整個桌面都失去響應,這樣一來使用者也就沒法選擇指定磁帶檔案;二、沙箱機制在舊版系統下沒有 bookmark 機制,無法記憶使用者所授權存取過的目錄。如果有辦法繞開或應對這些難題的話,磁帶模式會針對這些舊版系統重新開放。
- [SP2] 修正:修復了 Cocoa 版輸入偏好設定當中「磁帶模組:在已經敲出最長可能碼的時候自動組字」開關失效的故障。
- [SP2] 修正:修復了 Cocoa 版輸入偏好設定當中的選字鍵「無法自訂為 10 個」的故障。
- [SP2] 行為:現在起,在停用「磁帶模組:在已經敲出最長可能碼的時候自動組字」的時候,恐必須得使用「Shift+選字鍵」的方式才可以對簡碼進行選字。此乃現階段不得已而做出的特性調整。
- [SP1] 修正:解決了磁帶模式下的簡碼選字鍵失效的故障。
- 修正:在原理上解決了在諸如 MS Excel / Safari 等「單個 App 內部可能會叫出多個 IMKInputController 會話」的客體應用內出現的「Shift 中英模式切換狀態混亂」的故障:現在起,只要是客體應用的 bundle identifier 唯一標幟字串雷同,則所有對接了「持這種唯一標幟字串的客體」的 IMKInputController 會話都會共用 Shift 中英文切換狀態。
- 副作用:在關掉某款 App 之後,輸入法會記住那款被關掉的 App 的 Shift 中英文輸入模式開關的最終開關狀態、直到輸入法被重啟(或登入登出/重新開機)時才會丟失對於該開關狀態的記憶。
- 修正:解決了(復發的)在「剛切換到其他應用就立刻叫出輸入法的符號選字窗」時「IMK 選字窗剛顯示就會被關閉」的故障。這種「被關閉」的現象乃 IMK 選字窗自身的程式設計特性使然,威注音對此的應對方式就是:每次主動顯示 IMK 選字窗的時候,會再連續兩三次每隔幾百毫秒就檢查該視窗的可見狀態、發現不可見就再令其顯示出來。
- 體驗:CIN 磁帶模組更新至 CIN2.1 標準,藉此得以實現對諸如行列輸入法、五筆輸入法的簡碼輸入支援。
- 這對 CIN 檔案內容有如下要求(相比 CIN2.0 而言):
%nullcandidate
用來指明%quick
字段給出的候選字當中有哪一種是無效的。%quick begin
至%quick end
之間則是簡碼資料字段,對應的 value 是單個字串、會被輸入法逐字拆分成一組候選字詞陣列。%selkey
的內容現在會被威注音輸入法優先當作簡碼輸入時的專用選字鍵,但其數量必須得至少 6 個、至多 10 個。如果磁帶內的這一行的給定資料值不符合條件的話,則輸入法會自動另採1234567890
作為簡碼輸入專用選字鍵。- 如果簡碼候選字的對應碼好死不死地包含了
%chardef
章節的某些內容的字根碼的話,則%chardef
章節的內容會被優先處理、優先度高於簡碼選字。
- 註1:您仍可以藉由「用方向鍵選擇、敲 Enter 鍵確認」或滑鼠點擊的方式來選擇您想要確認輸入的簡碼候選字。如果您載入的磁帶給出了超過一頁的簡碼候選字的話,可以用方向鍵翻頁、高亮選取您想要輸入的簡碼字。
- 註2:簡碼輸入模式目前無法支援 IMK 選字窗(因為實作難度過於複雜)。當威注音輸入法有啟用 IMK 選字窗的時候,輸入法將不會藉由磁帶讀取簡碼候選資料。
- 註3:此次的磁帶模組對於花牌鍵的設計並無任何改動。因暫時的可投入技術資源的限制,威注音此次更新暫時無法實作能夠完全符合行列輸入法規格標準的「*」「?」萬用字元支援。能用到這些功能的使用者們往往都是因為忘記了字根,所以可以切換回注音打字模式、再利用田所選字窗的磁帶字根反查顯示功能。除此之外,威注音輸入法目前的花牌鍵應該足夠滿足剩餘的萬用查碼需求。今後如有這方面的技術突破的話,會再考慮實作這兩個特性。
- 這對 CIN 檔案內容有如下要求(相比 CIN2.0 而言):
- 體驗:CIN 磁帶模組現可接受「需要摁住 Shift 才可以輸入的字根符號或花牌鍵」的輸入。
- 體驗:現可敲空格鍵取消 Big5 / GB 內碼輸入狀態。
- 體驗:在輸入法偏好設定內切換 IMK 選字窗 / 田所選字窗的時候,不再需要重新啟動輸入法。
- 體驗:新增「Ctrl+Shift+Command+[]」作為另一組備用的候選字詞輪替用熱鍵。
- 體驗:田所選字窗現會在自身介面重新繪製的時候自動更新視窗的起始座標點、以應對受反查結果變化而出現的視窗寬度變化。這有助於避免視窗因此抻出螢幕右側邊界的情況。
- 體驗:田所選字窗現允許使用者藉由拽動「除了候選字詞以外的部分」的方式來拽動視窗本身。
- 行為:出於與效能有關的疑慮,在 macOS 10.15 開始的系統內全新安裝威注音輸入法時,田所選字窗的預設形態現在會是 Cocoa 形態。
- 行為:現允許設定最多 10 個選字鍵(之前的上限是 9 個)。
- 研發:徹底重構了 InputHandler 對於傳入的按鍵訊號的分診邏輯;另有些許小修正。
- 研發:針對 Xcode 15 做了些許專案配置調整。
- 辭典:例行語彙資料更新+原神/星穹鐵道語料更新。
安裝包 SHA256: 97d87592bd1ccb507f9009b464f1c3b76633a7969d87892364a86731d48236ab
0.5.21
- 修正:修正了半衰記憶模組在輸入法(重新)啟動時無法讀取 JSON 存檔的 Bug。
- 修正:將 Cocoa 版偏好設定當中的與基礎鍵盤佈局有關的說明文字更新為目前 SwiftUI 版偏好設定視窗當中的說明文字,以正確描述目前的威注音輸入法的軟體行為。
- 體驗:全專案改採 JSON 格式的原廠辭典、取代 plist,節省記憶體佔用與硬碟空間佔用,載入速度更快。
- 體驗:磁帶模組新增對於
%quick
區段的讀取支援、會自動將其與%chardef
區段融合(但優先權更高)。該區段常見於行列輸入法表格的某些發行版。 - 研發:對田所選字窗以及 CandidatePool 做了一些與物件交互特性有關的調整。
- 研發:對不包含文字訊息的按鍵輸入訊號的處理流程做了些許調整。
- 研發:天權星組字引擎 v2.7.0 更新,讓 KeyValuePaired 成為 Unigram 的派生型別、以便於滿足今後的開發目的,也解除了對 Foundation 的依賴。
- 研發:鐵恨注拼引擎 v1.5.1 更新,解除了對 Foundation 的依賴。
- 研發:改用 IMKInputController 專門提供的原生方法來生成 selectionRange() 和 replacementRange()。
- 辭典:例行語彙資料更新+原神語料更新。
安裝包 SHA256: 0cacfa4d36b86bc683901eb7444353e402126fa87cdf3aa9da65878c3ff6272f
0.5.20
- 修正:解決了在拼音模式下「注拼槽為空的時候,無法直接藉由主鍵盤區數字鍵輸入某些數字」的故障。
- 修正:解決了按鍵調度模組在處理組字行為邏輯時的某處判定失誤。
- 行為:從現在起,當使用 Ctrl+Command+Shift+D 切換繁體/簡體輸入模式的時候,會自動關掉當前的英文輸入模式。
- 行為:藉由調整輸入法 bundle plist 內容參數配置的方法,封堵了在某些新開箱的 mac 電腦內全新安裝威注音輸入法之後「敲兩下空格,會出現全形句號」的故障。雖然這是因為 macOS 的某個功能特性的原廠設定、而出現的異常行為,但這次的實現原理就是:將傳入的連續的兩個空格「取代為兩個西文半形空格,而不是某一個中文句號」,所以(理論上)不用再擔心 macOS 的這個功能特性是否被停用了。
- 體驗:新增對劉又銘擬音注音排列的支援,且同時對其「微軟新注音妥協形態」與「理想形態」這兩種輸入方案相容。
- 體驗:為了照顧色盲患者的使用體驗,從現在起,威注音將使用單色選單圖示、輔以特殊的漸變美工處理,以增強兩個輸入模式彼此的辨識度。
- 體驗:從現在起,當「聲調鍵成功覆寫位於游標身後的漢字」的時候,會出現對應的工具提示(兩秒)。
- 體驗:從現在起,威注音輸入法成功實現了對「聲調前置輸入」之情形的防呆功能支援。與上游相比,差異如下:
- 因為威注音所使用的注拼引擎(鐵恨)與上游的注拼引擎(OVMandarin)完全不同,所以該功能的實作方式有明顯的差異。
- 威注音在開啟該功能的情況下,允許藉由單獨敲一次 Enter 鍵以迅速輸入聲調符號(且直接遞交);上游需要敲兩次 Enter 鍵才可以。
- 威注音允許使用者自行停用該防呆功能;上游無法停用該功能。
- 體驗:現在起,當試圖輸入新的漢字的字音時,如果先敲了聲調鍵、且此時有啟用「聲調前置輸入」的話,則會出現專門的工具提示、來指引進一步的操作。
- 辭典:例行語彙資料更新+原神&星穹鐵道語料更新&全字庫更新(2023-05-19)。
安裝包 SHA256: 46b5066af1cc4e660b20adf2a9ef74b987f6bc65ec3a4a90675f78eaa7d4cc1c
0.5.19
- 修正:解決了與漢語拼音模式的空格鍵響應邏輯有關的一些故障。
- 體驗:從現在起,除了大千傳統、酷音大千26鍵、(偽)精業、IBM 以外的注音鍵盤排列,都可以藉由「基礎鍵盤佈局」設定來實現對 Dvorak 等英數鍵盤佈局的映射支援。
- 體驗:新增繁簡輸入模式切換專用熱鍵「Command+Control+Shift+D」,可在偏好設定內停用。之所以沒有採用小麥注音與奇摩輸入法的繁簡切換專用熱鍵(Control/Shift+Command+G),是因為這些熱鍵與很多軟體存在熱鍵衝突(可以在 DefKey 網站查詢到)。該選項會在您當前系統「尚未同時啟用威注音的繁&簡輸入模式」的時候自動啟用(截至 macOS 11)、或引領您在系統偏好設定內完成啟用過程(自 macOS 12 開始的話是如此)。
- 體驗:App 格式的備用版安裝程式不會再在系統「已經有啟用威注音輸入法」的情況下重複詢問使用者「是否啟用威注音輸入法」。
- 研發:改用 InputMethodKit 內建的(與 TSM 有關的)函式的生成結果、來作為內文組字區文字顯示的優先採用格式。
- 辭典:例行語彙資料更新+原神語料更新。
安裝包 SHA256: 466e2cd1731180db7a86e8c8081948ab3648d998ccef41ae003e993e43b61595
0.5.18
- 修正:解決了在藉由 macOS 系統內建 Emoji 面板輸入 Emoji 之後會導致輸入法崩潰的故障。
- 修正:鐵恨注拼引擎更新至 v1.4.1,解決了(雖然一直沒有爆發的)牽涉到與所有複合注音鍵盤佈局處理有關的一些邏輯故障。另註:該故障迄今為止一直沒發作的原因在於鐵恨注拼引擎本身的追加保險設計。
- 行為:除非開啟偵錯模式,否則會使用系統的提示聲、而非輸入法本身的貝斯撥弦聲。
- 辭典:例行語彙資料更新+原神語料更新。
安裝包 SHA256: 6b0f3e6deca90c5325ef42a370487249a44c075641c8a78e0f4ccb1d282b5171
0.5.17
- 修復:取消了在上一版引入的「將某些與狀態有關的任務另立專用執行緒隊列」的設計,試圖藉此解決與某些客體軟體不相容的故障(雖然崩潰的是客體軟體、而非輸入法本身)。這會取消對多核心 CPU 的一些充分利用,但實屬無奈之舉。如果 Line 自身還會再崩潰的話,請洽 Naver 提報其故障、並設法提供 Line 本身的崩潰報告給他們。
- 修復:解決了在某些包含同音異幅的候選字詞的選字窗內來回選字時的崩潰故障。
- 體驗:新增韋氏拼音輸入支援,但必須使用英文右引號鍵「'」來區分清濁音。因應該功能需求,鐵恨注拼引擎升級至 v1.4.0 版。
- 研發:針對 Cocoa 版偏好設定視窗改採動態方式來繪製國音分析器下拉選單,以節省本地化成本。
- 體驗:自這一版開始,每次 activateServer() 都會始終確認當前會話副本的簡繁模式與輸入法選單所顯示的當前輸入法簡繁模式是否一致、且會在發現不一致的時候更新當前會話副本內的簡繁模式。
- 辭典:例行語彙資料更新+原神語料更新。另更新全字庫資料至 3 月 24 日的版本。
安裝包 SHA256: 9a9cd2ac8ee1f108d48cd6a8e2e94514292fc5ecb289318f518cd718adf18cee
0.5.16
- 修正:修復了 3.4.1 / 0.5.14 版不慎引入的「單個漢字無法藉由標記模式降頻」的故障。相關邏輯完全重寫:當且僅當該漢字讀音只剩一個漢字的時候,該字音配對才無法被濾除。
- 修正:修復了田所選字窗右鍵選單用以判斷「是否顯示濾除命令」的邏輯:當且僅當標記範圍(幅長)為單個漢字、且該幅長只剩一個結果在庫的時候,該字音配對才無法被濾除(也就是在右鍵選單當中不顯示該命令)。
- 修正:解決了「當游標前後的漢字的讀音相同的時候,在此時叫出的選字窗內會出現橫跨游標的候選字詞」的故障。因應該需求,天權星組字引擎升級至 v2.6.3。
- 行為:將按鍵處理邏輯與部分輸入法狀態處理任務強制分配到不同的 CPU 執行緒當中,藉此提升輸入法的整體反應速度。
- 研發:調整了在載入辭典資料時的多工處理方法。
- 辭典:在統計用以計算權重的 NORM 數值時,不再將原神語料庫納入統計範圍內。
- 辭典:例行語彙資料更新+原神語料更新。
安裝包 SHA256: 3cbed6f4415f0e6c1bccfa3afdce90b6b4bd13e0bf6f343f8a4ddd63cba2a586
0.5.15
- 修正:解決了「在組字區內實時預覽選字結果」的功能無法在浮動組字窗內生效的故障。
- 修正:解決了浮動組字窗「可能會因為游標位置的不同、而出現排版行高異動」的異常行為。
- 修正:解決了使用者語彙編輯器在前一次更新當中「喪失了標記重複內容的能力」的故障。
- 體驗:針對「Shift+字母鍵」新增了兩種行為模式,可以在且僅在組字區為空的時候直接遞交大寫或小寫字母。
- 體驗:允許使用「Shift+Command+前後方向鍵」或「Shift+Alt+前後方向鍵」在標記模式內以字詞節點為單位移動「標記專用游標」。
- 註:「Shift+Command+前後方向鍵」是為了應對 ThinkPad SK-8855 USB 鍵盤「不支援 Shift+Alt+→ 組合鍵」的現狀而引入的應對方案,暫時先不計入使用手冊。
- 辭典:例行語彙資料更新+原神語料更新,新增原神迄 3.5 版為止所有角色突破材料、武器突破材料、武器的名稱。
安裝包 SHA256: be77c68db8ad9b0d41f96645e8e66dbcbcc15bf6fdc2213aa0672358471980af
0.5.14
- 修正:解決了會將諸如「CapsLock+字母鍵」這種特殊的熱鍵組合「誤判為 Shift 單次敲擊」的故障。
- 修正:解決了使用者辭典格式整理模組「無法正確處理位於檔案中間的格式化標頭字串」的故障。
- 修正:移除了對漢音符號選單的某一處過剩的濾重處理。
- 體驗:新增「在組字區內實時預覽選字結果」的功能。因應此功能需求,天權星組字引擎更新至 v2.6.0 版。
- 研發:給 SessionCtl 擴充了另一個不需要參數的建構子,這樣能保證在重啟輸入法之後可以立刻敲字。
- 研發:改良了在標記模式下就地降頻時的組合鍵判定方法。
- 研發:對 LMMgr 語言模組管理單元做了結構調整,且引入了全新的 UserPhrase 結構單元、以簡化使用者語彙寫入流程。
- 研發:就與候選字詞有關的 Tuplet 單位新增了參數名稱。
- 辭典:例行語彙資料更新+原神語料更新。
安裝包 SHA256: 194217737b9dd0fbaf981d65fdb72874a916678b8ceee44d3b04803aa3b9855c