2010-07-22 2 views
14

In Visual Basic (l'ho visto nel 2005 e nel 2008) quando si preme un punto di interruzione o un passaggio e il codice su questa linea passa oltre il Alla fine dello schermo, la finestra scorre automaticamente verso destra in modo che la maggior parte della linea sia visibile il più possibile. Posso capire perché questo potrebbe essere utile, ma lo trovo un po 'dispersivo dato che lo schermo sembra saltare molto mentre sto provando a eseguire il debug. Inoltre, il contesto del codice può essere troncato, quindi se ci sono alcuni loop nidificati, ifs ecc. Allora il resto del codice può essere completamente fuori dallo schermo che è frustrante.Come impedire all'editor di Visual Studio di scorrere orizzontalmente in modo automatico quando viene raggiunto un punto di interruzione

Qualcuno sa come disabilitare questo comportamento?

+0

Probabilmente è più doloroso, ma è possibile attivare il ritorno a capo automatico. –

+1

È possibile attivare il ritorno a capo automatico. Questo potrebbe essere meglio è possibile vedere come here. –

+0

L'involucro di parole sembra essere l'unica opzione. – Garrann

risposta

0

È possibile tenere premuto il tasto Ctrl e scorrere verso il basso per ridurre l'ingrandimento per poter vedere più parti del documento mentre ci si trova nella vista codice. In questo modo la dimensione del carattere è più piccola.

1

Si dovrebbe semplicemente evitare di scrivere codice che va fuori dal bordo dello schermo.

Non solo questo rende il debug molto più difficile, ma quando altre persone cercano di leggere il tuo codice è molto difficile e frustrante.

Non dovresti annidare in profondità in nessun loop, ma invece dovresti negare le tue condizioni e usare pause/ritorni/fughe.

Così, invece di questo:

if (condition) { 
    //stuff 
    if (anotherCondition) { 
     //more stuff 
     if (yetanotherCondition) { 
      //starting to get to the edge of the screen soon... 
     } 
    } 
} 

Invece si dovrebbe fare questo:

if (!condition) return; 
//do stuff 

if (!anotherCondition) return; 
//more stuff 

if (!yetAnotherCondition) return; 
//so much more room to work with! 

Inoltre cose come le dichiarazioni LINQ/espressioni deve essere suddiviso in pezzi per essere leggibile

piuttosto che :

var foo = MyList.select(val => val.isThing() && val.isCorrect && val.hasConditions() && val.things.Any(thing => thing.isCorrect())).orderBy(val => val.property).First(); 

che causa il problema, invece fare in questo modo:

var foo = MyList.select(val => 
    val.isThing() 
    && val.isCorrect 
    && val.hasConditions() 
    && val.things.Any(thing => 
     thing.isCorrect() 
     ) 
    ) 
    .OrderBy(val => val.property) 
    .First();