Завершение работы Visual Studio С#
При редактировании действительно длинных блоков кода (которые обязательно должны быть реорганизованы в любом случае, но выходящих за рамки этого вопроса), я часто жаждет возможности свернуть блоки операторов, как можно свернуть функциональные блоки. То есть было бы здорово, если бы значок минуса отображался в схеме кода для всего, заключенного в фигурные скобки. Кажется, он появляется для функций, классов, областей, пространств имен, приложений, но не для условных или итеративных блоков. Было бы замечательно, если бы я мог разрушить такие вещи, как ifs, переключатели, предвидения, такие вещи!
Вхождение в это немного, я обнаружил, что, по-видимому, С++, излагающий в VS, позволяет это, но С#, выделяющий в VS, не работает. Я не понимаю почему. Даже блокнот ++ будет таким образом сбрасываться, если я выберу форматирование на С#, поэтому я не понимаю, почему Visual Studio не делает.
Кто-нибудь знает о надстройке VS2008, которая позволит это поведение? Или какие-то скрытые настройки для него?
Отредактировано для добавления: вставка областей - это, конечно, вариант, и это уже произошло со мной, но, честно говоря, мне не нужно было обертывать вещи в регионе, который уже завернут в фигурные скобки... если бы я шел чтобы отредактировать существующий код, я бы просто реорганизовал его, чтобы иметь возможность разделить озабоченность в любом случае. ( "обертывание" новыми методами вместо регионов;)
Ответы
Ответ 1
Начиная с Visual Studio 2017, сворачивание операторов встроено.
Существует несколько расширений, которые выполняют эту задачу для версий VS до 2017 года, начиная с версии VS 2010:
Последнее расширение поддерживает только VS 2015 и VS 2017, но это самый мощный.
Он поддерживает синтаксическую раскраску внутри свернутых блоков, более отказоустойчив и оптимизирован.
Если расширение не установлено после использования браузера для его загрузки, попробуйте использовать встроенный диспетчер расширений Visual Studio.
Ответ 2
Я не знаю надстройки, но вы упомянули регионы, и я не вижу ничего плохого в том, чтобы делать что-то вроде этого...
foreach (Item i in Items)
{
#region something big happening here
...
#endregion
#region something big happening here too
...
#endregion
#region something big happening here also
...
#endregion
}
РЕДАКТИРОВАТЬ: В ответ на вопрос EDIT: вы правы, придерживание кучи регионов во всем мире не является идеальным, и рефакторинг - это, вероятно, путь. Но кажется, что вы ищете что-то волшебное, которое "организует" код для вас, и я не думаю, что он существует.
Ответ 3
Вы можете свернуть отдельные блоки текста в визуальной студии, но вам нужно отключить автоматическое выделение.
Щелкните правой кнопкой мыши в окне вашего кода и выберите (Очертить | Остановить выделение)
Затем выберите текст, щелкните правой кнопкой мыши и выберите (Обводка | Скрыть выделение)
Когда вы снова включите автоматическое выделение, ваши пользовательские "регионы" больше не будут рушиться.
Ответ 4
Visual Studio 2008 поддерживает регионы внутри функций, пока вы держите их на одном и том же уровне кода
#region Won't work
for(int i = 0; i<Count; i++)
{
//do something
#endregion
}
for(int i=0; i<Count; i++)
{
#region Works fine
//do lots of stuff
#endregion
}
Ответ 5
Эта функция была добавлена в редактор Visual Studio 2010 С#. Я не могу найти источник, подтверждающий, что он действительно был внесен, но я помню, что видел его в одном из блогов группы разработчиков Dev 10, рассказывающих об изменениях с момента создания Beta 1 или что-то в этом роде. Как утешение, вот один комментарий Microsoft, предлагающий им добавить его.
Ответ 6
Позвольте мне сказать что-то другое: нажмите (ctrl+m,ctrl+h)
или в редакции > выделить > скрыть выбор
это так полезно.
Ответ 7
Я добавлю здесь, что в VS 2010 Microsoft добавила возможности Adorner WPF с использованием Managed Extensibility Framework (MEF), это позволит нам расширить редактор исходного кода, чтобы организовать их гораздо лучше, чтобы сделать его более читаемым и доступным.
Например, визуализатор итоговых комментариев, который Скотт Гу продемонстрировал на PDC 2008.
С нетерпением ожидаем лучшего завтра для разработчиков:)
Ответ 8
Coderush отобразит все блоки кода для вас. Не уверен, что это позволяет вам развернуть/свернуть блоки, но наметить это - лучшая вещь. Я использую resharper вместо coderush, который, насколько я знаю, не обеспечивает блокировку блока: (
Ответ 9
Я нашел это для Visual Studio 2013 и нашел, что это очень полезно. Он работает, даже если вы поместите простые фигурные скобки вокруг своего кода с помощью {.....}
После обмена я нашел, что кто-то еще упомянул эту ссылку. Мое голосование также за этот инструмент.
Инструмент выделения С# для Visual Studio 2013
Ответ 10
# region, # endregion - это умный вариант.