Domanda

Mi piacerebbe davvero vedere un tipo di carattere proporzionale IDE, anche se devo costruire io stesso (forse come un'estensione di Visual Studio).Quello che intendo fondamentalmente è MS Word stile di editing di codice che tipo di aspetto, come lo stile tipograco in Il Linguaggio di Programmazione C++ libro.

Voglio impostare le tabulazioni per i miei rientri e fodera in funzione di firme e righe di istruzioni di assegnazione, che potrebbe essere specificate nei punti invece di fisso posizioni di carattere.Vorrei, inoltre, il grassetto e il corsivo.Le varie dimensioni e anche i fogli di stile sarebbe cool.

Qualcuno ha visto nulla di simile là fuori o conoscere il modo migliore per iniziare la costruzione di uno?

È stato utile?

Soluzione

Mi piacerebbe comunque vedere il popolare editor o IDE implementare elastico tabulazioni.

Altri suggerimenti

Pensare con Stile suggerisce l'uso di testo preferito di manipolazione del software come Word o Writer.Creare il codice del programma nel ricco XML ed estrarre il compilatore-sezioni pertinenti con XSLT."L'Ufficio" software fornirà tutte le di testo avanzati di manipolazione e di caratteristiche di formattazione.

mi aspettavo avrai down-modded e preso per il suggerimento, ma non c'è un qualche senso all'idea.

Il vantaggio principale di il tradizionale "non proporzionale" font requisito in editor del codice è quello di alleviare l'onere di eseguire la formattazione del codice.

Ma con tutte le interattiva di formattazione automatica che avviene in moderni IDE, è davvero possibile che un tipo di carattere proporzionale, potrebbe migliorare la leggibilità del codice, piuttosto che ostacolare, come sono sicuro che molti puristi potrebbe aspettare).

Un personaggio chiamato Roedy Verde (famoso per i suoi"come scrivere codice non gestibile'articoli) ha scritto su un teorico editor/linguaggio, basato su Java e chiamato Bali.Non includono camere non-font proporzionali esattamente, ma comprende l'idea di avere non uniforme dimensioni dei font.

Inoltre, questo breve Joel Spolsky post il post a una soluzione, elastico tabulazioni (come detto da un altro commentor), che potrebbe aiutare con il sostegno dei non-proporzionale (e di dimensioni variabili) font.

@Thomas Owens

Non riesco a trovare il codice formattato come quella di più facile lettura.

Va bene, è solo una preferenza personale, e si può essere in disaccordo.Il formato è il modo in cui si pensa è il migliore, ed io la rispetto.Mi capita spesso di chiedermi: "come ho formato questa o quella cosa?' La mia risposta è sempre la formattazione per migliorare la leggibilità, che ammetto che può essere soggettivo.

Per quanto riguarda il tuo esempio, mi piace avere che ben allineati, e la colonna di destra, per il suo genere, di un rapido "indice" il codice sulla sinistra.Detto questo, io probabilmente non commentare ogni riga come la seguente che comunque, perché il codice non dovrebbe aver bisogno che di molte spiegazioni.E se io tendo a scrivere un paragrafo di sopra del codice.

Ma considerare questo esempio il poster originale.La sua più facile avvistare i commenti nel secondo, a mio parere.

for (size-type i = 0; i<v.size(); i++) { // rehash:
    size-type ii = has(v[i].key)%b.size9); // hash
    v[i].next = b[ii]; // link
    b[ii] = &v[i];
}

for (size-type i = 0; i<v.size(); i++) {     // rehash:
    size-type ii = has(v[i].key)%b.size9);   // hash
    v[i].next = b[ii];                       // link
    b[ii] = &v[i];
}

@Thomas Owens

Ma la gente realmente linea i commenti come che?...Non cerco di line up dichiarazioni o commenti o nulla, e l'unico posto che io abbia mai visto che è nei libri di testo.

Sì persone non di linea di commenti e dichiarazioni, nonché tutti i tipi di cose.Sempre ben formattato il codice più facile da leggere e il codice più facile da leggere è più facile da mantenere.

Mi chiedo perché nessuno risponde alla tua domanda, e perché il accettato la risposta non ha niente a che fare con la tua domanda.Ma comunque...

un tipo di carattere proporzionale IDE

In Eclipse si può cchoose qualsiasi tipo di carattere sul tuo sistema.

impostare i punti di tabulazione per i miei rientri

In Eclipse è possibile configurare l'indentazione automatica, anche se impostata a "schede".

fodera in funzione di firme e righe di istruzioni di assegnazione

In Eclipse, indentazione automatica che fa.

che potrebbe essere specificate nei punti invece di fisso posizioni di carattere.

Mi dispiace, non credo che Eclipse può aiutare lì.Ma è open source.;-)

il grassetto e il corsivo

Eclipse ha.

Le varie dimensioni e anche i fogli di stile sarebbe cool

Credo che Eclipse usa solo un tipo di carattere e la dimensione per ogni tipo di file (per esempio file sorgente Java), ma si possono avere diversi "fogli di stile" per diversi tipi di file.

Quando l'ultima volta che l'ho guardato Eclipse (qualche tempo fa!) esso ha permesso di scegliere qualsiasi tipo di carattere installato di lavoro.Non sono così sicuro se è supportato l'idea di rientro con spazi di tabulazione.

Sembrava fresco, ma il codice è stato sicuramente più difficile da leggere...

Soeren:Che tipo di pulito, IMO.Ma la gente realmente commenti come questo?Per il mio fine della riga di commenti, io uso sempre un unico spazio, / / / o* o equivalente, a seconda della lingua che sto utilizzando.Non ho mai cercare di allineare le dichiarazioni o commenti o nulla, e l'unico posto che io abbia mai visto che è nei libri di testo.

@Brian Ensink:Non riesco a trovare il codice formattato come quella di più facile lettura.

int var1 = 1 //Comment
int longerVar = 2 //Comment
int anotherVar = 4 //Command

versus

int var2       = 1 //Comment
int longerVar  = 2 //Comment
int anotherVar = 4 //Comment

Trovo le prime righe più facile da leggere rispetto alle seconde linee, personalmente.

Il rientro è parte della tua domanda, è stato fatto oggi in un vero e proprio prodotto, anche se probabilmente anche a un maggiore livello di automazione che si immaginava, il prodotto che ho citato è un XSLT IDE, ma la stessa formattazione principi di lavorare con la maggior parte (ma non tutti) codice convenzionale sintassi.

Questo ha davvero di essere visto in video per ottenere il senso di tutto questo (e mi dispiace per la musica di back-track).C'è anche un leggero editor XML spin-off di prodotto, XMLQuire, che serve come un dimostratore tecnologico.

La schermata qui sotto mostra in formato XML con abbastanza complesso di regole di formattazione in questo XSLT IDE, dove tutti i rientri viene eseguito da un elaboratore di stile, utilizzando il margine di sinistra - non spazi o caratteri di tabulazione.

enter image description here

Per sottolineare questo concetto di formattazione, tutti i personaggi sono stati evidenziati per mostrare dove la sinistra margine si estende per mantenere l'indentazione.Io uso il termine Virtuale Formattazione per descrivere questo - non è come un elastico, tabulazioni, perché semplicemente non sono compresse, proprio margine di informazioni che fa parte del 'paragrafo' la formattazione RTF vengono utilizzati i codici qui).Il parser riformatta continuamente, e lo stesso passo, come la colorazione della sintassi.

Un tipo di carattere proporzionale non è stato usato qui, ma potrebbe essere stato abbastanza facilmente perché il rientro è impostato in TWIP.L'esperienza di editing è molto convincente, perché, come il refactoring del codice XML (in questo caso), forse attraverso il drag and drop, o aumentando la lunghezza del valore di un attributo, il rientro appena ri-flussi per adattarsi a - non c'è il tasto tab o 'riformattare' un pulsante da premere.

Così, il rientro c'è, ma il carattere di lavoro è un problema più complesso.Ho provato questo, ma ho trovato che se i font sono ri-selezionato come tipo, lo spostamento orizzontale del codice è di troppo disturbo - ci sarebbe bisogno di essere un utente avviato 'il formato dei caratteri di comando, probabilmente.Il prodotto dispone anche di Inchiostro di Scrittura/tecnologia built-in per l'annotazione del codice, ma non ho ancora sfruttare questa in versione live.

La gente sono tutti a lamentarsi dei commenti non in fila.

Mi sembra che c'è una soluzione molto semplice:Definire le unità di spazio più ampio di caratteri di un font.Ora, proporzionalmente spazio a tutti i personaggi, tranne lo spazio.lo spazio occupa più spazio in modo da allineare il carattere successivo in cui sarebbe se tutti i precedenti caratteri sulla linea sono stati la più ampia del font.

vale a dire:

iiii_space_Foo

xxxx_space_Foo

