Pangkas spasi di belakang di Xcode

103

Apakah ada cara untuk memaksa Xcode untuk memangkas spasi kosong saat saya menyimpan file?

Saya menggunakan versi 3.1.3 jika itu penting.

Alexander Gladysh
sumber

Jawaban:

22

Anda dapat membuat skrip dan mengikatnya ke pintasan keyboard:

  • Pilih Menu Skrip> Edit Skrip Pengguna ...
  • Tekan tombol + dan pilih New Shell Script
  • Beri nama seperti "Strip Trailing Spaces", dan berikan pintasan seperti ⌃⇧R.
  • Setel Input ke "Pilihan" dan Keluaran ke "Ganti Pilihan"

Kemudian masukkan script berikut:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}
Darren
sumber
9
Ah, ya, sangat sederhana ... Terima kasih. Apakah ada cara untuk mengaitkan ini dengan penyimpanan file?
Alexander Gladysh
Untuk mengerjakan seluruh file (yang mungkin ingin Anda lakukan), atur Input ke "Keseluruhan Dokumen" dan Output ke "Ganti Isi Dokumen." Namun, ini meninggalkan kursor di bagian bawah file.
SMBiggs
7
Jawaban ini sudah usang pada Xcode 4.4. Lihat jawabannya oleh Martin Stolz.
Basil Bourque
239

Mulai dari Xcode 4.4 whitespaces akan dipangkas secara otomatis secara default, kecuali baris tersebut adalah spasi semua. Anda juga dapat mengaktifkan Including whitespace-only linesuntuk memperbaiki ini, yang tidak aktif secara default.

Pergi ke Xcode > Preferences > Text Editing > While editing

Tangkapan layar preferensi Xcode

Martin Stolz
sumber
15
Pengaturan ini hanya memotong spasi kosong baris setelah kursor meninggalkan baris itu. Jadi, ini masih memungkinkan Anda untuk menyimpan file dengan satu baris spasi kosong, jika kursor berada di baris itu saat disimpan.
ma11hew28
7
Mengapa ini bukan default? Jika Anda memiliki file yang sudah ada dengan spasi kosong, cukup tandai semua, potong, simpan, tempel, simpan.
friederbluemle
Ini perlu mengganti solusi skrip hacky pada jawaban ini.
Urda
7
Menggunakan + ini ctrl-ipada semua file yang ada akan menangani spasi putih tertinggal
Kirualex
24

Saya menggunakan Plugin Google Toolbox Untuk Mac Xcode , yang menambahkan parameter "Perbaiki spasi kosong saat menyimpan" yang memangkas spasi kosong di belakang saat penyimpanan. Saya sangat merindukan itu dari emacs.

