相当于c#中#region的Java


Answers

喷气大脑IDEA具有此功能。 您可以使用热键环绕(ctrl + alt + T)。 这只是IDEA功能。

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

//region Description

Some code

//endregion
Question

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

C#的示例用法:

#region name
//code
#endregion



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




#region

// code

#endregion

真的只有在IDE中获得任何好处。 使用Java,在IDE中没有设定标准,所以没有标准的并行到#region




自定义代码折叠功能可以使用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查找步骤。




最好的办法

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

提示:把“;” 在“终端地区”的末尾




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

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}



有一些选项可以实现,请遵循以下几点。

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

见下面结果:




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

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

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




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

  1. highlight the code要包围它highlight the code
  2. ctrl + alt + t
  3. c ==>然后输入描述
  4. 请享用






Links