diff options
Diffstat (limited to 'sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el')
| -rw-r--r-- | sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el b/sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el index 4cc6332..098a28c 100644 --- a/sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el +++ b/sundry/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el @@ -1,10 +1,28 @@ (add-to-list 'load-path (or (file-name-directory #$) (car load-path))) +;; Regex / font-lock major mode. Fallback for Emacs < 29 and for users +;; who have not installed the tree-sitter-sisu parser. (autoload 'sisu-spine-mode "sisu-spine-mode" "\ Major mode for editing SiSU (spine) markup files. SiSU (https://www.sisudoc.org/) document structuring, publishing and search. \(fn)" t nil) -(add-to-list 'auto-mode-alist '("\\.sst\\'" . sisu-spine-mode)) -(add-to-list 'auto-mode-alist '("\\.ssm\\'" . sisu-spine-mode)) -(add-to-list 'auto-mode-alist '("\\.ssi\\'" . sisu-spine-mode)) + +;; Tree-sitter major mode (Emacs 29+). When the parser is installed it +;; is selected by `auto-mode-alist'; otherwise the regex mode is used. +(autoload 'sisu-spine-ts-mode "sisu-spine-ts-mode" "\ +Tree-sitter major mode for editing SiSU (spine) markup files. + +\(fn)" t nil) +(autoload 'sisu-spine-ts-install-grammar "sisu-spine-ts-mode" "\ +Install the tree-sitter-sisu grammar for `sisu-spine-ts-mode'. +\(fn)" t nil) +(defun sisu-spine-auto-mode () + "Choose `sisu-spine-ts-mode' if the parser is installed, else fall back." + (if (and (fboundp 'treesit-ready-p) (treesit-ready-p 'sisu t)) + (sisu-spine-ts-mode) + (sisu-spine-mode))) + +(add-to-list 'auto-mode-alist '("\\.sst\\'" . sisu-spine-auto-mode)) +(add-to-list 'auto-mode-alist '("\\.ssm\\'" . sisu-spine-auto-mode)) +(add-to-list 'auto-mode-alist '("\\.ssi\\'" . sisu-spine-auto-mode)) |
