Class orion.styler.TextMateStyler
				
				
Extends
					orion.styler.AbstractStyler.
				
			
				orion.styler.TextMateStyler
				
				
					
Defined in:  </shared/eclipse/e4/orion/I201106031245/plugins/org.eclipse.orion.client.core/web/orion/editor/textMateStyler.js>.
				
			
| Constructor Attributes | Constructor Name and Description | 
|---|---|
| 
								orion.styler.TextMateStyler(editor, grammar)
							 A styler that knows how to apply a limited subset of the TextMate grammar format to style a line. | 
| Method Attributes | Method Name and Description | 
|---|---|
| addScope(scopes, fromNode, start, end, scope)
								 | |
| addScopeForCaptures(scopes, fromNode, start, end, match, captures)
								 | |
| addStyles(scope)
								 Adds eclipse.Style objects for scope to our _styles cache. | |
| addStylesForCaptures(captures)
								 | |
| afterMatch(match)
								 | |
| cleanup(repairing, origNode, rs, re, eof, addedCharCount, removedCharCount)
								 Helper for parse() in the repair case | |
| copy(grammar)
								 | |
| exec(regex, text, offset)
								 Execs regex on text, and returns the match object with its index offset by the given amount. | |
| getEndMatch(node, text, offset)
								 | |
| getFirstDamaged(start, end)
								 | |
| getInitialExpected(node, rs)
								 Gets the node corresponding to the first match we expect to see in the repair. | |
| getIntersecting(start, end)
								 | |
| getNextExpected(expected, event)
								 Helper for repair() to tell us what kind of event we expect next. | |
| getNextMatch(model, node, pos, matchRulesOnly)
								 | |
| Called once when file is first loaded to build the parse tree. | |
| isDamaged(n, start, end)
								 | |
| parse(origNode, repairing, rs, addedCharCount, removedCharCount)
								 Builds tree from some of the buffer content
TODO cleanup params | |
| prune(node, expected)
								 Helper for parse() when repairing. | |
| push(stack, rules)
								 Pushes rules onto stack so that rules[startFrom] is on top | |
| removeUnrepairedChildren(node, repairing)
								 Helper for parse() in the repair case
Removes any children of node that are unrepaired (implies they were deleted) | |
| styleDirect(scopes, claimedRegions, node, lineStart, lineEnd)
								 | |
| styleFromMatchRules(scopes, node, start, end)
								 Styles the region start. | |
| styleInherited(scopes, node, start, end)
								 | |
| toStyleRanges(scopeRanges)
								 Applies the grammar to obtain the eclipse.StyleRange[] for the given line. | 
- Methods borrowed from class orion.styler.AbstractStyler:
- _onDestroy, _onLineStyle, _onModelChanged, _onSelection, destroy, initialize
					Class Detail
				
				
				
						orion.styler.TextMateStyler(editor, grammar)
				
				
				
					A styler that knows how to apply a limited subset of the TextMate grammar format to style a line.
					
				
				
				
				
				
					
						
Styling from a grammar:
Each scope name given in the grammar is converted to an array of CSS class names. For example a region of text with scope keyword.control.php will be assigned the CSS classeskeyword, keyword-control, keyword-control-phpA CSS file can give rules matching any of these class names to provide generic or more specific styling. For example,
.keyword { font-color: blue; } colors all keywords blue, while
.keyword-control-php { font-weight: bold; } bolds only PHP control keywords.
This is useful when using grammars that adhere to TextMate's
scope name conventions,
as a single CSS rule can provide consistent styling to similar constructs across different languages.
Supported top-level grammar features:
- fileTypes, patterns, repository (but see below) are supported.
- scopeName, firstLineMatch, foldingStartMarker, foldingStopMarker are not supported.
TODO update this section
Supported grammar rule features:
- match patterns are supported.
- name scope is supported.
- captures is not supported. Any scopes given inside a captures object are not applied.
- begin/end patterns are not supported and are ignored, along with their subrules. Consequently, matched constructs may not span multiple lines.
- contentName, beginCaptures, endCaptures, applyEndPatternLast are not supported.
- include is supported, but only when it references a rule in the current grammar's repository. Including $self, $base, or rule.from.another.grammar is not supported.
- The (?x) option ("extended" regex format) is supported, but only when it appears at the beginning of a regex pattern.
- Matching is done using native JavaScript RegExps. As a result, many Oniguruma features are not supported.
  Unsupported features include:
  - Named captures
- Setting flags inside groups (eg. (?i:a)b)
- Lookbehind and negative lookbehind
- Subexpression call
- etc.
 
- Parameters:
- {orion.textview.TextView} editor
- The editor.
- {JSONObject} grammar
- The TextMate grammar as a JSON object. You can use a plist-to-JSON conversion tool to produce this object. Note that some features of TextMate grammars are not supported.
					Method Detail
				
				
					 
					
					
					
					addScope(scopes, fromNode, start, end, scope)
					
					
					- Parameters:
- scopes
- fromNode
- start
- end
- scope
					
					
					addScopeForCaptures(scopes, fromNode, start, end, match, captures)
					
					
					- Parameters:
- scopes
- fromNode
- start
- end
- match
- captures
					
					
					addStyles(scope)
					
					
					
						Adds eclipse.Style objects for scope to our _styles cache.
						
						
					
					
					
					
						
							- Parameters:
- {String} scope
- A scope name, like "constant.character.php".
					
					
					addStylesForCaptures(captures)
					
					
					- Parameters:
- {Object} captures
					
					{Number}
					afterMatch(match)
					
					
					- Parameters:
