Мне пришлось взять на себя проект С#. Парень, который разработал программное обеспечение, в первую очередь был глубоко влюблен в #region, потому что он завернул все в регионы.
Это делает меня сумасшедшим, и я искал инструмент или аддон, чтобы удалить все #region из проекта. Есть что-то вокруг?
Удаление #области
Ответ 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 на линии области. После этого у вас будет возможность удалить регионы в файле, в проекте или в решении.
Ответ 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 использует его для соответствия "любому числу" )