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