;; Copyright (C) 2011, 2016 Free Software Foundation, Inc.
;; Author: Ralph Amissah & Ambrose Kofi Laing
-;; Note: The "Maintainer:" field below should hold a valid email address!
;; Maintainer: Ralph Amissah <ralph.amissah@gmail.com>
;; Keywords: text, syntax, processes, tools
;; Version: 7.1.8
(defvar sisu-title-3 'sisu-title-3-face)
(defvar sisu-title-4 'sisu-title-4-face)
-;;; FIXME: These variable should use the "sisu-" prefix.
-(defvar general-font-lock-red1 font-lock-warning-face)
-(defvar general-font-lock-red2 font-lock-comment-face)
-(defvar general-font-lock-red3 font-lock-string-face)
+(defvar sisu-general-font-lock-red1 font-lock-warning-face)
+(defvar sisu-general-font-lock-red2 font-lock-comment-face)
+(defvar sisu-general-font-lock-red3 font-lock-string-face)
-(defvar general-font-lock-green1 font-lock-type-face)
-(defvar general-font-lock-green2 font-lock-constant-face)
+(defvar sisu-general-font-lock-green1 font-lock-type-face)
+(defvar sisu-general-font-lock-green2 font-lock-constant-face)
-(defvar general-font-lock-blue1 font-lock-keyword-face)
-(defvar general-font-lock-blue2 font-lock-function-name-face)
-(defvar general-font-lock-blue3 font-lock-builtin-face)
+(defvar sisu-general-font-lock-blue1 font-lock-keyword-face)
+(defvar sisu-general-font-lock-blue2 font-lock-function-name-face)
+(defvar sisu-general-font-lock-blue3 font-lock-builtin-face)
-(defvar general-font-lock-yellow1 font-lock-variable-name-face)
-(defvar general-font-lock-yellow2 font-lock-comment-face)
+(defvar sisu-general-font-lock-yellow1 font-lock-variable-name-face)
+(defvar sisu-general-font-lock-yellow2 font-lock-comment-face)
;; == sisu-mode settings
(eval-when-compile
(list
;;grouped text ---------
- ;(cons "^```[ ]code\\(.\\|\n\\)+?\n```\n" 'general-font-lock-red2)
- (cons "^```[ ]+code.*?$\\|^```$" 'general-font-lock-red2)
- (cons "^```[ ]+table.*?$\\|^```$" 'general-font-lock-red2)
- (cons "^```[ ]+group$\\|^```$" 'general-font-lock-red2)
- (cons "^```[ ]+block$\\|^```$" 'general-font-lock-red2)
- (cons "^```[ ]+poem$\\|^```$" 'general-font-lock-red2)
- (cons "^```[ ]+alt$\\|^```$" 'general-font-lock-red2)
+ ;(cons "^```[ ]code\\(.\\|\n\\)+?\n```\n" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+code.*?$\\|^```$" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+table.*?$\\|^```$" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+group$\\|^```$" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+block$\\|^```$" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+poem$\\|^```$" 'sisu-general-font-lock-red2)
+ (cons "^```[ ]+alt$\\|^```$" 'sisu-general-font-lock-red2)
;;grouped text ---------
- (cons "^group{\\|^}group" 'general-font-lock-red2)
- (cons "^block{\\|^}block" 'general-font-lock-red2)
- (cons "^code{\\|^}code" 'general-font-lock-red2)
- (cons "^poem{\\|^}poem" 'general-font-lock-red2)
- (cons "^alt{\\|^}alt" 'general-font-lock-red2)
- (cons "^table{.+\\|^}table" 'general-font-lock-red2)
- (cons "^{table[^}]+}" 'general-font-lock-red2)
+ (cons "^group{\\|^}group" 'sisu-general-font-lock-red2)
+ (cons "^block{\\|^}block" 'sisu-general-font-lock-red2)
+ (cons "^code{\\|^}code" 'sisu-general-font-lock-red2)
+ (cons "^poem{\\|^}poem" 'sisu-general-font-lock-red2)
+ (cons "^alt{\\|^}alt" 'sisu-general-font-lock-red2)
+ (cons "^table{.+\\|^}table" 'sisu-general-font-lock-red2)
+ (cons "^{table[^}]+}" 'sisu-general-font-lock-red2)
(list
(concat
"\\(.\\|\n\\)+?"
"\`\\{3\\}$"
)
- '(1 general-font-lock-red2 t)
+ '(1 sisu-general-font-lock-red2 t)
'(2 nil t)
- '(3 general-font-lock-red2 t)
+ '(3 sisu-general-font-lock-red2 t)
)
(list
(concat
"\\(.\\|\n\\)+?"
"\`\\{3\\}$"
)
- '(1 general-font-lock-red2 t)
+ '(1 sisu-general-font-lock-red2 t)
'(2 nil t)
- '(3 general-font-lock-red2 t)
+ '(3 sisu-general-font-lock-red2 t)
)
(list
(concat
"\\(.\\|\n\\)+?"
"^\`\\{3\\}$"
)
- '(1 general-font-lock-red2 t)
+ '(1 sisu-general-font-lock-red2 t)
'(2 nil t)
- '(3 general-font-lock-red2 t)
+ '(3 sisu-general-font-lock-red2 t)
)
;; footnote/endnote ----
- ;(cons "\~{.+?}\~" 'general-font-lock-green1)
- (cons "\~{\\*\\*\\|\~{\\*\\|\~{\\|}\~" 'general-font-lock-red2)
- (cons "\~\\[\\+\\|\~\\[\\*\\|\~\\[\\|\\]\~" 'general-font-lock-red2)
- (cons "\~\\^ \\|^\\^\~ " 'general-font-lock-red2)
+ ;(cons "\~{.+?}\~" 'sisu-general-font-lock-green1)
+ (cons "\~{\\*\\*\\|\~{\\*\\|\~{\\|}\~" 'sisu-general-font-lock-red2)
+ (cons "\~\\[\\+\\|\~\\[\\*\\|\~\\[\\|\\]\~" 'sisu-general-font-lock-red2)
+ (cons "\~\\^ \\|^\\^\~ " 'sisu-general-font-lock-red2)
(list
(concat
"\\(\*\~\\)"
"\\([^ \r\t\n]+\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-blue2 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-blue2 t)
)
;; emphasis (can be program configured to be bold italics or underscore)
"\\([^}]+\\)"
"\\(}[*]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; bold ----------------
"\\([^}]+\\)"
"\\(}[!]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
- (cons "\\*[^ ]+\\*" 'general-font-lock-red1)
- (cons "^!_ .+" 'general-font-lock-red1)
+ (cons "\\*[^ ]+\\*" 'sisu-general-font-lock-red1)
+ (cons "^!_ .+" 'sisu-general-font-lock-red1)
;; italics -------------
(list
"\\([^}]+\\)"
"\\(}[/]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-blue1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-blue1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; underscore ----------
"\\([^}]+\\)"
"\\(\}[_]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; monospace -----------
"\\([^}]+\\)"
"\\(}[#]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; citation ------------
"\\([^}]+\\)"
"\\(}[\"]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; inserted text -------
"\\([^}]+\\)"
"\\(}[\+]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; strike through ------
"\\([^}]+\\)"
"\\(}\\-\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; superscript ---------
"\\([^}]+\\)"
"\\(}\\^\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; subscript -----------
"\\([^}]+\\)"
"\\(}[,]\\)"
)
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t)
+ '(1 sisu-general-font-lock-red1 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-red1 t)
)
;; numbered list
- (cons "^# \\|^_# " 'general-font-lock-red1)
+ (cons "^# \\|^_# " 'sisu-general-font-lock-red1)
;; bullet text
- (cons "^_\\*[1-9] \\|^_\\* " 'general-font-lock-red1)
+ (cons "^_\\*[1-9] \\|^_\\* " 'sisu-general-font-lock-red1)
;; indented text
- (cons "^_[1-9] " 'general-font-lock-red1)
- (cons "^_[1-9]! " 'general-font-lock-red1)
+ (cons "^_[1-9] " 'sisu-general-font-lock-red1)
+ (cons "^_[1-9]! " 'sisu-general-font-lock-red1)
;; hanging indented text [proposed enable when implemented]
- (cons "^__[1-9] " 'general-font-lock-red1)
- (cons "^_[0-9]_[0-9] " 'general-font-lock-red1)
- (cons "^__[1-9]! " 'general-font-lock-red1)
- (cons "^_[0-9]_[0-9]! " 'general-font-lock-red1)
+ (cons "^__[1-9] " 'sisu-general-font-lock-red1)
+ (cons "^_[0-9]_[0-9] " 'sisu-general-font-lock-red1)
+ (cons "^__[1-9]! " 'sisu-general-font-lock-red1)
+ (cons "^_[0-9]_[0-9]! " 'sisu-general-font-lock-red1)
;; url
- (cons "\\(^\\|[ ]\\)http:[/][/][^ \t\n\r<]+" 'general-font-lock-blue2)
+ (cons "\\(^\\|[ ]\\)http:[/][/][^ \t\n\r<]+" 'sisu-general-font-lock-blue2)
;; Comment Lines
- (cons "^% .*" 'general-font-lock-blue1)
+ (cons "^% .*" 'sisu-general-font-lock-blue1)
;; page break
- (cons "^\\(-\\\\\\\\-\\|=\\\\\\\\=\\|-\\.\\.-\\)" 'general-font-lock-red2)
+ (cons "^\\(-\\\\\\\\-\\|=\\\\\\\\=\\|-\\.\\.-\\)" 'sisu-general-font-lock-red2)
;; line break
- (cons " \\\\\\\\ " 'general-font-lock-red1)
+ (cons " \\\\\\\\ " 'sisu-general-font-lock-red1)
;; line break (depreciated)
- (cons "<br>" 'general-font-lock-red1)
+ (cons "<br>" 'sisu-general-font-lock-red1)
;; Section titles
(list "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\)\\(.*\\)"
"\\([^}{]+\\)"
"\\(}http:[/][/][^ \r\n\t<]+\\)"
)
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-blue2 t)
+ '(1 sisu-general-font-lock-blue2 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-blue2 t)
)
;; book index
"\\([^}{]+\\)"
"\\(}\\)$"
)
- '(1 general-font-lock-green1 t)
+ '(1 sisu-general-font-lock-green1 t)
'(2 nil t)
- '(3 general-font-lock-green1 t)
+ '(3 sisu-general-font-lock-green1 t)
)
- ;(cons "^\={.+}" 'general-font-lock-green1)
+ ;(cons "^\={.+}" 'sisu-general-font-lock-green1)
;; numbers
- (cons "\\<[.0-9]+\\>" 'general-font-lock-green2)
+ (cons "\\<[.0-9]+\\>" 'sisu-general-font-lock-green2)
;; bullets sisu_normal (nearly copied regexp)
- (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'general-font-lock-blue2)
+ (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'sisu-general-font-lock-blue2)
;; image links
(list
"\\([^}{]+\\)"
"\\(}image\\)"
)
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-blue2 t)
+ '(1 sisu-general-font-lock-blue2 t)
+ '(2 sisu-general-font-lock-red1 t)
+ '(3 sisu-general-font-lock-blue2 t)
)
;; insert file links
"\\([^ \r\t\n]+\\.ss\\)"
"\\(i\\|t\\)"
)
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-blue2 t)
- '(3 general-font-lock-blue2 t)
+ '(1 sisu-general-font-lock-blue2 t)
+ '(2 sisu-general-font-lock-blue2 t)
+ '(3 sisu-general-font-lock-blue2 t)
)
;; raw keywords
"Default expressions to highlight in AsciiSisu mode."
)
-;; enables outlining for sisu
-(add-hook 'sisu-mode-hook
- 'outline-minor-mode)
-
-;;; outline mode "folding" if available
-;;; TODO make sure linum (line numbering) is off, else performance penalty, sucks bigtime
-;;(define-key evil-normal-state-map (kbd ",0") (lambda() (interactive) (show-all)))
-;;(define-key evil-normal-state-map (kbd ",-") (lambda() (interactive) (hide-body)))
-;;(define-key evil-normal-state-map (kbd ",+") (lambda() (interactive) (show-subtree)))
-;;(define-key evil-normal-state-map (kbd ",=") (lambda() (interactive) (show-subtree)))
-;;
-;;(define-key evil-normal-state-map ",0" 'show-all)
-;;(define-key evil-normal-state-map ",-" 'hide-body)
-;;(define-key evil-normal-state-map ",+" 'show-subtree)
-;;(define-key evil-normal-state-map ",=" 'show-subtree)
-
-;; C-c @ C-a show all
-;; C-c @ C-t show only the headings
-;; C-c @ C-s show subtree at cursor location
-;; C-c @ C-d hide subtree at cursor location
+;; outline mode evil "folding" if available
+;; (define-key evil-normal-state-map ",0" 'show-all)
+;; (define-key evil-normal-state-map ",-" 'hide-body)
+;; (define-key evil-normal-state-map ",+" 'show-subtree)
+;; (define-key evil-normal-state-map ",=" 'show-subtree)
;;}}}
(setq paragraph-ignore-fill-prefix t)
(set (make-local-variable 'outline-regexp)
- "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\|\\@[a-z]+:\\( \\|$\\)\\)")
+ "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\|\\@[a-z]+:\\( \\|$\\)\\)")
(make-local-variable 'require-final-newline)
(setq require-final-newline t)
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults
- '(sisu-font-lock-keywords
- nil ; KEYWORDS-ONLY: no
- nil ; CASE-FOLD: no
- ((?_ . "w")) ; SYNTAX-ALIST
- )))
+ '(sisu-font-lock-keywords
+ nil ; KEYWORDS-ONLY: no
+ nil ; CASE-FOLD: no
+ ((?_ . "w")) ; SYNTAX-ALIST
+ ))
+ ;; Enable outlining.
+ ;; TODO with outlining make sure linum (line numbering) is off,
+ ;; else performance penalty, sucks bigtime
+ (outline-minor-mode 1))
;;;###autoload (add-to-list 'auto-mode-alist '("\\.ss[imt]\\'" . sisu-mode))