Me uní a la fiesta tarde. Estoy de acuerdo con IKashef en que hay otras opciones que la respuesta seleccionada actual. La respuesta de Yaqub Ahmad me salvó la vida. No necesitaba descargar el IDE de Intellig. Descargué el complemento CoffeeBytes mencionado del comentario de cking24343, apliqué la configuración de 'null n void' y funcioné bien en Luna. Debe reiniciar después de aplicar la configuración
Maximus Decimus
3
comenzar con //region [Description] y al final con//endregion
Amir Ziarati
Respuestas:
216
No existe tal equivalente estándar . Algunos IDEs (Intellij, por ejemplo, o Eclipse) pueden plegarse dependiendo de los tipos de código involucrados (constructores, importaciones, etc.), pero no hay nada parecido #region.
En realidad esto se puede lograr. Si se desplaza hacia abajo en esta publicación, "Yaqub Ahmad" explica cómo obtener esta funcionalidad. También aquí hay un enlace ( kosiara87.blogspot.com/2011/12/… ) que le muestra cómo agregarlo a su entorno de eclipse existente ... ¡extremadamente útil!
cking24343
14
Por supuesto. Pero no hay nada estándar . Se realiza en IDEs en lugar de tener una construcción de lenguaje (o texto)
Brian Agnew
2
@lKashef: entonces, ¿cuál es el equivalente estándar ? Todo lo que se menciona a continuación se relaciona con un IDE en particular, ¿no es así?
Brian Agnew
44
@BrianAgnew, El OP no mencionó nada acerca de los estándares, sino que solo desea poder tener bloques similares a regiones en su código. Por ejemplo, dijiste "pero no hay nada como #region". en IDEA por ejemplo // region .. // endregion funciona exactamente como #region. No hay una forma estándar de hacer esto en primer lugar, ya que depende del IDE en sí o de un complemento. Los desarrolladores con fondos de Microsoft siempre verán a MS Visual Studio como "El" IDE, pero de hecho es solo una de las opciones y otro IDE podría o no implementar tal funcionalidad.
Mazen Elkashef
44
@BrianAgnew, casi me di por vencido hasta que vi las respuestas de otras personas que ayudaron más que la tuya. En serio, no hay resentimiento aquí, estamos todos aquí para aprender y compartir nuestro conocimiento y estoy afirmando el hecho de que me confundí con su respuesta, tal vez fue buena en 2010, pero no hoy. Espero que entiendas mi punto.
Mazen Elkashef
476
Jet Brains IDEA tiene esta característica. Puede usar la tecla de acceso rápido surround para eso (ctrl + alt + T). Es solo la función IDEA.
estaba revisando todas las respuestas y pensé que ya que Android Studio se basa en IntelliJ, entonces esto debe ser compatible. ¡Qué bueno señalarlo!
Serine
55
bummi, lo probé en 0.4.2 con una línea en blanco y aún funciona
Serine
2
Solo un comentario / consejo (y de ninguna manera una respuesta a su pregunta). Es una opinión generalizada que las regiones deben evitarse, ya que le permiten ocultar la complejidad de la clase en lugar de trabajar en su estilo de codificación. En lugar de grandes clases, donde cada clase es responsable de una gran cantidad de funcionalidades, trabaje para dividir su código en clases más pequeñas. Hará que su código sea más fácil de administrar con el tiempo. Lea más aquí: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi
55
@DanielSaidi ¡Oh, qué horror! :) el chico en el artículo "¡ No puedo ver nada! Tengo que expandir manualmente esas secciones para examinar cualquiera de los códigos de esta clase " ... así que porque es demasiado vago para presionar una tecla (eso expandiría todo secciones en el archivo), la característica no se debe utilizar, es una característica súper maravillosa. En este momento lo estoy usando para ocultar uno por uno, los métodos que he verificado son seguros para subprocesos en la clase en la que estoy trabajando, realmente ayuda a mantenerme organizado. De vez en cuando me pregunto dónde está algo Pensé que estaba allí, pero ese es un pequeño precio a pagar ...
ycomp
44
@DanielSaidi No se trata de ocultar la complejidad sino de ocultar el código mundano, como declaraciones de variables, captadores, código de inicialización, etc. También tenga en cuenta que NO requiere #regiones para colapsar el "código complejo" que se encuentra en las funciones y clases. El problema con los programadores que usan una herramienta incorrectamente no equivale a "la herramienta es mala".
user1567453
96
No hay equivalente en el idioma ... Basado en IDEs ...
Aunque no es un plegado específico del idioma, me ayudó en NetBeans. Exactamente lo que quería lograr. Solo quiero que mi código sea más útil y organizado para mí.
Indigo
¿Hay algún atajo que pueda llenar automáticamente esta línea?
@JadChahine: El OP preguntó sobre Eclipse, pero está de acuerdo en que esto funciona bien para NetBeans. La sintaxis es un poco torpe, pero copiar y pegar hace que sea bastante fácil.
Copie y pegue el contenido del plugin y la carpeta de características en la misma carpeta con nombre dentro del directorio de instalación de eclipse
Reinicia el eclipse
Navegar Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Cree una nueva región como se muestra:
Reinicia el Eclipse.
Pruebe si el plegado funciona con comentarios prefijados con identificadores iniciales y finales especificados
Puede descargar el archivo y encontrar pasos en este Blog también.
no funciona para mí en eclipse neon: copiar y pegar no hizo nada: lo único que cambió fue en el mercado >> complementos instalados >> actualizar. Actualicé el plugin coffeeScript, pero no obtuve la opción "Seleccionar plegado para usar" en java >> editor >> plegado
Angelo Oparah
Funcionó en el Eclipse Oxygen, sin embargo, debe reiniciar el eclipse nuevamente. El ícono que se me mostró era un ícono rojo, así que cambié la configuración, Ventana → Preferencia → Java → Editor → Plegable, haga clic en la pestaña Avanzado y cambie el tema del ícono a Moderno
En Android Studio, al menos, no puedes doblar parte de un bloque. Si la especificación de pliegue comienza fuera de un bloque y termina dentro de un bloque, no se activará.
Prof. Von Lemongargle
30
la forma más rápida en Android Studio(o IntelliJ IDEA)
Lo que más publican es que EN JAVA esta es una característica IDE.
WhyNotHugo
1
Veo las 2 respuestas más populares que dicen que no existe tal función de idioma. -1.
Mohayemin
23
En C # es en parte IDE, en parte lenguaje. El lenguaje admite las directivas del preprocesador, pero el preprocesador simplemente las ignora (del mismo modo que el procesador ignora los comentarios). El IDE (Visual Studio) los usa para plegar el código.
ADTC
Java no tiene un código específico que solo dobla el IDE (Netbeans), Netbeans tiene comentarios más especiales como "TODO" y más. Son muy útiles para seguir su progreso a través del proceso de desarrollo de proyectos de SW
Pini Cheyni
17
Venía de C # a Java y tenía el mismo problema y la mejor y exacta alternativa para la región es algo como a continuación (trabajando en Android Studio, no sé sobre intelliJ):
En AndroidStudio versión 2.3.1 se pliega. No sé cuándo comenzó a doblarse.
MiguelSlv
Gracias. Funciona perfectamente en Android Studio 3.0 beta 2. Por curiosidad que probé en Eclipse Oxygen, no funciona de manera predeterminada pero no buscó más.
Laurent
15
La mejor manera
//region DESCRIPTION_REGIONint x =22;// CommentsString s ="SomeString";//endregion;
eclipse no dobla el código, ¿qué IDE estás usando?
Ohad Cohen
Funciona con Android Studio e IntelliJ IDEA (ambos están hechos de la misma base de código por JetBrains)
prashu132
IDE significa "entorno de desarrollo integrado"
Pini Cheyni
12
Si alguien está interesado, en Eclipse puede contraer todos sus métodos, etc. de una sola vez, simplemente haga clic derecho cuando normalmente inserte un punto de ruptura, haga clic en 'Plegar'> 'Contraer todo'. Sabe que no es una respuesta a la pregunta, sino que simplemente proporciona una alternativa al plegado rápido de código.
También puede hacer que Eclipse contraiga automáticamente todo al abrir un archivo de código fuente. Preferencias> Java> Editor> Plegado> "Inicialmente plegar estos elementos" (marque todo en la lista). Me parece conveniente centrarme solo en lo que necesito, especialmente en archivos de código fuente largos.
ADTC
@ADTC - Gracias, tantas cientos de veces lo he hecho manualmente cada vez que abro un archivo, ¡nunca más!
ToolmakerSteve
@ToolmakerSteve Si puede hacer algo repetitivo manualmente en una computadora, solo tiene que haber una manera de automatizarlo. = D
ADTC
8
#region// code#endregion
Realmente solo obtienes algún beneficio en el IDE. Con Java, no hay un estándar establecido en IDE, por lo que realmente no hay un estándar paralelo a #region.
Bueno, si hay un estándar para region, entonces podemos estar seguros de que los IDE de Java lo admitirán, ¿no?
Pacerier
@Pacerier si admiten ese estándar, sí. Creo que #region es más una función IDE que un estándar. En teoría, los IDE de Java podrían implementar este comportamiento y convertirlo en un estándar de facto
En realidad, johann, #indica que es una directiva de preprocesador, lo que básicamente significa que le dice al IDE qué hacer.
En el caso de usar #regiony#endregion en su código, NO hace ninguna diferencia en el código final si está allí o no. ¿Realmente puedes llamarlo un elemento del lenguaje si usarlo no cambia nada?
Aparte de eso, java no tiene directivas de preprocesador, lo que significa que la opción de plegado de código se define per-ide, en netbeans, por ejemplo, con una declaración // <code-fold>
¿realmente puedes llamarlo un elemento del lenguaje si usarlo no cambia nada? - ¿Qué tal comentarios?
Epeleg
2
He escuchado el argumento anterior de que no es una función del lenguaje. Y esta pregunta "¿Realmente puedes llamarlo un elemento del lenguaje si usarlo no cambia nada?" es ridículo. La refactorización de mucho tiempo está haciendo que el código sea más fácil de leer para los humanos y no hace nada (con suerte) para afectar la función del código.
Esto es inútil No funciona dentro de un método, ¡además rompe el CÓDIGO! (Las variables privadas se quejarán de que quieren ser definitivas. ¡Las variables sin definición de alcance no serán accesibles fuera de los corchetes internos!)
ADTC
1
No me gusta este método, agrega demasiadas llaves. Esto puede conducir a un código confuso :(
Broken_Window
-3
Simplemente instale y active el complemento Coffee-Bytes (Eclipse)
Esto no solo se menciona en una respuesta anterior , sino que ni siquiera proporcionó información útil al respecto.
Xynariz
-12
Hay alguna opción para lograr lo mismo, siga los puntos a continuación.
1) Explorador de macros abierto:
2) Crear nueva macro:
3) Nómbralo "OutlineRegions" (o lo que quieras)
4) Haga clic derecho en "OutlineRegions" (que se muestra en el Explorador de macros), seleccione la opción "Editar" y pegue el siguiente código VB:
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) Guarde la macro y cierre el editor.
6) Ahora asignemos acceso directo a la macro. Vaya a Herramientas-> Opciones-> Entorno-> Teclado y busque su macro en el cuadro de texto "mostrar comandos que contienen" (Escriba: Macro en el cuadro de texto, le sugerirá el nombre de la macro, elija el suyo).
7) ahora en el cuadro de texto debajo de "Presionar teclas de acceso directo" puede ingresar el acceso directo deseado. Yo uso Ctrl + M + N.
//region [Description]
y al final con//endregion
Respuestas:
No existe tal equivalente estándar . Algunos IDEs (Intellij, por ejemplo, o Eclipse) pueden plegarse dependiendo de los tipos de código involucrados (constructores, importaciones, etc.), pero no hay nada parecido
#region
.fuente
Jet Brains IDEA tiene esta característica. Puede usar la tecla de acceso rápido surround para eso (ctrl + alt + T). Es solo la función IDEA.
Las regiones allí se ven así:
fuente
Con Android Studio, intente esto:
Cuidado: sin línea en blanco después de // región ...
Y obtendrás:
fuente
No hay equivalente en el idioma ... Basado en IDEs ...
Por ejemplo en netbeans:
NetBeans / Creator admite esta sintaxis:
http://forums.java.net/jive/thread.jspa?threadID=1311
fuente
Para Eclipse IDE, el complemento Coffee-Bytes puede hacerlo, el enlace de descarga está aquí .
EDITAR:
La información más reciente sobre Coffee-Bytes está aquí .
fuente
La función de plegado de código personalizado se puede agregar a eclipse utilizando el complemento de plegado de código de CoffeeScript.
Esto está probado para funcionar con eclipse Luna y Juno. Aquí están los pasos.
Descargue el complemento desde aquí
Extraer el contenido del archivo
Navegar
Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Cree una nueva región como se muestra:
Reinicia el Eclipse.
Pruebe si el plegado funciona con comentarios prefijados con identificadores iniciales y finales especificados
Puede descargar el archivo y encontrar pasos en este Blog también.
fuente
Esta es más una función IDE que una función de idioma. Netbeans le permite definir sus propias definiciones plegables utilizando la siguiente definición:
Como se señaló en el artículo, esto también puede ser respaldado por otros editores, pero no hay garantías.
fuente
highlight the code
quieres rodearloctrl
+alt
+t
c
==> luego ingrese la descripciónfuente
AndroidStudio
regiónCrear región
Primero , busque (y defina un atajo si es necesario) para el
Surround With
menúLuego , seleccione el código, presione
Ctrl+Alt+Semicolon
-> elijaregion..endregion...
Ir a la región
Primero, encuentre el
Custom Folding
atajo.Segundo, desde cualquier parte de su código, presione
Ctrl+Alt+Period('>' on keyboard)
fuente
Al contrario de lo que la mayoría está publicando, esto NO es algo IDE. Es una cosa del lenguaje. La # región es una declaración de C #.
fuente
Venía de C # a Java y tenía el mismo problema y la mejor y exacta alternativa para la región es algo como a continuación (trabajando en Android Studio, no sé sobre intelliJ):
el atajo es como a continuación:
1- selecciona el código
2- presiona
ctrl
+alt
+t
3- presiona
c
y escribe tu descripciónfuente
La mejor manera
Consejo: Pon ";" al final de la "región final"
fuente
Si alguien está interesado, en Eclipse puede contraer todos sus métodos, etc. de una sola vez, simplemente haga clic derecho cuando normalmente inserte un punto de ruptura, haga clic en 'Plegar'> 'Contraer todo'. Sabe que no es una respuesta a la pregunta, sino que simplemente proporciona una alternativa al plegado rápido de código.
fuente
Realmente solo obtienes algún beneficio en el IDE. Con Java, no hay un estándar establecido en IDE, por lo que realmente no hay un estándar paralelo a
#region
.fuente
region
, entonces podemos estar seguros de que los IDE de Java lo admitirán, ¿no?Aquí hay un ejemplo:
100% funciona en Android studio
fuente
Por lo general, necesito esto para el código comentado, así que utilizo llaves al principio y al final.
Podría usarse para fragmentos de código, pero puede crear problemas en algunos códigos porque cambia el alcance de la variable.
fuente
En realidad, johann,
#
indica que es una directiva de preprocesador, lo que básicamente significa que le dice al IDE qué hacer.En el caso de usar
#region
y#endregion
en su código, NO hace ninguna diferencia en el código final si está allí o no. ¿Realmente puedes llamarlo un elemento del lenguaje si usarlo no cambia nada?Aparte de eso, java no tiene directivas de preprocesador, lo que significa que la opción de plegado de código se define per-ide, en netbeans, por ejemplo, con una declaración // <code-fold>
fuente
En Mac y Android Studio, siga esta secuencia:
<editor-fold>
También puede seleccionar otras opciones:
fuente
En Eclipse puede contraer los corchetes que envuelven el bloque de región variable. Lo más cercano es hacer algo como esto:
fuente
Simplemente instale y active el complemento Coffee-Bytes (Eclipse)
fuente
Hay alguna opción para lograr lo mismo, siga los puntos a continuación.
1) Explorador de macros abierto:
2) Crear nueva macro:
3) Nómbralo "OutlineRegions" (o lo que quieras)
4) Haga clic derecho en "OutlineRegions" (que se muestra en el Explorador de macros), seleccione la opción "Editar" y pegue el siguiente código VB:
5) Guarde la macro y cierre el editor.
6) Ahora asignemos acceso directo a la macro. Vaya a Herramientas-> Opciones-> Entorno-> Teclado y busque su macro en el cuadro de texto "mostrar comandos que contienen" (Escriba: Macro en el cuadro de texto, le sugerirá el nombre de la macro, elija el suyo).
7) ahora en el cuadro de texto debajo de "Presionar teclas de acceso directo" puede ingresar el acceso directo deseado. Yo uso Ctrl + M + N.
Utilizar:
8) Presione la tecla de acceso directo guardada
Ver abajo el resultado:
fuente
This code seems to be for Visual Basic.NET
lo que sugeriría que es el IDEVisual Studio
.#region
y#endregion