--- sisu-mode.el 2016-02-19 00:37:21.798481323 -0500
+++ sisu-mode-7.1.7.el 2016-02-19 00:41:27.824326557 -0500
@@ -1,10 +1,19 @@
-;;; sisu-mode.el --- Major mode for SiSU markup text
+;;; sisu-mode.el --- a major-mode for highlighting a hierarchy structured text.
-;; Copyright (C) 2011 Free Software Foundation, Inc.
+;; Copyright (C): Free Software Foundation, Inc. (FSF) (GNU EMACS)
+;; Assigned to FSF 2011-04-08
+;;
+;; [this file has been edited and updated by Ralph Amissah]
-;; Author: Ambrose Kofi Laing (& Ralph Amissah)
-;; Keywords: text, processes, tools
-;; Version: 3.0.3
+;; Author: Ralph Amissah & Ambrose Kofi Laing
+;; Keywords: text, syntax, processes, tools
+;; Version: 7.1.7 2015-12-26 Ralph Amissah,
+;; including patch from Kevin Ryde;
+;; 5.7.2 2014-10-28 Ralph Amissah;
+;; 4.0.8 2013-02-17 Ralph Amissah;
+;; 3.0.7 2011-04-20 Ambrose Kofi Laing & Ralph Amissah;
+;; 2008-12-14
+;; URL: [http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=data/sisu/conf/editor-syntax-etc/emacs/sisu-mode.el;hb=HEAD]
;; License: GPLv3
;; Home URL: SiSU: http://www.jus.uio.no/sisu
;; originally looked at (based on) doc-mode, with kind permission of the author
@@ -23,7 +32,7 @@
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see .
+;; along with this program. If not, see [http://www.gnu.org/licenses/].
;; Viva Software Libre!
;; Support the free software movement!
@@ -43,10 +52,6 @@
;; The documentation for the "Structure Of The Hierarchy Text" can be
;; found in the sisustring for the sisu-mode function.
-;;; Code:
-
-;;{{{ Variables:
-
(defgroup sisu-faces nil
"AsciiSisu highlighting"
:group 'sisus)
@@ -136,210 +141,334 @@
(defconst sisu-font-lock-keywords
(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)
+ ;;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)
+
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+code.*?$"
+ "\\(.\\|\n\\)+?"
+ "\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 general-font-lock-red2 t)
+ )
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+table.*?$"
+ "\\(.\\|\n\\)+?"
+ "\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 general-font-lock-red2 t)
+ )
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+\\(group\\|block\\|alt\\|poem\\)$"
+ "\\(.\\|\n\\)+?"
+ "^\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 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)
+ (list
+ (concat
+ "\\(\*\~\\)"
+ "\\([^ \r\t\n]+\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-blue2 t)
+ )
+
+ ;; emphasis (can be program configured to be bold italics or underscore)
+ (list
+ (concat
+ "\\([*]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[*]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; bold ----------------
+ (list
+ (concat
+ "\\([!]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[!]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+ (cons "\\*[^ ]+\\*" 'general-font-lock-red1)
+ (cons "^!_ .+" 'general-font-lock-red1)
+
+ ;; italics -------------
+ (list
+ (concat
+ "\\([/]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[/]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-blue1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; underscore ----------
+ (list
+ (concat
+ "\\([_]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[_]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; monospace -----------
+ (list
+ (concat
+ "\\([#]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[#]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; citation ------------
+ (list
+ (concat
+ "\\([\"]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[\"]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; inserted text -------
+ (list
+ (concat
+ "\\([\+]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[\+]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; strike through ------
+ (list
+ (concat
+ "\\(\\-\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}\\-\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; superscript ---------
+ (list
+ (concat
+ "\\(\\^\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}\\^\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; subscript -----------
+ (list
+ (concat
+ "\\([,]\{\\)"
+ "\\([^\}]+\\)"
+ "\\(\}[,]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; numbered list
+ (cons "^# \\|^_# " 'general-font-lock-red1)
+
+ ;; bullet text
+ (cons "^_\\*[1-9] \\|^_\\* " 'general-font-lock-red1)
+
+ ;; indented text
+ (cons "^_[1-9] " 'general-font-lock-red1)
+ (cons "^_[1-9]! " '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)
+
+ ;; url
+ (cons "\\(^\\|[ ]\\)http:[/][/][^ \t\n\r<]+" 'general-font-lock-blue2)
+
+ ;; Comment Lines
+ (cons "^% .*" 'general-font-lock-blue1)
+
+ ;; page break
+ (cons "^\\(-\\\\\\\\-\\|=\\\\\\\\=\\|-\\.\\.-\\)" 'general-font-lock-red2)
+
+ ;; line break
+ (cons " \\\\\\\\ " 'general-font-lock-red1)
+
+ ;; line break (depreciated)
+ (cons "
" 'general-font-lock-red1)
+
+ ;; Section titles
+ (list "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\)\\(.*\\)"
+ '(1 sisu-title-1 t)
+ '(3 sisu-title-2 t)
+ )
+
+ ;; hyper-links
+ (list
+ (concat
+ "\\(\{~^\\|\{\\)"
+ "\\([^\}\{]+\\)"
+ "\\(\}http:[/][/][^ \r\n\t<]+\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-blue2 t)
+ )
+
+ ;; book index
+ (list
+ (concat
+ "^\\(\=\{\\)"
+ "\\([^\}\{]+\\)"
+ "\\(}\\)$"
+ )
+ '(1 general-font-lock-green1 t)
+ '(2 nil t)
+ '(3 general-font-lock-green1 t)
+ )
+
+ ;(cons "^\=\{.+\}" 'general-font-lock-green1)
+
+ ;; numbers
+ (cons "\\<[.0-9]+\\>" 'general-font-lock-green2)
+
+ ;; bullets sisu_normal (nearly copied regexp)
+ (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'general-font-lock-blue2)
+
+ ;; image links
+ (list
+ (concat
+ "\\(\{\\)"
+ "\\([^\}\{]+\\)"
+ "\\(\}image\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-blue2 t)
+ )
+
+ ;; insert file links
+ (list
+ (concat
+ "\\(<< \\)"
+ "\\([^ \r\t\n]+\\.ss\\)"
+ "\\(i\\|t\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-blue2 t)
+ '(3 general-font-lock-blue2 t)
+ )
+
+ ;; raw keywords
+ (list
+ (concat
+ "^\\(\\@\\("
+ "creator\\|"
+ "title\\|"
+ "date\\|"
+ "rights\\|"
+ "publisher\\|"
+ "classify\\|"
+ "identifier\\|"
+ "original\\|"
+ "notes\\|"
+ "links\\|"
+ "make\\|"
+ "\\):\\)\\(.*\\)"
+ )
+ '(1 sisu-title-2 keep)
+ '(3 sisu-title-3 keep)
+ )
+ )
+ )
+ "Default expressions to highlight in AsciiSisu mode."
+)
+
+;; enables outlining for sisu
+(add-hook 'sisu-mode-hook
+ '(lambda ()
+ (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
- ;;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)
-
- ;; footnote/endnote
- ;(cons "\~\{.+?\}\~" 'general-font-lock-green1)
- (cons "\~\{\\*\\*\\|\~\{\\*\\|\~\{\\|\}\~" 'general-font-lock-red2)
- (cons "\~\\[\\+\\|\~\\[\\*\\|\~\\[\\|\\]\~" 'general-font-lock-red2)
-
- (cons "\~\\^ \\|^\\^\~ " 'general-font-lock-red2)
-
- (list (concat
- "\\(\*\~\\)"
- "\\([^ \r\t\n]+\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-blue2 t))
-
- ;; emphasis (can be program configured to be bold italics or underscore)
- (list (concat
- "\\([*]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[*]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; bold
- (list (concat
- "\\([!]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[!]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
- (cons "\\*[^ ]+\\*" 'general-font-lock-red1)
- (cons "^!_ .+" 'general-font-lock-red1)
-
- ;;; italics
- (list (concat
- "\\([/]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[/]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-blue1 t)
- '(3 general-font-lock-red1 t))
-
- ;; underscore
- (list (concat
- "\\([_]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[_]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; monospace
- (list (concat
- "\\([#]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[#]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; citation
- (list (concat
- "\\([\"]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[\"]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; inserted text
- (list (concat
- "\\([\+]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[\+]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; strike through
- (list (concat
- "\\(\\-\{\\)"
- "\\([^\}]+\\)"
- "\\(\}\\-\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; superscript
- (list (concat
- "\\(\\^\{\\)"
- "\\([^\}]+\\)"
- "\\(\}\\^\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;; subscript
- (list (concat
- "\\([,]\{\\)"
- "\\([^\}]+\\)"
- "\\(\}[,]\\)")
- '(1 general-font-lock-red1 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-red1 t))
-
- ;;numbered list
- (cons "^# \\|^_# " 'general-font-lock-red1)
-
- ;;bullet text
- (cons "^_\\*[1-9] \\|^_\\* " 'general-font-lock-red1)
-
- ;;indented text
- (cons "^_[1-9] " 'general-font-lock-red1)
-
- ;;url
- (cons "\\(^\\|[ ]\\)http:[/][/][^ \t\n\r<]+" 'general-font-lock-blue2)
-
-;; \\|\$
-
- ;; Comment Lines
- (cons "^% .*" 'general-font-lock-blue1)
- ;; line break
- (cons "
" 'general-font-lock-red1)
-
- ;; Section titles
- (list "^\\(\\([1-8]\\|:?[A-C]\\)\\~\\)\\(.*\\)"
- '(1 sisu-title-1 t)
- '(3 sisu-title-2 t))
-
- ;; hyper-links
- (list (concat
- "\\(\{~^\\|\{\\)"
- "\\([^\}\{]+\\)"
- "\\(\}http:[/][/][^ \r\n\t<]+\\)")
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-blue2 t))
-
- ;; book index
- (cons "^\=\{.+\}" 'general-font-lock-green1)
-
- ;; numbers
- (cons "\\<[.0-9]+\\>" 'general-font-lock-green2)
-
- ;; bullets sisu_normal (nearly copied regexp)
- (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'general-font-lock-blue2)
-
- ;; image links
- (list (concat
- "\\(\{\\)"
- "\\([^\}\{]+\\)"
- "\\(\}image\\)")
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-red1 t)
- '(3 general-font-lock-blue2 t))
-
- ;; insert file links
- (list (concat
- "\\(<< \\)"
- "\\([^ \r\t\n]+\\.ss\\)"
- "\\(i\\|t\\)")
- '(1 general-font-lock-blue2 t)
- '(2 general-font-lock-blue2 t)
- '(3 general-font-lock-blue2 t))
-
- ;; raw keywords
- (list (concat
- "^\\(\\@\\("
- "title\\|"
- "creator\\|"
- "date\\|"
- "publisher\\|"
- "rights\\|"
- "classify\\|"
- "original\\|"
- "notes\\|"
- "links\\|"
- "make\\|"
- "\\):\\)\\(.*\\)")
- '(1 sisu-title-2 keep)
- '(3 sisu-title-3 keep))
-
- ))
- "Default expressions to highlight in AsciiSisu mode.")
-
-;;}}}
-
-;;{{{ Sisu & Autoload:
-
-;;;###autoload
+;; Sisu & Autoload:
(define-derived-mode sisu-mode text-mode "SiSU"
- "Major mode for editing SiSU files.
-SiSU (http://www.sisudoc.org/) is a document structuring and
-publishing framework. This major mode handles SiSU markup."
+ "Major mode for editing SiSU files."
+ (interactive)
(modify-syntax-entry ?\' ".")
;(flyspell-mode nil)
@@ -350,6 +479,9 @@
(make-local-variable 'paragraph-ignore-fill-prefix)
(setq paragraph-ignore-fill-prefix t)
+ (set (make-local-variable 'outline-regexp)
+ "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\|\\@[a-z]+:\\( \\|$\\)\\)")
+
(make-local-variable 'require-final-newline)
(setq require-final-newline t)
@@ -362,10 +494,29 @@
))
(run-hooks 'sisu-mode-hook))
-;;;###autoload (add-to-list 'auto-mode-alist '("\\.sisu\\'" . sisu-mode))
+;; ##autoload
+(add-to-list 'auto-mode-alist '("\\.sst\\'" . sisu-mode))
+(add-to-list 'auto-mode-alist '("\\.ssm\\'" . sisu-mode))
+(add-to-list 'auto-mode-alist '("\\.ssi\\'" . sisu-mode))
-(provide 'sisu-mode)
+;;;; ChangeLog:
-;;}}}
+;; 2011-07-12 Chong Yidong
+;;
+;; Fix version numbers of sisu-mode, register-list, and windresize.
+;;
+;; 2011-07-08 Chong Yidong
+;;
+;; sisu-mode.el: Add .sisu to auto-mode-alist using autoload cookie.
+;; Minor doc fixes.
+;;
+;; 2011-07-06 Stefan Monnier
+;;
+;; * sisu-mode.el (sisu-mode): Autoload.
+;;
+;; 2011-07-04 Stefan Monnier
+;;
+;; Add sisu-mode.el. Update all.el licence.
+;;
-;;; sisu-mode.el ends here
+(provide 'sisu-mode)