home icon indicating copy to clipboard operation
home copied to clipboard

请问Rime的配置文件读取采用的是什么规则?

Open hahaleyile opened this issue 1 year ago • 3 comments

您好,在通读了你们写的文档后,我有一个地方不解,就是关于配置文件的读取规则。 配置文件会放置在程序目录和用户目录下,那么一个方案就可能存在着四个文件和配置相关,分别是两个路径下的 schema 文件和 custom 文件。 通过实践发现,如果两个同名schema文件分别位于用户目录和程序目录下,那么程序目录下的文件也会被读取(读日志可知),但只会使用用户目录下的配置文件。 我这还没考虑到custom文件、patch选项等因素对方案的影响。 我也读过librime的源码文件,但感觉代码层次比较深,所以也没读懂 😭 。

所以请问一下,Rime会以什么规则、什么流程读取配置文件呢?

hahaleyile avatar Aug 02 '22 17:08 hahaleyile

又读了一遍文档,原来是有提到过这个问题啊 https://github.com/rime/home/wiki/Configuration#%E5%8A%A0%E8%BC%89%E8%A6%8F%E5%89%87

hahaleyile avatar Aug 03 '22 14:08 hahaleyile

優先使用用戶目錄的同名文件。部署過程中,也讀取程序目錄下的配置文件,是爲了比較兩份同名配置文件的版本,選取版本較高的,達到在程序目錄安裝更高版本的配置文件完成配置升級的目的。由此可知用戶目錄與程序目錄同名的文件未來可能因配置升級而失效,因此,由輸入法安裝的配置文件中用戶修改的部分最好寫成獨立的補丁文件,即 *.custom.yaml,配置升級後依然有效。

lotem avatar Aug 05 '22 14:08 lotem

優先使用用戶目錄的同名文件。部署過程中,也讀取程序目錄下的配置文件,是爲了比較兩份同名配置文件的版本,選取版本較高的,達到在程序目錄安裝更高版本的配置文件完成配置升級的目的。由此可知用戶目錄與程序目錄同名的文件未來可能因配置升級而失效,因此,由輸入法安裝的配置文件中用戶修改的部分最好寫成獨立的補丁文件,即 *.custom.yaml,配置升級後依然有效。

原来如此,多谢解答

hahaleyile avatar Aug 05 '22 14:08 hahaleyile