org.eclipse.jface.text.IAutoEditStrategy#org.eclipse.xtext.ui.editor.ISourceViewerAware源码实例Demo

下面列出了org.eclipse.jface.text.IAutoEditStrategy#org.eclipse.xtext.ui.editor.ISourceViewerAware 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: n4js   文件: N4JSHyperlinkDetector.java
/**
 * Method copied from super class with only a minor change: call to "readOnly" changed to "tryReadOnly".
 */
@Override
public IHyperlink[] detectHyperlinks(final ITextViewer textViewer, final IRegion region,
		final boolean canShowMultipleHyperlinks) {
	final IDocument xtextDocument = textViewer.getDocument();
	if (!(xtextDocument instanceof N4JSDocument)) {
		return super.detectHyperlinks(textViewer, region, canShowMultipleHyperlinks);
	}
	final IHyperlinkHelper helper = getHelper();
	return ((N4JSDocument) xtextDocument).tryReadOnly(new IUnitOfWork<IHyperlink[], XtextResource>() {
		@Override
		public IHyperlink[] exec(XtextResource resource) throws Exception {
			resource = tryConvertToFileResource(resource);
			if (resource == null) {
				return null;
			}
			if (helper instanceof ISourceViewerAware && textViewer instanceof ISourceViewer) {
				((ISourceViewerAware) helper).setSourceViewer((ISourceViewer) textViewer);
			}
			return helper.createHyperlinksByOffset(resource, region.getOffset(), canShowMultipleHyperlinks);
		}
	}, (IHyperlink[]) null);
}
 
public List<IAutoEditStrategy> getStrategies(final ISourceViewer sourceViewer,final String contentType) {
	final List<IAutoEditStrategy> strategies = Lists.newArrayList();
	configure(new IEditStrategyAcceptor() {
		@Override
		public void accept(IAutoEditStrategy strategy, String type) {
			if (type == null || contentType.equals(type)) {
				if (strategy instanceof ISourceViewerAware) {
					((ISourceViewerAware) strategy).setSourceViewer(sourceViewer);
				}
				if (strategy instanceof VerifyKeyListener) {
					sourceViewer.getTextWidget().addVerifyKeyListener((VerifyKeyListener) strategy);
				}
				strategies.add(strategy);
			}
		}
	});
	return strategies;
}
 
源代码3 项目: xtext-eclipse   文件: XtextReconciler.java
@Override
public void install(ITextViewer textViewer) {
	if (!isInstalled) {
		this.textViewer = textViewer;
		textInputListener = new TextInputListener();
		textViewer.addTextInputListener(textInputListener);
		handleInputDocumentChanged(null, textViewer.getDocument());
		if (textViewer instanceof ISourceViewerExtension4) {
			ContentAssistantFacade facade = ((ISourceViewerExtension4) textViewer).getContentAssistantFacade();
			if (facade == null) {
				shouldInstallCompletionListener = true;
			} else {
				facade.addCompletionListener(documentListener);
			}
			if (strategy instanceof ISourceViewerAware) {
				((ISourceViewerAware) strategy).setSourceViewer((ISourceViewer) textViewer);
			}
		}
		isInstalled = true;
	}
}
 
源代码4 项目: xtext-eclipse   文件: AbstractCompositeHover.java
@Override
public void setSourceViewer(ISourceViewer sourceViewer) {
	if (getHovers() != null) {
		for (ITextHover hover : getHovers()) {
			if (hover instanceof ISourceViewerAware)
				((ISourceViewerAware) hover).setSourceViewer(sourceViewer);
		}
	}
}
 
源代码5 项目: xtext-eclipse   文件: DefaultHyperlinkDetector.java
@Override
public IHyperlink[] detectHyperlinks(final ITextViewer textViewer, final IRegion region, final boolean canShowMultipleHyperlinks) {
	return xtextDocumentUtil.getXtextDocument(textViewer).tryReadOnly(new IUnitOfWork<IHyperlink[],XtextResource>() {
		@Override
		public IHyperlink[] exec(XtextResource resource) throws Exception {
			if (helper instanceof ISourceViewerAware && textViewer instanceof ISourceViewer) {
				((ISourceViewerAware) helper).setSourceViewer((ISourceViewer) textViewer);
			}
			return helper.createHyperlinksByOffset(resource, region.getOffset(), canShowMultipleHyperlinks);
		}
	});
}
 
源代码6 项目: gef   文件: DotHtmlLabelAdaptingTextHover.java
public DotHtmlLabelAdaptingTextHover() {
	IEObjectHover hover = injector.getInstance(IEObjectHover.class);
	if (hover instanceof ISourceViewerAware) {
		((ISourceViewerAware) hover).setSourceViewer(sourceViewer);
	}
	this.hover = hover;
}
 
源代码7 项目: gef   文件: DotSourceViewerConfiguration.java
@Override
public ITextHover getTextHover(ISourceViewer sourceViewer,
		String contentType) {
	if (contentType.equals(
			DotTerminalsTokenTypeToPartitionMapper.HTML_STRING_PARTITION)) {
		ITextHover hover = htmlHoverProvider.get();
		if (hover instanceof ISourceViewerAware) {
			((ISourceViewerAware) hover).setSourceViewer(sourceViewer);
		}
		return hover;
	}
	return super.getTextHover(sourceViewer, contentType);
}