Initial commit
[scdoc-mode.git] / scdoc-mode.el
1 ;;; scdoc-mode.el --- Major mode for scdoc files -*- lexical-binding: t; -*-
2 ;; Copyright 2021 Armaan Bhojwani ISC license.
3
4 ;; Author: Armaan Bhojwani <me@armaanb.net>
5 ;; Maintainer: Armaan Bhojwani <me@armaanb.net>
6 ;; Created: May 30, 2021
7 ;; Version: 0.0.0
8 ;; URL: https://git.armaanb.net/scdoc-mode
9
10 ;;; Commentary:
11 ;; Inherits mostly from org-mode.  auto-fill-mode is reccomended.
12 ;; Make sure to add the following to your init file:
13 ;;
14 ;; (autoload 'scdoc-mode "scdoc-mode" "Major mode for editing scdoc files" t)
15 ;; (add-to-list 'auto-mode-alist '("\\.scd\\'" . scdoc-mode))
16
17 ;;; Code:
18
19 (defvar scdoc-level-1 'org-level-1)
20 (defvar scdoc-level-2 'org-level-2)
21 (defvar scdoc-level-3 'org-level-3)
22
23 (defvar scdoc-underline-face 'underline)
24
25 (defface scdoc-bold-face
26   '((t :weight bold))
27         "Plain bold face."
28         :group 'scdoc-faces)
29 (defvar scdoc-bold-face 'scdoc-bold-face)
30
31 (defvar scdoc-faces
32         '(("^# .*" . scdoc-level-1) ; Heading 1
33                 ("^## .*" . scdoc-level-2) ; Heading 2
34                 ("^### .*" . scdoc-level-3) ; Heading 3
35                 ("++$" . font-lock-warning-face) ; Line break
36                 ("^```$" . font-lock-comment-delimiter-face) ; Literal text
37                 ("^; .*" . font-lock-comment-face) ; Comments
38                 ("_.*_" . scdoc-underline-face) ; Undsky blerlines
39                 ("\*.*\*" . scdoc-bold-face) ; Bold
40                 ))
41
42 (define-derived-mode scdoc-mode text-mode "scdoc"
43         "Major mode for editing scdoc files."
44         (setq font-lock-defaults '(scdoc-faces)
45                                 fill-column 80))
46
47 (provide 'scdoc-mode)
48 ;;; scdoc-mode.el ends here