Как фильтровать выходные данные компилятора Delphi 2010 (подсказки)?

StackOverflow https://stackoverflow.com/questions/2996320

  •  24-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь избавиться от некоторых подсказок (*), которые выдает компилятор Delphi.Просматривая ИнструментыAPI я вижу IOTAToИнструментыФильтр Похоже, это может помочь мне сделать это через Notifier, но я не уверен, как это вызвать (через какие xxxServices я могу получить доступ к фильтру).

Кто-нибудь может мне сказать, на правильном ли я пути?Спасибо!

(*) В частности, H2365 о переопределенных методах, не соответствующих регистру родительского объекта.Не так приятно, когда у вас около 5 миллионов строк активного кода с несколько иной конвенцией кода, чем у Embarcadero.Мы уже несколько месяцев работаем без подсказок и как бы скучаем по мне.:-)

Это было полезно?

Решение

Даже если бы вы могли запросить у BorlandIDEServices IOTAToolsFilter, этот интерфейс не поможет вам сделать то, что вы просите.Этот интерфейс был представлен как часть механизма добавления в IDE дополнительных инструментов сборки (компиляторов и т. д.) (до того, как IDE использовала MSBuild).Это позволяло вам написать собственный «фильтр» для обработки вывода определенного инструмента сборки, но не позволяло применять фильтр к одному из встроенных инструментов (например, компилятору Delphi).

Причина, по которой Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) Ошибка вызова в Delphi2010 заключается в том, что после добавления поддержки MSBuild в IDE старый способ добавления инструментов сборки в IDE был отключен, а интерфейс BorlandIDEServices больше не поддерживал IOTAToolsFilter.

Объявление IOTAToolsFilter, вероятно, должно было быть помечено как устаревшее в ToolsAPI.pas (или, по крайней мере, в комментарии к исходному коду должно было быть упомянуто, что оно больше не поддерживается).

Что касается вашего желания отфильтровать конкретную подсказку, я не знаю, как сделать это через ToolsAPI.Кажется разумной вещью, которую можно добавить в IOTAMessageServices (возможность перечислять, фильтровать и, возможно, изменять сообщения в представлении сообщений IDE).Для этого я бы ввел запрос в QualityCentral.

Также проголосуйте за QC #35774 (http://qc.embarcadero.com/wc/qcmain.aspx?d=35774), как будто бы это было реализовано, вам не нужно было бы использовать ToolsAPI для подобных вещей.

Другие советы

Согласно с http://docwiki.embarcadero.com/radstudio/en/obtaining_tools_api_services Должно быть возможно доступ к нему напрямую, используя Borlandideservices, например:

var
  OTAToolsFilter: IOTAToolsFilter;
begin    
if Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) then
  ShowMessage('supports IOTAToolsFilter')
else
  ShowMessage('IOTAToolsFilter NOT supported');
end;

Однако это не возвращает желаемый интерфейс в Delphi 2010 (вы получите не поддерживаемое сообщение), поэтому в документации есть либо ошибка, либо ошибка в BorlandIdeServices не возвращает правильный интерфейс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top