Java เทียบเท่ากับ #region ใน C #


489

ฉันต้องการใช้ขอบเขตสำหรับการพับโค้ดในEclipse ; วิธีที่สามารถทำได้ใน Java?

ตัวอย่างการใช้งานในC # :

#region name
//code
#endregion

@MichaelLaVoie: ลบคำตอบแล้ว มีโอกาสที่มันจะถูกย้ายไปยังไซต์ SE อื่นหรือไม่
Adam Parkin

1
programmers.stackexchange.com/questions/53086/…ดูเหมือนว่าจะคล้ายกันในจิตวิญญาณ
Adam Parkin

ฉันเข้าร่วมปาร์ตี้ช้า ฉันเห็นด้วยกับ IKashef ว่ามีตัวเลือกอื่น ๆ ที่คำตอบที่เลือกในปัจจุบัน คำตอบของ Yaqub Ahmad ช่วยชีวิตฉันไว้ ฉันไม่จำเป็นต้องดาวน์โหลด Intel IDE ฉันดาวน์โหลดปลั๊กอิน CoffeeBytes ที่กล่าวถึงจากความคิดเห็นของ cking24343 ฉันใช้การกำหนดค่าของ 'null n void' และทำงานได้ดีใน Luna คุณต้องเริ่มต้นใหม่หลังจากใช้การกำหนดค่า
Maximus Decimus

3
เริ่มต้นด้วย //region [Description] และจบด้วย//endregion
Amir Ziarati

คำตอบ:


216

ไม่มีมาตรฐานเทียบเท่าดังกล่าว บาง IDEs - Intellij ตัวอย่างหรือ Eclipse - สามารถพับขึ้นอยู่กับประเภทรหัสที่เกี่ยวข้อง (ก่อสร้างนำเข้า ฯลฯ ) #regionแต่ไม่มีอะไรที่ค่อนข้างชอบ


30
จริง ๆ แล้วสามารถทำได้ หากคุณเลื่อนลงไปที่โพสต์นี้ "Yaqub Ahmad" อธิบายถึงวิธีการรับฟังก์ชั่นนี้ นอกจากนี้ที่นี่ยังมีลิงค์ ( kosiara87.blogspot.com/2011/12/… ) ที่แสดงให้คุณเห็นถึงวิธีเพิ่มลงในสภาพแวดล้อม eclipse ที่มีอยู่ของคุณ ... มีประโยชน์อย่างมาก!
cking24343

14
แน่ใจ แต่ไม่มีอะไรมาตรฐาน มันดำเนินการใน IDEs แทนที่จะมีภาษา (หรือข้อความ) สร้าง
Brian Agnew

2
@lKashef - แล้วมาตรฐานเทียบเท่าคืออะไร? ทุกอย่างที่ระบุไว้ด้านล่างเกี่ยวข้องกับ IDE เฉพาะใช่หรือไม่
Brian Agnew

4
@BrianAgnew ผู้ปฏิบัติการไม่ได้พูดถึงมาตรฐานใด ๆ แทนเขาเพียงต้องการให้มีบล็อกที่เหมือนภูมิภาคในรหัสของเขา เช่นคุณพูดว่า "แต่ไม่มีอะไรเหมือน # ภูมิภาคเลย" ใน IDEA เช่น // region .. // endregion ทำงานเหมือนกับ #region ไม่มีวิธีมาตรฐานในการทำสิ่งนี้เลยตั้งแต่แรกเพราะมันขึ้นอยู่กับ IDE หรือปลั๊กอิน นักพัฒนาที่มีพื้นหลังของไมโครซอฟท์จะเห็น MS Visual Studio เป็น "The" IDE แต่ในความเป็นจริงมันเป็นเพียงหนึ่งในตัวเลือกและ IDE อื่นอาจหรือไม่อาจใช้ฟังก์ชันดังกล่าว
Mazen Elkashef

