aboutsummaryrefslogtreecommitdiffhomepage
path: root/sundry/editor-syntax-etc/vim
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-05-15 17:25:47 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-05-15 19:40:46 -0400
commitd0cd8444fa69269803d9cda8af6277d2cdbecaee (patch)
tree6e7d34e1e0774dcc684dd93459d1b4df94fe1083 /sundry/editor-syntax-etc/vim
parentssp 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.vim14
-rw-r--r--sundry/editor-syntax-etc/vim/templates/ssi.tpl30
-rw-r--r--sundry/editor-syntax-etc/vim/templates/ssm.tpl30
-rw-r--r--sundry/editor-syntax-etc/vim/templates/sst.tpl30
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~ #___#