Java Examples for org.eclipse.jface.text.formatter.IContentFormatterExtension
The following java examples will help you to understand the usage of org.eclipse.jface.text.formatter.IContentFormatterExtension. These source code samples are taken from different open source projects.
Example 1
| Project: cdt-tests-runner-master File: TranslationUnitPreview.java View source code |
@Override
protected void doFormatPreview() {
if (fPreviewText == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(fPreviewText);
fSourceViewer.setVisibleRegion(fPreviewTextOffset, fPreviewText.length() - fPreviewTextOffset);
fSourceViewer.setRedraw(false);
final IFormattingContext context = new FormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
Map<String, String> prefs = fWorkingValues;
if (fFormatterId != null) {
prefs = new HashMap<String, String>(fWorkingValues);
prefs.put(CCorePreferenceConstants.CODE_FORMATTER, fFormatterId);
}
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, prefs);
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else {
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
}
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, CUIPlugin.getPluginId(), ICStatusConstants.INTERNAL_ERROR, FormatterMessages.CPreview_formatter_exception, e);
CUIPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 2
| Project: tern.java-master File: CleanUpPreview.java View source code |
private void format(String text) {
if (text == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(text);
if (!fFormat)
return;
fSourceViewer.setRedraw(false);
final IFormattingContext context = new CommentFormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, JavaScriptCore.getOptions());
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, JavaScriptPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, MultiFixMessages.CleanUpRefactoringWizard_formatterException_errorMessage, e);
JavaScriptPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 3
| Project: rdt-master File: RubyScriptPreview.java View source code |
protected void doFormatPreview() {
if (fPreviewText == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(fPreviewText);
fSourceViewer.setRedraw(false);
final IFormattingContext context = new CommentFormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, fWorkingValues);
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, RubyPlugin.getPluginId(), IRubyStatusConstants.INTERNAL_ERROR, FormatterMessages.RubyPreview_formatter_exception, e);
RubyPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 4
| Project: platform_sdk-master File: AndroidXmlFormatter.java View source code |
@Override
public final void format(IDocument document, IRegion region) {
/**
* This method is probably not going to be called. It is part of the
* {@link IContentFormatter} but since we also implement
* {@link IContentFormatterExtension} Eclipse should /* be calling
* {@link #format(IDocument,IFormattingContext)} instead. However, for
* completeness (and because other implementations of {@link IContentFormatter}
* also do this we might as well make the method behave correctly
*/
FormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.FALSE);
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
format(document, context);
}Example 5
| Project: webtools.jsdt.tests-master File: FormattingTests.java View source code |
/**
* <p>
* This is run once before all of the tests
* </p>
*
* @see junit.extensions.TestSetup#setUp()
*/
public void setUp() throws Exception {
// set up formatting tools
fJavaScriptTextTools = JavaScriptPlugin.getDefault().getJavaTextTools();
JavaScriptSourceViewerConfiguration config = new JavaScriptSourceViewerConfiguration(fJavaScriptTextTools.getColorManager(), JavaScriptPlugin.getDefault().getCombinedPreferenceStore(), null, IJavaScriptPartitions.JAVA_PARTITIONING);
fFormatter = (IContentFormatterExtension) config.getContentFormatter(null);
fFormattingContext = new FormattingContext();
fFormattingContext.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, JavaScriptCore.getOptions());
fFormattingContext.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
// set non-interactive
String noninteractive = System.getProperty(WTP_AUTOTEST_NONINTERACTIVE);
if (noninteractive != null) {
previousWTPAutoTestNonInteractivePropValue = noninteractive;
} else {
previousWTPAutoTestNonInteractivePropValue = "false";
}
System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, "true");
}Example 6
| Project: webtools.sourceediting-master File: StructuredTextViewer.java View source code |
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.text.ITextOperationTarget#doOperation(int)
*/
public void doOperation(int operation) {
Point selection = getTextWidget().getSelection();
int cursorPosition = selection.x;
int selectionLength = selection.y - selection.x;
switch(operation) {
case CUT:
beginRecording(TEXT_CUT, TEXT_CUT, cursorPosition, selectionLength);
super.doOperation(operation);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case PASTE:
beginRecording(TEXT_PASTE, TEXT_PASTE, cursorPosition, selectionLength);
super.doOperation(operation);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case CONTENTASSIST_PROPOSALS:
// maybe not configured?
if (fContentAssistant != null && isEditable()) {
// position
if (canDoOperation(CONTENTASSIST_PROPOSALS)) {
String err = fContentAssistant.showPossibleCompletions();
if (err != null) {
// don't wanna beep if there is no error
PlatformStatusLineUtil.displayTemporaryErrorMessage(this, err);
}
} else
beep();
}
break;
case CONTENTASSIST_CONTEXT_INFORMATION:
if (fContentAssistant != null) {
String err = fContentAssistant.showContextInformation();
if (err != null) {
// don't wanna beep if there is no error
PlatformStatusLineUtil.displayTemporaryErrorMessage(this, err);
}
}
break;
case SHIFT_RIGHT:
beginRecording(TEXT_SHIFT_RIGHT, TEXT_SHIFT_RIGHT, cursorPosition, selectionLength);
updateIndentationPrefixes();
doModelOperation(SHIFT_RIGHT);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case SHIFT_LEFT:
beginRecording(TEXT_SHIFT_LEFT, TEXT_SHIFT_LEFT, cursorPosition, selectionLength);
updateIndentationPrefixes();
doModelOperation(SHIFT_LEFT);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case FORMAT_DOCUMENT:
DocumentRewriteSession rewriteSession = null;
IDocument document = getDocument();
try {
/*
* This command will actually format selection if text is
* selected, otherwise format entire document
*/
// begin recording
beginRecording(FORMAT_DOCUMENT_TEXT, FORMAT_DOCUMENT_TEXT, cursorPosition, selectionLength);
boolean formatDocument = false;
IRegion region = null;
Point s = getSelectedRange();
if (s.y > 0) {
// only format currently selected text
region = new Region(s.x, s.y);
} else {
// no selection, so format entire document
region = getModelCoverage();
formatDocument = true;
}
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 || selection.y > MAX_SMALL_FORMAT_LENGTH) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = (extension.getActiveRewriteSession() != null) ? null : extension.startRewriteSession(type);
} else {
setRedraw(false);
}
if (fContentFormatter instanceof IContentFormatterExtension) {
IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
IFormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(formatDocument));
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
extension.format(document, context);
} else {
fContentFormatter.format(document, region);
}
} finally {
try {
if (rewriteSession != null) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
setRedraw(true);
}
} finally {
// end recording
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
}
}
break;
case FORMAT_ACTIVE_ELEMENTS:
rewriteSession = null;
document = getDocument();
try {
/*
* This command will format the node at cursor position
* (and all its children)
*/
// begin recording
beginRecording(FORMAT_ACTIVE_ELEMENTS_TEXT, FORMAT_ACTIVE_ELEMENTS_TEXT, cursorPosition, selectionLength);
IRegion region = null;
Point s = getSelectedRange();
if (s.y > -1) {
// only format node at cursor position
region = new Region(s.x, s.y);
}
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 || selection.y > MAX_SMALL_FORMAT_LENGTH) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = (extension.getActiveRewriteSession() != null) ? null : extension.startRewriteSession(type);
} else {
setRedraw(false);
}
if (fContentFormatter instanceof IContentFormatterExtension) {
IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
IFormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.FALSE);
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
extension.format(getDocument(), context);
} else {
fContentFormatter.format(getDocument(), region);
}
} finally {
try {
if (rewriteSession != null) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
setRedraw(true);
}
} finally {
// end recording
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
}
}
break;
default:
super.doOperation(operation);
}
}Example 7
| Project: edt-master File: EGLPreview.java View source code |
protected void doFormatPreview() {
fPreviewDocument.set(fPreviewText);
fSourceViewer.setRedraw(false);
final IFormattingContext context = new FormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, fPreferenceSetting);
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
}
} finally {
fSourceViewer.setRedraw(true);
}
}Example 8
| Project: pdt-master File: PHPStructuredTextViewer.java View source code |
/**
* This method overrides WST since sometimes we get a subset of the document
* and NOT the whole document, although the case is FORMAT_DOCUMENT. In all
* other cases we call the parent method.
*/
@Override
public void doOperation(int operation) {
Point selection = getTextWidget().getSelection();
int cursorPosition = selection.x;
// save the last cursor position and the top visible line.
int selectionLength = selection.y - selection.x;
int topLine = getTextWidget().getTopIndex();
switch(operation) {
case FORMAT_DOCUMENT:
try {
setRedraw(false);
// begin recording
beginRecording(FORMAT_DOCUMENT_TEXT, FORMAT_DOCUMENT_TEXT, cursorPosition, selectionLength);
IRegion region;
// selection
if (selectionLength != 0) {
region = new Region(cursorPosition, selectionLength);
} else {
region = new Region(0, getDocument().getLength());
}
if (fContentFormatter instanceof IContentFormatterExtension) {
IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
IFormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.TRUE);
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
extension.format(getDocument(), context);
} else {
fContentFormatter.format(getDocument(), region);
}
} finally {
// end recording
selection = getTextWidget().getSelection();
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
// return the cursor to its original position after the
// formatter change its position.
getTextWidget().setSelection(cursorPosition);
getTextWidget().setTopIndex(topLine);
setRedraw(true);
}
return;
case CONTENTASSIST_PROPOSALS:
// (instead of printing the stack trace)
if (fViewerConfiguration != null) {
IProject project = null;
boolean isJavaScriptRegion = false;
boolean hasJavaScriptNature = true;
try {
// Resolve the partition type
IStructuredDocument sDoc = (IStructuredDocument) getDocument();
// get the "real" offset - adjusted according to the
// projection
int selectionOffset = getSelectedRange().x;
IStructuredDocumentRegion sdRegion = sDoc.getRegionAtCharacterOffset(selectionOffset);
if (sdRegion == null) {
super.doOperation(operation);
return;
}
ITextRegion textRegion = sdRegion.getRegionAtCharacterOffset(selectionOffset);
if (textRegion instanceof ForeignRegion) {
ForeignRegion foreignRegion = (ForeignRegion) textRegion;
//$NON-NLS-1$
isJavaScriptRegion = "script".equalsIgnoreCase(foreignRegion.getSurroundingTag());
}
// Check if the containing project has JS nature or not
if (fTextEditor instanceof PHPStructuredEditor) {
PHPStructuredEditor phpEditor = (PHPStructuredEditor) fTextEditor;
IModelElement modelElement = phpEditor.getModelElement();
if (modelElement != null) {
IScriptProject scriptProject = modelElement.getScriptProject();
project = scriptProject.getProject();
if (project != null && project.isAccessible() && project.getNature(JavaScriptCore.NATURE_ID) == null) {
hasJavaScriptNature = false;
}
}
}
// open dialog if required
if (isJavaScriptRegion && !hasJavaScriptNature) {
Shell activeWorkbenchShell = PHPUiPlugin.getActiveWorkbenchShell();
// Pop a question dialog - if the user selects 'Yes' JS
// Support is added, otherwise no change
int addJavaScriptSupport = OptionalMessageDialog.open("PROMPT_ADD_JAVASCRIPT_SUPPORT", activeWorkbenchShell, PHPUIMessages.PHPStructuredTextViewer_0, null, PHPUIMessages.PHPStructuredTextViewer_1, OptionalMessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants// $NON-NLS-1$
.NO_LABEL }, 0);
// run the JSDT action for adding the JS nature
if (addJavaScriptSupport == 0 && project != null) {
SetupProjectsWizzard wiz = new SetupProjectsWizzard();
wiz.setActivePart(null, this.getTextEditor());
wiz.selectionChanged(null, new StructuredSelection(project));
wiz.run(null);
}
}
} catch (CoreException e) {
Logger.logException(e);
}
}
// an explicit request
if (fViewerConfiguration != null) {
PHPStructuredTextViewerConfiguration structuredTextViewerConfiguration = (PHPStructuredTextViewerConfiguration) fViewerConfiguration;
IContentAssistProcessor[] all = structuredTextViewerConfiguration.getContentAssistProcessors(this, PHPPartitionTypes.PHP_DEFAULT);
for (IContentAssistProcessor element : all) {
if (element instanceof PHPCompletionProcessor) {
((PHPCompletionProcessor) element).setExplicit(true);
}
}
}
super.doOperation(operation);
return;
case SHOW_OUTLINE:
if (fOutlinePresenter != null) {
fOutlinePresenter.showInformation();
}
return;
case SHOW_HIERARCHY:
if (fHierarchyPresenter != null) {
fHierarchyPresenter.showInformation();
}
return;
case DELETE:
StyledText textWidget = getTextWidget();
if (textWidget == null)
return;
ITextSelection textSelection = null;
if (redraws()) {
try {
textSelection = (ITextSelection) getSelection();
int length = textSelection.getLength();
if (!textWidget.getBlockSelection() && (length == 0 || length == textWidget.getSelectionRange().y))
getTextWidget().invokeAction(ST.DELETE_NEXT);
else
deleteSelection(textSelection, textWidget);
if (fFireSelectionChanged) {
Point range = textWidget.getSelectionRange();
fireSelectionChanged(range.x, range.y);
}
} catch (BadLocationException x) {
}
}
return;
}
super.doOperation(operation);
}Example 9
| Project: eclipse.platform.text-master File: SourceViewer.java View source code |
@Override
public void doOperation(int operation) {
if (getTextWidget() == null || (!redraws() && operation != FORMAT))
return;
switch(operation) {
case CONTENTASSIST_PROPOSALS:
fContentAssistant.showPossibleCompletions();
return;
case CONTENTASSIST_CONTEXT_INFORMATION:
fContentAssistant.showContextInformation();
return;
case QUICK_ASSIST:
// FIXME: must find a way to post to the status line
/* String msg= */
fQuickAssistAssistant.showPossibleQuickAssists();
// setStatusLineErrorMessage(msg);
return;
case INFORMATION:
fInformationPresenter.showInformation();
return;
case FORMAT:
{
final Point selection = rememberSelection();
final IRewriteTarget target = getRewriteTarget();
final IDocument document = getDocument();
IFormattingContext context = null;
DocumentRewriteSession rewriteSession = null;
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 && document.getLength() > 1000) || selection.y > 1000 ? DocumentRewriteSessionType.SEQUENTIAL : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = extension.startRewriteSession(type);
} else {
setRedraw(false);
target.beginCompoundChange();
}
try {
final String rememberedContents = document.get();
try {
if (fContentFormatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
context = createFormattingContext(selection.x, selection.y);
if (context == null) {
return;
}
Object region = context.getProperty(FormattingContextProperties.CONTEXT_REGION);
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(region == null));
extension.format(document, context);
} else {
IRegion r;
if (selection.y == 0) {
IRegion coverage = getModelCoverage();
r = coverage == null ? new Region(0, 0) : coverage;
} else {
r = new Region(selection.x, selection.y);
}
fContentFormatter.format(document, r);
}
updateSlaveDocuments(document);
} catch (RuntimeException x) {
document.set(rememberedContents);
throw x;
}
} finally {
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
target.endCompoundChange();
setRedraw(true);
}
restoreSelection();
if (context != null)
context.dispose();
}
return;
}
default:
super.doOperation(operation);
}
}Example 10
| Project: eclipse3-master File: StructuredTextViewer.java View source code |
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.text.ITextOperationTarget#doOperation(int)
*/
public void doOperation(int operation) {
Point selection = getTextWidget().getSelection();
int cursorPosition = selection.x;
int selectionLength = selection.y - selection.x;
switch(operation) {
case CUT:
beginRecording(TEXT_CUT, TEXT_CUT, cursorPosition, selectionLength);
super.doOperation(operation);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case PASTE:
beginRecording(TEXT_PASTE, TEXT_PASTE, cursorPosition, selectionLength);
super.doOperation(operation);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case CONTENTASSIST_PROPOSALS:
// maybe not configured?
if (fContentAssistant != null && isEditable()) {
// position
if (canDoOperation(CONTENTASSIST_PROPOSALS)) {
String err = fContentAssistant.showPossibleCompletions();
if (err != null) {
// don't wanna beep if there is no error
PlatformStatusLineUtil.displayTemporaryErrorMessage(this, err);
}
} else
beep();
}
break;
case CONTENTASSIST_CONTEXT_INFORMATION:
if (fContentAssistant != null) {
String err = fContentAssistant.showContextInformation();
if (err != null) {
// don't wanna beep if there is no error
PlatformStatusLineUtil.displayTemporaryErrorMessage(this, err);
}
}
break;
case SHIFT_RIGHT:
beginRecording(TEXT_SHIFT_RIGHT, TEXT_SHIFT_RIGHT, cursorPosition, selectionLength);
updateIndentationPrefixes();
doModelOperation(SHIFT_RIGHT);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case SHIFT_LEFT:
beginRecording(TEXT_SHIFT_LEFT, TEXT_SHIFT_LEFT, cursorPosition, selectionLength);
updateIndentationPrefixes();
doModelOperation(SHIFT_LEFT);
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
break;
case FORMAT_DOCUMENT:
DocumentRewriteSession rewriteSession = null;
IDocument document = getDocument();
try {
/*
* This command will actually format selection if text is selected, otherwise format
* entire document
*/
// begin recording
beginRecording(FORMAT_DOCUMENT_TEXT, FORMAT_DOCUMENT_TEXT, cursorPosition, selectionLength);
boolean formatDocument = false;
IRegion region = null;
Point s = getSelectedRange();
if (s.y > 0) {
// only format currently selected text
region = new Region(s.x, s.y);
} else {
// no selection, so format entire document
region = getModelCoverage();
formatDocument = true;
}
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 || selection.y > MAX_SMALL_FORMAT_LENGTH) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = (extension.getActiveRewriteSession() != null) ? null : extension.startRewriteSession(type);
} else {
setRedraw(false);
}
if (fContentFormatter instanceof IContentFormatterExtension) {
IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
IFormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(formatDocument));
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
extension.format(document, context);
} else {
fContentFormatter.format(document, region);
}
} finally {
try {
if (rewriteSession != null) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
setRedraw(true);
}
} finally {
// end recording
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
}
}
break;
case FORMAT_ACTIVE_ELEMENTS:
rewriteSession = null;
document = getDocument();
try {
/*
* This command will format the node at cursor position (and all its children)
*/
// begin recording
beginRecording(FORMAT_ACTIVE_ELEMENTS_TEXT, FORMAT_ACTIVE_ELEMENTS_TEXT, cursorPosition, selectionLength);
IRegion region = null;
Point s = getSelectedRange();
if (s.y > -1) {
// only format node at cursor position
region = new Region(s.x, s.y);
}
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 || selection.y > MAX_SMALL_FORMAT_LENGTH) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = (extension.getActiveRewriteSession() != null) ? null : extension.startRewriteSession(type);
} else {
setRedraw(false);
}
if (fContentFormatter instanceof IContentFormatterExtension) {
IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
IFormattingContext context = new FormattingContext();
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.FALSE);
context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
extension.format(getDocument(), context);
} else {
fContentFormatter.format(getDocument(), region);
}
} finally {
try {
if (rewriteSession != null) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
setRedraw(true);
}
} finally {
// end recording
selection = getTextWidget().getSelection();
cursorPosition = selection.x;
selectionLength = selection.y - selection.x;
endRecording(cursorPosition, selectionLength);
}
}
break;
default:
super.doOperation(operation);
}
}Example 11
| Project: CodingSpectator-master File: CleanUpPreview.java View source code |
private void format(String text) {
if (text == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(text);
if (!fFormat) {
if (!fCorrectIndentation)
return;
fSourceViewer.setRedraw(false);
try {
IndentAction.indent(fPreviewDocument, null);
} catch (BadLocationException e) {
JavaPlugin.log(e);
} finally {
fSourceViewer.setRedraw(true);
}
return;
}
fSourceViewer.setRedraw(false);
final IFormattingContext context = new JavaFormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, JavaCore.getOptions());
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, MultiFixMessages.CleanUpRefactoringWizard_formatterException_errorMessage, e);
JavaPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 12
| Project: vjet.eclipse-master File: FormattingTests.java View source code |
/**
* Default constructor
*
* @param test
* do setup for the given test
*/
/**
* <p>
* This is run once before all of the tests
* </p>
*
* @see junit.extensions.TestSetup#setUp()
*/
@BeforeClass
public void setUp() throws Exception {
// set up formatting tools
fJavaScriptTextTools = VjetUIPlugin.getDefault().getTextTools();
JavascriptSourceViewerConfiguration config = new JavascriptSourceViewerConfiguration(fJavaScriptTextTools.getColorManager(), VjetUIPlugin.getDefault().getPreferenceStore(), null, IDocumentExtension3.DEFAULT_PARTITIONING);
fFormatter = (IContentFormatterExtension) config.getContentFormatter(null);
Assert.assertNotNull(fFormatter);
fFormattingContext = new FormattingContext();
fFormattingContext.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, VjetPlugin.getOptions());
fFormattingContext.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
// set non-interactive
String noninteractive = System.getProperty(WTP_AUTOTEST_NONINTERACTIVE);
if (noninteractive != null) {
previousWTPAutoTestNonInteractivePropValue = noninteractive;
} else {
previousWTPAutoTestNonInteractivePropValue = "false";
}
System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, "true");
}Example 13
| Project: Eclipse-Postfix-Code-Completion-master File: CleanUpPreview.java View source code |
private void format(String text) {
if (text == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(text);
if (!fFormat) {
if (!fCorrectIndentation)
return;
fSourceViewer.setRedraw(false);
try {
IndentAction.indent(fPreviewDocument, null);
} catch (BadLocationException e) {
JavaPlugin.log(e);
} finally {
fSourceViewer.setRedraw(true);
}
return;
}
fSourceViewer.setRedraw(false);
final IFormattingContext context = new JavaFormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, JavaCore.getOptions());
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, MultiFixMessages.CleanUpRefactoringWizard_formatterException_errorMessage, e);
JavaPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 14
| Project: cdt-master File: TranslationUnitPreview.java View source code |
@Override
protected void doFormatPreview() {
if (fPreviewText == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(fPreviewText);
fSourceViewer.setVisibleRegion(fPreviewTextOffset, fPreviewText.length() - fPreviewTextOffset);
fSourceViewer.setRedraw(false);
final IFormattingContext context = new FormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
Map<String, String> prefs = fWorkingValues;
if (fFormatterId != null) {
prefs = new HashMap<String, String>(fWorkingValues);
prefs.put(CCorePreferenceConstants.CODE_FORMATTER, fFormatterId);
}
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, prefs);
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else {
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
}
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, CUIPlugin.getPluginId(), ICStatusConstants.INTERNAL_ERROR, FormatterMessages.CPreview_formatter_exception, e);
CUIPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 15
| Project: eclipse.jdt.ui-master File: CleanUpPreview.java View source code |
private void format(String text) {
if (text == null) {
//$NON-NLS-1$
fPreviewDocument.set("");
return;
}
fPreviewDocument.set(text);
if (!fFormat) {
if (!fCorrectIndentation)
return;
fSourceViewer.setRedraw(false);
try {
IndentAction.indent(fPreviewDocument, null);
} catch (BadLocationException e) {
JavaPlugin.log(e);
} finally {
fSourceViewer.setRedraw(true);
}
return;
}
fSourceViewer.setRedraw(false);
final IFormattingContext context = new JavaFormattingContext();
try {
final IContentFormatter formatter = fViewerConfiguration.getContentFormatter(fSourceViewer);
if (formatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) formatter;
context.setProperty(FormattingContextProperties.CONTEXT_PREFERENCES, JavaCore.getOptions());
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.valueOf(true));
extension.format(fPreviewDocument, context);
} else
formatter.format(fPreviewDocument, new Region(0, fPreviewDocument.getLength()));
} catch (Exception e) {
final IStatus status = new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, MultiFixMessages.CleanUpRefactoringWizard_formatterException_errorMessage, e);
JavaPlugin.log(status);
} finally {
context.dispose();
fSourceViewer.setRedraw(true);
}
}Example 16
| Project: lambda4jdt-master File: SourceViewer.java View source code |
/*
* @see ITextOperationTarget#doOperation(int)
*/
public void doOperation(int operation) {
if (getTextWidget() == null || (!redraws() && operation != FORMAT))
return;
switch(operation) {
case CONTENTASSIST_PROPOSALS:
fContentAssistant.showPossibleCompletions();
return;
case CONTENTASSIST_CONTEXT_INFORMATION:
fContentAssistant.showContextInformation();
return;
case QUICK_ASSIST:
// FIXME: must find a way to post to the status line
/* String msg= */
fQuickAssistAssistant.showPossibleQuickAssists();
// setStatusLineErrorMessage(msg);
return;
case INFORMATION:
fInformationPresenter.showInformation();
return;
case FORMAT:
{
final Point selection = rememberSelection();
final IRewriteTarget target = getRewriteTarget();
final IDocument document = getDocument();
IFormattingContext context = null;
DocumentRewriteSession rewriteSession = null;
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
DocumentRewriteSessionType type = (selection.y == 0 && document.getLength() > 1000) || selection.y > 1000 ? DocumentRewriteSessionType.SEQUENTIAL : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
rewriteSession = extension.startRewriteSession(type);
} else {
setRedraw(false);
target.beginCompoundChange();
}
try {
final String rememberedContents = document.get();
try {
if (fContentFormatter instanceof IContentFormatterExtension) {
final IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
context = createFormattingContext();
if (selection.y == 0) {
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.TRUE);
} else {
context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.FALSE);
context.setProperty(FormattingContextProperties.CONTEXT_REGION, new Region(selection.x, selection.y));
}
extension.format(document, context);
} else {
IRegion r;
if (selection.y == 0) {
IRegion coverage = getModelCoverage();
r = coverage == null ? new Region(0, 0) : coverage;
} else {
r = new Region(selection.x, selection.y);
}
fContentFormatter.format(document, r);
}
updateSlaveDocuments(document);
} catch (RuntimeException x) {
document.set(rememberedContents);
throw x;
}
} finally {
if (document instanceof IDocumentExtension4) {
IDocumentExtension4 extension = (IDocumentExtension4) document;
extension.stopRewriteSession(rewriteSession);
} else {
target.endCompoundChange();
setRedraw(true);
}
restoreSelection();
if (context != null)
context.dispose();
}
return;
}
default:
super.doOperation(operation);
}
}