相當於c#中#region的Java


Answers

噴氣大腦IDEA具有此功能。 您可以使用熱鍵環繞(ctrl + alt + T)。 這只是IDEA功能。

這裡的地區看起來像這樣:

//region Description

Some code

//endregion
Question

我想在Eclipse中使用區域進行代碼折疊; 這怎麼可以在Java中完成?

C#的示例用法:

#region name
//code
#endregion



Android Studio (或IntelliJ IDEA )中最快的方式

  1. highlight the code要包圍它highlight the code
  2. ctrl + alt + t
  3. c ==>然後輸入描述
  4. 請享用



有一些選項可以實現,請遵循以下幾點。

1)打開宏瀏覽器:

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)按保存的快捷鍵

見下面結果:




自定義代碼折疊功能可以使用CoffeeScript代碼折疊插件添加到eclipse中。

經過測試可以與月食Luna和Juno一起使用。 以下是步驟

  1. here下載插件

  2. 提取存檔的內容

  3. 將插件和功能文件夾的內容複製粘貼到eclipse安裝目錄中相同的命名文件夾中
  4. 重新啟動日食
  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. 嘗試使用帶有指定開始和結束標識符的註釋進行折疊

您可以下載存檔並在此Blog查找步驟。




在Eclipse中,您可以折疊包圍可變區塊的括號。 最接近的是做這樣的事情:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}



最好的辦法

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

提示:把“;” 在“終端地區”的末尾




如果任何人有興趣,在Eclipse中你可以一次性折疊所有的方法等,當你正常插入一個斷點時,點擊右鍵,點擊'折疊'>'全部折疊'。 它知道這不是問題的答案,而只是提供快速代碼折疊的替代方案。




#region

// code

#endregion

真的只有在IDE中獲得任何好處。 使用Java,IDE中沒有設定標準,所以沒有與#region 標準並行的標準




其實johann, #表示它是一個預處理器指令,它基本上意味著它告訴IDE該做什麼。

在代碼中使用#region#endregion的情況下,無論它是否存在,它在最終代碼中都沒有什麼區別。 你真的可以稱它為語言元素,如果使用它不會改變什麼?

除此之外,java沒有預處理器指令,這意味著代碼折疊的選項是基於每個IDE來定義的,例如在netbeans中使用// <code-fold>語句