Show pageOld revisionsBacklinksAdd to bookBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== SCOPES ====== Scopes entities in the syntax schema define rules for calculating of the outlining (folding) structure, that actually allows you to fold code blocks, see nesting hierarchy, optimize smart highlight searches etc. Node SCOPES contains a collection of scope definitions that can be used in the syntax. <code xml><SCOPES open_container="normal"> <Scope open="begin" close="end"/> <DynamicScope lead="<" strict="false"/> <IndentScope/> </SCOPES> </code> They can be: * [[syntax:scopes:pair-scope|Pair Scopes]], based on open/close pair tags like **{** -> **}** or **begin** -> **end** in languages like C++ or Pascal ( defined with ''<Scope/>'' ). * [[syntax:scopes:dynamic-scope|Dynamic Scopes]], which does not have predefined open/close tags, but tags which are determined in runtime, like used in XML/HTML for formatting tags ( defined with ''<DynamicScope/>'' ). * [[syntax:scopes:indent-scope|Indent Scopes]], which do not dependent on tags at all, but controlled by indent level, as in Python, for example ( defined with ''<IndentScope/>'' ). Every scope definition has his own set of properties, that can control outlining processing. Scopes are inheritable: child syntax gets scopes defined in parent syntax. You can define global containers for all scopes on the level of main SCOPES node (the container list can be extended for explicit Scope on the level of that scope): * **open_container** - global open container * **middle_container** - global middle container * **close_container** - global close container If you define **only** open_container it will be used also for middle and close tags by default. ===== User defined scopes ===== If programming language does not support user defined regions (user defined collapsible regions) [[syntax:user-defined-scopes|you can still do this]], while editing in HippoEDIT.