mirror of https://github.com/texmacs/doc.git
90 lines
4.0 KiB
Plaintext
90 lines
4.0 KiB
Plaintext
|
<TeXmacs|1.0.4.5>
|
|||
|
|
|||
|
<style|tmdoc>
|
|||
|
|
|||
|
<\body>
|
|||
|
<tmdoc-title|ASCII-basierte oder Baum-basierte Editierung: problematische
|
|||
|
Alternativen>
|
|||
|
|
|||
|
Die meisten Nutzer sind daran gew<65>hnt, Quellcode mit einem konventionellen
|
|||
|
Editor wie <name|Emacs> zu editieren, die den Quellcode im ASCII-Format
|
|||
|
darstellen. <TeXmacs>-Dokumente werden aber als
|
|||
|
<hyper-link|B<>ume|../../format/basics/basics.de.tm> (tree) gespeichert. Es
|
|||
|
ist daher eine interessante aber sehr komplizierte Frage, welches Format
|
|||
|
f<>r die Editierung am besten geeignet ist. Eine Option w<>re, ein
|
|||
|
ASCII-basiertes Format wie \ XML oder Scheme zu verwenden oder auch das
|
|||
|
ASCII-basierte Format, in dem Dateien auf einer Diskette oder Festplatte
|
|||
|
gespeichert werden. Die andere Option besteht darin die B<>ume als solche zu
|
|||
|
verwenden und damit Textdokumente und Quellcode gleich zu behandeln.\
|
|||
|
|
|||
|
Wir haben uns entschlossen in <TeXmacs> die zweite Alternative zu
|
|||
|
verwenden. Genauer gesagt, jedes Dokument kann im \RQuellmodus'' editiert
|
|||
|
werden. Das ist nur eine spezielle Form der Darstellung, die die
|
|||
|
Baumstruktur besser erkennbar macht. Es ist sehr instruktiv, irgendein
|
|||
|
Dokument zu nehmen und es im Quellmodus zu betrachten. Dazu w<>hlen Sie
|
|||
|
\ <menu|Dokument|Ansicht|Quellmodus>. Auf diese Weise k<>nnen Sie vorallem
|
|||
|
bei Verweisen jeder Art das Ziel erkennen.
|
|||
|
|
|||
|
Die Wahl zwischen ASCII-basiertem Editieren und Baum-basierten Editieren
|
|||
|
ist nicht trivial, denn <TeXmacs> Stil-Dateien und Pakete haben eine
|
|||
|
Doppelnatur. Sie sind einerseits Programme, die spezifizieren, wie Makros
|
|||
|
dargestellt werden, andererseits enhalten sie normalen Text. Es gibt eine
|
|||
|
Reihe von Gr<47>nden, warum Nutzer ein ASCII-basiertes Format vorziehen:
|
|||
|
|
|||
|
<\enumerate>
|
|||
|
<item>Der Code kann leicht so formatiert werden, da<64> man ihn besser lesen
|
|||
|
kann.
|
|||
|
|
|||
|
<item>Kommentare k<>nnen leicht hinzugef<65>gt werden.
|
|||
|
|
|||
|
<item>Standard Editoren wie <name|Emacs> stellen Werkzeuge f<>r
|
|||
|
automatische Hervorhebungen, Einz<6E>ge usw. bereit.
|
|||
|
|
|||
|
<item><label|structure-constraints>Man wird nicht durch irgendwelche
|
|||
|
\RStrukturen'' in der Entwicklungsphase behindert.
|
|||
|
</enumerate>
|
|||
|
|
|||
|
Wir versuchen m<>glichst viele dieser Vorteile in unser Konzept einer a
|
|||
|
strukturierten Dokument- Darstellung einflie<69>en zu lassen, obwohl es
|
|||
|
offensichtlich schwierig ist, Punkt 4 angemessen zu ber<65>cksichtigen. Wir
|
|||
|
glauben, da<64> die in ersten drei Punkten genannten Vorteile in einer solchen
|
|||
|
strukturierten Umgebungen sogar deutlicher ausgepr<70>gt sein werden. Jedoch
|
|||
|
erfordert die Verwirklichung dieses Konzeptes ein tiefes Verst<73>ndnis davon,
|
|||
|
wie Nutzer Quellcode tats<74>chlich formatieren und editieren.\
|
|||
|
|
|||
|
Lassen Sie uns beispielsweise dieses St<53>ck formatierten Code betrachten:
|
|||
|
|
|||
|
<\cpp-fragment>
|
|||
|
if (cond) hop \ \ = 2;
|
|||
|
|
|||
|
else \ \ \ \ \ holala= 3;
|
|||
|
</cpp-fragment>
|
|||
|
|
|||
|
Man erkennt, da<64> dieser Code mit in spezieller Weise formatiert ist. Die
|
|||
|
Formatierungsrichtlinien, die derjenige, der den Code formatierte, im Kopf
|
|||
|
hatte sind, im Code nicht enthalten. Wenn etwa die Variable cond in c
|
|||
|
umbenannt wird, oder wenn die Variable holala in hola umbenannt wird, mu<6D>
|
|||
|
der Code manuell neu formatiert werden.
|
|||
|
|
|||
|
Zum jetzigen Zeitpunkt stellt <TeXmacs> keine Werkzeuge bereit, die das
|
|||
|
Problem dieses \ Beispiels automatisch l<>sen k<>nnten, aber einige wichtige
|
|||
|
Werkzeuge sind schon vorhanden. So hat der Anwender viele M<>glichkeiten,
|
|||
|
Quellcode durch Einz<6E>ge zu gestalten und vern<72>nftige Standardformatierungen
|
|||
|
sind vorhanden. Weitere Werkzeuge sollen in Zukunft entwickelt werden. Wir
|
|||
|
sind f<>r Anregungen dankbar.\
|
|||
|
|
|||
|
<tmdoc-copyright|1998--2004|Joris van der Hoeven>
|
|||
|
|
|||
|
<tmdoc-license|Permission is granted to copy, distribute and/or modify this
|
|||
|
document under the terms of the GNU Free Documentation License, Version 1.1
|
|||
|
or any later version published by the Free Software Foundation; with no
|
|||
|
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
|||
|
Texts. A copy of the license is included in the section entitled "GNU Free
|
|||
|
Documentation License".>
|
|||
|
</body>
|
|||
|
|
|||
|
<\initial>
|
|||
|
<\collection>
|
|||
|
<associate|preamble|false>
|
|||
|
</collection>
|
|||
|
</initial>
|