public Object execute(ExecutionEvent event) throws ExecutionException { try { XtextEditor editor = EditorUtils.getActiveXtextEditor(event); if (editor != null) { final ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection(); editor.getDocument().readOnly(new IUnitOfWork.Void<XtextResource>() { @Override public void process(XtextResource state) throws Exception { EObject target = eObjectAtOffsetHelper.resolveElementAt(state, selection.getOffset()); findReferences(target); } }); } } catch (Exception e) { LOG.error(Messages.FindReferencesHandler_3, e); } return null; }
protected void toLineStart(XtextEditor editor) { IAction action = editor.getAction(ITextEditorActionDefinitionIds.LINE_START); action.run(); } }
protected void releaseWidgetToken() { ISourceViewer viewer = editor.getInternalSourceViewer(); if (viewer instanceof IWidgetTokenOwner) { IWidgetTokenOwner widgetTokenOwner = (IWidgetTokenOwner) viewer; widgetTokenOwner.releaseWidgetToken(this); } }
protected IAnnotationModel getAnnotationModel(XtextEditor editor) { if(editor != null) { IEditorInput editorInput = editor.getEditorInput(); if(editorInput != null) { IDocumentProvider documentProvider = editor.getDocumentProvider(); if(documentProvider != null) { return documentProvider.getAnnotationModel(editorInput); } } } return null; }
protected void updateStatusLine() { final ITextSelection selection = (ITextSelection) getSelectionProvider().getSelection(); final Annotation annotation = getAnnotation(selection.getOffset(), selection.getLength()); String message = null; if (annotation != null) { updateMarkerViews(annotation); if (isProblemMarkerAnnotation(annotation)) { message = annotation.getText(); } } setStatusLineMessage(message); }
private ValidationJob newValidationJob(XtextEditor editor) { MarkerIssueProcessor markerIssueProcessor = new MarkerIssueProcessor(editor.getResource(), markerCreator, markerTypeProvider); ValidationJob validationJob = new ValidationJob(resourceValidator, editor.getDocument(), markerIssueProcessor, CheckMode.NORMAL_AND_FAST); return validationJob; } }
public IXtextDocument getDocument() { return currentEditor.getDocument(); }
@Override public void run() { ITextSelection selection = (ITextSelection) xtextEditor.getSelectionProvider().getSelection(); ITextRegion currentEditorSelection = new TextRegion(selection.getOffset(), selection.getLength()); ITextRegion nextSelection = xtextEditor.getDocument().readOnly(createTextSelectionWork(currentEditorSelection)); if (nextSelection == null || nextSelection == ITextRegion.EMPTY_REGION || nextSelection.equals(currentEditorSelection)) { return; } xtextEditor.selectAndReveal(nextSelection.getOffset(), nextSelection.getLength()); }
public Object execute(ExecutionEvent event) throws ExecutionException { XtextEditor xtextEditor = EditorUtils.getActiveXtextEditor(event); if (xtextEditor != null) { IValidationIssueProcessor issueProcessor; IXtextDocument xtextDocument = xtextEditor.getDocument(); IResource resource = xtextEditor.getResource(); if(resource != null) issueProcessor = new MarkerIssueProcessor(resource, markerCreator, markerTypeProvider); else issueProcessor = new AnnotationIssueProcessor(xtextDocument, xtextEditor.getInternalSourceViewer().getAnnotationModel(), issueResolutionProvider); ValidationJob validationJob = new ValidationJob(resourceValidator, xtextDocument, issueProcessor, CheckMode.ALL); validationJob.schedule(); } return this; } }
@Override public void launch(IEditorPart editor, String mode) { final XtextEditor xtextEditor = EditorUtils.getXtextEditor(editor); final ISelection selection = xtextEditor.getSelectionProvider().getSelection(); if (selection instanceof ITextSelection) { final ITextSelection sel = (ITextSelection) selection; final EObject obj = xtextEditor.getDocument().readOnly(resource -> { final IParseResult parseRes = resource.getParseResult(); if (parseRes == null) { return null; } final ICompositeNode rootNode = parseRes.getRootNode(); final ILeafNode node = NodeModelUtils.findLeafNodeAtOffset(rootNode, sel.getOffset()); return NodeModelUtils.findActualSemanticObjectFor(node); }); if (obj != null) { final EObject elt = EcoreUtil2.getContainerOfType(obj, getValidEObjectType()); if (elt != null) { searchAndLaunch(mode, elt); return; } } } else if (selection != null) { launch(selection, mode); return; } // Default launching searchAndLaunch(mode, xtextEditor.getResource()); }
protected void selectText(XtextEditor editor,int relativeToCurrentOffset,int length) throws Exception { ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection(); editor.getInternalSourceViewer().setSelectedRange(selection.getOffset()+relativeToCurrentOffset, length); }
private ITextSelection getTextSelection(XtextEditor activeXtextEditor) { return (ITextSelection) activeXtextEditor.getSelectionProvider().getSelection(); }
if (edits == null) return null; final IXtextDocument document = xtextEditor.getDocument(); LinkedPositionGroup group = new LinkedPositionGroup(); Iterable<LinkedPosition> linkedPositions = filter( final int invocationOffset = xtextEditor.getInternalSourceViewer().getSelectedRange().x; int i = 0; for (LinkedPosition position : sortPositions(linkedPositions, invocationOffset)) {
public IMarkerResolution[] getResolutions(IMarker marker) { final IMarkerResolution[] emptyResult = new IMarkerResolution[0]; try { if(!marker.isSubtypeOf(MarkerTypes.ANY_VALIDATION)) return emptyResult; } catch (CoreException e) { return emptyResult; } if(!languageResourceHelper.isLanguageResource(marker.getResource())) { return emptyResult; } XtextEditor editor = getEditor(marker.getResource()); if(editor == null) return emptyResult; IAnnotationModel annotationModel = editor.getDocumentProvider().getAnnotationModel(editor.getEditorInput()); if(annotationModel != null && !isMarkerStillValid(marker, annotationModel)) return emptyResult; final Iterable<IssueResolution> resolutions = getResolutions(getIssueUtil().createIssue(marker), editor.getDocument()); return getAdaptedResolutions(Lists.newArrayList(resolutions)); }
final IResource res = breakpointUtil.getBreakpointResource(xtextEditor.getEditorInput()); final URI uri = breakpointUtil.getBreakpointURI(xtextEditor.getEditorInput()); final int offset = ((TextSelection) selection).getOffset(); final int line = xtextEditor.getDocument().getLineOfOffset(offset) + 1; Data data = xtextEditor.getDocument().readOnly(new IUnitOfWork<Data, XtextResource>() { public Data exec(XtextResource state) throws Exception { IResourceServiceProvider provider = state.getResourceServiceProvider(); log.debug("Types the breakpoint listens for : " + data.types); final IRegion information = xtextEditor.getDocument().getLineInformation(line - 1); final int charStart = information.getOffset(); final int charEnd = information.getOffset() + information.getLength();
public void undoDocumentChanges() { final ISourceViewer viewer = editor.getInternalSourceViewer(); try { editor.getSite().getWorkbenchWindow().run(false, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { if (viewer instanceof ITextViewerExtension6) { IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager(); if (undoManager instanceof IUndoManagerExtension) { IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager; IUndoContext undoContext = undoManagerExtension.getUndoContext(); IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory(); while (undoManager.undoable()) { if (startingUndoOperation != null && startingUndoOperation.equals(operationHistory.getUndoOperation(undoContext))) return; undoManager.undo(); } } } } }); syncUtil.waitForReconciler(editor); } catch (Exception e) { LOG.error(e.getMessage(), e); } } }
@Override public IStatus runInUIThread(final IProgressMonitor monitor) { IEditorSite site = null != editor ? editor.getEditorSite() : null; if (site != null) { if (!monitor.isCanceled() && editor != null) { if (titleImage != null && !titleImage.isDisposed()) { editor.updatedTitleImage(titleImage); titleImage = null; } else if (titleImageDescription != null) { Image image = imageHelper.getImage(titleImageDescription); if (editor.getTitleImage() != image) { editor.updatedTitleImage(image); } titleImageDescription = null; } } } return Status.OK_STATUS; }
@Override public void afterCreatePartControl(XtextEditor editor) { super.afterCreatePartControl(editor); IResource resource = editor.getResource(); if (resource!=null && !toggleNature.hasNature(resource.getProject()) && resource.getProject().isAccessible() && !resource.getProject().isHidden()) { String title = Messages.NatureAddingEditorCallback_MessageDialog_Title; String message = Messages.NatureAddingEditorCallback_MessageDialog_Msg0 + resource.getProject().getName() + Messages.NatureAddingEditorCallback_MessageDialog_Msg1; Image image = null; MessageDialog dialog = new MessageDialog(editor.getEditorSite().getShell(), title, image, message, MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL }, 0); int open = dialog.open(); if (open==0) { toggleNature.toggleNature(resource.getProject()); } } }
protected void updateImageAndRegisterListener() { defaultImage = editor.getDefaultImage(); updateEditorImage(editor); annotationModel = editor.getInternalSourceViewer().getAnnotationModel(); if (annotationModel != null) annotationModel.addAnnotationModelListener(this); }
@Override public void run() { try { // Move offset to the line of the annotation, if necessary IDocument document = getDocument(); int annotationLine = ruler.getLineOfLastMouseButtonActivity(); int annotationLineOffet = document.getLineOffset(annotationLine); Point currentSelection = textEditor.getInternalSourceViewer().getSelectedRange(); int currentLine = document.getLineOfOffset(currentSelection.x); if (currentLine != annotationLine) textEditor.getInternalSourceViewer().setSelectedRange(annotationLineOffet, 0); // show QuickFix dialog ITextOperationTarget operation = (ITextOperationTarget) textEditor.getAdapter(ITextOperationTarget.class); final int opCode = ISourceViewer.QUICK_ASSIST; if (operation != null && operation.canDoOperation(opCode)) operation.doOperation(opCode); } catch (BadLocationException e) { // Ignore -> do nothing } }