org.eclipse.ui.views.contentoutline.IContentOutlinePage#org.eclipse.jface.text.ITextViewer源码实例Demo

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

源代码1 项目: goclipse   文件: ContenAssistProcessorExt.java
@Override
	public final ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
		resetComputeState();
		
		// The code below has been commented, it causes a bug with templates with "${word_selection} " usage,
		// and it's not clear this functionality made sense in the first place.
		
//		if(viewer instanceof LangSourceViewer) {
//			LangSourceViewer sourceViewer = (LangSourceViewer) viewer;
//			if(sourceViewer.getSelectedRange().y > 0) {
//				// Correct the invocation offset for content assist. 
//				// The issue is that if text is selected, the cursor can either be on the left, or the right
//				// but the offset used will always be the left side of the selection, unless we correct it.
//				
//				int caretOffset = sourceViewer.getTextWidget().getCaretOffset();
//				offset = sourceViewer.widgetOffset2ModelOffset(caretOffset);
//			}
//		}
		
		return doComputeCompletionProposals(viewer, offset);
	}
 
源代码2 项目: xtext-eclipse   文件: TextViewerOperationAction.java
/**
 * The <code>TextOperationAction</code> implementation of this <code>IAction</code> method runs the operation with
 * the current operation code.
 */
@Override
public void run() {
	if (fOperationCode == -1 || fOperationTarget == null)
		return;

	ITextViewer viewer = getTextViewer();
	if (viewer == null)
		return;

	if (!fRunsOnReadOnly && !canModifyViewer())
		return;

	Display display = null;

	Shell shell = viewer.getTextWidget().getShell();
	if (shell != null && !shell.isDisposed())
		display = shell.getDisplay();

	BusyIndicator.showWhile(display, new Runnable() {
		@Override
		public void run() {
			fOperationTarget.doOperation(fOperationCode);
		}
	});
}
 
源代码3 项目: Pydev   文件: OverrideMethodCompletionProposal.java
@Override
public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
    IDocument document = viewer.getDocument();
    int finalOffset = applyOnDocument(viewer, document, trigger, stateMask, offset);
    if (finalOffset >= 0) {
        try {
            PySelection ps = new PySelection(document, finalOffset);
            int firstCharPosition = PySelection.getFirstCharPosition(ps.getLine());
            int lineOffset = ps.getLineOffset();
            int location = lineOffset + firstCharPosition;
            int len = finalOffset - location;
            fCursorPosition = location;
            fReplacementLength = len;

        } catch (Exception e) {
            Log.log(e);
        }

    }
}
 
源代码4 项目: goclipse   文件: CompletionProposalsGrouping.java
public Indexable<IContextInformation> computeContextInformation(ISourceBufferExt sourceBuffer, 
		ITextViewer viewer, int offset) {
	clearErrorMessage();
	
	ArrayList2<IContextInformation> proposals = new ArrayList2<>();
	
	for (ILangCompletionProposalComputer computer : computers) {
		try {
			Indexable<IContextInformation> computerProposals = computer.computeContextInformation(
				sourceBuffer, viewer, offset);
			if(computerProposals != null) {
				proposals.addAll2(computerProposals);
			}
		} catch(OperationSoftFailure e) {
			updateErrorMessage(e.getMessage());
		}
	}
	return proposals;
}
 
public String getHoverInfo(ITextViewer textViewer, IRegion subject) {
	try {
		IDocument doc= textViewer.getDocument();
		int offset= subject.getOffset();
		if (offset >= 2 && "${".equals(doc.get(offset-2, 2))) { //$NON-NLS-1$
			String varName= doc.get(offset, subject.getLength());
			TemplateContextType contextType= fProcessor.getContextType();
			if (contextType != null) {
				Iterator iter= contextType.resolvers();
				while (iter.hasNext()) {
					TemplateVariableResolver var= (TemplateVariableResolver) iter.next();
					if (varName.equals(var.getType())) {
						return var.getDescription();
					}
				}
			}
		}				
	} catch (BadLocationException e) {
	}
	return null;
}
 
