\NeedsTeXFormat{LaTeX2e}[1994/06/01] \ProvidesPackage{newcode}[2021/12/17 Custom Package] \usepackage{textcomp} % for upquote \RequirePackage{listings} \RequirePackage{xcolor} % Requires package: color. \definecolor{lightgray}{rgb}{.9,.9,.9} \definecolor{darkgray}{rgb}{.4,.4,.4} \definecolor{purple}{rgb}{0.65, 0.12, 0.82} \definecolor{red}{rgb}{.9,0.2,0.1} \definecolor{blue}{rgb}{0,0,1} \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} \definecolor{delim}{RGB}{20,105,176} % \definecolor{numb}{RGB}{106, 109, 32} \definecolor{string}{rgb}{0.64,0.08,0.08} \definecolor{eclipseStrings}{RGB}{42,0.0,255} \definecolor{eclipseKeywords}{RGB}{127,0,85} \colorlet{numb}{magenta!60!black} \lstset{ backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument basicstyle=\footnotesize, % the size of the fonts that are used for the code breakatwhitespace=false, columns=fullflexible, % sets if automatic breaks should only happen at whitespace breaklines=true, % sets automatic line breaking breakatwhitespace=false, captionpos=b, % sets the caption-position to bottom commentstyle=\color{forestgreen}, % comment style deletekeywords={...}, % if you want to delete keywords from the given language escapeinside={\%*}{*)}, % if you want to add LaTeX within your code extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 firstnumber=1, % start line enumeration with line 1000 frame=single, % adds a frame around the code keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) keywordstyle=\color{blue}, % keyword style language=Octave, % the language of the code morekeywords={*,...}, % if you want to add more keywords to the set numbers=left, % where to put the line-numbers; possible values are (none, left, right) numbersep=5pt, % how far the line-numbers are from the code numberstyle=\tiny\color{mediumgray}, % the style that is used for the line-numbers rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' showstringspaces=false, % underline spaces within strings only showtabs=false, % show tabs within strings adding particular underscores stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered stringstyle=\color{forestgreen}, % string literal style tabsize=2, % sets default tabsize to 2 spaces title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title texcl=true } % lstset{basicstyle=\footnotesize\ttfamily,breaklines=true} % % ECMAScript 2015 (ES6) definition by Gary Hammock % \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. } % % JavaScript version 1.1 by Gary Hammock % % Reference: % B. Eich and C. Rand Mckinney, "JavaScript Language Specification % (Preliminary Draft)", JavaScript 1.1. 1996-11-18. [Online] % http://hepunx.rl.ac.uk/~adye/jsspec11/titlepg2.htm % \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} \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{jsonST}{ basicstyle=\normalfont\ttfamily, commentstyle=\color{eclipseStrings}, % style of comment stringstyle=\color{forestgreen}, % style of strings numbers=left, numberstyle=\scriptsize, stepnumber=1, numbersep=8pt, showstringspaces=false, breaklines=false, frame=lines, backgroundcolor=\color{gray}, %only if you like } \lstdefinelanguage{json}{ string=[s]{"}{"}, literate= *{0}{{{\color{numb}0}}}{1} {1}{{{\color{numb}1}}}{1} {2}{{{\color{numb}2}}}{1} {3}{{{\color{numb}3}}}{1} {4}{{{\color{numb}4}}}{1} {5}{{{\color{numb}5}}}{1} {6}{{{\color{numb}6}}}{1} {7}{{{\color{numb}7}}}{1} {8}{{{\color{numb}8}}}{1} {9}{{{\color{numb}9}}}{1} } \lstdefinelanguage{jsste}{ sensitive = true, string=[s]{"}{"}, keywords = {_STYLES_,_TEMPLATE_,_IMPORTS_}, % morecomment =[s]{js$*}{*e}, morestring=*[d]{"}, morecomment=[l]<-, } \lstdefinestyle{jssteST}{ commentstyle=\color{red}\upshape, % style of comment basicstyle=\normalfont\ttfamily, keywordstyle=\color{mediumblue}, keywordstyle={[2]\color{darkviolet}}, keywordstyle={[3]\color{royalblue}}, stringstyle=\color{forestgreen}, % style of strings } \lstdefinestyle{JSSTE}{ language=jsste, style=jssteST, } \lstdefinestyle{JSON}{ language=json, style=jsonST } \lstdefinestyle{js}{ language=JavaScript, style=JSES6Base } \lstdefinestyle{JavaScript}{ language=JavaScript, style=JSES6Base } \lstdefinestyle{ES6}{ language=ES6, style=JSES6Base } \newcommand{\inlinecode}[2]{\lstinline[style=#1]$#2$} % \newenvironment{code}{ % \begin{lstlisting}[language=js] % }{ % \end{lstlisting} % }