私が書いているEclipseプラグインでは、エディターで現在選択されている行のコンテンツに応じて、ポップアップメニューの貢献を表示または非表示にできるようにしたいと考えています。
これを実現するために、プロパティ テスターを使用します。プロパティ テスターによって実行されるテストには少し時間がかかる場合があります (~ 200 ミリ秒) が、ポップアップ メニューが表示されるのを待つ場合には問題ありません。
ただし、ポップアップが表示されようとしているときにプロパティテスターが呼び出されるだけでなく、エディターでテキストをマークするとすぐに呼び出され、テキストの選択が非常に遅くて煩わしいことに気付きました。
質問は次のとおりです。ポップアップが表示されようとしているときだけでなく、テキストを選択/マークするときに呼び出されるのはなぜですか?どうすればそれを回避できますか?
これは、プロパティ テスターとメニューをセットアップした方法です。
<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
class="popupmenucontribtest.PropertyTester"
id="PopupMenuContribTest.test1"
namespace="PopupMenuContribTest.propertyTester"
properties="propertyTester1"
type="java.lang.Object">
</propertyTester>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.ui.popup.any?after=additions">
<command
commandId="PopupMenuContribTest.command"
label="My Popup Option"
style="push">
<visibleWhen
checkEnabled="false">
<and>
<test
forcePluginActivation="true"
property="PopupMenuContribTest.propertyTester.propertyTester1">
</test>
</and>
</visibleWhen>
</command>
</menuContribution>
ありがとう!