Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Opal Syntax-Highlighting

Wenn man seine Zeit mit der Programmierung von OPAL-Programmen verbringt, möchte man natürlich auch von seinem Editor unterstützt werden.

Deshalb sammeln wir hier Links zu Syntaxfiles, mit denen man Editoren beibringen kann, OPAL-Sourcecode schön einzufärben. Wenn ihr weitere Syntaxfiles findet/erstellt, fügt sie bitte dieser Liste hinzu.

Übersicht der Editoren mit Opal-Unterstützung

Editor Betriebssysteme Lizenz Homepage
ConTEXT Windows Freeware [1]
Emacs Unix, Windows, MacOS Open Source (GPL) [2]
EmEditor Windows Kommerziell, Freeware [3]
Kate Unix+KDE Open Source (GPL) [4]
nano Unix, Mac OSX Open Source (GPL) [5]
Proton/Phase5 Windows Freeware [6]
Programmer's Notepad 2 Windows Open Source (BSD) [7]
SciTE Unix (GTK), Windows Open Source [8]
Vim Unix, Windows, MacOS Open Source [9]

Details

ConTEXT

Einfach die Datei opal_context.chl in Verzeichnis Highlighters kopieren.

Emacs

Für Emacs gibt es im OCS-Paket Dateien, die auch im Fakultätsnetz zu finden sind. Um den Opal-Modus von Emacs verfügbar zu machen, füge man folgende Zeilen in die Datei ~/.emacs ein:

(setq load-path
      (cons "/home/uebb/uebb/infadm/emacs" load-path)
      )
(defvar opal-novice t)
(require 'opal-mode)  

Den Opal-Modus startet man in Emacs mittels "M-x opal-mode [enter]". M-x bedeutet: Meta-Taste und x gleichzeitig drücken, wobei Esc gefolgt von x die selbe Wirkung hat.

EmEditor

Ein Syntaxfile für EmEditor ist auf http://www.hartwork.org/ zu finden. Auf der offiziellen Seite des Editors gibt es auch eine Kopie.

Kate

Zur Installation einfach die Datei opal_kate.xml nach ~/.kde/share/apps/katepart/syntax kopieren.
Da KWrite und KDevelop genau wie Kate auf Katepart basieren, müsste diese Datei auch dort funktionieren.

Bei Fedora Core muss die Datei nicht wie o.a. ins Homeverzeichnis eingefügt werden, sondern nach /usr/share/apps/katepart/syntax kopiert werden.

nano

Auch nano unterstützt Syntax-Highlighting, wenn man entsprechende nanorc-Datei installiert. Die Datei und Installationsanleitung von gibt es auf der Homepage von Sven Schneider.

Proton/Phase5

Einfach die Datei opal_proton_20051119.sch in Verzeichnis syntax kopieren.

Programmer's Notepad 2

Programmer's Notepad 2 basiert auf Scintilla. Daher wird eine SciLexer.dll von Scintilla 1.68 oder später benötigt. Eine solche DLL findest du in der jeweiligen wscite???.zip. Außerdem benötigt wird opal_pn2.scheme. Die gehört dann ins schemes Verzeichnis.

SciTE

Die aktuelle Version 1.68 unterstützt bereits OPAL Highlighting.

Um alternativ die jeweils aktuellste Version aus der CVS Repository nutzen zu können, muss man an der Unix Shell etwa folgendes tun:

# Scintilla/SciTE aus dem CVS laden (bei Fehler wiederholen!)
mkdir -m744 scite_cvs
cd scite_cvs
cvs -z9 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/scintilla co -P scintilla
cvs -z9 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/scintilla co -P scite

# Kompilieren
cd scintilla/gtk
make
cd ../../scite/gtk
make
cd ../../..

Danach müssen in scite/src/SciTEGlobal.properties noch zwei Zeilen de-kommentiert werden.
Am besten nach "opal" suchen - das geht am schnellsten:

#Opal|impl||\
#import opal

Global installieren wäre danach gegebenfalls mit

sudo make install

(aus Verzeichnis scite/gtk heraus) möglich.

Vim

Für Vim gibt es zwei Highlighting-Definitionen. Eine Highlighting-Definition ist im OCS-Paket im Verzeichnis ocs/lib/vim enthalten (im cs-Netz also /usr/ocs/lib/vim). In der README-Datei der OPAL-Distribution gibt es weitere Informationen. Userseitige Vim-Konfiguration besteht aus dem Kopieren von opal.vim nach ~/.vim/syntax/ und dem Einfügen von

augroup filetypedetect
au BufNewFile,BufRead *.sign,*.impl    set ft=opal
augroup END

(ggf. nur der mittleren Zeile in einen bereits vorhandenen augroup-Block) in ~/.vim/filetype.vim.

Es gibt auch eine alternative Highlighting-Definition: opal.vim.

Vim ist im cs-Netz unter /home/pub/bin/vim verfügbar.