避免在“上删除换行符”;forEach“是的&引用;过滤器";,在TypeScript/JavaScript代码中

避免在“上删除换行符”;forEach“是的&引用;过滤器";,在TypeScript/JavaScript代码中,javascript,typescript,prettier,Javascript,Typescript,Prettier,我正在使用,而且总的来说,我喜欢它 然而,有一种转变我不同意。假设我正在对数组编写一些转换,执行过滤器,forEach,等等。如果我是手动编写的,我将按照以下方式编写(真实代码示例): 请注意,我的每个“顶级”操作(filter,forEach)都位于单独的一行,在我看来,这确实有助于提高可读性 现在,使用Prettier,它将.filter和.forEach组合在同一行: // ... snippets.filter(s => s.script && s.name).fo

我正在使用,而且总的来说,我喜欢它

然而,有一种转变我不同意。假设我正在对数组编写一些转换,执行
过滤器
forEach
,等等。如果我是手动编写的,我将按照以下方式编写(真实代码示例):

请注意,我的每个“顶级”操作(
filter
forEach
)都位于单独的一行,在我看来,这确实有助于提高可读性

现在,使用Prettier,它将
.filter
.forEach
组合在同一行:

// ...
snippets.filter(s => s.script && s.name).forEach(s => {
    const namespace = transformSnippetName(s.name);
    // ...
});
我发现这对可读性有害,原因有二:

  • 在快速阅读代码的过程中,
    forEach
    有点迷失了方向。我看不出来
  • forEach
    的主体在缩进下变为一个级别,这使得视觉上不清楚什么是
    const namespace=…
    ,除非您仔细查看它
  • 有没有办法防止这种情况发生(或者至少,一旦我决定这样安排,就可以防止prettier删除我在这些块上的手动格式)?我试着在房间里找些东西,但什么也找不到


    谢谢

    我不这么认为。请看一看这个问题,它几乎正是您想要做的事情:。该项目似乎认为应尽可能多地放在一行上。令人恼火的是,您可以尝试将
    --范围开始
    --范围结束
    设置为
    0
    。请看:@zero298,谢谢您的确认。真倒霉对于
    --range start
    ,这只会使文件不被美化,对吗?相对于我正在努力做的事情来说,这是一种过度的杀伤力。虽然也许“请勿触摸此部分”之类的注释(比如tslint有一个“禁用下一行”)可能是权宜之计,但如果我可以直接将其注入代码中(以及每个代码的多个块上),尽管仍然不太理想。。。
    // ...
    snippets.filter(s => s.script && s.name).forEach(s => {
        const namespace = transformSnippetName(s.name);
        // ...
    });