7

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

4

1 回答 1

6

很抱歉这个坏消息,但是...

JSFormat使用js-beautify,不支持单行函数定义。一切都被分解成“美化”的线条,使其“更具可读性”。

查看为 js-beautify 给出的示例......示例本身是单行函数定义。没有办法区分您确实希望保留的单行函数定义与您希望保留的单行函数定义。

如果您考虑一下,使用美化器的理想情况是,如果您想要缩小代码并使其可读......这也只是一长行代码。

我感觉到你的痛苦,相信我。

于 2014-01-13T08:36:00.667 回答