4
@BrianAgnew ฉันเกือบยอมแพ้จนกว่าฉันจะเห็นคำตอบของคนอื่นที่ช่วยคุณได้มากกว่าคำตอบ อย่างจริงจังไม่ยากความรู้สึกที่นี่เราทุกคนอยู่ที่นี่เพื่อเรียนรู้และแบ่งปันความรู้ของเราและฉันกำลังระบุความจริงที่ว่าฉันถูกเข้าใจผิดโดยคำตอบของคุณบางทีมันอาจเป็นสิ่งที่ดีในปี 2010 แต่ไม่ใช่วันนี้ ฉันหวังว่าคุณจะได้รับคะแนนของฉัน
Mazen Elkashef

476

Jet Brains IDEA มีคุณสมบัตินี้ คุณสามารถใช้ปุ่มลัดรอบทิศทางพร้อมกับ (ctrl + alt + T) มันเป็นเพียงความคิด

ภูมิภาคมีลักษณะเช่นนี้:

//region Description

Some code

//endregion

3
ขอบคุณสำหรับสิ่งนั้น! ทำงานได้อย่างสมบูรณ์บน Android Studio
rogcg

2
คำถามจะขอทางออกอย่างชัดเจนสำหรับ Eclipse
ดันแคนโจนส์

5
@Duncan 1. ไม่มีอะไรผิดปกติที่จะแสดงให้คนเห็นว่ามีทางเลือกอื่น 2. ฉัน google สำหรับภูมิภาคภายใต้ Intellij และพบว่า
BHuelse

2
บน Linux ปุ่มลัดนั้นรันเทอร์มินัล
user1209216

1
เพิ่งลองแล้วดูเหมือนว่า IntelliJ จะสนับสนุนภูมิภาคที่ซ้อนกันเช่นกัน! น่าเสียดายที่นี่ไม่ได้มาตรฐาน
Gruber

209

ด้วย Android Studio ให้ลองสิ่งนี้:

//region VARIABLES
private String _sMyVar1;
private String _sMyVar2;
//endregion

ระวัง: ไม่มีบรรทัดว่างหลังจาก // ภูมิภาค ...

และคุณจะได้รับ:


ได้ผ่านการตอบทั้งหมดและคิดว่าตั้งแต่ Android Studio ขึ้นอยู่กับ IntelliJ แล้วนี้จะต้องได้รับการสนับสนุน สิ่งที่ดีที่จะชี้ให้เห็นว่า!
ซีรี

5
bummi ฉันลองใน 0.4.2 ด้วยบรรทัดว่างและยังใช้งานได้
serine

2
เพียงแค่ความคิดเห็น / คำแนะนำ (และไม่ตอบคำถามของคุณ) เป็นความเห็นที่แพร่หลายว่าควรหลีกเลี่ยงภูมิภาคเนื่องจากพวกเขาให้คุณซ่อนความซับซ้อนของชั้นเรียนแทนที่จะทำงานในรูปแบบการเข้ารหัสของคุณ แทนที่จะเป็นชั้นเรียนขนาดใหญ่ที่แต่ละชั้นเรียนมีหน้าที่รับผิดชอบการทำงานมากมายให้ทำงานแยกย่อยรหัสของคุณออกเป็นชั้นเรียนขนาดเล็กแทน มันจะทำให้รหัสของคุณง่ายต่อการจัดการเมื่อเวลาผ่านไป อ่านเพิ่มเติมได้ที่นี่: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi

5
@DanielSaidi โอ้สยองขวัญ! :) คนที่แต่งตัวประหลาดในบทความ " ฉันไม่เห็นอะไรเลยฉันต้องขยายส่วนเหล่านั้นด้วยตนเองเพื่อเรียกดูรหัสใด ๆ ในชั้นนี้ " ... ดังนั้นเพราะเขาขี้เกียจกดปุ่ม (woulld ขยายทั้งหมด ส่วนต่างๆในไฟล์) ต้องไม่ใช้คุณสมบัตินี้ - เป็นคุณสมบัติที่ยอดเยี่ยมมาก ตอนนี้ฉันใช้มันทีละคนซ่อนวิธีการที่ฉันตรวจสอบแล้วว่าปลอดภัยในหัวข้อที่ฉันทำอยู่มันช่วยจัดระเบียบได้จริง ๆ นาน ๆ ฉันสงสัยว่ามีบางอย่างอยู่ที่ไหน ฉันคิดว่าอยู่ที่นั่น แต่นั่นเป็นราคาเล็ก ๆ ที่ต้องจ่าย ...
ycomp

