我目前正试图突出显示编辑器的多行代码(它们可能不是一行接一行的--即注解遍布整个源文件)。我已经能够以编程方式打开一个编辑器并突出显示一行-
IDE.openEditor(page, m);
其中m是一个IMarker。我的问题是如何以编程方式(在Java中)选择多行。您可以假设我希望突出显示的每一行都有相关标记,因此所有相关信息(lineNum等)非常感谢。
m
8zzbczxx1#
好吧,我已经弄明白了-感谢@greg-449这里是一篇文章,极大地帮助-http://cubussapiens.hu/2011/05/custom-markers-and-annotations-the-bright-side-of-eclipse/因此,您必须在plugin.xml文件中定义一个自定义标记沿着为其定义一个自定义注解;
<extension point="org.eclipse.ui.editors.annotationTypes"> <type markerType="FSM.MARKER" name="FSM.MARKER"> </type> </extension> <extension id="FSM.MARKER" name="FSM.MARKER" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.core.resources.textmarker"> </super> </extension> <extension point="org.eclipse.ui.editors.markerAnnotationSpecification"> <specification annotationType="FSM.MARKER" colorPreferenceKey="FSM.MARKER.COLOR" colorPreferenceValue="0,125,255" contributesToHeader="false" highlightPreferenceKey="FSM.MARKER.highlight" highlightPreferenceValue="true" includeOnPreferencePage="true" label="FSM.MARKER" overviewRulerPreferenceKey="org.eclipse.viatra2.slice.overview" overviewRulerPreferenceValue="true" presentationLayer="0" textPreferenceKey="org.eclipse.viatra2.slice.text" textPreferenceValue="true" textStylePreferenceValue="BOX" verticalRulerPreferenceKey="org.eclipse.viatra2.slice.ruler" verticalRulerPreferenceValue="true"> </specification> </extension>
然后在你的代码中你可以创建一个自定义标记;
IMarker marker = root.createMarker("FSM.MARKER"); marker.setAttribute(IMarker.LINE_NUMBER, lineNum); marker.setAttribute(IMarker.SOURCE_ID, path); //if (region.getOffset() != 0) { marker.setAttribute(IMarker.CHAR_START,charStart); marker.setAttribute(IMarker.CHAR_END,charEnd);
它产生以下类型的注解; enter image description here
1条答案
按热度按时间8zzbczxx1#
好吧,我已经弄明白了-感谢@greg-449
这里是一篇文章,极大地帮助-http://cubussapiens.hu/2011/05/custom-markers-and-annotations-the-bright-side-of-eclipse/
因此,您必须在plugin.xml文件中定义一个自定义标记沿着为其定义一个自定义注解;
然后在你的代码中你可以创建一个自定义标记;
它产生以下类型的注解; enter image description here