09.02.2025, Ссылка на новость
Вышел Prettier 3.5 и добавил несколько приятных фич: objectWrap
– правила форматирования объектов, и experimentalOperatorPosition
– экспериментальная опция для переноса операторов, которая полезна при форматировании длинных выражений.
Для форматирования объектов появился новый параметр – objectWrap
, теперь можно принудительно “свернуть” объект, если он помещается на одну строку.
Форматирование объектов
До версии 3.5 форматирование объектов происходило либо по длине строки – если не помещался в одну строку, то он “раскрывался” на несколько строк; либо по первому символу после литерала – если перенос, то тоже будет “раскрыт”.
Так было:
const person = {
firstName: 'John',
lastName: 'Doe',
};
const item = { name: 'Effective TypeScript', type: 'book' };
А так станет с objectWrap
в значении collapse
:
const person = { firstName: 'John', lastName: 'Doe' };
const name = { name: 'Effective TypeScript', type: 'book' };
Prettier нередко добавляет фичи в виде экспериментов, так и был добавлен experimentalOperatorPosition
, который позволяет объяснить форматтеру, в каком месте расставлять переносы строк в математических операциях: в в конце или в начале.
// Пример математического выражения
var a = Math.random() * (yRange * (1 - minVerticalFraction)) + minVerticalFraction * yRange - offset;
// `experimentalOperatorPosition: end` (стандартное поведение)
var a =
Math.random() * (yRange * (1 - minVerticalFraction)) +
minVerticalFraction * yRange -
offset;
// `experimentalOperatorPosition: start`
var a =
Math.random() * (yRange * (1 - minVerticalFraction))
+ minVerticalFraction * yRange
- offset;
Дополнительными плюшками релиз не обделили: и конфиги на TypeScript’е писать разрешили, и переносы строк в JSX и CSS улучшили и дотюнили форматирование для Vue, Angular и Markdown.