A Visual Studio Code extension that provides format support for YAML language.
Frustrated of the builtin formatter with its own option philosophy?
Or you guys comes from devops world where dealing with a lot of yaml everyday like kubernetes, ansible or helm template.
And you have your own prefer style of YAML, e.g., do not indent sequence elements or other customization settings.
This extension is made for you :)
Format correct, consistent and customized yaml text with Better YAML Formatter.
demo.mov
Take the k8s yaml for example:
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:latest
ports:
- containerPort: 80
As you see, the sequence style(containers
and ports
) in the k8s style yaml has no indent. Each time you play with kubectl, there is no indent. Not to mention some tool like kustomize requires you do that.
Unluckily, the builtin yaml format has its own option philosophy. It always does indent and resists to accept such a customization setting.
It's useless. I have to keep the style manually every time editing yaml files, or you will end up with a non-idiomatic one.
It's tedious. So I create this extension to make life easier.
This extension contributes the following settings:
better-yaml.directives
: Whether block sequences should be indented.better-yaml.directives
: Include directives in the output. If true, at least the document-start marker --- is always included. If false, no directives or marker is ever included. If null, directives and marker may be included if required.better-yaml.commentString
: Change the comment prefix string. By default, empty comment lines are left empty, lines consisting of a single space are replaced by#
, and all other lines are prefixed with a#
.better-yaml.lineWidth
: Maximum line width (set to 0 to disable folding). This is a soft limit, as only double-quoted semantics allow for inserting a line break in the middle of a word.better-yaml.documentOptions.version
: The YAML version used by documents without a %YAML directive. Must be '1.1' or '1.2'. Default to '1.2'.
Thanks lupengpeng for the icon design. It's great!
Many thanks the following projects:
Without them there wouldn't be this extension.
Throughout the process I learnt a lot and also made some contributions back to them.
Definitely welcome your patches and contributions!