- {RegExp.match} match
- Returns:
- {Number} The position immediately following the match.
					
					
					cleanup(repairing, origNode, rs, re, eof, addedCharCount, removedCharCount)
					
					
					
						Helper for parse() in the repair case
						
						
					
					
					
					
						
							- Parameters:
- repairing
- origNode
- rs
- re
- eof
- addedCharCount
- removedCharCount
					
					
					copy(grammar)
					
					
					- Parameters:
- grammar
					
					
					exec(regex, text, offset)
					
					
					
						Execs regex on text, and returns the match object with its index offset by the given amount.
						
						
					
					
					
					
						
							- Parameters:
- {RegExp} regex
- {String} text
- {Number} offset
					
					{RegExp.match}
					getEndMatch(node, text, offset)
					
					
					- Parameters:
- {Node} node
- {String} text
- {Number} offset
- Returns:
- {RegExp.match} If node is a BeginEndNode and its rule's "end" pattern matches the text.
					
					{BeginEndNode|ContainerNode}
					getFirstDamaged(start, end)
					
					
					- Parameters:
- start
- end
- Returns:
- {BeginEndNode|ContainerNode} The result of taking the first (smallest "start" value) node overlapping [start,end] and drilling down to get its deepest damaged descendant (if any).
					
					{Node}
					getInitialExpected(node, rs)
					
					
					
						Gets the node corresponding to the first match we expect to see in the repair.
						
						
					
					
					
					
						
							- Parameters:
- {BeginEndNode|ContainerNode} node
- The node returned via getFirstDamaged(rs,rs) -- may be the root.
- {Number} rs
- See _onModelChanged() Note that because rs is a line end (or 0, a line start), it will intersect a beginMatch or endMatch either at their 0th character, or not at all. (begin/endMatches can't cross lines). This is the only time we rely on the start/end values from the pre-change tree. After this we only look at node ordering, never use the old indices.
- Returns:
- {Node}
					
					{Node[]}
					getIntersecting(start, end)
					
					
					- Parameters:
- start
- end
- Returns:
- {Node[]} In depth-first order
					
					{Node}
					getNextExpected(expected, event)
					
					
					
						Helper for repair() to tell us what kind of event we expect next.
						
						
					
					
					
					
						
							- Parameters:
- {Node} expected
- Last value returned by this method.
- {String} event
- "begin" if the last value of expected was matched as "begin", or "end" if it was matched as an end.
- Returns:
- {Node} The next expected node to match, or null.
					
					{Object}
					getNextMatch(model, node, pos, matchRulesOnly)
					
					
					- Parameters:
- model
- {orion.textview.TextModel}
- node
- {Node}
- pos
- {Number}
- matchRulesOnly Optional
- {Boolean} Optional, if true only "match" subrules will be considered.
- Returns:
- {Object} A match info object with properties: {Boolean} isEnd {Boolean} isSub {RegExp.match} match {(Container|Match|BeginEnd)Rule} rule
					
					
					initialParse()
					
					
					
						Called once when file is first loaded to build the parse tree. Tree is updated incrementally thereafter as buffer is modified
						
						
					
					
					
					
						
						
						
						
						
						
						
					
					
					
					isDamaged(n, start, end)
					
					
					- Parameters:
- {BeginEndNode} n
- start
- end
- Returns:
- true If n overlaps the interval [start,end]
					
					
					parse(origNode, repairing, rs, addedCharCount, removedCharCount)
					
					
					
						Builds tree from some of the buffer content
TODO cleanup params
						
						
					
					
					
					
						
							- Parameters:
- {BeginEndNode|ContainerNode} origNode
- The deepest node that overlaps [rs,rs], or the root.
- {Boolean} repairing
- {Number} rs
- See _onModelChanged()
- {Number} addedCharCount Optional
- Only used for repairing === true
- {Number} removedCharCount Optional
- Only used for repairing === true
					
					
					preprocess()
					
					
					
					
					
					prune(node, expected)
					
					
					
						Helper for parse() when repairing. Prunes out the unmatched nodes from the tree so we can continue parsing.
						
						
					
					
					
					
						
							- Parameters:
- {BeginEndNode|ContainerNode} node
- {Node} expected
					
					
					push(stack, rules)
					
					
					
						Pushes rules onto stack so that rules[startFrom] is on top
						
						
					
					
					
					
						
							- Parameters:
- {Array} stack
- {Array} rules
					
					
					removeUnrepairedChildren(node, repairing)
					
					
					
						Helper for parse() in the repair case
Removes any children of node that are unrepaired (implies they were deleted)
						
						
					
					
					
					
						
							- Parameters:
- node
- repairing
					
					
					styleDirect(scopes, claimedRegions, node, lineStart, lineEnd)
					
					
					- Parameters:
- {Array} scopes
- {Array} claimedRegions
- {BeginEndNode} node
- lineStart
- lineEnd
					
					
					styleFromMatchRules(scopes, node, start, end)
					
					
					
						Styles the region start..end by applying any "match"-subrules of node
						
						
					
					
					
					
						
							- Parameters:
- {Array} scopes
- {BeginEndNode|ContainerNode} node
- start
- end
					
					
					styleInherited(scopes, node, start, end)
					
					
					- Parameters:
- {Array} scopes
- {BeginEndNode} node
- start
- end
					
					
					toStyleRanges(scopeRanges)
					
					
					
						Applies the grammar to obtain the eclipse.StyleRange[] for the given line.
						
						
					
					
					
					
						
							- Parameters:
- {ScopeRange[]} scopeRanges
- Returns:
- eclipse.StyleRange[]