Elisp: html6-mode
This page shows a very simple example of writing a major mode for emacs.
Suppose you are designing HTML6, and it looks like this:
〔?xml 「version “1.0” encoding “utf-8”」〕 〔feed 「xmlns “http://www.w3.org/2005/Atom” xml:base “http://xahlee.info/emacs/emacs/”」 〔title Xah Emacs Blog〕 〔subtitle Emacs, Emacs, Emacs〕 〔link 「rel “self” href “http://xahlee.info/emacs/emacs/blog.xml”」〕 〔link 「rel “alternate” href “http://xahlee.info/emacs/emacs/blog.html”」〕 〔updated 2017-12-21T11:14:52-08:00〕 〔author 〔name Xah Lee〕 〔uri http://xahlee.info/〕 〕 〔id http://xahlee.info/emacs/emacs/blog.html〕 〔icon http://xahlee.info/favicon.svg〕 〔rights © 2009 to 2017, Xah Lee〕 〔entry 〔title Emacs: Abbrev Mode Tutorial〕 〔id tag:xahlee.org,2010-09-19:215308〕 〔updated 2010-09-19T14:53:08-07:00〕 〔summary tutorial〕 〔link 「rel “alternate” href “http://xahlee.info/emacs/emacs/emacs_abbrev_mode.html”」〕 〕 〕
You want to write a emacs major mode to syntax color it.
Here's the code.
;;; xah-html6-mode.el --- Major mode for editing html6. -*- coding: utf-8 -*- ;; http://xahlee.info/comp/html6.html ;;; HISTORY ;; version 0.3, 2016-09-08 ;; version 0.1, 2010-12-17 (defvar xah-html6-font-lock-defaults nil "Value for font-lock-defaults.") (setq xah-html6-font-lock-defaults '(("〔\\([^ ]+?\\) " . (1 font-lock-function-name-face)) ("“\\([^ ]+?\\)”" . (1 font-lock-string-face)) ("「\\([^」]+\\)」" . (1 font-lock-variable-name-face)) ) ) (define-derived-mode xah-html6-mode fundamental-mode "HTML6" "sample simple mode for html6" (setq font-lock-defaults '(xah-html6-font-lock-defaults))) (provide 'xah-html6)
For a detailed tutorial, see: Elisp: Write a Major Mode for Syntax Coloring.
〔see Elisp: Regex Tutorial〕