branch: scratch/editorconfig-cc commit 044453e7ac857b08001b86df0be9773b690c1ffc Author: 10sr <8slashes+...@gmail.com> Commit: Stefan Monnier <monn...@iro.umontreal.ca>
Add editorconfig-conf-mode A major-mode for editing .editorconfig file. --- editorconfig.el | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/editorconfig.el b/editorconfig.el index 3972539ee1..7d9ea968cd 100644 --- a/editorconfig.el +++ b/editorconfig.el @@ -39,6 +39,8 @@ ;;; Code: +(require 'conf-mode) + (declare-function editorconfig-core-get-properties-hash "editorconfig-core" nil) @@ -278,7 +280,40 @@ It calls `editorconfig-get-properties-from-exec' if (add-hook hook 'editorconfig-apply) (remove-hook hook 'editorconfig-apply)))) + + +;;;###autoload +(define-derived-mode editorconfig-conf-mode conf-mode "EditorConfig" + "Major mode for editing .editorconfig files." + (set-variable 'indent-line-function 'indent-relative) + (conf-mode-initialize + "#" + `( + ("^#.*\\|^;.*\\| #.*\\| ;.*" 0 font-lock-comment-face) + ("^[ \t]*\\(root\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(indent_style\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(indent_size\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(tab_width\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(end_of_line\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(charset\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(trim_trailing_whitespace\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(insert_final_newline\\)[ \t]*[=:]" 1 font-lock-builtin-face) + ("^[ \t]*\\(max_line_length\\)[ \t]*[=:]" 1 font-lock-builtin-face) + + ("[=:][ \t]*\\(true\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(false\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(lf\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(cr\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(crlf\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(space\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + ("[=:][ \t]*\\(tab\\)\\([ \t]\\|$\\)" 1 font-lock-constant-face) + + ("^[ \t]*\\[\\(.+?\\)\\]" 1 'font-lock-type-face) + ("^[ \t]*\\(.+?\\)[ \t]*[=:]" 1 'font-lock-variable-name-face) + ))) + ;;;###autoload -(add-to-list 'auto-mode-alist '("/\\.editorconfig\\'" . conf-unix-mode)) +(add-to-list 'auto-mode-alist + '("/\\.editorconfig\\'" . editorconfig-conf-mode)) (provide 'editorconfig)