I want to use ES6 template string literals e.g.:

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

However emacs doesn't recognize that their contents are a string, so syntax highlighting, indentation, etc. don't work. How can I tell emacs that backticks are string delimiters?

I'm using emacs version 24.5, and the built in js-mode.

  • What's your Emacs version and which JS major mode are you using?
    – user227
    Commented May 12, 2016 at 16:59
  • @lunaryorn I edited to add the information, but tbh I only opened this question as a google-friendly way to provide the answer for other people. My answer below works for me, but stack overflow won't let me accept it yet. Hope I didn't waste your time!
    – dshepherd
    Commented May 12, 2016 at 18:41

3 Answers 3


You need to add backticks as a string delimiter to the js-mode syntax table like this:

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

More information here.


For the record, ES6 template string literals are supported out-of-the-box in js2-mode, complete with font-locking for the interpolated variables as well.


Or you just wait for Emacs 25.1 to come out. It's fixed there.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.