Заставить IntelliJ переформатировать текущую строку при завершении строки - PullRequest
2 голосов
/ 26 апреля 2011

Есть ли способ переформатировать мою строку после ее завершения в IntelliJ? (Для тех, кто знаком, эта функция доступна на FlashDevelop.)

Допустим, я только что ввел этот код в PHP:

$var=array("a","b","c");

После ввода точки с запятойЯ хотел бы, чтобы редактор переформатировал его (или любые другие мои состояния конфигурации):

$var = array("a", "b", "c");

Этот триггер автоматического переформатирования также мог быть выполнен в скобках и других символах конца строки.

Ответы [ 3 ]

1 голос
/ 26 апреля 2011

Вы действительно можете сделать что-то вроде.

Go to where you want to insert ;
Tools/Start Macro Recording
Type in ;
Then select Code/Auto Indent Lines
Tools/Stop Macro Recording
Name the macro "reformat"
Now go to settings, Keymap, Macros, select "reformat"
Assign a keyboard shortcut of ;

Возможно, вам придется немного поиграть с ним, чтобы курсор оказался в нужном месте после запуска макроса.

1 голос
/ 26 апреля 2011

В IDEA такой функции нет.При необходимости вы можете использовать действие Переформатировать код ( Ctrl + Alt + L ).

0 голосов
/ 13 июля 2017

Это основано на ответе jhormans выше, и я знаю, что этому вопросу более 6 лет.Но IntelliJ IDEA 2017.1.5 по-прежнему не имеет функции, которая автоматически переформатирует текущую строку при нажатии точки с запятой, как VisualStudios.

Обходной путь - создать макрос, как описано jhorman, но после нажатия «;»запустить код -> переформатировать код.Затем остановите запись и в разделе «Настройки» / «Карта клавиш» / «Макросы» добавьте в макрос ярлык «Shift + запятая».Теперь при вводе точки с запятой нажатием клавиш Shift + запятая в коде код будет переформатирован.Единственный недостаток: весь код будет переформатирован при каждом нажатии Shift + Comma.Для больших файлов это может занять секунду.

Этот обходной путь будет работать только в том случае, если у вас есть только один разделитель строк, например точка с запятой.Чтобы автоматически переформатировать код на нескольких разделителях строк (закрывающие скобки, точка с запятой, ...), необходимо добавить ярлыки в «Настройки» -> «Таблица клавиш» -> «Главное меню» -> «Код» -> «Переформатировать».Кодекс "напрямую.В этом случае нет необходимости создавать макрос.

Насколько я знаю, просто отформатировать текущую строку невозможно.

...