4
@DanielSaidi มันไม่ได้เกี่ยวกับการซ่อนความซับซ้อน แต่การซ่อนรหัสทางโลกเช่นการประกาศตัวแปร, getters, รหัสการเริ่มต้นและอื่น ๆ นอกจากนี้โปรดทราบว่าคุณไม่จำเป็นต้องใช้ #regions เพื่อยุบ "รหัสที่ซับซ้อน" ที่พบในฟังก์ชันและคลาส เนื้อวัวกับโปรแกรมเมอร์ที่ใช้เครื่องมือไม่ถูกต้องไม่ได้เป็นจำนวน "เครื่องมือไม่ดี"
user1567453

96

ไม่เทียบเท่าในภาษา ... ตาม IDEs ...

ตัวอย่างเช่นใน netbeans:

NetBeans / Creator รองรับไวยากรณ์นี้:

// <editor-fold defaultstate="collapsed" desc="Your Fold Comment">
...
// </editor-fold>

http://forums.java.net/jive/thread.jspa?threadID=1311


1
แม้ว่าจะไม่ใช่ภาษาเฉพาะ แต่ยังช่วยฉันใน NetBeans สิ่งที่ฉันต้องการจะทำให้สำเร็จ เพียงแค่ต้องการให้โค้ดของฉันมีประโยชน์และจัดระเบียบให้มากขึ้น
Indigo

มีทางลัดที่สามารถเติมบรรทัดนี้โดยอัตโนมัติหรือไม่?
Pini Cheyni

1
@ pini-cheyni - ui.netbeans.org/docs/ui/code_folding/cf_uispec.html มีทางลัดสำหรับพับเก็บได้ ...
Kevin LaBranche

@ JadChahine: OP ถามเกี่ยวกับ Eclipse แต่เห็นด้วยกับการทำงานนี้ได้ดีสำหรับ NetBeans ไวยากรณ์ค่อนข้างซุ่มซ่าม แต่การคัดลอกวางทำให้ง่ายพอ
AlainD

50

สำหรับ Eclipse ของ IDE ปลั๊กอินกาแฟไบต์สามารถทำมันลิงค์ดาวน์โหลดอยู่ที่นี่

แก้ไข:

ข้อมูลล่าสุดเกี่ยวกับกาแฟไบต์อยู่ที่นี่


7
+1 ขอบคุณสำหรับข้อมูลนี้ เนื่องจากเว็บไซต์เดิมของ developper ของปลั๊กอินคือไม่สามารถใช้ได้อีกต่อไปในปี 2012 - ฉันพบdesctription สั้นสำหรับการติดตั้งและการใช้งาน
k3b

ใครพบทางเลือก intelliJ?
philx_x

ลิงก์ดาวน์โหลดไม่มีอยู่อีกต่อไป
derHugo

49

คุณลักษณะการพับโค้ดแบบกำหนดเองสามารถเพิ่มใน eclipse โดยใช้ปลั๊กอินการพับโค้ด CoffeeScript

นี่คือการทดสอบการทำงานกับ eclipse Luna และ Juno นี่คือขั้นตอน

  1. ดาวน์โหลดปลั๊กอินจากที่นี่

  2. แตกเนื้อหาของไฟล์เก็บถาวร

  3. คัดลอกวางเนื้อหาของปลั๊กอินและคุณสมบัติโฟลเดอร์ไปยังโฟลเดอร์ที่มีชื่อเดียวกันภายในไดเรกทอรีการติดตั้ง eclipse
  4. รีสตาร์ท eclipse
  5. นำทาง Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold

    ป้อนคำอธิบายรูปภาพที่นี่

  6. สร้างภูมิภาคใหม่ตามที่แสดง:

    ป้อนคำอธิบายรูปภาพที่นี่

  7. รีสตาร์ท Eclipse

  8. ลองดูว่าการพับใช้งานได้กับความคิดเห็นนำหน้าด้วยตัวระบุการเริ่มต้นและสิ้นสุด

    ป้อนคำอธิบายรูปภาพที่นี่

    ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถดาวน์โหลดไฟล์เก็บถาวรและค้นหาขั้นตอนได้ที่บล็อกนี้เช่นกัน


