diff options
author | Arseny Maslennikov <ar@cs.msu.ru> | 2017-07-20 15:55:22 +0300 |
---|---|---|
committer | Arseny Maslennikov <ar@cs.msu.ru> | 2017-11-11 19:03:22 +0300 |
commit | abbf2f4fabd4fbb1d31aeafa18334bb1a4dceab7 (patch) | |
tree | 20d6ab1e524bfe7546ed81b29e6571992f8d7d40 /data/syntax-highlighting/emacs | |
parent | 604f2b9a68a69fafacbb59a69df2b3a5719a4505 (diff) | |
download | meson-abbf2f4fabd4fbb1d31aeafa18334bb1a4dceab7.zip meson-abbf2f4fabd4fbb1d31aeafa18334bb1a4dceab7.tar.gz meson-abbf2f4fabd4fbb1d31aeafa18334bb1a4dceab7.tar.bz2 |
Move shell completions and text editor helpers to data/
Diffstat (limited to 'data/syntax-highlighting/emacs')
-rw-r--r-- | data/syntax-highlighting/emacs/meson.el | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/data/syntax-highlighting/emacs/meson.el b/data/syntax-highlighting/emacs/meson.el new file mode 100644 index 0000000..36f7eb9 --- /dev/null +++ b/data/syntax-highlighting/emacs/meson.el @@ -0,0 +1,43 @@ +;; command to comment/uncomment text +(defun meson-comment-dwim (arg) + "Comment or uncomment current line or region in a smart way. +For detail, see `comment-dwim'." + (interactive "*P") + (require 'newcomment) + (let ( + (comment-start "#") (comment-end "") + ) + (comment-dwim arg))) + +;;(setq mymeson-keywords-regex (regex-opt '("if", "endif", "foreach", "endforeach"))) + +;; keywords for syntax coloring +(setq meson-keywords + `( + ( ,(regexp-opt '("if" "endif" "for" "foreach") 'word) . font-lock-keyword-face) + ) + ) + +;; syntax table +(defvar meson-syntax-table nil "Syntax table for `meson-mode'.") +(setq meson-syntax-table + (let ((synTable (make-syntax-table))) + + ;; bash style comment: “# …” + (modify-syntax-entry ?# "< b" synTable) + (modify-syntax-entry ?\n "> b" synTable) + + synTable)) + +;; define the major mode. +(define-derived-mode meson-mode fundamental-mode + "meson-mode is a major mode for editing Meson build definition files." + :syntax-table meson-syntax-table + + (setq font-lock-defaults '(meson-keywords)) + (setq mode-name "meson") + + ;; modify the keymap + (define-key meson-mode-map [remap comment-dwim] 'meson-comment-dwim) +) + |