Intellij memformat ulang pada penyimpanan file

353

Saya ingat melihat IntelliJ atau Eclipse pengaturan untuk memformat ulang (pembersihan) file setiap kali mereka disimpan. Bagaimana cara menemukannya (tidak menemukannya di pengaturan)

ripper234
sumber

Jawaban:

236

Saya menyarankan plugin simpan tindakan . Ini juga mendukung mengoptimalkan impor dan mengatur ulang kode.

Bekerja dengan baik dalam kombinasi dengan plugin formatlip eclipse .

Cari dan aktifkan plugin:

masukkan deskripsi gambar di sini

Konfigurasikan:

masukkan deskripsi gambar di sini

Sunting: sepertinya Intellij versi terbaru, plugin tindakan simpanan dipicu oleh penyimpanan Intellij otomatis. Ini bisa sangat menjengkelkan ketika hits saat masih mengedit.

Masalah plugin github ini memberikan petunjuk untuk beberapa solusi yang mungkin:

https://github.com/dubreuia/intellij-plugin-save-actions/issues/63

Saya sebenarnya mencoba untuk menetapkan reformat ke Ctrl+ Sdan berfungsi dengan baik - penghematan dilakukan secara otomatis sekarang.

Benjamin Peter
sumber
Saya menggunakan ini tetapi setelah memperbarui ke Android Studio 1.5.1, saya tidak dapat menemukannya lagi.
r1k0
1
Plugin itu (sampai sekarang) terakhir diperbarui 10.02.2016 dan mengatakan Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).saya tidak tahu versi apa dari IntelliJ Android Studio. Bisakah Anda memeriksanya?
Benjamin Peter
Ke atas Anda pergi!
Nick Grealy
Hampir berhasil untukku. Sayangnya, "kode pemformatan ulang" hanya akan melakukan sebagian dari hal-hal yang dilakukan "Kode> kode pemformatan" (setidaknya untuk kode Scala). Mengapa demikian?
Thilo
Sudah mencoba ini tetapi IntelliJ menyimpan jauh terlalu sering. Mengatur impor muncul setiap 2-3 kali penekanan tombol.
Ashley
443

Solusi ini bekerja lebih baik untuk saya:

  1. Buat makro (saya menggunakan Atur Impor, Format Kode, Simpan Semua)
  2. Tetapkan keystroke (I overrode Ctrl+ S)

Catatan: Anda harus mencentang kotak "Jangan tampilkan pesan ini lagi" pertama kali untuk impor terorganisir, tetapi berfungsi seperti yang diharapkan setelah itu.

Langkah-demi-langkah untuk IntelliJ 10.0:

  1. Kode -> "Optimalkan Impor ...", jika kotak dialog muncul, centang kotak yang mengatakan "Jangan tampilkan pesan ini lagi.", Lalu klik "Jalankan".
  2. Alat -> "Mulai Perekaman Makro"
  3. Kode -> "Optimalkan Impor ..."
  4. Kode -> "Kode Reformat ..."
  5. File -> "Simpan semua"
  6. Alat -> "Hentikan Perekaman Makro"
  7. Beri nama makro (sesuatu seperti "penyimpanan yang diformat")
  8. Dalam File -> Pengaturan -> Keymap, pilih makro Anda yang terletak di "Menu Utama -> Alat ->" simpan yang diformat "
  9. Klik "Tambahkan Pintasan Keyboard", lalu lakukan penekanan tombol yang Anda inginkan. Jika Anda memilih Ctrl+ Sseperti saya, ia akan menanyakan apa yang harus Anda lakukan dengan Ctrl+ Scara pintas sebelumnya . Singkirkan. Anda selalu dapat menugaskan kembali nanti jika Anda mau.
  10. Nikmati!

Untuk IntelliJ 11, ganti

langkah 2. dengan: Edit -> Makro -> "Mulai Perekaman Makro"
langkah 6. dengan: Edit -> Makro -> "Hentikan Perekaman Makro"

Yang lainnya tetap sama.

IntelliJ 12

8. Preferensi berisi pengaturan Keymap. Gunakan bidang input untuk memfilter konten, seperti yang ditunjukkan pada tangkapan layar.

Intellij / Preferensi / Keymap / Makro

