PSGML-Utils is a set of extensions for Emacs' PSGML mode. They consist of the following files:
psgml-superedit.el
:
additional editing functions for use with PSGMLpsgml-run.el
:
functions for running validation and transformation scenarios in PSGMLpsgml-xml.el
:
an XML mode derived from PSGML's SGML modePSGML-Utils were developed against PSGML v. 1.4.0 as provided by the Debian
package psgml
.
Installation and proposed settings in .emacs
:
(add-hook 'sgml-mode-hook
(lambda ()
(require 'psgml-superedit)
(require 'psgml-run)
(define-key sgml-mode-map (kbd "C-c C-e") 'sgml-insert-element-dwim)
(define-key sgml-mode-map (kbd "C-c RET") 'sgml-split-element-dwim)
(define-key sgml-mode-map (kbd "C-c DEL") 'sgml-untag-element)
(define-key sgml-mode-map (kbd "C-c -") 'sgml-delete-attribute)
(define-key sgml-mode-map (kbd "C-c ?") 'sgml-insert-pi)
(define-key sgml-mode-map (kbd "M-;") 'sgml-comment-dwim)
(define-key sgml-mode-map (kbd "C-M-f") 'sgml-forward-dwim)
(define-key sgml-mode-map (kbd "<C-M-right>") 'sgml-forward-dwim)
(define-key sgml-mode-map (kbd "C-M-b") 'sgml-backward-dwim)
(define-key sgml-mode-map (kbd "<C-M-left>") 'sgml-backward-dwim)
(define-key sgml-mode-map (kbd "C-M-d") 'sgml-down-dwim)
(define-key sgml-mode-map (kbd "<C-M-down>") 'sgml-down-dwim)
(define-key sgml-mode-map (kbd "<C-M-next>") 'sgml-forward-up-dwim)
(define-key sgml-mode-map (kbd "C-M-u") 'sgml-backward-up-dwim)
(define-key sgml-mode-map (kbd "<C-M-up>") 'sgml-backward-up-dwim)
(define-key sgml-mode-map (kbd "<C-M-prior>") 'sgml-backward-up-dwim)
(define-key sgml-mode-map (kbd "C-M-SPC") 'sgml-mark-dwim)
(define-key sgml-mode-map (kbd "C-M-k") 'sgml-kill-dwim)
(define-key sgml-mode-map (kbd "<C-M-delete>") 'sgml-kill-dwim)
(define-key sgml-mode-map (kbd "<C-M-backspace>") 'sgml-kill-backward-dwim)
(define-key sgml-mode-map (kbd "<tab>") 'sgml-indent-line-or-region)
(define-key sgml-mode-map (kbd "<backtab>") 'sgml-unindent-line-or-region)
(define-key sgml-mode-map (kbd "C-c v") 'sgml-run-validation)
(define-key sgml-mode-map (kbd "C-c t") 'sgml-run-transformation)
(define-key sgml-mode-map (kbd "C-c C-v") 'sgml-run-validation-scenario)
(define-key sgml-mode-map (kbd "C-c C-t") 'sgml-run-transformation-scenario)))
(setq sgml-show-context-function 'sgml-show-context-xpath)
(setq sgml-validation-scenario-alist
'(("DTD" . "xmllint --noout --valid")
("DTD/XInclude" . "xmllint --noout --xinclude --postvalid")))
(setq sgml-transformation-scenario-alist
'(("XSLT" . "xsltproc --output %s stylesheet.xsl")
("XSLT/XInclude" . "xsltproc --xinclude --output %s stylesheet.xsl")))
(autoload 'sgml-xml-mode "psgml-xml" "Major mode for editing XML files" t)
(add-to-list 'auto-mode-alist '("\\.xml\\'" . sgml-xml-mode))
PSGML-Utils are released 'as is' with no warranty under the GNU General Public License, version 2.0.
Andreas Nolda (andreas@nolda.org)