VSC暂时关闭了yaml lintin

时间:2017-06-18 15:16:19

标签: visual-studio-code yaml vscode-settings

enter image description here

尝试找到暂时关闭该文件的红线的方法。

1 个答案:

答案 0 :(得分:0)

因为这根本不是YAML,但你想把它编辑为YAML, 你应该把它变成有效的YAML。如果你转错了, 相反,你可能不会拥有YAML的所有优势 编辑模式。

如果saltstate允许您更改block_start_stringvariable_start_string jinja2使用您可以将{%更改为#%(或 ###%如果#%###%自然出现在你的来源中),也是。{ 将{{更改为<{(或<<{,即可获得提示)。如果你打电话 然后直接将jinja2传递给FireSystemLoaderblock_start_string='<{'variable_start_string='#%'如果 以上是可能的,那么你只需要改变输入文件一次, 用编辑做到这一点。

如果你无法控制盐态来做理智的事情,你仍然没有 陷入困境,但你必须使用Python做更多的事情, ruamel.yaml和其他人 支持包(免责声明:我是这些包的作者)。 安装时:

pip install ruamel.yaml[jinja2] ruamel.std.pathlib

然后在编辑之前运行程序:

from ruamel.yaml import YAML
from ruamel.std.pathlib import Path

yamlj2 = YAML(typ='jinja2')
yamlrt = YAML()
yaml_flow_style = YAML()
yaml_flow_style.default_flow_style = True

in_file = Path('init.sls')
backup_file = Path('init.sls.org')
in_file.copy(backup_file)

data = yamlj2.load(in_file)
with in_file.open('w') as fp:
    # write the header with info needed for revers
    fp.write('# ruamel.yaml.jinja2: ')  # no EOL
    yaml_flow_style.dump(yamlj2._plug_in_jinja2, fp)
    yamlrt.dump(data, fp)

更改有问题的jinja2序列,并添加一行标题注释以及用于文件的实际模式。那么你应该可以 编辑init.sls文件而不会收到所有这些错误。

在调用saltstate之前,请运行以下命令:

from ruamel.yaml import YAML
from ruamel.std.pathlib import Path

in_file = Path('init.sls')
yamlj2 = YAML(typ='jinja2')
yamlrt = YAML()
yamlnort = YAML(typ='safe')
with in_file.open() as fp:
    yamlj2._plug_in_jinja2 = yamlnort.load(fp.readline().split(':', 1)[1])
    data = yamlrt.load(fp)
yamlj2.dump(data, in_file)

如果你有多个这些文件,你可能想要拿走你的 来自sys.argv [1]的文件名。您实际上可能会从第二个Python程序中调用salstate程序(即解码并运行)。