2
ไม่ทำงานสำหรับฉันใน eclipse นีออน: คัดลอกและวางไม่ได้ทำอะไรเลย: สิ่งเดียวที่เปลี่ยนแปลงอยู่ภายใต้การตลาด >> ปลั๊กอินที่ติดตั้ง >> การปรับปรุง ฉันอัพเดตปลั๊กอิน coffeeScript แล้ว แต่ฉันไม่ได้รับตัวเลือก "Select folding to use" ภายใต้ java >> editor >> folding
Angelo Oparah

มันทำงานได้ใน Eclipse Oxygen แต่คุณต้องเริ่มต้น eclipse อีกครั้ง ไอคอนที่แสดงสำหรับฉันคือไอคอนสีแดงดังนั้นฉันจึงเปลี่ยนการกำหนดค่า, Window →การตั้งค่า→ Java →บรรณาธิการ→การพับคลิกที่แท็บขั้นสูงและเปลี่ยนชุดไอคอนไอคอนเป็นโมเดิร์น
Michieru

38

นี่เป็นคุณสมบัติ IDE มากกว่าคุณสมบัติภาษา Netbeans อนุญาตให้คุณกำหนดนิยามการพับของคุณเองโดยใช้นิยามต่อไปนี้:

// <editor-fold defaultstate="collapsed" desc="user-description">
  ...any code...
// </editor-fold>

ตามที่ระบุไว้ในบทความสิ่งนี้อาจได้รับการสนับสนุนจากบรรณาธิการอื่น ๆ เช่นกัน แต่ไม่มีการรับประกัน


อย่างน้อยในสตูดิโอ Android คุณไม่สามารถพับส่วนหนึ่งของบล็อกได้ หากสเป็คการพับเริ่มต้นด้านนอกของบล็อกและสิ้นสุดภายในบล็อกมันจะไม่เปิดใช้งาน
Prof Von Lemongargle

30

วิธีที่เร็วที่สุดในAndroid Studio(หรือIntelliJ IDEA)

  1. highlight the code คุณต้องการที่จะล้อมรอบมัน
  2. กดctrl+ alt+t
  3. กดc==> จากนั้นป้อนคำอธิบาย
  4. สนุก

// region <name> รหัสของคุณ ... // endregion มีประสิทธิภาพและเรียบง่ายกว่า! hehe; P
diegodsp

30

AndroidStudioภูมิภาค
สร้างภูมิภาค

ก่อนอื่นหา (และกำหนดทางลัดถ้าต้องการ) สำหรับSurround Withเมนู ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเลือกรหัสกดCtrl+Alt+Semicolon-> เลือกregion..endregion...
ป้อนคำอธิบายรูปภาพที่นี่

ไปที่ภูมิภาค

ก่อนอื่นหาทางCustom Foldingลัด
ป้อนคำอธิบายรูปภาพที่นี่ ที่สองจากที่ใดก็ได้ในรหัสของคุณกดCtrl+Alt+Period('>' on keyboard) ป้อนคำอธิบายรูปภาพที่นี่


20

ตรงกันข้ามกับสิ่งที่โพสต์ส่วนใหญ่นี่ไม่ใช่สิ่ง IDE มันเป็นสิ่งที่ภาษา #region เป็นคำสั่ง C #


55
สิ่งที่โพสต์มากที่สุดคือ IN JAVA นี่เป็นคุณสมบัติ IDE
WhyNotHugo

1
ฉันเห็นคำตอบที่ได้รับความนิยมสูงสุด 2 คำโดยบอกว่าไม่มีคุณสมบัติภาษาดังกล่าว -1
Mohayemin

