Тупой пример
Предположим, я хотел взять что-то вроде
FunctionName(parameter)
и заменить его на
FunctionName(parameter, "This is a string involving {parameter}."
Теперь для практических целей я хочу этовыдает ошибку, если первый экземпляр когда-либо найден, поэтому вместо использования простого скрипта или встроенной в Find / Replace Visual Studio, я хочу установить собственный шаблон в ReSharper, который делает именно это. Я мог бы установить идентификатор-заполнитель, называемый «параметром», и использовать шаблон поиска
FunctionName($parameter$)
и шаблон замены
FunctionName($parameter$, "This is a string involving $parameter$."
Если применить его к
FunctionName(x)
однако я получаю
FunctionName(x, "This is a string involving $0.")
вместо
FunctionName(x, "This is a string involving x.")
Есть что-то в обертке-заполнителе в двойных кавычках, из-за которой его невозможно правильно оценить. Чего мне не хватает?
Практическое применение
Я пытаюсь применить стандарты кодирования для нескольких рабочих проектов, которые не могут решить, хотят ли они использовать оператор bang для доступа к свойству по умолчаниюDataRow или .Item. То есть много
dr!columnName1 = "foo"
dr.Item("columnName2") = "bar"
, и я эффективно пытаюсь заменить все экземпляры !columnName1
на .Item("columnName1")
. Что еще хуже, большинство из этих объявлений заключено в блок «С», но это ни здесь, ни там.
Важные замечания:
- Использование Resharper Ultimate 2019.2
- VB.NET