Ngx HTML
Ngx (Angular2+) HTML Syntax for SublimeText
Details
Installs
- Total 32K
- Win 18K
- Mac 8K
- Linux 6K
Oct 8 | Oct 7 | Oct 6 | Oct 5 | Oct 4 | Oct 3 | Oct 2 | Oct 1 | Sep 30 | Sep 29 | Sep 28 | Sep 27 | Sep 26 | Sep 25 | Sep 24 | Sep 23 | Sep 22 | Sep 21 | Sep 20 | Sep 19 | Sep 18 | Sep 17 | Sep 16 | Sep 15 | Sep 14 | Sep 13 | Sep 12 | Sep 11 | Sep 10 | Sep 9 | Sep 8 | Sep 7 | Sep 6 | Sep 5 | Sep 4 | Sep 3 | Sep 2 | Sep 1 | Aug 31 | Aug 30 | Aug 29 | Aug 28 | Aug 27 | Aug 26 | Aug 25 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
Linux | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Ngx (Angular2+) HTML Syntax for SublimeText
based on the official sublime html syntax
Features
So that it's not broken when there are
[input]
[@animation]
(output)
(@animation.event)
#reference
*template
[(bananaBox)]
attributes on the tags
Plus
Highlighting the JS part as JS. So,
- in
[myBinding]="myVar"
, you should seemyVar
as an JS variable instead of string content- i.e.
myVar
should be highlighted differently from"
s
- i.e.
- in
*ngFor="let column of columns"
, you should seelet
andof
highlighted as keywords - in
(change)="update()"
, you should seeupdate
as function name - in
a && b
within an Angular expression, you should see&&
correctly highlighted as the JS operator instead of an error you would see in normal HTML syntax. - in
{{1 + 2}}
interpolations, you should see JS syntax highlighting as well
And…
Now it supports Angular control flow.
@let myVar = myObservable | async;
@if (users$ | async; as users) {
{{ users.length }}
}
@if (a > b) {
{{a}} is greater than {{b}}
} @else if (b > a) {
{{a}} is less than {{b}}
} @else {
{{a}} is equal to {{b}}
}
@switch (condition) {
@case (caseA) {
Case A.
}
@case (caseB) {
Case B.
}
@default {
Default case.
}
}
Angular Imports Folding
This package now includes functionality to fold import statements and import arrays in Angular TypeScript files to improve code readability.
Features
- Optional Automatic Folding: When enabled, automatically folds import statements and import arrays when opening
.ts
files - Separate Control: Independent commands to fold/unfold import statements vs import arrays
- Smart Detection: Groups import statements intelligently and only processes Angular files for import arrays
- Manual Commands: Multiple commands for fine-grained control
- Non-Intrusive: Auto-folding is disabled by default and must be explicitly enabled
Usage
Enable Auto-Folding
Auto-folding is disabled by default. To enable it:
- Go to
Preferences > Package Settings > NgxHTML > Settings
- Set
"auto_fold_angular_imports": true
Manual Commands
Access these commands via Command Palette (Ctrl+Shift+P
/ Cmd+Shift+P
):
- Angular Imports: Fold Import Statements - Fold import statements at top of file
- Angular Imports: Fold Import Arrays - Fold imports arrays in Angular decorators
- Angular Imports: Fold All Imports - Fold both import statements and arrays
- Angular Imports: Unfold Import Statements - Unfold import statements only
- Angular Imports: Unfold Import Arrays - Unfold import arrays only
- Angular Imports: Unfold All Imports - Unfold everything
How It Works
Import Statements Folding:
1. Processes all .ts
files
2. Finds import statements at the top of the file
3. Groups consecutive imports, separated by blank lines or comments
4. Leaves the first import of each group visible
Import Arrays Folding:
1. Looks for @Component
or @Directive
decorators
2. Finds imports: [
patterns within decorators
3. Folds the content between the brackets
Examples
Import Statements (Before): “typescript import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button';
import { MyService } from './my-service'; import { UtilsService } from '../utils/utils.service';
**Import Statements (After)**:
```typescript
import { CommonModule } from '@angular/common';
[•••]
import { MyService } from './my-service';
[•••]
Import Arrays (Before): ”typescript @Component({ selector: 'app-example', imports: [ CommonModule, FormsModule, MatButtonModule, MyComponent ], templateUrl: './example.component.html' })
**Import Arrays (After)**:
```typescript
@Component({
selector: 'app-example',
imports: [•••],
templateUrl: './example.component.html'
})
How to use syntax
The syntax is listed as Ngx HTML
in Sublime syntax selection list.
You could use ApplySyntax plugin with the following setting:
"syntaxes": [
{
"syntax": "Ngx HTML/NgxHTML",
"extensions": ["component.html"],
},
]
You could use it in other ways… e.g. set it as the default syntax for all html files, since it's a superset of the default html syntax anyway.