private void validateCompletionProposals(String text, String[] expectedProposalTexts)
		throws IOException, CoreException {
	IProject project = getProject(BASIC_PROJECT_NAME);
	IFile file = project.getFolder("src").getFile("main.rs");
	IEditorPart editor = IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(), file);
	((ITextEditor) editor).getDocumentProvider().getDocument(editor.getEditorInput()).set(text);

	ICompletionProposal[] proposals = (new SnippetContentAssistProcessor()).computeCompletionProposals(
			(ITextViewer) editor.getAdapter(ITextOperationTarget.class), text.length() - 1);
	if (expectedProposalTexts == null) {
		assertTrue(proposals == null || proposals.length == 0);
		return;
	}
	assertNotNull(proposals);
	for (int i = 0; i < proposals.length; i++) {
		assertEquals(((LSCompletionProposal) proposals[i]).getItem().getTextEdit().getNewText(),
				expectedProposalTexts[i]);
	}
}
 
源代码7 项目: APICloud-Studio   文件: SnippetTemplateProposal.java
@Override
public void apply(final ITextViewer viewer, char trigger, int stateMask, final int offset)
{
	delegateTemplateProposal = null;
	if (contains(triggerChars, trigger))
	{
		if (triggerChar == trigger)
		{
			doApply(viewer, trigger, stateMask, offset);
		}
		else
		{
			delegateTemplateProposal = templateProposals[trigger - '1'];
			((ICompletionProposalExtension2) templateProposals[trigger - '1']).apply(viewer, trigger, stateMask,
					offset);
		}
	}
	else
	{
		doApply(viewer, trigger, stateMask, offset);
	}
}
 
源代码8 项目: APICloud-Studio   文件: CSSElementSelectorHover.java
public IRegion getHoverRegion(ITextViewer textViewer, int offset)
{
	IParseNode activeNode = getActiveNode(textViewer, offset);
	if (activeNode instanceof CSSSimpleSelectorNode)
	{
		CSSSimpleSelectorNode node = (CSSSimpleSelectorNode) activeNode;
		// Verify that this is an HTML element selector
		String typeSelector = node.getTypeSelector();
		if (!StringUtil.isEmpty(typeSelector))
		{
			ElementElement element = new HTMLIndexQueryHelper().getElement(typeSelector.toLowerCase());
			if (element != null)
			{
				return new Region(node.getStartingOffset(), node.getLength());
			}
		}
	}

	return null;
}
 
@Override
protected IHyperlink[] doDetect(JsonDocument doc, ITextViewer viewer, HyperlinkInfo info, JsonPointer pointer) {
    Matcher matcher = PATTERN.matcher(pointer.toString());
    String link = matcher.find() ? matcher.group(1) : null;

    if (link != null) {
        Model model = doc.getModel();
        AbstractNode securityScheme = model.find("/components/securitySchemes/" + link);

        if (securityScheme != null) {
            IRegion target = doc.getRegion(securityScheme.getPointer());
            if (target != null) {
                return new IHyperlink[] { new SwaggerHyperlink(info.text, viewer, info.region, target) };
            }
        }
    }
    return null;
}
 
@Override
public IInformationControlCreatorProvider getHoverInfo(final EObject object, final ITextViewer viewer, final IRegion region) {
	return new IInformationControlCreatorProvider2() {

		@Override
		public IInformationControlCreator getHoverControlCreator() {
			return DefaultEObjectHoverProvider.this.getHoverControlCreator();
		}

		@Override
		public Object getInfo() {
			try {
				return getHoverInfo(object, region, null);
			} catch (RuntimeException e) {
				LOG.error("Error on computation of hover information. No hover information available for "+ object + " at " + region, e);
				return null;
			}
		}

		@Override
		public IInformationControlCreator getInformationPresenterControlCreator() {
			return DefaultEObjectHoverProvider.this.getInformationPresenterControlCreator();
		}};
}
 
源代码11 项目: xtext-eclipse   文件: CrossReferenceProposalTest.java
@Test public void testBug276742_08b() throws Exception {
	String modelAsString = "Foo {}";
	ContentAssistProcessorTestBuilder builder = newBuilder();
	XtextContentAssistProcessor processor = get(XtextContentAssistProcessor.class);
	XtextResource resource = getResourceFromString(modelAsString);

	ITextViewer viewer = builder.getSourceViewer(modelAsString, builder.getDocument(resource, modelAsString));
	ContentAssistContext[] contexts = processor.getContextFactory()
			.create(viewer, modelAsString.length(), resource);
	assertEquals(2, contexts.length);
	Set<EClass> contextTypes = Sets.newHashSet(CrossReferenceProposalTestPackage.Literals.MODEL,
			CrossReferenceProposalTestPackage.Literals.CLASS);
	CrossReferenceProposalTestLanguageGrammarAccess grammarAccess = get(CrossReferenceProposalTestLanguageGrammarAccess.class);
	for (ContentAssistContext context : contexts) {
		EObject model = context.getCurrentModel();
		assertTrue(contextTypes.remove(model.eClass()));
		if (context.getFirstSetGrammarElements().contains(
				grammarAccess.getClassAccess().getRightCurlyBracketKeyword_3())) {
			assertEquals(CrossReferenceProposalTestPackage.Literals.CLASS, model.eClass());
		}
		else {
			assertEquals(CrossReferenceProposalTestPackage.Literals.MODEL, model.eClass());
		}
	}
}
 
@Override
public CompletableFuture<ICodeLens[]> provideCodeLenses(ICodeLensContext context, IProgressMonitor monitor) {
	ITextViewer textViewer = context.getViewer();
	IResource resource = TypeScriptResourceUtil.getFile(textViewer.getDocument());
	if (resource == null) {
		return null;
	}
	if (TypeScriptResourceUtil.canConsumeTsserver(resource)) {
		// the project of the resource has typescript nature, execute
		// typescript
		// navtree.
		try {
			IProject project = resource.getProject();
			IIDETypeScriptProject tsProject = TypeScriptResourceUtil.getTypeScriptProject(project);
			IDocument document = textViewer.getDocument();
			IIDETypeScriptFile tsFile = tsProject.openFile(resource, document);
			return tsProject.getClient().navtree(tsFile.getName(), tsFile).thenApply(tree -> {
				List<Range> referenceableSpans = new ArrayList<>();
				if (tree != null && tree.hasChildItems()) {
					tree.getChildItems().forEach(item -> this.walkNavTree(tsFile, item, null, referenceableSpans));
				}
				return toCodeLenses(referenceableSpans, tsFile);
			});
		} catch (Exception e) {
			TypeScriptUIPlugin.log("Error while TypeScript codelens", e);
		}
	}
	return null;
}
 
@Override
protected CompletableFuture<Void> doResolve(ITextViewer viewer, IProgressMonitor monitor) {
	if (getLabel() != null) {
		return super.doResolve(viewer, monitor);
	}
	return CompletableFuture.runAsync(() -> {
		updateLabel();
	});
}
 
/**
 * Returns the information which should be presented when a hover or persistent popup is shown
 * for the specified hover region.
 * 
 * @param textViewer the viewer on which the hover popup should be shown
 * @param hoverRegion the text range in the viewer which is used to determine the hover display
 *            information
 * @param forInformationProvider <code>true</code> iff the hover info is requested by the
 *            information presenter. In this case, the method only considers text hovers for
 *            which a proper IInformationControlCreator is available that can supply focusable
 *            and resizable information controls.
 * 
 * @return the hover popup display information, or <code>null</code> if none available
 * 
 * @see ITextHoverExtension2#getHoverInfo2(ITextViewer, IRegion)
 * @since 3.8
 */
public Object getHoverInfo2(ITextViewer textViewer, IRegion hoverRegion, boolean forInformationProvider) {

	checkTextHovers();
	fBestHover= null;

	if (fInstantiatedTextHovers == null)
		return null;

	for (Iterator<IJavaEditorTextHover> iterator= fInstantiatedTextHovers.iterator(); iterator.hasNext(); ) {
		ITextHover hover= iterator.next();
		if (hover == null)
			continue;

		if (hover instanceof ITextHoverExtension2) {
			Object info= ((ITextHoverExtension2) hover).getHoverInfo2(textViewer, hoverRegion);
			if (info != null && !(forInformationProvider && getInformationPresenterControlCreator(hover) == null)) {
				fBestHover= hover;
				return info;
			}
		} else {
			String s= hover.getHoverInfo(textViewer, hoverRegion);
			if (s != null && s.trim().length() > 0) {
				fBestHover= hover;
				return s;
			}
		}
	}

	return null;
}
 
public JavaDebugElementCodeMiningASTVisitor(IJavaStackFrame frame, CompilationUnit cu, ITextViewer viewer,
		List<ICodeMining> minings, AbstractDebugVariableCodeMiningProvider provider) {
	this.cu = cu;
	this.minings = minings;
	this.provider = provider;
	this.viewer = viewer;
	this.fFrame = frame;
}
 
@Override
protected List provideCodeMinings(ITextViewer viewer, IJavaStackFrame frame, IProgressMonitor monitor) {
	List<ICodeMining> minings = new ArrayList<>();
	ITextEditor textEditor = super.getAdapter(ITextEditor.class);
	ITypeRoot unit = EditorUtility.getEditorInputJavaElement(textEditor, true);
	if (unit == null) {
		return minings;
	}
	CompilationUnit cu = SharedASTProvider.getAST(unit, SharedASTProvider.WAIT_YES, null);
	JavaDebugElementCodeMiningASTVisitor visitor = new JavaDebugElementCodeMiningASTVisitor(frame, cu, viewer,
			minings, this);
	cu.accept(visitor);
	return minings;
}
 
源代码17 项目: xtext-eclipse   文件: JdtHoverProvider.java
@Override
public IInformationControlCreatorProvider getHoverInfo(EObject eObject, ITextViewer viewer, IRegion region) {
	if (eObject instanceof JvmIdentifiableElement) {
		JvmIdentifiableElement jvmIdentifiableElement = (JvmIdentifiableElement) eObject;
		IJavaElement javaElement = javaElementFinder.findElementFor(jvmIdentifiableElement);
		if (javaElement!=null && javaElement.exists()) {
			javadocHover.setJavaElement(javaElement);
			final Object hoverInfo2 = javadocHover.getHoverInfo2(viewer, region);
			return new IInformationControlCreatorProvider2() {

				@Override
				public IInformationControlCreator getHoverControlCreator() {
					return javadocHover.getHoverControlCreator();
				}

				@Override
				public Object getInfo() {
					return hoverInfo2;
				}

				@Override
				public IInformationControlCreator getInformationPresenterControlCreator() {
					return javadocHover.getInformationPresenterControlCreator();
				}
				
			};
		}
	} 
	return null;
}
 
@Override
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
	IXtextDocument document = xtextDocumentUtil.getXtextDocument(viewer);
	if (document != null) {
		return document.priorityReadOnly(createCompletionProposalComputer(viewer, offset));
	}
	return new ICompletionProposal[0];
}
 
源代码19 项目: xtext-eclipse   文件: CompletionProposalComputer.java
public CompletionProposalComputer(State state, ITextViewer viewer, int offset) {
	super();
	this.proposals = new LinkedHashSet<ICompletionProposal>(30);
	this.state = state;
	this.viewer = viewer;
	this.offset = offset;
}
 
源代码20 项目: APICloud-Studio   文件: CommandExecutionUtils.java
private static int getCaretOffset(ITextViewer textViewer)
{
	StyledText textWidget = textViewer.getTextWidget();
	int caretOffset = textWidget.getCaretOffset();
	if (textViewer instanceof ITextViewerExtension5)
	{
		ITextViewerExtension5 extension = (ITextViewerExtension5) textViewer;
		return extension.widgetOffset2ModelOffset(caretOffset);
	}
	return caretOffset;
}
 
@Override
public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
	IXtextDocument xtextDocument = xtextDocumentUtil.getXtextDocument(textViewer);
	if(xtextDocument == null || offset<0 || xtextDocument.getLength() < offset) 
		return null;
	@SuppressWarnings("restriction")
	IRegion word = org.eclipse.jdt.internal.ui.text.JavaWordFinder.findWord(xtextDocument, offset);
	if (word!= null)
		return word;
	//TODO return null for non-operators.
	return new Region(offset, 0);
}
 
源代码22 项目: texlipse   文件: TexCompletionProcessor.java
public IContextInformation[] computeContextInformation(ITextViewer viewer,
		int offset) {

	// FIXME -- for testing
	// Retrieve selected range
	Point selectedRange = viewer.getSelectedRange();
	if (selectedRange.y > 0) {

		if (styleManager == null) {
			styleManager = TexStyleCompletionManager.getInstance();
		}
		return styleManager.getStyleContext();
	}
	return new ContextInformation[0];
}
 
源代码23 项目: uima-uimaj   文件: AnnotationInformationProvider.java
/**
 * TODO: add comment.
 *
 * @param textViewer the text viewer
 * @param offset the offset
 * @return the region
 */
@Override
public IRegion getSubject(ITextViewer textViewer, int offset) {
  Point selection = textViewer.getTextWidget().getSelection();

  int length = selection.y - selection.x;
  return new Region(offset, length);
}
 
源代码24 项目: Pydev   文件: PyDocumentTemplateContext.java
public static PyDocumentTemplateContext createContext(final TemplateContextType contextType,
        final ITextViewer viewer, final IRegion region) {
    if (contextType != null) {
        IDocument document = viewer.getDocument();
        PySelection selection = new PySelection(document,
                ((ITextSelection) viewer.getSelectionProvider().getSelection()).getOffset());
        String indent = selection.getIndentationFromLine();
        return PyDocumentTemplateContext.createContext(contextType, viewer, region, indent);
    }
    return null;
}
 
@Override
public ILineDiffer getDocumentLineDiffer(ITextViewer viewer, ITextEditor textEditor) {
	IQuickDiffReferenceProvider provider = new GitQuickDiffProvider();
	DocumentLineDiffer differ = new DocumentLineDiffer();
	differ.setReferenceProvider(provider);
	provider.setActiveEditor(textEditor);
	return differ;
}
 
private void beginCompoundChange(ITextViewer viewer) {
	if (viewer instanceof ITextViewerExtension) {
		ITextViewerExtension extension= (ITextViewerExtension) viewer;
		IRewriteTarget target= extension.getRewriteTarget();
		target.beginCompoundChange();
	}
}
 
源代码27 项目: goclipse   文件: DelegatingDebugTextHover.java
@SuppressWarnings("deprecation")
@Override
public Object getHoverInfo(ISourceBuffer sourceBuffer, IRegion hoverRegion, ITextViewer textViewer) {
       
	fDelegate = getDelegate();
       if (fDelegate instanceof ITextHoverExtension2) {
		return ((ITextHoverExtension2) fDelegate).getHoverInfo2(textViewer, hoverRegion);
       }
       // fall back to legacy method
       if (fDelegate != null) {
           return fDelegate.getHoverInfo(textViewer, hoverRegion);
       }
       return null;
   }
 
private List<IContextInformation> collectContextInformation(ITextViewer viewer, int offset, IProgressMonitor monitor) {
	List<IContextInformation> proposals= new ArrayList<IContextInformation>();
	ContentAssistInvocationContext context= createContext(viewer, offset);

	List<CompletionProposalCategory> providers= getCategories();
	for (CompletionProposalCategory cat : providers) {
		List<IContextInformation> computed= cat.computeContextInformation(context, fPartition, new SubProgressMonitor(monitor, 1));
		proposals.addAll(computed);
		if (fErrorMessage == null)
			fErrorMessage= cat.getErrorMessage();
	}

	return proposals;
}
 
源代码29 项目: xtext-eclipse   文件: JavaDebugHoverProvider.java
public IInformationControlCreatorProvider getInformationControlCreatorProvider(ITextViewer textViewer,
		IRegion hoverRegion) {

	if (!IS_JAVA_DEBUG_HOVER_AVAILABLE)
		return null;

	final JavaDebugHover javaDebugHover = injector.getInstance(JavaDebugHover.class);
	final Object hoverInfo = javaDebugHover.getHoverInfo2(textViewer, hoverRegion);
	if (hoverInfo == null)
		return null;

	return new IEObjectHoverProvider.IInformationControlCreatorProvider2() {
		@Override
		public IInformationControlCreator getHoverControlCreator() {
			return javaDebugHover.getHoverControlCreator();
		}

		@Override
		public Object getInfo() {
			return hoverInfo;
		}

		@Override
		public IInformationControlCreator getInformationPresenterControlCreator() {
			return javaDebugHover.getInformationPresenterControlCreator();
		}
	};
}
 
源代码30 项目: corrosion   文件: SnippetContentAssistProcessor.java
/**
 * Get the current selection from the given {@code viewer}. If there is a (non
 * empty) selection returns a {@code Range} computed from the selection and
 * returns this wrapped in an optional, otherwise returns an empty optional.
 *
 * @param document currently active document
 * @param viewer   the text viewer for the completion
 * @return either an optional containing the text selection, or an empty
 *         optional, if there is no (non-empty) selection.
 */
private static Optional<Range> getRangeFromSelection(IDocument document, ITextViewer viewer) {
	if (!(viewer instanceof ITextViewerExtension9)) {
		return Optional.empty();
	}
	ITextViewerExtension9 textViewer = (ITextViewerExtension9) viewer;

	ITextSelection textSelection = textViewer.getLastKnownSelection();
	if (textSelection == null) {
		return Optional.empty();
	}
	int selectionLength = textSelection.getLength();
	if (selectionLength <= 0) {
		return Optional.empty();
	}

	try {
		int startOffset = textSelection.getOffset();
		Position startPosition = LSPEclipseUtils.toPosition(startOffset, document);
		int endOffset = startOffset + selectionLength;
		Position endPosition = LSPEclipseUtils.toPosition(endOffset, document);

		return Optional.of(new Range(startPosition, endPosition));
	} catch (BadLocationException e) {
		return Optional.empty();
	}
}