MeShell Kommandozeilen-Frontend verfügbar

(DE) Neuigkeiten zu den Themen OS/2, eCS, und dem OS/2-Forum
(EN) News about OS/2, eCS and the OS/2 Forum
Antworten
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

MeShell Kommandozeilen-Frontend verfügbar

Beitrag von Martin Vieregg »

Wer unter Projekte schon mitgelesen hat, weiß es schon:

Inzwischen habe ich das Kommandozeilen-Frontend MeShell 0.52 fertiggestellt. Die deutsche Doku ist jetzt fertig.

MeShell ist ein Editor, in dem cmd.exe oder 4os2.exe ausgeführt wird und der Output und Input umgeleitet wird. Im Unterschied zu anderen Programmen, die cmd.exe ausführen können (Larsen Commander, fm2, epm) kommuniziert der MeShell Editor mit cmd.exe, so dass auch Exceptions (z. B. Ctrl-C Break) wie gewohnt funktionieren. Er erkennt sog. VIO-Programme, die nicht in stout schreiben und zeigt sie in einem separaten ("Vio"-)Fenster an.

Es ist wichtig, die Doku (vor allem Kapitel 1 und 3) zu lesen und zu verstehen, um das Programm sinnvoll nutzen zu können.

Hier kann man MeShell.zip (650 kB) downloaden.

Ich bitte um die Sammlung von Fehlern und Kommentaren und die Übersenung per E-Mail. Danke. Bitte nicht für jeden Punkt eine einzelne E-Mail senden. Ein bekannter Fehler ist dass wenn ein Programm stdin erwartet (z. B. ein Frage stellt und man ein Wort eintippen soll), dass die Frage nicht erscheint, wenn sie nicht durch ein Return abgeschlossen wurde. Es werden dann Frage und Antwort gemeinsam ausgegeben, nachdem man ENTER gedrückt hat...

Das schnellere Scrollen (direkt über den Bildschirmspeicher) ist inzwischen auch umgesetzt, es bringt aber zumindest bei mir weniger als erhofft. Es wird nur aktiviert, wenn das Fenster voll sichtbar (nicht teilwese abgedeckt) ist.

Was für 1.0 geplant ist:

- Befehls-Vervollständigung mit Tab-Taste und optional mit fly-over Dropdown Auswahlfeld
- WPS Integration (ein bißchen geht jetzt schon: markieren und drag and drop in einen Ordner erzeugt eine Textdatei). Vor allem möchte ich, dass ein Doppeklick auf einen Dateinamen aus einem "dir" Befehl und Ähnlichem die Datei über WPS Standardzuordnung öffnet
- eigenes Fenster mit Navigationsbaum, mit zwei Sortierebenen 1 aktuelles Verzeichnis 2 verwendete Befehle
- dann noch zuschaltbar ein Bottom Panel mit einer Anzeige, welche Verzeichnisse bei welchen Laufwerksbuchstaben gerade angemeldet sind, damit man den Überblick behält, wenn man ein Copy dateiname x: ausführt.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Hier ist noch ein Screenshot:

MeShell Editorfenster

Es sind wohl schon noch kritische Fehler mit Absturz oder Hängen der WPS enthalten, nur kommen sie selten vor und sie sind nicht so einfach reproduzierbar. Wem es gelingen sollte, einen solchen Fehler reproduzieren zu können, soll bitte eine Schritt-für-Schritt-Anleitung machen. Das wäre noch wichtiger als die log-Datei zu schicken, weil nie sicher ist, ob an der entscheidenden Stelle genügend logs gesetzt sind.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Inzwischen habe ich noch kleinere Probleme beheben können. Hier kann man MeShell.zip (650 kB) Version 0.54 downloaden.

Wo es noch ein möglicherweise letztes ernsthaftes Problem gibt, ist wenn ein Programm eine Benutzereingabe erfordert, z. B.
(Y=yes, N=no) and press Enter