23
ใน C # เป็น IDE บางส่วน, ภาษาบางส่วน ภาษารองรับคำสั่ง preprocessor แต่ preprocessor ไม่สนใจคำสั่งนั้น (ตัวประมวลผลแบบเดียวกับที่ละเว้นความคิดเห็น) IDE (Visual Studio) ใช้เพื่อทำการพับโค้ด
ADTC

Java ไม่ได้ระบุการพับโค้ดเฉพาะ IDE (Netbeans) เท่านั้น Netbeans มีความคิดเห็นพิเศษเพิ่มเติมเช่น "TODO" และอื่น ๆ พวกเขามีประโยชน์มากในการติดตามความคืบหน้าของคุณผ่านกระบวนการพัฒนาโครงการ SW
Pini Cheyni

17

ฉันมาจาก C # ถึง java และมีปัญหาเดียวกันและทางเลือกที่ดีที่สุดและแน่นอนสำหรับภูมิภาคคืออะไรด้านล่าง (ทำงานใน Android Studio ไม่ทราบเกี่ยวกับ intelliJ):

 //region [Description]
 int a;
 int b;
 int c;
//endregion

ทางลัดเป็นดังนี้:

1- เลือกรหัส

2- กดctrl+alt +t

3- กดcและเขียนคำอธิบายของคุณ


ใน AndroidStudio เวอร์ชัน 2.3.1 มันจะพับ ฉันไม่รู้ว่ามันเริ่มพับเมื่อไหร่
MiguelSlv

ขอบคุณ ทำงานได้อย่างสมบูรณ์ใน Android Studio 3.0 เบต้า 2 ด้วยความอยากรู้ฉันลองใช้ Eclipse Oxygen แล้วมันไม่ทำงานตามค่าเริ่มต้น แต่ไม่ได้ค้นหาเพิ่มเติม
Laurent

15

วิธีที่ดีที่สุด

//region DESCRIPTION_REGION
int x = 22;
// Comments
String s = "SomeString";
//endregion;

เคล็ดลับ: ใส่ ";" ในตอนท้ายของ "endregion"


1
คราสไม่พับโค้ด IDE อะไรที่คุณใช้?
Ohad Cohen

ใช้งานได้กับ Android Studio และ IntelliJ IDEA (ทั้งคู่ทำจากรหัสฐานข้อมูลเดียวกันโดย JetBrains)
prashu132

IDE
ย่อ

12

หากใครสนใจใน Eclipse คุณสามารถยุบวิธีการทั้งหมดของคุณได้ในคราวเดียวเพียงคลิกขวาเมื่อคุณใส่จุดพักตามปกติให้คลิก 'Folding'> 'ยุบทั้งหมด' มันรู้ว่ามันไม่ใช่คำตอบสำหรับคำถาม แต่เป็นเพียงทางเลือกในการพับโค้ดอย่างรวดเร็ว


1
คุณสามารถมี Eclipse ยุบอัตโนมัติทุกอย่างเมื่อเปิดไฟล์ซอร์สโค้ด การตั้งค่า> Java> ตัวแก้ไข> การพับ> "เริ่มต้นองค์ประกอบเหล่านี้ในขั้นต้น" (เลือกทั้งหมดในรายการ) ฉันคิดว่ามันสะดวกที่จะมุ่งเน้นเฉพาะสิ่งที่ฉันต้องการโดยเฉพาะในไฟล์ซอร์สโค้ดที่มีความยาว
ADTC

@ADTC - ขอบคุณ - หลายร้อยครั้งที่ฉันทำมันด้วยตนเองทุกครั้งที่ฉันเปิดไฟล์ - ไม่ต้องทำอีกเลย !!
ToolmakerSteve

@ToolmakerSteve ถ้าคุณสามารถทำอะไรซ้ำ ๆ ด้วยตนเองบนเครื่องคอมพิวเตอร์มีเพียงแค่มีจะต้องมีวิธีการทำงานโดยอัตโนมัติมัน = D
ADTC

