Java эквивалентно #region в C # - PullRequest
       49

Java эквивалентно #region в C #

456 голосов
/ 26 февраля 2010

Я хочу использовать регионы для свертывания кода в Eclipse ; как это можно сделать в Java?

Пример использования в C # :

#region name
//code
#endregion

Ответы [ 20 ]

14 голосов
/ 24 сентября 2014

Лучший способ

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

Совет: поставьте ";" в конце «эндрегиона»

13 голосов
/ 04 апреля 2017

Я перешел из C # в java, и у меня была та же проблема, и лучшая и точная альтернатива для региона - что-то вроде ниже (работает в Android Studio, не знаю насчет intelliJ):

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

ярлык, как показано ниже:

1 - выберите код

2- нажмите ctrl + alt + t

3- нажмите c и напишите описание

11 голосов
/ 15 апреля 2011

Если кому-то интересно, в Eclipse вы можете свернуть все свои методы и т. Д. За один раз, просто щелкните правой кнопкой мыши, когда вы обычно вставляете точку останова, нажмите «Свернуть»> «Свернуть все». Он знает, что это не ответ на вопрос, а просто альтернатива быстрому свертыванию кода.

6 голосов
/ 26 февраля 2010
#region

// code

#endregion

Действительно только приносит вам какую-либо выгоду в IDE. В Java нет установленного стандарта в IDE, поэтому на самом деле нет стандарта , параллельного #region.

2 голосов
/ 08 ноября 2014

Мне обычно это нужно для закомментированного кода, поэтому я использую фигурные скобки в начале и в конце этого.

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

Может использоваться для фрагментов кода, но может создавать проблемы в некотором коде, потому что это меняет область видимости переменной.

1 голос
/ 14 ноября 2017

На Mac и Android Studio выполните следующую последовательность действий:

  1. Выделите исходный код, чтобы сложить
  2. Нажмите Alt + Команда + t
  3. Выбрать <editor-fold>

Также вы можете выбрать другие опции:

enter image description here

1 голос
/ 24 августа 2011

На самом деле johann, # указывает, что это директива препроцессора, что в основном означает, что она сообщает IDE, что делать.

В случае использования #region и #endregion в вашем коде, НЕТ разницы в конечном коде, есть он или нет. Вы действительно можете назвать это языковым элементом, если его использование ничего не меняет?

Кроме того, java не имеет директив препроцессора, что означает, что опция свертывания кода определяется отдельно для каждой идеи, например в netbean-компонентах с помощью оператора //

0 голосов
/ 17 января 2013

Есть возможность достичь того же, следуйте приведенным ниже пунктам.

1) Открыть обозреватель макросов:

2) Создать новый макрос:

3) Назовите его "OutlineRegions" (или как хотите)

4) Щелкните правой кнопкой мыши «OutlineRegions» (отображается в Macro Explorer), выберите параметр «Редактировать» и вставьте в него следующий код VB:

    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) Сохраните макрос и закройте редактор.

6) Теперь давайте назначим ярлык макросу. Перейдите в Инструменты-> Параметры-> Среда-> Клавиатура и найдите свой макрос в текстовом поле «Показать команды, содержащее» (введите: Макрос в текстовое поле, он предложит имя макроса, выберите свое).

7) Теперь в текстовом поле под «Нажатием клавиш быстрого доступа» вы можете ввести желаемый ярлык. Я использую Ctrl + M + N.

Использование:

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

8) Нажмите сохраненную комбинацию клавиш

См. Ниже результат:

enter image description here

0 голосов
/ 25 сентября 2013

Просто введите и включите плагин Coffee-Bytes (Eclipse)

0 голосов
/ 27 августа 2012

В Eclipse вы можете свернуть в скобки переменную область блока. Наиболее близким является сделать что-то вроде этого:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}
...