Evidenziazione della syntax HTML in stringhe javascript in vim

Non so se questo è ansible / ragionevole, ma ero curioso di sapere se posso avere le mie stringhe nei file javascript con l’evidenziazione html. Ho scoperto che le stringhe in php potevano avere l’evidenziazione della syntax SQL, quindi credo sia ansible.

Ma, non conosco lo scripting vim, quindi qualsiasi aiuto su questo apprezzato.

Sto usando la syntax Better Javascript .

PS: Se ci potesse essere un’opzione per accenderlo e spegnerlo mentre si modifica un file js, sarebbe meraviglioso

Grazie

Sì, è ansible che non ti importi qualche syntax di hacking dei file. Per prima cosa è necessario includere il file di syntax HTML all’interno del file di syntax Javascript – consultare :help syn-include per informazioni su tale; in secondo luogo è necessario dichiarare che la syntax HTML può essere trovata all’interno di determinati elementi (es. stringhe). In terzo luogo, se si desidera avere l’opzione di abilitarlo e disabilitarlo, è ansible rendere quei comandi dipendenti da una variabile globale e scrivere alcuni mapping che impostano o distriggersno la variabile e quindi ricaricano il file di syntax.

Per esempi su come funziona l’inclusione, dai un’occhiata a syntax/html.vim (che include i file di syntax di Javascript e CSS), syntax/perl.vim (che include il file di syntax POD) o php.vim (che include la syntax SQL evidenziazione in stringhe, condizionale su una variabile globale).

Modifica: ha fatto un po ‘di lavoro per far sì che ciò accadesse nella mia copia .

Nella testa della syntax/javascript.vim , appena sotto syn case ignore , aggiungi

 syn include @javaScriptHTML syntax/html.vim unlet b:current_syntax syn spell default " HTML enables spell-checking globally, turn it off 

Quindi aggiungere @javaScriptHTML agli elenchi contained= per javaScriptStringD e javaScriptStringS .

Infine, devi modificare syntax/html.vim per evitare che provi ad includere la syntax/javascript.vim se è stato caricato da javascript: trova la riga che legge

 if main_syntax != 'java' || exists("java_javascript") 

e cambiarlo in

 if main_syntax != 'javascript' && ( main_syntax != 'java' || exists("java_javascript")