Как включить автоформатирование кода для Intellij IDEA?

129

Возможно ли это в Intellij IDEA после ввода ';' или при нажатии 'Enter' произошло форматирование этой строки?

Например, чтобы:

a+b=10;

после:

a + b = 10;

Или единственно возможный вариант: Код> Переформатировать код ... ?

Спасибо!

0x131313
источник
1
Alt+ c+r
Gayan Weerakutti
если вы хотите, чтобы эта функция была включена в сам IntelliJ (а не в какой-либо плагин), проголосуйте здесь: youtrack.jetbrains.net/issue/IDEABKL-5806
Line

Ответы:

181

Ярлыки форматирования в Intellij IDEA:

  • Для Windows: Ctrl+ Alt+L
  • Для Ubuntu: Ctrl+ Alt+ Windows+ L
  • Для Mac: ⌥ (Option)+ ⌘ (Command)+L
Аксельрод
источник
89
Да, но я бы хотел, чтобы это происходило автоматически, без нажатия горячих клавиш.
0x131313
Макро? ctrl + alt + l становится ctrl + alt + l + enter
Джефф
17
В вопросе четко указывается "автоформат" после написания каждой строки.
bokan
2
@axelrod, есть ли способ сделать это автоматически при сохранении или компиляции кода
Касун Сиямбалапития
3
Это не ответ на вопрос. Ответ Нафиура Рахмана Хадема имеет значение.
Dakatine
22

Я нашел два способа сделать это:

  1. Перейдите к Settings> Keymap.В правой части перейдите к Editor Actions> complete current statement.Щелкните по нему и выберите добавить сочетание клавиш. Нажмите ; и выберите ОК.

  2. Используйте макрос. Перейти к

Edit> Macros> Start Macro Recording.

Теперь нажмите точку с запятой и сочетание клавиш, чтобы переформатировать код (сочетание клавиш можно найти в других ответах или в настройках> раскладка клавиатуры).

После переформатирования перейдите в

Edit> Macros> Stop Macro Recording

Сохраните макрос с именем (автоформат или что-то еще). Затем перейдите в

Settings> Keymap> Macros> auto format (имя макроса).

Щелкните здесь и выберите добавить сочетание клавиш, затем нажмите точку с запятой и нажмите ОК. Теперь всякий раз, когда вы нажимаете точку с запятой, она будет писать точку с запятой и выполнять автоматическое форматирование.

Нафиур Рахман Хадем
источник
Ницца. Я также добавил Shift+[использование первого метода для форматирования строки при написании ifоператоров, методов и тому подобного. Однако по какой-то причине Enterэто не сработало.
Мэтт
1
Это было очень полезно, странно, что в Intellij вообще нет опции автоматического переформатирования
Teedeez
12

В Eclipse есть опция автоматического форматирования при сохранении файла. В IntelliJ нет возможности для этого, хотя вы можете настроить макрос для клавиш Ctrl + S (Cmd + S на Mac), чтобы отформатировать код и сохранить его.

Переформатирование Intellij при сохранении файла

Mouscellaneous
источник
7

По умолчанию это Ctrl+ Alt+. L Существует диалоговое окно сопоставления клавиш, в котором вы можете настроить / переопределить все сочетания клавиш.

Перейдите в Файл-> Настройки-> KeyMap.

введите описание изображения здесь

vels4j
источник
7

Файл-> Настройки -> Раскладка-> Полный текущий отчет

Я добавил ;туда ключ. При вводе ';' в конце строки это автоформатирование.

ОБНОВИТЬ

Я понял, что это вызовет некоторые проблемы в некоторых ситуациях. Вместо этого используйте Ctrl+ Shift+ Enter. Эту клавишу можно использовать в любой позиции курсора в строке. Он добавится ;в конце строки. Также у этого ярлыка есть и другие полезные функции.

лайк:

public void someMethod()

после ярлыка:

public void someMethod() {
    // The cursor is here
}

поэтому форматирование при вставке ;не требуется.

user12043
источник
Умно
6

Этого также можно добиться с помощью Ctrl + WindowsBtn + Alt + L. Для некоторых это будет важно, потому что на некоторых виртуальных машинах Ctrl + Alt + L может выйти из системы.

шок
источник
3

Ни одно из решений в Intellij не является таким элегантным (или полезным), как в Eclipse. Нам нужен запрос функции к intellij, чтобы мы могли добавить ловушку (какие действия выполнять) при автосохранении IDE.

В Eclipse мы можем добавлять действия после сохранения, такие как организация импорта и форматирование класса. Да, вам нужно сделать "save" или ctrl-s, но ловушка очень удобна.

ccstep1
источник
1
есть ли контакты с intellij по поводу htis? Если да, то разместите ссылку здесь :)
Рути Рут
@RuthiRuth нашла это;) youtrack.jetbrains.net/issue/IDEABKL-5806
Строка
3

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

