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#?
risposta
Command cmd = _applicationObject.Commands.Item("Edit.FormatDocument", -1);
object dummy = null;
_applicationObject.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy);
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. –
Avrai bisogno di utilizzare gli editor di comandi standard, chiamati con l'enumerazione dei comandi VSStd2KCmdId.FORMATDOCUMENT.
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.
C'è un modo per formattare il documento senza aprirlo? Voglio formattare tutti i documenti nel progetto con un clic. – Hooch
Non ci credo. È possibile aprire, formattare e quindi chiudere il documento. –
Hai provato Resharper? Può riformattare l'intera soluzione per te in un colpo solo. (Suppongo che questo non aiuti ma devo aver provato ... ;-)) – Rashack
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