8
#region

// code

#endregion

ช่วยให้คุณได้รับประโยชน์ใด ๆ ใน IDE จริงๆ ด้วย Java ไม่มีมาตรฐานในชุด IDE เพื่อให้มีจริงๆไม่มีมาตรฐาน#regionขนานไปกับ


3
ถ้ามีมาตรฐานregionแล้วเราก็มั่นใจได้ว่า java IDE จะรองรับหรือไม่
Pacerier

@Pierier ถ้าพวกเขาสนับสนุนมาตรฐานนั้นใช่ ฉันคิดว่า # ภูมิภาคเป็นคุณสมบัติ IDE มากกว่ามาตรฐาน ในทางทฤษฎีแล้ว java IDE นั้นสามารถใช้งานพฤติกรรมนี้ได้และทำให้เป็นมาตรฐานแบบพฤตินัย
El Mac

4

นี่คือตัวอย่าง:

//region regionName
//code
//endregion

100% ทำงานใน Android studio


ฉันไม่รู้ว่าทำไมคุณถึงถูกลดระดับลงมันใช้งานได้จริงใน Android Studio โดยไม่จำเป็นต้องตั้งค่าใด ๆ !
maxdelia

2

ฉันมักจะต้องการโค้ดนี้สำหรับคอมเม้นท์ดังนั้นฉันจึงใช้เครื่องหมายปีกกาตอนเริ่มต้นและตอนจบ

{
// Code
// Code
// Code
// Code
}

มันสามารถใช้สำหรับตัวอย่างโค้ด แต่สามารถสร้างปัญหาในบางรหัสเพราะมันเปลี่ยนขอบเขตของตัวแปร


1

จริงๆแล้วโจฮัน#หมายถึงว่ามันเป็นคำสั่งของโปรเซสเซอร์ล่วงหน้าซึ่งโดยทั่วไปหมายความว่ามันบอก IDE ว่าจะทำอย่างไร

ในกรณีที่ใช้งาน#regionและ#endregionในรหัสของคุณมันไม่สร้างความแตกต่างในรหัสสุดท้ายไม่ว่าจะมีหรือไม่ คุณสามารถเรียกมันว่าองค์ประกอบภาษาได้หรือไม่หากใช้โดยไม่มีการเปลี่ยนแปลง

นอกเหนือจากนั้น, จาวาไม่มีคำสั่ง preprocessor, ซึ่งหมายความว่าตัวเลือกของการพับรหัสถูกกำหนดบนพื้นฐานสำหรับแต่ละ IDE, ใน Netbeans เช่นด้วยคำสั่ง // <code-fold>


1
คุณสามารถเรียกมันว่าองค์ประกอบภาษาได้หรือไม่หากใช้โดยไม่เปลี่ยนอะไร - แล้วความคิดเห็นล่ะ?!
epeleg

2
ฉันได้ยินข้อโต้แย้งก่อนหน้านี้ว่าไม่ใช่หน้าที่ของภาษา และคำถามนี้ "คุณสามารถเรียกมันว่าองค์ประกอบภาษาได้หรือไม่หากใช้โดยไม่เปลี่ยนอะไรเลย" ไร้สาระ การปรับโครงสร้างใหม่บ่อยครั้งทำให้รหัสอ่านง่ายขึ้นสำหรับมนุษย์และไม่ทำสิ่งใด (หวังว่า) จะกระทบการทำงานของรหัส
Menefee

1

บน Mac และ Android Studio ให้ปฏิบัติตามลำดับนี้:

  1. ไฮไลต์ซอร์สโค้ดเพื่อพับ
  2. กดAlt+ Command+t
  3. เลือก <editor-fold>

นอกจากนี้คุณสามารถเลือกตัวเลือกอื่น ๆ :

ป้อนคำอธิบายรูปภาพที่นี่


-1

ใน Eclipse คุณสามารถยุบบล็อกขอบเขตการตัดตัวแปรวงเล็บ สิ่งที่ใกล้เคียงที่สุดคือการทำสิ่งนี้:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}

