The latest version of this gist now lives in its own repository: https://github.com/zvuc/HTML-ng2.sublime-package Download the package file from the repo.
ADD: You can also install PackageResourceViewer from Package Control to open up and modify the package contents directly without having to manually rename, unpackage and copy.
- Find Sublime Text 3.app in Applications, View Package Contents
- Open
Contents/MacOS/Packages/HTML.sublime-package
(Rename to .zip, unpackage it) - In
HTML.sublime-syntax
file, add following undertag-event-attribute
:
tag-ng2-attribute:
- match: '\s+(([\[\(][a-zA-Z0-9.:-]+[\]\)]|(\[\()[a-zA-Z0-9.:-]+(\)\])|[\*#][a-zA-Z0-9.:-]+)\s*(=)\s*)'
captures:
1: meta.attribute-with-value.html
2: entity.other.attribute-name.ng2.html
3: punctuation.separator.key-value.html
push:
- match: '"'
scope: punctuation.definition.string.begin.html
set:
- meta_scope: meta.attribute-with-value.html string.quoted.double.html
- match: '"'
scope: punctuation.definition.string.end.html
pop: true
- include: entities
- match: "'"
scope: punctuation.definition.string.begin.html
set:
- meta_scope: meta.attribute-with-value.html string.quoted.single.html
- match: "'"
scope: punctuation.definition.string.end.html
pop: true
- include: entities
- match: '(?:[^\s<>/''"]|/(?!>))+'
scope: meta.attribute-with-value.html string.unquoted.html
- match: ''
pop: true
- match: '\s+([\[\(][a-zA-Z0-9.:-]+[\]\)]|(\[\()[a-zA-Z0-9.:-]+(\)\])|[\*#][a-zA-Z0-9.:-]+)'
captures:
1: entity.other.attribute-name.ng2.html
This is basically a copy of existing tag-generic-attribute:
with modified regexp for match:
to target Angular 2 attributes starting with *
or #
, enclosed in []
or ()
or [()]
.
- At the bottom under
tag-stuff:
add:
- include: tag-ng2-attribute
- Save the modified package as
.sublime-package
and replace the original file. You can also rename files to something else if you want to keep the original HTML.sublime-package and have a separate package like HTML-ng2.sublime-package.
- Open up the package for the Color Scheme you're using, find the
*.tmTheme
file. - Add following code inside
<array>
:
<dict>
<key>name</key>
<string>Tag ng2 attribute</string>
<key>scope</key>
<string>entity.other.attribute-name.ng2</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#C99E00</string>
</dict>
</dict>
Replace the color HEX code inside the last <string>
to one of the theme colors in your color scheme.
3. Save and replace existing file.
I've tried the following matcher without success.
There is no tabs in the
HTML.sublime-syntax
file.Here is the theme part (inside the
<array></array>
).Sublime has been restarted multiple times and the cache has been cleared.
Could you please provide som input on what I'm doing wrong? Maybe you can try it on your side?