Изменить резкость настраиваемого шаблона поиска, чтобы предупредить идентифицируемые объекты

Поскольку resharper по-прежнему не выдает никаких предупреждений относительно объектов, реализующих IDisposable, я хотел бы создать несколько пользовательских шаблонов поиска, доступных в resharper 5.0.

Пока у меня есть это:

(И не берите в голову мои заменяющие комментарии в шаблонах, меня это не волнует, я просто хочу иметь четкое предупреждение в коде при работе с одноразовыми объектами.)

- <CustomPatterns>
- <Pattern Severity="WARNING">
  <Comment>This class implements IDisposable interface.</Comment> 
  <ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment> 
  <SearchPattern>$type
- <CustomPatterns>
- <Pattern Severity="WARNING">
  <Comment>This class implements IDisposable interface.</Comment> 
  <ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment> 
  <SearchPattern>$type$</SearchPattern> 
  <Params /> 
- <Placeholders>
  <IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" /> 
  <TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" /> 
  <ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" /> 
  </Placeholders>
  </Pattern>
- <Pattern Severity="WARNING">
  <Comment>This class implements IDisposable interface.</Comment> 
  <ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment> 
  <SearchPattern>new $type$($args$)</SearchPattern> 
  <Params /> 
- <Placeholders>
  <IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" /> 
  <TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" /> 
  <ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" /> 
  </Placeholders>
  </Pattern>
  </CustomPatterns>
lt;/SearchPattern> <Params /> - <Placeholders> <IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" /> <TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" /> <ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" /> </Placeholders> </Pattern> - <Pattern Severity="WARNING"> <Comment>This class implements IDisposable interface.</Comment> <ReplaceComment>Please use Using statement, or dispose the object manually when done using.</ReplaceComment> <SearchPattern>new $type$($args$)</SearchPattern> <Params /> - <Placeholders> <IdentifierPlaceholder Name="var" Type="" ExactType="False" RegEx="" CaseSensitive="True" /> <TypePlaceholder Name="type" Type="System.IDisposable" ExactType="False" /> <ArgumentPlaceholder Name="args" Minimal="-1" Maximal="-1" /> </Placeholders> </Pattern> </CustomPatterns>

Это обрабатывает случаи объявления переменных, например,

Bitmap myBitmap = GetBitmap();
private Bitmap _bitmap;

и звонки CTOR, например,

var myBitmap = new Bitmap(...);

То, что он не поддерживает, это:

var myBitmap = GetBitmap();

Я не могу найти ни одного примера того, как определить шаблон поиска, который найдет использование 'var' или тип возвращаемого метода, который является typeof IDisposable.

Я уверен, что есть способ, но я не могу его найти.

Ответы на вопрос(2)

Ваш ответ на вопрос