und die Frage über Stdout geschickt wird, dann stecken die Zeichen der Frage im Schreibpuffer (des ausgeführten Programms?) und werden noch nicht durch die Pipe geschickt, was erst nach einem EOL (End of line=Return-Endezeichen) geschieht. Von Unix portierte Programme scheinen in diesem Fall die Frage über Stderr zu schicken, dann geht es interessanterweise (seit MeShell 0.54). Beispielsweise funktioniert die Rückfrage bei UNZIP, wenn man ein Archiv erneut auspackt, jetzt einwandfrei. Wenn das Programm VIO Output hat, dann geht es auch (im separaten VIO-Fenster). Programmierer, die miträtseln möchten, können das englische Programmiererforum verfolgen. Es geht jetzt um die Frage, ob man das Leeren des Puffers erzwingen kann. Die Umsetzung sollte kein Problem sein, da MeShell mit einer Helper exe kommuniziert, die in der Session von cmd.exe läuft.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Und wieder gibt es eine neue Version, ein reines Bugfix: MeShell 0.55
Es waren noch spezielle Dinge nicht programmiert, etwa das Kopieren mehrerer Befehle aus der Zwischenablage in den Editor. Eine Reihe weiterer Bugs sind nun behoben. Das oben genannte Problem mit der Dateneingabe ist noch nicht behoben. Selbst auf stackoverflow hat noch keiner eine Lösung gefunden.
Benutzeravatar
thorolf
Beiträge: 563
Registriert: Mi 25. Dez 2013, 16:14
Wohnort: Rhein-Main

Beitrag von thorolf »

Moin,

mal kurz getestet, ist ja noch ein bisschen zu tun :-)

Was noch fehlt ist offensichtlich die Befehls-Vervollständigung via TAB, außerdem sollte der Cursor am Ende der Zeile stehen und nicht am Anfang, wenn man eine Zeile hoch geht.

Und (zumindest) "dir" funktioniert noch nicht so richtig:
meshell_055.jpg
Vielen Dank,
Zuletzt geändert von thorolf am So 26. Apr 2020, 23:57, insgesamt 1-mal geändert.
Grüße,

Thorolf
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Danke Thorolf für das Feedback. Es geht momentan immer um die Frage, wo sich MeShell anders verhält als cmd.exe im normalen VIO Fenster. Und das Verhalten bei Deinem Beispiel ist völlig OK ! Denn Du hast Slash statt Backslash geschrieben. Wie gesagt, MeShell interpretiert die Befehle nicht selbst, sondern sendet sie "unbesehen" an cmd.exe weiter. Es wäre ein mögliches zukünftiges Feature, im Rahmen der geplanten Tab-Vervollständigung, wo dann MeShell Dateinamen von anderen Befehlen unterschieden lernen muss, eine Slash-Umwandlung einzubauen.

Ich bin immer noch am Kämpfen mit Kleinigkeiten. Neuerdings geht das Kopieren von der Zwischenablage nicht mehr, diesmal habe ich an einer markierten Stelle vergessen, weiterzuprogrammieren... Deshalb gibt es ab sofort schon wieder eine neue Version 0.56, wo nur dieser Fehler behoben ist. Es ist für Außenstehende nur schwer nachvollziehbar, wie knifflig es war, den jetzigen Stand zu erreichen, wenn es auf den ersten Blick wieder so aussieht und sich verhält wie das Original. Vielleicht so viel: MeShell.exe hat (incl. Haupt-Thread) 4 Threads, cmdhelper.exe 2 Threads. Da kann definitiv eine Menge schiefgehen.

Aktuelle Version mit behobenem Problem Zwischenablage: MeShell 0.56
außerdem sollte der Cursor am Ende der Zeile stehen und nicht am Anfang, wenn man eine Zeile hoch geht
Du meinst doch die Befehls-Historie mit Cursor-rauf? Das tut er doch.

Es gibt aber trotzdem noch vereinzelt Bugs, auch härtere Geschichten mit Einfrieren der WPS. Und solange so etwas passiert, möchte ich noch keine weiteren Funktionen einbauen, weil es dann schwieriger wird, die Bugs zu fixen. Wenn Euch so etwas passiert und ihr das reproduzieren könnt, dann bitte melden. Ich habe hierfür unter Projekte eine neue Diskussion gestartet. Es kann auch noch Kommandozeilenprogramme geben, wo es noch nicht rund läuft. In solchen Fällen bitte auch berichten. Danke.

Neue Diskussion in Projekte:

MeShell Kommentare und Bugreports
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Es gibt wieder eine neue Version 0.60 von MeShell:

Hier kann man MeShell.zip (650 kB) downloaden.

MeShell Kommentare und Bugreports bitte hier

Das wurde geändert oder ist neu:
  • WPS Integration (siehe Doku Kapitel)
  • Systemmenü-Einträge wie im original Kommandozeilenfenster
  • Wenn die Output- und Befehlshistorie gespeichert wird (Einstellungen-Buch Seite "Save"), dann werden nun auch die aktuellen Verzeichnisse gespeichert und beim erneuten Starten von MeShell wiederhergestellt.
  • Unix Output wird korrekt angezeigt.
  • Weitere Bugfixe.