8
นี่มันไร้ประโยชน์ มันไม่ทำงานภายในวิธีการรวมทั้งรหัส BREAKS! (ตัวแปรส่วนตัวจะบ่นว่าพวกเขาต้องการที่จะเป็นครั้งสุดท้ายตัวแปรที่ไม่มีคำนิยามขอบเขตจะไม่สามารถเข้าถึงได้นอกวงเล็บด้านใน!)
ADTC

1
ฉันไม่ชอบวิธีนี้เพิ่มวงเล็บปีกกามากเกินไป สิ่งนี้สามารถนำไปสู่รหัสที่สับสน :(
Broken_Window

-3

เพียงติดตั้งและเปิดใช้งานปลั๊กอิน Coffee-Bytes (Eclipse)


สิ่งนี้ไม่เพียงกล่าวถึงในคำตอบก่อนหน้าแต่คุณไม่ได้ให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับมันด้วยซ้ำ
Xynariz

-12

มีตัวเลือกบางอย่างเพื่อให้บรรลุเหมือนทำตามจุดด้านล่าง

1) Open Macro explorer:

2) สร้างมาโครใหม่:

3) ตั้งชื่อมันว่า "OutlineRegions" (หรืออะไรก็ได้ที่คุณต้องการ)

4) คลิกขวาที่ "OutlineRegions" (แสดงบน Macro Explorer) เลือกตัวเลือก "แก้ไข" และวางรหัส VB ​​ต่อไปนี้ลงไป:

    Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Collections

Public Module OutlineRegions

    Sub OutlineRegions()
        Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection

        Const REGION_START As String = "//#region"
        Const REGION_END As String = "//#endregion"

        selection.SelectAll()
        Dim text As String = selection.Text
        selection.StartOfDocument(True)

        Dim startIndex As Integer
        Dim endIndex As Integer
        Dim lastIndex As Integer = 0
        Dim startRegions As Stack = New Stack()

        Do
            startIndex = text.IndexOf(REGION_START, lastIndex)
            endIndex = text.IndexOf(REGION_END, lastIndex)

            If startIndex = -1 AndAlso endIndex = -1 Then
                Exit Do
            End If

            If startIndex <> -1 AndAlso startIndex < endIndex Then
                startRegions.Push(startIndex)
                lastIndex = startIndex + 1
            Else
                ' 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) บันทึกแมโครและปิดตัวแก้ไข

6) ตอนนี้เราจะกำหนดทางลัดให้กับแมโคร ไปที่เครื่องมือ -> ตัวเลือก -> สภาพแวดล้อม -> แป้นพิมพ์และค้นหามาโครของคุณใน "คำสั่งการแสดงที่มี" กล่องข้อความ (ประเภท: มาโครลงในกล่องข้อความมันจะแนะนำชื่อมาโครให้คุณเลือก)

7) ตอนนี้ในกล่องข้อความภายใต้ "กดปุ่มทางลัด" คุณสามารถป้อนทางลัดที่ต้องการ ฉันใช้ Ctrl + M + N

ใช้:

return
{
//Properties
//#region
Name:null,
Address:null
//#endregion
}

8) กดปุ่มทางลัดที่บันทึกไว้

ดูผลลัพธ์ด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่


Macro Explorer อยู่ที่ไหน ฉันใช้ Eclipse 4.3.1 และหาไม่พบ
Mohamed El-Nakib

1
นี่ไม่ใช่จาวาใช่ไหม
Burak Karakuş

@CJBS - Re: This code seems to be for Visual Basic.NETซึ่งจะแนะนำ IDE Visual Studioคือ
Jesse Chisholm

@JesseChisholm - นั่นคือจุดของฉัน OP ต้องการ Java ไม่ใช่ VB และกำลังกำหนดเป้าหมาย Eclipse IDE ไม่ใช่ VS
CJBS

1
คำตอบ RIP ถ้าเขาใช้สตูดิโอแสดงภาพเขาอาจจะเพิ่งใช้#regionและ#endregion
PNDA
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.