类org.eclipse.jface.text.ITextViewerExtension6源码实例Demo

下面列出了怎么用org.eclipse.jface.text.ITextViewerExtension6的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: xtext-eclipse   文件: DefaultContentViewer.java
@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);
		}
	}
}
 
源代码2 项目: xtext-eclipse   文件: LinkedEditingUndoSupport.java
public void startRecording(XtextEditor editor) {
	this.editor = editor;
	ISourceViewer viewer = editor.getInternalSourceViewer();
	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();
			startingUndoOperation = operationHistory.getUndoOperation(undoContext);
		}
	}
}
 
源代码3 项目: tlaplus   文件: TLAEditor.java
private IUndoContext getUndoContext() {
	if (getSourceViewer() instanceof ITextViewerExtension6) {
		IUndoManager undoManager = ((ITextViewerExtension6) getSourceViewer()).getUndoManager();
		if (undoManager instanceof IUndoManagerExtension)
			return ((IUndoManagerExtension) undoManager).getUndoContext();
	}
	return null;
}
 
源代码4 项目: saros   文件: EditorAPI.java
/** Enables/disables the ability to edit the document in given editor. */
public static void setEditable(final IEditorPart editorPart, final boolean isEditable) {

  ITextViewer textViewer = getViewer(editorPart);

  if (textViewer == null) return;

  if (isEditable) {
    updateStatusLine(editorPart, "");

    if (textViewer instanceof ITextViewerExtension)
      ((ITextViewerExtension) textViewer).removeVerifyKeyListener(keyVerifier);

    textViewer.setEditable(true);
    setEditorActionState(editorPart, true);

    // TODO use undoLevel from Preferences (TextEditorPlugin)
    if (textViewer instanceof ITextViewerExtension6)
      ((ITextViewerExtension6) textViewer).getUndoManager().setMaximalUndoLevel(200);

  } else {
    updateStatusLine(editorPart, "Not editable");

    if (textViewer instanceof ITextViewerExtension)
      ((ITextViewerExtension) textViewer).prependVerifyKeyListener(keyVerifier);

    textViewer.setEditable(false);
    setEditorActionState(editorPart, false);

    if (textViewer instanceof ITextViewerExtension6)
      ((ITextViewerExtension6) textViewer).getUndoManager().setMaximalUndoLevel(0);
  }
}
 
源代码5 项目: xtext-xtend   文件: UndoTest.java
@Test
public void testUndo() {
  try {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("class Foo {");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("val java.lang.String x");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("val java.util.ArrayList<String> y");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    final XtextEditor editor = this._workbenchTestHelper.openEditor("Foo", _builder.toString());
    this._organizeImportsHandler.doOrganizeImports(editor.getDocument());
    StringConcatenation _builder_1 = new StringConcatenation();
    _builder_1.append("import java.util.ArrayList");
    _builder_1.newLine();
    _builder_1.newLine();
    _builder_1.append("class Foo {");
    _builder_1.newLine();
    _builder_1.append("\t");
    _builder_1.append("val String x");
    _builder_1.newLine();
    _builder_1.append("\t");
    _builder_1.append("val ArrayList<String> y");
    _builder_1.newLine();
    _builder_1.append("}");
    _builder_1.newLine();
    Assert.assertEquals(_builder_1.toString(), editor.getDocument().get());
    final ISourceViewer viewer = editor.getInternalSourceViewer();
    Assert.assertTrue((viewer instanceof ITextViewerExtension6));
    final IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager();
    undoManager.undo();
    StringConcatenation _builder_2 = new StringConcatenation();
    _builder_2.append("class Foo {");
    _builder_2.newLine();
    _builder_2.append("\t");
    _builder_2.append("val java.lang.String x");
    _builder_2.newLine();
    _builder_2.append("\t");
    _builder_2.append("val java.util.ArrayList<String> y");
    _builder_2.newLine();
    _builder_2.append("}");
    _builder_2.newLine();
    Assert.assertEquals(_builder_2.toString(), editor.getDocument().get());
  } catch (Throwable _e) {
    throw Exceptions.sneakyThrow(_e);
  }
}
 