Neil
sumber
4
Dalam IntelliJ 11: 1: Mulai perekaman makro: Edit -> Makro -> Mulai perekaman makro. 2: Ikuti instruksi di atas. 3: Hentikan perekaman makro: Edit -> Makro -> Hentikan perekaman makro. Dalam Keymap, makro disimpan ke folder Macro alih-alih Menu Utama -> folder Alat.
Markus K
3
Jika Anda senang dengan bagaimana kode diformat ulang maka pendekatan ini bekerja lebih baik jika Anda memilih untuk memformat ulang semua kode dalam proyek dan menyimpan semua. Jika tidak, saat Anda mengedit multi-file, hanya yang aktif yang diformat ulang sebelum semua yang diubah disimpan.
Drew Noakes
86

Di bawah ini adalah jawaban Neil yang diperbarui.

IntelliJ 13 Langkah:

  1. Kode -> Kode Reformat masukkan deskripsi gambar di sini
  2. Edit -> Makro -> Mulai Perekaman Makro
  3. Kode -> Kode Reformat
  4. File -> Simpan semua
  5. Edit -> Makro -> Hentikan Perekaman Makro
  6. Beri nama makro (sesuatu seperti "penyimpanan yang diformat")
  7. File -> Pengaturan -> Keymap
  8. Klik kanan pada makro. Tambahkan Pintasan Keyboard. Setel pintasan keyboard ke Control + S. masukkan deskripsi gambar di sini
  9. IntelliJ akan memberi tahu Anda tentang konflik hotkey. Pilih "hapus" untuk menghapus tugas lainnya.
pengguna3858354
sumber
Tapi ini menghilangkan tindakan "Simpan". Apa yang dilihat poster itu adalah bahwa di Eclipse kita memiliki opsi untuk memformat kode dan mengatur impor secara otomatis ketika file disimpan. Opsi ini (saya asumsikan) tidak ada dalam ide IntelliJ. Ini adalah pekerjaan yang melibatkan mengikat kunci simpan ke kunci format ulang.
Ganesh Krishnan
3
Saya tidak setuju, @GaneshKrishnan. Penanganan masalah ini tidak mengikat "kunci penyimpanan" ke "kunci format ulang". Ini mengikatnya ke makro yang "memformat ulang dan menyimpan", yang persis apa yang diminta oleh OP dan apa yang diterapkan di Eclipse, tetapi dipicu dengan kotak centang.
dbm
1
Saya pikir mungkin untuk langkah 1 maksud Anda "Kode -> Tampilkan Dialog File Reformat" untuk menetapkan default untuk Dialog File Reformat (sehingga mereka diatur dengan benar untuk langkah 3 - Kode Reformat)?
Studgeek
61

Saya mengaturnya untuk membersihkan secara otomatis pada saat check-in, yang biasanya cukup baik untuk saya. Jika ada sesuatu yang terlalu jelek, saya hanya akan menekan pintasan ( Ctrl- Alt- L, Return). Dan saya melihat mereka memiliki opsi untuk memformat kode yang disisipkan, meskipun saya belum pernah menggunakannya.

William Pietri
sumber
12
Anda juga dapat menggunakan Ctrl-Shift-F untuk memformat. Itu bekerja jauh lebih baik bagi saya, karena Ctrl-Alt-L adalah perintah layar kunci di Ubuntu.
Jason McVetta
22
Ctrl + Shift + F adalah Find in Path .
stackular
5
Bagaimana Anda mengatur sesuatu terjadi pada saat check-in?
merampok
2
Apakah itu berfungsi jika Anda tidak memeriksa menggunakan IntelliJ yaitu saya pikir itu tidak akan berhasil jika Anda memeriksa menggunakan alat baris perintah.
Bagaimana itu menjawab pertanyaan?
Ben
19

Ctrl+ Alt+ Ladalah format file (termasuk dua di bawah)

Ctrl+ Alt+ Omengoptimalkan impor

Ctrl+ Alt+I akan memperbaiki indentasi pada baris tertentu

Saya biasanya menjalankan Ctrl+ Alt+ Lbeberapa kali sebelum melakukan pekerjaan saya. Saya lebih suka melakukan pembersihan / memformat ulang pada perintah saya daripada secara otomatis.

joeslice
sumber
Ganti Ctrl dengan Cmd untuk Mac
Gerard
12
Hati-hati di Linux seperti Ctrl + Alt + Lumumnya Sesi Kunci. Anda harus memetakan kembali salah satu fungsi.
tidak dapat dibagi
18

