「getVisibleRegion」と呼ばれるインターフェイス関数のお気に入りのフレームワークの実装がいくつかの UI 機能を無効にしている (そして明らかにそれを復元するのを忘れていた) ことがわかりました。
私はフレームワークにバグを報告しましたが、これにより適切な設計について考えるようになりました: 単なる計算/取得操作を暗示する名前の操作に副作用があるのは、どのような条件の下で正当でしょうか?
実際の詳細に興味のある方へ: プラグインが Eclipse のコードの折りたたみを壊し続け、折りたたみバーが消え、「展開」したり、折りたたまれたコードを表示したりすることができなくなるというバグについての報告がありました。ソース コード ビューアーを表す型を持つ ITextViewer での getVisibleRegion() の呼び出しまでたどり着きました。現在、ITextViewer のドキュメントには、「ITextViewerExtension5 を実装するビューアーは、この契約を履行するために、表示される入力ドキュメントの一部を強制的に変更することができる」と記載されています。ただし、実際の実装では、これを少し自由に取りすぎて、投影 (折り畳み) を永久に無効にし、元に戻すことはありませんでした。