如何更改 .less 文件的 Prettier 行为?

Posted

技术标签:

【中文标题】如何更改 .less 文件的 Prettier 行为?【英文标题】:How to change Prettier behaviour on .less Files? 【发布时间】:2018-03-14 09:18:21 【问题描述】:

我在我的 Typescript 项目中使用 Visual Studio Code 和 prettier。它还格式化less 文件。

prettier 所做的是将每个选择器放在一行中..

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4... 
    margin: 0;
    padding: 0;

最终形成一个非常冗长的选择器链:

body,
div,
dl,
dt,
...

    margin: 0;
    padding: 0;

我想要更漂亮的是,让我一个人呆着(在这个特定方面。在.less 文件中。)如果我愿意,可以将它们放在一行(或多个)中。或者在多个,如果是的话,他发现了什么:

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4... 
    margin: 0;
    padding: 0;


ul,
ol 
    list-style: none;

顺便说一句:我可以通过在这些选择器之前添加// prettier-ignore 行来“证明”,只有更漂亮的人参与其中,而不是 vscode 或我的 tslint 中的任何内置内容。这也将是一个本地修复,但我想要一个更通用的解决方案......而不必在所有这些中抛出反 linter cmets......)

更新:

也许解决方案是将.less 文件指向不同的解析器。但是我找不到一段示例代码,那么如何更漂亮地告诉我的 postcss-Preferences...


    "singleQuote": true,
    "printWidth": 140,
    "overrides": [
        "files": "*.less",
        "options": 
            "parser": "postcss"
        
    ]

【问题讨论】:

【参考方案1】:

我看不出有什么方法可以阻止 prettier 将换行符添加到您的选择器列表中。不过,vscode 有一个更漂亮的样式集成,请参阅 support for prettier-stylelint in vscode.

Stylelint extension for vsCode 确实有您需要的选项。 newlines in selector lists : stylelint rule。

选择器列表逗号换行符之前: “从不多行”

所以你可以只使用 stylelint 而不是 prettier。或者等待 prettier-sttlelint 集成的 PR。看起来很接近了。

【讨论】:

啊,我想我需要一点时间来整理一下并测试一下:所以prettier-stylelint 把 lint 放在上面(别名 'afterwards')更漂亮? 是的,它会的。在 stylelint-fix 模式下。我“假设”你可以定义一个规则,就像上面的选择器列表一样,并且即使 prettier 不喜欢它,因为 stylelint 是最后一个,但我们会看到这一点。但他们只提到排除冲突的 stylelint 规则,而不是相反。 prettier 很有主见 @mark 花了几个小时来解决这个问题。虽然我的问题有点不同,但这会给你一个关于如何在 VSCode 中设置 stylelint 的想法:***.com/a/54757106/3331700

以上是关于如何更改 .less 文件的 Prettier 行为?的主要内容,如果未能解决你的问题,请参考以下文章

prettier怎么设置

更漂亮:仅针对文件的更改行运行

如何使用js更改sass文件中的变量

webstorm 默认代码格式化更改,webstorm设置prettier规则

为啥 prettier 开始拆分短线?

Ruby 命令行:如何通过命令行中的文本发送 CTRL-C 命令?