Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2014 itemis AG (http://www.itemis.eu) and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html /
  
  package org.eclipse.xtext.ui.editor.formatting2;
  
 import static java.util.Collections.*;
 
 import java.util.List;
 
 import  org.eclipse.jface.text.BadLocationException;
 import  org.eclipse.jface.text.IDocument;
 import  org.eclipse.jface.text.IRegion;
 import  org.eclipse.jface.text.formatter.IContentFormatter;
 import  org.eclipse.jface.text.formatter.IFormattingStrategy;
 import  org.eclipse.text.edits.MultiTextEdit;
 import  org.eclipse.text.edits.ReplaceEdit;
 import  org.eclipse.text.edits.TextEdit;
 
 
 public class ContentFormatter implements IContentFormatter {
 
 	public class FormattingUnitOfWork implements IUnitOfWork<TextEdit, XtextResource> {
 		private final IXtextDocument document;
 		private final IRegion region;
 
 		public FormattingUnitOfWork(IXtextDocument document, IRegion region) {
 			super();
 			this. = document;
 			this. = region;
 		}
 
 		public TextEdit exec(XtextResource statethrows Exception {
 			return ContentFormatter.this.exec(state);
 		}
 	}
 
 	private final static Logger LOG = Logger.getLogger(FormattingUnitOfWork.class);
 
 
 
 
 
 	protected TextEdit createTextEdit(List<ITextReplacementreplacements) {
 		final MultiTextEdit mte = new MultiTextEdit();
 		for (ITextReplacement tr : replacements)
 			mte.addChild(new ReplaceEdit(tr.getOffset(), tr.getLength(), tr.getReplacementText()));
 		return mte;
 	}
 
 	protected TextEdit exec(IXtextDocument document, IRegion regionXtextResource resourcethrows Exception {
 		try {
 			IParseResult parseResult = resource.getParseResult();
 			if (parseResult != null) {
 				initRequest(documentregionresourcerequest);
 				IFormatter2 formatter = .get();
 				List<ITextReplacementreplacements = formatter.format(request);
 				final TextEdit mte = createTextEdit(replacements);
 				return mte;
 			}
 		} catch (Exception e) {
 			.error("Error formatting " + resource.getURI() + ": " + e.getMessage(), e);
 		}
 		return new MultiTextEdit();
 	}
 
	public void format(IDocument document, IRegion region) {
		IXtextDocument doc = (IXtextDocumentdocument;
		TextEdit r = doc.priorityReadOnly(new FormattingUnitOfWork(docregion));
		try {
			if (r != null)
				r.apply(document);
catch (BadLocationException e) {
			throw new RuntimeException(e);
		}
	}
	public IFormattingStrategy getFormattingStrategy(String contentType) {
		return null;
	}
	}
	protected void initRequest(IXtextDocument document, IRegion regionXtextResource resourceFormatterRequest request) {
		ITextRegion textRegion = new TextRegion(region.getOffset(), region.getLength());
		request.setAllowIdentityEdits(false);
		request.setRegions(singletonList(textRegion));
		ITextRegionAccess tokenAccess = .forNodeModel(resource).create();
		request.setPreferences(TypedPreferenceValues.castOrWrap(preferenceValues));
		request.setTextRegionAccess(tokenAccess);
		if (tokenAccess.hasSyntaxError())
		else
	}
		this. = cfgProvider;
	}
New to GrepCode? Check out our FAQ X