Sublime JSFormat: настройте автоматическое форматирование JSON

Я искал в Интернете хороший пакет Sublime (3), который можно использовать для автоматического форматирования моего исходного кода на разных языках, а именно на JavaScript. Я наткнулся на этот пост SOF (Sublime Text 2: автоматическое исправление отступа для javascript ?) и поэтому решил попробовать JSFormat. Пока что он работает довольно хорошо... за исключением случаев, когда он обрабатывает объекты JSON в коде JS. Например, предположим, что у меня есть такая функция:

function foo() {
  return {name: 'Dave', score: 1000};
}

Он возвращает объект JavaScript в формате JSON, в значительной степени хеш-объект. Мне нравится писать такие объекты в одну строку, потому что это просто и легко читается, тем более, что это всего лишь небольшой специальный объект. Но если бы я отформатировал это с помощью JSFormat, моя функция теперь выглядела бы так:

function foo() {
  return {
    name: 'Dave',
    score: 1000
  };
}

Может быть, это только я, но мне очень не нравится представлять такие простые объекты JSON в несколько строк. Да, обычно код JavaScript, требующий фигурных скобок, должен иметь свое содержимое в отдельных строках от фигурных скобок, таких как функции, операторы if и циклы. Возможно, если бы объект JSON был длинным объектом, содержащим внутри себя функции, такие как класс jQuery Ajax, тогда имеет смысл разделить атрибуты на несколько строк.

Тем не менее, независимо от того, имеют ли смысл мои замечания по поводу фигурных скобок, я знаю, что JSFormat поддерживает настройку и, возможно, есть способ настроить JSFormat так, чтобы атрибуты объекта JSON не разделялись на несколько строк, если это нежелательно. Любые идеи?


person ecbrodie    schedule 05.10.2013    source источник


Ответы (1)


Извините за плохие новости, но...

JSFormat использует js-beautify, который не поддерживает однострочные определения функций. Все разбито на «украшенные» строки, что делает его «более читабельным».

Посмотрите на пример, приведенный для js-beautify... сам пример представляет собой однострочное определение функции. Невозможно отличить определения однострочных функций, которые вы нужно сохранить, от тех, которые вам не нужны.

Если подумать, идеальная ситуация для использования бьютификатора — это если вы хотите взять минимизированный код и сделать его читабельным... Это тоже всего лишь одна длинная строка кода.

Я чувствую вашу боль, поверьте мне.

person digitalextremist    schedule 13.01.2014