aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-05-01 22:59:31 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-05-01 22:59:31 +0300
commitd734f9904bbe0ba33dd86083e44d89cf2da3cbb2 (patch)
treefb5f38eab7b676520995c20b43ed1c9b4f7ef682 /lib
parentc0cede661eb9362cce1b50642c4bae5faa7bd220 (diff)
downloadsciteco-d734f9904bbe0ba33dd86083e44d89cf2da3cbb2.tar.gz
implemented email and git lexer folding
Diffstat (limited to 'lib')
-rw-r--r--lib/lexers/email.tes19
-rw-r--r--lib/lexers/git.tes9
2 files changed, 23 insertions, 5 deletions
diff --git a/lib/lexers/email.tes b/lib/lexers/email.tes
index 895aeea..11dbcf7 100644
--- a/lib/lexers/email.tes
+++ b/lib/lexers/email.tes
@@ -21,14 +21,25 @@
ZJ [_-:S^J-- ^J]_"S !* signatures *!
4R .U.z
ESSTARTSTYLING 1,(:-)ESSETSTYLING
+
+ !* the signature is foldable *!
+ ESLINEFROMPOSITIONU.l
+ 1024#(2^*13),Q.lESSETFOLDLEVEL
+ <:L; 1025,%.lESSETFOLDLEVEL>
'
+ 0U.l
J< .-Q.z"= 1; '
- 0A->"= !* quotes *!
- U.s
- <:C; 0A- "N 1; '> .-Q.z"= 1; '
+ U.s
+ 0U.q <0A->"N1;' %.q <:C; 0A- "N 1; '>>
+
+ Q.q"> !* quotes *!
Q.sESSTARTSTYLING
- (0A->"=3|2'),(Q.lESLINELENGTH)ESSETSTYLING
+ (Q.q-1">3|2'),(Q.lESLINELENGTH)ESSETSTYLING
+
+ !* first line with higher quote level: will be the header *!
+ (Q.l-1ESGETLINESTATE)-Q.q"< (1024+Q.q-1)#(2^*13) | (1024+Q.q) ',Q.lESSETFOLDLEVEL
+ Q.q,Q.lESSETLINESTATE
'
:L; %.l>
]:}
diff --git a/lib/lexers/git.tes b/lib/lexers/git.tes
index 8495f12..491ec1e 100644
--- a/lib/lexers/git.tes
+++ b/lib/lexers/git.tes
@@ -18,6 +18,13 @@
:M[color.comment],1M[color.set]
J< .-Z"= 1; '
- 0A-#"= ESSTARTSTYLING 1,(Q.lESLINELENGTH)ESSETSTYLING '
+ 0A-#"=
+ ESSTARTSTYLING 1,(Q.lESLINELENGTH)ESSETSTYLING
+
+ !* only the first line gets the fold level header *!
+ -2ESGETSTYLEINDEXAT-1"N 1024#(2^*13) | 1025 ',Q.lESSETFOLDLEVEL
+ '
+ !* empty line *!
+ 0A-10"= 1024#(2^*12),Q.lESSETFOLDLEVEL '
:L; %.l>
]:}