2011-03-10 11 views
6

Nasz projekt ma "Niezarządzany profil" i autoformatowanie w czasie rzeczywistym. Chciałbym móc modyfikować ustawienia tego niezarządzanego profilu i móc je ponownie włączyć do kontroli wersji.Jak zarządzać niezarządzanym profilem formatowania Eclipse?

Dokumenty pomocy Eclipse są nieprzydatne ("Nie można zmienić takiego profilu, tylko twórca (menedżer) profilu może go zmienić.").

Odpowiedz

2

Eclipse powinien umieścić folder .settings w katalogu projektu, gdy masz niezarządzany profil. Jedynym sposobem, w jaki udało mi się zmienić dotychczasowe ustawienia, jest przejście do folderu .settings w projekcie i ręczne edytowanie tam plików .prefs.

+0

To wydaje się być odpowiedź. Pracowałem nad tym, aby wprowadzić zmiany w profilu niestandardowym w innym projekcie, eksportując go i sprawdzając, które elementy zostały zmienione i wprowadzając te same zmiany w kopii .set. – magneticMonster

4

Problem polega na tym, że profil zarządzany jest rzeczywiście przechowywany w obszarze roboczym, a nie w projekcie. Ustawienia są przekazywane do projektu po wprowadzeniu określonych zmian, takich jak wybór innego profilu. Ale ustawienia w projekcie mają inny format niż te w profilu (w obszarze roboczym).

Obecnie Eclipse nie ma możliwości wykonania tego w odwrotnej kolejności. Oznacza to, że nie można pobrać ustawień z folderu projektu, aby utworzyć profil w obszarze roboczym. Skutecznie "Profil niezarządzany" to profil, do którego utraciłeś kod źródłowy.

Najprostszym sposobem, w jaki znalazłem inżynierię wsteczną, jest wygenerowanie pliku profilu XML, który można zaimportować (w ustawieniach formatera -> przycisk importowania).

Aby dokonać inżynierii wstecznej ustawień z projektu; Napisałem następujący program. Odczytuje ustawienia z folderu projektu i zapisuje je w pliku 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(); 
    } 
} 
3

nie jestem pewien, czy to będzie można sprawdzić swój profil z powrotem w celu kontroli wersji, ale następujący proces pozwoli aby edytować swój profil na dowolnym komputerze, na którym zostało wyewidencjonowane źródło.

Aby edytować swój profil, trzeba odtworzyć profil w Eclipse, które można łatwo zrobić w następujący sposób:

  • Utwórz nowy profil, klikając „New ...”
  • Daj nowy profilować tę samą nazwę, co istniejący profil niezarządzany.
  • Przed kliknięciem OK, upewnij się, że wybrałeś swój niezarządzany profil z listy rozwijanej "Inicjalizuj ustawienia z poniższym profilem".

Pozwoli to na odtworzenie profilu i pozwoli na modyfikację go w środowisku Eclipse, jak zwykle.

Uwaga: ten proces działa z Eclipse Indigo

Powiązane problemy