2012-01-15 2 views
3

필자는 이클립스 플러그인에서 제공하고자하는 사용자 지정 빠른 픽스에 문제가 있으며이 문제에 대한 나에게 힌트를주기 위해 이클립스 PDE에서 저보다 많은 경험을 쌓기를 바라고 있습니다. 제가Eclipse PDE : 사용자 정의 QuickFix는 Problems View에서만 사용할 수 있습니까?

같이 이해

, 난에 대한 확장 점 org.eclipse.ui.ide.markerResolution를 확장하여 (용어에 Eclipse 또는 "해상도") 사용자 소위 "빠른 수정"을 제공 할 수있다 특정 마커 ID (예 : 일부 기본 Eclipse 마커) org.eclipse.core.resources.problemmarker.

이 기본 마커 유형 및 사용자 정의 마커 유형 나를 위해 작동

, 하지만 : 아닌 편집기에서 "문제"-보기,에서만 액세스 할 수 있습니다가 제공하는 내 IMarkerResolutionGenerator QuickFixes, 내 마커가 나타납니다.

내가 갖고있는 것 : 마커가 지정된 줄의 왼쪽 편집기 눈금자에 (1) 마커 도구 설명 메시지가있는 아이콘을 표시하는 기본 텍스트 편집기에서 마커를 만듭니다. (2) 편집기의 오른쪽에있는 마커, (3) 편집기의 밑줄이 그어진 문자, (4) "Problems"보기에있는 항목이 있습니다.

내가 원하는 것 : Java IDE 지원과 마찬가지로 Strg + 1 또는 Context-Menu-> Quick Fix를 누르거나 왼쪽 눈금자의 오류 아이콘을 클릭하여 사용 가능한 빠른 수정본을보고 하나를 선택하십시오.

: Problems-View에서만 Strg + 1을 누르거나 컨텍스트 메뉴에서 Quick-Fixes를 얻을 수 있습니다.

정상적인 동작입니까? 빠른 수정을 연결하기 위해 다른 확장 지점이나 특정 편집자 기능에 액세스해야합니까? 나는 모든 것에 대해 위에서 언급 한 유일한 확장 포인트가 상당히 만족 스럽다는 것을 제외하고는 그것에 대해 자세하게 설명 된 것을 발견하지 못했습니다. 나는 무엇을 놓치고 있습니까? 나는이 같은 문제가

<extension point="org.eclipse.ui.ide.markerResolution"> 
    <markerResolutionGenerator 
     class="com.markers.test.MarkerResolutionGenerator" 
     markerType="org.eclipse.core.resources.problemmarker"> 
    </markerResolutionGenerator> 
</extension> 
+0

가장 중요한 점을 잊어 버렸습니다. 현재 RCP 및 RAP 배포판 인 Eclipse Indigo SR1을 사용하고 있습니다. – Janos

답변

2

이 올바른 방법 인 경우 I는 모르겠지만, 적어도 그것을 작동 : 완료

, 여기 내 확장 점 정의입니다

소스 뷰어에서 빠른 픽스를보고 싶다면 QuickAssistAssistant을 설정해야합니다. 클래스에서 SourceViewerConfiguration을 구현하면 getQuickAssistAssistant을 재정의합니다. org.eclipse.jface.text.quickassist.QuickAssistAssistant을 인스턴스화 할 수 있지만 QuickAssistProcessor을 설정해야하므로 org.eclipse.jface.text.quickassist.IQuickAssistProcessor 인터페이스, 특히 computeQuickAssistProposals을 구현하여 빠른 수정 제안을 되돌립니다.

public IQuickAssistAssistant getQuickAssistAssistant(ISourceViewer sourceViewer) { 
    IQuickAssistAssistant quickAssist = new QuickAssistAssistant(); 
    quickAssist.setQuickAssistProcessor(new MyQuickAssistProcessor()); 
    quickAssist.setInformationControlCreator(getInformationControlCreator(sourceViewer)); 
    return quickAssist; 
} 

는 또한 마지막 게시물 here의 코드를 살펴, 그것은 조금 지저분한입니다,하지만 당신은 그것을 얻을 것이다. 그리고이 코드 here을 예로 들자면 ICompletionProposal을 구현합니다.이 코드는 QuickAssistProcessor으로 반환해야합니다.

+0

정말 고마워요,이게 확실하게 올바른 방향으로 나를 이끌 것입니다! 지금 당장은 ** 커스텀 에디터 **를 커스텀'SourceViewerConfiguration' **로 풍부하게 만드는 것 같다. 커스텀 'SourceViewerConfiguration'과 함께 _ 존재하는 편집기 _ (예 : 텍스트 편집기, XML 편집기)를 제공 할 수 있습니까? – Janos

+0

'org.eclipse.ui.editors.text.TextEditor'를 확장하고'SourceViewerConfiguration'을 설정하기 위해'setSourceViewerConfiguration (new MySourceViewerConfiguration (new ColorManager()));'를 사용하십시오. 하지만 기존 XML 편집기에 대해서는 잘 모르겠지만이 링크는 도움이 될 수 있습니다. http://vzurczak.wordpress.com/2010/09/25/merge-compare-dialogs-and-xml-syntax-highlighting/ –

0

단순히 마커 확장 점에 한 줄을 추가하는 경우 :

<super type="org.eclipse.core.resources.textmarker"/> 

및 마커 marker.setAttribute (IMarker.CHAR_START, ...)에 속성을 추가; marker.setAttribute (IMarker.CHAR_END, ...);

당신이 얻을 수있을 것입니다 :

displayed quick fix as text hover

을하지만 여전히도 후 주석 아이콘을 클릭 쇼 가능한 빠른 수정 (전구와 변형에) 마커 아이콘을 변경하는 방법을 찾을 수 없습니다 .

+0

주석을 통해 전구 아이콘을 가져올 수 있지만 스크린 샷에 표시된 것처럼 QuickFix를 가져올 수 없습니다. 도와주세요. – Shalin

+0

@shalin 자신 만의 질문을 만들고 구현에 대한 자세한 정보를 제공 할 수 있습니다. –

관련 문제