Nach den letzten beiden „Kombiteilen“ geht diese Serie nun wieder ihren eigenen Weg, wenngleich die Themen Editoren und IDEs mittlerweile kaum noch von Open Source zu trennen sind. Immer mehr Anbieter stellen selbst ihre kommerziellen Editoren/IDEs als Open Source zur Verfügung. Nun kommen wir zu einem ganz anderen Vertreter der Entwicklungs-Tools für die IBM i, den es bereits seit 2003 kostenlos gibt und ich wette, dass viele von Ihnen ihn sogar kennen und evtl. sogar täglich nutzen, jedoch bisher nicht wussten, dass er auch RPG unterstützt: Notepad++ von Don Ho, der mittlerweile über 28 Millionen Mal heruntergeladen wurde.

Unter dem Link https://notepad-plus-plus.org findet sich Notepad++. Dieser schlanke und kostenlose Editor hat durch sein Update auf Version 7.3.3 wieder etwas auf sich aufmerksam gemacht hat, denn damit wurde der sog. „CIA Hack“ gefixt. Durch die damaligen Wikileaks Enthüllungen am 7.3.2017 (man beachte das Datum und die Versionsnummer – Zufälle gibt es… ) wurde auch bekannt, dass die CIA eine Notepad++ DLL für eigene Zwecke missbraucht und so Millionen von Rechnern ausspioniert hat – so ist das im „Land of the free“ heute eben…Glücklicherweise wurde bereits einen Tag später – am 8.3.2017 diese Lücke von den Programmierern von Notepad++ gefixt.

Mittlerweile liegt Notepad++ in Version 7.8.1 vor, was zeigt, dass das Tool sehr lebendig ist. Ein Nachteil im Vergleich zu anderen Tools, wie z.B. Visual Studio Code, über welches ich auch noch berichte, ist, dass Notepad++ ausschließlich unter Windows läuft. Da es in C++ geschrieben ist und die Win32 APIs direkt nutzt ist es hingegen wieder besonders kompakt und schnell. Wie alles im Leben hat eben auch Notepad++ Vor- und Nachteile, die es gegeneinander abzuwägen gilt…

Wenn Sie Notepad++ noch nicht kennen, dann sollten Sie dies nun dringend nachholen, denn es ist nicht nur für die RPG Entwicklung praktisch, sondern auch für jegliche andere Programmiersprachen, HTML, Datenformate oder einfach nur Texte.
Ein Vorteil von Notepad++ (Npp) ist u.a.,dass der Editor sehr kompakt ist und dadurch sehr schnell startet und auch eine sehr gute Arbeitsgeschwindigkeit aufweist, was gerade im Bereich Texterfassung jeglicher Art enorm wichtig ist, dennoch lässt er es an Komfort nicht missen.

Plugins für alles und jeden

Ein weiterer Vorteil von Npp ist die einfache Erweiterbarkeit über Plugins. Da Npp sehr beliebt ist, sind im Laufe der Zeit zahlreiche Plugins mit allen möglichen Funktionen und Erweiterungen entstanden. Über den integrierten Plugin Manager lassen sich diese komfortabel auswählen, installieren und verwalten.

Bild 2; Quelle: edvberatung.litters

So können über die Erweiterung „JSTool“ JSON Daten übersichtlich angezeigt oder bearbeitet werden, während die Erweiterung „XML Tools“ dies mit XML-Daten macht, was im Alltag sehr praktisch ist.

Denn man will ja nicht jedes Mal gleich ein großes Entwicklungs-Tool starten, wenn man „nur mal schnell“ in eine XML-Datei schauen oder diese ggf. kurz anpassen möchte.

 

Anhand der Dateiendung erkennt Npp das verwendete Format und führt, sofern vorhanden, ein sogenanntes Syntax Highlight, wie auch eine entsprechende Formatierung durch, wie hier an dem folgenden XML-Dokument (im Bild 3) schön zu erkennen ist.

 

Notepad++ und RPG

Doch bei all den vielen und tollen Funktionen, die Npp bietet, wollen wir doch nicht vergessen, dass wir uns hier speziell um RPG kümmern. Neben den Plugins bietet Npp eine weitere Möglichkeit erweitert zu werden, durch sog. „User Defined Language Files“. Mehr als 290 gibt es mittlerweile davon und es finden sich neben allen möglichen Programmiersprachen (z.B. auch 68k Assembler!) benutzerdefinierte Sprachvorlagen für Excel- oder Lotus Notes Formeln.

