簡體   English   中英

Eclipse PDE:自定義QuickFix僅在問題視圖中可用?

[英]Eclipse PDE: Custom QuickFix only available in Problems View?

我在自定義快速修復方面遇到了麻煩,我希望在我的Eclipse插件中提供,我希望Eclipse PDE中比我更有經驗的人在這個問題上給我一些提示。

據我了解,我可以通過擴展特定標記id的擴展點org.eclipse.ui.ide.markerResolution來提供定制的所謂“快速修復”(或“解決方案”,在Eclipse內部術語中),例如例如一些默認的Eclipse標記org.eclipse.core.resources.problemmarker

這適用於我的默認標記類型和自定義標記類型, 但是 :我的IMarkerResolutionGenerator提供的QuickFix只能從“Problems”-View訪問,而不能從我的標記顯示的編輯器中訪問。

我擁有 :我在默認文本編輯器中創建標記,這會導致(1)帶有標記工具提示消息的圖標顯示在該行的左編輯器標尺上,標記分配給該標記,(2)標記在編輯器的右側,(3)編輯器中的一些帶下划線的字符,以及(4)“問題”視圖中的條目。

我想要的 :就像在Java IDE支持中,我想按Strg + 1,或上下文菜單 - >快速修復,或者單擊左側標尺上的錯誤圖標,查看可用的快速修復程序並選擇一個。

但是 :只有在問題 - 視圖中我才能通過按Strg + 1或從上下文菜單中獲得快速修復。

這是正常的行為,我是否必須訪問另一個擴展點或特定的編輯器功能,以便將我的快速修復程序掛鈎到它們中? 我沒有發現任何有關它的詳細信息,除了每個人似乎對我上面提到的這個唯一的擴展點非常滿意。 我錯過了什么?

完成后,這是我的擴展點定義:

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

我有同樣的問題,我不確定,如果這是正確的方法,但至少它的工作原理:

如果要在源查看器中查看快速修復,則必須為其設置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; 
}

也可以看看在過去后的代碼在這里 ,這是一個有點亂,但你會得到它。 這里查看此代碼以獲取ICompletionProposal的示例實現,您必須在QuickAssistProcessor返回該實現。

如果您只是在標記擴展點添加一行:

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

並將屬性添加到標記marker.setAttribute(IMarker.CHAR_START,...); marker.setAttribute(IMarker.CHAR_END,...);

你將能夠得到這個:

顯示快速修復為文本懸停

但我仍然無法找到如何更改標記圖標(與燈泡變體)一個節目可能快速修復也點擊注釋圖標后。

暫無
暫無

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

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