si allineano i "Foo", con lo spazio dopo la "i" di essere molto di più dopo la "x".

Così la chiamano spazi elastici.piuttosto che scheda-stop.

Se hai una smart editor, trattare i commenti appositamente, ma è solo il sugo

Permettetemi di ricordare gli argomenti sull'utilizzo di 'var' di parola chiave in C#.La gente lo odiava, e ho pensato che sarebbe rendere il codice meno chiaro.Per esempio, non conosco il tipo in qualcosa di simile a:

var x = GetResults("Main");
foreach(var y in x)
{
   WriteResult(x);
}

Il loro argomento è stato, che è couln non vedere se x è una matrice, di un Elenco o di qualsiasi altro oggetto IEnumerable.O che il tipo di y è stato.A mio parere il unclearity non derivano dall'utilizzo del var, ma dalla raccolta chiaro i nomi delle variabili.Perché non è sufficiente digitare:

var electionResults = GetRegionalElactionResults("Main");
foreach(var result in electionResults)
{
   Write(result); // you can see what you're writing!!
}

"Ma è ancora in grado di vedere il tipo di electionResults!" - importa davvero?Se si desidera modificare il tipo di ritorno di GetRegionalElectionResults, è possibile farlo.Qualsiasi IEnumerable farà.

Avanti veloce di oggi.La gente vuole allineare commenti it codice simile:

int var2       =  1; //The number of days since startup, including the first
int longerVar  =  2; //The number of free days per week
int anotherVar = 38; //The number of working hours per week

Così, senza commento, tutto è chiaro.E se non allineare i valori, non è possibile separarli dal variales.Ma hai?Che dire di questo (ignorare i proiettili per favore)

  • int daysSinceStartup = 1;// primo
  • int freeDaysPerWeek = 2;
  • int workingHoursPerWeek = 38;

Se avete bisogno di un commento su OGNI LINEA, si sta facendo qualcosa di sbagliato."Ma hai ancora bisogno di allineare i VALORI" - e voi?cosa vuol 38 hanno a che fare con il 2?

In C# la Maggior parte dei blocchi di codice può essere facilmente allineati utilizzando solo le schede (o acually, multipli di quattro spazi):

  • var regionsWithIncrease =
    • dal risultato in GetRegionalElectionResults()
    • dove il risultato.TotalCount > risultato > PreviousTotalCount &&
      • risultato.PreviousTotalCount > 0 // solo nuove regioni
    • seleziona risultato.Regione;
  • foreach (var regione regionsWithIncrease)
  • {
    • Scrivere(regione);
  • }

Non si dovrebbe mai usare la linea-per-linea di commenti ed è raramente necessario per allineare verticalmente le cose.Raramente, non mai.Così ho capito se alcuni di voi ragazzi preferiscono un carattere a spaziatura fissa.Io preferisco il readibility di carattere Noto Sans o Source Sans Pro.Questi tipi di carattere sono disponibili liberamente da Google, e assomigliano Calibri, ma sono progettati per la programmazione e quindi avere tutte le caratteristiche necessarie:

  • Grande :;. così si può vedere chiaramente la differenza
  • Chiaramente distinti 0Oo e distinti: Il|

Il problema principale con i font proporzionali è distruggono l'allineamento verticale del codice e questo è un abbastanza grande perdita quando si tratta di scrivere codice.

L'allineamento verticale permette di manipolare i blocchi rettangolari di codice che si estendono su più righe, consentendo di bloccare le operazioni, come taglia, copia, incolla, elimina e rientro, unindent, ecc per essere facilmente eseguita.

Come esempio consideriamo questo frammento di codice:

a1 = a111;
B2 = aaaa;
c3 = AAAA;
w4 = wwWW;
W4 = WWWW;

In un mono-tipo di carattere a spaziatura il = e il ; tutti in fila.

Ora, se questo testo è loded in Parola e la visualizzazione utilizzando un carattere proporzionale il testo in modo efficace si trasforma in questo modo:

NOTA: Lo spazio vuoto supplementare aggiunto per mostrare come il = e ; non è più una line up:

a1 = a1 1 1;
B2  = aaaa;
c3 = A A A A;
w4 = w w W  W;
W4  = W W W  W;

Con l'allineamento verticale andati quei bei blocchi di codice in modo efficace scomparire.

Anche perché il cursore non è più garantito per spostare verticalmente (cioèil numero di colonna non è sempre costante da una riga a quella successiva) rende più difficile scrivere di buttare via gli script di macro progettato per manipolate simili linee.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top