From 305d9c786504d73faaa0e41c9369b6c076950147 Mon Sep 17 00:00:00 2001 From: Kenny Ballou Date: Wed, 19 Feb 2020 17:13:20 -0700 Subject: mop-mode.el -- initial commit Signed-off-by: Kenny Ballou --- mop-mode.el | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mop-mode.el (limited to 'mop-mode.el') diff --git a/mop-mode.el b/mop-mode.el new file mode 100644 index 0000000..feb1c3e --- /dev/null +++ b/mop-mode.el @@ -0,0 +1,46 @@ +;;; mop-mode.el --- Major Mode for Editing JavaMOP files. -*- coding: utf-8; lexical-binding: t; -*- +;; Copyright © 2017, by you + +;; Author: Kenny Ballou +;; Version: 1.0.0 +;; Created: 29 Feb 2020 +;; Keywords: languages +;; Homepage: +;; http://ergoemacs.org/emacs/elisp_syntax_coloring.html + +;; This file is not part of GNU Emacs. + +;;; License: + +;; You can redistribute this program and/or modify it under the terms of the +;; GNU General Public License version 3. + +;;; Commentary: +;;; Code: + +;; create list for font-lock. +(defvar mop-font-lock-keywords + (let* ( + ;; define syntactic categories + (x-keywords (list "package" "event" "ere" "after" "before")) + ;;(x-symbols (list "*" "+" "~" "|" "&" "(" ")" "@")) + (x-constants (list "empty" "epsilon" "__RESET" "__LOC" "__SKIP" "STATICSIG")) + (x-functions (list "call" "target" "args" "match" "fail")) + ;; generate regex string for each cateogry + (x-keywords-regexp (regexp-opt x-keywords 'words)) + (x-constants-regexp (regexp-opt x-constants 'words)) + (x-functions-regexp (regexp-opt x-functions 'words))) + + `( + (,x-constants-regexp . font-lock-constant-face) + (,x-functions-regexp . font-lock-function-name-face) + (,x-keywords-regexp . font-lock-keyword-face) + ))) + +(define-derived-mode javamop-mode java-mode "JavaMOP Mode" + "Major mode for editing MOP files." + + (setq font-lock-defaults '((mop-font-lock-keywords)))) + +(provide 'mop-mode) +;;; mop-mode.el ends here -- cgit v1.2.1