sisu-mode.el 7.1.8 as committed to Gnu elpa
authorRalph Amissah <ralph@amissah.com>
Sat, 20 Feb 2016 21:08:19 +0000 (16:08 -0500)
committerRalph Amissah <ralph@amissah.com>
Wed, 24 Feb 2016 02:22:37 +0000 (21:22 -0500)
* submissions with much feedback from Stefan Monnier
* 2016-02-22

data/doc/sisu/CHANGELOG_v7
data/sisu/conf/editor-syntax-etc/emacs/sisu-mode.el

index b8129525da54c49c6c988e8f80a1637bb691fc37..9fe65928cf9a06ec69b594e987b4856c3b9825b9 100644 (file)
@@ -25,6 +25,9 @@ Reverse Chronological:
     * rollover year, 2016
     * hyperlink delimiters changed to square brackets
 
+  * sisu-mode.el as committed to Gnu elpa
+    * re-submitted after feedback (on 7.1.7) from Stefan Monnier
+
 * sisu_7.1.7.orig.tar.xz (Open commit window: 2015-12-29; Pre-Release)
   http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_7.1.7
 
index 998a42313177bb7dc19813b02d6aff6525b7fbf6..6bfbb4baf5f43da9056d1c1ecff376ce17978cb9 100644 (file)
@@ -1,25 +1,17 @@
-;;; sisu-mode.el --- a major-mode for highlighting a hierarchy structured text.
+;;; sisu-mode.el --- Major mode for SiSU markup text
 
-;; 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]
+;; Copyright (C) 2011, 2016  Free Software Foundation, Inc.
 
 ;; Author: Ralph Amissah & Ambrose Kofi Laing
+;; Maintainer: Ralph Amissah <ralph.amissah@gmail.com>
 ;; 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
+;; Version:   7.1.8
+;; URL: http://www.sisudoc.org/
 ;; originally looked at (based on) doc-mode, with kind permission of the author
 ;;   Author: SUN, Tong <suntong001@users.sf.net>, (c)2001-6, all right reserved
 ;;   Version: $Date: 2006/01/19 03:13:41 $ $Revision: 1.14 $
 ;;   Home URL: http://xpt.sourceforge.net/
+;; with contributions from Kevin Ryde and Stefan Monnier
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -32,7 +24,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 [http://www.gnu.org/licenses/].
+;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Viva Software Libre!
 ;; Support the free software movement!
 ;; 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)
 (defvar sisu-title-3 'sisu-title-3-face)
 (defvar sisu-title-4 'sisu-title-4-face)
 
-(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)
       (list
         (concat
-          "\\([*]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[*]\\)"
+          "\\([*]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[*]\\)"
         )
-        '(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 ----------------
       (list
         (concat
-          "\\([!]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[!]\\)"
+          "\\([!]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[!]\\)"
         )
-        '(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
         (concat
-          "\\([/]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[/]\\)"
+          "\\([/]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[/]\\)"
         )
-        '(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 ----------
       (list
         (concat
-          "\\([_]\{\\)"
-          "\\([^\}]+\\)"
+          "\\([_]{\\)"
+          "\\([^}]+\\)"
           "\\(\}[_]\\)"
         )
-        '(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 -----------
       (list
         (concat
-          "\\([#]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[#]\\)"
+          "\\([#]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[#]\\)"
         )
-        '(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 ------------
       (list
         (concat
-          "\\([\"]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[\"]\\)"
+          "\\([\"]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[\"]\\)"
         )
-        '(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 -------
       (list
         (concat
-          "\\([\+]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[\+]\\)"
+          "\\([\+]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[\+]\\)"
         )
-        '(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 ------
       (list
         (concat
-          "\\(\\-\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}\\-\\)"
+          "\\(\\-{\\)"
+          "\\([^}]+\\)"
+          "\\(}\\-\\)"
         )
-        '(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 ---------
       (list
         (concat
-          "\\(\\^\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}\\^\\)"
+          "\\(\\^{\\)"
+          "\\([^}]+\\)"
+          "\\(}\\^\\)"
         )
-        '(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 -----------
       (list
         (concat
-          "\\([,]\{\\)"
-          "\\([^\}]+\\)"
-          "\\(\}[,]\\)"
+          "\\([,]{\\)"
+          "\\([^}]+\\)"
+          "\\(}[,]\\)"
         )
-        '(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]\\)\\~\\)\\(.*\\)"
       ;; hyper-links
       (list
         (concat
-          "\\(\{~^\\|\{\\)"
-          "\\([^\}\{]+\\)"
-          "\\(\}http:[/][/][^ \r\n\t<]+\\)"
+          "\\({~^\\|{\\)"
+          "\\([^}{]+\\)"
+          "\\(}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
       (list
         (concat
-          "^\\(\=\{\\)"
-          "\\([^\}\{]+\\)"
+          "^\\(\={\\)"
+          "\\([^}{]+\\)"
           "\\(}\\)$"
         )
-        '(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
         (concat
-          "\\(\{\\)"
-          "\\([^\}\{]+\\)"
-          "\\(\}image\\)"
+          "\\({\\)"
+          "\\([^}{]+\\)"
+          "\\(}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
-       '(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
-
-;; Sisu & Autoload:
+;; 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)
+
+;;}}}
+
+;;{{{ Sisu & Autoload:
+
+;;;###autoload
 (define-derived-mode sisu-mode text-mode "SiSU"
-  "Major mode for editing SiSU files."
-  (interactive)
+  "Major mode for editing SiSU files.
+SiSU document structuring, publishing in multiple formats and search.
+URL `http://www.sisudoc.org/'"
   (modify-syntax-entry ?\'  ".")
-  ;(flyspell-mode nil)
+  ;;(flyspell-mode nil)
 
   (make-local-variable 'paragraph-start)
   (setq paragraph-start (concat "$\\|>" page-delimiter))
   (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
-    ))
-  (run-hooks 'sisu-mode-hook))
+        '(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))
 
-;; ##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  <cyd@stupidchicken.com>
-;;
-;; Fix version numbers of sisu-mode, register-list, and windresize.
-;;
-;; 2011-07-08  Chong Yidong  <cyd@stupidchicken.com>
-;;
-;; sisu-mode.el: Add .sisu to auto-mode-alist using autoload cookie.
-;; Minor doc fixes.
-;;
-;; 2011-07-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-;;
-;; * sisu-mode.el (sisu-mode): Autoload.
-;;
-;; 2011-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>
-;;
-;; Add sisu-mode.el.  Update all.el licence.
-;;
-
-(provide 'sisu-mode)
+;;; sisu-mode.el ends here