¿Cómo puedo hacer que emacs admita literales de cadena de plantilla javascript ES6?

7

Quiero usar literales de cadena de plantilla ES6, por ejemplo:

`string text line 1
 string text line 2
 string text ${expression}`

Sin embargo, emacs no reconoce que su contenido es una cadena, por lo que el resaltado de sintaxis, la sangría, etc. no funcionan. ¿Cómo puedo decirle a Emacs que los backticks son delimitadores de cadena?

Estoy usando emacs versión 24.5, y el incorporado js-mode.

dshepherd
fuente
¿Cuál es su versión de Emacs y qué modo principal de JS está utilizando?
@lunaryorn lo edité para agregar la información, pero por cierto solo abrí esta pregunta como una forma amigable de Google para proporcionar la respuesta a otras personas. Mi respuesta a continuación funciona para mí, pero el desbordamiento de la pila no me deja aceptarlo todavía. ¡Espero no haberte perdido el tiempo!
dshepherd

Respuestas:

7

Debe agregar backticks como delimitador de cadena a la js-modetabla de sintaxis de esta manera:

(modify-syntax-entry ?` "\"" js-mode-syntax-table)

Más información aquí .

dshepherd
fuente
7

Para el registro, los literales de cadena de plantilla ES6 son compatibles de fábrica js2-mode, completos con bloqueo de fuente para las variables interpoladas también.

PythonNut
fuente
3

O simplemente espera a que salga Emacs 25.1. Está arreglado allí.

Dmitry
fuente