diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-15 17:25:47 -0400 |
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2026-05-15 19:40:46 -0400 |
| commit | d0cd8444fa69269803d9cda8af6277d2cdbecaee (patch) | |
| tree | 6e7d34e1e0774dcc684dd93459d1b4df94fe1083 /sundry/editor-syntax-etc/vim | |
| parent | ssp test-abstraction-ssp.sh script minor (diff) | |
editors syntax highlighting ...
- emacs syntax: add tree-sitter major mode for SiSU spine markup
New file sisu-spine-ts-mode.el is a sibling of the existing regex
mode, backed by Emacs 29+'s built-in treesit.el and the
tree-sitter-sisu grammar. It replaces the long font-lock keyword list
with treesit-font-lock-rules grouped into eight features (comment,
header, heading, block, inline, note, link, index, misc) so users
can dial verbosity via treesit-font-lock-level. It also wires up:
- treesit-simple-imenu-settings for a heading outline,
- treesit-thing-settings for sentence / paragraph motions,
- treesit-defun-type-regexp so C-M-a / C-M-e jump heading-to-heading,
- a sisu-spine-ts-install-grammar command that registers
treesit-language-source-alist and runs
treesit-install-language-grammar so users can install the parser
from inside Emacs without leaving the editor.
- the original sisu-spine-mode.el is unchanged and supported for
Emacs < 29 and for users who prefer regex highlighting.
- nvim drop-in: point parser fetch at tools/tree-sitter-sisu
sundry/editor-syntax-etc/nvim/
The nvim-treesitter install_info now fetches the parser from
https://git.sisudoc.org/projects/tree-sitter-sisu which can be cloned
via git://git.sisudoc.org/tools/tree-sitter-sisu The fetched paths:
files = { "src/parser.c", "src/scanner.c" }
submission of the sisu parser to nvim-treesitter's parsers.lua should
be a near-trivial one-liner.
- the original vim regex highlighter remains as before
- sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim
- sundry/editor-syntax-etc/vim/templates/{sst,ssm,ssi}.tpl
new skeleton templates for the three SiSU markup file types
sets up the YAML header (title, creator, date, rights, classify,
identfier)
- .gitignore - whitelist the new files
(assisted by Claude-Code)
Diffstat (limited to 'sundry/editor-syntax-etc/vim')
| -rw-r--r-- | sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim | 14 | ||||
| -rw-r--r-- | sundry/editor-syntax-etc/vim/templates/ssi.tpl | 30 | ||||
| -rw-r--r-- | sundry/editor-syntax-etc/vim/templates/ssm.tpl | 30 | ||||
| -rw-r--r-- | sundry/editor-syntax-etc/vim/templates/sst.tpl | 30 |
4 files changed, 102 insertions, 2 deletions
diff --git a/sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim b/sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim index 2de0095..35a893e 100644 --- a/sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim +++ b/sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim @@ -1,12 +1,22 @@ -" SiSU Vim syntax file (sisu-spine) +" SiSU Vim syntax file (sisu-spine) - Vim 8 fallback (regex) " SiSU Maintainer: Ralph Amissah <ralph.amissah@gmail.com> " SiSU Markup: SiSU (sisu-5.6.7) " sisu-spine Markup: sisu-spine -" Last Change: 2017-06-22, 2025-02-21 +" Last Change: 2017-06-22, 2025-02-21, 2026-05-09 " URL: <https://git.sisudoc.org/projects/sisudoc-spine/tree/sundry/editor-syntax-etc/vim/syntax/sisu-spine.vim> " <https://git.sisudoc.org/projects/sisudoc-spine/tree/sundry/editor-syntax-etc/vim/syntax/sisu.vim> " <https://sisudoc.org/> "(originally looked at Ruby Vim by Mirko Nasato) +" +" Status: This is the regex-based Vim 8 fallback. For Neovim users, the +" tree-sitter-sisu grammar provides structural highlighting, folding and +" textobjects with strictly better behaviour on nested markup, multi-line +" footnotes, block bodies, and segmented headings; see +" sundry/editor-syntax-etc/nvim/README.md +" Emacs 29+ users have an equivalent treesit-based mode at +" sundry/editor-syntax-etc/emacs/sisu-spine-ts-mode.el +" This file remains the supported path for classic Vim, where tree-sitter +" is not available without third-party plugins. if version < 600 syntax clear diff --git a/sundry/editor-syntax-etc/vim/templates/ssi.tpl b/sundry/editor-syntax-etc/vim/templates/ssi.tpl new file mode 100644 index 0000000..28e8101 --- /dev/null +++ b/sundry/editor-syntax-etc/vim/templates/ssi.tpl @@ -0,0 +1,30 @@ +# SiSU 8.0 insert + +title: + main: "#___#" + sub: "#___#" + language: "#___#" + +creator: + author: "#___#" + +date: + :published: "YYYY-MM-DD" + +rights: + copyright: "#___#" + license: "#___#" + +classify: + topic_register: "#___#" + +make: + breaks: "new=:B; break=1" +# home_button_text: "#___#" +# footer: "#___#" + +#% -- body --- + +:A~ @title @author + +1~ #___# diff --git a/sundry/editor-syntax-etc/vim/templates/ssm.tpl b/sundry/editor-syntax-etc/vim/templates/ssm.tpl new file mode 100644 index 0000000..579375f --- /dev/null +++ b/sundry/editor-syntax-etc/vim/templates/ssm.tpl @@ -0,0 +1,30 @@ +# SiSU 8.0 master + +title: + main: "#___#" + sub: "#___#" + language: "#___#" + +creator: + author: "#___#" + +date: + :published: "YYYY-MM-DD" + +rights: + copyright: "#___#" + license: "#___#" + +classify: + topic_register: "#___#" + +make: + breaks: "new=:B; break=1" +# home_button_text: "#___#" +# footer: "#___#" + +#% -- body --- + +:A~ @title @author + +1~ #___# diff --git a/sundry/editor-syntax-etc/vim/templates/sst.tpl b/sundry/editor-syntax-etc/vim/templates/sst.tpl new file mode 100644 index 0000000..069d498 --- /dev/null +++ b/sundry/editor-syntax-etc/vim/templates/sst.tpl @@ -0,0 +1,30 @@ +# SiSU 8.0 + +title: + main: "#___#" + sub: "#___#" + language: "#___#" + +creator: + author: "#___#" + +date: + :published: "YYYY-MM-DD" + +rights: + copyright: "#___#" + license: "#___#" + +classify: + topic_register: "#___#" + +make: + breaks: "new=:B; break=1" +# home_button_text: "#___#" +# footer: "#___#" + +#% -- body --- + +:A~ @title @author + +1~ #___# |
