症状
設定の「入力方式」で「カスタム」を選んでも既定のローマ字入力のままになってしまう。
環境
原因
カスタムテーブルを保存する側と読む側で、見ているフォルダが違う。
- 表を保存する設定画面は sandbox の中で動くので、sandbox container の中 (
~/Library/Containers/dev.ensan.inputmethod.azooKeyMac/Data/Library/Application Support/azooKeyMac/…) に書かれる
- 表を読む ConverterServer は sandbox の外で動く。同じパスを本当の
~/Library/Application Support/azooKeyMac/… として読むので、そこに file は無い
- file が見つからないと ConverterServer は黙って既定のローマ字入力に切り替える
CustomInputTableStore.directoryURL が FileManager.default.urls(for: .applicationSupportDirectory, …) を直接使っているため。
他のデータのうち、保存先が変わった typo correction の重みは AppGroup.applicationSupportDirectoryURL() で App Group の共有コンテナを使っていて、sandbox の内外どちらからも同じ場所が見える。
修正方針
- 同じ問題を解決している typo correction の重みと同じ形で解決する
CustomInputTableStore の保存先を AppGroup.applicationSupportDirectoryURL() の下 (~/Library/Group Containers/group.dev.ensan.inputmethod.azooKeyMac/Library/Application Support/azooKey/CustomInputTable/) に変える
- v0.1.4 以前でカスタム入力テーブルを作っていたユーザーのために、設定画面で入力方式が「カスタム」のとき、旧保存先から新しい保存先へ表をコピーする (新しい保存先に表があれば何もしない)。typo correction の重みの移行 (
ConfigWindow.migrateLegacyDebugTypoCorrectionWeightsIfNeeded) と同じ形
症状
設定の「入力方式」で「カスタム」を選んでも既定のローマ字入力のままになってしまう。
環境
main(7ed6b6d) を手元でビルドv0.1.5-beta.1でも同じ原因
カスタムテーブルを保存する側と読む側で、見ているフォルダが違う。
~/Library/Containers/dev.ensan.inputmethod.azooKeyMac/Data/Library/Application Support/azooKeyMac/…) に書かれる~/Library/Application Support/azooKeyMac/…として読むので、そこに file は無いCustomInputTableStore.directoryURLがFileManager.default.urls(for: .applicationSupportDirectory, …)を直接使っているため。他のデータのうち、保存先が変わった typo correction の重みは
AppGroup.applicationSupportDirectoryURL()で App Group の共有コンテナを使っていて、sandbox の内外どちらからも同じ場所が見える。修正方針
CustomInputTableStoreの保存先をAppGroup.applicationSupportDirectoryURL()の下 (~/Library/Group Containers/group.dev.ensan.inputmethod.azooKeyMac/Library/Application Support/azooKey/CustomInputTable/) に変えるConfigWindow.migrateLegacyDebugTypoCorrectionWeightsIfNeeded) と同じ形