Выравнивание текста

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 2
Joined: Thu Feb 18, 2016 6:27 am

Выравнивание текста

Post by shraybikus »

Подскажите, пожалуйста, как выравнивать текст по-ширине, желательно с расстановкой пробелов и переносов? Читал, что для этого был плагин Justify, но в новых версиях он не поддерживается, и на странице его закачки плагин отсутствует.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

shraybikus
Посмотрите скрипт AlignJustify.js, кажется, что-то ещё было, посмотрите описания в первых двух постах.

FAQ

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

кажется, что-то ещё было,
LinesUnwrap.js, LinesWrap.js и ColumnAlign.js.

Offline
Posts: 2
Joined: Thu Feb 18, 2016 6:27 am

Post by shraybikus »

Как-то всё сложно и непотребно. Такая простая операция, а делается через пень-колоду. :(

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

shraybikus
непотребно
Не понятно, какой смысл вкладываете. Скрипты поставленную задачу выполняют – значит они потребные.
сложно
Назначьте горячие клавиши скриптам при помощи плагина Hotkeys. Станет проще.

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

посмотрел рекомендованные скрипты. Более практический пример:

Code: Select all

// ВХОДНЫЕ ДАННЫЕ                           
let arr = [

 abcd = 1,
 abc = 2,
 ab = 3,
 a   = 456,

];
Есть ли скрипт, который выровняет хотя бы по одному символу в виде вертикальной колонки:

Code: Select all

// РЕЗУЛЬТАТ (выравнивание по запятой)
let arr = [

 abcd = 1  ,
 abc = 2   ,
 ab = 3    ,
 a   = 456 ,

];
или более продвинутое:

Code: Select all

// РЕЗУЛЬТАТ 
// (несколько символов для выравнивания)
let arr = [

 abcd = 1     ,
 abc  = 2     ,
 ab   = 3     ,
 a    = 456   ,

];
Есть скрипты, которые для выравнивания колонок подобным образом?

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Eskander88
1. Как правило, от такой "красоты" стараются всеми силами избавляться. В любой организации вас, уж поверьте, заставят придерживаться либо корпоративного либо общепринятого стандарта (типа PEP8 для Python).
2. Но, если вам по каким-то своим причинам надо сделать нечто подобное, то попробуйте воспользоваться "пакетными заменами" в сочетании с регулярными выражениями.
\s*= (или) \s+= (заменять на) \t=
для запятых (если не только концевых, а всех подряд) аналогично
\s*, (заменять на) \t,

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Eskander88 wrote:Есть ли скрипт, который выровняет хотя бы по одному символу в виде вертикальной колонки:
Можно попробовать alignWithSpaces.js

Offline
Posts: 330
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Eskander88
Я могу алгоритмически подсказать, но писать не себе и не универсальное средство лень. Рег.выр`ом обсчитать в массив, определить максимальную ширину элементов столбца, дополнить пробелами каждый элемент столбца до максимальной ширины. Выполнить поиск и замену правого элемента массива на левый обработанный элемент массива.
Рег.выр. можно сделать не только для конкретной формы, можно сделать их для разных форм кода.
Так как выравнивание лучше делать на участке близлежащих строк, потому что переменные могут быть длинные и выравнивать лучше по самой длинной на участке, а не вообще, то можно сделать типа массив массивов, который будет захватывать только близлежащие строки и вычислять для них индивидуально.
Как вариант, можно сделать это для выделенного текста, т.е. не заморачиваться анализом участков.

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

Infocatcher,
Благодарю! Скрипт alignWithSpaces.js - как раз то, что надо. 8)
opk44 wrote:1. Как правило, от такой "красоты" стараются всеми силами избавляться. В любой организации вас, уж поверьте, заставят придерживаться либо корпоративного либо общепринятого стандарта (типа PEP8 для Python).
opk44,
Это вопрос дискуссионный. В зависимости от данных, существуют свои критерии удобства и читабельности, тем более не всегда речь идёт о python, или вообще программном коде.
Post Reply