-
Notifications
You must be signed in to change notification settings - Fork 272
Two mode
klacke edited this page Sep 13, 2010
·
1 revision
two-mode-mode.el is an Emacs Lisp mode by David Welton which makes emacs sensitive to what sort of content you are editing while editing a .yaws file. I’m using the xml-lite mode to edit HTML content and of course the erlang-mode to edit erlang. The two-mode-mode.el file is shipped with yaws. You’ll find it in the toplevel directory in the source code of yaws.
A .yaws file usually contains both. Thus to get two-mode working I have the relevant emacs file in the emacs search path:
Thus two-mode-mode.el, erlang.el and xml-lite.el or nxml-mode must be in the emacs search path. I have all these three files in $HOME/emacs Thus:
(setq load-path (append ' ("~klacke/emacs") load-path ))
And I also have
(require 'nxml-mode)
(require 'two-mode-mode)
(or (assoc "\\.yaws$" auto-mode-alist)
(setq auto-mode-alist (cons '("\\.yaws$" . two-mode-mode)
auto-mode-alist)))
;;; Set up for automatic mode selection
(let ((a '("\\.erl$" . erlang-mode))
(b '("\\.hrl$" . erlang-mode)))
(or (assoc (car a) auto-mode-alist)
(setq auto-mode-alist (cons a auto-mode-alist)))
(or (assoc (car c) auto-mode-alist)
(setq auto-mode-alist (cons c auto-mode-alist)))
(or (assoc (car b) auto-mode-alist)
(setq auto-mode-alist (cons b auto-mode-alist))))
;;; Autoload the Erlang mode when needed.
(autoload 'erlang-mode "erlang" "Major mode for editing Erlang code." t)
(autoload 'run-erlang "erlang" "Run an inferior Erlang shell." t)
;;; Files usually not interesting to view in Emacs.
(setq completion-ignored-extensions
(append '(".jam" ".vee" ".beam") completion-ignored-extensions))
; Fontify my Erlang buffers
;;(setq font-lock-maximum-decoration t)
(add-hook 'erlang-mode-hook 'turn-on-font-lock)
;;; This is how I want my new Erlang files to look:
(add-hook 'erlang-new-file-hook
(lambda ()
;; work-around for Distel, erlang-mode calls this hook in
;; attach buffers when it sees that they are empty. remove
;; this after a proper fix in distel or erlang.el
(when buffer-file-name
'tempo-template-erlang-large-header)))
(setq erlang-skel-mail-address "klacke@hyber.org")
;;
;; End erlang configuration
;;
(setq erlang-electric-semicolon-criteria nil)