Apakah mungkin untuk mengotomatisasi komentar untuk kelas, metode, konstruktor, dll. Di Eclipse?

4


Katakanlah jika saya membuat kelas baru di Eclipse yang disebut "MyClass", kode akan dihasilkan sebagai berikut:

public class MyClass
{

}


Dengan konvensi pribadi, saya selalu mengakhiri braket terakhir dengan komentar seperti ini:

public class MyClass
{

} // end of class MyClass



  • Jadi, apakah mungkin untuk memasukkan komentar seperti itu untuk setiap kelas, metode, konstruktor, dll.?
  • Dan mungkinkah "benih" komentar dengan nama yang relevan?

... seperti : // end of class (class name here)

Ian Campbell
sumber

Jawaban:

2

Ya, hampir, jika Anda mengabaikan pengembalian carriage.

Buka Jendela - & gt; Preferensi - & gt; Java - & gt; Gaya Kode - Templat Kode

Ini ada di Eclipse Indigo - mungkin berbeda di versi lain.

Sekarang di panel "Konfigurasi kode yang dihasilkan ..." di sebelah kanan, buka cabang "Kode" dan pilih dan edit entri "File Java Baru".

Dalam dialog Edit, di kotak teks Pola, Anda melihat yang berikut:

${filecomment}
${package_declaration}

${typecomment}
${type_declaration}

yang perlu Anda modifikasi ini:

${filecomment}
${package_declaration}

${typecomment}
${type_declaration}//end of ${type_name}

lalu simpan dan tutup. Coba buat kelas baru dan Anda akan melihatnya keluar seperti ini:

package com.nomadsoft.cortex.application;

public class AdamsClass {

}
//end of AdamsClass

Sayangnya Anda tidak dapat menghilangkan carriage return yang menempatkan komentar yang Anda inginkan pada baris berikutnya ke bawah. Hard-coded di dalam Eclipse.

Bergantung pada seberapa banyak usaha yang ingin Anda tuju, Anda memiliki pilihan tentang bagaimana mendapatkan komentar di baris yang sama dengan braket akhir:

(Opsi 1) Anda bisa mengedit file template di toples JDT:

eclipse\plugins\org.eclipse.jdt.ui_*.jar

buka templat / default-codetemplates.xml dan temukan templat "newtype" di xml, dan ganti "$ {type_declaration}" dengan

public class ${type_name} \{
\} // end of ${type_name}

(Opsi 2) tulis plugin lengkap untuk melakukan ini. Saya ingin memiliki waktu untuk melakukan itu. Mungkin Anda lakukan. Lihat masukkan deskripsi tautan di sini

Adam
sumber
Terima kasih @Adam! Ini adalah solusi yang sangat baik, sangat menarik ... Saya menggunakan Eclipse Indigo, jadi saya akan dapat bereksperimen dengan ini. Saya merasa agak takut untuk mengacaukan stoples JDT, tapi saya pasti akan melihatnya - suntingan yang Anda sarankan tampaknya minimal. Dan saya tidak punya waktu untuk menulis plugin, tetapi itu akan menjadi proyek yang luar biasa! Namun, Mechanical snail di sini menyarankan plugin yang tampaknya melakukan hal ini juga.
Ian Campbell
Adakah gagasan tentang bagaimana menghasilkan komentar yang serupa untuk akhir metode utama? (seperti dalam " // end of main method ")
Ian Campbell
1
Saya pikir mungkin ada solusi untuk itu, karena jika Anda melihat Preferensi - & gt; Java - & gt; Templat, ada "utama", tetapi dua kerangka kerja tidak ditautkan - kerangka pembuatan kode tidak menggunakan kerangka templat hotkey. Jadi jika Anda membuat metode utama Anda sebagai bagian dari pembuatan file kelas, maka tidak, Anda tidak bisa melakukannya. Tetapi Anda dapat mengedit templat hotkey dan menggunakan "main ctrl-space" untuk memasukkannya setelah Anda membuat kelas.
Adam
3

Menurut pendapat saya ini adalah praktik yang buruk, karena komentar dapat keluar dari sinkronisasi.

Namun , Anda bisa mendapatkan efek visual yang sama menggunakan Plugin Bracketeer (Lihat juga posting blog ini ). Plugin secara otomatis menampilkan komentar penutup, sesuai keinginan Anda:

Bracketeer example

tanpa menyimpannya ke file sumber. Dengan demikian komentar "hantu" selalu mencerminkan keadaan kode saat ini, memberi Anda yang terbaik dari kedua dunia.

Gaya komentar adalah dapat dikonfigurasi .

Mechanical snail
sumber
Jawaban yang bagus meskipun saya setuju itu adalah ide yang buruk. Kode Anda harus memperjelas apa yang sedang berakhir di mana melalui indentasi atau sesuatu yang serupa tanpa menggunakan ini.
soandos
Terima kasih @Mechanicalsnail! Pertanyaan saya mungkin agak menyesatkan karena saya tidak benar-benar berkomentar tanda kurung akhir segala sesuatu , tetapi secara umum hanya kelas dan metode utama. Saya setuju dengan pasti, kode itu harus jelas dan terorganisir sehingga jelas. Namun, saya kadang-kadang akan berkomentar sarang luar jika ada banyak sarang dalam terjadi. Tapi ya, senang memiliki plugin yang memberi Anda opsi. ;)
Ian Campbell