From 53ab9ae05a579a19c626e8be0c1e2cf9244bf863 Mon Sep 17 00:00:00 2001 From: gramanas Date: Fri, 28 Jan 2022 13:45:30 +0200 Subject: sha1 sum and others --- emacs/recipe-mode.el | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 emacs/recipe-mode.el (limited to 'emacs') diff --git a/emacs/recipe-mode.el b/emacs/recipe-mode.el new file mode 100644 index 0000000..c38008a --- /dev/null +++ b/emacs/recipe-mode.el @@ -0,0 +1,67 @@ +;;; recipe-mode.el --- major mode for foodtool's recipe files -*- lexical-binding: t; -*- + +;; Copyright (C) 2021 + +;; Author: +;; Keywords: files, data + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; + +;;; Code: + +(eval-when-compile + (require 'rx)) + +(setq recipe-highlights + '( + ;; comment + ("^ *#+.*$" . 'font-lock-comment-delimiter-face) + ;; title + ("^ *@\\(.*\\)$" . (1 'font-lock-preprocessor-face)) + ;; duration + ("\\[\\(.+?\\)\\]" . (1 'font-lock-builtin-face)) + ;; quantity measurements + ("= *[[:digit:]/]+\\([ [:graph:]]+?\\)$" . (1 'font-lock-builtin-face)) + ;; variable in assignment + ("^\\(.+?\\)=.+?$" . (1 'font-lock-variable-name-face)) + ;; variable in ${} + ("\\${\\(.+?\\)}" . (1 'font-lock-variable-name-face)) + ;; single word variable + ("\\$\\([^ {\n]+\\)" . (1 'font-lock-variable-name-face)) + ;; step result + ("=>\\(.*\\)" . (1 'font-lock-variable-name-face)) + ;; include + ("^[ [:digit:]]*!" . 'font-lock-constant-face) + ;; symbols + ("@\\|-\\|>\\|+\\|=>" . 'font-lock-constant-face) + )) + +(define-derived-mode recipe-mode prog-mode "rcp" + "Mode for rcp files +\\{recipe-mode-map}" + + ;;(setq-local font-lock-defaults '(conf-font-lock-keywords nil t nil nil)) + (setq-local font-lock-defaults '(recipe-highlights)) + (setq-local comment-use-syntax nil) + (setq-local comment-start "#") + (setq-local parse-sexp-ignore-comments t)) + +(add-to-list 'auto-mode-alist '("\\.rcp\\'" . recipe-mode)) + +(provide 'recipe-mode) +;;; recipe-mode.el ends here -- cgit v1.2.3