Java équivalent à #region dans c #


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

Answers


Il n'y a pas d'équivalent standard . Certains IDE (Intellij, par exemple, ou Eclipse) peuvent se plier en fonction des types de code impliqués (constructeurs, importations, etc.), mais il n'y a rien de tel que #region .




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



Avec Android Studio, essayez ceci:

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

Attention: pas de ligne vide après // région ...

Et vous obtiendrez:




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 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' ici

  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.




C'est plus une fonctionnalité IDE qu'une fonctionnalité de langue. NetBeans vous permet de définir vos propres définitions de pliage en utilisant la définition suivante:

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

Comme indiqué dans l'article, cela peut également être pris en charge par d'autres éditeurs, mais il n'y a aucune garantie.




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



Contrairement à ce que disent la plupart des gens, ce n'est pas une chose IDE. C'est une chose de langage. La #region est une instruction C #.




La meilleure façon

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

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




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.




Je venais de C # à Java et avait le même problème et la meilleure et la meilleure alternative pour la région est quelque chose comme ci-dessous (travailler dans Android Studio, ne sais pas à propos de intelliJ):

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

le raccourci est comme ci-dessous:

1- sélectionnez le code

2- appuyez sur ctrl + alt + t

3- appuyez sur c et écrivez votre description




#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 .




J'ai habituellement besoin de ceci pour le code commenté ainsi j'utilise des accolades au début et à la fin de cela.

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

Il peut être utilisé pour les extraits de code, mais peut créer des problèmes dans certains codes car il modifie la portée de la variable.




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>




Région AndroidStudio
Créer une région

Premièrement , trouvez (et définissez le raccourci si besoin) pour le menu Surround With

Ensuite , sélectionnez le code, appuyez sur Ctrl+Alt+Semicolon -> choisissez région region..endregion...

Aller à la région

Tout d'abord, trouver la coupe courte Custom Folding
Deuxièmement, à partir de n'importe où dans votre code, appuyez sur Ctrl+All+Period('>' on keyboard)




Sur Mac et Android Studio, suivez cette séquence:

  1. Mettez en surbrillance le code source à plier
  2. Appuyez sur Alt + Commande + t
  3. Sélectionnez <editor-fold>

Vous pouvez également sélectionner d'autres options:




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;

    }
}



Juste intall et activer le plugin Coffee-Bytes (Eclipse)




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: