Crolla l’istruzione di Visual Studio C #

Quando si modificano blocchi di codice veramente lunghi (che dovrebbero essere comunque rifatti in ogni caso, ma questo va oltre lo scopo di questa domanda), spesso desidero la possibilità di comprimere blocchi di istruzioni come si possono comprimere blocchi funzione. Vale a dire, sarebbe bello se l’icona meno apparisse sul contorno del codice per tutto ciò che è racchiuso tra parentesi graffe. Sembra apparire per funzioni, classi, regioni, spazi dei nomi, usi, ma non per blocchi condizionali o iterativi. Sarebbe fantastico se potessi collassare cose come ifs, switch, foreach, quel genere di cose!

Cercando un po ‘su questo, ho scoperto che apparentemente il C ++ delineato in VS permette questo, ma il C # delineare in VS no. Non capisco davvero perché. Anche notepad ++ funzionerà in modo che questi si interrompano se seleziono la formattazione C #, quindi non capisco perché Visual Studio non lo fa.

Qualcuno sa di un componente aggiuntivo VS2008 che abiliterà questo comportamento? O una sorta di impostazione nascosta per questo?

Modificato per aggiungere: inserire le regioni è ovviamente un’opzione e mi è già capitato, ma francamente, non dovrei dover avvolgere le cose in una regione che è già avvolta in parentesi graffe … se dovessi modificare il codice esistente, vorrei semplicemente refactoring per avere una migliore separazione di preoccupazione comunque. (“avvolgimento” con nuovi metodi anziché regioni;)

A partire da Visual Studio 2017, la compressione delle istruzioni è integrata.

Esistono diverse estensioni che eseguono questa attività per le versioni pre-2017 di VS, a partire dalla versione VS 2010:

  • C # contorno
  • C # outline 2012 (@MSDN)
  • C # outline 2013 (@MSDN)
  • C # outline 2015 (@MSDN)
  • Visual Basic e C # Outliner

L’ultima estensione supporta solo VS 2015 e VS 2017, ma è la più potente.
Supporta la colorazione della syntax all’interno di blocchi compressi, è più tollerante ai guasti e ottimizzato.

Se l’estensione non sembra essere installata dopo aver utilizzato un browser per scaricarlo, provare a utilizzare il gestore dell’interno di Visual Studio incorporato.

Non sono a conoscenza di componenti aggiuntivi, ma hai menzionato le regioni e non vedo nulla di sbagliato nel fare qualcosa del genere …

 foreach (Item i in Items) { #region something big happening here ... #endregion #region something big happening here too ... #endregion #region something big happening here also ... #endregion } 

EDIT: In risposta all’EDIT della domanda: hai ragione, attaccare un gruppo di regioni in tutto il mondo non è l’ideale e il refactoring è probabilmente la strada da percorrere. Ma sembra che tu stia cercando qualcosa di magico che “organizzerà” il codice per te, e non penso che esista.

Puoi comprimere blocchi di testo specifici all’interno di Visual Studio, ma devi distriggersre la struttura automatica.

Fai clic con il tasto destro del mouse nella finestra del codice e seleziona (Outlining | Stop Outlining)

Quindi, seleziona un testo, fai clic con il pulsante destro e seleziona (Struttura | Nascondi selezione)

Quando riattivi la struttura automatica, le tue “Regioni” personalizzate non crolleranno più.

Visual Studio 2008 supporta le regioni all’interno delle funzioni purché vengano mantenute nello stesso livello gerarchico di codice

 #region Won't work for(int i = 0; i 

Questa funzione è stata aggiunta all’editor C # di Visual Studio 2010. Non riesco a trovare la fonte per verificare che sia stata effettivamente inserita, ma ricordo di averlo visto su uno dei blog dei membri del team Dev 10 che parlava di cambiamenti dalla Beta 1 o qualcosa del genere. Come consolazione, ecco un commento di Microsoft che suggerisce di volerlo aggiungere.

Consentitemi di dire qualcosa di diverso: premere (ctrl+m,ctrl+h) o in modifica> evidenziare> hide la selezione è così utile.

Aggiungerò qui che in VS 2010 Microsoft ha aggiunto funzionalità di WPF adorner utilizzando Managed Extensibility Framework (MEF), questo ci permetterà di estendere l’editor del codice sorgente per organizzarlo in un modo molto migliore per renderlo più leggibile e accessibile.

Ad esempio il visualizzatore di commenti riassuntivi che Scott Gu ha presentato al PDC 2008 .

Quindi aspettiamo un domani migliore per gli sviluppatori 🙂

Coderush descriverà tutti i blocchi di codice per te. Non sono sicuro se ti permette di espandere / comprimere i blocchi, ma delineare è la cosa migliore. Io uso il resharper invece di coderush che, per quanto ne so, non fornisce il crollo dei blocchi 🙁

Ho trovato questo per Visual Studio 2013 e l’ho trovato molto utile. Funziona anche se metti semplici parentesi attorno al tuo codice con {…..}

Dopo aver condiviso ho scoperto che qualcun altro ha menzionato questo link. Il mio voto è anche per questo strumento.

C # Outlining Tool per Visual Studio 2013

In VS2017 è ansible evidenziare una sezione di codice, fare clic con il tasto destro, evidenziare> Nascondi selezione. Questo comprime il codice e fornisce un interruttore alla sezione evidenziata.

# region, # endregion è l’opzione intelligente.