[interchange] Add emacs major mode for ITL
Jon Jensen
interchange-cvs at icdevgroup.org
Mon Jul 15 06:24:10 UTC 2013
commit 349a71055d7ec54193d161d997f0db83c0423811
Author: Jon Jensen <jon at endpoint.com>
Date: Mon Jul 15 07:23:00 2013 +0100
Add emacs major mode for ITL
eg/emacs/itl.el | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
---
diff --git a/eg/emacs/itl.el b/eg/emacs/itl.el
new file mode 100644
index 0000000..5d84d8c
--- /dev/null
+++ b/eg/emacs/itl.el
@@ -0,0 +1,49 @@
+;;; itl.el -- Major mode for editing Interchange Tag Language files
+
+;; Author: Steve Shoopak <steve at endpoint.com>
+;; Created: October 20th, 2005
+;; Keywords: ITL major-mode
+
+;;; Description:
+;;
+;; This mode allows syntax highlighting of files with
+;; embedded Interchange Tag Language.
+
+;;; Code:
+(defvar itl-mode-hook nil)
+(defvar itl-mode-map nil)
+
+(add-to-list 'auto-mode-alist '("\\.itl\\'" . itl-mode))
+
+(defconst itl-font-lock-keywords-1
+ (list
+ '("\\[\\\/?\\w+" . font-lock-keyword-face)
+ '("\\(\\[\\|\\]\\)" . font-lock-keyword-face)
+ '("\\(\\(__\\|\\@_\\|\\@\\@\\)\\w*\\(__\\|_\\@\\|\\@\\@\\)\\)" .
+font-lock-variable-name-face))
+ "Basic stuff to highlight in ITL mode")
+
+(defvar itl-font-lock-keywords itl-font-lock-keywords-1
+ "ITL mode keywords. You might append more to extend the basic list.")
+
+(defvar itl-mode-syntax-table
+ (let ((itl-mode-syntax-table (make-syntax-table)))
+ (modify-syntax-entry ?_ "w" itl-mode-syntax-table)
+ (modify-syntax-entry ?/ ". 124b" itl-mode-syntax-table)
+ (modify-syntax-entry ?* ". 23" itl-mode-syntax-table)
+ (modify-syntax-entry ?\n "> b" itl-mode-syntax-table)
+ itl-mode-syntax-table)
+ "Syntax table for itl-mode")
+
+(defun itl-mode ()
+ "Major mode for editing Interchange Tag Language files"
+ (interactive)
+ (kill-all-local-variables)
+ (set-syntax-table itl-mode-syntax-table)
+ (use-local-map itl-mode-map)
+ (set (make-local-variable 'font-lock-defaults) '(itl-font-lock-keywords))
+ (setq major-mode 'itl-mode)
+ (setq mode-name "ITL")
+ (run-hooks 'itl-mode-hook))
+
+(provide 'itl-mode)
More information about the interchange-cvs
mailing list