Java équivalent à #region dans c #


Answers

Jet Brains IDEA a cette fonctionnalité. Vous pouvez utiliser hotkey surround avec pour cela (ctrl + alt + T). C'est juste une caractéristique d'IDEA.

Les régions ressemblent à ceci:

//region Description

Some code

//endregion
Question

Je veux utiliser des régions pour le repliement de code dans Eclipse ; Comment cela peut-il être fait en Java?

Un exemple d'utilisation en C# :

#region name
//code
#endregion



La fonctionnalité de pliage de code personnalisé peut être ajoutée à l'éclipse à l'aide du plugin de repli de code CoffeeScript.

Ceci est testé pour fonctionner avec Eclipse Luna et Juno. Voici les étapes

  1. Téléchargez le plugin d' here

  2. Extraire le contenu de l'archive

  3. Copier coller le contenu du dossier plugin and features dans le même dossier nommé dans le répertoire d'installation d'eclipse
  4. Redémarrez l'éclipse
  5. Naviguer dans la Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold

  6. Créez une nouvelle région comme indiqué:

  7. Essayez si le pliage fonctionne avec des commentaires préfixés avec des identifiants de début et de fin spécifiés

Vous pouvez télécharger des archives et trouver des étapes sur ce Blog également.




Il y a une certaine option pour atteindre la même chose, suivez les points ci-dessous.

1) Ouvrez l'explorateur de macros:

2) Créer une nouvelle macro:

3) Nommez-le "OutlineRegions" (Ou tout ce que vous voulez)

4) Clic droit sur le "OutlineRegions" (affichage sur Macro Explorer) sélectionnez l'option "Edit" et collez le code VB suivant:

    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) Enregistrez la macro et fermez l'éditeur.

6) Maintenant, assignons un raccourci à la macro. Allez dans Outils-> Options-> Environnement-> Clavier et recherchez votre macro dans "Afficher les commandes contenant" zone de texte (Type: Macro dans la zone de texte, il suggérera le nom des macros, choisissez le vôtre.)

7) maintenant dans la zone de texte sous les "touches de raccourci de presse" vous pouvez entrer le raccourci désiré. J'utilise Ctrl + M + N.

Utilisation:

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

8) Appuyez sur la touche de raccourci enregistrée

Voir ci-dessous le résultat:




En fait, johann, le # indique qu'il s'agit d'une directive de préprocesseur, ce qui signifie essentiellement qu'il indique à l'EDI quoi faire.

Dans le cas d'utilisation de #region et #endregion dans votre code, cela ne fait AUCUNE différence dans le code final, qu'il soit présent ou non. Pouvez-vous vraiment l'appeler un élément de langue si l'utiliser ne change rien?

En dehors de cela, java n'a pas de directives de préprocesseur, ce qui signifie que l'option de repliement de code est définie sur une base per-ide, dans netbeans par exemple avec une instruction // <code-fold>




Si quelqu'un est intéressé, dans Eclipse vous pouvez réduire toutes vos méthodes en une seule fois, juste un clic droit lorsque vous insérez normalement un point d'arrêt, cliquez sur 'Pliage'> 'Tout réduire'. Il sait que ce n'est pas une réponse à la question, mais seulement une alternative au repliement rapide du code.




le moyen le plus rapide dans Android Studio (ou IntelliJ IDEA )

  1. highlight the code vous voulez l'entourer
  2. appuyez sur ctrl + alt + t
  3. appuyez sur c ==> puis entrez la description
  4. prendre plaisir



#region

// code

#endregion

Vraiment seulement vous obtient un avantage dans l'IDE. Avec Java, il n'y a pas de standard fixe dans l'IDE, donc il n'y a vraiment pas de parallèle standard avec #region .




Pas d'équivalent dans la langue ... Basé sur IDE ...

Par exemple dans netbeans:

NetBeans / Creator prend en charge cette syntaxe:

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

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




La meilleure façon

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

Astuce: Mettez ";" à la fin de la "Endregion"




Dans Eclipse, vous pouvez réduire le bloc de région variable enveloppant les parenthèses. Le plus proche est de faire quelque chose comme ceci:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}



Links