home Atari St. Pauli Wohnungslosigkeit Asturien Download KLib Library-Maker Hypertext Omikron.Basic Nährwert Bootsel Pkey Splitter

KLed

Alternativer Editor und Projektverwaltung für Omikron.Basic

Tja, hier gibt es noch immer nicht wirklich etwas.

KLed ist seit fünf Jahren in Arbeit und auch schon ziemlich weit fortgeschritten. Aber für eine erste richtige Version reicht es trotzdem noch nicht. Ich habe halt nicht sehr viel Zeit. Die Entwicklung von KLed habe ich immer mal wieder zugunsten anderer Projekte zurückgestellt. Die KLed-Entwicklung ging immer weiter und so ist es immernoch, wenn auch langsam.

Bevor ich am Ende ein Archiv veröffentliche, daß den derzeitigen Stand von KLed enthält, möchte ich die Gelegenheit hier nutzen und ein paar Worte darüber verlieren, was hinter KLed steckt:

Was ist KLed?

Der Editor des OMIKRON.BASIC ab V. 5.XX stellt zwar einen erheblichen Fortschritt im Vergleich zum alten Editor dar, aber er läßt meines Erachtens noch einiges zu wünschen übrig. Insbesondere die GEM-Einbindung ist nur sehr unvollständig.

Bei immer größer werdenden Programmen wird außerdem die Übersicht über den Programmcode immer unübersichtlicher, wenn dieser - ob eingeklappt oder nicht - immer nur in einem Fenster sequentiell hinter einander bearbeitet werden kann. Daran ändert auch die Möglichkeit, mehrere Ansichten des selben Programms zu öffnen, nur graduell etwas. Denn wenn im einen Fenster Zeilen eingefügt oder gelöscht werden, wirkt sich das häufig auf das andere Fenster aus: es wird plötzlich eine andere Stelle im Programm dargestellt.

Ich habe deshalb im April 1998 damit begonnen, einen neuen Editor für OMIKRON.BASIC zu schreiben, der inzwischen so weit ist, daß ich damit teilweise arbeiten kann. Ob es schon jemand anders könnte ist eine andere Frage ... ;-)

Features:

Projektverwaltung

Der Editor beschränkt sich nicht darauf, BAS-Dateien darzustellen und edierbar zu machen, sondern stellt den Anspruch, ein Programmierprojekt umfassend zu bearbeiten. Die Grundlage der Arbeit mit KLed (so heißt der Editor) sind deshalb nicht BAS-Dateien sondern Projekte. Projekte enthalten alle Dateien als Objekte, die zur Fertigstellung eines Programms benötigt werden, also neben dem eigentlichen Basic-Quellcode auch die benötigten Libraries, die RSC-Datei, die TODO-Liste usw. Zu einem Projekt können jederzeit z.B. per Drag&Drop vom Desktop aus neue Objekte hinzugefügt werden. KLed kann bis zu 32 Projekte gleichzeitig geöffnet halten. Die Anzahl der Objekte in einem Projekt ist nur durch das RAM begrenzt.

Screenshot mit Objektinfo-Dialog Für jedes Objekt eines Projektes kann bestimmt werden, auf welche Weise es normalerweise geöffnet wird. Neben der "normalen" Darstellung in einem Fenster von KLed können Objekte auch im Hex-Modus dargestellt werden (bislang aber ohne Ediermöglichkeit). Außerdem kann jedes Objekt auch durch ein individuell bestimmbares externes Programm geöffnet werden.

Diese Eigenschaft läßt sich ebenso wie z.B. die Eigenschaft "nur lesen" bzw. "schreibgeschützt" für jedes Objekt individuell einstellen.



Editor

Der Editor kann bisher ASCII- und Basic-Dateien öffnen, darstellen, bearbeiten und speichern. So weit ich das überblicken kann, stellt KLed alle BASIC-Befehle und Funktionen korrekt dar. Bei einzelnen, von mir nicht oder nur sehr selten benutzten Befehlen kann es allerdings sein, daß es noch Fehler gibt.

Ebenso wie die Projektverwaltung findet auch die Bearbeitung von Basic-Code objektorientiert statt. Das bedeutet konkret: ein eingeladener Programmcode wird zunächst immer vollständig eingeklappt dargestellt. Durch einen Doppelklick auf eine Falte wird der Inhalt dieser Falte in ein weiter es Fenster geöffnet. Das funktioniert in beliebiger Tiefe. Der Vorteil: auf dem Bildschirm werden genau die Prozeduren dargestellt, an denen gerade gearbeitet wird. Und zwar unabhängig davon, wo genau diese sich im Programmcode befinden.

Geplant ist auch, daß eine Falte in das selbe Fenster geöffnet werden kann, in dem der Doppelklick gemacht wurde. Das wird bei der ersten Version aber noch nicht möglich sein. Ein Bearbeitungsmodus, der dem Original-Editor entspricht wird in der ersten "echten" Version vorhanden sein.

Das Clipboard wird GEM-konform unterstützt. Blockfunktionen sind bisher teilweise implementiert (und zwar GEM-konform!). Auf ASCII-Basis funktioniert das bereits, auf der Basis von Basic-Token befindet es sich noch in Arbeit.

Screenshot mit Such-Dialog Die Such- und Ersetz-Funktion wird flexibler sein als im Original-Editor. Das Suchen ist schon vorhanden und gefällt mir persönlich besonders in Verbindung mit dem Kontextpopup im Quellcode besonders gut. Ersetzen wird natürlich auch noch folgen.



Hilfefunktionen

KLed unterstützt den ST-Guide und BubbleGEM. Der ST-Guide-Hypertext wird hoffentlich der nächsten hier veröffentlichten Version beiliegen. In Fenstern, in denen Basic-Code dargestellt wird, ist es möglich, sowohl über BubbleGEM als auch über ST-Guide eine Hilfe zu dem Wort zu bekommen, das sich gerade unter dem Cursor befindet. Auch diese Funktionalität ist schon vorhanden. Dabei ist die Hilfe nicht auf BASIC-Befehle beschränkt, sondern auch der Hilfetext einer beliebigen Library kann online kontextsensitiv von KLed aus aufgerufen werden, wenn er bestimmte Voraussetzungen erfüllt. Für den KLib -Hypertext ist das natürlich der Fall ...

Plugins

KLed wird eine Plugin-Schnittstelle haben, über die spezielle Tools zur Verfügung gestellt werden können. Ich denke da z.B. an eine Cross-Reference-Analyse und an eine Precompiler-Funktion (Code-Optimierung). Aber das wird noch eine ganze Weile dauern. Da die Schnittstelle dokumentiert werden wird (und dann schon vorhanden ist), wird es aber ab der Version 1.0 auch möglich sein, eigene Plugins zu schreiben ...

Unterstützung von Protokollen

Konfiguration für externe Programme KLed wird die wichtigsten Funktionen aus dem Drag&Drop-Protokoll (incl. Font-Drag&Drop) und dem VA-Protokoll unterstützen. Das Document-History-Protokoll (DHST) wird bereits unterstützt, Drag&Drop und VA-Protokoll teilweise. Die Unterstützung von OLGA wird ab Version 1.0 vorhanden sein. Damit wird es z.B. möglich sein, in einem Basic-Quellcode automatisch die alte Version einer Library durch die aktuelle Version zu ersetzen. Eine Unterstützung von GEMscript ist ebenfalls geplant.

Umrechnung von HEX- und Binär-Zahlen

Außerdem enthält KLed ein paar kleine "Schmankerl" wie z.B. eine ASCII-Tabelle und einen DEZ-HEX-BIN-Rechner.

Was KLed nicht können wird

KLed wird nicht den Interpreter und auch nicht den Compiler von OMIKRON.BASIC ersetzen. Beide werden also weiterhin notwendig bleiben. In Sachen Interpreter sehe ich fast keinen Handlungsbedarf (Lauffähigkeit in Verbindung mit dem MagiC PC-Compiler-Modus wäre schon nett) und für den Compiler fehlen mir sowohl die Zeit als auch die notwendigen Assembler- Kenntnisse.

Voraussichtliche Anforderungen an Hard- und Software

KLed wird im "echten Betrieb" vermutlich mindestens 2 MB RAM benötigen. Falls der Compiler von KLed aus aufgerufen werden soll wird aufgrund von dessen Speicherhunger deutlich mehr RAM nötig sein ...

Die Auflösung sollte mindestens ST-hoch (640*400) sein, weil ansonsten einige Dialoge nicht auf den Bildschirm passen werden. Außerdem dürften die vielen Fenster auf einem kleinerem Bildschirm zu unübersichtlich werden.

Eine Registerkarte des Optionen-Dialoges Ein Multitasking-Betriebssystem ist sehr stark angeraten, damit KLed seine Stärken voll ausspielen kann. Ich programmiere selber unter MagiC PC. Eine Lauffähigkeit unter N.AES werde ich (falls nicht vorhanden) anstreben.

Als weitere Software sollten OMIKRON.BASIC (incl. des Hypertextes von mir), der Library-Maker, ein Resource-Editor, ST-Guide, BubbleGEM und Olga vorhanden sein. Der TOS.HYP schadet auch nichts ...

Aller Voraussicht nach wird KLed Registerware werden, also kostenlos.

Aktueller Stand der Entwicklung

Langsam, aber stetig, geht es voran. Wer diese Seite schon öfter besucht hat, wird feststellen, daß die veröffentlichte Version häufig schon etwas älter ist und ich hier meistens auch nicht viel neues von mir gebe. Das hat verschiedene Gründe, die aber nicht bedeuten, daß die Entwicklung von KLed eingschlafen wäre:

Alles zusammengenommen führt dazu, daß ich mich hüten werde, einen Erscheinungstermin für eine alltagstaugliche Version von KLed zu nennen. Über aufmunternde E-Mails und Anregungen freue ich mich aber auf jeden Fall.

In der aktuellen Entwicklungsversion können Objekte jetzt auch mit dem "Maus-Lasso" selektiert werden. Außerdem können sie mit der Maus gegriffen und in andere Fenster gezogen werden. Blöcke können markiert werden. Ihre weitere Verarbeitung befindet sich gerade in Arbeit. Dann ist das Ein- und Ausklappen von Codeteilen dran. Wenn das erledigt ist ist damit auch die Ersetzen-Funktionalität praktisch schon fast fertig.

Wer es jetzt nicht lassen kann, sich die Baustelle auf eigene Gefahr anzusehen kann die aktuelle Version hier bekommen:

Download kled_080.zip (257.789 Bytes)

zuletzt geändert: 22.06.2003, Karsten Lüdersen, webmaster@kalue.de