\lstdefinelanguage[ECMAScript2015]{JavaScript}[]{JavaScript}{ morekeywords=[1]{await, async, case, catch, class, const, default, do, enum, export, extends, finally, from, implements, import, instanceof, let, static, super, switch, throw, try}, morestring=[b]` % Interpolation strings. } \lstdefinelanguage{JavaScript}{ morekeywords=[1]{break, continue, delete, else, for, function, if, in, new, return, this, typeof, var, void, while, with}, % Literals, primitive types, and reference types. morekeywords=[2]{false, null, true, boolean, number, undefined, Array, Boolean, Date, Math, Number, String, Object}, % Built-ins. morekeywords=[3]{eval, parseInt, parseFloat, escape, unescape}, sensitive, morecomment=[s]{/*}{*/}, morecomment=[l]//, morecomment=[s]{/**}{*/}, % JavaDoc style comments morestring=[b]', morestring=[b]" }[keywords, comments, strings] \lstalias[]{ES6}[ECMAScript2015]{JavaScript} \definecolor{mediumgray}{rgb}{0.3, 0.4, 0.4} \definecolor{mediumblue}{rgb}{0.0, 0.0, 0.8} \definecolor{forestgreen}{rgb}{0.13, 0.55, 0.13} \definecolor{darkviolet}{rgb}{0.58, 0.0, 0.83} \definecolor{royalblue}{rgb}{0.25, 0.41, 0.88} \definecolor{crimson}{rgb}{0.86, 0.8, 0.24} \lstdefinestyle{JSES6Base}{ backgroundcolor=\color{white}, basicstyle=\ttfamily, breakatwhitespace=false, breaklines=false, captionpos=b, columns=fullflexible, commentstyle=\color{mediumgray}\upshape, emph={}, emphstyle=\color{crimson}, extendedchars=true, % requires inputenc fontadjust=true, frame=single, identifierstyle=\color{black}, keepspaces=true, keywordstyle=\color{mediumblue}, keywordstyle={[2]\color{darkviolet}}, keywordstyle={[3]\color{royalblue}}, numbers=left, numbersep=5pt, numberstyle=\tiny\color{black}, rulecolor=\color{black}, showlines=true, showspaces=false, showstringspaces=false, showtabs=false, stringstyle=\color{forestgreen}, tabsize=2, title=\lstname, upquote=true % requires textcomp } \lstdefinestyle{JavaScript}{ language=JavaScript, style=JSES6Base } \lstdefinestyle{ES6}{ language=ES6, style=JSES6Base }