Es gibt ein Icon, das den WPS-Ordner des aktuellen Verzeichnisses herstellt. Man kann Ordner in das Editorfenster werfen und das Verzeichnis wird angemeldet (im readonly Bereich) oder als Text eingefügt (im Prompt-Bereich). Doppelklick auf einen Dateinamen öffnet die Datei per WPS-Standardzuordnung, auch wenn nur der Name ohne Verzeichnis angegeben ist, etwa bei "dir".
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe eine weitere Version 0.63 von MeShell hochgeladen:

MeShell.zip (650 kB)

MeShell Kommentare und Bugreports bitte hier

0.63 ist ein weiteres reines Bugfix, es sind mehrere wichtigere Sachen behoben, wo MeShell einfrieren konnte. Das nächste zu bearbeitende Thema ist Syntax-Highlightning. Wer noch 0.60 nutzt, bitte auf jeden Fall aktualisieren.

Einfrier-gefährdet war vor allem noch das Starten von MeShell sowie das Kopieren mehrerer Befehls-Zeilen aus der Zwischenablage.
Zuletzt geändert von Martin Vieregg am Mi 20. Mai 2020, 16:54, insgesamt 1-mal geändert.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe nun Version 0.70 von MeShell mit Syntax Completion (Syntax Vervollständigung) hochgeladen:

MeShell.zip (700 kB)

MeShell Kommentare und Bugreports bitte hier

Es gibt ein eigenes Kapitel über die Syntax-Vervollständigung. Es werden sowohl Programmnamen als auch Dateinamen als Parameter des Programms bzw. Befehls vervollständigt. Bei mehreren Möglichkeiten wird ein Listbox-Flyover angezeigt und es gibt farbige Hint-Fenster. Alles kann man über die Seite "Complete" im Einstellungen-Buch ein- und ausschalten. In der Doku findet sich ein neues Hauptkapitel zu "Syntax Completion". Die Funktionalität ist umfangreicher als bei 4os2 oder bei Windows.

Außerdem wurden wieder weitere Bugs bereinigt.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe nun Version 0.80 von MeShell mit Navigationsbaum-Fenster hochgeladen:

MeShell.zip (700 kB)

MeShell Kommentare und Bugreports bitte hier

Die Entwicklung des MeShell Kommandozeilen-Frontends ist nun funktional abgeschlossen.

Im Navigationsfenster gibt es einen "normalen Modus", bei dem in der ersten Ebene die angemeldeten Verzeichnisse und in der zweiten die eingegebenen Befehle eingegeben wird. Dann gibt es noch einen "Error-Modus", in dem nur die Zeilen angezeigt werden, wo stderr Ausgaben stattgefunden haben. Das ist bei langen Batchdateien hilfreich, um die Fehler-Zeilen zu finden.

Das OS/2 Projekt MeShell ist nun im Prinzip fertig. Von meiner Seite fallen mir keine sinnvollen Ergänzungen mehr ein. Es sind aber sicherlich noch Bugs enthalten, wenn auch nicht mehr in der ursprünglichen Anzahl. Ich bitte um verbleibende Bug-Sammlungen mit Anleitung, wie man es reproduzieren kann.

Auf der OS/2 Plattform wird sich bis 1.0 nun nicht mehr viel tun. Bis 0.90 möchte ich die Windows Portierung fertigstellen, 0.9X dient dann nur noch Bugfixen auf beiden Plattformen.
Martin Vieregg
Beiträge: 459
Registriert: Di 19. Aug 2014, 09:30

Beitrag von Martin Vieregg »

Ich habe MeShell Version 0.84 veröffentlicht. Aus meiner Sicht ist die Funktionalität nun beendet, mir fehlt jetzt nichts mehr.

Neu hinzugekomen ist:
  • Buttons im Top Panel für die Navigation zu Fehlermeldungen (stderr)
  • Ein Dropdownfeld im Navigationsfenster, wo man die Befehle nach unterschiedlichen Kriterien sortieren lassen kann
Dann sind wieder eine Handvoll kleinerer Fehler behoben.

MeShell 0.84 (740 kB)

Es steht jetzt nur noch die Windows-Portierung an.

Mir ist aufgefallen, dass hin und wieder die Ausgabe von stderr und stdout durcheinandergeraten kann, das konnte ich aber noch nicht richtig reproduzieren.
Jeden regelmäßig reproduzierbaren Fehler bitte ich mir zuzusenden. Danke.
Antworten