Java equivalent to #region in C#
JavaC#EclipseFoldingJava Problem Overview
I want to use regions for code folding in Eclipse; how can that be done in Java?
An example usage in C#:
#region name
//code
#endregion
Java Solutions
Solution 1 - Java
Jet Brains IDEA has this feature. You can use hotkey surround with for that (ctrl + alt + T). It's just IDEA feature.
Regions there look like this:
//region Description
Some code
//endregion
Solution 2 - Java
There's no such standard equivalent. Some IDEs - Intellij, for instance, or Eclipse - can fold depending on the code types involved (constructors, imports etc.), but there's nothing quite like #region
.
Solution 3 - Java
With Android Studio, try this:
//region VARIABLES
private String _sMyVar1;
private String _sMyVar2;
//endregion
Careful : no blank line after //region ...
And you will get:
Solution 4 - Java
No equivalent in the language... Based on IDEs...
For example in netbeans:
NetBeans/Creator supports this syntax:
// <editor-fold defaultstate="collapsed" desc="Your Fold Comment">
...
// </editor-fold>
Solution 5 - Java
Custom code folding feature can be added to eclipse using CoffeeScript code folding plugin.
This is tested to work with eclipse Luna and Juno. Here are the steps
-
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
You can download archive and find steps at this Blog also.
Solution 6 - Java
For Eclipse IDE the Coffee-Bytes plugin can do it, download link is here.
EDIT:
Solution 7 - Java
This is more of an IDE feature than a language feature. Netbeans allows you to define your own folding definitions using the following definition:
// <editor-fold defaultstate="collapsed" desc="user-description">
...any code...
// </editor-fold>
As noted in the article, this may be supported by other editors too, but there are no guarantees.
Solution 8 - Java
> the fastest way in Android Studio
(or IntelliJ IDEA
)
-
highlight the code
you want to surround it -
press
ctrl
+alt
+t
-
press
c
==> then enter the description -
enjoy
Solution 9 - Java
AndroidStudio
region
Create region
First, find (and define short cut if need) for Surround With
menu
Then, select the code, press Ctrl+Alt+Semicolon
-> choose region..endregion...
Go to region
First, find Custom Folding
short cut
Second, from anywhere in your code, press Ctrl+Alt+Period('>' on keyboard)
Solution 10 - Java
Contrary to what most are posting, this is NOT an IDE thing. It is a language thing. The #region is a C# statement.
Solution 11 - Java
I were coming from C# to java and had the same problem and the best and exact alternative for region is something like below (working in Android Studio, dont know about intelliJ):
//region [Description]
int a;
int b;
int c;
//endregion
the shortcut is like below:
1- select the code
2- press ctrl
+ alt
+ t
3- press c
and write your description
Solution 12 - Java
The best way
//region DESCRIPTION_REGION
int x = 22;
// Comments
String s = "SomeString";
//endregion;
Tip: Put ";" at the end of the "endregion"
Solution 13 - Java
If anyone is interested, in Eclipse you can collapse all your methods etc in one go, just right click when you'd normally insert a break point, click 'Folding' > 'Collapse all'. It know it's not an answer to the question, but just providing an alternative to quick code folding.
Solution 14 - Java
here is an example:
//region regionName
//code
//endregion
100% works in Android studio
Solution 15 - Java
#region
// code
#endregion
Really only gets you any benefit in the IDE. With Java, there's no set standard in IDE, so there's really no standard parallel to #region
.
Solution 16 - Java
I usually need this for commented code so I use curly brackets at start and end of that.
{
// Code
// Code
// Code
// Code
}
It could be used for code snippets but can create problems in some code because it changes the scope of variable.
Solution 17 - Java
Actually johann, the #
indicates that it's a preprocessor directive, which basically means it tells the IDE what to do.
In the case of using #region
and #endregion
in your code, it makes NO difference in the final code whether it's there or not. Can you really call it a language element if using it changes nothing?
Apart from that, java doesn't have preprocessor directives, which means the option of code folding is defined on a per-ide basis, in netbeans for example with a //< code-fold> statement
Solution 18 - Java
On Mac and Android Studio follow this sequence:
- Highlight the source code to fold
- Press Alt+Command+t
- Select
<editor-fold>
Also you can select other options:
Solution 19 - Java
vscode
I use vscode for java and it works pretty much the same as visual studio except you use comments:
//#region name
//code
//#endregion
Solution 20 - Java
Meet custom folding regions ⌥⌘T
Solution 21 - Java
In Visual Studio Code, try this:
//region Variables
// Code you need
//endregion
Solution 22 - Java
In Eclipse you can collapse the brackets wrapping variable region block. The closest is to do something like this:
public class counter_class
{
{ // Region
int variable = 0;
}
}
Solution 23 - Java
Just intall and enable Coffee-Bytes plugin (Eclipse)
Solution 24 - Java
There is some option to achieve the same, Follow the below points.
-
Open Macro explorer:
-
Create new macro:
-
Name it "OutlineRegions" (Or whatever you want)
-
Right Click on the "OutlineRegions" (Showing on Macro Explorer) select the "Edit" option and paste the following VB code into it:
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
-
Save the macro and close the editor.
-
Now let's assign shortcut to the macro. Go to Tools->Options->Environment->Keyboard and search for your macro in "show commands containing" textbox (Type: Macro into the text box, it will suggest the macros name, choose yours one.)
-
now in textbox under the "Press shortcut keys" you can enter the desired shortcut. I use Ctrl+M+N.
Use:
return
{
//Properties
//#region
Name:null,
Address:null
//#endregion
}
8) Press the saved shortcut key
See below result: