我一直在寻找一个好的Sublime(3)软件包,用于自动格式化各种语言的源代码,即JavaScript。我遇到了这篇SOF帖子(Sublime Text 2: Auto fix indentation for javascript?),因此决定尝试JSFormat。到目前为止,它似乎工作得很好......除了它处理JS代码中的JSON对象。例如,假设我有这样的函数:
function foo() {
return {name: 'Dave', score: 1000};
}
它以JSON格式返回一个JavaScript对象,它是一个哈希对象。我喜欢在一行中编写这样的对象,因为它简单易读,特别是因为它只是一个小的,特殊的对象。但是,如果我用JSFormat格式化它,我的函数现在看起来像这样:
function foo() {
return {
name: 'Dave',
score: 1000
};
}
也许这只是我,但我真的不喜欢在多行中表示这样简单的JSON对象。是的,通常需要大括号的JavaScript代码应该将其内容放在与大括号不同的行上,例如函数,if语句和循环。也许如果JSON对象是包含其中的函数的长对象,例如jQuery Ajax类,那么将属性分成多行是有意义的。
尽管如此,无论我对括号的观点是否有意义,我都知道JSFormat支持配置,并且可能有一种方法可以配置JSFormat,以便在不需要的情况下不将JSON对象的属性分成多行。有什么想法吗?
答案 0 :(得分:6)
JSFormat
使用js-beautify,它不支持单行函数定义。一切都被打破成“美化”的线条,使其“更具可读性”。
查看为js-beautify给出的示例...示例本身是单行函数定义。没有办法区分 希望保留的单行函数定义与不需要保存的单行函数定义。
如果您考虑一下,使用美化器的理想情况是,如果您想采用缩小的代码并使其可读......这只是一长串代码。
我感到痛苦,相信我。