2011-03-10 10 views
6

Il nostro progetto ha un "Profilo non gestito" e l'autoformattazione automatica in tempo di salvataggio. Mi piacerebbe essere in grado di modificare le impostazioni per questo profilo non gestito ed essere in grado di ricontrollarle al controllo della versione.Come posso gestire un profilo di formattazione Eclipse non gestito?

I documenti della guida di Eclipse non sono di alcuna utilità ("Non è consentito modificare questo profilo, solo il creatore (gestore) del profilo può cambiarlo.").

risposta

2

Eclipse deve mettere una cartella .settings nella directory del progetto quando si ha un profilo non gestito. L'unico modo in cui ho trovato di modificare le impostazioni finora è di andare nella cartella .settings all'interno del progetto e modificare a mano i file .prefs.

+0

Questa sembra essere la risposta. Quello che ho fatto per ovviare a questo è di apportare modifiche a un profilo personalizzato in un altro progetto, esportandolo e osservando quali elementi sono stati modificati e apportando le stesse modifiche nella copia di .settings. – magneticMonster

4

Il problema è che un profilo gestito è effettivamente memorizzato nel tuo spazio di lavoro, non nel tuo progetto. Le impostazioni vengono inserite nel tuo progetto quando apporti modifiche specifiche al progetto, come la selezione di un profilo diverso. Ma le impostazioni nel progetto sono di un formato diverso da quelle nel profilo (nell'area di lavoro).

Attualmente l'eclisse non ha la capacità di eseguire ciò al contrario. Questo è che non può prendere le impostazioni dalla cartella del progetto per creare un profilo nell'area di lavoro. In effetti un "Profilo non gestito" è un profilo a cui hai perso il codice sorgente.

Il modo più semplice che ho trovato per decodificare il profilo è generare un file profilo XML che può essere importato (sotto le impostazioni del formattatore -> pulsante di importazione).

Per decodificare le impostazioni da un progetto; Ho scritto il seguente programma. Si legge le impostazioni da una cartella di progetto e li scrive in un file 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

Non sono sicuro se questo vi permetterà di controllare il vostro profilo nuovamente al controllo di versione, ma il seguente processo consentirà di modificare il tuo profilo su qualsiasi computer che ha la fonte ritirata.

Per modificare il tuo profilo, è necessario ricreare il profilo in Eclipse, che si può facilmente fare come segue:

  • creare un nuovo profilo cliccando su "Nuovo ..."
  • dare al nuovo profilo lo stesso nome del tuo profilo non gestito esistente.
  • Prima di fare clic su OK, assicurarsi di aver selezionato il profilo non gestito nell'elenco a discesa "Inizializza impostazioni con il seguente profilo".

In questo modo è possibile ricreare il profilo e consentire di modificarlo in Eclipse, come di consueto.

Nota: questo processo funziona con Eclipse Indigo

Problemi correlati