在 Python 项目中,我很快就会将所有配置参数移至专用的 YAML 文件中。目前,它们被定义为单独的 Python 文件中的变量,这可能是不好的做法,但与 VS Code 中的 Pylance 集成得很好,因为它提供了上下文感知自动完成功能,我可以快速从脚本导航到配置文件。
有没有办法为 YAML(或 JSON)配置文件设置类似的东西?理想情况下,一旦配置作为 Python 字典加载,我希望根据 YAML/JSON 内容自动完成字典键,并按 ctrl+单击键导航到相关的配置条目。
例如,假设我有一个 YAML 文件
config.yaml
,如下所示:
param1: value1
param2: value2
param3:
param4: value4
param5: value5
在以某种方式导入此配置的 Python 脚本中(作为字典的字典或任何其他格式),我希望在按键上自动完成:例如,如果我输入 `config.para,我希望 VS Code 提出建议使用 param1、param2 或 param3 自动完成。而且,理想情况下,我希望单击 config.param1 将我带到 YAML 文件中的相应条目。
我想避免定义镜像 YAML 文件内容的数据类结构,这是我能想到的唯一解决方案。我已经研究过 VS Code JSON/YAML 模式,但据我了解,这并不完全是我想要的。
据我所知,如果不定义数据类,就无法实现这个功能。现有的 python lsp 都不会分析配置文件。
但另一方面,如果您已经实现了一个数据类并想要完成您的json配置,或者从您的json配置的参数转到python定义。 我开发了一个Python配置管理工具(intc)和一个lsp来实现这一点。