;; -*- emacs-lisp -*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; $Id: emacs_sgml.el,v 1.6 2006-11-06 21:02:42 rscholz Exp $
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Einstellungen für den SGML-Mode (psgml)
;;
;; Die offizielle Quelle dieser Datei ist
;;   <http://www.zonix.de/projects/emacs/config>
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(add-to-list 'load-path (expand-file-name (concat zonix-elisp-dir "psgml")))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PSGML <http://sourceforge.net/projects/psgml>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)           
(autoload 'xml-mode "psgml" "Major mode to edit XML files." t)             

(defun sgml-no-comment ()
  (interactive)(setq sgml-insert-missing-element-comment nil))

(add-hook 'sgml-mode-hook
          #'(lambda ()
              (setq sgml-indent-step 2)
              (setq sgml-indent-data t)
              (auto-fill-mode t)
              (make-variable-buffer-local 'adaptive-fill-regexp)
              (setq adaptive-fill-regexp nil)
              (make-variable-buffer-local 'fill-column)
              (setq fill-column 79)
              ))

(setq-default sgml-auto-activate-dtd t)

(setq auto-mode-alist 
      (append '(("\\.gml$" . sgml-mode)
;               ("\\.html?$" . sgml-mode)
                ("\\.xml$" . xml-mode)
                ("\\.xsl$" . xml-mode)
                )
              auto-mode-alist))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Faces
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq sgml-set-face t)
(setq sgml-markup-faces '((start-tag    . font-lock-function-name-face)
                          (end-tag      . font-lock-function-name-face)
                          (comment      . font-lock-comment-face)
                          (param        . font-lock-variable-name-face)
                          (pi           . bold)
                          (sgml         . bold)
                          (doctype      . bold)
                          (entity       . font-lock-string-face)
                          (shortref     . font-lock-reference-face)))

(setq sgml-live-element-indicator t)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Pfade
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(setq sgml-system-path '("." "~/sgml" "/usr/local/share/sgml"))
(setq sgml-public-map '("%S" "/usr/local/share/sgml/%o/%c/%d" 
                        "~/sgml/%o/%c/%d" "/usr/share/sgml/%o/%c/%d"))
(setq sgml-catalog-files '("~/sgml/catalog" "/usr/local/share/sgml/catalog"
                           "/etc/sgml/catalog"))
(setq sgml-ecat-files '("ECAT" "~/sgml/ECAT" "/usr/share/sgml/ECAT"))
(setq sgml-display-char-list-filename "~/el/psgml/iso88591.map")


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; xxml <http://xxml.progiciels-bpi.ca/>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(autoload 'html-mode "xxml" "Major mode to edit HTML files." t)
(autoload 'xxml-mode-routine "xxml")
(add-hook 'sgml-mode-hook 'xxml-mode-routine)
(add-hook 'xml-mode-hook 'xxml-mode-routine)

(add-hook 'xml-mode-hook
          #'(lambda ()
              (setq sgml-validate-command
                    "nsgmls -wxml -s /usr/lib/sgml/declaration/xml.dcl %s %s")))