I'm the author of both wordfiles and the answer is NO. I have sent a feature request by email to IDM support, see below. But enhancements are implemented in UltraEdit mainly depending on the number of users which request a feature. So as long as I'm alone with that feature request, I suppose, I will never see that enhancement. So please request such a feature also by email to IDM support.
UE - Feature request - EOF as close fold string location
This is not a problem report, it is a feature request. Code folding is a very useful feature. It is designed mainly for programming languages, but many other users and I too use it also for other file types. Such files often have blocks which only have a "block start string" and the block ends on first blank line, or with the line termination of the line above next line with a "block start string", or at end of file.
It is no problem to use the code folding for such blocks of non programming languages because it is possible to define the "block start string" as open and as close fold string. With additionally using ignore fold strings it is further possible to avoid wrong interpretation of a "block start string". In the attached wordfile there are 2 languages with fold strings for non typical usage: /L2"Settings Files" and /L10"IDM Wordfiles".
/L2"Settings Files" and /L10"IDM Wordfiles" are good examples to show you the general problem of code folding used for blocks not having an end of block marker string. The last section in an INI file or the last color group in a wordfile can't be folded with a simple click on the [-] symbol left the block starting line because there is no method to tell UltraEdit that the end of the file is the end of the last block and therefore there is no [-] symbol left the last block starting line.
That is an unsatisfactory fact at the moment. And that's the reason why I wrote this feature request.
One possibility to deal with the problem that for some languages the end of a file (short: EOF) is also the end of last foldable block is to automatically interpret EOF as close fold string location when following rules are all true:
- The active file is syntax highlighted and the used syntax highlighting language contains open and close fold strings.
- There is only 1 open fold string.
- There is only 1 close fold string.
- Open and close fold strings are identical.
All 4 rules are true for files highlighted with /L2"Settings Files". It is 100% clear that for files highlighted with a language which only has 1 open and 1 close fold string and the string is the same that those files are structured in blocks where a block ends either on start of the next block or at EOF. So UltraEdit could automatically interpret EOF has close fold string location for such files.
However, the automatic interpretation of EOF = close fold string location would be of no help for /L10"IDM Wordfiles". When more than 1 open/close fold strings are defined, it is impossible to evaluate by UE/UES, if EOF is now a valid close fold string location or not.
For such files respectively languages it would be good when a wordfile creator could explicitly define that EOF is always a close fold string location. I suggest a special string which could be used by a wordfile creator and recognized by UE/UES with its special meaning. Because I always take care about downwards compatibility I suggest "#IDM-EOF#" as close fold string which is interpreted by a future version of UE/UES as "EOF is valid close fold string location". We can be quite sure that there are no files containing the string "#IDM-EOF#" already as close fold string and therefore wordfiles with such a close fold string would have no bad affect when used with older versions of UE/UES.
The code folding definitions of /L10"IDM Wordfiles" would look with that enhancement as follows (close fold strings are all on 1 line):/Open Fold Strings = "/C1" "/C2" "/C3" "/C4" "/C5" "/C6" "/C7" "/C8"
/Close Fold Strings = "/C2" "/C3" "/C4" "/C5" "/C6" "/C7" "/C8" "/L2" "/L3" "/L4" "/L5" "/L6" "/L7" "/L8" "/L9" "/L10" "/L11" "/L12" "/L13" "/L14" "/L15" "/L16" "/L17" "/L18" "/L19" "/L20" "#IDM-EOF#"/Ignore Fold Strings = "// /"