2016-03-26 44 views
7

Czy istnieje jakiś pakiet Sublime do podświetlania składni HTML wewnątrz ciągów JavaScript?Jak podświetlić składnię HTML wewnątrz napisów JavaScript w Sublime

(Uwaga pytanie jest tylko o HTML wewnątrz ciągów JS, nie podświetlanie składni w ogóle.)

Specjalnie piszę kątowe elementów przy użyciu szablonów wbudowanych

angular.module('compMod', []).component('myComp', { 
    template: `<div>Some Text</div>` 
}); 

i chcą podkreślić HTML składnia wewnątrz łańcuchów szablonów ES6.

+1

Nie wiem, czy istnieje taki pakiet, ale wydaje mi się, że i tak nie jest to dobry pomysł. Prawdopodobnie chcesz, aby rzeczy w szablonach były poprawnie podświetlone, gdy nie jest to HTML. Możesz jednak użyć 'templateUrl' i połączyć się z plikiem szablonu, zamiast używać łańcucha szablonu. – Calvin

+0

@Calvin Korzystając z szablonów wbudowanych, masz wszystko w jednym miejscu, jest ono często używane, np. [tutaj] (https://github.com/formly-js/angular-formly/blob/master/src/directives/formly-form.js), ale o ile wiem, autor tego pakietu używa Webstorma, który nie ma dokładnie to. –

+0

Otwórz [wydanie] (https://github.com/sublimehq/Packages/issues) w repozytorium sublimehq Packages na Github i zgłoś żądanie przy użyciu znacznika '[JavaScript]'. W najnowszej wersji 'JavaScript.sublime-syntax', łańcuchy znaków w backtickach są oznaczone jako takie, więc nie powinno być zbyt trudno zaimportować tam składnię HTML. Mogą lub nie mogą się zgodzić, ale warto spróbować. – MattDMo

Odpowiedz

4

Jak komentował powyższy komentarz, nie powiedziałbym, że jest to dobra praktyka, ale niekoniecznie muszę powiedzieć, że jest całkowicie zła. W każdym razie, oto moje naiwne rozwiązanie (nie przetestowałem go pod kątem żadnych przypadków brzegowych):

Zainstaluj babel package for sublime text i wybierz go jako składnię default dla plików * .js.

Następnie edytuj JavaScript (Babel).sublime-syntax, który znajduje się w katalogu pakietów Babel, np. ~/.config/sublime-text-3/Packages/Babel/.

Szukaj sekcji template-string-body: i dodać jej początkiem następujące dwa wiersze, podobne do @ sugestią VRPF za:

- meta_content_scope: text.html.basic.embedded.js 
- include: scope:text.html.basic 

Teraz masz pełne wsparcie w ES6 + HTML składnia w szablonach strun.

Powiązane problemy