Lines Matching +defs:ninja +defs:keywords +defs:re
0 ;;; ninja-mode.el --- Major mode for editing .ninja files -*- lexical-binding: t -*-
21 ;; Simple emacs mode for editing .ninja files.
25 (defcustom ninja-indent-offset 2
29 :group 'ninja)
31 (defconst ninja-keywords-re
35 (defvar ninja-keywords
36 `((,ninja-keywords-re . font-lock-keyword-face)
48 (defvar ninja-mode-syntax-table
52 "Syntax table used in `ninja-mode'.")
54 (defun ninja-syntax-propertize (start end)
65 ;; If we're continuing the previous line, it's not a
78 (defun ninja-compute-indentation ()
82 (if (or (looking-at ninja-keywords-re)
86 (if (looking-at ninja-keywords-re)
87 ninja-indent-offset
90 (defun ninja-indent-line ()
92 available or `ninja-indent-offset'"
94 (indent-line-to (ninja-compute-indentation)))
97 (define-derived-mode ninja-mode prog-mode "ninja"
100 (set (make-local-variable 'syntax-propertize-function) #'ninja-syntax-propertize)
101 (set (make-local-variable 'indent-line-function) 'ninja-indent-line)
102 (setq font-lock-defaults '(ninja-keywords)))
104 ;; Run ninja-mode for files ending in .ninja.
106 (add-to-list 'auto-mode-alist '("\\.ninja$" . ninja-mode))
108 (provide 'ninja-mode)
110 ;;; ninja-mode.el ends here