Frage

Ich möchte wirklich, um zu sehen, eine proportionale schriftart IDE, auch wenn ich es bauen selbst (vielleicht als Erweiterung zu Visual Studio).Was ich eigentlich meine, ist MS Word-Formatvorlage Bearbeiten von code, die Art sieht aus wie der typografische Stil Die C++ Programmiersprache Buch.

Ich möchte legen Sie Tabulatoren für meine Einzüge und Futter-up-Funktion, Signaturen und Reihen von Zuweisungsanweisungen, die angegeben werden kann, in Punkten statt fester Charakter Positionen.Ich möchte auch Fett und Kursiv.Verschiedene Schriftgrößen und auch Stylesheets wäre cool.

Hat jemand so etwas gesehen oder wissen, der beste Weg zu beginnen ein?

War es hilfreich?

Lösung

Ich würde immer noch gerne sehen, ein beliebtes editor oder IDE implementieren elastic tabstops.

Andere Tipps

Denken mit Stil regt an, verwenden Sie Ihre Lieblings-text-manipulation-software wie Word oder Writer.Erstellen der Programm-code in rich-XML und extrahieren Sie die compiler-relevanten Abschnitte mit XSLT.Die "Office" - software wird alle erweiterten text-manipulation und-Formatierung bietet.

ich erwartete, Sie erhalten unten-modded und nahm auf für Ihren Vorschlag, aber es gibt einen wirklichen Sinn für die Idee.

Der Hauptvorteil der traditionellen " non-proportional font Anforderung in code-Editoren ist, die Last zu erleichtern Durchführung von code-Formatierung.

Aber bei all der interaktive automatische Formatierung, tritt in der moderne IDE ' s, es ist wirklich möglich, dass eine proportionale schriftart kann verbessern die Lesbarkeit des Codes (und nicht als behindert, wie ich bin sicher, dass viele Puristen erwarten würde).

Ein Charakter namens Roedy Green (berühmt für seinewie zu schreiben wartbaren code'Artikel) schrieb über eine theoretische editor/Sprache basiert auf Java und rief Bali.Hat es nicht auch nicht-proportionale Schriftarten so genau, aber es Tat auch die Idee, das nicht-einheitliche schriftart-Größen.

Auch dieser kurze Joel Spolsky post Beiträge zu einer Lösung, elastic Tabulator (wie erwähnt, von einem anderen commentor), die helfen würden, mit der Unterstützung von non-proportional (und variable Größe) - Schriftarten.

@Thomas Owens

Finde ich nicht-code-Format, das leichter zu Lesen ist.

Das ist in Ordnung, es ist nur eine persönliche Präferenz und können wir nicht Zustimmen.Formatieren Sie es so, wie Sie denken, ist am besten und ich werde es respektieren.Ich Häufig Fragen mich: "wie sollte ich dieses format oder das Ding?" Meine Antwort ist immer zu formatieren um die Lesbarkeit zu verbessern, was ich zugeben kann subjektiv.

In Bezug auf Ihr Beispiel, ich möchte nur, dass die gut ausgerichtet Spalte auf der rechten Seite, seine Art von einer schnellen "index" in den code auf der linken Seite.Nachdem das gesagt ist, würde ich wahrscheinlich vermeiden kommentieren jede Zeile wie das sowieso nicht, da der code selbst nicht benötigen, die viel Erklärung.Und wenn es nicht, ich Neige dazu, schreiben Sie einen Absatz über den code.

Aber betrachten Sie dieses Beispiel aus der original-poster.Seine leichter zu erkennen sind die Kommentare in die zweite meiner Meinung nach.

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

Aber das tun die Leute wirklich Online-Kommentare bis wie das?...Ich habe nie versucht zu line-up Erklärungen oder Kommentare oder nichts, und der einzige Ort, den ich jemals gesehen, die in den Lehrbüchern.

Ja, die Menschen tun, line-up, Kommentare und Erklärungen und alle möglichen Dinge.Durchweg gut formatierten code ist leichter zu Lesen und zu code, der einfacher zu Lesen ist einfacher zu pflegen.

Ich Frage mich, warum eigentlich niemand Ihre Frage beantwortet, und warum die akzeptierte Antwort hat nicht wirklich etwas zu tun haben mit Ihrer Frage.Aber trotzdem...

eine proportionale schriftart IDE

In Eclipse können Sie cchoose jede schriftart auf Ihrem system.

set tab-stops für meinen Gedankenstrich

In Eclipse konfigurieren Sie die automatische Einrückung, einschließlich der Einstellung "tabs nur".

Futter-up-Funktion, Signaturen und Reihen von Zuweisungsanweisungen

In Eclipse die automatische Einrückung funktioniert.

das könnte in Punkten angegeben statt fester Charakter Positionen.

Tut mir Leid, ich glaube nicht, dass Eclipse kann Ihnen helfen, es.Aber es ist open source.;-)

Fett und Kursiv

Eclipse hat.

Verschiedene Schriftgrößen und auch Stylesheets wäre cool

Ich denke, dass Eclipse nur eine schriftart und-Größe für jeden Dateityp (zum Beispiel " Java-Quellcode-Datei), aber Sie können haben anders "Stylesheets" für verschiedene Dateitypen.

Als ich den letzten sah Eclipse (vor einiger Zeit jetzt!) es erlaubt Ihnen, wählen Sie eine beliebige installierte schriftart zu arbeiten.Nicht so sicher, ob es unterstützt die Vorstellung, Einrücken mit Tabulatoren.

Es sah cool aus, aber der code war definitiv schwieriger zu Lesen...

Soeren:Das ist irgendwie nett, IMO.Aber das tun die Leute wirklich Online-Kommentare wie, dass?Für meine end-of-line-Kommentare, die ich immer mit einem einzigen Raum, dann // oder /* oder gleichwertig, je nach Sprache, die ich verwende.Ich habe nie versuchen, line-up Erklärungen oder Kommentare oder irgendetwas, und der einzige Ort, den ich je gesehen habe, die in den Lehrbüchern.

@Brian Ensink:Finde ich nicht-code-Format, das leichter zu Lesen ist.

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

Ich finde die ersten Zeilen leichter zu Lesen als die zweiten Zeilen, persönlich.

Der Einzug Teil Ihrer Frage ist, geschieht heute in einem realen Produkt, vielleicht aber auch, um selbst einen höheren Grad der Automatisierung als Sie sich vorstellen können, das Produkt, das ich erwähnen möchte, ist eine XSLT-IDE, aber die gleiche Formatierung Grundsätze würden die Arbeit mit den meisten (aber nicht alle) herkömmlichen code-Syntax.

Das hat wirklich zu werden gesehen in video um den Sinn des ganzen (sorry über die Musik zurück-track).Es gibt auch einen Licht-XML-editor spin-off-Produkt, XMLQuire, das dient als Technologie-demonstrator.

Die Abbildung unten zeigt die XML-Format mit sehr komplexer Formatierung-Regeln in diesem XSLT-IDE, wo alle Einrückung erfolgt word-Prozessor-Stil, mit dem linken Rand - nicht von space-oder tab-Zeichen.

enter image description here

Um dies zu unterstreichen Formatierung Konzept, alle Charaktere wurden hervorgehoben, um zu zeigen, wo die linken Seitenrand erstreckt sich zu halten Einzug.Ich verwende den Begriff Virtuelle Formatierung um dies zu beschreiben - es ist nicht wie elastische Registerkarte mehr, weil es einfach keine Tabletten, nur Marge Informationen, die Teil der 'Absatz' Format (RTF-codes werden verwendet, hier).Der parser formatiert kontinuierlich in einem Durchgang mit syntax-Einfärbung.

Eine proportionale schriftart wurde nicht hier verwendete, aber es hätte ganz einfach - weil der Einzug in TWIPS.Die editing-Erfahrung, ist ganz überzeugend, weil, wie Sie refactor-code (XML-Datei in diesem Fall), vielleicht durch drag-and-drop oder durch die Verlängerung der Länge eines Attributwerts, die Einrückung nur wieder, fließt selbst zu passen - es gibt keine tab-Taste oder die 'formatieren' - Taste zu drücken.

So, der Einzug ist da, aber die schriftart, die Arbeit ist ein komplexeres problem.Ich habe damit experimentiert, aber festgestellt, dass, wenn die Schriftarten werden re-ausgewählt wird, geben Sie die horizontale Verschiebung der code ist zu verwirrend - es müsste ein Benutzer-initiierte format Schriftarten Befehl wahrscheinlich.Das Produkt hat auch Tinte und Handschrift-Technologie, gebaut-in zum hinzufügen von Anmerkungen-code, aber ich habe noch um die Ausnutzung dieser in der live-Version.

Die Leute sind alle beschweren sich über Kommentare nicht Schlange.

Mir scheint, dass es gibt eine sehr einfache Lösung:Legen Sie die Einheit den Raum als das größte Zeichen in der schriftart.Nun, proportional Raum alle Zeichen außer dem Leerzeichen.der Raum nimmt so viel Raum, so wie, um line-up das nächste Zeichen, wo es sein würde, wenn alle vorausgegangenen Zeichen auf der Linie wurden der größte in der Schrift.

ie:

iiii_space_Foo

xxxx_space_Foo

würde line-up der "Foo", mit Leerzeichen nach dem "ich", viel breiter als nach dem "x".

So rufen Sie elastisch Räume.anstatt die tab-Stopps.

Wenn Sie ein smart-editor, behandeln Kommentare speziell, aber das ist nur Soße

Lassen Sie mich daran erinnern Argumente, die über die Verwendung von 'var' Schlüsselwort in C#.Die Leute hassten es, und dachte, es würde den code weniger klar.Für Beispiel, Sie konnte nicht wissen, die Art in etwas wie:

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

Ihr argument war, dass Sie Couln ' T sehen, wenn x ein array, eine Liste oder jede andere IEnumerable.Oder was der Typ von y war.Meiner Meinung nach ist der unclearity kommt nicht aus mit var, aber von der Kommissionierung unklar Variablen-Namen.Warum nicht einfach Typ:

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

"Aber Sie kann immer noch nicht sehen, die Art von electionResults!" - ist es wirklich wichtig?Wenn Sie möchten, ändern Sie den Rückgabetyp von GetRegionalElectionResults, können Sie dies tun.Jede IEnumerable tun.

Schneller Vorlauf bis jetzt.Personen ausrichten möchten, Kommentaren en ähnlichen code:

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

Also ohne den Kommentar, alles ist unklar.Und wenn Sie nicht richten Sie die Werte, Sie können nicht trennen Sie diese von der variales.Aber tun Sie?Was zu dieser (ignorieren Sie die Kugeln bitte)

  • int daysSinceStartup = 1;// inklusive erste
  • int freeDaysPerWeek = 2;
  • int workingHoursPerWeek = 38;

Wenn Sie einen Kommentar auf JEDE LINIE, dann machst du etwas falsch."Aber Sie müssen noch eine Angleichung der WERTE" - und Sie?was bedeutet 38 zu tun haben, mit 2?

In C# sind die Meisten code-Blöcke können leicht ausgerichtet werden, die nur mithilfe von Registerkarten (oder acually, die ein Vielfaches von vier Leerzeichen):

  • var regionsWithIncrease =
    • vom Ergebnis in GetRegionalElectionResults()
    • wo führen.TotalCount > Ergebnis > PreviousTotalCount &&
      • Ergebnis.PreviousTotalCount > 0 // nur neue Regionen
    • wählen Sie Ergebnis.- Region;
  • foreach (var region in regionsWithIncrease)
  • {
    • Schreiben(region);
  • }

Benutzen Sie nie line-to-line-Kommentare und man muss nur selten vertikal ausrichten Dinge.Selten, nie.Also ich verstehe, wenn einige von Euch bevorzugen eine Monospace-schriftart.Ich bevorzuge die readibility font, Noto Sans oder Source Sans Pro.Diese Schriftarten sind verfügbar frei von Google und ähneln Calibri, aber sind konzipiert für die Programmierung und somit haben alle nötigen Merkmale:

  • Große :;., so können Sie deutlich sehen Sie den Unterschied
  • Klar 0Oo und deutliche Il|

Das große problem mit Proportionalschrift ist, zerstören Sie die vertikale Ausrichtung des Codes, und dies ist ein ziemlich bedeutender Verlust wenn es darum geht, code zu schreiben.

Die vertikale Ausrichtung macht es möglich, Bearbeiten von rechteckigen Blöcken von code, der sich über mehrere Zeilen erstrecken, indem block-Operationen wie Ausschneiden, kopieren, einfügen, löschen und Gedankenstrich, unindent etc. werden problemlos durchgeführt.

Als ein Beispiel betrachten Sie das code-snippet:

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

In a mono-spaced font der = und die ; alle line-up.

Wenn nun dieser text ist in loded Wort und-Anzeige über ein proportionale schriftart der text tatsächlich verwandelt sich in diese:

HINWEIS: Zusätzliche Leerzeichen Hinzugefügt, um zu zeigen, wie die = und ; nicht mehr line-up:

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

Mit der vertikalen Ausrichtung gegangen, diese schönen code-Blöcke effektiv verschwinden.

Auch, weil der cursor nicht mehr gewährleistet ist, sich zu bewegen vertikal (d.h.die Spalte Anzahl ist nicht immer gleich von einer Zeile zur nächsten ist), es macht es schwieriger zu schreiben wegwerfen makro-Skripts, die dazu dienen, manipuliert, ähnlich aussehende Linien.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top