From 4ed7c404f582a4dce15607be0030260efdabb199 Mon Sep 17 00:00:00 2001 From: Infinidoge Date: Wed, 13 Sep 2023 08:38:48 -0400 Subject: [PATCH] config/doom: add list-mode --- users/infinidoge/config/doom/config.el | 1 + .../infinidoge/config/doom/misc/list-mode.el | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 users/infinidoge/config/doom/misc/list-mode.el diff --git a/users/infinidoge/config/doom/config.el b/users/infinidoge/config/doom/config.el index 55eb88e..826138a 100644 --- a/users/infinidoge/config/doom/config.el +++ b/users/infinidoge/config/doom/config.el @@ -156,3 +156,4 @@ ;; Other configuration files (load! "config/org") (load! "config/keybindings") +(load! "misc/list-mode") diff --git a/users/infinidoge/config/doom/misc/list-mode.el b/users/infinidoge/config/doom/misc/list-mode.el new file mode 100644 index 0000000..a9d513d --- /dev/null +++ b/users/infinidoge/config/doom/misc/list-mode.el @@ -0,0 +1,27 @@ +;;; 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