Maxime
sumber
1
Saya menggunakan plugin ini juga. Ia melakukan apa yang dikatakannya.
Nathan
Akan sempurna, sayangnya saat ini tidak berfungsi pada Xcode 4 :(
deepwell
6
Kami sekarang memiliki beberapa dukungan Xcode 4 dasar. Lihat plugin baru
dmaclach
1
Di mana saya dapat menemukan parameter "Ruang kosong yang benar saat menyimpan"?
jhasse
Saya akhirnya berhasil membuat GTM bekerja pada Xcode 4.3.2, tetapi instruksi instalasi dari wiki GTM tampaknya tidak valid. Alih-alih menempatkan .xcplugin di ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(sesuai instruksi Google) saya harus memasukkannya /Applications/Xcode.app/Contents/PlugInsdan memulai ulang Xcode.
Kristofer Sommestad
3

Untuk Xcode 8, saya menginstal plug-in swimat Xcode, untuk memformat kode Swift, yang menghapus semua spasi tambahan dan baris khusus spasi.

Metode Instalasi

  1. Instal melalui homebrew-cask:

    brew cask install swimat
  2. Unduh Aplikasi secara langsung:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Kloning extensioncabang dan arsipkan ke Mac App.

Pemakaian

Setelah terinstal, Anda dapat menjalankan Swimat di Xcode melalui Editor -> Swimat -> Format.

moollaza
sumber
alat ini tidak menghapus baris kosong.
Mehdico
1

Ini tidak mungkin dilakukan di Xcode 3.2

Edit:

Saya menjawab pertanyaan ini begitu singkat karena tidak ada cara untuk melakukan ini dengan benar .

Tentu saja, karena ini perangkat lunak, Anda dapat melakukan apa saja: Mulai dengan peretasan Input Manager atau cara lain injeksi kode ke intersepsi keyboard di seluruh sistem, Anda dapat mengubah sistem lokal Anda untuk melakukan apa saja kapan saja. Anda dapat mengatur tindakan folder Applescript (arrgh) atau menggunakan demon peluncuran dan fasilitas FSEvents untuk mengawasi file kode sumber Anda.

Anda juga dapat menambahkan beberapa skrip ke Xcode (skrip pengguna di menu, fase skrip dalam target, Tindakan kustom dalam penyelenggara, bahkan ada kemungkinan skrip startup yang sangat tidak diketahui), tetapi semua solusi ini cacat, karena melibatkan pengguna atau pengaturan khusus pada mesin pengguna.

Saya tidak mengetahui solusi yang hanya berfungsi setelah memeriksa proyek dari SCM. Saya percaya bahwa ada kebutuhan untuk skrip penyesuaian ini dan yang serupa, jadi saya mengajukan bug (radar 7203835, "Fitur: skrip pengguna lebih banyak terpicu di alur kerja Xcode"). Saya belum menerima umpan balik apa pun.

Berikut teks lengkap dari entri radar:

Akan berguna jika memiliki lebih banyak tempat untuk menjalankan skrip di Xcode.

Contoh:

  1. Skrip pra-build Skrip
    pra-build dapat digunakan untuk membuat prasyarat seperti file * .xcconfig atau header config.h. Ini tidak mungkin dilakukan dengan "Run Script Build phases", karena pelacakan ketergantungan terjadi sebelum fase build apa pun dipicu.

  2. Memposting skrip build
    Mirip dengan di atas, tetapi berjalan setelah build selesai (termasuk penandatanganan kode, dll.). Berguna untuk pengemasan tambahan, pemeriksaan validitas, dll.

  3. Pra / Pasca skrip SCM Commit.
    Untuk memeriksa integritas proyek.

  4. Pra / Posting File Simpan Script.
    Untuk memeriksa / mengubah file sebelum menyimpan. Misalnya menjalankan cody beautifier

  5. Tindakan proyek kustom.
    Saya menyadari kemampuan penyelenggara untuk menentukan tindakan sewenang-wenang. Tapi ini adalah fitur per pengguna (bukan bagian dari proyek). Saya ingin mendefinisikan tindakan seperti build atau clean yang muncul di menu build dan yang merupakan bagian dari sebuah proyek.

Nikolai Ruhe
sumber
Diedit untuk menjawab mengapa solusi tidak memuaskan dalam kasus ini
Nikolai Ruhe
2
Terima kasih. Meskipun saya lebih suka melakukannya dengan cara yang benar, saya akan menerima peretasan yang tidak terlalu mengganggu. Ruang putih ekstra itu benar-benar mengganggu.
Alexander Gladysh
0

Cara terbaik dan mudah tanpa menggunakan skrip, peretasan, dan banyak lagi. Buka saja Temukan Dan Ganti Cara terbaik dan mudah tanpa menggunakan skrip, peretasan, dan banyak lagi. Cukup pergi ke Find And Replace dan tekan "alt / option + spasi" dan tekan tombol "spasi" di bilah ganti dan kemudian klik ganti semua. Ini akan menggantikan spasi putih dengan spasi normal dan peringatan / kesalahan akan hilang !!

H2zee
sumber
1
Apakah ini hanya menghapus tertinggal ruang seperti yang diminta dalam pertanyaan?
Blastfurnace