Ich bin spät zur Party gekommen. Ich stimme IKashef zu, dass es andere Optionen gibt, als die aktuell ausgewählte Antwort. Die Antwort von Yaqub Ahmad hat mir das Leben gerettet. Ich musste die Intellig IDE nicht herunterladen. Ich habe das erwähnte CoffeeBytes-Plugin aus dem Kommentar von cking24343 heruntergeladen, die Konfiguration von 'null n void' angewendet und in Luna gut funktioniert. Sie müssen nach dem Anwenden der Konfiguration neu starten
Maximus Decimus
3
Beginnen Sie mit //region [Description] und enden Sie mit//endregion
Amir Ziarati
Antworten:
216
Es gibt kein solches Standardäquivalent . Einige IDEs - beispielsweise Intellij oder Eclipse - können je nach den beteiligten Codetypen (Konstruktoren, Importe usw.) gefaltet werden, aber es gibt nichts Vergleichbares #region.
Eigentlich kann dies erreicht werden. Wenn Sie in diesem Beitrag nach unten scrollen, erklärt "Yaqub Ahmad", wie Sie diese Funktionalität erhalten. Hier ist auch ein Link ( kosiara87.blogspot.com/2011/12/… ), der Ihnen zeigt, wie Sie ihn zu Ihrer vorhandenen Eclipse-Umgebung hinzufügen können ... äußerst nützlich!
cking24343
14
Sicher. Aber es gibt nichts Standard . Es wird in IDEs ausgeführt, anstatt ein Sprach- (oder Text-) Konstrukt zu haben
Brian Agnew
2
@lKashef - was ist dann das Standardäquivalent ? Alles, was unten angegeben ist, bezieht sich auf eine bestimmte IDE, nicht wahr?
Brian Agnew
4
@BrianAgnew, Das OP hat nichts über Standards erwähnt, stattdessen möchte er nur regionenspezifische Blöcke in seinem Code haben können. Zum Beispiel sagten Sie "aber es gibt nichts Vergleichbares wie #region." in IDEA zum Beispiel // region .. // endregion funktioniert genau wie #region. Es gibt überhaupt keine Standardmethode, da dies von der IDE selbst oder einem Plugin abhängt. Entwickler mit Microsoft-Hintergrund sehen MS Visual Studio immer als "die" IDE, aber tatsächlich ist dies nur eine der Optionen, und eine andere IDE implementiert möglicherweise solche Funktionen oder nicht.
Mazen Elkashef
4
@BrianAgnew, ich hätte fast aufgegeben, bis ich die Antworten anderer Leute sah, die mehr halfen als deine. Ernsthaft kein schweres Gefühl hier. Wir sind alle hier, um unser Wissen zu lernen und zu teilen und erklären die Tatsache, dass ich durch Ihre Antwort irregeführt wurde. Vielleicht war es 2010 eine gute, aber heute nicht. Ich hoffe du verstehst meinen Standpunkt.
Mazen Elkashef
476
Jet Brains IDEA verfügt über diese Funktion. Sie können dafür Hotkey Surround verwenden (Strg + Alt + T). Es ist nur eine IDEA-Funktion.
Ich habe alle Antworten durchgesehen und herausgefunden, dass Android Studio auf IntelliJ basiert. Dann muss dies unterstützt werden. gut, darauf hinzuweisen!
Serine
5
bummi, ich habe es in 0.4.2 mit einer leeren Zeile versucht und funktioniert immer noch
Serine
2
Nur ein Kommentar / Rat (und keinesfalls eine Antwort auf Ihre Frage). Es ist eine weit verbreitete Meinung, dass Regionen vermieden werden sollten, da Sie damit die Komplexität von Klassen verbergen können, anstatt an Ihrem Codierungsstil zu arbeiten. Anstelle von großen Klassen, in denen jede Klasse für viele Funktionen verantwortlich ist, sollten Sie stattdessen Ihren Code in kleinere Klassen aufteilen. Dadurch wird die Verwaltung Ihres Codes im Laufe der Zeit einfacher. Lesen Sie hier mehr: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi
5
@ DanielSaidi oh, der Horror! :) der Typ im Artikel " Ich kann nichts sehen! Ich muss diese Abschnitte manuell erweitern, um den Code in dieser Klasse zu durchsuchen. " ... also, weil er zu faul ist, um eine Taste zu drücken (das würde alles erweitern Abschnitte in der Datei), die Funktion darf nicht verwendet werden - es ist eine super wunderbare Funktion. Im Moment verwende ich es, um die Methoden, die ich überprüft habe, in der Klasse, in der ich arbeite, nacheinander zu verbergen. Es hilft wirklich, organisiert zu bleiben. Ab und zu habe ich mich gefragt, wo etwas ist Ich dachte war da, aber das ist ein kleiner Preis zu zahlen ...
ycomp
4
@DanielSaidi Es geht nicht darum, Komplexität zu verbergen, sondern um alltäglichen Code wie Variablendeklarationen, Getter, Initialisierungscode usw. zu verbergen. Beachten Sie auch, dass Sie NICHT #regions benötigen, um den in Funktionen und Klassen enthaltenen "komplexen Code" zu reduzieren. Das Rindfleisch mit Programmierern, die ein Werkzeug falsch verwenden, bedeutet nicht "das Werkzeug ist schlecht".
Benutzer1567453
96
Kein Äquivalent in der Sprache ... Basierend auf IDEs ...
Obwohl es keine sprachspezifische Faltung ist, hat es mir trotzdem in NetBeans geholfen. Genau das, was ich erreichen wollte. Ich möchte nur, dass mein Code für mich praktischer und organisierter ist.
Indigo
Gibt es eine Verknüpfung, die diese Zeile automatisch ausfüllen kann?
@JadChahine: Das OP hat nach Eclipse gefragt, stimmt jedoch zu, dass dies für NetBeans gut funktioniert. Die Syntax ist etwas ungeschickt, aber das Kopieren und Einfügen macht es einfach genug.
Kopieren Sie den Inhalt des Plugins und des Funktionsordners in den gleichnamigen Ordner im Eclipse-Installationsverzeichnis
Starten Sie die Sonnenfinsternis neu
Navigieren Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Erstellen Sie eine neue Region wie gezeigt:
Starten Sie die Eclipse neu.
Probieren Sie aus, ob das Falten mit Kommentaren funktioniert, denen die angegebenen Start- und Endbezeichner vorangestellt sind
Sie können das Archiv herunterladen und Schritte auch in diesem Blog finden .
Ich habe bei Eclipse Neon nicht funktioniert: Kopieren und Einfügen hat nichts bewirkt: Das einzige, was sich geändert hat, war unter Marktplatz >> installierte Plugins >> Update. Ich habe das CoffeeScript-Plugin aktualisiert, aber ich habe unter Java >> Editor >> Falten
Angelo Oparah
Es hat in der Eclipse Oxygen funktioniert, Sie müssen die Eclipse jedoch erneut starten. Das Symbol, das mir angezeigt wurde, war ein rotes Symbol, daher habe ich die Konfiguration geändert: Fenster → Einstellungen → Java → Editor → Falten. Klicken Sie auf die Registerkarte Erweitert und ändern Sie das
Symbolthema
38
Dies ist eher eine IDE-Funktion als eine Sprachfunktion. Mit Netbeans können Sie Ihre eigenen Faltdefinitionen mithilfe der folgenden Definition definieren:
Zumindest in Android Studio können Sie einen Teil eines Blocks nicht falten. Wenn die Falzspezifikation außerhalb eines Blocks beginnt und innerhalb eines Blocks endet, wird sie nicht aktiviert.
Prof. Von Lemongargle
30
der schnellste Weg in Android Studio(oder IntelliJ IDEA)
highlight the code du willst es umgeben
Drücken Sie ctrl+ alt+t
Drücken Sie c==> und geben Sie die Beschreibung ein
Was die meisten posten, ist, dass dies in JAVA eine IDE-Funktion ist.
WhyNotHugo
1
Ich sehe die 2 beliebtesten Antworten, die besagen, dass es keine solche Sprachfunktion gibt. -1.
Mohayemin
23
In C # ist es teilweise IDE, teilweise Sprache. Die Sprache unterstützt die Präprozessoranweisungen, aber der Präprozessor ignoriert sie einfach (genauso wie der Prozessor Kommentare ignoriert). Die IDE (Visual Studio) verwendet sie zum Falten von Code.
ADTC
Java hat keinen Code angegeben, der nur die IDE (Netbeans) faltet. Netbeans hat speziellere Kommentare wie "TODO" und mehr. Sie sind sehr nützlich, um Ihren Fortschritt durch den SW-Projektentwicklungsprozess zu verfolgen
Pini Cheyni
17
Ich kam von C # nach Java und hatte das gleiche Problem und die beste und genaueste Alternative für die Region ist wie folgt (in Android Studio arbeiten, weiß nichts über IntelliJ):
In AndroidStudio Version 2.3.1 klappt es. Ich weiß nicht, wann es anfing zu klappen.
MiguelSlv
Vielen Dank. Funktioniert perfekt in Android Studio 3.0 Beta 2. Aus Neugier habe ich es in Eclipse Oxygen versucht. Es funktioniert standardmäßig nicht, hat aber nicht weiter gesucht.
Laurent
15
Der beste Weg
//region DESCRIPTION_REGIONint x =22;// CommentsString s ="SomeString";//endregion;
Eclipse falten Sie den Code nicht, welche IDE verwenden Sie?
Ohad Cohen
Es funktioniert mit Android Studio und IntelliJ IDEA (beide werden von JetBrains aus derselben Codebasis hergestellt)
prashu132
IDE steht für "integrierte Entwicklungsumgebung"
Pini Cheyni
12
Wenn jemand interessiert ist, können Sie in Eclipse alle Ihre Methoden usw. auf einmal reduzieren. Klicken Sie einfach mit der rechten Maustaste, wenn Sie normalerweise einen Haltepunkt einfügen, und klicken Sie auf "Falten"> "Alle reduzieren". Es ist keine Antwort auf die Frage, sondern lediglich eine Alternative zum schnellen Falten von Code.
Sie können Eclipse auch beim Öffnen einer Quellcodedatei alles automatisch reduzieren lassen. Einstellungen> Java> Editor> Falten> "Diese Elemente zunächst falten" (alle in der Liste überprüfen). Ich finde es bequem, mich nur auf das zu konzentrieren, was ich gerade in langen Quellcodedateien brauche.
ADTC
@ADTC - Danke - so viele hundert Male habe ich es jedes Mal manuell gemacht, wenn ich eine Datei öffne - nie wieder !!
ToolmakerSteve
@ToolmakerSteve Wenn Sie etwas wiederholend auf einem Computer manuell tun können, gibt nur hat einen Weg , um es zu automatisieren. = D
ADTC
8
#region// code#endregion
Sie erhalten wirklich nur einen Vorteil in der IDE. Mit Java gibt es keinen festgelegten Standard in der IDE, also gibt es wirklich keinen Standard parallel dazu #region.
Wenn es einen Standard gibt region, können wir sicher sein, dass Java-IDEs ihn unterstützen, nicht wahr?
Pacerier
@ Pacerier, wenn sie diesen Standard unterstützen, ja. Ich denke, #region ist eher eine IDE-Funktion als ein Standard. Theoretisch könnten die Java-IDEs dieses Verhalten implementieren und es zu einem De-facto-Standard machen
Eigentlich zeigt johann an, #dass es sich um eine Präprozessor-Direktive handelt, was im Grunde bedeutet, dass sie der IDE mitteilt, was zu tun ist.
Bei der Verwendung von #regionund #endregionin Ihrem Code spielt es für den endgültigen Code keine Rolle, ob er vorhanden ist oder nicht. Können Sie es wirklich als Sprachelement bezeichnen, wenn sich durch die Verwendung nichts ändert?
Abgesehen davon hat Java keine Präprozessor-Direktiven, was bedeutet, dass die Option der Code-Faltung pro Idee definiert wird, beispielsweise in Netbeans mit einer // <code-fold> -Anweisung
Kannst du es wirklich ein Sprachelement nennen, wenn die Verwendung nichts ändert? - wie wäre es mit Kommentaren ?!
Epeleg
2
Ich habe das Argument schon einmal gehört, dass es keine Funktion der Sprache ist. Und diese Frage "Kannst du es wirklich ein Sprachelement nennen, wenn die Verwendung nichts ändert?" ist lächerlich. Viel Zeit beim Refactoring erleichtert das Lesen des Codes für den Menschen und wirkt sich (hoffentlich) nicht auf die Funktion des Codes aus.
Menefee
1
Befolgen Sie auf Mac und Android Studio die folgende Reihenfolge:
Das ist nutzlos. Es funktioniert nicht innerhalb einer Methode und es bricht den Code! (Private Variablen werden sich beschweren, dass sie endgültig sein wollen. Variablen ohne Bereichsdefinition sind außerhalb der inneren Klammern nicht zugänglich!)
ADTC
1
Ich mag diese Methode nicht, fügt zu viele geschweifte Klammern hinzu. Dies kann zu verwirrendem Code führen :(
Broken_Window
-3
Installieren und aktivieren Sie einfach das Coffee-Bytes-Plugin (Eclipse).
Dies wurde nicht nur in einer früheren Antwort erwähnt , sondern Sie haben auch nicht einmal nützliche Informationen dazu bereitgestellt.
Xynariz
-12
Es gibt einige Optionen, um dasselbe zu erreichen. Befolgen Sie die folgenden Punkte.
1) Öffnen Sie den Makro-Explorer:
2) Neues Makro erstellen:
3) Nennen Sie es "OutlineRegions" (oder was auch immer Sie wollen)
4) Klicken Sie mit der rechten Maustaste auf "OutlineRegions" (wird im Makro-Explorer angezeigt), wählen Sie die Option "Bearbeiten" und fügen Sie den folgenden VB-Code ein:
ImportsSystemImportsEnvDTEImportsEnvDTE80ImportsEnvDTE90ImportsEnvDTE90aImportsEnvDTE100ImportsSystem.DiagnosticsImportsSystem.CollectionsPublicModuleOutlineRegionsSubOutlineRegions()Dim selection AsEnvDTE.TextSelection= DTE.ActiveDocument.SelectionConst REGION_START AsString="//#region"Const REGION_END AsString="//#endregion"
selection.SelectAll()Dim text AsString= selection.Text
selection.StartOfDocument(True)Dim startIndex AsIntegerDim endIndex AsIntegerDim lastIndex AsInteger=0Dim startRegions AsStack=NewStack()Do
startIndex = text.IndexOf(REGION_START, lastIndex)
endIndex = text.IndexOf(REGION_END, lastIndex)If startIndex =-1AndAlso endIndex =-1ThenExitDoEndIfIf startIndex <>-1AndAlso startIndex < endIndex Then
startRegions.Push(startIndex)
lastIndex = startIndex +1Else' 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) Speichern Sie das Makro und schließen Sie den Editor.
6) Weisen wir nun dem Makro eine Verknüpfung zu. Gehen Sie zu Extras-> Optionen-> Umgebung-> Tastatur und suchen Sie nach Ihrem Makro im Textfeld "Befehle mit" anzeigen (Geben Sie: Makro in das Textfeld ein, es wird der Name des Makros vorgeschlagen, wählen Sie Ihren aus.)
7) Jetzt können Sie im Textfeld unter "Tastenkombinationen drücken" die gewünschte Tastenkombination eingeben. Ich benutze Strg + M + N.
//region [Description]
und enden Sie mit//endregion
Antworten:
Es gibt kein solches Standardäquivalent . Einige IDEs - beispielsweise Intellij oder Eclipse - können je nach den beteiligten Codetypen (Konstruktoren, Importe usw.) gefaltet werden, aber es gibt nichts Vergleichbares
#region
.quelle
Jet Brains IDEA verfügt über diese Funktion. Sie können dafür Hotkey Surround verwenden (Strg + Alt + T). Es ist nur eine IDEA-Funktion.
Die Regionen dort sehen folgendermaßen aus:
quelle
Versuchen Sie mit Android Studio Folgendes:
Achtung: keine Leerzeile nach // Region ...
Und du wirst bekommen:
quelle
Kein Äquivalent in der Sprache ... Basierend auf IDEs ...
Zum Beispiel in Netbeans:
NetBeans / Creator unterstützt diese Syntax:
http://forums.java.net/jive/thread.jspa?threadID=1311
quelle
Für Eclipse IDE kann das Coffee-Bytes-Plugin dies tun. Der Download-Link ist hier .
BEARBEITEN:
Aktuelle Informationen zu Coffee-Bytes finden Sie hier .
quelle
Mit dem CoffeeScript-Code-Falt-Plugin kann Eclipse eine benutzerdefinierte Funktion zum Falten von Code hinzugefügt werden.
Dies wurde getestet, um mit Eclipse Luna und Juno zu arbeiten. Hier sind die Schritte
Laden Sie das Plugin hier herunter
Extrahieren Sie den Inhalt des Archivs
Navigieren
Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Erstellen Sie eine neue Region wie gezeigt:
Starten Sie die Eclipse neu.
Probieren Sie aus, ob das Falten mit Kommentaren funktioniert, denen die angegebenen Start- und Endbezeichner vorangestellt sind
Sie können das Archiv herunterladen und Schritte auch in diesem Blog finden .
quelle
Dies ist eher eine IDE-Funktion als eine Sprachfunktion. Mit Netbeans können Sie Ihre eigenen Faltdefinitionen mithilfe der folgenden Definition definieren:
Wie im Artikel erwähnt, wird dies möglicherweise auch von anderen Redakteuren unterstützt, es gibt jedoch keine Garantien.
quelle
highlight the code
du willst es umgebenctrl
+alt
+t
c
==> und geben Sie die Beschreibung einquelle
AndroidStudio
region Regionerstellen
Zunächst findet (und kurz geschnitten , wenn Bedarf definiert) für
Surround With
MenüDann wählen Sie den Code, drücken Sie
Ctrl+Alt+Semicolon
-> wählenregion..endregion...
Gehe in die Region
Suchen Sie zuerst die
Custom Folding
Verknüpfung.Zweitens drücken Sie an einer beliebigen Stelle in Ihrem Code
Ctrl+Alt+Period('>' on keyboard)
quelle
Im Gegensatz zu dem, was die meisten veröffentlichen, ist dies KEINE IDE-Sache. Es ist eine Sprachsache. Die #region ist eine C # -Anweisung.
quelle
Ich kam von C # nach Java und hatte das gleiche Problem und die beste und genaueste Alternative für die Region ist wie folgt (in Android Studio arbeiten, weiß nichts über IntelliJ):
Die Verknüpfung ist wie folgt:
1- Wählen Sie den Code
2- Drücken Sie
ctrl
+alt
+t
3- Drücken Sie
c
und schreiben Sie Ihre Beschreibungquelle
Der beste Weg
Tipp: Setzen Sie ";" am Ende der "Endregion"
quelle
Wenn jemand interessiert ist, können Sie in Eclipse alle Ihre Methoden usw. auf einmal reduzieren. Klicken Sie einfach mit der rechten Maustaste, wenn Sie normalerweise einen Haltepunkt einfügen, und klicken Sie auf "Falten"> "Alle reduzieren". Es ist keine Antwort auf die Frage, sondern lediglich eine Alternative zum schnellen Falten von Code.
quelle
Sie erhalten wirklich nur einen Vorteil in der IDE. Mit Java gibt es keinen festgelegten Standard in der IDE, also gibt es wirklich keinen Standard parallel dazu
#region
.quelle
region
, können wir sicher sein, dass Java-IDEs ihn unterstützen, nicht wahr?Hier ist ein Beispiel:
100% funktioniert in Android Studio
quelle
Normalerweise benötige ich dies für kommentierten Code, daher verwende ich zu Beginn und am Ende geschweifte Klammern.
Es kann für Codefragmente verwendet werden, kann jedoch in einigen Codes zu Problemen führen, da es den Gültigkeitsbereich der Variablen ändert.
quelle
Eigentlich zeigt johann an,
#
dass es sich um eine Präprozessor-Direktive handelt, was im Grunde bedeutet, dass sie der IDE mitteilt, was zu tun ist.Bei der Verwendung von
#region
und#endregion
in Ihrem Code spielt es für den endgültigen Code keine Rolle, ob er vorhanden ist oder nicht. Können Sie es wirklich als Sprachelement bezeichnen, wenn sich durch die Verwendung nichts ändert?Abgesehen davon hat Java keine Präprozessor-Direktiven, was bedeutet, dass die Option der Code-Faltung pro Idee definiert wird, beispielsweise in Netbeans mit einer // <code-fold> -Anweisung
quelle
Befolgen Sie auf Mac und Android Studio die folgende Reihenfolge:
<editor-fold>
Sie können auch andere Optionen auswählen:
quelle
In Eclipse können Sie die Klammern, die den variablen Bereichsblock umschließen, reduzieren. Am nächsten ist es, so etwas zu tun:
quelle
Installieren und aktivieren Sie einfach das Coffee-Bytes-Plugin (Eclipse).
quelle
Es gibt einige Optionen, um dasselbe zu erreichen. Befolgen Sie die folgenden Punkte.
1) Öffnen Sie den Makro-Explorer:
2) Neues Makro erstellen:
3) Nennen Sie es "OutlineRegions" (oder was auch immer Sie wollen)
4) Klicken Sie mit der rechten Maustaste auf "OutlineRegions" (wird im Makro-Explorer angezeigt), wählen Sie die Option "Bearbeiten" und fügen Sie den folgenden VB-Code ein:
5) Speichern Sie das Makro und schließen Sie den Editor.
6) Weisen wir nun dem Makro eine Verknüpfung zu. Gehen Sie zu Extras-> Optionen-> Umgebung-> Tastatur und suchen Sie nach Ihrem Makro im Textfeld "Befehle mit" anzeigen (Geben Sie: Makro in das Textfeld ein, es wird der Name des Makros vorgeschlagen, wählen Sie Ihren aus.)
7) Jetzt können Sie im Textfeld unter "Tastenkombinationen drücken" die gewünschte Tastenkombination eingeben. Ich benutze Strg + M + N.
Verwenden:
8) Drücken Sie die gespeicherte Tastenkombination
Siehe folgendes Ergebnis:
quelle
This code seems to be for Visual Basic.NET
was darauf hindeuten würde, dass die IDE istVisual Studio
.#region
und#endregion