|
Scheme Nodes
Individually each scheme node is a child of either a syntax type node, or in most cases a group node (described later). Each scheme node defines a colour scheme (text, and background colour) for a sequence of characters, or between bounding character sequences. Scheme nodes may be created and deleted in most cases. In all cases their names may not be changed since the names describe the type, or rather the function of the node.
Default Nodes
Default nodes are a constrained subset of the scheme nodes, which are compulsory, may not be added or deleted, and only exist as children of a syntax type node.
- - Default Scheme
The default scheme specifies a colour scheme for text that is not explicitly hilighted. Typically the coulours are black and white, although any combination may be specified. An exception to the main default scheme rules above exists for the default node. The default scheme node is a compulsory child of any scope group special group node described below.
- - Selection Scheme
The selection scheme allows specification of a colour scheme for selected text. Typically this is the inverse of the of the default scheme above, i.e. white text with black background. The selection scheme is subject to no exceptions, and so it will always be manifest just once for a whole syntax type. The selection colour scheme overrides any scope groups or syntax hilighting, whenever text is selected in an editor view.
- - Selection Scheme (no focus)
The no focus selection scheme allows specification of a colour scheme for selected text, when the text editor view does not have the keyboard focus. Typically this is derived from the selection scheme above but would normally display black as a lighter colour i.e. white text with grey background. The no focus selection scheme is subject to no exceptions, and so it will always be manifest just once for a whole syntax type. The no focus selection colour scheme overrides any scope groups or syntax hilighting, whenever text is selected in an editor view but it does not have the keyboard focus.
Other Scheme Nodes
- - Operator Scheme
The operator scheme node is used to specify a colour scheme for single important characters like plus, minus, slash and star, typically used as numeric operators in programming languages. The important character is defined as the start specification of the node. The end specification of the operator node is not used. There is no constraint on this node type, and it may exist as a child of a syntax type, a scope group, or an operator group.
- - Keyword Scheme
The keyword scheme works in a similar way to the operator scheme except that it manages more than one character as specified in the start sequence. Wherever an instance of the character sequence is found it wll be hilighted with the associated colour scheme. The end specification of the keyword scheme is not used. There is no constraint on this node type, and it may exist as a child of a syntax type, a scope group, or a keyword group.
- - Line Bracket Scheme
The line bracket scheme node is used to specify a colour scheme for any character between bounding character sequences on any sngle line. Typically this scheme is used for hilighting text strings in single or double quotes. Both of the start and end specifications are used when defining line bracket schemes, the hilight will include the start and end sequences. If an end sequence is not found on the same line that a start sequence appears, then the hilight will complete at the line end. There is no constraint on this node type, and it may exist as a child of a syntax type, a scope group, or a line bracket group.
- - Line Comment Scheme
The line comment scheme node is similar to that of the line bracket scheme. The only difference is that the line comment scheme does not use the end sequence. If a start sequence is found then the remainder of the line will be coloured with the associated scheme in all cases. There is no constraint on this node type, and it may exist as a child of a syntax type, a scope group, or a line comment group.
- - Multiline comment Scheme
The multiline comment scheme works in a similar way to the line bracket scheme except that hilighting will continue over line boundaries, until the end sequence is found. If no end sequence exists, then hilighting will continue to the end of the document. The multiline comment scheme exhibits a constraint, in that it may only exist as a child of a syntax type. In some cases this may be a significant limitation particularly for scripting languages that embed in other syntax types, using scope groups. It is not possible to hilight multiline comments within the scope of embedded languages. It is our intention to extend this capability in the near future.
|