我想在Eclipse中使用区域进行代码折叠;在Java中怎么做到呢?

c#中的一个例子:

#region name
//code
#endregion

没有这样的标准对等物。一些ide(例如Intellij或Eclipse)可以根据所涉及的代码类型(构造函数、导入等)进行折叠,但没有像#region这样的ide。


#region

// code

#endregion

只有在IDE中才有好处。在Java中,IDE中没有固定的标准,因此实际上没有与#region并行的标准。


这更像是一个IDE特性,而不是语言特性。Netbeans允许您使用以下定义定义自己的折叠定义:

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

正如文章中提到的,这可能也得到了其他编辑器的支持,但不能保证。


在语言中没有对应的…基于ide…

例如在netbeans中:

NetBeans/Creator支持以下语法:

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

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


如果有人感兴趣,在Eclipse中,你可以一次折叠你所有的方法,当你通常插入断点时,只需右键单击,点击“折叠”>“折叠所有”。它知道这不是问题的答案,但只是提供了一种快速代码折叠的替代方案。


与大多数人所发布的相反,这不是一个IDE的事情。这是语言问题。区域是一个c#语句。


实际上,#表示它是一个预处理器指令,这基本上意味着它告诉IDE要做什么。

在代码中使用#region和#endregion的情况下,它在最终代码中是否存在没有区别。如果使用它没有任何改变,你真的能称它为语言元素吗?

除此之外,java没有预处理器指令,这意味着代码折叠的选项是在每个ide的基础上定义的,例如在netbeans中使用//< code-fold>语句


对于Eclipse IDE, Coffee-Bytes插件可以做到这一点,下载链接在这里。

编辑:

关于Coffee-Bytes的最新信息在这里。


在Eclipse中,您可以折叠括号来包装可变区域块。最接近的方法是这样做:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}

Jet Brains IDEA拥有这一功能。你可以使用热键环绕(ctrl + alt + T),这只是IDEA功能。

区域是这样的:

//region Description

Some code

//endregion

有一些选项可以达到同样的效果,遵循以下几点。

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

结果如下:


自定义代码折叠功能可以使用CoffeeScript代码折叠插件添加到eclipse。

这已被测试用于月食Luna和Juno。以下是步骤

Download the plugin from here Extract the contents of archive Copy paste the contents of plugin and features folder to the same named folder inside eclipse installation directory Restart the eclipse Navigate Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold Create new region as shown: Restart the Eclipse. Try out if folding works with comments prefixed with specified starting and ending identifiers

你也可以在这个博客上下载存档和查找步骤。


使用Android Studio,试试这个:

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

注意://region后面没有空行…

你会得到:


只需安装并启用Coffee-Bytes插件(Eclipse)


最好的方法

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

提示:将";"放在"endregion"的末尾


我通常需要注释代码,所以我在开始和结束时使用花括号。

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

它可以用于代码片段,但在某些代码中会产生问题,因为它改变了变量的作用域。


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

突出显示要围绕它的代码 按CTRL + Alt + t 按c ==>输入描述 享受


我刚从c#转到java,遇到了同样的问题,最好的和准确的区域替代方案如下(在Android Studio工作,不知道intelliJ):

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

快捷方式如下:

1-选择代码

2-按下ctrl + alt + t

3-按c并写下你的描述


在Mac和Android Studio上遵循以下顺序:

突出显示要折叠的源代码 按Alt +命令+ t 选择< editor-fold >

您还可以选择其他选项:


AndroidStudio地区 创建区域

首先,找到(并定义捷径如果需要)环绕菜单

然后,选择代码,按Ctrl+Alt+分号-> choose region..endregion…

前往地区

首先,找到自定义折叠捷径 其次,在代码的任何地方,按Ctrl+Alt+句号(键盘上的'>')


这里有一个例子:

//region regionName
//code
//endregion

100%适用于Android studio


VSCODE

我使用vscode for java,它的工作原理与visual studio几乎相同,除了你使用注释:

//#region name

//code

//#endregion


满足自定义折叠区域⌘T


在Visual Studio Code中,尝试这样做:

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