Java相当于C#中的#region

时间:2010-02-26 20:14:32

标签: java c# eclipse folding

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

C#中的示例用法:

#region name
//code
#endregion

23 个答案:

答案 0 :(得分:434)

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

那里的地区看起来像这样:

//region Description

Some code

//endregion

答案 1 :(得分:202)

使用Android Studio,试试这个:

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

小心: //区域后没有空行......

你会得到:

答案 2 :(得分:201)

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

答案 3 :(得分:93)

没有相应的语言......基于IDE ......

例如在netbeans中:

NetBeans / Creator支持以下语法:

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

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

答案 4 :(得分:48)

对于Eclipse IDE,Coffee-Bytes plugin可以执行此操作,download link is here

修改

Latest information about Coffee-Bytes is here

答案 5 :(得分:47)

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

这是与eclipse Luna和Juno一起测试的。以下是步骤

  1. here

  2. 下载插件
  3. 提取存档

  4. 的内容
  5. 将插件和功能文件夹的内容复制粘贴到eclipse安装目录中的同一个命名文件夹
  6. 重启日食
  7. 导航Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold

    enter image description here

  8. 如图所示创建新区域:

    enter image description here

  9. 重启Eclipse。

  10. 如果折叠适用于带有指定开头和结尾标识符前缀的注释

    ,请尝试使用

    enter image description here

    enter image description here

  11. 您也可以下载存档并找到 Blog 的步骤。

答案 6 :(得分:37)

这更像是IDE功能而非语言功能。 Netbeans允许您使用以下定义define your own folding definitions

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

正如文章所述,其他编辑也可能支持,但没有任何保证。

答案 7 :(得分:30)

  

Android Studio(或IntelliJ IDEA

中最快的方式
  1. highlight the code你要包围它
  2. ctrl + alt + t
  3. c ==&gt;然后输入说明
  4. 享受

答案 8 :(得分:27)

AndroidStudio地区
创建区域

首先,找到Surround With菜单(并在需要时定义快捷方式) enter image description here

然后,选择代码,按Ctrl+Alt+Semicolon - &gt;选择region..endregion...
enter image description here

转到区域

首先,找到Custom Folding捷径 enter image description here 其次,在代码中的任何位置,按Ctrl+Alt+Period('>' on keyboard) enter image description here

答案 9 :(得分:19)

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

答案 10 :(得分:14)

最好的方式

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

提示:放“;”在“endregion”结束时

答案 11 :(得分:13)

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

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

快捷方式如下:

1-选择代码

2-按ctrl + alt + t

3-按c并写下您的说明

答案 12 :(得分:11)

如果有人有兴趣,在Eclipse中你可以一次性折叠所有方法等,只需在你正常插入断点时右击,点击'折叠'&gt; '全部收缩'。它知道这不是问题的答案,而是提供快速代码折叠的替代方案。

答案 13 :(得分:6)

#region

// code

#endregion

真的只能在IDE中获得任何好处。使用Java,IDE中没有设置标准,因此实际上没有标准#region并行。

答案 14 :(得分:6)

这是一个示例:

➜  algo-ts git:(master) ✗ ts-node
> const expected: [number, number] = [4, 4];
undefined
> const actual: [number, number] = [4, 4];
undefined
> actual == expected
false
> actual === expected
false

100%在Android Studio中工作

答案 15 :(得分:2)

我通常需要这个用于注释代码,因此我在开头和结尾使用大括号。

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

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

答案 16 :(得分:1)

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

  1. 突出显示要折叠的源代码
  2. Alt + 命令 + t
  3. 选择<editor-fold>
  4. 您也可以选择其他选项:

    enter image description here

答案 17 :(得分:1)

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

如果在代码中使用#region#endregion,则无论是否存在,最终代码都没有区别。如果使用它什么都不改变,你真的可以把它称为语言元素吗?

除此之外,java没有预处理器指令,这意味着代码折叠的选项是基于每个ide定义的,在netbeans中,例如使用//&lt;代码倍&GT;声明

答案 18 :(得分:0)

vscode

我将vscode用于Java,除了您使用注释之外,它的工作方式与Visual Studio几乎相同:

//#region name

//code

//#endregion

enter image description here

答案 19 :(得分:0)

答案 20 :(得分:-1)

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

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}

答案 21 :(得分:-3)

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

即可

答案 22 :(得分:-11)

有一些选择可以实现相同的目标,请遵循以下几点。

1)打开Macro explorer:

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)现在让我们为宏分配快捷方式。转到工具 - &gt;选项 - &gt;环境 - &gt;键盘并在“显示命令包含”文本框中搜索您的宏(在文本框中键入:宏,它将建议宏名称,选择您的一个。)

7)现在在“按快捷键”下的文本框中,您可以输入所需的快捷方式。我使用Ctrl + M + N。

使用:

return
{
//Properties
//#region
Name:null,
Address:null
//#endregion
}

8)按保存的快捷键

见下面的结果:

enter image description here