上架了一个 vscode 插件

插件市场的地址在这里,先上一下效果吧:

Format YAML

作为一个后端工程师,平时没少接触DevOps工具,比如 Kubernetes,Ansible Playbooks,CI/CD pipeline 等等,而这些通常使用YAML格式来作为描述语言。每天都会接触到或多或少yaml文件,不开玩笑的说,有些时候也算个YAML工程师了。

如果你也觉得是这样,那这个插件很可能对你有用。

拿k8s的YAML来举个栗子:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

不知道你注意到没有,对于序列(sequence)类型(containersports),k8s采用的是无缩进的风格。每当使用kubectl命令去操作(get/edit等等)资源时,都是不带缩进的。更不用说像kustomize这样的工具还会强制你这么做。

不幸的是,vscode内置的YAML格式化插件有着它自己的哲学。它始终会缩进并且拒绝提供一个选项来满足上述场景。

所以默认插件就没啥用了。我不得不自己去手动处理缩进,否则会两边风格不统一,看起来怪怪的很不舒服。

重复这过程很乏味,尝试了其他插件也无果,所以我写了这么个插件来让世界变得更美好一点点。现在你可以自由地控制想要什么样的风格。

过程中感谢好朋友陆鹏鹏帮忙设计了icon。

当然必须还有开源社区,本质上这插件是google/yamlfmt的一个封装,在使用的过程中发现一些问题,然后提了PR,review合并到上游,最后用Github Actions自动发布,这其中的学习和实践体验很棒。

也欢迎同学们的贡献或者建议,希望它能够帮助到你:)