526

我想在Eclipse中使用区域进行代码折叠;这怎么能在Java中完成?

C#中的示例用法:

#region name
//code
#endregion
4

24 回答 24

515

Jet Brains IDEA 具有此功能。您可以为此使用热键环绕(ctrl + alt + T)。这只是 IDEA 的功能。

那里的区域如下所示:

//region Description

Some code

//endregion
于 2012-10-18T11:05:42.297 回答
223

没有这样的标准等价物。一些 IDE - 例如 Intellij 或 Eclipse - 可以根据所涉及的代码类型(构造函数、导入等)折叠,但没有什么比#region.

于 2010-02-26T20:20:36.223 回答
214

使用 Android Studio,试试这个:

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

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

你会得到:

于 2013-09-11T12:16:03.267 回答
98

语言中没有等价物...基于 IDE...

例如在 netbeans 中:

NetBeans/Creator 支持这种语法:

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

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

于 2010-02-26T20:21:31.940 回答
52

可以使用 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. 尝试折叠是否适用于带有指定开始和结束标识符前缀的注释

    在此处输入图像描述

    在此处输入图像描述

您也可以在此博客上下载存档并查找步骤。

于 2013-09-10T07:27:28.560 回答
51

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

编辑:

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

于 2011-12-16T11:51:27.250 回答
38

这更像是 IDE 功能而不是语言功能。Netbeans 允许您使用以下定义定义自己的折叠定义:

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

如文章中所述,其他编辑也可能支持这一点,但不能保证。

于 2010-02-26T20:21:30.817 回答
32

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

  1. highlight the code你想包围它
  2. ctrl+ alt+t
  3. c==> 然后输入说明
  4. 请享用
于 2016-04-03T15:19:10.827 回答
30

AndroidStudio区域
创建区域

首先Surround With,为菜单 找到(并在需要时定义快捷方式)在此处输入图像描述

然后,选择代码,按Ctrl+Alt+Semicolon-> 选择region..endregion...
在此处输入图像描述

前往地区

首先,找到Custom Folding快捷
在此处输入图像描述 方式其次,从代码中的任何位置,按Ctrl+Alt+Period('>' on keyboard) 在此处输入图像描述

于 2017-11-30T03:40:08.377 回答
19

与大多数人发布的相反,这不是 IDE 的事情。这是语言的事情。#region 是一个 C# 语句。

于 2011-06-10T14:56:29.083 回答
17

我从 C# 到 java 并且遇到了同样的问题,区域的最佳和准确替代方案如下所示(在 Android Studio 中工作,不了解 intelliJ):

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

快捷方式如下:

1-选择代码

2- 按ctrl+ alt+t

3-按下c并写下您的描述

于 2017-04-04T07:04:19.247 回答
16

最好的办法

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

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

于 2014-09-24T10:31:13.157 回答
12

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

于 2011-04-15T10:33:38.453 回答
11

这是一个例子:

//region regionName
//code
//endregion

100% 在 Android 工作室工作

于 2020-02-25T12:23:33.720 回答
8
#region

// code

#endregion

真的只会让您在 IDE 中受益。使用 Java,IDE 中没有固定标准,因此实际上没有#region.

于 2010-02-26T20:20:38.563 回答
2

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

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

它可以用于代码片段,但可能会在某些代码中产生问题,因为它会更改变量的范围。

于 2014-11-08T10:50:29.940 回答
1

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

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

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

于 2011-08-24T17:52:09.037 回答
1

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

  1. 突出显示要折叠的源代码
  2. Alt+ Command+t
  3. 选择<editor-fold>

您还可以选择其他选项:

在此处输入图像描述

于 2017-11-14T18:24:26.027 回答
0

代码

我将 vscode 用于 java,它的工作原理与 Visual Studio 几乎相同,除了您使用注释:

//#region name

//code

//#endregion

在此处输入图像描述

于 2020-10-26T13:36:56.077 回答
0

满足自定义折叠区域 ⌥⌘T

演示

于 2021-06-14T12:07:07.927 回答
0

在 Visual Studio Code 中,试试这个:

//region Variables
// Code you need
//endregion
于 2021-12-31T02:18:57.000 回答
-1

在 Eclipse 中,您可以折叠包裹变量区域块的括号。最接近的是做这样的事情:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}
于 2012-08-27T15:07:49.263 回答
-3

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

于 2013-09-25T13:39:57.857 回答
-12

有一些选项可以实现相同的效果,请遵循以下几点。

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

见以下结果:

在此处输入图像描述

于 2013-01-17T11:53:46.633 回答