发表于: 7/21/2021
始
最近试着弄了下一直想做的博客,选主题选的眼都花了(笑),然而年幼无知的我还不知道后面有什么东西在等着我——指一大堆乱七八糟的配置文件,它们天真而又纯洁,等着我来带它们走向光明的未来。 其实认真的讲,我个人始终有一种追求:人应该尽可能少的进行没有意义劳作,而很明显,如果我想以一种预先约定的格式进行输入,而需要我全面学习这个约定,否则便无从知晓某一项是否被包含在约定中,也算是部分无意义——个人来讲倾向于在尝试中学习,如果能在输入的时候把可用的项目全部提供就很令人舒适,要是命名又十分直观真是再感激不过了。
其实在此之前有遇到过包含自动提示的配置文件,比如VS Code
自身的配置文件,或者是Visual Studio
的JSON 架构
,都能实现配置项、配置值的提示,不过一个是靠编辑器本身开挂,一个普及度低写起来也繁琐的一 * 并且还是依赖了编辑器的外挂从网络获取架构信息。
所以我想的是为配置文件写一个配置文件,再写个编辑器扩展什么的来进行 Hint。编写起来也得很简洁才行,方便使用。!!毕竟我也是个臭敲代码的,代码以外的东西越简单越好!!
初步的设计
Specs
文件名:.hintc
对于同目录内所有子目录均有效,且覆盖父目录中的.hintc
文件
config.json >
* connection >
* username = string
* password = string
- options >
- encryption = bool
- method = (foo, bar)
- alternate_conn : @connection // @config.json>connection
- timeout = number
- load :
* type = string
* data = string
当前预计使用如下关键字string
bool
number
date
>
=
:
*
-
@
(
)
,
>
表明项包含后续定义的字段
=
表明该项接受一个直接值
:
表明项接受一个其后类型的数组
*
声明该项在父项中为必须项
-
声明该项在父项中为可选项
string
bool
number
date
等字符串于值类型标识
@
后接一个已经定义过的项,其值与指向的项内容相同
(
)
用于表示一个列表,其值为其中任意一个元素
,
元素分隔
:::info note
该类符号用于进行值验证,与正则表达式接近,但似乎无法实现详细的提示,需要进一步实现尝试。
:::
从声明文件生成其配置文件
既然这么一个声明文件是具体配置无关的,那么理应可以通过扩展的形式支持多种配置文件。 e.g. JSON, yaml … 似乎一笔带过了什么难搞的东西
那么反过来从这一个声明文件生成一个样例配置文件应该也是可行的,于是就愉快的把坑挖大了。
最后
还没想好名字,不如叫ConfHint吧,后缀名确定是hintc了吗?
!!h这个字母是真烦,前面可以接80%的字母都不意外!!{.blur}