2010-06-08 2 views
2

나는 델파이 컴파일러가 방출하는 몇 가지 힌트 (*)를 없애려하고있다. ToolsAPI 통해 브라우징 나는 내가 그것을 통해 이러한 목표를 달성 도움이 될처럼 보이는 IOTAToolsFilter 알리미입니다 볼 수 있지만, 나는 (I 필터를 액세스 할 수있는 xxxServices을 통해)이 호출하는 방법을 모르겠어요.Delphi 2010 컴파일러 출력을 필터링하는 방법 (힌트)?

내가 올바른 길을 가고 있는지 누가 알 수 있습니까? 감사!

(*) 특히 부모의 대소 문자와 일치하지 않는 무시 된 메소드에 대한 H2365. Embarcadero의 코드 규칙과 약간 다른 코드 규칙을 사용하여 약 5 백만 라인의 활성 코드가있을 때 좋지 않습니다. 우리는 몇 달 동안 힌트없이 일 해왔고, 우리는 좀 그리워합니다. :-)

+0

해결 방법이 있으면 알려주세요. –

+0

리팩토링을 사용하여 메소드 이름을 수정 해 보았습니까? –

+1

Nah, 우리는 완고한 개발자 들이며 우리 자신의 코드 규칙을 정말 좋아합니다. 우리는 그것을 포기하는 것보다 훨씬 느슨한 힌트를 얻습니다. 또한 우리는 리팩토링을 망각으로 깨뜨리는 많은 것을 포함하는 경향이 있습니다 ... cygwin은 스크립트를 승리로 대체합니다. : D –

답변

4

BorlandIDEServices에 IOTAToolsFilter를 쿼리 할 수 ​​있다고해도 해당 인터페이스는 사용자가 원하는 것을 수행하는 데 도움이되지 않습니다. 이 인터페이스는 IDE에 (IDE가 MSBuild를 사용하기 전에) 추가 빌드 도구 (컴파일러 등)를 추가하기위한 메커니즘의 일부로 도입되었습니다. 특정 빌드 도구의 출력을 처리하기 위해 사용자 정의 "필터"를 작성할 수는 있지만 내장 된 도구 중 하나 (예 : 델파이 컴파일러)에 필터를 적용 할 수는 없습니다.

Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) 호출이 Delphi2010에서 실패한 이유는 MSBuild 지원이 IDE에 추가되고 나면 IDE에 빌드 도구를 추가하는 기존 방법이 비활성화되고 BorlandIDEServices 인터페이스가 더 이상 IOTAToolsFilter를 지원하지 않기 때문입니다.

IOTAToolsFilter의 선언은 아마 ToolsAPI.pas에서 사용되지 않는 것으로 표시되어 있어야합니다 (또는 적어도 더 이상 지원되는 소스 코드의 주석에 언급되어 있지 않은한다).

특정 힌트를 필터링하려는 경우 ToolsAPI를 통해이를 수행 할 수있는 방법을 알지 못합니다. IOTAMessageServices에 추가 할 수있는 합리적인 것처럼 보입니다 (IDE의 Message View에서 메시지를 열거하고 필터링하고 가능하면 메시지를 변경하는 기능). 나는 그것을 위해 QualityCentral에 요청을 입력 할 것입니다.

또한 QC# 35774 (http://qc.embarcadero.com/wc/qcmain.aspx?d=35774)에 투표하십시오. 구현 된 것처럼이 유형의 도구 API를 사용할 필요가 없습니다.

+0

크리스에게 감사합니다. 투표했다. –

+0

[QualityCentral이 종료되었습니다.] (https://community.embarcadero.com/blogs/entry/quality-keeps-moving-forward), 더 이상 qc.embarcadero.com 링크에 액세스 할 수 없습니다 . 이전 QC 데이터에 액세스해야하는 경우 [QCScraper] (http://www.uweraabe.de/Blog/2017/06/09/how-to-save-qualitycentral/)를 확인하십시오. –

1

http://docwiki.embarcadero.com/RADStudio/en/Obtaining_Tools_API_Services에 따르면이 BorlandIDEServices, 예를 들어, 사용하여 직접 액세스 할 수 있어야한다 : 그러나이 델파이 2010에서 원하는 인터페이스를 반환하지 않습니다

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

을 (당신이하지거야 지원되는 메시지), 문서에 오류가 있거나 올바른 인터페이스를 반환하지 않는 BorlandIDEServices 오류가 있습니다.

+0

+1은 실제로 xxxServices 중 하나임을 지정하는 문서를 가리키고 있습니다. 이전 델파이 버전을 조금 둘러 보면이 접근법이 작동하는지 확인해야 할 것입니다. –

관련 문제