Данниэль Алехандро
источник
1

Ну, это невозможно, но в intellij 13 как насчет добавления жеста мыши, чего-то вроде одного щелчка левой кнопкой мыши, чтобы переформатировать код? Или, если вы мало используете мышь, добавьте очень простую горячую клавишу клавиатуры, которую вы используете все время (возможно, «ввод»? Не уверен, что intellij будет доволен этим, если честно)

Сакис Калиакудас
источник
2
Почему голос против? Я говорю, что то, что вы хотите, невозможно, и пытаюсь предоставить самое близкое из возможных ..
sakis kaliakoudas
Голос против легко объяснить: щелчком мыши. Одно из больших преимуществ IntelliJ - это ярлыки и то, что вам не нужно часто пользоваться мышью. Если вы много программируете, вы не хотите много использовать мышь, потому что вы быстрее используете клавиатуру. Уже есть ярлык для форматирования.
Фил
1

Как я реализовал автоматическое переформатирование, как в Microsoft Visual Studio (работает не идеально):

1. Edit > Macros > Start Macro Recording
2. Press continuously: Enter + Ctrl+Alt+I
3. Edit > Macros > Stop Macro Recording (Name it for example ReformatingByEnter)

Теперь нам нужно выполнить те же действия, но для Ctrl + Alt + L +;

4. Edit > Macros > Start Macro Recording
5. Press continuously: ; + Ctrl+Alt+I
6. Edit > Macros > Stop Macro Recording (Name it for example ReformatingBy;)

Теперь нам нужно назначить горячие клавиши этим макросам:

7. File > Settings > Keymap > press on a gear button > Duplicate...
8. Unfold a macro button (beneath) and by right clicking on two 
ours macros assign HotKeys for them: "Enter" and ";" correspondingly.
Ростислав Теряев
источник
Возможно, это ограничение моей клавиатуры, но я могу записывать только 3 клавиши за раз.
Мэтт
1

Я знаю, что этот вопрос довольно старый, но на самом деле существует плагин Save Actions для IntelliJ, который можно настроить для автоматического форматирования кода.

algiogia
источник
1

Вы можете сделать это с помощью подключаемого модуля «Сохранить действия». См. Эту статью о том, как настроить подключаемый модуль.

Плагин Save Actions поддерживает настраиваемые, такие как Eclipse, действия по сохранению, включая «оптимизировать импорт», «переформатировать код», «переставить код», «скомпилировать файл» и некоторые быстрые исправления для Java, такие как «добавить / удалить квалификатор 'this'» и т. Д. Плагин выполняет настроенные действия при синхронизации (или сохранении) файла на диске.

  1. Установите плагин
  2. Перейдите в Настройки > Другие настройки > Сохранить действия.
  3. Установите флажок Активировать сохранение действий при сохранении.
  4. Отметьте Reformat file
  5. Применить> ОК

введите описание изображения здесь

Я предпочитаю горячие клавиши. Для Mac

Чтобы отформатировать код: Ctrl+ Alt(Option)+L

И, кроме того, я делаю: Ctrl+ Alt(Option)+ O , Это удалит неиспользуемый импорт и отформатирует список импорта.

простое число
источник