我想在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>
可以使用 CoffeeScript 代码折叠插件将自定义代码折叠功能添加到 Eclipse。
经过测试,它可以与 eclipse Luna 和 Juno 一起使用。以下是步骤
从这里下载插件
提取存档内容
导航Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
如图所示创建新区域:
重新启动 Eclipse。
尝试折叠是否适用于带有指定开始和结束标识符前缀的注释
您也可以在此博客上下载存档并查找步骤。
这更像是 IDE 功能而不是语言功能。Netbeans 允许您使用以下定义定义自己的折叠定义:
// <editor-fold defaultstate="collapsed" desc="user-description">
...any code...
// </editor-fold>
如文章中所述,其他编辑也可能支持这一点,但不能保证。
Android Studio
(或IntelliJ IDEA
)中最快的方式
highlight the code
你想包围它ctrl
+ alt
+t
c
==> 然后输入说明与大多数人发布的相反,这不是 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 工作室工作
#region
// code
#endregion
真的只会让您在 IDE 中受益。使用 Java,IDE 中没有固定标准,因此实际上没有与#region
.
我通常需要这个注释代码,所以我在开始和结束时使用大括号。
{
// Code
// Code
// Code
// Code
}
它可以用于代码片段,但可能会在某些代码中产生问题,因为它会更改变量的范围。
实际上,johann#
表示它是一个预处理器指令,这基本上意味着它告诉 IDE 要做什么。
在您的代码中使用#region
and的情况下,#endregion
无论它是否存在,最终代码都没有区别。如果使用它没有任何改变,你真的可以称它为语言元素吗?
除此之外,java 没有预处理器指令,这意味着代码折叠的选项是基于每个 ide 定义的,例如在 netbeans 中使用 //<code-fold> 语句
满足自定义折叠区域 ⌥⌘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) 按保存的快捷键
见以下结果: