parent
8771b1f49b
commit
7f9450f55e
1 changed files with 43 additions and 0 deletions
@ -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…
Reference in new issue