runtime(typst): add folding to typst ftplugin

closes: #15897

Signed-off-by: Gregory Anders <greg@gpanders.com>
Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/ftplugin/typst.vim b/runtime/ftplugin/typst.vim
index 895fc68..3841e42 100644
--- a/runtime/ftplugin/typst.vim
+++ b/runtime/ftplugin/typst.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:    Typst
 " Maintainer:  Gregory Anders
-" Last Change: 2024 Oct 04
+" Last Change: 2024 Oct 21
 " Based on:    https://github.com/kaarmu/typst.vim
 
 if exists('b:did_ftplugin')
@@ -21,6 +21,12 @@
   let b:undo_ftplugin .= ' cole<'
 endif
 
+if has("folding") && get(g:, 'typst_folding', 0)
+    setlocal foldexpr=typst#foldexpr()
+    setlocal foldmethod=expr
+    let b:undo_ftplugin .= "|setl foldexpr< foldmethod<"
+endif
+
 if !exists('current_compiler')
   compiler typst
   let b:undo_ftplugin ..= "| compiler make"