Подтвердить что ты не робот

Удаление #области

Мне пришлось взять на себя проект С#. Парень, который разработал программное обеспечение, в первую очередь был глубоко влюблен в #region, потому что он завернул все в регионы. Это делает меня сумасшедшим, и я искал инструмент или аддон, чтобы удалить все #region из проекта. Есть что-то вокруг?

4b9b3361

Ответ 1

Просто используйте встроенную в Visual Studio "Найти и заменить" (или "Заменить в файлах", которую вы можете открыть, нажав Ctrl + Shift + H).

Чтобы удалить #region, вам нужно включить сопоставление регулярных выражений; в диалоговом окне "Заменить в файлах" установите флажок "Использовать: регулярные выражения". Затем используйте следующий шаблон: "\#region .*\n", заменив совпадения на "" (пустая строка).

Чтобы удалить #endregion, сделайте то же самое, но используйте "\#endregion .*\n" в качестве шаблона. Регулярные выражения могут быть излишними для #endregion, но это не помешает (в случае, если предыдущий разработчик оставил комментарии в той же строке, что и #endregion или что-то еще).


Примечание. Другие опубликовали шаблоны, которые также должны работать для вас, они немного отличаются от моих, но вы получаете общую идею.

Ответ 2

Используйте одно регулярное выражение ^[ \t]*\#[ \t]*(region|endregion).*\n, чтобы найти как: region, так и endregion. После замены пустой строкой вся строка с ведущими пробелами будет удалена.

[ \t]* - находит ведущие пространства

\#[ \t]*(region|endregion) - находит #region или #endregion (а также очень редкий случай с пробелами после #)

.*\n - находит все после #region или #endregion (но в той же строке)

EDIT: ответ изменен, чтобы быть совместимым со старым синтаксисом regex Visual Studio. Был: ^[ \t]*\#(end)?region.*\n (вопросительные знаки не работают для старого синтаксиса)

EDIT 2: добавлен [ \t]* после #, чтобы обрабатывать очень редкий случай, найденный @Volkirith

Ответ 3

В Find и Replace используйте {[#]<region[^]*} для Find what: и замените его пустой строкой. #EndRegion достаточно просто заменить.

Ответ 4

Для всех, кто использует ReSharper, это просто простой Atr-Enter на линии области. После этого у вас будет возможность удалить регионы в файле, в проекте или в решении.

Дополнительная информация о JetBrains.

Ответ 5

Если вам нужно сотрудничать с любовниками региона (и не затрагивать регионы), я бы рекомендовал "Ненавижу #Regions" Расширение Visual Studio, Это делает регионы допустимыми - все регионы расширены по умолчанию, а директивы #region отображаются очень маленьким шрифтом.

Ответ 6

Чтобы удалить #region с новой строкой после него, замените следующую строку пустым:

^(?([^\r\n])\s)*\#region\ ([^\r\n])*\r?\n(?([^\r\n])\s)*\r?\n

Чтобы заменить #endregion на лидирующую пустую строку, замените следующую пустую строку:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\#endregion([^\r\n])*\r?\n

Ответ 7

Вы можете использовать подстановочный знак find/replace:

*\#region *
*\#endregion

И замените без значения. (Обратите внимание, что # необходимо экранировать, поскольку визуальный stuido использует его для соответствия "любому числу" )