下面列出了怎么用org.eclipse.jface.text.ITextViewerExtension2的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected void configureSourceViewer(ISourceViewer sourceViewer) {
sourceViewer.setEditable(false);
sourceViewer.configure(sourceViewerConfiguration);
if (sourceViewer instanceof ITextViewerExtension6) {
ITextViewerExtension6 textViewerExtension6 = (ITextViewerExtension6) sourceViewer;
textViewerExtension6.setHyperlinkDetectors(null,
sourceViewerConfiguration.getHyperlinkStateMask(sourceViewer));
}
if (sourceViewer instanceof ITextViewerExtension2) {
ITextViewerExtension2 textViewerExtension2 = (ITextViewerExtension2) sourceViewer;
String[] configuredContentTypes = sourceViewerConfiguration.getConfiguredContentTypes(sourceViewer);
for (String contentType : configuredContentTypes) {
textViewerExtension2.removeTextHovers(contentType);
}
}
}
protected void updateShowInvisible(boolean value)
{
if (value)
{
if (whitespaceCharacterPainter == null)
{
whitespaceCharacterPainter = new WhitespaceCharacterPainter(previewViewer);
((ITextViewerExtension2) previewViewer).addPainter(whitespaceCharacterPainter);
}
}
else
{
if (whitespaceCharacterPainter != null)
{
((ITextViewerExtension2) previewViewer).removePainter(whitespaceCharacterPainter);
whitespaceCharacterPainter = null;
}
}
}
private void showIndentGuides() {
if (painter == null) {
painter= new IndentGuidesPainter(textViewer, indentsModel);
painter.getPreferencies();
((ITextViewerExtension2)textViewer).addPainter(painter);
}
}
private void hideIndentGuides() {
if (painter != null) {
((ITextViewerExtension2)textViewer).removePainter(painter);
painter.deactivate(true);
painter.dispose();
painter= null;
}
}
public static void installToEditor( ISourceViewer isv
, PairedBracketsMatcher matcher
, IPreferenceStore store
, String keyHighlightMatch
, String keyColor, String keyColorNoMatch )
{
if (isv instanceof ITextViewerExtension2) {
new PainterOnOffManager(isv, matcher, store, keyHighlightMatch, keyColor, keyColorNoMatch);
}
}
private void showMatching() {
if (painter == null) {
painter= new PairedBracketsPainter(isv, matcher);
painter.setRgb (getRgb(keyColor, DEF_RGB_MATCHED), false);
painter.setNoMatchRgb(getRgb(keyColorNoMatch, DEF_RGB_UNMATCHED), false);
((ITextViewerExtension2)isv).addPainter(painter);
}
}
private void hideMatching() {
if (painter != null) {
((ITextViewerExtension2)isv).removePainter(painter);
painter.deactivate(true);
painter.dispose();
painter= null;
}
}
private void createCursorLinePainter() {
cursorLinePainter = new CursorLinePainter(txtViewer);
Color color = new Color(Display.getCurrent(),PreferenceConverter.getColor(store,ILogViewerConstants.PREF_CURSORLINE_COLOR));
cursorLinePainter.setHighlightColor(color);
ITextViewerExtension2 extension = (ITextViewerExtension2)txtViewer;
extension.addPainter(cursorLinePainter);
}
public void createBackgroundPainter(ISourceViewer viewer)
{
if (fFullLineBackgroundPainter == null)
{
if (viewer instanceof ITextViewerExtension2)
{
boolean lineHighlight = Platform.getPreferencesService().getBoolean(EditorsUI.PLUGIN_ID,
AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE, true, null);
fFullLineBackgroundPainter = new LineBackgroundPainter(viewer);
fFullLineBackgroundPainter.setHighlightLineEnabled(lineHighlight);
ITextViewerExtension2 extension = (ITextViewerExtension2) viewer;
extension.addPainter(fFullLineBackgroundPainter);
}
}
}
private void repairPresentation(ITextViewer viewer) {
if (fRememberedStyleRange != null) {
if (viewer instanceof ITextViewerExtension2) {
// attempts to reduce the redraw area
ITextViewerExtension2 viewer2= (ITextViewerExtension2)viewer;
viewer2.invalidateTextPresentation(fRememberedStyleRange.start, fRememberedStyleRange.length);
} else
viewer.invalidateTextPresentation();
}
}
private void repairPresentation(ITextViewer viewer) {
if (fRememberedStyleRange != null) {
if (viewer instanceof ITextViewerExtension2) {
// attempts to reduce the redraw area
ITextViewerExtension2 viewer2 = (ITextViewerExtension2) viewer;
viewer2.invalidateTextPresentation(fRememberedStyleRange.start, fRememberedStyleRange.length);
} else {
viewer.invalidateTextPresentation();
}
}
}
public static void installToViewer(ITextViewer textViewer, IndentGuidesModel indentsModel) {
if (textViewer instanceof ITextViewerExtension2) {
new PainterOnOffManager(textViewer, indentsModel);
}
}
public void paint(int reason)
{
if (fViewer == null)
{
return;
}
if (fViewer.getDocument() == null)
{
deactivate(false);
return;
}
// initialization
if (!fIsActive)
{
StyledText textWidget = fViewer.getTextWidget();
textWidget.addLineBackgroundListener(this);
textWidget.addPaintListener(this);
fPositionManager.managePosition(fCurrentLine);
fIsActive = true;
}
// This forces redraw of the line highlight
if (updateHighlightLine())
{
// clear last line
// Fix the background colors for tokens that didn't have the same as line!
if (isOpaque() && !fLastLine.isDeleted() && fViewer instanceof ITextViewerExtension2)
{
ITextViewerExtension2 ext = (ITextViewerExtension2) fViewer;
try
{
ext.invalidateTextPresentation(fLastLine.getOffset(), fLastLine.getLength());
}
catch (Exception e)
{
IdeLog.logError(CommonEditorPlugin.getDefault(), MessageFormat.format(
"Error invalidating syntax coloring for offset {0}, length {1}", fLastLine.getOffset(), //$NON-NLS-1$
fLastLine.getLength()), e);
}
}
drawHighlightLine(fLastLine);
// draw new line
drawHighlightLine(fCurrentLine);
}
}
@Override
public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
return getTextHover(sourceViewer, contentType, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);
}
@Override
public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
return getTextHover(sourceViewer, contentType, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);
}
@Override
public final ITextHover getTextHover(ISourceViewer sourceViewer, String contentType) {
return getTextHover(sourceViewer, contentType, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);
}