Hi,
Another small hack I did this weekend was adding regexp support to
folding.sl.
as you may remember, mark info is something like
"<start>\r<end_of_start>\r<end>\r<end_of_end>"
After patching it, regular expression based markers can be defined using
an empty <start> and <end> (a condition not allowed for string based
markers).
In <end_of_start> and <end_of_end> must be a string with a context flag
(first character) followed by the regular expression.
The first character is used to test the context (using parse_to_point()),
and must be one of:
- '%': This is a valid marker if context is on a comment.
- '"': as above for string
- '#': as above normal code.
- ' ': Don't test.
For example, you can try this for SLang mode (and almost the same for C).
mode_set_mode_info ("SLang", "fold_info", "\r\r#{[ \t]*$\r#^[ \t]*}");
It will start a fold for every '{' in normal code at the end of line
(skipping whitespaces).
the end of fold are '}' at beginning of line (again skipping whitespaces).
Hope this is useful!
Dino
Attachment:
folding-regexp.diff
Description: Binary data