This article describes format of XML files to be used with CBCGPOutlineParser and auto-outlining feature of the edit control. The XML parser is invoked by calling to CBCGPEditCtrl::LoadOutlineParserXMLSettings.
The structure used for the outline parser is following:
3 <IgnoreOneLineBlocks></IgnoreOneLineBlocks>
5 <EscapeSequence></EscapeSequence>
12 <ReplaceString></ReplaceString>
13 <AllowNestedBlocks></AllowNestedBlocks>
There are no mandatory tags except the main "SETTINGS" tag.
"OUTLINE_DATA" tag defines general outline parser settings.
- "IgnoreOneLineBlocks" tag defines whether the edit control should consider one line blocks as collapsible or not. "False" by default
- "EscapeSequences" tag defines a list of escape sequences.
- "EscapeSequence" tag represents a single escape sequence.
- "BLOCKS" tag is intended for syntax definitions of the language. Each block specifies the rule how the outline parser found the outline collapsible region. It's usable when you need to define a set of automatic outlining regions of the same language syntax block. For each block the XML parser will call CBCGPOutlineParser::AddBlockType.
- "BLOCK" tag represents a single block.
Default XML settings for C++:
3 <IgnoreOneLineBlocks>True</IgnoreOneLineBlocks>
4 <IncludeSpaceLines>True</IncludeSpaceLines>
6 <EscapeSequence>\\\"</EscapeSequence>
12 <ReplaceString></ReplaceString>
13 <AllowNestedBlocks>False</AllowNestedBlocks>
20 <ReplaceString>\"\"</ReplaceString>
21 <AllowNestedBlocks>False</AllowNestedBlocks>
28 <ReplaceString>..</ReplaceString>
30 <Keyword>else</Keyword>
31 <Keyword>struct</Keyword>
32 <Keyword>enum</Keyword>
33 <Keyword>switch</Keyword>
34 <Keyword>catch</Keyword>
35 <Keyword>try</Keyword>
36 <Keyword>for</Keyword>
37 <Keyword>operator</Keyword>
38 <Keyword>class</Keyword>
40 <Keyword>union</Keyword>
42 <Keyword>while</Keyword>
43 <Keyword>namespace</Keyword>
50 <ReplaceString>...</ReplaceString>
56 <ReplaceString>/**/</ReplaceString>
57 <AllowNestedBlocks>False</AllowNestedBlocks>
63 <ReplaceString>/**/</ReplaceString>
64 <AllowNestedBlocks>False</AllowNestedBlocks>