trime icon indicating copy to clipboard operation
trime copied to clipboard

[Development Discuss] A more propriate way to obtain config data

Open WhiredPlanck opened this issue 3 years ago • 0 comments

主题描述 / Topic Descriptions

最近浏览了一些 Rime 官方的项目,想了解这些项目是如何利用 API 获取所需的配置的,思考出如何改进同文目前的配置数据获取机制。遂有此主题。

目前的问题 / Current Problems

说来话长 …… 同文目前获取配置(主要是主题),弊病很多,简要来说是通过 JNI 利用 API 获取到整份文件内容,存储为一个 Map 变量,然后再读取 Map 到各个分变量,为其他部件所用。 问题在于:

  1. 获取到值后,还需要根据实际情况转换类型;
  2. 编写代码时,还要不断查询键名,相当不便;
  3. 每个部件所使用的变量,都是互相独立的,他们应该是有机结合的整体;
  4. debug 困难;
  5. ……

心太累,列举不下去了 :rofl:

可能的解决方案 / Potential Solutions

我的理想是像 fcitx5-android 这样 ,用 class 定义住一整套主题体系。从配置文件获取数据,直接构建出 class 实例,用的时候直接调用实例的成员变量即可。

事实上,Rime 的官方 Windows 客户端 Weasel(小狼豪),是有类似做法的,参见这里这里

WhiredPlanck avatar Jun 17 '22 09:06 WhiredPlanck