2009-05-01 5 views
5

Sto scrivendo un semplice add-in per VS e vorrei richiamare a livello di codice l'opzione "Formato documento" (sotto Modifica) all'interno del codice. Google non è molto amichevole con me oggi ....Come si chiama "Formato documento" a livello di codice da C#?

+0

Hai provato Resharper? Può riformattare l'intera soluzione per te in un colpo solo. (Suppongo che questo non aiuti ma devo aver provato ... ;-)) – Rashack

+0

Nah, sto solo provando a far ruotare il mio piccolo strumento per chiudere automaticamente le parentesi graffe (sì, so che anche Resharper lo fa, ma dov'è il divertimento in quel ??) – BFree

risposta

5
Command cmd = _applicationObject.Commands.Item("Edit.FormatDocument", -1); 
object dummy = null; 
_applicationObject.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy); 
+0

Poiché è la prima volta che lo controllo, non ho potuto capire. Puoi specificare il tipo di '_applicationObject' e il suo spazio dei nomi. Ho sfogliato un po 'che dovrei usare il namespace EnvDTE80 ma non potevo procedere. Qualsiasi codenippet sarà molto utile. –

5

Se si dispone di un riferimento al documento (di tipo finestra), e si ha un riferimento all'oggetto _DTE, si può chiamare in questo modo:

myDocument.Activate(); 
myDTE.ExecuteCommand("Edit.FormatDocument", string.Empty); 

maggior parte del tempo, è possibile ottenere un riferimento all'oggetto _DTE dai parametri passati nel componente aggiuntivo.

+0

C'è un modo per formattare il documento senza aprirlo? Voglio formattare tutti i documenti nel progetto con un clic. – Hooch

+0

Non ci credo. È possibile aprire, formattare e quindi chiudere il documento. –