diff options
author | gramanas <anastasis.gramm2@gmail.com> | 2022-01-28 13:45:30 +0200 |
---|---|---|
committer | gramanas <anastasis.gramm2@gmail.com> | 2022-01-28 13:45:30 +0200 |
commit | 53ab9ae05a579a19c626e8be0c1e2cf9244bf863 (patch) | |
tree | e6ec5ce8920124e8f4dd59d2ca20f45f30b4640e /emacs/recipe-mode.el | |
parent | 98849f6afb8e216000f6c642d9c9ffa26a58bd4c (diff) | |
download | foodtools-53ab9ae05a579a19c626e8be0c1e2cf9244bf863.tar.gz foodtools-53ab9ae05a579a19c626e8be0c1e2cf9244bf863.tar.bz2 foodtools-53ab9ae05a579a19c626e8be0c1e2cf9244bf863.zip |
sha1 sum and others
Diffstat (limited to 'emacs/recipe-mode.el')
-rw-r--r-- | emacs/recipe-mode.el | 67 |
1 files changed, 67 insertions, 0 deletions
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: <gramanas@EYE> +;; 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 <https://www.gnu.org/licenses/>. + +;;; 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 |