Saya bergabung dengan pesta terlambat. Saya setuju dengan IKashef bahwa ada opsi lain yang dipilih saat ini. Jawaban Yaqub Ahmad menyelamatkan hidup saya. Saya tidak perlu mengunduh IDE Cerdas. Saya mengunduh plugin CoffeeBytes dari komentar cking24343, saya menerapkan konfigurasi 'null n void' dan bekerja dengan baik di Luna. Anda harus memulai ulang setelah menerapkan konfigurasi
Maximus Decimus
3
mulai dengan //region [Description] dan diakhiri dengan//endregion
Amir Ziarati
Jawaban:
216
Tidak ada standar yang setara. Beberapa IDE - Intellij, misalnya, atau Eclipse - dapat dilipat tergantung pada jenis kode yang terlibat (konstruktor, impor dll.), Tetapi tidak ada yang seperti itu #region.
Sebenarnya ini bisa dicapai. Jika Anda gulir ke bawah pada posting ini "Yaqub Ahmad" menjelaskan cara mendapatkan fungsionalitas ini. Juga di sini adalah tautan ( kosiara87.blogspot.com/2011/12/... ) yang menunjukkan kepada Anda cara menambahkannya ke lingkungan gerhana yang ada ... sangat berguna!
cking24343
14
Tentu. Tapi tidak ada standar . Ini dilakukan dalam IDE daripada memiliki konstruksi bahasa (atau teks)
Brian Agnew
2
@ lKashef - lalu apa yang setara dengan standar itu? Semua yang tercantum di bawah ini berhubungan dengan IDE tertentu, bukan?
Brian Agnew
4
@BrianAgnew, OP tidak menyebutkan apa-apa tentang standar, tetapi dia hanya ingin dapat memiliki blok seperti daerah dalam kodenya. Misalnya Anda mengatakan "tapi tidak ada yang seperti #region." di IDEA misalnya // wilayah .. // endregion bekerja persis seperti #region. Tidak ada cara standar untuk melakukan ini sama sekali di tempat pertama karena tergantung pada IDE itu sendiri atau sebuah plugin. Pengembang dengan latar belakang microsoft akan selalu melihat MS Visual Studio sebagai "The" IDE tetapi sebenarnya itu hanya salah satu opsi dan IDE lain mungkin atau mungkin tidak mengimplementasikan fungsionalitas tersebut.
Mazen Elkashef
4
@BrianAgnew, saya hampir menyerah sampai saya melihat jawaban orang lain yang lebih membantu daripada Anda. Sungguh-sungguh tidak ada perasaan sulit di sini, Kita semua di sini untuk belajar dan berbagi pengetahuan kita dan menyatakan fakta bahwa saya menyesatkan dengan jawaban Anda, mungkin itu bagus pada tahun 2010 tetapi tidak hari ini. Saya harap Anda mengerti maksud saya.
Mazen Elkashef
476
Jet Brains IDEA memiliki fitur ini. Anda dapat menggunakan hotkey surround untuk itu (ctrl + alt + T). Itu hanya fitur IDEA.
sedang melalui semua jawaban dan mengira karena Android Studio didasarkan pada IntelliJ maka ini harus didukung. hal yang baik untuk menunjukkannya!
serin
5
bummi, saya mencobanya di 0.4.2 dengan garis kosong dan masih berfungsi
serine
2
Hanya komentar / saran (dan sama sekali bukan jawaban untuk pertanyaan Anda). Ini adalah pendapat luas bahwa daerah harus dihindari, karena mereka membiarkan Anda menyembunyikan kompleksitas kelas alih-alih mengerjakan gaya pengkodean Anda. Alih-alih kelas besar, di mana masing-masing kelas bertanggung jawab untuk banyak fungsi, berusahalah memecah kode Anda menjadi kelas yang lebih kecil. Ini akan membuat kode Anda lebih mudah dikelola dari waktu ke waktu. Baca lebih lanjut di sini: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi
5
@DanielSaidi oh, kengeriannya! :) orang dalam artikel " Saya tidak bisa melihat apa-apa! Saya harus secara manual memperluas bagian-bagian itu untuk menelusuri salah satu kode di kelas ini. " ... jadi karena dia terlalu malas untuk menekan tombol (yang akan memperluas semua bagian dalam file), fitur tersebut tidak boleh digunakan - ini adalah fitur yang sangat luar biasa. Saat ini saya menggunakannya untuk menyembunyikan metode yang telah saya verifikasi satu per satu di kelas yang saya kerjakan, benar-benar membantu untuk tetap terorganisir. Pastikan sesekali saya bertanya-tanya di mana ada sesuatu yang Saya pikir ada di sana, tetapi itu adalah harga kecil untuk dibayar ...
ycomp
4
@DanielSaidi Ini bukan tentang menyembunyikan kompleksitas tetapi menyembunyikan kode biasa seperti deklarasi variabel, getter, kode inisialisasi dan sebagainya. Perhatikan juga bahwa Anda TIDAK meminta #region untuk menciutkan "kode kompleks" yang ditemukan di fungsi dan kelas. Daging sapi dengan programmer yang menggunakan alat secara tidak benar tidak berarti "alat itu buruk".
user1567453
96
Tidak ada padanan dalam bahasa ... Berdasarkan IDE ...
Meskipun itu bukan lipatan khusus bahasa tetapi masih membantu saya di NetBeans. Persis apa yang ingin saya capai. Hanya ingin kode saya lebih berguna dan terorganisir untuk saya.
Indigo
Apakah ada jalan pintas yang dapat secara otomatis mengisi baris ini?
@JadChahine: OP bertanya tentang Eclipse, tetapi setuju ini bekerja dengan baik untuk NetBeans. Sintaksnya sedikit janggal tetapi salin-tempel membuatnya cukup mudah.
Salin tempelkan konten plugin dan folder fitur ke folder bernama yang sama di dalam direktori instalasi gerhana
Mulai ulang gerhana
Menavigasi Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Buat wilayah baru seperti yang ditunjukkan:
Mulai ulang Eclipse.
Cobalah jika melipat berfungsi dengan komentar yang diawali dengan pengidentifikasi awal dan akhir yang ditentukan
Anda dapat mengunduh arsip dan menemukan langkah-langkah di Blog ini juga.
tidak bekerja untuk saya di gerhana neon: salin dan tempel tidak melakukan apa-apa: satu-satunya yang berubah adalah di bawah marketplace >> plugin terpasang >> pembaruan. Saya memperbarui plugin coffeeScript, tetapi saya tidak mendapatkan opsi "Pilih lipat untuk menggunakan" di bawah java >> editor >> lipat
Angelo Oparah
Ini berhasil di Eclipse Oxygen, namun Anda harus memulai kembali gerhana lagi. Ikon yang ditampilkan kepada saya adalah ikon merah sehingga saya mengubah konfigurasi, Window → Preference → Java → Editor → Lipat klik pada tab Advanced dan ubah tema Icon yang diatur ke Modern
Di studio Android, setidaknya, Anda tidak dapat melipat bagian dari blok. Jika spec lipat dimulai di luar blok, dan berakhir di dalam blok, itu tidak akan aktif.
Prof Von Lemongargle
30
cara tercepat di Android Studio(atau IntelliJ IDEA)
Yang paling banyak diposkan adalah DI JAWA ini adalah fitur IDE.
WhyNotHugo
1
Saya melihat 2 jawaban paling populer mengatakan tidak ada fitur bahasa seperti itu. -1.
Mohayemin
23
Dalam C # itu sebagian IDE, sebagian bahasa. Bahasa ini mendukung arahan preprocessor, tetapi preprocessor mengabaikannya (dengan cara yang sama prosesor mengabaikan komentar). IDE (Visual Studio) menggunakannya untuk melipat kode.
ADTC
Java tidak memiliki kode yang ditentukan hanya pelipatan IDE (Netbeans), Netbeans memiliki komentar khusus seperti "TODO" dan banyak lagi. Mereka sangat berguna untuk melacak kemajuan Anda melalui proses pengembangan proyek SW
Pini Cheyni
17
Saya datang dari C # ke java dan memiliki masalah yang sama dan alternatif terbaik dan tepat untuk wilayah adalah sesuatu seperti di bawah ini (bekerja di Android Studio, tidak tahu tentang intelliJ):
Dalam AndroidStudio versi 2.3.1 itu terlipat. Saya tidak tahu kapan mulai melipat.
MiguelSlv
Terima kasih. Berfungsi sempurna di Android Studio 3.0 beta 2. Dengan rasa ingin tahu saya mencoba di Eclipse Oxygen, itu tidak bekerja secara default tetapi tidak mencari lebih jauh.
Laurent
15
Jalan terbaik
//region DESCRIPTION_REGIONint x =22;// CommentsString s ="SomeString";//endregion;
gerhana tidak melipat kode, IDE apa yang Anda gunakan?
Ohad Cohen
Ini bekerja dengan Android Studio dan IntelliJ IDEA (keduanya dibuat dari basis kode yang sama oleh JetBrains)
prashu132
IDE adalah singkatan dari "integrated development environment"
Pini Cheyni
12
Jika ada yang tertarik, di Eclipse Anda dapat menutup semua metode Anda dll dalam sekali jalan, cukup klik kanan saat Anda biasanya memasukkan titik istirahat, klik 'Lipat'> 'Ciutkan semua'. Itu tahu itu bukan jawaban untuk pertanyaan, tetapi hanya memberikan alternatif untuk kode lipat cepat.
Anda juga dapat membuat Eclipse auto-collapse semuanya saat membuka file kode sumber. Preferensi> Java> Editor> Lipat> "Awalnya lipat elemen-elemen ini" (centang semua dalam daftar). Saya merasa nyaman untuk fokus hanya pada apa yang saya butuhkan terutama dalam file kode sumber panjang.
ADTC
@ADTC - Terima kasih - ratusan kali saya melakukannya secara manual setiap kali saya membuka file - tidak pernah lagi !!
ToolmakerSteve
@ToolmakerSteve Jika Anda bisa melakukan apa saja berulang-ulang secara manual pada komputer, ada saja memiliki menjadi cara untuk mengotomatisasi itu.= D
ADTC
8
#region// code#endregion
Benar-benar hanya memberi Anda manfaat dalam IDE. Dengan Java, tidak ada standar yang ditetapkan dalam IDE, jadi benar-benar tidak ada standar yang paralel #region.
Nah jika ada standar untuk region, maka kita dapat yakin bahwa java IDE akan mendukungnya bukan?
Pacerier
@Pacerier jika mereka mendukung standar itu, ya. Saya pikir #region lebih merupakan fitur IDE daripada standar. Secara teori, IDE java dapat mengimplementasikan perilaku ini dan menjadikannya standar de-facto
Sebenarnya johann, yang #menunjukkan bahwa itu adalah arahan preprosesor, yang pada dasarnya berarti memberitahu IDE apa yang harus dilakukan.
Dalam hal menggunakan #regiondan#endregion dalam kode Anda, itu membuat TIDAK ada perbedaan dalam kode akhir apakah itu ada atau tidak. Bisakah Anda benar-benar menyebutnya elemen bahasa jika menggunakannya tidak mengubah apa pun?
Selain itu, java tidak memiliki arahan preprocessor, yang berarti opsi kode lipat didefinisikan pada basis per-ide, dalam netbeans misalnya dengan pernyataan // <code-fold>
dapatkah Anda benar-benar menyebutnya elemen bahasa jika menggunakannya tidak mengubah apa pun? - bagaimana dengan komentar ?!
epeleg
2
Saya pernah mendengar argumen sebelumnya bahwa itu bukan fungsi dari bahasa. Dan pertanyaan ini "Bisakah Anda benar-benar menyebutnya elemen bahasa jika menggunakannya tidak mengubah apa pun?" itu konyol. Banyak waktu refactoring membuat kode lebih mudah dibaca untuk manusia dan tidak melakukan apa pun (semoga) untuk memengaruhi fungsi kode.
Ini tidak berguna. Itu tidak berfungsi di dalam suatu metode, ditambah lagi BREAKS CODE! (Variabel pribadi akan mengeluh bahwa mereka ingin menjadi final. Variabel tanpa definisi ruang lingkup tidak akan dapat diakses di luar kurung bagian dalam!)
ADTC
1
Saya tidak suka metode ini, menambahkan terlalu banyak kurung kurawal. Ini dapat menyebabkan kode membingungkan :(
Broken_Window
-3
Cukup intall dan aktifkan plugin Coffee-Bytes (Eclipse)
Tidak hanya ini disebutkan dalam jawaban sebelumnya , tetapi Anda bahkan tidak memberikan informasi berguna tentang itu.
Xynariz
-12
Ada beberapa opsi untuk mencapai hal yang sama, Ikuti poin di bawah ini.
1) Buka penjelajah Makro:
2) Buat makro baru:
3) Beri nama "OutlineRegions" (Atau apa pun yang Anda inginkan)
4) Klik kanan pada "OutlineRegions" (Menampilkan pada Macro Explorer) pilih opsi "Edit" dan rekatkan kode VB berikut ke dalamnya:
ImportsSystemImportsEnvDTEImportsEnvDTE80ImportsEnvDTE90ImportsEnvDTE90aImportsEnvDTE100ImportsSystem.DiagnosticsImportsSystem.CollectionsPublicModuleOutlineRegionsSubOutlineRegions()Dim selection AsEnvDTE.TextSelection= DTE.ActiveDocument.SelectionConst REGION_START AsString="//#region"Const REGION_END AsString="//#endregion"
selection.SelectAll()Dim text AsString= selection.Text
selection.StartOfDocument(True)Dim startIndex AsIntegerDim endIndex AsIntegerDim lastIndex AsInteger=0Dim startRegions AsStack=NewStack()Do
startIndex = text.IndexOf(REGION_START, lastIndex)
endIndex = text.IndexOf(REGION_END, lastIndex)If startIndex =-1AndAlso endIndex =-1ThenExitDoEndIfIf startIndex <>-1AndAlso startIndex < endIndex Then
startRegions.Push(startIndex)
lastIndex = startIndex +1Else' Outline region ...
selection.MoveToLineAndOffset(CalcLineNumber(text, CInt(startRegions.Pop())), 1)
selection.MoveToLineAndOffset(CalcLineNumber(text, endIndex) + 1, 1, True)
selection.OutlineSection()
lastIndex = endIndex + 1
End If
Loop
selection.StartOfDocument()
End Sub
Private Function CalcLineNumber(ByVal text As String, ByVal index As Integer)
Dim lineNumber As Integer = 1
Dim i As Integer = 0
While i < index
If text.Chars(i) = vbCr Then
lineNumber += 1
i += 1
End If
i += 1
End While
Return lineNumber
End Function
End Module
5) Simpan makro dan tutup editor.
6) Sekarang mari kita tetapkan pintasan ke makro. Pergi ke Alat-> Pilihan-> Lingkungan-> Keyboard dan cari makro Anda di "tampilkan perintah yang mengandung" kotak teks (Ketik: Makro ke dalam kotak teks, itu akan menyarankan nama makro, pilih salah satu Anda.)
7) sekarang di kotak teks di bawah "Tekan tombol pintas" Anda dapat memasukkan pintasan yang diinginkan. Saya menggunakan Ctrl + M + N.
//region [Description]
dan diakhiri dengan//endregion
Jawaban:
Tidak ada standar yang setara. Beberapa IDE - Intellij, misalnya, atau Eclipse - dapat dilipat tergantung pada jenis kode yang terlibat (konstruktor, impor dll.), Tetapi tidak ada yang seperti itu
#region
.sumber
Jet Brains IDEA memiliki fitur ini. Anda dapat menggunakan hotkey surround untuk itu (ctrl + alt + T). Itu hanya fitur IDEA.
Daerah di sana terlihat seperti ini:
sumber
Dengan Android Studio, coba ini:
Hati-hati: tidak ada garis kosong setelah // wilayah ...
Dan Anda akan mendapatkan:
sumber
Tidak ada padanan dalam bahasa ... Berdasarkan IDE ...
Misalnya di netbeans:
NetBeans / Creator mendukung sintaks ini:
http://forums.java.net/jive/thread.jspa?threadID=1311
sumber
Untuk Eclipse IDE, plugin Coffee-Bytes dapat melakukannya, tautan unduh ada di sini .
EDIT:
Informasi terbaru tentang Coffee-Bytes ada di sini .
sumber
Fitur kode lipat kustom dapat ditambahkan ke gerhana menggunakan plugin kode lipat CoffeeScript.
Ini diuji untuk bekerja dengan gerhana Luna dan Juno. Inilah langkah-langkahnya
Unduh plugin dari sini
Ekstrak isi arsip
Menavigasi
Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Buat wilayah baru seperti yang ditunjukkan:
Mulai ulang Eclipse.
Cobalah jika melipat berfungsi dengan komentar yang diawali dengan pengidentifikasi awal dan akhir yang ditentukan
Anda dapat mengunduh arsip dan menemukan langkah-langkah di Blog ini juga.
sumber
Ini lebih merupakan fitur IDE daripada fitur bahasa. Netbeans memungkinkan Anda untuk mendefinisikan definisi lipat Anda sendiri menggunakan definisi berikut:
Seperti disebutkan dalam artikel, ini mungkin didukung oleh editor lain juga, tetapi tidak ada jaminan.
sumber
highlight the code
Anda ingin mengelilinginyactrl
+alt
+t
c
==> lalu masukkan deskripsisumber
AndroidStudio
wilayahBuat wilayah
Pertama , cari (dan tentukan pintasan jika perlu) untuk
Surround With
menuKemudian , pilih kodenya, tekan
Ctrl+Alt+Semicolon
-> pilihregion..endregion...
Pergi ke wilayah
Pertama, cari
Custom Folding
jalan pintas.Kedua, dari mana saja dalam kode Anda, tekan
Ctrl+Alt+Period('>' on keyboard)
sumber
Berlawanan dengan apa yang diposkan kebanyakan orang, ini BUKAN hal IDE. Itu adalah hal bahasa. Wilayah # adalah pernyataan C #.
sumber
Saya datang dari C # ke java dan memiliki masalah yang sama dan alternatif terbaik dan tepat untuk wilayah adalah sesuatu seperti di bawah ini (bekerja di Android Studio, tidak tahu tentang intelliJ):
pintasannya seperti di bawah ini:
1- pilih kode
2- tekan
ctrl
+alt
+t
3 - tekan
c
dan tulis deskripsi Andasumber
Jalan terbaik
Kiat: Masukkan ";" di akhir "endregion"
sumber
Jika ada yang tertarik, di Eclipse Anda dapat menutup semua metode Anda dll dalam sekali jalan, cukup klik kanan saat Anda biasanya memasukkan titik istirahat, klik 'Lipat'> 'Ciutkan semua'. Itu tahu itu bukan jawaban untuk pertanyaan, tetapi hanya memberikan alternatif untuk kode lipat cepat.
sumber
Benar-benar hanya memberi Anda manfaat dalam IDE. Dengan Java, tidak ada standar yang ditetapkan dalam IDE, jadi benar-benar tidak ada standar yang paralel
#region
.sumber
region
, maka kita dapat yakin bahwa java IDE akan mendukungnya bukan?berikut ini sebuah contoh:
100% bekerja di studio Android
sumber
Saya biasanya memerlukan ini untuk kode komentar jadi saya menggunakan kurung keriting di awal dan akhir itu.
Ini dapat digunakan untuk cuplikan kode tetapi dapat membuat masalah dalam beberapa kode karena mengubah cakupan variabel.
sumber
Sebenarnya johann, yang
#
menunjukkan bahwa itu adalah arahan preprosesor, yang pada dasarnya berarti memberitahu IDE apa yang harus dilakukan.Dalam hal menggunakan
#region
dan#endregion
dalam kode Anda, itu membuat TIDAK ada perbedaan dalam kode akhir apakah itu ada atau tidak. Bisakah Anda benar-benar menyebutnya elemen bahasa jika menggunakannya tidak mengubah apa pun?Selain itu, java tidak memiliki arahan preprocessor, yang berarti opsi kode lipat didefinisikan pada basis per-ide, dalam netbeans misalnya dengan pernyataan // <code-fold>
sumber
Di Mac dan Android Studio ikuti urutan ini:
<editor-fold>
Anda juga dapat memilih opsi lain:
sumber
Di Eclipse Anda dapat menutup tanda kurung yang membungkus blok wilayah variabel. Yang paling dekat adalah melakukan sesuatu seperti ini:
sumber
Cukup intall dan aktifkan plugin Coffee-Bytes (Eclipse)
sumber
Ada beberapa opsi untuk mencapai hal yang sama, Ikuti poin di bawah ini.
1) Buka penjelajah Makro:
2) Buat makro baru:
3) Beri nama "OutlineRegions" (Atau apa pun yang Anda inginkan)
4) Klik kanan pada "OutlineRegions" (Menampilkan pada Macro Explorer) pilih opsi "Edit" dan rekatkan kode VB berikut ke dalamnya:
5) Simpan makro dan tutup editor.
6) Sekarang mari kita tetapkan pintasan ke makro. Pergi ke Alat-> Pilihan-> Lingkungan-> Keyboard dan cari makro Anda di "tampilkan perintah yang mengandung" kotak teks (Ketik: Makro ke dalam kotak teks, itu akan menyarankan nama makro, pilih salah satu Anda.)
7) sekarang di kotak teks di bawah "Tekan tombol pintas" Anda dapat memasukkan pintasan yang diinginkan. Saya menggunakan Ctrl + M + N.
Menggunakan:
8) Tekan tombol pintasan yang disimpan
Lihat hasil di bawah ini:
sumber
This code seems to be for Visual Basic.NET
yang akan menyarankan IDEVisual Studio
.#region
dan#endregion