Jika Anda memiliki Komunitas Ide InteliJ 2018.2 langkah-langkahnya adalah sebagai berikut:

  1. Di menu atas Anda mengklik: Edit> Makro> Mulai Makro Rekaman (Anda akan melihat jendela sudut kanan bawah layar Anda mengkonfirmasi bahwa makro sedang direkam)
  2. Di menu atas Anda mengklik: Kode> Kode Reformat (Anda akan melihat opsi yang dipilih di sudut kanan bawah)
  3. Di menu atas Anda mengklik: Kode> Optimalkan Impor (Anda akan melihat opsi yang dipilih di sudut kanan bawah)
  4. Di menu atas Anda klik: File> Save All
  5. Di menu atas Anda klik: Edit> Macro> Stop Macro Recording
  6. Anda menamai makro: "Format Kode, Atur Impor, Simpan"
  7. Di menu paling atas Anda buka: File> Pengaturan. Di jendela pengaturan Anda klik Keymap
  8. Di kotak pencarian di sebelah kanan Anda mencari "simpan". Anda akan menemukan Simpan Semua (Ctrl + S). Klik kanan padanya dan pilih "Hapus Ctrl + S"
  9. Hapus teks pencarian Anda dari kotak, tekan tombol Ciutkan Semua (tombol kedua dari kiri atas)
  10. Pergi ke makro, tekan panah untuk memperluas makro Anda, temukan makro Anda yang tersimpan dan klik kanan padanya. Pilih Tambahkan Pintasan Keyboard, dan tekan Ctrl + S dan oke.

Mulai ulang IDE Anda dan coba.

Saya tahu apa yang akan Anda katakan, orang-orang sebelum saya menulis hal yang sama. Tapi saya bingung menggunakan langkah-langkah di atas posting ini, dan saya ingin menulis versi bodoh untuk orang-orang yang memiliki versi terbaru dari IDE.

Allex Radu
sumber
13

Jika Anda berkembang di Flutter, ada opsi eksperimental baru pada 5/1/2018 yang memungkinkan Anda memformat kode pada save. Pengaturan

ThinkDigital
sumber
9

Saya akhirnya membatalkan Reformat code...tindakan untuk Ctrl- S, menggantikan ikatan default untuk Save All.

Awalnya mungkin terdengar gila, tetapi IntelliJ tampaknya menghemat hampir setiap tindakan: menjalankan tes, membangun proyek, bahkan ketika menutup tab editor. Saya memiliki kebiasaan memukul Ctrl- Scukup sering, jadi ini sebenarnya cukup baik untuk saya. Tentunya lebih mudah untuk mengetik daripada ikatan default untuk memformat ulang.

cwc
sumber
5

IntellIJ 14 && 15: Ketika Anda memeriksa kode di dialog Commit changes, centang kotak centang Reformat kode, lalu IntelliJ akan memformat ulang semua kode yang Anda periksa.

Sumber: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours

Alex Richard
sumber
2
Apa yang saya katakan di sini
Tushar
4
Waspadalah bahwa promosi berlebihan dari satu sumber dapat ditafsirkan oleh komunitas sebagai spam. Anda harus memposting jawaban yang baik dan relevan, dan jika satu atau dua menyebutkan kursus ini, itu bagus - tetapi jika Anda mempostingnya di setiap jawaban, itu akan ditandai dan dihapus.
ArtOfCode
2

Saya pikir ada sesuatu seperti itu di IntelliJ, tetapi saya tidak dapat menemukannya. Satu-satunya pembersihan yang terjadi pada save adalah bahwa ruang putih di ujung garis dihilangkan. Saya pikir saya harus menentukan perilaku itu pada satu titik, tetapi saya tidak melihat apa pun yang terkait pada titik ini.

PanCrit
sumber
2

Jika ini tentang Lebih cantik, cukup gunakan File Watcher:

Reference => Tools => File Watchers => klik + untuk menambahkan watcher baru => Lebih cantik

https://prettier.io/docs/en/webstorm.html#running-prettier-on-save-using-file-watcher

Julien Malige
sumber
2
Prettier bagus tetapi tidak bekerja untuk bahasa / format di luar web. Ini akan memformat js, ts, css, json, dll. Tetapi tidak berguna untuk C, C #, Java, Python, dll. - dengan pengecualian beberapa upaya awal pada plugin.
Mattia
0

Sejak versi 2020.1, Anda dapat mengaktifkan Jalankan di simpan untuk file secara langsung di Preferensi plugin Prettier :

Preferensi untuk plugin yang lebih cantik

Kim Kern
sumber