Как мне управлять неуправляемым профилем форматирования Eclipse? - PullRequest
6 голосов
/ 11 марта 2011

Наш проект имеет «Неуправляемый профиль» и автоматическое форматирование с сохранением времени. Я хотел бы иметь возможность изменять параметры этого неуправляемого профиля и возвращать их в систему управления версиями.

Справочные документы Eclipse совершенно бесполезны («Вы не можете изменять такой профиль, только его может изменить создатель (менеджер) профиля».)

Ответы [ 3 ]

4 голосов
/ 28 апреля 2012

Проблема в том, что управляемый профиль фактически хранится в вашем рабочем пространстве, а не в вашем проекте.Настройки вставляются в ваш проект, когда вы вносите изменения, специфичные для проекта, например, выбираете другой профиль.Но настройки в проекте отличаются от формата в профиле (в рабочей области).

В настоящее время 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();
    }
}
4 голосов
/ 17 мая 2012

Я не уверен, позволит ли это вам вернуть свой профиль обратно в систему управления версиями, но следующий процесс позволит вам редактировать свой профиль на любом компьютере с проверенным источником.

Чтобы отредактировать свой профиль, вам нужно заново создать профиль в Eclipse, что вы можете легко сделать следующим образом:

  • Создать новый профиль, нажав «Новый ...»
  • Giveновый профиль совпадает с именем существующего неуправляемого профиля.
  • Прежде чем нажимать ОК, убедитесь, что вы выбрали свой неуправляемый профиль в раскрывающемся списке «Инициализировать настройки со следующим профилем».

Это позволит вам заново создать профиль и изменить его в Eclipse, как обычно.

Примечание. Этот процесс работает с Eclipse Indigo

2 голосов
/ 22 октября 2011

Eclipse должен поместить папку .settings в каталог вашего проекта, если у вас есть неуправляемый профиль. Пока я нашел единственный способ изменить настройки - перейти в папку .settings в проекте и вручную отредактировать там файлы .prefs.

...