Syntaxunterstützung für die Programmiersprache Vala in Emacs-Editor

Vala ist eine sehr moderne und eine auf Open-Source-Konzepte bassierende Programmiersprache mit einer sehr vergleichbaren mit Java- bzw. C#-Syntax und ist damit immer eine gute Wahl für jeden Programmierer. Jedoch ist deren Synteaxunterstützung noch nicht in vielen bekannten Editoren wie Emacs standartmäßig eingerichtet. Manuell aber lässt sich das sehr leicht beheben.

Seit Version 24 kommt Emacs mit dem preintallierten Packet “package.el” und bietet somit die Option andere Funktionserweiterungen aus den verschiedenen Repositorien nachzurüsten. Marmalade ist zum Beispiel so ein Package-Archieve, welches auch die Erweiterung “vala-mode” enthält. Um diese zu aktivieren benötigt man folgende Schritte:

  1. Die “~/.emacs“-Datei wird mit dem folgenden Inhalt bereichert:
    (require 'package)
    (add-to-list 'package-archives
        '("marmalade" . "http://marmalade-repo.org/packages/"))
    (package-initialize)
  2. Danach werden die eben hinzugefügte Funktionen mit dem Befehl “M-x eval-buffer” ausgeführt und die Liste der Erweterungen mit dem Befehl “M-x package-refresh-contents” aktualisiert.
  3. Anschließend kann man die Unterstützung von Vala-Syntax mit dem Befehl “M-x package-install vala-mode” freischalten.

Für die älteren Versionen von Emacs kann man entweder das Packet “package.el” nachinstallieren, um die oben erwähneten Schritte machen zu können oder die vala-mode-Datei manuall in den Ordner “~/.emacs.d/” zu verschieben und die “~/.emacs“-Datei mit den folgenden Funktionen zu erweitern.

 (add-to-list 'load-path (expand-file-name "~/.emacs.d"))
(autoload 'vala-mode "vala-mode" "Major mode for editing Vala code." t)
(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
(add-to-list 'auto-mode-alist '("\\.vapi$" . vala-mode))
(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8))
(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8))

Nun sollte einem erfolgreichen Vala-Projekt nichts im Wege stehen!

Referenz: Vala syntax support for Emacs