วิธีปิดใช้งานการพับภูมิภาคอย่างถาวรใน Visual Studio 2008


106

ใครรู้วิธีปิดการพับโค้ดใน visual studio 2008 บ้าง? เพื่อนร่วมงานของฉันบางคนชอบ แต่โดยส่วนตัวแล้วฉันต้องการเห็นรหัสทั้งหมดและไม่ต้องการให้โค้ดถูกพับออกจากสายตา ฉันต้องการการตั้งค่าที่หมายความว่าสำเนา Visual Studio ของฉันไม่เคยพับ#regionsหรือใช้งานได้


10
อ่านผิดโดยสิ้นเชิงว่าเป็นภูมิภาค ความผิดฉันเอง.
Jeff Yates

12
การละเมิดภูมิภาคของคุณถูกห้ามในสำนักงานของฉันแล้ว;)
Steve Cooper

คำถามที่น่ากลัวที่จะถาม เมื่อคุณเป็นผู้เชี่ยวชาญในพี. ภาษาที่คุณต้องชอบการพับโค้ดในไฟล์ของคุณ
Bitterblue

7
ใช่มันเป็นคำถามสไตล์ไม่ใช่ความเชี่ยวชาญ ฉันไม่ชอบชั้นเรียนและหน้าที่ที่ยาวมาก ๆ การพับโค้ดช่วยให้คุณจัดการโค้ดที่ยาวเกินไป ไฟล์ที่ยาวกว่าประมาณ 150-200 บรรทัดเตือนฉันว่าคลาสพร้อมสำหรับการปรับโครงสร้างใหม่แล้ว
Steve Cooper

คำตอบ:


138

แก้ไข: ฉันขอแนะนำคำตอบอื่นนี้

ไปที่เมนู Tools-> Options ไปที่ Text Editor-> C # -> Advanced ยกเลิกการเลือก "เข้าสู่โหมดการสรุปเมื่อไฟล์เปิด"

ซึ่งจะปิดการใช้งานการจัดทำโครงร่างทั้งหมดรวมถึงภูมิภาคสำหรับไฟล์รหัส c # ทั้งหมด


11
อย่างไรก็ตามการยกเลิกการเลือกตัวเลือกนี้จะปิดใช้งานการสรุปโดยสิ้นเชิง มีการตั้งค่าอื่นที่จะแสดงภูมิภาคทั้งหมดในโค้ดที่ขยายเมื่อเปิดไฟล์หรือไม่
Dirk Vollmar

ฉันคิดว่าคุณต้องใช้ Macros ในการทำเช่นนั้น แต่ฉันไม่รู้ว่าจะต้องใช้รหัสอย่างไร
Greg

1
"ฟีเจอร์" ที่น่ารำคาญที่สุด
Christian Kuetbach

ย้ายตำแหน่งตัวเลือกในVS 2013 : Text Editor -> C # -> View, Outline Statement Blocks
idbrii

ใครช่วยอธิบายได้ว่าโหมดสรุปคืออะไรกรุณา?
พันเอก Panic

56

คำตอบที่ยอมรับจะปิดการพับโค้ดทั้งหมด หากคุณต้องการปิดการใช้งานการพับ #region แต่ยุบความคิดเห็นลูปวิธีการและอื่น ๆ ฉันเขียนปลั๊กอินที่ทำสิ่งนี้ให้คุณ

ทำให้ #regions ดูดน้อยลง (ฟรี):

http://visualstudiogallery.msdn.microsoft.com/0ca60d35-1e02-43b7-bf59-ac7deb9afbca

  • ขยายขอบเขตอัตโนมัติเมื่อเปิดไฟล์
  • สามารถเลือกที่จะป้องกันไม่ให้พื้นที่ถูกยุบ (แต่ยังสามารถยุบรหัสอื่นได้)
  • ให้พื้นหลัง #region / #end เส้นเล็กลงและเบาลงเพื่อให้สังเกตเห็นได้น้อยลง (เป็นตัวเลือกด้วย)
  • ทำงานใน C # และ VB (แต่เฉพาะใน VS 2010/2012 เท่านั้นไม่รองรับสำหรับปี 2008)

ภาพหน้าจอของเครื่องมือภูมิภาค


11
ขอบคุณสำหรับสิ่งนี้ดูเหมือนว่าจะเป็นแนวทางที่ดีกว่าและอ่อนโยนกว่าแทนที่จะปิดการใช้งานการสรุปทั้งหมด
Vivelin

1
เยี่ยมมาก! ฉันดีใจที่คุณชอบมัน
NotDan

