27 lines
1,012 B
EmacsLisp
27 lines
1,012 B
EmacsLisp
;;; list-mode.el --- A major mode for highlighting https://lists.sh list files
|
|
;;; list-mode.el -*- lexical-binding: t; -*-
|
|
;;; Commentary:
|
|
|
|
;;; Code:
|
|
|
|
(define-generic-mode list-mode
|
|
'()
|
|
'()
|
|
'(
|
|
("^\s*\\(=:\\)\\(?:\s\\([^\s]+?\\)?\\)?\\(?:\s\\(.+\\)?\\)?$" (1 font-lock-doc-face) (2 font-lock-variable-name-face) (3 font-lock-string-face))
|
|
("^\s*##?\\(?:\s.*\\)?$" . font-lock-type-face)
|
|
("^\s*\\(=>\\)\\(?:\s\\([^\s]+?\\)?\\)?\\(?:\s\\(.+\\)?\\)?$" (1 font-lock-doc-face) (2 font-lock-keyword-face) (3 font-lock-doc-markup-face))
|
|
("^\s*\\(=<\\)\\(?:\s\\([^\s]+?\\)?\\)?\\(?:\s\\(.+\\)?\\)?$" (1 font-lock-doc-face) (2 font-lock-keyword-face) (3 font-lock-comment-face))
|
|
("^\s*\\(>\\).+$" 1 font-lock-doc-face)
|
|
("^```$" . font-lock-doc-face)
|
|
)
|
|
(list "\\.list\\.txt")
|
|
'((lambda ()
|
|
(display-line-numbers-mode)
|
|
(set-syntax-table text-mode-syntax-table)
|
|
))
|
|
"Major mode for editing https://lists.sh lists."
|
|
)
|
|
|
|
(provide 'list-mode)
|
|
;;; list-mode.el ends here
|