2016-03-26 16 views
7

Esiste un pacchetto Sublime per la sintassi: evidenzia l'HTML all'interno delle stringhe JavaScript?Come sintassi - evidenziare l'HTML all'interno delle stringhe JavaScript in Sublime

(Si noti la questione è solo di HTML all'interno di stringhe JS, non evidenziazione della sintassi in generale.)

In particolare sto scrivendo componenti angolari utilizzando i modelli in linea

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

e cercando di mettere in evidenza HTML sintassi all'interno delle stringhe del modello ES6.

+1

Non so se c'è un pacchetto del genere, ma mi sembra che non sia comunque una buona idea. Probabilmente vuoi che le cose all'interno delle stringhe dei template siano evidenziate correttamente quando non sono HTML. Tuttavia, potresti usare 'templateUrl' e collegarti a un file modello invece di usare una stringa modello. – Calvin

+0

@Calvin C'è un vantaggio per i modelli in linea di avere tutto in un unico posto, è frequentemente utilizzato, ad es. [qui] (https://github.com/formly-js/angular-formly/blob/master/src/directives/formly-form.js), ma per quanto ne so l'autore di quel pacchetto usa Webstorm che fa esattamente quello –

+0

Aprire un [problema] (https://github.com/sublimehq/Packages/issues) nel repository Packages di sublimehq su Github ed effettuare una richiesta utilizzando il tag '[JavaScript]'. Nell'ultima versione di 'JavaScript.sublime-syntax', le stringhe di template nei backtick sono contrassegnate come tali, quindi non dovrebbe essere troppo difficile importare la sintassi HTML lì. Possono o non possono essere d'accordo, ma vale la pena sparare. – MattDMo

risposta

4

Come commentato da @Calvin sopra, non direi che questa è una buona pratica, tuttavia non direi necessariamente che è completamente negativa. Ad ogni modo, ecco la mia ingenua soluzione (non l'ho testata per nessun caso limite):

Installa babel package for sublime text e sceglilo come la sintassi default per i tuoi file * .js.

Successivamente, modificare JavaScript (Babel).sublime-syntax, che si trova all'interno della directory del pacchetto Babel, ad es. ~/.config/sublime-text-3/Packages/Babel/.

Ricerca per la sezione template-string-body:, e aggiungere al suo inizio i seguenti due linee, simili a @ suggerimento di VRPF:

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

Ora avete un supporto completo in ES6 + HTML sintassi nel template-stringhe.

Problemi correlati