
不可否认,代码格式化工具非常有用,但例如 prettier 这样的代码格式化工具,在规范代码的同时会强制你做出取舍,比如在一个 Javascript 项目里包裹字符串只能用单引号或者只能用双引号,但可能我只想要统一缩进,结果它把单双引号也统一了。
那么是否存在一种代码格式化工具,可以最小程度的修改代码,以满足高可读性的要求呢?
简单来说,该工具应满足以下条件:
1 renmu 2022 年 8 月 15 日 via Android 1 ,2 你可以设置 prettier 达成 |
2 Jooooooooo 2022 年 8 月 15 日 idea 应该就有这种功能 |
3 GPLer OP @renmu 第一条我参考 ![Is there a way to ignore a specific rule? [Possible Feature] #9171]( https://github.com/prettier/prettier/issues/9171) 试了下,像 `singleQuote` 的配置项,配置成 'never' 后确实不生效的,也就是说是可行的,还是我太急躁了,感谢大佬。 至于第二条,其实 prettier 好像本来就是这样的 第三条估计 prettier 也能做到,但是插件的方式还是挺麻烦的,能做到一、二也够用了。 |
4 GPLer OP @GPLer 经测试,never 并不是生效了,而是配置文件中出现了意料之外的值,以至于格式化程序没有执行。。。 参考 https://stackoverflow.com/questions/63813336/how-to-ignore-specific-rules-with-prettier 所以说 prettier 似乎并不能满足要求。 |
5 iamqida 2022 年 8 月 15 日 jetbrains 家的 ide 都可以做到 |
7 zhuweiyou 2022 年 8 月 15 日 你在一个项目或者一个文件里,用不同的风格, 是不是你的不合理呢? 感觉除了老项目不应该格式化以外, 新项目应该统一标准. |
8 wu67 2022 年 8 月 15 日 其实 jb 家的 ide 可以处理这个场景. 编辑器可以按语音配置风格, 非常详细, 几乎开箱即用, 你想要自己配, 也可以微调, 设置窗口右侧有风格示例. prettier 其实也可以大体上的设置, 但是不算开箱即用(个人认为). 折腾半天还需要配合 eslint 修一遍才行(个人做法是 prettier 格式化一边, 然后 eslint 修一遍), 这样才能符合我对代码风格的期望. 仅 vue 场景, react 未知. 现在不怎么搞 idea 了(其实是穷得不想买), 凑合着用 vsc, 用是能用, 就是各种不方便 可以看看这篇文章 https://blog.isayme.org/posts/issues-50/ 这是我以前配置 vsc 时参考的文章之一 |
9 molvqingtai 2022 年 8 月 15 日 你这不是说的 eslint 吗 |
10 Nugine0 2022 年 8 月 15 日 via Android 试试 dprint |
11 placeholder 2022 年 8 月 15 日 没有,不用找了,我找了好久了。 |
12 liulangyude 2022 年 8 月 15 日 @wu67 破解啊,现在网上教程一大堆,正版主义者的话当我没说 |
13 wu67 2022 年 8 月 15 日 @liulangyude hhh, 很快就会有一堆人来批你了...在这网站正版是政治正确. 另外我就是懒得折腾了, 基本每次升级都会失效 |
14 mingl0280 2022 年 8 15 日 Visual Studio 就行了呗。 |
15 94 2022 年 8 月 16 日 所有的代码格式化工具都会提供配置项的吧.... 如果只需要某几项,可以单独自己搞一个风格,然后只检查自己配置的项目的。 可以放到编辑器的配置项里面全局使用,也可以搞到项目目录下只检查项目内的编码风格。 |
16 Vaspike 2022 年 8 月 16 日 |
17 yangzzzzzz 2022 年 8 月 16 日 eslint 改一下格式化风格应该可以满足,airbnb 、prettier 、还有标准的风格,基于这些自己在修改参数 |
18 secondwtq 2022 年 8 月 16 日 可以说存在,也可以说不存在。 对于一个黑盒的软件成品来说,“无默认行为”by definition 是不可能的,因为这个软件设计的“功能”就是“行为”的一部分。“无默认行为”等于“无默认功能”,追求完全的自定义,最后都会扩大化到从 mian 函数重写整个软件。 另一方面,很多软件是可以拿到源代码并自己编译的,可以不必“从 mian 函数重写整个软件”,而是在已有源代码上魔改,从这个角度上来讲这些软件确实“无默认行为”,毕竟你可以通过源码的方式修改所有行为。 |