Texteditoren sind Glaubenssache. In kaum einer Softwaregattung haben die jeweiigen Protagonisten so engagierte Verfechter wie bei den Texteditoren. Die Konkurrenz zwischen Vi und Emacs gehört zu den Klassikern der IT-Welt.
Obwohl auf aktuellen Mac-Computern beide zur Verfügung stehen und im Umfeld der Kommandozeilenarbeit zweifellos ihre Existenzberechtigung haben, gibt es unter der grafischen Oberfläche OSX natürlich auch andere leistungsfähige Texteditoren.
Bei mir hat mit Ultraedit ein alter Bekannter aus der Windows-Welt den Sprung auf den Mac geschafft. Insbesondere in Feature hat es mir dabei angetan: die einblendbare Funktionsliste, vor allem in Verbindung mit der Möglichkeit, frei zu definieren, was als Funktion erkannt wird.
Ich möchte Ihnen das am Beispiel des Syntax-Highlightings für Python zeigen.
Im Screenshot sehen Sie rechts die eingeblendete Funktionsliste. Jeder Eintrag ist über einen Mausklick direkt ansteuerbar. Neben den Funktionen, die der Sprachsyntax von Python entsprechen, sehen Sie eine Gruppe von Einträgen, die mit „### BLOCK“ beginnen. Im Quelltextfenster links finden Sie einige dieser Zeilen wieder.
Damit sind beliebige Stellen im Quelltext aus einer übersichtlichen Liste auswählbar, was die Navigation erheblich erleichtert.
Um dies zu erreichen, editiert man die Syntaxdatei für Python. Ultraedit speichert Syntaxdateien (sog. „Wordfiles“) im Verzeichnis
/Users/<IhrUserName>/Library/Application Support/UltraEdit/wordfiles
mit der Dateiendung .uew.
In der Datei python.uew stehen nun unter anderem folgende Zeilen:
/Function String 1 = "^([ t]*)(def|class)([ t]+[^:]+):" /Function String 2 = "%[ ,^t]++def[ ]+^([a-zA-Z0-9_]+[ ,^t]++([a-zA-Z0-9_,="' ]++)^):" /Function String 3 = "%^(### BLOCK [ -A-Za-z0-9äöüÄÖÜß,]+^)"
Die beiden ersten Zeilen definieren die „normalen“ Python-Funktionen. die dritte definiert die Zeilen mit „### BLOCK“. Wie Sie sehen, ist die Syntax nicht gerade übersichtlich. Ultraedit verwendet reguläre Ausdrücke zur Syntaxbeschreibung. Im Fall unserer Zeile wird definiert, dass Zeilen, die mit der Zeichenkette „### BLOCK “ anfangen, als Funktion erkannt und vollständig in die Funktionsliste übernommen werden sollen. Die Klammern legen dabei den Text fest, der in die Liste kommt.
Eine detaillierte (aber immer noch nicht einfache) Beschreibung der Wordfile-Syntax finden Sie hier.
Ultraedit selbst können Sie hier kaufen.
Übrigens: Mit den Lesezeichen bietet Ultraedit selbst ein ganz ähnliches Feature. Ich benutze Lesezeichen aber lieber für temporäre Zwecke, die dauerhaften Sprungmarken dagegen sind für mich besser in der Funktionsliste aufgehoben.
Quellen: Foto by Fotolia. Urheber: Natalia Merzlyakova