Over a million developers have joined DZone.

How to Format Java Code Using Eclipse JDT?

· Java Zone

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

Yo probably format your code often by pressing Ctrl+Shift+F or right clicking Source -> Format. This function is also provide in JDT, so you can also format your Java code in code.

However finding correct class to do this function is not straight-forward, because one of them is a internal class.

The following is the code to format Java code by using DefaultCodeFormatter.

import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.formatter.CodeFormatter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.MalformedTreeException;
import org.eclipse.text.edits.TextEdit;
 
public class FormatterTest {
 
	public static void main(String[] args) {
		String code = "public class TestFormatter{public static void main(String[] args){System.out.println(\"Hello World\");}}";
		CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);
 
		TextEdit textEdit = codeFormatter.format(CodeFormatter.K_COMPILATION_UNIT, code, 0, code.length(), 0, null);
		IDocument doc = new Document(code);
		try {
			textEdit.apply(doc);
			System.out.println(doc.get());
		} catch (MalformedTreeException e) {
			e.printStackTrace();
		} catch (BadLocationException e) {
			e.printStackTrace();
		}
	}
}

he apply() method in TextEdit class is the key to this problem. It applies the edit tree rooted by this edit to the GIVEN document.

Output in console:

JDT-codeformatter






Depending on your Eclipse version, you will need the following jar files:

  1. org.eclipse.core.contenttype_3.4.1.R35x_v20090826-0451.jar
  2. org.eclipse.core.jobs_3.4.100.v20090429-1800.jar
  3. org.eclipse.core.resources_3.5.2.R35x_v20091203-1235.jar
  4. org.eclipse.equinox.common_3.5.1.R35x_v20090807-1100.jar
  5. org.eclipse.equinox.preferences_3.2.301.R35x_v20091117.jar
  6. org.eclipse.jdt.core_3.5.2.v_981_R35x.jar
  7. org.eclipse.osgi_3.5.2.R35x_v20100126.jar
  8. org.eclipse.text_3.5.101.v20110928-1504.jar
  9. org.eclipse.core.runtime_3.5.0.v20090525.jar

 

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.

Topics:

Published at DZone with permission of Ryan Wang. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}