簡體   English   中英

如何在eclipse編輯器插件中顯示語法錯誤

[英]How to show syntax errors in an eclipse editor plugin

我如何在eclipse編輯器插件中指示語法錯誤(例如非法的令牌序列),就像在eclipse Java編輯器中一樣,即通過紅色蠕動下划線,滾動條上的紅色標記,您可以跳轉到,以及解釋性消息你徘徊在任何一個?

我正在為自定義文件格式(特別是Shark3D游戲引擎的“蛇文件格式”)編寫一個eclipse編輯器插件。 我已經實現了一個掃描儀來獲得語法高亮和一個大綱。

  • 對於下划線,我是否只是讓掃描儀返回帶有“ IToken下划線” TextAttributeIToken而不是正常的,或者是否有標記語法錯誤的特定機制?
  • 如何實現滾動條標記? IAnnotationModel在這里是相關的接口嗎? 如果是這樣,我在哪里注冊實現以便標記出現?
  • 我只找到了SourceViewerConfiguration.getAnnotationHover() ,這將允許我實現懸停行為,但僅適用於“注釋”,我想這意味着滾動條標記 - 如何實現文本本身的懸停行為?

我會很高興具體的建議以及一個涵蓋這個的教程的URL - 日食幫助文檔和示例似乎沒有。

編輯:標記是最好的解決方案。 有關如何使用它們的工作示例可以在org.eclipse.ui.examples.readmetool.AddReadmeMarkerAction中的插件示例代碼中找到。

你應該使用標記。

源自“Java開發人員Eclipse指南”的示例如下:

<extension point="org.eclipse.core.resources.markers"  
            id="snakesyntax"  
            name="Snake syntax error">  
    <super type="org.eclipse.core.resources.problemmarker" />  
    <super type="org.eclipse.core.resources.textmarker" />  
    <persistent value="true" />
<extension>

IMarker marker = res.createMarker("com.ibm.tool.resources.snakesyntax");

marker.setAttribute(IMarker.SEVERITY, 0);
marker.setAttribute(IMarker.CHAR_START, startOfSyntaxError);
marker.setAttribute(IMarker.CHAR_END, endOfSyntaxError);
marker.setAttribute(IMarker.LOCATION, "Snake file");
marker.setAttribute(IMarker.MESSAGE, "Syntax error");

正確的方法是使用標記界面。

標記本質上是一種將標記對象映射到源代碼中的位置的模型,因此在多個文件中可能存在錯誤的情況下這是有意義的。 (參見IMarker界面)

如果您想要將標記添加到當前編輯器而不是所有項目,則使用Annotations可以選擇更便宜的選項,您可以自行添加刪除。

標記在UI中表示為注釋,但Eclipse會添加和刪除注釋本身。 通過直接注釋,您可以控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM