Проблема в том, что управляемый профиль фактически хранится в вашем рабочем пространстве, а не в вашем проекте.Настройки вставляются в ваш проект, когда вы вносите изменения, специфичные для проекта, например, выбираете другой профиль.Но настройки в проекте отличаются от формата в профиле (в рабочей области).
В настоящее время Eclipse не имеет возможности выполнить это в обратном порядке.То есть не может быть настроек из папки вашего проекта для создания профиля в рабочей области.По сути, «неуправляемый профиль» - это профиль, в который вы потеряли исходный код.
Самый простой способ обратного проектирования профиля - создать файл профиля XML, который можно импортировать (в настройках форматера -> кнопка импорта) .
Для обратного инжиниринга настроек из проекта;Я написал следующую программу.Он считывает настройки из папки проекта и записывает их в виде файла XML:
import java.io.*;
public class ExtractFormatter {
public static void main( String args[] ) throws IOException {
if (args.length < 2)
throw new RuntimeException("No arguements specified; expected <project folder> <output file>");
File inFile = new File(args[0]);
File outFile = new File(args[1]);
BufferedReader reader = new BufferedReader(new FileReader(new File(inFile,
".settings/org.eclipse.jdt.core.prefs")));
PrintWriter writer = new PrintWriter(outFile);
writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>");
// Retain the date from the file as a comment
String line = reader.readLine();
writer.println("<!-- Exported from " + inFile + " -->");
writer.println("<!-- " + line + " -->");
writer.println("<profiles version=\"12\">");
writer.println("<profile kind=\"CodeFormatterProfile\" name=\"" + inFile.getName()
+ "\" version=\"12\">\")");
// Now read every setting for the formatter and write it out as an XML tag.
for (line = reader.readLine(); line != null; line = reader.readLine()) {
if (line.startsWith("org.eclipse.jdt.core.formatter.")) {
String[] parts = line.split("=", 2);
writer.println("<setting id=\"" + parts[0] + "\" value=\"" + parts[1] + "\" />");
}
}
writer.println("</profile>");
writer.println("</profiles>");
reader.close();
writer.close();
}
}