Create simple Emacs major mode.

pull/34/head
Jussi Pakkanen 10 years ago
parent 8771b1f49b
commit 7f9450f55e
  1. 43
      data/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)
)
Loading…
Cancel
Save