มีแผนสำหรับเวอร์ชัน VS 2013 หรือไม่? แหล่งที่มีอยู่หรือไม่ ฉันแน่ใจว่ามีคนยินดีที่จะเพิ่มการสนับสนุน 2013
Chuck Conway

4
หวัง VS 2017
Nick Painter

10

คุณยังสามารถปิดใช้งานการตัดภูมิภาคบนโค้ดที่สร้างขึ้น (เช่นเมื่อคุณใช้ทางลัด Visual Studio เพื่อใช้อินเทอร์เฟซอัตโนมัติ)

ข้อความแสดงแทน http://dusda.com/files/regionssuck.png


ฉันพบนี้ที่เครื่องมือ> ตัวเลือก> Text Editor> C #> ขั้นสูง> ใช้อินเตอร์เฟซ ยกเลิกการเลือกSurround รหัสที่สร้างด้วย #region ขอบคุณอีกครั้ง.
ขยี้

9

ตัวเลือก / ตัวแก้ไขข้อความ / C # / ขั้นสูง / เข้าสู่โหมดเค้าร่างเมื่อเปิดไฟล์




2

ฉันได้โพสต์คำตอบในชุดข้อความที่เกี่ยวข้อง แต่ไม่ซ้ำกันซึ่งอาจช่วยบางคนได้ที่นี่ ฉันให้รายละเอียดเกี่ยวกับวิธีการสร้างมาโครที่จะปิดใช้งาน # ภูมิภาคของหน่วยเดียวโดยการแสดงความคิดเห็นในคำสั่ง #region และ #endregion พร้อมเพื่อนร่วมทางเพื่อเปิดใช้งานอีกครั้ง เมื่อปิดการใช้งาน #regions ฟังก์ชัน Ctrl + M + O / Collapse to Definitions จะทำสิ่งที่ฉันต้องการ ฉันหวังว่านี่จะเป็นประโยชน์สำหรับคนข้างๆตัวเอง

ทางลัดเพื่อยุบคำจำกัดความยกเว้นภูมิภาค


1

ตัวเลือกนี้ดูเหมือนจะใช้ได้เฉพาะใน C # และไม่มีใน C / C ++ (Visual Studio 2005) หากต้องการปิดการใช้งานการจัดทำโครงร่างในไฟล์ C / C ++ คุณต้องทำเคล็ดลับโดยการเปลี่ยนสีเค้าร่างเป็นสีพื้นหลังของตัวแก้ไข ในการดำเนินการนี้ให้ไปที่ Tools> Options> Environment> Fonts and Colors> Collapsible Text> เปลี่ยนสี "Item Foreground" เป็น White (หรือสีพื้นหลังของคุณ)


นี้! นี่คือสิ่งที่ฉันกำลังมองหา! ขอขอบคุณข้อมูลเชิงลึกเกี่ยวกับ "คุณลักษณะ" ที่น่ารำคาญซึ่งฉันพยายามจะฆ่ามันมาหลายเดือนแล้ว (ถ้าไม่ใช่ปี)!
jerhewet

@jerhewet โดยใช้วิธีนี้คุณอาจประสบปัญหาหากคุณคลิกพื้นที่สีขาวนั้นโดยไม่ได้ตั้งใจและพับตามภูมิภาคจากนั้นหากต้องการคลี่ออกคุณจะต้องเล็งคลิกไปที่พื้นที่ที่มองไม่เห็น
Czarek Tomczak

0

ฉันแก้ไขปัญหาให้ฉันด้วยสภาพแวดล้อมเหตุการณ์:

  1. เริ่ม macroeditor (alt + f11)
  2. เปิด macroproject / EnvironmentEvents
  3. วางรหัสต่อไปนี้:

    Private Sub DocumentEvents_DocumentOpened(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentOpened
        If (Not Document Is Nothing) Then
            If (Document.FullName.ToLower().EndsWith(".cs")) Then
                Try
                    DTE.ExecuteCommand("Edit.ExpandAllOutlining")
                Catch ex As Exception
                End Try
            End If
        End If
    End Sub

    Private Sub WindowEvents_WindowActivated(ByVal GotFocus As EnvDTE.Window, ByVal LostFocus As EnvDTE.Window) Handles WindowEvents.WindowActivated
        If (Not GotFocus Is Nothing) Then
            If (Not GotFocus.Document Is Nothing) Then
                If (GotFocus.Document.FullName.ToLower().EndsWith(".cs")) Then
                    Try
                        DTE.ExecuteCommand("Edit.ExpandAllOutlining")
                    Catch ex As Exception
                    End Try
                End If
            End If
        End If
    End Sub

ทักทายโทบิ

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