我一直在网上寻找一个不错的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对象的属性分成多行。有任何想法吗?

最佳答案

很抱歉这个坏消息,但是...
JSFormat使用js-beautify,它不支持单行函数定义。一切都分成“美化”行,使其“更具可读性”。

请看为js-beautify提供的示例...该示例本身是单行函数定义。没有办法将您想要保留的单行函数定义与您不想保留的单行函数定义区分开。

如果您考虑一下,使用美化器的理想情况是,您想获取缩小的代码并使之易于阅读……那也只是一长行代码。

,我相信你的痛苦。

10-04 17:36