Class orion.editor.TextMateStyler
Extends
orion.editor.AbstractStyler.
A styler that knows how to apply a 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 classes
keyword, keyword-control, keyword-control-php
A 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.
Top-level grammar constructs:
patterns, repository(with limitations, see "Other Features") are supported.scopeName, firstLineMatch, foldingStartMarker, foldingStopMarkerare not supported.fileTypesis not supported. When using the Orion service registry, the "orion.edit.highlighter" service serves a similar purpose.
Regular expression constructs:
matchpatterns are supported.begin .. endpatterns are supported.- The "extended" regex forms
(?x)and(?x:...)are supported, but only when they apply to the entire regex pattern. - Matching is done using native JavaScript
RegExps. As a result, many features of the Oniguruma regex engine used by TextMate are not supported. Unsupported features include:- Named captures
- Setting flags inside subgroups (eg.
(?i:a)b) - Lookbehind and negative lookbehind
- Subexpression call
- etc.
Scope-assignment constructs:
captures, beginCaptures, endCapturesare supported.nameandcontentNameare supported.
Other features:
applyEndPatternLastis supported.includeis supported, but only when it references a rule in the current grammar'srepository. Including$self,$base, orrule.from.another.grammaris not supported.
Defined in: </jobs/genie.orion/orion-client-dev/workspace/bundles/org.eclipse.orion.client.editor/web/orion/editor/textMateStyler.js>.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
orion.editor.TextMateStyler(textView, grammar, externalGrammars)
Creates a new TextMateStyler.
|
| Method Attributes | Method Name and Description |
|---|---|
|
destroy()
|
|
|
initialize(textView)
|
|
|
onDestroy(e)
|
|
|
onLineStyle(e)
|
|
- Parameters:
- {orion.editor.TextView} textView
- The
TextViewto provide styling for. - {Object} grammar
- The TextMate grammar to use for styling the
TextView, as a JavaScript object. You can produce this object by running a PList-to-JavaScript conversion tool on a TextMate.tmLanguagefile. - {Object[]} externalGrammars Optional
- Additional grammar objects that will be used to resolve named rule references.
- Parameters:
- textView
- Parameters:
- {eclipse.DestroyEvent} e
- Parameters:
- {eclipse.LineStyleEvent} e
- Parameters:
- {eclipse.ModelChangedEvent} e