Eclipse 플러그인에서 현재 마커 위로 마우스를 가져 가면 Eclipse (Luna)가 맞춤 텍스트를 표시하려고합니다. 나는 마커 인수를 지정하여이를 달성 할 수 있다는 것을 알고 있지만, 나는 예를 들어 텍스트 동적, 변경해야Eclipse - 마커 위로 마우스를 가져 가면 사용자 정의 텍스트
:
가 이미 성공하지 않고 이러한 접근 방식을 을 시도를
public class MyEditor extends TextEditor {
public MyEditor() {
setSourceViewerConfiguration(new SourceViewerConfiguration() {
@Override
public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
return new IAnnotationHover() {
@Override
public String getHoverInfo(ISourceViewer sv, int ln) {
return "Hello world!";
}
};
}
});
}
}
과 : 1) 사용자 정의 SourceViewerConfiguration
와 사용자 정의 TextEditor
를 갖는 이 같은 plugin.xml에 :
<extension
point="org.eclipse.ui.editors">
<editor
id="test"
name="MyEditor"
extensions="c"
class="foo.bar.editors.MyEditor">
</editor>
</extension>
내 방법 getHoverInfo가 호출되지 않습니다. 대신 * .c 파일을 열고 표식 위에 마우스를 올리면 getHoverInfoDefaultAnnotationHover이 호출됩니다. Eclipse-> Preferences-> General-> Editors를 통해 사용 가능한 편집기를 확인했고 MyEditor
이 있습니다.
2) 맞춤 주석 달기를 동적으로 추가. 가능하다면 here 정보를 찾았습니다. 그래서 나는 "*이 .c"파일을 열 때마다, 나는이 코드를 가지고 :
IPartListener2 partListener2 = new IPartListener2() {
@Override
public void partOpened(IWorkbenchPartReference partRef) {
if ("org.eclipse.cdt.ui.editor.CEditor".equals(((EditorReference) partRef).getDescriptor().getId())) {
CEditor currentCFileEditor = ((CEditor)((EditorReference) partRef).getEditor(false));
currentCFileEditor.getViewer().setAnnotationHover(new IAnnotationHover() {
@Override
public String getHoverInfo(ISourceViewer sourceViewer, int lineNumber) {
return "Hello world";
}
});
}
}
을 그러나 다시, 나는 성공하지 못한 - 내는 getHoverInfo
는 전혀 호출되지 않습니다.
내가 뭘 잘못하고 있는지 알기!
Eclipse Neon3에서이 수정본을 사용하려면 환경 설정에서 "호버링 할 때 세로 눈금자 아이콘 확장 (열린 편집기에 영향을주지 않음)"옵션을 비활성화해야합니다. – napets