Bild 3; Quelle: edvberatung.litters

Unter anderem findet man auf dieser Seite den Eintrag „IceBreak RPG“ von Niels Liisberg, welcher sich darum gekümmert hat IBMs RPG in die Npp Welt zu tragen. Primär, um damit Quellcode, der im IFS gespeichert wird schnell und kompakt zu lesen und zu bearbeiten und das natürlich mit Blick auf die Middleware IceBreak, die Niels Liisberg ebenfalls entwickelt hat. Doch dazu in einem anderen Artikel mehr…

In dieser benutzerdefinierten Sprachdatei befinden sich neben den RPG Schlüsselwörtern, wie „CHAIN, ELSEIF oder EXFMT“ auch die Built-In Functions, wie „%ERROR oder %LOOKUP“. Eine userDefinedLanguage Datei liegt im XML-Format vor und kann somit leicht selbst erstellt oder angepasst werden. Sollten Sie also irgendetwas in der IceBreak RPG-Datei vermissen, können Sie dies einfach hinzufügen – natürlich mit Npp!

Damit Npp RPG versteht, klicken Sie auf der o.g. Seite auf den „IceBreak RPG“ Link und Sie sehen die XML-Datei. Diese fügen Sie einfach via Copy & Paste in Npp ein und speichern sie als „userDefinedLanguage.xml“ im Npp Programmverzeichnis ab. Nun beenden Sie Npp und starten es neu. Im Menü „Sprachen“ sehen Sie nun „IceBreak“, welches automatisch zum Einsatz kommt, wenn Sie eine Datei mit der Endung „rpgle“ speichern. Den Namen können Sie natürlich in der XML-Datei oben anpassen.

Etwas komfortabler geht es über das Menü Sprachen und dort den Menüpunkt „Eigene Sprachen definieren“. Hier kann man über eine kleine Oberfläche die Sprachdatei anpassen bzw. Importieren oder Exportieren. So habe ich z.B. die verschiedenen Free Form Schlüsselwörter wie „dcl-proc, dcl-pi oder dcl-pr“ hinzugefügt, damit Npp diese auch entsprechend erkennt und berücksichtigt.

Bild 4; Quelle: edvberatung.litters

Wie Sie im  Bild 4 erkennen können, kann man die Anweisungen auch als Beginn bzw. Ende eines Blocks definieren, so dass ein vorangestellte + bzw. – Zeichen erscheint, mit welchem man den Block auf- oder zuklappen kann.

Schlüsselwörter hinzufügen

Die Tatsache, dass ich die Free Form Schlüsselwörter noch selbst hinzufügen musste, deutet schon darauf hin, dass die IceBreak Sprachdatei auf „klassisches“ RPG ausgelegt ist und genauso ist es.

Das heißt vorhandene RPG-Programme im Spaltenformat lassen sich damit wunderbar anzeigen und – wenn gewünscht – auch editieren.

In dem Screenshot in Bild 5 können Sie neben dem Spaltenorientierten RPG noch erkennen, dass Npp eingegebene Felder erkennt. D.h. beginne ich „ca“ zu tippen, erscheint sofort eine Auswahl aller möglichen Felder, die mit „ca“ beginnen.

Bild 5; Quelle: edvberatung.litters

Fazit

Natürlich ist Npp auch zusammen mit der IceBreak Spracherweiterung kein vollwertiger Ersatz für SEU oder gar RDi. Da Npp jedoch sehr vielseitig einsetzbar, schlank und enorm erweiterbar ist, schadet es mit Sicherheit nicht, Npp zu installieren und eignet sich die IceBreak Erweiterung u.U. durchaus dafür, wenn man „mal schnell“ einen Quellcode in RPG anschauen oder evtl. Offline bearbeiten will. Da Npp ebenfalls Open Source und unter GitHub zu finden ist, kann auch jeder selbst den Editor so erweitern, dass man u.U. mehr mit RPG machen kann.

Im nächsten Teil schauen wir uns eine weitere Möglichkeit an, RPG-Code zu editieren – dann jedoch mit wesentlich mehr Komfort, als mit Npp oder Orion oder gar SEU oder EDTF, jedoch immer noch weniger, als mit RDi…

Markus A. Litters, edvberatung.litters

edvberatung.litters