源代码6 项目: typescript.java   文件: RenameLinkedMode.java
public void start() {
	if (getActiveLinkedMode() != null) {
		// for safety; should already be handled in RenameJavaElementAction
		fgActiveLinkedMode.startFullDialog();
		return;
	}

	ISourceViewer viewer = fEditor.getViewer();
	IDocument document = viewer.getDocument();

	ITypeScriptFile tsFile = fEditor.getTypeScriptFile();
	tsFile.setDisableChanged(true);
	fOriginalSelection = viewer.getSelectedRange();
	int offset = fOriginalSelection.x;

	try {
		fLinkedPositionGroup = new LinkedPositionGroup();
		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();
				fStartingUndoOperation = operationHistory.getUndoOperation(undoContext);
			}
		}

		// Find occurrences
		List<OccurrencesResponseItem> occurrences = tsFile.occurrences(offset).get(1000, TimeUnit.MILLISECONDS);

		// Create Eclipse linked position from the occurrences list.
		int start, length;
		for (int i = 0; i < occurrences.size(); i++) {
			OccurrencesResponseItem item = occurrences.get(i);
			start = tsFile.getPosition(item.getStart());
			length = tsFile.getPosition(item.getEnd()) - start;
			LinkedPosition linkedPosition = new LinkedPosition(document, start, length, i);
			if (i == 0) {
				fOriginalName = document.get(start, length);
				fNamePosition = linkedPosition;
			}
			fLinkedPositionGroup.addPosition(linkedPosition);
		}

		fLinkedModeModel = new LinkedModeModel();
		fLinkedModeModel.addGroup(fLinkedPositionGroup);
		fLinkedModeModel.forceInstall();
		fLinkedModeModel.addLinkingListener(new EditorHighlightingSynchronizer(fEditor));
		fLinkedModeModel.addLinkingListener(new EditorSynchronizer());

		LinkedModeUI ui = new EditorLinkedModeUI(fLinkedModeModel, viewer);
		ui.setExitPosition(viewer, offset, 0, Integer.MAX_VALUE);
		ui.setExitPolicy(new ExitPolicy(document));
		ui.enter();

		viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); // by
																				// default,
																				// full
																				// word
																				// is
																				// selected;
																				// restore
																				// original
																				// selection

		if (viewer instanceof IEditingSupportRegistry) {
			IEditingSupportRegistry registry = (IEditingSupportRegistry) viewer;
			registry.register(fFocusEditingSupport);
		}

		openSecondaryPopup();
		// startAnimation();
		fgActiveLinkedMode = this;

	} catch (Exception e) {
		JSDTTypeScriptUIPlugin.log(e);
	}
}
 
public void start() {
		if (getActiveLinkedMode() != null) {
			// for safety; should already be handled in RenameJavaElementAction
			fgActiveLinkedMode.startFullDialog();
			return;
		}

		ISourceViewer viewer= fEditor.getViewer();
		IDocument document= viewer.getDocument();
		fOriginalSelection= viewer.getSelectedRange();
		int offset= fOriginalSelection.x;

		try {
			CompilationUnit root= SharedASTProvider.getAST(getCompilationUnit(), SharedASTProvider.WAIT_YES, null);

			fLinkedPositionGroup= new LinkedPositionGroup();
			ASTNode selectedNode= NodeFinder.perform(root, fOriginalSelection.x, fOriginalSelection.y);
			if (! (selectedNode instanceof SimpleName)) {
				return; // TODO: show dialog
			}
			SimpleName nameNode= (SimpleName) selectedNode;

			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();
					fStartingUndoOperation= operationHistory.getUndoOperation(undoContext);
				}
			}
			
			fOriginalName= nameNode.getIdentifier();
			final int pos= nameNode.getStartPosition();
			ASTNode[] sameNodes= LinkedNodeFinder.findByNode(root, nameNode);

			//TODO: copied from LinkedNamesAssistProposal#apply(..):
			// sort for iteration order, starting with the node @ offset
			Arrays.sort(sameNodes, new Comparator<ASTNode>() {
				public int compare(ASTNode o1, ASTNode o2) {
					return rank(o1) - rank(o2);
				}
				/**
				 * Returns the absolute rank of an <code>ASTNode</code>. Nodes
				 * preceding <code>pos</code> are ranked last.
				 *
				 * @param node the node to compute the rank for
				 * @return the rank of the node with respect to the invocation offset
				 */
				private int rank(ASTNode node) {
					int relativeRank= node.getStartPosition() + node.getLength() - pos;
					if (relativeRank < 0)
						return Integer.MAX_VALUE + relativeRank;
					else
						return relativeRank;
				}
			});
			for (int i= 0; i < sameNodes.length; i++) {
				ASTNode elem= sameNodes[i];
				LinkedPosition linkedPosition= new LinkedPosition(document, elem.getStartPosition(), elem.getLength(), i);
				if (i == 0)
					fNamePosition= linkedPosition;
				fLinkedPositionGroup.addPosition(linkedPosition);
			}

			fLinkedModeModel= new LinkedModeModel();
			fLinkedModeModel.addGroup(fLinkedPositionGroup);
			fLinkedModeModel.forceInstall();
			fLinkedModeModel.addLinkingListener(new EditorHighlightingSynchronizer(fEditor));
			fLinkedModeModel.addLinkingListener(new EditorSynchronizer());

			LinkedModeUI ui= new EditorLinkedModeUI(fLinkedModeModel, viewer);
			ui.setExitPosition(viewer, offset, 0, Integer.MAX_VALUE);
			ui.setExitPolicy(new ExitPolicy(document));
			ui.enter();

			viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); // by default, full word is selected; restore original selection

			if (viewer instanceof IEditingSupportRegistry) {
				IEditingSupportRegistry registry= (IEditingSupportRegistry) viewer;
				registry.register(fFocusEditingSupport);
			}

			openSecondaryPopup();
//			startAnimation();
			fgActiveLinkedMode= this;

		} catch (BadLocationException e) {
			JavaPlugin.log(e);
		}
	}
 
 类所在包
 同包方法