Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 33432 Details for
Bug 75333
[format] standalone code reformatter
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
workspace patch for jdt.core and jdt.ui
commandlineformatter.patch (text/plain), 32.07 KB, created by
Ben Konrath
on 2006-01-21 17:50:22 EST
(
hide
)
Description:
workspace patch for jdt.core and jdt.ui
Filename:
MIME Type:
Creator:
Ben Konrath
Created:
2006-01-21 17:50:22 EST
Size:
32.07 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: plugin.xml >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/plugin.xml,v >retrieving revision 1.82 >diff -u -r1.82 plugin.xml >--- plugin.xml 4 Nov 2005 18:06:53 -0000 1.82 >+++ plugin.xml 21 Jan 2006 22:20:36 -0000 >@@ -163,7 +163,18 @@ > <fileTypes extension="jardesc" type="text"/> > <fileTypes extension="zip" type="binary"/> > </extension> >- >+ >+<!-- =================================================================================== --> >+<!-- Extension: Java Code Formatter --> >+<!-- =================================================================================== --> >+<extension >+ id="JavaCodeFormatter" >+ point="org.eclipse.core.runtime.applications"> >+ <application> >+ <run class="org.eclipse.jdt.core.formatter.CodeFormatterApplication" /> >+ </application> >+</extension> >+ > <!-- =================================================================================== --> > <!-- Extension: Java Content Types --> > <!-- =================================================================================== --> >Index: formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java,v >retrieving revision 1.11 >diff -u -r1.11 CodeFormatter.java >--- formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java 23 Mar 2005 21:40:56 -0000 1.11 >+++ formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java 21 Jan 2006 22:20:36 -0000 >@@ -79,7 +79,7 @@ > * level of zero or below has no effect. > * @param lineSeparator the line separator to use in formatted source, > * if set to <code>null</code>, then the platform default one will be used. >- * @return the text edit >+ * @return the text edit or <code>null</code> if the given string cannot be formatted. > * @throws IllegalArgumentException if offset is lower than 0, length is lower than 0 or > * length is greater than source length. > */ >Index: formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java >=================================================================== >RCS file: formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java >diff -N formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,24 @@ >+package org.eclipse.jdt.core.formatter; >+ >+/* >+ * These numbers need to be here so that the formatter application can check if >+ * the specified formatter config file is compatible. >+ * >+ */ >+public class ProfileVersionNumbers { >+ >+ private ProfileVersionNumbers() { /* shouldn't be instantiated */ } >+ >+ public static final int VERSION_1= 1; // < 20040113 (includes M6) >+ public static final int VERSION_2= 2; // before renaming almost all >+ public static final int VERSION_3= 3; // after renaming almost all >+ public static final int VERSION_4= 4; >+ public static final int VERSION_5= 5; // after splitting of FORMATTER_INDENT_BLOCK_STATEMENTS >+ public static final int VERSION_6= 6; // after splitting of new_line_in_control_statements >+ public static final int VERSION_7= 7; // after moving comment formatter to JDT Core >+ public static final int VERSION_8= 8; // fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=89739 >+ public static final int VERSION_9= 9; // after storing project profile names in preferences >+ >+ public static final int CURRENT_VERSION= VERSION_9; >+ >+} >Index: formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties >=================================================================== >RCS file: formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties >diff -N formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,43 @@ >+/******************************************************************************* >+ * Copyright (c) 2004 Ben Konrath <ben@bagu.org> >+ * 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 >+ * >+ * Contributors: >+ * Ben Konrath <ben@bagu.org> - initial implementation >+ *******************************************************************************/ >+ >+CommandLine.start=Starting format job ... >+CommandLine.done=Done. >+CommandLine.config.file=Configuration Name: {0} >+CommandLine.formatting=Formatting: {0} >+ >+CommandLine.usage=Usage: {0} [ OPTIONS ] <files> >+ >+CommandLine.files=<files> >+CommandLine.files.msg1=Java source files and/or directories to format. >+CommandLine.files.msg2=Only files ending with {0} will be formatted in the given directory. >+ >+CommandLine.options=OPTIONS: >+CommandLine.config={0} <file> >+CommandLine.config.msg1=Use the formatting style from the specified config file. >+CommandLine.config.msg2=This file must be an xml file that has been exported by Eclipse 3.0. >+CommandLine.help=Display this message. >+CommandLine.quiet=Only print error messages. >+CommandLine.verbose=Be verbose about the formatting job. >+ >+CommandLineError.file={0} does not exsit. Please specify only valid Java Source files. >+CommandLineError.config=There was problem reading the config file, {0}. >+CommandLineError.file.dir=You must specify at least one file or dirctory to format. >+CommandLineError.quiet.verbose=You cannot use the options {0} and {1} together. >+ >+Exception.io=Caught IOExecption: >+Exception.bad.location=Caught BadLocationException: >+Exception.skip=Skipping File. >+ >+ConfigFile.reading.error=Error Reading config file. >+ >+Edit.problem=The Eclipse formatter had a problem {0}, Skipping. >+ >Index: formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java >=================================================================== >RCS file: formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java >diff -N formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,422 @@ >+/******************************************************************************* >+ * Copyright (c) 2004 Ben Konrath <ben@bagu.org> >+ * 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 >+ * >+ * Contributors: >+ * Ben Konrath <ben@bagu.org> - initial implementation >+ * Red Hat Incorporated - add ProfileVersionNumbers.CURRENT_VERSION >+ *******************************************************************************/ >+ >+package org.eclipse.jdt.core.formatter; >+ >+import java.io.BufferedReader; >+import java.io.BufferedWriter; >+import java.io.File; >+import java.io.FileInputStream; >+import java.io.FileReader; >+import java.io.FileWriter; >+import java.io.IOException; >+import java.io.Writer; >+import java.text.MessageFormat; >+import java.util.ArrayList; >+import java.util.HashMap; >+import java.util.Map; >+import java.util.MissingResourceException; >+import java.util.ResourceBundle; >+ >+import javax.xml.parsers.ParserConfigurationException; >+import javax.xml.parsers.SAXParser; >+import javax.xml.parsers.SAXParserFactory; >+ >+import org.eclipse.core.runtime.IPlatformRunnable; >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.jdt.core.ToolFactory; >+import org.eclipse.jdt.internal.core.util.Util; >+import org.eclipse.jface.text.BadLocationException; >+import org.eclipse.jface.text.Document; >+import org.eclipse.jface.text.IDocument; >+import org.eclipse.text.edits.TextEdit; >+import org.xml.sax.Attributes; >+import org.xml.sax.InputSource; >+import org.xml.sax.SAXException; >+import org.xml.sax.helpers.DefaultHandler; >+ >+/** >+ * Class that handles the org.eclipse.jdt.core.JavaCodeFormatter the >+ * application. The map file reading code is based on code in ProfileStore.java >+ * (org.eclipse.jdf.ui). >+ * >+ * There are a couple improvements that could be made: >+ * 1. Add an import clean up option (requires stuff from org.eclipse.jdt.ui). >+ * 2. Make a list of all the files first so that a file does not get formatted twice. >+ * 3. Use a text based progress monitor for output. >+ * 4. Allow using/updating older versions of the formatter config file. This requires >+ * a largish refactor because ProfilerVersioner is tied to the >+ * org.eclipse.jdt.internal.ui.preferences code which is tied to several UI plugins. >+ * >+ * @author Ben Konrath <ben@bagu.org> >+ */ >+public class CodeFormatterApplication implements IPlatformRunnable { >+ >+ /** >+ * A SAX event handler to parse the config xml. >+ */ >+ private final static class ConfigHandler extends DefaultHandler { >+ >+ /** >+ * Identifiers for the XML file. >+ */ >+ private final String XML_NODE_ROOT = "profiles"; //$NON-NLS-1$ >+ >+ private final String XML_NODE_PROFILE = "profile"; //$NON-NLS-1$ >+ >+ private final String XML_NODE_SETTING = "setting"; //$NON-NLS-1$ >+ >+ private final String XML_ATTRIBUTE_VERSION = "version"; //$NON-NLS-1$ >+ >+ private final String XML_ATTRIBUTE_ID = "id"; //$NON-NLS-1$ >+ >+ private final String XML_ATTRIBUTE_NAME = "name"; //$NON-NLS-1$ >+ >+ private final String XML_ATTRIBUTE_VALUE = "value"; //$NON-NLS-1$ >+ >+ private int fVersion; >+ >+ private String fName; >+ >+ private Map fSettings; >+ >+ public void startElement(String uri, String localName, String qName, >+ Attributes attributes) throws SAXException { >+ >+ if (qName.equals(XML_NODE_SETTING)) { >+ >+ final String key = attributes.getValue(XML_ATTRIBUTE_ID); >+ final String value = attributes.getValue(XML_ATTRIBUTE_VALUE); >+ fSettings.put(key, value); >+ >+ } else if (qName.equals(XML_NODE_PROFILE)) { >+ >+ fName = attributes.getValue(XML_ATTRIBUTE_NAME); >+ fSettings = new HashMap(200); >+ >+ } else if (qName.equals(XML_NODE_ROOT)) { >+ >+ try { >+ fVersion = Integer.parseInt(attributes >+ .getValue(XML_ATTRIBUTE_VERSION)); >+ } catch (NumberFormatException ex) { >+ throw new SAXException(ex); >+ } >+ >+ } >+ } >+ >+ public Map getSettings() { >+ return fSettings; >+ } >+ >+ public int getVersion() { >+ return fVersion; >+ } >+ >+ public String getName() { >+ return fName; >+ } >+ >+ } >+ >+ /** >+ * Deals with the messages in the properties file (cut n' pasted from a >+ * generated class). >+ */ >+ private final static class FormatterAppMessages { >+ private static final String BUNDLE_NAME = "org.eclipse.jdt.core.formatter.FormatterAppMessages";//$NON-NLS-1$ >+ >+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle >+ .getBundle(BUNDLE_NAME); >+ >+ public static String getString(String key) { >+ try { >+ return RESOURCE_BUNDLE.getString(key); >+ } catch (MissingResourceException e) { >+ return '!' + key + '!'; >+ } >+ } >+ >+ public static String getFormattedString(String key, String arg) { >+ return getFormattedString(key, new String[] { arg }); >+ } >+ >+ public static String getFormattedString(String key, String[] args) { >+ return MessageFormat.format(getString(key), args); >+ } >+ } >+ >+ /** >+ * Read the xml config file and return a Map representing the options that >+ * are in the specified config file. >+ */ >+ public Map readConfig(String filename) { >+ >+ try { >+ final FileInputStream reader = new FileInputStream(new File( >+ filename)); >+ final ConfigHandler handler = new ConfigHandler(); >+ >+ try { >+ InputSource inputSource = new InputSource(reader); >+ final SAXParserFactory factory = SAXParserFactory.newInstance(); >+ final SAXParser parser = factory.newSAXParser(); >+ parser.parse(inputSource, handler); >+ if (handler.getVersion() != ProfileVersionNumbers.CURRENT_VERSION) >+ return null; >+ configName = handler.getName(); >+ return handler.getSettings(); >+ >+ } finally { >+ try { reader.close(); } catch (IOException e) { /* ignore */ } >+ } >+ >+ } catch (IOException e) { >+ Util.log(e, FormatterAppMessages >+ .getString("ConfigFile.reading.error")); //$NON-NLS-1$ >+ } catch (SAXException e) { >+ Util.log(e, FormatterAppMessages >+ .getString("ConfigFile.reading.error")); //$NON-NLS-1$ >+ } catch (ParserConfigurationException e) { >+ Util.log(e, FormatterAppMessages >+ .getString("ConfigFile.reading.error")); //$NON-NLS-1$ >+ } >+ return null; >+ } >+ >+ /** >+ * Runs the Java code formatter application >+ */ >+ public Object run(Object args) throws Exception { >+ >+ ArrayList fileList = processCommandLine((String[]) args); >+ >+ // nothing to do >+ if (fileList == null || fileList.isEmpty()) >+ return EXIT_OK; >+ >+ if (!quiet) { >+ if (configName != null) >+ System.out.println(FormatterAppMessages.getFormattedString("CommandLine.config.file", configName)); //$NON-NLS-1$ >+ System.out.println(FormatterAppMessages.getString("CommandLine.start")); //$NON-NLS-1$ >+ } >+ >+ // format the list of files and/or directories >+ while (!fileList.isEmpty()) { >+ File file = (File) fileList.remove(0); >+ >+ if (file.isDirectory()) >+ formatDirTree(file); >+ else >+ formatFile(file); >+ } >+ >+ if (!quiet) { >+ System.out.println(FormatterAppMessages.getString("CommandLine.done")); //$NON-NLS-1$ >+ } >+ >+ return EXIT_OK; >+ } >+ >+ private void displayHelp(String message) { >+ System.err.println(message); >+ System.out.println(""); //$NON-NLS-1$ >+ displayHelp(); >+ } >+ >+ private String configName; >+ >+ /* >+ * The output will look like this: >+ * >+ * "Usage: eclipse -application org.eclipse.jdt.core.JavaCodeFormatter [ OPTIONS ] <files> >+ * <files> Java source files and/or directories to format. >+ * Only files ending with .java will be formatted in the given directory. >+ * OPTIONS: >+ * -config <file> Use the formatting style from the specified config file. >+ * This file must be an xml file that has been exported by Eclipse 3.0. >+ * -help Display this message. >+ * -quiet Only print error messages. >+ * -verbose Be verbose about the formatting job. >+ */ >+ private void displayHelp() { >+ String binaryName = Platform.getOS().equals(Platform.OS_WIN32) ? "eclipse.exe" : "eclipse"; //$NON-NLS-1$ //$NON-NLS-2$ >+ >+ // this is UG-LY. is there a way to make this look nicer? >+ System.out.println(FormatterAppMessages.getFormattedString("CommandLine.usage", //$NON-NLS-1$ >+ binaryName + " -application org.eclipse.jdt.core.JavaCodeFormatter")); //$NON-NLS-1$ >+ System.out.println(""); //$NON-NLS-1$ >+ >+ System.out.println(" " + FormatterAppMessages.getString("CommandLine.files") //$NON-NLS-1$ //$NON-NLS-2$ >+ + "\t" + FormatterAppMessages.getString("CommandLine.files.msg1")); //$NON-NLS-1$ //$NON-NLS-2$ >+ System.out.println("\t\t" //$NON-NLS-1$ >+ + FormatterAppMessages.getFormattedString("CommandLine.files.msg2", ".java")); //$NON-NLS-1$ //$NON-NLS-2$ >+ >+ System.out.println(FormatterAppMessages.getString("CommandLine.options")); //$NON-NLS-1$ >+ System.out.println(" " + FormatterAppMessages.getFormattedString("CommandLine.config", ARG_CONFIG) //$NON-NLS-1$ //$NON-NLS-2$ >+ + "\t" + FormatterAppMessages.getString("CommandLine.config.msg1")); //$NON-NLS-1$ //$NON-NLS-2$ >+ System.out.println("\t\t\t" + FormatterAppMessages.getString("CommandLine.config.msg2")); //$NON-NLS-1$ //$NON-NLS-2$ >+ System.out.println(" " + ARG_HELP + "\t\t" + FormatterAppMessages.getString("CommandLine.help")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >+ System.out.println(" " + ARG_QUIET + "\t\t" + FormatterAppMessages.getString("CommandLine.quiet")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >+ System.out.println(" " + ARG_VERBOSE +"\t\t" + FormatterAppMessages.getString("CommandLine.verbose")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >+ } >+ >+ private final String ARG_HELP = "-help"; //$NON-NLS-1$ >+ private final String ARG_CONFIG = "-config"; //$NON-NLS-1$ >+ private final String ARG_VERBOSE = "-verbose"; //$NON-NLS-1$ >+ private final String ARG_QUIET = "-quiet"; //$NON-NLS-1$ >+ private boolean verbose = false; >+ private boolean quiet = false; >+ >+ private ArrayList processCommandLine(String[] argsArray) { >+ >+ ArrayList args = new ArrayList(); >+ for (int i = 0; i < argsArray.length; i++) { >+ args.add(argsArray[i]); >+ } >+ >+ // look for flag-like args >+ if (args.remove(ARG_HELP)) { >+ displayHelp(); >+ return null; >+ } >+ if (args.remove(ARG_VERBOSE)) >+ verbose = true; >+ if (args.remove(ARG_QUIET)) >+ quiet = true; >+ >+ if (quiet && verbose) { >+ displayHelp(FormatterAppMessages.getFormattedString >+ ("CommandLineError.quiet.verbose", new String[] {ARG_QUIET, ARG_VERBOSE})); //$NON-NLS-1$ >+ return null; >+ } >+ args.remove("-pdelaunch"); //$NON-NLS-1$ >+ >+ // look for flag/param args >+ int index = args.indexOf(ARG_CONFIG); >+ if (index >= 0) { >+ args.remove(index); >+ String configFile = (String) args.remove(index); >+ options = readConfig(configFile); >+ if (options == null) { >+ displayHelp(FormatterAppMessages >+ .getFormattedString("CommandLineError.config", configFile)); //$NON-NLS-1$ >+ return null; >+ } >+ } >+ >+ // only the files and directories should remain >+ ArrayList fileList = new ArrayList(); >+ while (!args.isEmpty()) { >+ String fileName = (String) args.remove(0); >+ File file = new File(fileName); >+ if (file.exists()) { >+ fileList.add(file); >+ } else { >+ displayHelp(FormatterAppMessages >+ .getFormattedString("CommandLineError.file", fileName)); //$NON-NLS-1$ >+ return null; >+ } >+ } >+ >+ if (fileList.isEmpty()) >+ displayHelp(FormatterAppMessages.getString("CommandLineError.file.dir")); //$NON-NLS-1$ >+ >+ return fileList; >+ } >+ >+ /** >+ * Recursively format the Java source code that is contained in the >+ * directory rooted at dir. >+ */ >+ private void formatDirTree(File dir) { >+ >+ File[] files = dir.listFiles(); >+ if (files == null) >+ return; >+ >+ for (int i = 0; i < files.length; i++) { >+ File file = files[i]; >+ if (file.isDirectory()) { >+ formatDirTree(file); >+ } else if (file.getPath().endsWith(".java")) { //$NON-NLS-1$ >+ formatFile(file); >+ } >+ } >+ } >+ >+ // internal representation of configuration options in the xml file >+ private Map options = null; >+ >+ /** >+ * Format the given Java source file. >+ */ >+ private void formatFile(File file) { >+ >+ IDocument doc = new Document(); >+ try { >+ // read the file >+ final BufferedReader in = new BufferedReader(new FileReader(file)); >+ if (verbose) { >+ System.out.println(FormatterAppMessages.getFormattedString >+ ("CommandLine.formatting", file.getName())); //$NON-NLS-1$ >+ } >+ String line; >+ String contents = ""; //$NON-NLS-1$ >+ try { >+ while ((line = in.readLine()) != null) >+ contents = contents >+ + System.getProperty("line.separator") + line; //$NON-NLS-1$ >+ } finally { >+ try { in.close(); } catch (IOException e) { /* ignore */ } >+ } >+ >+ // format the file (the meat and potatoes) >+ doc.set(contents); >+ TextEdit edit = ToolFactory.createCodeFormatter(options).format( >+ CodeFormatter.K_COMPILATION_UNIT, doc.get(), 0, >+ doc.getLength(), 0, null); >+ if (edit != null) { >+ edit.apply(doc); >+ } else { >+ System.err.println >+ (FormatterAppMessages.getFormattedString("Edit.problem", file.getName())); //$NON-NLS-1$ >+ return; >+ } >+ >+ // write the file >+ final Writer out = new BufferedWriter(new FileWriter(file, false)); >+ try { >+ out.write(doc.get()); >+ out.flush(); >+ } finally { >+ try { out.close(); } catch (IOException e) { /* ignore */ } >+ } >+ >+ } catch (IOException e) { >+ String errorMessage = FormatterAppMessages.getString("Exception.io") + " " //$NON-NLS-1$ //$NON-NLS-2$ >+ + e.getLocalizedMessage(); >+ Util.log(e, errorMessage); >+ System.err.println(errorMessage); >+ System.err.println(FormatterAppMessages.getString("Exception.skip")); //$NON-NLS-1$ >+ >+ } catch (BadLocationException e) { >+ String errorMessage = FormatterAppMessages.getString("Exception.bad.location") + " " //$NON-NLS-1$ //$NON-NLS-2$ >+ + e.getLocalizedMessage(); >+ Util.log(e, errorMessage); >+ System.err.println(errorMessage); >+ System.err.println(FormatterAppMessages.getString("Exception.skip")); //$NON-NLS-1$ >+ } >+ } >+ >+} >#P org.eclipse.jdt.ui >Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java,v >retrieving revision 1.21 >diff -u -r1.21 ProfileStore.java >--- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java 6 Oct 2005 15:41:04 -0000 1.21 >+++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java 21 Jan 2006 22:20:40 -0000 >@@ -50,6 +50,7 @@ > import org.eclipse.core.resources.ResourcesPlugin; > > import org.eclipse.jdt.core.JavaCore; >+import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; > > import org.eclipse.jdt.ui.JavaUI; > >@@ -177,7 +178,7 @@ > } > IEclipsePreferences uiPreferences = instanceScope.getNode(JavaUI.ID_PLUGIN); > uiPreferences.put(PREF_FORMATTER_PROFILES, val); >- uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersioner.CURRENT_VERSION); >+ uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersionNumbers.CURRENT_VERSION); > } finally { > try { stream.close(); } catch (IOException e) { /* ignore */ } > } >@@ -324,7 +325,7 @@ > final Document document= builder.newDocument(); > > final Element rootElement = document.createElement(XML_NODE_ROOT); >- rootElement.setAttribute(XML_ATTRIBUTE_VERSION, Integer.toString(ProfileVersioner.CURRENT_VERSION)); >+ rootElement.setAttribute(XML_ATTRIBUTE_VERSION, Integer.toString(ProfileVersionNumbers.CURRENT_VERSION)); > > document.appendChild(rootElement); > >@@ -381,7 +382,7 @@ > IScopeContext instanceScope= access.getInstanceScope(); > IEclipsePreferences uiPreferences= instanceScope.getNode(JavaUI.ID_PLUGIN); > int version= uiPreferences.getInt(PREF_FORMATTER_PROFILES_VERSION, 0); >- if (version >= ProfileVersioner.CURRENT_VERSION) { >+ if (version >= ProfileVersionNumbers.CURRENT_VERSION) { > return; // is up to date > } > try { >@@ -393,7 +394,7 @@ > if (manager.getSelected() instanceof CustomProfile) { > manager.commitChanges(instanceScope); // updates JavaCore options > } >- uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersioner.CURRENT_VERSION); >+ uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersionNumbers.CURRENT_VERSION); > savePreferences(instanceScope); > > IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects(); >Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java,v >retrieving revision 1.24 >diff -u -r1.24 ProfileManager.java >--- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java 7 Oct 2005 07:31:14 -0000 1.24 >+++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java 21 Jan 2006 22:20:40 -0000 >@@ -28,6 +28,7 @@ > > import org.eclipse.jdt.core.JavaCore; > import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; >+import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; > > import org.eclipse.jdt.internal.corext.util.Messages; > >@@ -63,7 +64,7 @@ > public abstract void setSettings(Map settings); > > public int getVersion() { >- return ProfileVersioner.CURRENT_VERSION; >+ return ProfileVersionNumbers.CURRENT_VERSION; > } > > public boolean hasEqualSettings(Map otherMap, List allKeys) { >@@ -119,7 +120,7 @@ > > public Profile rename(String name, ProfileManager manager) { > final String trimmed= name.trim(); >- CustomProfile newProfile= new CustomProfile(trimmed, fSettings, ProfileVersioner.CURRENT_VERSION); >+ CustomProfile newProfile= new CustomProfile(trimmed, fSettings, ProfileVersionNumbers.CURRENT_VERSION); > manager.addProfile(newProfile); > return newProfile; > } >@@ -235,7 +236,7 @@ > public final static class SharedProfile extends CustomProfile { > > public SharedProfile(String oldName, Map options) { >- super(oldName, options, ProfileVersioner.CURRENT_VERSION); >+ super(oldName, options, ProfileVersionNumbers.CURRENT_VERSION); > } > > public Profile rename(String name, ProfileManager manager) { >@@ -463,8 +464,8 @@ > IEclipsePreferences uiPrefs= context.getNode(JavaUI.ID_PLUGIN); > IEclipsePreferences corePrefs= context.getNode(JavaCore.PLUGIN_ID); > >- int version= uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, ProfileVersioner.VERSION_1); >- if (version != ProfileVersioner.CURRENT_VERSION) { >+ int version= uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, ProfileVersionNumbers.VERSION_1); >+ if (version != ProfileVersionNumbers.CURRENT_VERSION) { > Map allOptions= new HashMap(); > addAll(uiPrefs, allOptions); > addAll(corePrefs, allOptions); >@@ -556,8 +557,8 @@ > final IEclipsePreferences uiPrefs= context.getNode(JavaUI.ID_PLUGIN); > updatePreferences(uiPrefs, fUIKeys, profileOptions); > >- if (uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, 0) != ProfileVersioner.CURRENT_VERSION) { >- uiPrefs.putInt(FORMATTER_SETTINGS_VERSION, ProfileVersioner.CURRENT_VERSION); >+ if (uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, 0) != ProfileVersionNumbers.CURRENT_VERSION) { >+ uiPrefs.putInt(FORMATTER_SETTINGS_VERSION, ProfileVersionNumbers.CURRENT_VERSION); > } > > if (context.getName() == InstanceScope.SCOPE) { >Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java,v >retrieving revision 1.17 >diff -u -r1.17 CreateProfileDialog.java >--- ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java 6 Oct 2005 15:41:04 -0000 1.17 >+++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java 21 Jan 2006 22:20:39 -0000 >@@ -35,6 +35,8 @@ > import org.eclipse.jface.dialogs.IDialogSettings; > import org.eclipse.jface.dialogs.StatusDialog; > >+import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; >+ > import org.eclipse.jdt.ui.JavaUI; > > import org.eclipse.jdt.internal.ui.JavaPlugin; >@@ -186,7 +188,7 @@ > final Map baseSettings= new HashMap(((Profile)fSortedProfiles.get(fProfileCombo.getSelectionIndex())).getSettings()); > final String profileName= fNameText.getText(); > >- fCreatedProfile= new CustomProfile(profileName, baseSettings, ProfileVersioner.CURRENT_VERSION); >+ fCreatedProfile= new CustomProfile(profileName, baseSettings, ProfileVersionNumbers.CURRENT_VERSION); > fProfileManager.addProfile(fCreatedProfile); > super.okPressed(); > } >Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java,v >retrieving revision 1.21 >diff -u -r1.21 ProfileVersioner.java >--- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java 6 Oct 2005 15:41:04 -0000 1.21 >+++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java 21 Jan 2006 22:20:40 -0000 >@@ -16,29 +16,19 @@ > > import org.eclipse.jdt.core.JavaCore; > import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; >+import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; > > import org.eclipse.jdt.internal.corext.util.JavaModelUtil; >+ > import org.eclipse.jdt.internal.ui.preferences.formatter.ProfileManager.CustomProfile; > > > public class ProfileVersioner { > >- public static final int VERSION_1= 1; // < 20040113 (includes M6) >- public static final int VERSION_2= 2; // before renaming almost all >- public static final int VERSION_3= 3; // after renaming almost all >- public static final int VERSION_4= 4; >- public static final int VERSION_5= 5; // after splitting of FORMATTER_INDENT_BLOCK_STATEMENTS >- public static final int VERSION_6= 6; // after splitting of new_line_in_control_statements >- public static final int VERSION_7= 7; // after moving comment formatter to JDT Core >- public static final int VERSION_8= 8; // fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=89739 >- public static final int VERSION_9= 9; // after storing project profile names in preferences >- >- public static final int CURRENT_VERSION= VERSION_9; >- > public static void updateAndComplete(CustomProfile profile) { > final Map oldSettings= profile.getSettings(); > Map newSettings= updateAndComplete(oldSettings, profile.getVersion()); >- profile.setVersion(CURRENT_VERSION); >+ profile.setVersion(ProfileVersionNumbers.CURRENT_VERSION); > profile.setSettings(newSettings); > } > >@@ -47,22 +37,22 @@ > > switch (version) { > >- case VERSION_1: >+ case ProfileVersionNumbers.VERSION_1: > version1to2(oldSettings); > >- case VERSION_2: >+ case ProfileVersionNumbers.VERSION_2: > version2to3(oldSettings); > >- case VERSION_3: >+ case ProfileVersionNumbers.VERSION_3: > version3to4(oldSettings); > >- case VERSION_4: >+ case ProfileVersionNumbers.VERSION_4: > version4to5(oldSettings); > >- case VERSION_5: >+ case ProfileVersionNumbers.VERSION_5: > version5to6(oldSettings); > >- case VERSION_6: >+ case ProfileVersionNumbers.VERSION_6: > version6to7(oldSettings); > > default: >@@ -117,9 +107,9 @@ > > public static int getVersionStatus(CustomProfile profile) { > final int version= profile.getVersion(); >- if (version < CURRENT_VERSION) >+ if (version < ProfileVersionNumbers.CURRENT_VERSION) > return -1; >- else if (version > CURRENT_VERSION) >+ else if (version > ProfileVersionNumbers.CURRENT_VERSION) > return 1; > else > return 0;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 75333
:
17416
|
17493
|
18373
|
33430
|
33432
|
33760
|
33870
|
34106