next up previous contents
Nächste Seite: Netzwerkfunktionen Aufwärts: Die Implementierung Vorherige Seite: Die Implementierung   Inhalt

Grundstruktur

Folgende Schritte sind zu befolgen bei der Erstellung eines Major Modes [1][2]:
  1. Wählen eines Namen für den Major Mode. Der Name dieses Modes ist phutball.
  2. Erstellen einer Datei mit der Endung .el, welche den Code für den Major Mode enthält.
  3. Definieren einer Variablen phutball-mode-hook. Diese wird die Funktionen enthalten, die beim starten des Modes ausgeführt werden.
  4. Definieren einer mode-spezifischen Keymap1. Die Variable phutball-mode-map wird mit dieser Keymap belegt. Eine Keymap wird wie folgt erzeugt:
      (defvar phutball-mode-map nil
         "Keymap fuer phutball mode")
    
      (if phutball-mode-map nil
        (setq phutball-mode-map (make-keymap))
      (define-key phutball-mode-map keysequence command)
      ...)
    
  5. Falls erforderlich, wird eine mode-spezifische Syntaxtabelle erzeugt und eine Variable phutball-mode-syntax-table damit belegt. Für unseren Mode benötigen wir keine Syntaxtabelle.
  6. Definieren eines Kommandos phutball-mode. Das ist das Major-Mode-Kommando, und benötigt keine Argumente. Wenn es ausgeführt wird, sollte es den aktuellen Buffer2 in einen phutball-mode Buffer überführen3, indem es folgende Schritte durchführt:
    1. Es muss kill-all-local-variables aufrufen, womit die Definitionen aller lokalen Buffervariablen entfernt werden. Dies schaltet alle Major- und Minor-Modes, welche vorher aktiv waren, aus.
            (kill-all-local-variables)
      
    2. Es muss die Variable major-mode auf phutball-mode setzen.
            (setq major-mode 'phutball-mode)
      
    3. Es muss die Variable mode-name auf eine kurze Zeichenreihe setzen, welche den Mode beschreibt.
            (setq mode-name "Phutball")
      
    4. Es muss die modespezifische Keymap installieren, falls diese existiert, indem use-local-map aufgerufen wird.
            (use-local-map phutball-mode-map)
      
    5. Es muss die Hook4-Funktionen ausführen mit run-hooks.
            (run-hooks 'phutball-mode-hook)
      
  7. Funktionen des Modes müssen ``bereitgestellt'' werden durch Aufrufen von provide.
        (provide 'phutball)
    

Abbildung 3: Die Major-Mode-Funktion.
\begin{figure}\small\begin{verbatim}(defun phutball-open-connection ()
(open-...
...ess ''phutball-socket'') 'phutball-filter))\end{verbatim}\normalsize\end{figure}

Die Major-Mode Funktion ist in Abbildung 3 dargestellt.


next up previous contents
Nächste Seite: Netzwerkfunktionen Aufwärts: Die Implementierung Vorherige Seite: Die Implementierung   Inhalt
Robert Hoehndorf 2002-08-22