簡體   English   中英

Java 相當於 C# 中的 #region

[英]Java equivalent to #region in C#

我想在Eclipse 中使用區域進行代碼折疊; 在 Java 中如何做到這一點?

C# 中的示例用法:

#region name
//code
#endregion

Jet Brains IDEA 有這個功能。 您可以為此使用熱鍵環繞(ctrl + alt + T)。 這只是 IDEA 功能。

那里的地區如下所示:

//region Description

Some code

//endregion

沒有這樣的標准等價物。 一些 IDE - 例如 Intellij 或 Eclipse - 可以根據所涉及的代碼類型(構造函數、導入等)折疊,但沒有什么比#region更像的了。

使用 Android Studio,試試這個:

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

小心: //region 之后沒有空行...

你會得到:

語言中沒有對等物......基於IDE......

例如在 netbeans 中:

NetBeans/Creator 支持以下語法:

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

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

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

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

  1. 這里下載插件

  2. 提取存檔內容

  3. 將 plugin 和 features 文件夾的內容復制粘貼到 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. 重新啟動 Eclipse。

  8. 試試折疊是否適用於以指定開始和結束標識符為前綴的注釋

    在此處輸入圖片說明

    在此處輸入圖片說明

您也可以在此博客中下載存檔並查找步驟。

對於 Eclipse IDE, Coffee-Bytes 插件可以做到, 下載鏈接在這里

編輯:

關於 Coffee-Bytes 的最新信息在這里

這與其說是一種語言功能,不如說是一種 IDE 功能。 Netbeans 允許您使用以下定義定義自己的折疊定義:

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

正如文章中所指出的,其他編輯器也可能支持這一點,但不能保證。

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

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

AndroidStudio區域
創建區域

首先,為Surround With菜單找到(並根據需要定義快捷方式) 在此處輸入圖片說明

然后,選擇代碼,按Ctrl+Alt+Semicolon -> 選擇region..endregion...
在此處輸入圖片說明

前往地區

一、找到Custom Folding捷徑
在此處輸入圖片說明 其次,從代碼中的任何位置,按Ctrl+Alt+Period('>' on keyboard) 在此處輸入圖片說明

與大多數發布的內容相反,這不是 IDE 的事情。 這是語言的事情。 #region 是一個 C# 語句。

我從 C# 到 java 遇到了同樣的問題,區域的最佳和確切替代方法如下(在 Android Studio 中工作,不知道 intelliJ):

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

快捷方式如下:

1-選擇代碼

2- 按ctrl + alt + t

3- 按c並寫下您的描述

最好的方法

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

提示:輸入“;” 在“endregion”的末尾

如果有人感興趣,在 Eclipse 中,您可以一次性折疊所有方法等,只需在通常插入斷點時右鍵單擊,單擊“折疊”>“全部折疊”。 它知道這不是問題的答案,而只是提供快速代碼折疊的替代方案。

這是一個例子:

//region regionName
//code
//endregion

100% 適用於 Android Studio

#region

// code

#endregion

真的只會讓您在 IDE 中受益。 對於 Java,IDE 中沒有設定標准,因此實際上沒有與#region平行的標准

我通常需要在注釋代碼中使用它,所以我在開頭和結尾使用大括號。

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

它可以用於代碼片段,但可能會在某些代碼中產生問題,因為它會更改變量的范圍。

在 Mac 和 Android Studio 上,請遵循以下順序:

  1. 突出顯示要折疊的源代碼
  2. Alt + Command + t
  3. 選擇<editor-fold>

您也可以選擇其他選項:

在此處輸入圖片說明

實際上 johann, #表示它是一個預處理器指令,這基本上意味着它告訴 IDE 要做什么。

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

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

vscode

我將 vscode 用於 Java,它的工作原理與 Visual Studio 幾乎相同,只是您使用了注釋:

//#region name

//code

//#endregion

在此處輸入圖片說明

滿足自定義折疊區域⌥⌘T

演示

在 Visual Studio Code 中,試試這個:

//region Variables
// Code you need
//endregion

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

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}

只需安裝並啟用 Coffee-Bytes 插件 (Eclipse)

有一些選擇可以實現相同的目標,請遵循以下幾點。

1) 打開宏瀏覽器:

2)創建新宏:

3)將其命名為“OutlineRegions”(或您想要的任何名稱)

4) 右鍵單擊​​“OutlineRegions”(顯示在宏資源管理器上)選擇“編輯”選項並將以下 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) 按保存的快捷鍵

見下結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM