我正在Eclipse中爲特定於域的語言構建自定義文本編輯器插件。Eclipse編輯器中的標記未顯示消息
我可以檢測編輯器內容格式的錯誤,並希望使用eclipse的標記來指出錯誤給用戶。
我在插件中下面的代碼:
public static void createMarkerForResource(int linenumber, String message) throws CoreException {
IResource resource = getFile();
createMarkerForResource(resource, linenumber, message);
}
public static void createMarkerForResource(IResource resource, int linenumber, String message)
throws CoreException {
HashMap<String, Object> map = new HashMap<String, Object>();
MarkerUtilities.setLineNumber(map, linenumber);
MarkerUtilities.setMessage(map, message);
MarkerUtilities.createMarker(resource, map, IMarker.PROBLEM);
IMarker[] markers = resource.findMarkers(null, true, IResource.DEPTH_INFINITE);
for (IMarker marker : markers){
System.out.println("Marker contents"+MarkerUtilities.getMessage(marker));
}
}
我運行此代碼的命令:
createMarkerForResource(2, "hello");
這成功地給了我一個圖像上的正確路線
,如果我把鼠標懸停在它上面,我會得到一個'你可以點擊這個東西'的光標。 但我無法得到消息。
消息肯定已經被放置,這是因爲:
for (IMarker marker : markers){
System.out.println("Marker contents"+MarkerUtilities.getMessage(marker));
}
代碼產生 「標記contentshello」 輸出按預期方式。我究竟做錯了什麼?
編輯:
消息是出現在問題視圖: